summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/cloud/pubsublite/v1/admin.proto
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/cloud/pubsublite/v1/admin.proto')
-rw-r--r--third_party/googleapis/google/cloud/pubsublite/v1/admin.proto640
1 files changed, 640 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/pubsublite/v1/admin.proto b/third_party/googleapis/google/cloud/pubsublite/v1/admin.proto
new file mode 100644
index 0000000..693df93
--- /dev/null
+++ b/third_party/googleapis/google/cloud/pubsublite/v1/admin.proto
@@ -0,0 +1,640 @@
+// Copyright 2021 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.pubsublite.v1;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/cloud/pubsublite/v1/common.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/timestamp.proto";
+
+option csharp_namespace = "Google.Cloud.PubSubLite.V1";
+option go_package = "google.golang.org/genproto/googleapis/cloud/pubsublite/v1;pubsublite";
+option java_multiple_files = true;
+option java_outer_classname = "AdminProto";
+option java_package = "com.google.cloud.pubsublite.proto";
+option php_namespace = "Google\\Cloud\\PubSubLite\\V1";
+option ruby_package = "Google::Cloud::PubSubLite::V1";
+
+// The service that a client application uses to manage topics and
+// subscriptions, such creating, listing, and deleting topics and subscriptions.
+service AdminService {
+ option (google.api.default_host) = "pubsublite.googleapis.com";
+ option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
+
+ // Creates a new topic.
+ rpc CreateTopic(CreateTopicRequest) returns (Topic) {
+ option (google.api.http) = {
+ post: "/v1/admin/{parent=projects/*/locations/*}/topics"
+ body: "topic"
+ };
+ option (google.api.method_signature) = "parent,topic,topic_id";
+ }
+
+ // Returns the topic configuration.
+ rpc GetTopic(GetTopicRequest) returns (Topic) {
+ option (google.api.http) = {
+ get: "/v1/admin/{name=projects/*/locations/*/topics/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Returns the partition information for the requested topic.
+ rpc GetTopicPartitions(GetTopicPartitionsRequest) returns (TopicPartitions) {
+ option (google.api.http) = {
+ get: "/v1/admin/{name=projects/*/locations/*/topics/*}/partitions"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Returns the list of topics for the given project.
+ rpc ListTopics(ListTopicsRequest) returns (ListTopicsResponse) {
+ option (google.api.http) = {
+ get: "/v1/admin/{parent=projects/*/locations/*}/topics"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Updates properties of the specified topic.
+ rpc UpdateTopic(UpdateTopicRequest) returns (Topic) {
+ option (google.api.http) = {
+ patch: "/v1/admin/{topic.name=projects/*/locations/*/topics/*}"
+ body: "topic"
+ };
+ option (google.api.method_signature) = "topic,update_mask";
+ }
+
+ // Deletes the specified topic.
+ rpc DeleteTopic(DeleteTopicRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/admin/{name=projects/*/locations/*/topics/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Lists the subscriptions attached to the specified topic.
+ rpc ListTopicSubscriptions(ListTopicSubscriptionsRequest) returns (ListTopicSubscriptionsResponse) {
+ option (google.api.http) = {
+ get: "/v1/admin/{name=projects/*/locations/*/topics/*}/subscriptions"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Creates a new subscription.
+ rpc CreateSubscription(CreateSubscriptionRequest) returns (Subscription) {
+ option (google.api.http) = {
+ post: "/v1/admin/{parent=projects/*/locations/*}/subscriptions"
+ body: "subscription"
+ };
+ option (google.api.method_signature) = "parent,subscription,subscription_id";
+ }
+
+ // Returns the subscription configuration.
+ rpc GetSubscription(GetSubscriptionRequest) returns (Subscription) {
+ option (google.api.http) = {
+ get: "/v1/admin/{name=projects/*/locations/*/subscriptions/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Returns the list of subscriptions for the given project.
+ rpc ListSubscriptions(ListSubscriptionsRequest) returns (ListSubscriptionsResponse) {
+ option (google.api.http) = {
+ get: "/v1/admin/{parent=projects/*/locations/*}/subscriptions"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Updates properties of the specified subscription.
+ rpc UpdateSubscription(UpdateSubscriptionRequest) returns (Subscription) {
+ option (google.api.http) = {
+ patch: "/v1/admin/{subscription.name=projects/*/locations/*/subscriptions/*}"
+ body: "subscription"
+ };
+ option (google.api.method_signature) = "subscription,update_mask";
+ }
+
+ // Deletes the specified subscription.
+ rpc DeleteSubscription(DeleteSubscriptionRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/admin/{name=projects/*/locations/*/subscriptions/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Performs an out-of-band seek for a subscription to a specified target,
+ // which may be timestamps or named positions within the message backlog.
+ // Seek translates these targets to cursors for each partition and
+ // orchestrates subscribers to start consuming messages from these seek
+ // cursors.
+ //
+ // If an operation is returned, the seek has been registered and subscribers
+ // will eventually receive messages from the seek cursors (i.e. eventual
+ // consistency), as long as they are using a minimum supported client library
+ // version and not a system that tracks cursors independently of Pub/Sub Lite
+ // (e.g. Apache Beam, Dataflow, Spark). The seek operation will fail for
+ // unsupported clients.
+ //
+ // If clients would like to know when subscribers react to the seek (or not),
+ // they can poll the operation. The seek operation will succeed and complete
+ // once subscribers are ready to receive messages from the seek cursors for
+ // all partitions of the topic. This means that the seek operation will not
+ // complete until all subscribers come online.
+ //
+ // If the previous seek operation has not yet completed, it will be aborted
+ // and the new invocation of seek will supersede it.
+ rpc SeekSubscription(SeekSubscriptionRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/admin/{name=projects/*/locations/*/subscriptions/*}:seek"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "SeekSubscriptionResponse"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Creates a new reservation.
+ rpc CreateReservation(CreateReservationRequest) returns (Reservation) {
+ option (google.api.http) = {
+ post: "/v1/admin/{parent=projects/*/locations/*}/reservations"
+ body: "reservation"
+ };
+ option (google.api.method_signature) = "parent,reservation,reservation_id";
+ }
+
+ // Returns the reservation configuration.
+ rpc GetReservation(GetReservationRequest) returns (Reservation) {
+ option (google.api.http) = {
+ get: "/v1/admin/{name=projects/*/locations/*/reservations/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Returns the list of reservations for the given project.
+ rpc ListReservations(ListReservationsRequest) returns (ListReservationsResponse) {
+ option (google.api.http) = {
+ get: "/v1/admin/{parent=projects/*/locations/*}/reservations"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Updates properties of the specified reservation.
+ rpc UpdateReservation(UpdateReservationRequest) returns (Reservation) {
+ option (google.api.http) = {
+ patch: "/v1/admin/{reservation.name=projects/*/locations/*/reservations/*}"
+ body: "reservation"
+ };
+ option (google.api.method_signature) = "reservation,update_mask";
+ }
+
+ // Deletes the specified reservation.
+ rpc DeleteReservation(DeleteReservationRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/admin/{name=projects/*/locations/*/reservations/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Lists the topics attached to the specified reservation.
+ rpc ListReservationTopics(ListReservationTopicsRequest) returns (ListReservationTopicsResponse) {
+ option (google.api.http) = {
+ get: "/v1/admin/{name=projects/*/locations/*/reservations/*}/topics"
+ };
+ option (google.api.method_signature) = "name";
+ }
+}
+
+// Request for CreateTopic.
+message CreateTopicRequest {
+ // Required. The parent location in which to create the topic.
+ // Structured like `projects/{project_number}/locations/{location}`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Required. Configuration of the topic to create. Its `name` field is ignored.
+ Topic topic = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The ID to use for the topic, which will become the final component of
+ // the topic's name.
+ //
+ // This value is structured like: `my-topic-name`.
+ string topic_id = 3 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for GetTopic.
+message GetTopicRequest {
+ // Required. The name of the topic whose configuration to return.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Topic"
+ }
+ ];
+}
+
+// Request for GetTopicPartitions.
+message GetTopicPartitionsRequest {
+ // Required. The topic whose partition information to return.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Topic"
+ }
+ ];
+}
+
+// Response for GetTopicPartitions.
+message TopicPartitions {
+ // The number of partitions in the topic.
+ int64 partition_count = 1;
+}
+
+// Request for ListTopics.
+message ListTopicsRequest {
+ // Required. The parent whose topics are to be listed.
+ // Structured like `projects/{project_number}/locations/{location}`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // The maximum number of topics to return. The service may return fewer than
+ // this value.
+ // If unset or zero, all topics for the parent will be returned.
+ int32 page_size = 2;
+
+ // A page token, received from a previous `ListTopics` call.
+ // Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to `ListTopics` must match
+ // the call that provided the page token.
+ string page_token = 3;
+}
+
+// Response for ListTopics.
+message ListTopicsResponse {
+ // The list of topic in the requested parent. The order of the topics is
+ // unspecified.
+ repeated Topic topics = 1;
+
+ // A token that can be sent as `page_token` to retrieve the next page of
+ // results. If this field is omitted, there are no more results.
+ string next_page_token = 2;
+}
+
+// Request for UpdateTopic.
+message UpdateTopicRequest {
+ // Required. The topic to update. Its `name` field must be populated.
+ Topic topic = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. A mask specifying the topic fields to change.
+ google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for DeleteTopic.
+message DeleteTopicRequest {
+ // Required. The name of the topic to delete.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Topic"
+ }
+ ];
+}
+
+// Request for ListTopicSubscriptions.
+message ListTopicSubscriptionsRequest {
+ // Required. The name of the topic whose subscriptions to list.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Topic"
+ }
+ ];
+
+ // The maximum number of subscriptions to return. The service may return fewer
+ // than this value.
+ // If unset or zero, all subscriptions for the given topic will be returned.
+ int32 page_size = 2;
+
+ // A page token, received from a previous `ListTopicSubscriptions` call.
+ // Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to `ListTopicSubscriptions`
+ // must match the call that provided the page token.
+ string page_token = 3;
+}
+
+// Response for ListTopicSubscriptions.
+message ListTopicSubscriptionsResponse {
+ // The names of subscriptions attached to the topic. The order of the
+ // subscriptions is unspecified.
+ repeated string subscriptions = 1;
+
+ // A token that can be sent as `page_token` to retrieve the next page of
+ // results. If this field is omitted, there are no more results.
+ string next_page_token = 2;
+}
+
+// Request for CreateSubscription.
+message CreateSubscriptionRequest {
+ // Required. The parent location in which to create the subscription.
+ // Structured like `projects/{project_number}/locations/{location}`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Required. Configuration of the subscription to create. Its `name` field is ignored.
+ Subscription subscription = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The ID to use for the subscription, which will become the final component
+ // of the subscription's name.
+ //
+ // This value is structured like: `my-sub-name`.
+ string subscription_id = 3 [(google.api.field_behavior) = REQUIRED];
+
+ // If true, the newly created subscription will only receive messages
+ // published after the subscription was created. Otherwise, the entire
+ // message backlog will be received on the subscription. Defaults to false.
+ bool skip_backlog = 4;
+}
+
+// Request for GetSubscription.
+message GetSubscriptionRequest {
+ // Required. The name of the subscription whose configuration to return.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Subscription"
+ }
+ ];
+}
+
+// Request for ListSubscriptions.
+message ListSubscriptionsRequest {
+ // Required. The parent whose subscriptions are to be listed.
+ // Structured like `projects/{project_number}/locations/{location}`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // The maximum number of subscriptions to return. The service may return fewer
+ // than this value.
+ // If unset or zero, all subscriptions for the parent will be returned.
+ int32 page_size = 2;
+
+ // A page token, received from a previous `ListSubscriptions` call.
+ // Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to `ListSubscriptions` must
+ // match the call that provided the page token.
+ string page_token = 3;
+}
+
+// Response for ListSubscriptions.
+message ListSubscriptionsResponse {
+ // The list of subscriptions in the requested parent. The order of the
+ // subscriptions is unspecified.
+ repeated Subscription subscriptions = 1;
+
+ // A token that can be sent as `page_token` to retrieve the next page of
+ // results. If this field is omitted, there are no more results.
+ string next_page_token = 2;
+}
+
+// Request for UpdateSubscription.
+message UpdateSubscriptionRequest {
+ // Required. The subscription to update. Its `name` field must be populated.
+ // Topic field must not be populated.
+ Subscription subscription = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. A mask specifying the subscription fields to change.
+ google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for DeleteSubscription.
+message DeleteSubscriptionRequest {
+ // Required. The name of the subscription to delete.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Subscription"
+ }
+ ];
+}
+
+// Request for SeekSubscription.
+message SeekSubscriptionRequest {
+ // A named position with respect to the message backlog.
+ enum NamedTarget {
+ // Unspecified named target. Do not use.
+ NAMED_TARGET_UNSPECIFIED = 0;
+
+ // Seek to the oldest retained message.
+ TAIL = 1;
+
+ // Seek past all recently published messages, skipping the entire message
+ // backlog.
+ HEAD = 2;
+ }
+
+ // Required. The name of the subscription to seek.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Subscription"
+ }
+ ];
+
+ // The target to seek to. Must be set.
+ oneof target {
+ // Seek to a named position with respect to the message backlog.
+ NamedTarget named_target = 2;
+
+ // Seek to the first message whose publish or event time is greater than or
+ // equal to the specified query time. If no such message can be located,
+ // will seek to the end of the message backlog.
+ TimeTarget time_target = 3;
+ }
+}
+
+// Response for SeekSubscription long running operation.
+message SeekSubscriptionResponse {
+
+}
+
+// Metadata for long running operations.
+message OperationMetadata {
+ // The time the operation was created.
+ google.protobuf.Timestamp create_time = 1;
+
+ // The time the operation finished running. Not set if the operation has not
+ // completed.
+ google.protobuf.Timestamp end_time = 2;
+
+ // Resource path for the target of the operation. For example, targets of
+ // seeks are subscription resources, structured like:
+ // projects/{project_number}/locations/{location}/subscriptions/{subscription_id}
+ string target = 3;
+
+ // Name of the verb executed by the operation.
+ string verb = 4;
+}
+
+// Request for CreateReservation.
+message CreateReservationRequest {
+ // Required. The parent location in which to create the reservation.
+ // Structured like `projects/{project_number}/locations/{location}`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // Required. Configuration of the reservation to create. Its `name` field is ignored.
+ Reservation reservation = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The ID to use for the reservation, which will become the final component of
+ // the reservation's name.
+ //
+ // This value is structured like: `my-reservation-name`.
+ string reservation_id = 3 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for GetReservation.
+message GetReservationRequest {
+ // Required. The name of the reservation whose configuration to return.
+ // Structured like:
+ // projects/{project_number}/locations/{location}/reservations/{reservation_id}
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Reservation"
+ }
+ ];
+}
+
+// Request for ListReservations.
+message ListReservationsRequest {
+ // Required. The parent whose reservations are to be listed.
+ // Structured like `projects/{project_number}/locations/{location}`.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "locations.googleapis.com/Location"
+ }
+ ];
+
+ // The maximum number of reservations to return. The service may return fewer
+ // than this value. If unset or zero, all reservations for the parent will be
+ // returned.
+ int32 page_size = 2;
+
+ // A page token, received from a previous `ListReservations` call.
+ // Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to `ListReservations` must
+ // match the call that provided the page token.
+ string page_token = 3;
+}
+
+// Response for ListReservations.
+message ListReservationsResponse {
+ // The list of reservation in the requested parent. The order of the
+ // reservations is unspecified.
+ repeated Reservation reservations = 1;
+
+ // A token that can be sent as `page_token` to retrieve the next page of
+ // results. If this field is omitted, there are no more results.
+ string next_page_token = 2;
+}
+
+// Request for UpdateReservation.
+message UpdateReservationRequest {
+ // Required. The reservation to update. Its `name` field must be populated.
+ Reservation reservation = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. A mask specifying the reservation fields to change.
+ google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request for DeleteReservation.
+message DeleteReservationRequest {
+ // Required. The name of the reservation to delete.
+ // Structured like:
+ // projects/{project_number}/locations/{location}/reservations/{reservation_id}
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Reservation"
+ }
+ ];
+}
+
+// Request for ListReservationTopics.
+message ListReservationTopicsRequest {
+ // Required. The name of the reservation whose topics to list.
+ // Structured like:
+ // projects/{project_number}/locations/{location}/reservations/{reservation_id}
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "pubsublite.googleapis.com/Reservation"
+ }
+ ];
+
+ // The maximum number of topics to return. The service may return fewer
+ // than this value.
+ // If unset or zero, all topics for the given reservation will be returned.
+ int32 page_size = 2;
+
+ // A page token, received from a previous `ListReservationTopics` call.
+ // Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to `ListReservationTopics`
+ // must match the call that provided the page token.
+ string page_token = 3;
+}
+
+// Response for ListReservationTopics.
+message ListReservationTopicsResponse {
+ // The names of topics attached to the reservation. The order of the
+ // topics is unspecified.
+ repeated string topics = 1;
+
+ // A token that can be sent as `page_token` to retrieve the next page of
+ // results. If this field is omitted, there are no more results.
+ string next_page_token = 2;
+}