From c974a441f7a3dcb9d454535dfd2a4d0b8d0fc430 Mon Sep 17 00:00:00 2001 From: yoshi-automation Date: Fri, 10 May 2019 05:31:34 -0700 Subject: [PATCH] [CHANGE ME] Re-generated pubsub to pick up changes in the API or client library generator. --- .../cloud/pubsub_v1/gapic/publisher_client.py | 39 +- .../pubsub_v1/gapic/subscriber_client.py | 94 ++-- .../transports/publisher_grpc_transport.py | 4 + .../transports/subscriber_grpc_transport.py | 38 +- .../google/cloud/pubsub_v1/proto/pubsub.proto | 532 ++++++++---------- .../cloud/pubsub_v1/proto/pubsub_pb2.py | 355 ++++++------ .../cloud/pubsub_v1/proto/pubsub_pb2_grpc.py | 35 +- pubsub/synth.metadata | 12 +- .../unit/gapic/v1/test_publisher_client_v1.py | 9 +- 9 files changed, 502 insertions(+), 616 deletions(-) diff --git a/pubsub/google/cloud/pubsub_v1/gapic/publisher_client.py b/pubsub/google/cloud/pubsub_v1/gapic/publisher_client.py index a308af5d13fd..3759f783c367 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/publisher_client.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/publisher_client.py @@ -83,17 +83,17 @@ def from_service_account_file(cls, filename, *args, **kwargs): from_service_account_json = from_service_account_file @classmethod - def topic_path(cls, project, topic): - """Return a fully-qualified topic string.""" + def project_path(cls, project): + """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - "projects/{project}/topics/{topic}", project=project, topic=topic + "projects/{project}", project=project ) @classmethod - def project_path(cls, project): - """Return a fully-qualified project string.""" + def topic_path(cls, project, topic): + """Return a fully-qualified topic string.""" return google.api_core.path_template.expand( - "projects/{project}", project=project + "projects/{project}/topics/{topic}", project=project, topic=topic ) def __init__( @@ -200,6 +200,7 @@ def create_topic( name, labels=None, message_storage_policy=None, + kms_key_name=None, retry=google.api_core.gapic_v1.method.DEFAULT, timeout=google.api_core.gapic_v1.method.DEFAULT, metadata=None, @@ -235,6 +236,14 @@ def create_topic( If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.pubsub_v1.types.MessageStoragePolicy` + kms_key_name (str): The resource name of the Cloud KMS CryptoKey to be used to protect + access to messages published on this topic. + + The expected format is + ``projects/*/locations/*/keyRings/*/cryptoKeys/*``. EXPERIMENTAL: This + feature is part of a closed alpha release. This API might be changed in + backward-incompatible ways and is not recommended for production use. It + is not subject to any SLA or deprecation policy. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will not be retried. @@ -266,7 +275,10 @@ def create_topic( ) request = pubsub_pb2.Topic( - name=name, labels=labels, message_storage_policy=message_storage_policy + name=name, + labels=labels, + message_storage_policy=message_storage_policy, + kms_key_name=kms_key_name, ) if metadata is None: metadata = [] @@ -825,8 +837,7 @@ def set_iam_policy( Args: resource (str): REQUIRED: The resource for which the policy is being specified. - ``resource`` is usually specified as a path. For example, a Project - resource is specified as ``projects/{project}``. + See the operation documentation for the appropriate value for this field. policy (Union[dict, ~google.cloud.pubsub_v1.types.Policy]): REQUIRED: The complete policy to be applied to the ``resource``. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) @@ -905,8 +916,7 @@ def get_iam_policy( Args: resource (str): REQUIRED: The resource for which the policy is being requested. - ``resource`` is usually specified as a path. For example, a Project - resource is specified as ``projects/{project}``. + See the operation documentation for the appropriate value for this field. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will not be retried. @@ -968,6 +978,10 @@ def test_iam_permissions( resource does not exist, this will return an empty set of permissions, not a NOT\_FOUND error. + Note: This operation is designed to be used for building + permission-aware UIs and command-line tools, not for authorization + checking. This operation may "fail open" without warning. + Example: >>> from google.cloud import pubsub_v1 >>> @@ -982,8 +996,7 @@ def test_iam_permissions( Args: resource (str): REQUIRED: The resource for which the policy detail is being requested. - ``resource`` is usually specified as a path. For example, a Project - resource is specified as ``projects/{project}``. + See the operation documentation for the appropriate value for this field. permissions (list[str]): The set of permissions to check for the ``resource``. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see `IAM diff --git a/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client.py b/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client.py index 5cd288ade084..b94a52c574ee 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client.py @@ -85,22 +85,6 @@ def from_service_account_file(cls, filename, *args, **kwargs): from_service_account_json = from_service_account_file - @classmethod - def subscription_path(cls, project, subscription): - """Return a fully-qualified subscription string.""" - return google.api_core.path_template.expand( - "projects/{project}/subscriptions/{subscription}", - project=project, - subscription=subscription, - ) - - @classmethod - def topic_path(cls, project, topic): - """Return a fully-qualified topic string.""" - return google.api_core.path_template.expand( - "projects/{project}/topics/{topic}", project=project, topic=topic - ) - @classmethod def project_path(cls, project): """Return a fully-qualified project string.""" @@ -117,6 +101,22 @@ def snapshot_path(cls, project, snapshot): snapshot=snapshot, ) + @classmethod + def subscription_path(cls, project, subscription): + """Return a fully-qualified subscription string.""" + return google.api_core.path_template.expand( + "projects/{project}/subscriptions/{subscription}", + project=project, + subscription=subscription, + ) + + @classmethod + def topic_path(cls, project, topic): + """Return a fully-qualified topic string.""" + return google.api_core.path_template.expand( + "projects/{project}/topics/{topic}", project=project, topic=topic + ) + def __init__( self, transport=None, @@ -293,19 +293,13 @@ def create_subscription( messages are not expunged from the subscription's backlog, even if they are acknowledged, until they fall out of the ``message_retention_duration`` window. This must be true if you would - like to Seek to a timestamp. BETA: This feature is part of a beta - release. This API might be changed in backward-incompatible ways and is - not recommended for production use. It is not subject to any SLA or - deprecation policy. + like to Seek to a timestamp. message_retention_duration (Union[dict, ~google.cloud.pubsub_v1.types.Duration]): How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. If ``retain_acked_messages`` is true, then this also configures the retention of acknowledged messages, and thus configures how far back in time a ``Seek`` can be done. Defaults to 7 days. Cannot be more than 7 - days or less than 10 minutes. BETA: This feature is part of a beta - release. This API might be changed in backward-incompatible ways and is - not recommended for production use. It is not subject to any SLA or - deprecation policy. + days or less than 10 minutes. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.pubsub_v1.types.Duration` @@ -323,10 +317,7 @@ def create_subscription( subscriber is successfully consuming messages from the subscription or is issuing operations on the subscription. If ``expiration_policy`` is not set, a *default policy* with ``ttl`` of 31 days will be used. The - minimum allowed value for ``expiration_policy.ttl`` is 1 day. BETA: This - feature is part of a beta release. This API might be changed in - backward-incompatible ways and is not recommended for production use. It - is not subject to any SLA or deprecation policy. + minimum allowed value for ``expiration_policy.ttl`` is 1 day. If a dict is provided, it must be of the same form as the protobuf message :class:`~google.cloud.pubsub_v1.types.ExpirationPolicy` @@ -1151,10 +1142,7 @@ def list_snapshots( operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state - captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. + captured by a snapshot. Example: >>> from google.cloud import pubsub_v1 @@ -1260,15 +1248,12 @@ def create_snapshot( Creates a snapshot from the requested subscription. Snapshots are used in Seek operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an - existing subscription to the state captured by a snapshot. BETA: This - feature is part of a beta release. This API might be changed in - backward-incompatible ways and is not recommended for production use. It - is not subject to any SLA or deprecation policy. If the snapshot already - exists, returns ``ALREADY_EXISTS``. If the requested subscription - doesn't exist, returns ``NOT_FOUND``. If the backlog in the subscription - is too old -- and the resulting snapshot would expire in less than 1 - hour -- then ``FAILED_PRECONDITION`` is returned. See also the - ``Snapshot.expire_time`` field. If the name is not provided in the + existing subscription to the state captured by a snapshot. If the + snapshot already exists, returns ``ALREADY_EXISTS``. If the requested + subscription doesn't exist, returns ``NOT_FOUND``. If the backlog in the + subscription is too old -- and the resulting snapshot would expire in + less than 1 hour -- then ``FAILED_PRECONDITION`` is returned. See also + the ``Snapshot.expire_time`` field. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription, conforming to the `resource name format `__. @@ -1365,11 +1350,7 @@ def update_snapshot( operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state - captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. - Note that certain properties of a snapshot are not modifiable. + captured by a snapshot. Example: >>> from google.cloud import pubsub_v1 @@ -1459,9 +1440,6 @@ def delete_snapshot( you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. When the snapshot is deleted, all messages retained in the snapshot are immediately dropped. After a snapshot is deleted, a new one may be created with the same name, but the new one has no association with the old @@ -1541,10 +1519,7 @@ def seek( you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. Note that both the subscription and the snapshot - must be on the same topic.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. + must be on the same topic. Example: >>> from google.cloud import pubsub_v1 @@ -1651,8 +1626,7 @@ def set_iam_policy( Args: resource (str): REQUIRED: The resource for which the policy is being specified. - ``resource`` is usually specified as a path. For example, a Project - resource is specified as ``projects/{project}``. + See the operation documentation for the appropriate value for this field. policy (Union[dict, ~google.cloud.pubsub_v1.types.Policy]): REQUIRED: The complete policy to be applied to the ``resource``. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) @@ -1731,8 +1705,7 @@ def get_iam_policy( Args: resource (str): REQUIRED: The resource for which the policy is being requested. - ``resource`` is usually specified as a path. For example, a Project - resource is specified as ``projects/{project}``. + See the operation documentation for the appropriate value for this field. retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will not be retried. @@ -1794,6 +1767,10 @@ def test_iam_permissions( resource does not exist, this will return an empty set of permissions, not a NOT\_FOUND error. + Note: This operation is designed to be used for building + permission-aware UIs and command-line tools, not for authorization + checking. This operation may "fail open" without warning. + Example: >>> from google.cloud import pubsub_v1 >>> @@ -1808,8 +1785,7 @@ def test_iam_permissions( Args: resource (str): REQUIRED: The resource for which the policy detail is being requested. - ``resource`` is usually specified as a path. For example, a Project - resource is specified as ``projects/{project}``. + See the operation documentation for the appropriate value for this field. permissions (list[str]): The set of permissions to check for the ``resource``. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see `IAM diff --git a/pubsub/google/cloud/pubsub_v1/gapic/transports/publisher_grpc_transport.py b/pubsub/google/cloud/pubsub_v1/gapic/transports/publisher_grpc_transport.py index 01d65362e387..d151e086a8b9 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/transports/publisher_grpc_transport.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/transports/publisher_grpc_transport.py @@ -236,6 +236,10 @@ def test_iam_permissions(self): resource does not exist, this will return an empty set of permissions, not a NOT\_FOUND error. + Note: This operation is designed to be used for building + permission-aware UIs and command-line tools, not for authorization + checking. This operation may "fail open" without warning. + Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a diff --git a/pubsub/google/cloud/pubsub_v1/gapic/transports/subscriber_grpc_transport.py b/pubsub/google/cloud/pubsub_v1/gapic/transports/subscriber_grpc_transport.py index 3bf052b25c3c..66596f2396fb 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/transports/subscriber_grpc_transport.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/transports/subscriber_grpc_transport.py @@ -278,10 +278,7 @@ def list_snapshots(self): operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state - captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. + captured by a snapshot. Returns: Callable: A callable which accepts the appropriate @@ -297,15 +294,12 @@ def create_snapshot(self): Creates a snapshot from the requested subscription. Snapshots are used in Seek operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an - existing subscription to the state captured by a snapshot. BETA: This - feature is part of a beta release. This API might be changed in - backward-incompatible ways and is not recommended for production use. It - is not subject to any SLA or deprecation policy. If the snapshot already - exists, returns ``ALREADY_EXISTS``. If the requested subscription - doesn't exist, returns ``NOT_FOUND``. If the backlog in the subscription - is too old -- and the resulting snapshot would expire in less than 1 - hour -- then ``FAILED_PRECONDITION`` is returned. See also the - ``Snapshot.expire_time`` field. If the name is not provided in the + existing subscription to the state captured by a snapshot. If the + snapshot already exists, returns ``ALREADY_EXISTS``. If the requested + subscription doesn't exist, returns ``NOT_FOUND``. If the backlog in the + subscription is too old -- and the resulting snapshot would expire in + less than 1 hour -- then ``FAILED_PRECONDITION`` is returned. See also + the ``Snapshot.expire_time`` field. If the name is not provided in the request, the server will assign a random name for this snapshot on the same project as the subscription, conforming to the `resource name format `__. @@ -328,11 +322,7 @@ def update_snapshot(self): operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state - captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. - Note that certain properties of a snapshot are not modifiable. + captured by a snapshot. Returns: Callable: A callable which accepts the appropriate @@ -351,9 +341,6 @@ def delete_snapshot(self): you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. When the snapshot is deleted, all messages retained in the snapshot are immediately dropped. After a snapshot is deleted, a new one may be created with the same name, but the new one has no association with the old @@ -377,10 +364,7 @@ def seek(self): you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. Note that both the subscription and the snapshot - must be on the same topic.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. + must be on the same topic. Returns: Callable: A callable which accepts the appropriate @@ -426,6 +410,10 @@ def test_iam_permissions(self): resource does not exist, this will return an empty set of permissions, not a NOT\_FOUND error. + Note: This operation is designed to be used for building + permission-aware UIs and command-line tools, not for authorization + checking. This operation may "fail open" without warning. + Returns: Callable: A callable which accepts the appropriate deserialized request object and returns a diff --git a/pubsub/google/cloud/pubsub_v1/proto/pubsub.proto b/pubsub/google/cloud/pubsub_v1/proto/pubsub.proto index 715af9c18c46..7cea47b1e539 100644 --- a/pubsub/google/cloud/pubsub_v1/proto/pubsub.proto +++ b/pubsub/google/cloud/pubsub_v1/proto/pubsub.proto @@ -18,6 +18,7 @@ syntax = "proto3"; package google.pubsub.v1; import "google/api/annotations.proto"; +import "google/api/resource.proto"; import "google/protobuf/duration.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; @@ -90,10 +91,7 @@ service Publisher { // operations, which allow // you to manage message acknowledgments in bulk. That is, you can set the // acknowledgment state of messages in an existing subscription to the state - // captured by a snapshot.

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. + // captured by a snapshot. rpc ListTopicSnapshots(ListTopicSnapshotsRequest) returns (ListTopicSnapshotsResponse) { option (google.api.http) = { @@ -113,6 +111,207 @@ service Publisher { } } +message MessageStoragePolicy { + // The list of GCP region IDs where messages that are published to the topic + // may be persisted in storage. Messages published by publishers running in + // non-allowed GCP regions (or running outside of GCP altogether) will be + // routed for storage in one of the allowed regions. An empty list indicates a + // misconfiguration at the project or organization level, which will result in + // all Publish operations failing. + repeated string allowed_persistence_regions = 1; +} + +// A topic resource. +message Topic { + // The name of the topic. It must have the format + // `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter, + // and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), + // underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent + // signs (`%`). It must be between 3 and 255 characters in length, and it + // must not start with `"goog"`. + string name = 1; + + // See Creating and + // managing labels. + map labels = 2; + + // Policy constraining how messages published to the topic may be stored. It + // is determined when the topic is created based on the policy configured at + // the project level. It must not be set by the caller in the request to + // CreateTopic or to UpdateTopic. This field will be populated in the + // responses for GetTopic, CreateTopic, and UpdateTopic: if not present in the + // response, then no constraints are in effect. + MessageStoragePolicy message_storage_policy = 3; + + // The resource name of the Cloud KMS CryptoKey to be used to protect access + // to messages published on this topic. + // + // The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`. + // EXPERIMENTAL: This feature is part of a closed alpha release. This + // API might be changed in backward-incompatible ways and is not recommended + // for production use. It is not subject to any SLA or deprecation policy. + string kms_key_name = 5; +} + +// A message that is published by publishers and consumed by subscribers. The +// message must contain either a non-empty data field or at least one attribute. +// Note that client libraries represent this object differently +// depending on the language. See the corresponding +// client +// library documentation for more information. See +// Quotas and limits +// for more information about message limits. +message PubsubMessage { + // The message data field. If this field is empty, the message must contain + // at least one attribute. + bytes data = 1; + + // Optional attributes for this message. + map attributes = 2; + + // ID of this message, assigned by the server when the message is published. + // Guaranteed to be unique within the topic. This value may be read by a + // subscriber that receives a `PubsubMessage` via a `Pull` call or a push + // delivery. It must not be populated by the publisher in a `Publish` call. + string message_id = 3; + + // The time at which the message was published, populated by the server when + // it receives the `Publish` call. It must not be populated by the + // publisher in a `Publish` call. + google.protobuf.Timestamp publish_time = 4; + + // Identifies related messages for which publish order should be respected. + // If a `Subscription` has `enable_message_ordering` set to `true`, messages + // published with the same `ordering_key` value will be delivered to + // subscribers in the order in which they are received by the Pub/Sub system. + // EXPERIMENTAL: This feature is part of a closed alpha release. This + // API might be changed in backward-incompatible ways and is not recommended + // for production use. It is not subject to any SLA or deprecation policy. + string ordering_key = 5; +} + +// Request for the GetTopic method. +message GetTopicRequest { + // The name of the topic to get. + // Format is `projects/{project}/topics/{topic}`. + string topic = 1; +} + +// Request for the UpdateTopic method. +message UpdateTopicRequest { + // The updated topic object. + Topic topic = 1; + + // Indicates which fields in the provided topic to update. Must be specified + // and non-empty. Note that if `update_mask` contains + // "message_storage_policy" then the new value will be determined based on the + // policy configured at the project or organization level. The + // `message_storage_policy` must not be set in the `topic` provided above. + google.protobuf.FieldMask update_mask = 2; +} + +// Request for the Publish method. +message PublishRequest { + // The messages in the request will be published on this topic. + // Format is `projects/{project}/topics/{topic}`. + string topic = 1; + + // The messages to publish. + repeated PubsubMessage messages = 2; +} + +// Response for the `Publish` method. +message PublishResponse { + // The server-assigned ID of each published message, in the same order as + // the messages in the request. IDs are guaranteed to be unique within + // the topic. + repeated string message_ids = 1; +} + +// Request for the `ListTopics` method. +message ListTopicsRequest { + // The name of the project in which to list topics. + // Format is `projects/{project-id}`. + string project = 1; + + // Maximum number of topics to return. + int32 page_size = 2; + + // The value returned by the last `ListTopicsResponse`; indicates that this is + // a continuation of a prior `ListTopics` call, and that the system should + // return the next page of data. + string page_token = 3; +} + +// Response for the `ListTopics` method. +message ListTopicsResponse { + // The resulting topics. + repeated Topic topics = 1; + + // If not empty, indicates that there may be more topics that match the + // request; this value should be passed in a new `ListTopicsRequest`. + string next_page_token = 2; +} + +// Request for the `ListTopicSubscriptions` method. +message ListTopicSubscriptionsRequest { + // The name of the topic that subscriptions are attached to. + // Format is `projects/{project}/topics/{topic}`. + string topic = 1; + + // Maximum number of subscription names to return. + int32 page_size = 2; + + // The value returned by the last `ListTopicSubscriptionsResponse`; indicates + // that this is a continuation of a prior `ListTopicSubscriptions` call, and + // that the system should return the next page of data. + string page_token = 3; +} + +// Response for the `ListTopicSubscriptions` method. +message ListTopicSubscriptionsResponse { + // The names of the subscriptions that match the request. + repeated string subscriptions = 1; + + // If not empty, indicates that there may be more subscriptions that match + // the request; this value should be passed in a new + // `ListTopicSubscriptionsRequest` to get more subscriptions. + string next_page_token = 2; +} + +// Request for the `ListTopicSnapshots` method. +message ListTopicSnapshotsRequest { + // The name of the topic that snapshots are attached to. + // Format is `projects/{project}/topics/{topic}`. + string topic = 1; + + // Maximum number of snapshot names to return. + int32 page_size = 2; + + // The value returned by the last `ListTopicSnapshotsResponse`; indicates + // that this is a continuation of a prior `ListTopicSnapshots` call, and + // that the system should return the next page of data. + string page_token = 3; +} + +// Response for the `ListTopicSnapshots` method. +message ListTopicSnapshotsResponse { + // The names of the snapshots that match the request. + repeated string snapshots = 1; + + // If not empty, indicates that there may be more snapshots that match + // the request; this value should be passed in a new + // `ListTopicSnapshotsRequest` to get more snapshots. + string next_page_token = 2; +} + +// Request for the `DeleteTopic` method. +message DeleteTopicRequest { + // Name of the topic to delete. + // Format is `projects/{project}/topics/{topic}`. + string topic = 1; +} + // The service that an application uses to manipulate subscriptions and to // consume messages from a subscription via the `Pull` method or by // establishing a bi-directional stream using the `StreamingPull` method. @@ -238,10 +437,7 @@ service Subscriber { // Seek // operations, which allow you to manage message acknowledgments in bulk. That // is, you can set the acknowledgment state of messages in an existing - // subscription to the state captured by a snapshot.

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. + // subscription to the state captured by a snapshot. rpc GetSnapshot(GetSnapshotRequest) returns (Snapshot) { option (google.api.http) = { get: "/v1/{snapshot=projects/*/snapshots/*}" @@ -253,10 +449,7 @@ service Subscriber { // operations, which allow // you to manage message acknowledgments in bulk. That is, you can set the // acknowledgment state of messages in an existing subscription to the state - // captured by a snapshot.

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. + // captured by a snapshot. rpc ListSnapshots(ListSnapshotsRequest) returns (ListSnapshotsResponse) { option (google.api.http) = { get: "/v1/{project=projects/*}/snapshots" @@ -269,11 +462,7 @@ service Subscriber { // you to manage message acknowledgments in bulk. That is, you can set the // acknowledgment state of messages in an existing subscription to the state // captured by a snapshot. - //

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy.

- // If the snapshot already exists, returns `ALREADY_EXISTS`. + //

If the snapshot already exists, returns `ALREADY_EXISTS`. // If the requested subscription doesn't exist, returns `NOT_FOUND`. // If the backlog in the subscription is too old -- and the resulting snapshot // would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned. @@ -297,11 +486,7 @@ service Subscriber { // operations, which allow // you to manage message acknowledgments in bulk. That is, you can set the // acknowledgment state of messages in an existing subscription to the state - // captured by a snapshot.

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. - // Note that certain properties of a snapshot are not modifiable. + // captured by a snapshot. rpc UpdateSnapshot(UpdateSnapshotRequest) returns (Snapshot) { option (google.api.http) = { patch: "/v1/{snapshot.name=projects/*/snapshots/*}" @@ -315,9 +500,6 @@ service Subscriber { // you to manage message acknowledgments in bulk. That is, you can set the // acknowledgment state of messages in an existing subscription to the state // captured by a snapshot.

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. // When the snapshot is deleted, all messages retained in the snapshot // are immediately dropped. After a snapshot is deleted, a new one may be // created with the same name, but the new one has no association with the old @@ -335,10 +517,7 @@ service Subscriber { // you to manage message acknowledgments in bulk. That is, you can set the // acknowledgment state of messages in an existing subscription to the state // captured by a snapshot. Note that both the subscription and the snapshot - // must be on the same topic.

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. + // must be on the same topic. rpc Seek(SeekRequest) returns (SeekResponse) { option (google.api.http) = { post: "/v1/{subscription=projects/*/subscriptions/*}:seek" @@ -347,204 +526,6 @@ service Subscriber { } } -message MessageStoragePolicy { - // The list of GCP region IDs where messages that are published to the topic - // may be persisted in storage. Messages published by publishers running in - // non-allowed GCP regions (or running outside of GCP altogether) will be - // routed for storage in one of the allowed regions. An empty list indicates a - // misconfiguration at the project or organization level, which will result in - // all Publish operations failing. - repeated string allowed_persistence_regions = 1; -} - -// A topic resource. -message Topic { - // The name of the topic. It must have the format - // `"projects/{project}/topics/{topic}"`. `{topic}` must start with a letter, - // and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), - // underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent - // signs (`%`). It must be between 3 and 255 characters in length, and it - // must not start with `"goog"`. - string name = 1; - - // See Creating and - // managing labels. - map labels = 2; - - // Policy constraining how messages published to the topic may be stored. It - // is determined when the topic is created based on the policy configured at - // the project level. It must not be set by the caller in the request to - // CreateTopic or to UpdateTopic. This field will be populated in the - // responses for GetTopic, CreateTopic, and UpdateTopic: if not present in the - // response, then no constraints are in effect. - MessageStoragePolicy message_storage_policy = 3; -} - -// A message that is published by publishers and consumed by subscribers. The -// message must contain either a non-empty data field or at least one attribute. -// Note that client libraries represent this object differently -// depending on the language. See the corresponding -// client -// library documentation for more information. See -// Quotas and limits -// for more information about message limits. -message PubsubMessage { - // The message data field. If this field is empty, the message must contain - // at least one attribute. - bytes data = 1; - - // Optional attributes for this message. - map attributes = 2; - - // ID of this message, assigned by the server when the message is published. - // Guaranteed to be unique within the topic. This value may be read by a - // subscriber that receives a `PubsubMessage` via a `Pull` call or a push - // delivery. It must not be populated by the publisher in a `Publish` call. - string message_id = 3; - - // The time at which the message was published, populated by the server when - // it receives the `Publish` call. It must not be populated by the - // publisher in a `Publish` call. - google.protobuf.Timestamp publish_time = 4; - - // Identifies related messages for which publish order should be respected. - // If a `Subscription` has `enable_message_ordering` set to `true`, messages - // published with the same `ordering_key` value will be delivered to - // subscribers in the order in which they are received by the Pub/Sub system. - // EXPERIMENTAL: This feature is part of a closed alpha release. This - // API might be changed in backward-incompatible ways and is not recommended - // for production use. It is not subject to any SLA or deprecation policy. - string ordering_key = 5; -} - -// Request for the GetTopic method. -message GetTopicRequest { - // The name of the topic to get. - // Format is `projects/{project}/topics/{topic}`. - string topic = 1; -} - -// Request for the UpdateTopic method. -message UpdateTopicRequest { - // The updated topic object. - Topic topic = 1; - - // Indicates which fields in the provided topic to update. Must be specified - // and non-empty. Note that if `update_mask` contains - // "message_storage_policy" then the new value will be determined based on the - // policy configured at the project or organization level. The - // `message_storage_policy` must not be set in the `topic` provided above. - google.protobuf.FieldMask update_mask = 2; -} - -// Request for the Publish method. -message PublishRequest { - // The messages in the request will be published on this topic. - // Format is `projects/{project}/topics/{topic}`. - string topic = 1; - - // The messages to publish. - repeated PubsubMessage messages = 2; -} - -// Response for the `Publish` method. -message PublishResponse { - // The server-assigned ID of each published message, in the same order as - // the messages in the request. IDs are guaranteed to be unique within - // the topic. - repeated string message_ids = 1; -} - -// Request for the `ListTopics` method. -message ListTopicsRequest { - // The name of the project in which to list topics. - // Format is `projects/{project-id}`. - string project = 1; - - // Maximum number of topics to return. - int32 page_size = 2; - - // The value returned by the last `ListTopicsResponse`; indicates that this is - // a continuation of a prior `ListTopics` call, and that the system should - // return the next page of data. - string page_token = 3; -} - -// Response for the `ListTopics` method. -message ListTopicsResponse { - // The resulting topics. - repeated Topic topics = 1; - - // If not empty, indicates that there may be more topics that match the - // request; this value should be passed in a new `ListTopicsRequest`. - string next_page_token = 2; -} - -// Request for the `ListTopicSubscriptions` method. -message ListTopicSubscriptionsRequest { - // The name of the topic that subscriptions are attached to. - // Format is `projects/{project}/topics/{topic}`. - string topic = 1; - - // Maximum number of subscription names to return. - int32 page_size = 2; - - // The value returned by the last `ListTopicSubscriptionsResponse`; indicates - // that this is a continuation of a prior `ListTopicSubscriptions` call, and - // that the system should return the next page of data. - string page_token = 3; -} - -// Response for the `ListTopicSubscriptions` method. -message ListTopicSubscriptionsResponse { - // The names of the subscriptions that match the request. - repeated string subscriptions = 1; - - // If not empty, indicates that there may be more subscriptions that match - // the request; this value should be passed in a new - // `ListTopicSubscriptionsRequest` to get more subscriptions. - string next_page_token = 2; -} - -// Request for the `ListTopicSnapshots` method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. -message ListTopicSnapshotsRequest { - // The name of the topic that snapshots are attached to. - // Format is `projects/{project}/topics/{topic}`. - string topic = 1; - - // Maximum number of snapshot names to return. - int32 page_size = 2; - - // The value returned by the last `ListTopicSnapshotsResponse`; indicates - // that this is a continuation of a prior `ListTopicSnapshots` call, and - // that the system should return the next page of data. - string page_token = 3; -} - -// Response for the `ListTopicSnapshots` method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. -message ListTopicSnapshotsResponse { - // The names of the snapshots that match the request. - repeated string snapshots = 1; - - // If not empty, indicates that there may be more snapshots that match - // the request; this value should be passed in a new - // `ListTopicSnapshotsRequest` to get more snapshots. - string next_page_token = 2; -} - -// Request for the `DeleteTopic` method. -message DeleteTopicRequest { - // Name of the topic to delete. - // Format is `projects/{project}/topics/{topic}`. - string topic = 1; -} - // A subscription resource. message Subscription { // The name of the subscription. It must have the format @@ -595,10 +576,6 @@ message Subscription { // // Seek to a timestamp. - //

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. bool retain_acked_messages = 7; // How long to retain unacknowledged messages in the subscription's backlog, @@ -606,10 +583,7 @@ message Subscription { // If `retain_acked_messages` is true, then this also configures the retention // of acknowledged messages, and thus configures how far back in time a `Seek` // can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10 - // minutes.

- // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. + // minutes. google.protobuf.Duration message_retention_duration = 8; // See Creating and @@ -631,9 +605,6 @@ message Subscription { // operations on the subscription. If `expiration_policy` is not set, a // *default policy* with `ttl` of 31 days will be used. The minimum allowed // value for `expiration_policy.ttl` is 1 day. - // BETA: This feature is part of a beta release. This API might be - // changed in backward-incompatible ways and is not recommended for production - // use. It is not subject to any SLA or deprecation policy. ExpirationPolicy expiration_policy = 11; } @@ -651,6 +622,26 @@ message ExpirationPolicy { // Configuration for a push delivery endpoint. message PushConfig { + // Contains information needed for generating an + // [OpenID Connect + // token](https://developers.google.com/identity/protocols/OpenIDConnect). + message OidcToken { + // [Service account + // email](https://cloud.google.com/iam/docs/service-accounts) + // to be used for generating the OIDC token. The caller (for + // CreateSubscription, UpdateSubscription, and ModifyPushConfig RPCs) must + // have the iam.serviceAccounts.actAs permission for the service account. + string service_account_email = 1; + + // Audience to be used when generating OIDC token. The audience claim + // identifies the recipients that the JWT is intended for. The audience + // value is a single case-sensitive string. Having multiple values (array) + // for the audience field is not supported. More info about the OIDC JWT + // token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 + // Note: if not specified, the Push endpoint URL will be used. + string audience = 2; + } + // A URL locating the endpoint to which messages should be pushed. // For example, a Webhook endpoint might use "https://example.com/push". string push_endpoint = 1; @@ -683,36 +674,11 @@ message PushConfig { // default to allow requests only from the Cloud Pub/Sub system, for example. // This field is optional and should be set only by users interested in // authenticated push. - // EXPERIMENTAL: This field a part of a closed alpha that may not be - // accessible to all users. It may be changed in backward-incompatible ways - // and is not subject to any SLA or deprecation policy. It is not recommended - // for production use. oneof authentication_method { // If specified, Pub/Sub will generate and attach an OIDC JWT token as an // `Authorization` header in the HTTP request for every pushed message. OidcToken oidc_token = 3; } - - // Contains information needed for generating an - // [OpenID Connect - // token](https://developers.google.com/identity/protocols/OpenIDConnect). - message OidcToken { - // [Service account - // email](https://cloud.google.com/iam/docs/service-accounts) - // to be used for generating the OIDC token. The caller (for - // CreateSubscription, UpdateSubscription, and ModifyPushConfig calls) must - // have the iam.serviceAccounts.actAs permission for the service account. - // See https://cloud.google.com/iam/docs/understanding-roles#service-accounts-roles. - string service_account_email = 1; - - // Audience to be used when generating OIDC token. The audience claim - // identifies the recipients that the JWT is intended for. The audience - // value is a single case-sensitive string. Having multiple values (array) - // for the audience field is not supported. More info about the OIDC JWT - // token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 - // Note: if not specified, the Push endpoint URL will be used. - string audience = 2; - } } // A message and its corresponding acknowledgment ID. @@ -897,10 +863,7 @@ message StreamingPullResponse { repeated ReceivedMessage received_messages = 1; } -// Request for the `CreateSnapshot` method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. +// Request for the `CreateSnapshot` method. message CreateSnapshotRequest { // Optional user-provided name for this snapshot. // If the name is not provided in the request, the server will assign a random @@ -927,10 +890,7 @@ message CreateSnapshotRequest { map labels = 3; } -// Request for the UpdateSnapshot method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. +// Request for the UpdateSnapshot method. message UpdateSnapshotRequest { // The updated snapshot object. Snapshot snapshot = 1; @@ -945,10 +905,7 @@ message UpdateSnapshotRequest { // operations, which allow // you to manage message acknowledgments in bulk. That is, you can set the // acknowledgment state of messages in an existing subscription to the state -// captured by a snapshot.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. +// captured by a snapshot. message Snapshot { // The name of the snapshot. string name = 1; @@ -973,20 +930,14 @@ message Snapshot { map labels = 4; } -// Request for the GetSnapshot method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. +// Request for the GetSnapshot method. message GetSnapshotRequest { // The name of the snapshot to get. // Format is `projects/{project}/snapshots/{snap}`. string snapshot = 1; } -// Request for the `ListSnapshots` method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. +// Request for the `ListSnapshots` method. message ListSnapshotsRequest { // The name of the project in which to list snapshots. // Format is `projects/{project-id}`. @@ -1001,10 +952,7 @@ message ListSnapshotsRequest { string page_token = 3; } -// Response for the `ListSnapshots` method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. +// Response for the `ListSnapshots` method. message ListSnapshotsResponse { // The resulting snapshots. repeated Snapshot snapshots = 1; @@ -1014,20 +962,14 @@ message ListSnapshotsResponse { string next_page_token = 2; } -// Request for the `DeleteSnapshot` method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. +// Request for the `DeleteSnapshot` method. message DeleteSnapshotRequest { // The name of the snapshot to delete. // Format is `projects/{project}/snapshots/{snap}`. string snapshot = 1; } -// Request for the `Seek` method.

-// BETA: This feature is part of a beta release. This API might be -// changed in backward-incompatible ways and is not recommended for production -// use. It is not subject to any SLA or deprecation policy. +// Request for the `Seek` method. message SeekRequest { // The subscription to affect. string subscription = 1; diff --git a/pubsub/google/cloud/pubsub_v1/proto/pubsub_pb2.py b/pubsub/google/cloud/pubsub_v1/proto/pubsub_pb2.py index 7b66db7fe659..ace1751bbf46 100644 --- a/pubsub/google/cloud/pubsub_v1/proto/pubsub_pb2.py +++ b/pubsub/google/cloud/pubsub_v1/proto/pubsub_pb2.py @@ -15,6 +15,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 +from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 @@ -29,10 +30,11 @@ "\n\024com.google.pubsub.v1B\013PubsubProtoP\001Z6google.golang.org/genproto/googleapis/pubsub/v1;pubsub\370\001\001\252\002\026Google.Cloud.PubSub.V1\312\002\026Google\\Cloud\\PubSub\\V1\352\002\031Google::Cloud::PubSub::V1" ), serialized_pb=_b( - '\n)google/cloud/pubsub_v1/proto/pubsub.proto\x12\x10google.pubsub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto";\n\x14MessageStoragePolicy\x12#\n\x1b\x61llowed_persistence_regions\x18\x01 \x03(\t"\xc1\x01\n\x05Topic\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x06labels\x18\x02 \x03(\x0b\x32#.google.pubsub.v1.Topic.LabelsEntry\x12\x46\n\x16message_storage_policy\x18\x03 \x01(\x0b\x32&.google.pubsub.v1.MessageStoragePolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\xf1\x01\n\rPubsubMessage\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x43\n\nattributes\x18\x02 \x03(\x0b\x32/.google.pubsub.v1.PubsubMessage.AttributesEntry\x12\x12\n\nmessage_id\x18\x03 \x01(\t\x12\x30\n\x0cpublish_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cordering_key\x18\x05 \x01(\t\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01" \n\x0fGetTopicRequest\x12\r\n\x05topic\x18\x01 \x01(\t"m\n\x12UpdateTopicRequest\x12&\n\x05topic\x18\x01 \x01(\x0b\x32\x17.google.pubsub.v1.Topic\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"R\n\x0ePublishRequest\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x31\n\x08messages\x18\x02 \x03(\x0b\x32\x1f.google.pubsub.v1.PubsubMessage"&\n\x0fPublishResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t"K\n\x11ListTopicsRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"V\n\x12ListTopicsResponse\x12\'\n\x06topics\x18\x01 \x03(\x0b\x32\x17.google.pubsub.v1.Topic\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"U\n\x1dListTopicSubscriptionsRequest\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"P\n\x1eListTopicSubscriptionsResponse\x12\x15\n\rsubscriptions\x18\x01 \x03(\t\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"Q\n\x19ListTopicSnapshotsRequest\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"H\n\x1aListTopicSnapshotsResponse\x12\x11\n\tsnapshots\x18\x01 \x03(\t\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"#\n\x12\x44\x65leteTopicRequest\x12\r\n\x05topic\x18\x01 \x01(\t"\xa5\x03\n\x0cSubscription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x31\n\x0bpush_config\x18\x04 \x01(\x0b\x32\x1c.google.pubsub.v1.PushConfig\x12\x1c\n\x14\x61\x63k_deadline_seconds\x18\x05 \x01(\x05\x12\x1d\n\x15retain_acked_messages\x18\x07 \x01(\x08\x12=\n\x1amessage_retention_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12:\n\x06labels\x18\t \x03(\x0b\x32*.google.pubsub.v1.Subscription.LabelsEntry\x12\x1f\n\x17\x65nable_message_ordering\x18\n \x01(\x08\x12=\n\x11\x65xpiration_policy\x18\x0b \x01(\x0b\x32".google.pubsub.v1.ExpirationPolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01":\n\x10\x45xpirationPolicy\x12&\n\x03ttl\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration"\xad\x02\n\nPushConfig\x12\x15\n\rpush_endpoint\x18\x01 \x01(\t\x12@\n\nattributes\x18\x02 \x03(\x0b\x32,.google.pubsub.v1.PushConfig.AttributesEntry\x12<\n\noidc_token\x18\x03 \x01(\x0b\x32&.google.pubsub.v1.PushConfig.OidcTokenH\x00\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\tOidcToken\x12\x1d\n\x15service_account_email\x18\x01 \x01(\t\x12\x10\n\x08\x61udience\x18\x02 \x01(\tB\x17\n\x15\x61uthentication_method"S\n\x0fReceivedMessage\x12\x0e\n\x06\x61\x63k_id\x18\x01 \x01(\t\x12\x30\n\x07message\x18\x02 \x01(\x0b\x32\x1f.google.pubsub.v1.PubsubMessage".\n\x16GetSubscriptionRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t"\x82\x01\n\x19UpdateSubscriptionRequest\x12\x34\n\x0csubscription\x18\x01 \x01(\x0b\x32\x1e.google.pubsub.v1.Subscription\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"R\n\x18ListSubscriptionsRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"k\n\x19ListSubscriptionsResponse\x12\x35\n\rsubscriptions\x18\x01 \x03(\x0b\x32\x1e.google.pubsub.v1.Subscription\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"1\n\x19\x44\x65leteSubscriptionRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t"b\n\x17ModifyPushConfigRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x31\n\x0bpush_config\x18\x02 \x01(\x0b\x32\x1c.google.pubsub.v1.PushConfig"U\n\x0bPullRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x1a\n\x12return_immediately\x18\x02 \x01(\x08\x12\x14\n\x0cmax_messages\x18\x03 \x01(\x05"L\n\x0cPullResponse\x12<\n\x11received_messages\x18\x01 \x03(\x0b\x32!.google.pubsub.v1.ReceivedMessage"_\n\x18ModifyAckDeadlineRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63k_ids\x18\x04 \x03(\t\x12\x1c\n\x14\x61\x63k_deadline_seconds\x18\x03 \x01(\x05";\n\x12\x41\x63knowledgeRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63k_ids\x18\x02 \x03(\t"\xa4\x01\n\x14StreamingPullRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63k_ids\x18\x02 \x03(\t\x12\x1f\n\x17modify_deadline_seconds\x18\x03 \x03(\x05\x12\x1f\n\x17modify_deadline_ack_ids\x18\x04 \x03(\t\x12#\n\x1bstream_ack_deadline_seconds\x18\x05 \x01(\x05"U\n\x15StreamingPullResponse\x12<\n\x11received_messages\x18\x01 \x03(\x0b\x32!.google.pubsub.v1.ReceivedMessage"\xaf\x01\n\x15\x43reateSnapshotRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0csubscription\x18\x02 \x01(\t\x12\x43\n\x06labels\x18\x03 \x03(\x0b\x32\x33.google.pubsub.v1.CreateSnapshotRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"v\n\x15UpdateSnapshotRequest\x12,\n\x08snapshot\x18\x01 \x01(\x0b\x32\x1a.google.pubsub.v1.Snapshot\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"\xbf\x01\n\x08Snapshot\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12/\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x06labels\x18\x04 \x03(\x0b\x32&.google.pubsub.v1.Snapshot.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"&\n\x12GetSnapshotRequest\x12\x10\n\x08snapshot\x18\x01 \x01(\t"N\n\x14ListSnapshotsRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"_\n\x15ListSnapshotsResponse\x12-\n\tsnapshots\x18\x01 \x03(\x0b\x32\x1a.google.pubsub.v1.Snapshot\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t")\n\x15\x44\x65leteSnapshotRequest\x12\x10\n\x08snapshot\x18\x01 \x01(\t"m\n\x0bSeekRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12*\n\x04time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x12\n\x08snapshot\x18\x03 \x01(\tH\x00\x42\x08\n\x06target"\x0e\n\x0cSeekResponse2\xbf\x08\n\tPublisher\x12j\n\x0b\x43reateTopic\x12\x17.google.pubsub.v1.Topic\x1a\x17.google.pubsub.v1.Topic")\x82\xd3\xe4\x93\x02#\x1a\x1e/v1/{name=projects/*/topics/*}:\x01*\x12}\n\x0bUpdateTopic\x12$.google.pubsub.v1.UpdateTopicRequest\x1a\x17.google.pubsub.v1.Topic"/\x82\xd3\xe4\x93\x02)2$/v1/{topic.name=projects/*/topics/*}:\x01*\x12\x82\x01\n\x07Publish\x12 .google.pubsub.v1.PublishRequest\x1a!.google.pubsub.v1.PublishResponse"2\x82\xd3\xe4\x93\x02,"\'/v1/{topic=projects/*/topics/*}:publish:\x01*\x12o\n\x08GetTopic\x12!.google.pubsub.v1.GetTopicRequest\x1a\x17.google.pubsub.v1.Topic"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v1/{topic=projects/*/topics/*}\x12\x80\x01\n\nListTopics\x12#.google.pubsub.v1.ListTopicsRequest\x1a$.google.pubsub.v1.ListTopicsResponse"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v1/{project=projects/*}/topics\x12\xb2\x01\n\x16ListTopicSubscriptions\x12/.google.pubsub.v1.ListTopicSubscriptionsRequest\x1a\x30.google.pubsub.v1.ListTopicSubscriptionsResponse"5\x82\xd3\xe4\x93\x02/\x12-/v1/{topic=projects/*/topics/*}/subscriptions\x12\xa2\x01\n\x12ListTopicSnapshots\x12+.google.pubsub.v1.ListTopicSnapshotsRequest\x1a,.google.pubsub.v1.ListTopicSnapshotsResponse"1\x82\xd3\xe4\x93\x02+\x12)/v1/{topic=projects/*/topics/*}/snapshots\x12t\n\x0b\x44\x65leteTopic\x12$.google.pubsub.v1.DeleteTopicRequest\x1a\x16.google.protobuf.Empty"\'\x82\xd3\xe4\x93\x02!*\x1f/v1/{topic=projects/*/topics/*}2\xf9\x11\n\nSubscriber\x12\x86\x01\n\x12\x43reateSubscription\x12\x1e.google.pubsub.v1.Subscription\x1a\x1e.google.pubsub.v1.Subscription"0\x82\xd3\xe4\x93\x02*\x1a%/v1/{name=projects/*/subscriptions/*}:\x01*\x12\x92\x01\n\x0fGetSubscription\x12(.google.pubsub.v1.GetSubscriptionRequest\x1a\x1e.google.pubsub.v1.Subscription"5\x82\xd3\xe4\x93\x02/\x12-/v1/{subscription=projects/*/subscriptions/*}\x12\xa0\x01\n\x12UpdateSubscription\x12+.google.pubsub.v1.UpdateSubscriptionRequest\x1a\x1e.google.pubsub.v1.Subscription"=\x82\xd3\xe4\x93\x02\x37\x32\x32/v1/{subscription.name=projects/*/subscriptions/*}:\x01*\x12\x9c\x01\n\x11ListSubscriptions\x12*.google.pubsub.v1.ListSubscriptionsRequest\x1a+.google.pubsub.v1.ListSubscriptionsResponse".\x82\xd3\xe4\x93\x02(\x12&/v1/{project=projects/*}/subscriptions\x12\x90\x01\n\x12\x44\x65leteSubscription\x12+.google.pubsub.v1.DeleteSubscriptionRequest\x1a\x16.google.protobuf.Empty"5\x82\xd3\xe4\x93\x02/*-/v1/{subscription=projects/*/subscriptions/*}\x12\xa3\x01\n\x11ModifyAckDeadline\x12*.google.pubsub.v1.ModifyAckDeadlineRequest\x1a\x16.google.protobuf.Empty"J\x82\xd3\xe4\x93\x02\x44"?/v1/{subscription=projects/*/subscriptions/*}:modifyAckDeadline:\x01*\x12\x91\x01\n\x0b\x41\x63knowledge\x12$.google.pubsub.v1.AcknowledgeRequest\x1a\x16.google.protobuf.Empty"D\x82\xd3\xe4\x93\x02>"9/v1/{subscription=projects/*/subscriptions/*}:acknowledge:\x01*\x12\x84\x01\n\x04Pull\x12\x1d.google.pubsub.v1.PullRequest\x1a\x1e.google.pubsub.v1.PullResponse"=\x82\xd3\xe4\x93\x02\x37"2/v1/{subscription=projects/*/subscriptions/*}:pull:\x01*\x12\x66\n\rStreamingPull\x12&.google.pubsub.v1.StreamingPullRequest\x1a\'.google.pubsub.v1.StreamingPullResponse"\x00(\x01\x30\x01\x12\xa0\x01\n\x10ModifyPushConfig\x12).google.pubsub.v1.ModifyPushConfigRequest\x1a\x16.google.protobuf.Empty"I\x82\xd3\xe4\x93\x02\x43">/v1/{subscription=projects/*/subscriptions/*}:modifyPushConfig:\x01*\x12~\n\x0bGetSnapshot\x12$.google.pubsub.v1.GetSnapshotRequest\x1a\x1a.google.pubsub.v1.Snapshot"-\x82\xd3\xe4\x93\x02\'\x12%/v1/{snapshot=projects/*/snapshots/*}\x12\x8c\x01\n\rListSnapshots\x12&.google.pubsub.v1.ListSnapshotsRequest\x1a\'.google.pubsub.v1.ListSnapshotsResponse"*\x82\xd3\xe4\x93\x02$\x12"/v1/{project=projects/*}/snapshots\x12\x83\x01\n\x0e\x43reateSnapshot\x12\'.google.pubsub.v1.CreateSnapshotRequest\x1a\x1a.google.pubsub.v1.Snapshot",\x82\xd3\xe4\x93\x02&\x1a!/v1/{name=projects/*/snapshots/*}:\x01*\x12\x8c\x01\n\x0eUpdateSnapshot\x12\'.google.pubsub.v1.UpdateSnapshotRequest\x1a\x1a.google.pubsub.v1.Snapshot"5\x82\xd3\xe4\x93\x02/2*/v1/{snapshot.name=projects/*/snapshots/*}:\x01*\x12\x80\x01\n\x0e\x44\x65leteSnapshot\x12\'.google.pubsub.v1.DeleteSnapshotRequest\x1a\x16.google.protobuf.Empty"-\x82\xd3\xe4\x93\x02\'*%/v1/{snapshot=projects/*/snapshots/*}\x12\x84\x01\n\x04Seek\x12\x1d.google.pubsub.v1.SeekRequest\x1a\x1e.google.pubsub.v1.SeekResponse"=\x82\xd3\xe4\x93\x02\x37"2/v1/{subscription=projects/*/subscriptions/*}:seek:\x01*B\xae\x01\n\x14\x63om.google.pubsub.v1B\x0bPubsubProtoP\x01Z6google.golang.org/genproto/googleapis/pubsub/v1;pubsub\xf8\x01\x01\xaa\x02\x16Google.Cloud.PubSub.V1\xca\x02\x16Google\\Cloud\\PubSub\\V1\xea\x02\x19Google::Cloud::PubSub::V1b\x06proto3' + '\n)google/cloud/pubsub_v1/proto/pubsub.proto\x12\x10google.pubsub.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto";\n\x14MessageStoragePolicy\x12#\n\x1b\x61llowed_persistence_regions\x18\x01 \x03(\t"\xd7\x01\n\x05Topic\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x06labels\x18\x02 \x03(\x0b\x32#.google.pubsub.v1.Topic.LabelsEntry\x12\x46\n\x16message_storage_policy\x18\x03 \x01(\x0b\x32&.google.pubsub.v1.MessageStoragePolicy\x12\x14\n\x0ckms_key_name\x18\x05 \x01(\t\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\xf1\x01\n\rPubsubMessage\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x43\n\nattributes\x18\x02 \x03(\x0b\x32/.google.pubsub.v1.PubsubMessage.AttributesEntry\x12\x12\n\nmessage_id\x18\x03 \x01(\t\x12\x30\n\x0cpublish_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0cordering_key\x18\x05 \x01(\t\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01" \n\x0fGetTopicRequest\x12\r\n\x05topic\x18\x01 \x01(\t"m\n\x12UpdateTopicRequest\x12&\n\x05topic\x18\x01 \x01(\x0b\x32\x17.google.pubsub.v1.Topic\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"R\n\x0ePublishRequest\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x31\n\x08messages\x18\x02 \x03(\x0b\x32\x1f.google.pubsub.v1.PubsubMessage"&\n\x0fPublishResponse\x12\x13\n\x0bmessage_ids\x18\x01 \x03(\t"K\n\x11ListTopicsRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"V\n\x12ListTopicsResponse\x12\'\n\x06topics\x18\x01 \x03(\x0b\x32\x17.google.pubsub.v1.Topic\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"U\n\x1dListTopicSubscriptionsRequest\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"P\n\x1eListTopicSubscriptionsResponse\x12\x15\n\rsubscriptions\x18\x01 \x03(\t\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"Q\n\x19ListTopicSnapshotsRequest\x12\r\n\x05topic\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"H\n\x1aListTopicSnapshotsResponse\x12\x11\n\tsnapshots\x18\x01 \x03(\t\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"#\n\x12\x44\x65leteTopicRequest\x12\r\n\x05topic\x18\x01 \x01(\t"\xa5\x03\n\x0cSubscription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12\x31\n\x0bpush_config\x18\x04 \x01(\x0b\x32\x1c.google.pubsub.v1.PushConfig\x12\x1c\n\x14\x61\x63k_deadline_seconds\x18\x05 \x01(\x05\x12\x1d\n\x15retain_acked_messages\x18\x07 \x01(\x08\x12=\n\x1amessage_retention_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x12:\n\x06labels\x18\t \x03(\x0b\x32*.google.pubsub.v1.Subscription.LabelsEntry\x12\x1f\n\x17\x65nable_message_ordering\x18\n \x01(\x08\x12=\n\x11\x65xpiration_policy\x18\x0b \x01(\x0b\x32".google.pubsub.v1.ExpirationPolicy\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01":\n\x10\x45xpirationPolicy\x12&\n\x03ttl\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration"\xad\x02\n\nPushConfig\x12\x15\n\rpush_endpoint\x18\x01 \x01(\t\x12@\n\nattributes\x18\x02 \x03(\x0b\x32,.google.pubsub.v1.PushConfig.AttributesEntry\x12<\n\noidc_token\x18\x03 \x01(\x0b\x32&.google.pubsub.v1.PushConfig.OidcTokenH\x00\x1a<\n\tOidcToken\x12\x1d\n\x15service_account_email\x18\x01 \x01(\t\x12\x10\n\x08\x61udience\x18\x02 \x01(\t\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x17\n\x15\x61uthentication_method"S\n\x0fReceivedMessage\x12\x0e\n\x06\x61\x63k_id\x18\x01 \x01(\t\x12\x30\n\x07message\x18\x02 \x01(\x0b\x32\x1f.google.pubsub.v1.PubsubMessage".\n\x16GetSubscriptionRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t"\x82\x01\n\x19UpdateSubscriptionRequest\x12\x34\n\x0csubscription\x18\x01 \x01(\x0b\x32\x1e.google.pubsub.v1.Subscription\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"R\n\x18ListSubscriptionsRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"k\n\x19ListSubscriptionsResponse\x12\x35\n\rsubscriptions\x18\x01 \x03(\x0b\x32\x1e.google.pubsub.v1.Subscription\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"1\n\x19\x44\x65leteSubscriptionRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t"b\n\x17ModifyPushConfigRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x31\n\x0bpush_config\x18\x02 \x01(\x0b\x32\x1c.google.pubsub.v1.PushConfig"U\n\x0bPullRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x1a\n\x12return_immediately\x18\x02 \x01(\x08\x12\x14\n\x0cmax_messages\x18\x03 \x01(\x05"L\n\x0cPullResponse\x12<\n\x11received_messages\x18\x01 \x03(\x0b\x32!.google.pubsub.v1.ReceivedMessage"_\n\x18ModifyAckDeadlineRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63k_ids\x18\x04 \x03(\t\x12\x1c\n\x14\x61\x63k_deadline_seconds\x18\x03 \x01(\x05";\n\x12\x41\x63knowledgeRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63k_ids\x18\x02 \x03(\t"\xa4\x01\n\x14StreamingPullRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x63k_ids\x18\x02 \x03(\t\x12\x1f\n\x17modify_deadline_seconds\x18\x03 \x03(\x05\x12\x1f\n\x17modify_deadline_ack_ids\x18\x04 \x03(\t\x12#\n\x1bstream_ack_deadline_seconds\x18\x05 \x01(\x05"U\n\x15StreamingPullResponse\x12<\n\x11received_messages\x18\x01 \x03(\x0b\x32!.google.pubsub.v1.ReceivedMessage"\xaf\x01\n\x15\x43reateSnapshotRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0csubscription\x18\x02 \x01(\t\x12\x43\n\x06labels\x18\x03 \x03(\x0b\x32\x33.google.pubsub.v1.CreateSnapshotRequest.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"v\n\x15UpdateSnapshotRequest\x12,\n\x08snapshot\x18\x01 \x01(\x0b\x32\x1a.google.pubsub.v1.Snapshot\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"\xbf\x01\n\x08Snapshot\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05topic\x18\x02 \x01(\t\x12/\n\x0b\x65xpire_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x06labels\x18\x04 \x03(\x0b\x32&.google.pubsub.v1.Snapshot.LabelsEntry\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"&\n\x12GetSnapshotRequest\x12\x10\n\x08snapshot\x18\x01 \x01(\t"N\n\x14ListSnapshotsRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t"_\n\x15ListSnapshotsResponse\x12-\n\tsnapshots\x18\x01 \x03(\x0b\x32\x1a.google.pubsub.v1.Snapshot\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t")\n\x15\x44\x65leteSnapshotRequest\x12\x10\n\x08snapshot\x18\x01 \x01(\t"m\n\x0bSeekRequest\x12\x14\n\x0csubscription\x18\x01 \x01(\t\x12*\n\x04time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\x12\n\x08snapshot\x18\x03 \x01(\tH\x00\x42\x08\n\x06target"\x0e\n\x0cSeekResponse2\xbf\x08\n\tPublisher\x12j\n\x0b\x43reateTopic\x12\x17.google.pubsub.v1.Topic\x1a\x17.google.pubsub.v1.Topic")\x82\xd3\xe4\x93\x02#\x1a\x1e/v1/{name=projects/*/topics/*}:\x01*\x12}\n\x0bUpdateTopic\x12$.google.pubsub.v1.UpdateTopicRequest\x1a\x17.google.pubsub.v1.Topic"/\x82\xd3\xe4\x93\x02)2$/v1/{topic.name=projects/*/topics/*}:\x01*\x12\x82\x01\n\x07Publish\x12 .google.pubsub.v1.PublishRequest\x1a!.google.pubsub.v1.PublishResponse"2\x82\xd3\xe4\x93\x02,"\'/v1/{topic=projects/*/topics/*}:publish:\x01*\x12o\n\x08GetTopic\x12!.google.pubsub.v1.GetTopicRequest\x1a\x17.google.pubsub.v1.Topic"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v1/{topic=projects/*/topics/*}\x12\x80\x01\n\nListTopics\x12#.google.pubsub.v1.ListTopicsRequest\x1a$.google.pubsub.v1.ListTopicsResponse"\'\x82\xd3\xe4\x93\x02!\x12\x1f/v1/{project=projects/*}/topics\x12\xb2\x01\n\x16ListTopicSubscriptions\x12/.google.pubsub.v1.ListTopicSubscriptionsRequest\x1a\x30.google.pubsub.v1.ListTopicSubscriptionsResponse"5\x82\xd3\xe4\x93\x02/\x12-/v1/{topic=projects/*/topics/*}/subscriptions\x12\xa2\x01\n\x12ListTopicSnapshots\x12+.google.pubsub.v1.ListTopicSnapshotsRequest\x1a,.google.pubsub.v1.ListTopicSnapshotsResponse"1\x82\xd3\xe4\x93\x02+\x12)/v1/{topic=projects/*/topics/*}/snapshots\x12t\n\x0b\x44\x65leteTopic\x12$.google.pubsub.v1.DeleteTopicRequest\x1a\x16.google.protobuf.Empty"\'\x82\xd3\xe4\x93\x02!*\x1f/v1/{topic=projects/*/topics/*}2\xf9\x11\n\nSubscriber\x12\x86\x01\n\x12\x43reateSubscription\x12\x1e.google.pubsub.v1.Subscription\x1a\x1e.google.pubsub.v1.Subscription"0\x82\xd3\xe4\x93\x02*\x1a%/v1/{name=projects/*/subscriptions/*}:\x01*\x12\x92\x01\n\x0fGetSubscription\x12(.google.pubsub.v1.GetSubscriptionRequest\x1a\x1e.google.pubsub.v1.Subscription"5\x82\xd3\xe4\x93\x02/\x12-/v1/{subscription=projects/*/subscriptions/*}\x12\xa0\x01\n\x12UpdateSubscription\x12+.google.pubsub.v1.UpdateSubscriptionRequest\x1a\x1e.google.pubsub.v1.Subscription"=\x82\xd3\xe4\x93\x02\x37\x32\x32/v1/{subscription.name=projects/*/subscriptions/*}:\x01*\x12\x9c\x01\n\x11ListSubscriptions\x12*.google.pubsub.v1.ListSubscriptionsRequest\x1a+.google.pubsub.v1.ListSubscriptionsResponse".\x82\xd3\xe4\x93\x02(\x12&/v1/{project=projects/*}/subscriptions\x12\x90\x01\n\x12\x44\x65leteSubscription\x12+.google.pubsub.v1.DeleteSubscriptionRequest\x1a\x16.google.protobuf.Empty"5\x82\xd3\xe4\x93\x02/*-/v1/{subscription=projects/*/subscriptions/*}\x12\xa3\x01\n\x11ModifyAckDeadline\x12*.google.pubsub.v1.ModifyAckDeadlineRequest\x1a\x16.google.protobuf.Empty"J\x82\xd3\xe4\x93\x02\x44"?/v1/{subscription=projects/*/subscriptions/*}:modifyAckDeadline:\x01*\x12\x91\x01\n\x0b\x41\x63knowledge\x12$.google.pubsub.v1.AcknowledgeRequest\x1a\x16.google.protobuf.Empty"D\x82\xd3\xe4\x93\x02>"9/v1/{subscription=projects/*/subscriptions/*}:acknowledge:\x01*\x12\x84\x01\n\x04Pull\x12\x1d.google.pubsub.v1.PullRequest\x1a\x1e.google.pubsub.v1.PullResponse"=\x82\xd3\xe4\x93\x02\x37"2/v1/{subscription=projects/*/subscriptions/*}:pull:\x01*\x12\x66\n\rStreamingPull\x12&.google.pubsub.v1.StreamingPullRequest\x1a\'.google.pubsub.v1.StreamingPullResponse"\x00(\x01\x30\x01\x12\xa0\x01\n\x10ModifyPushConfig\x12).google.pubsub.v1.ModifyPushConfigRequest\x1a\x16.google.protobuf.Empty"I\x82\xd3\xe4\x93\x02\x43">/v1/{subscription=projects/*/subscriptions/*}:modifyPushConfig:\x01*\x12~\n\x0bGetSnapshot\x12$.google.pubsub.v1.GetSnapshotRequest\x1a\x1a.google.pubsub.v1.Snapshot"-\x82\xd3\xe4\x93\x02\'\x12%/v1/{snapshot=projects/*/snapshots/*}\x12\x8c\x01\n\rListSnapshots\x12&.google.pubsub.v1.ListSnapshotsRequest\x1a\'.google.pubsub.v1.ListSnapshotsResponse"*\x82\xd3\xe4\x93\x02$\x12"/v1/{project=projects/*}/snapshots\x12\x83\x01\n\x0e\x43reateSnapshot\x12\'.google.pubsub.v1.CreateSnapshotRequest\x1a\x1a.google.pubsub.v1.Snapshot",\x82\xd3\xe4\x93\x02&\x1a!/v1/{name=projects/*/snapshots/*}:\x01*\x12\x8c\x01\n\x0eUpdateSnapshot\x12\'.google.pubsub.v1.UpdateSnapshotRequest\x1a\x1a.google.pubsub.v1.Snapshot"5\x82\xd3\xe4\x93\x02/2*/v1/{snapshot.name=projects/*/snapshots/*}:\x01*\x12\x80\x01\n\x0e\x44\x65leteSnapshot\x12\'.google.pubsub.v1.DeleteSnapshotRequest\x1a\x16.google.protobuf.Empty"-\x82\xd3\xe4\x93\x02\'*%/v1/{snapshot=projects/*/snapshots/*}\x12\x84\x01\n\x04Seek\x12\x1d.google.pubsub.v1.SeekRequest\x1a\x1e.google.pubsub.v1.SeekResponse"=\x82\xd3\xe4\x93\x02\x37"2/v1/{subscription=projects/*/subscriptions/*}:seek:\x01*B\xae\x01\n\x14\x63om.google.pubsub.v1B\x0bPubsubProtoP\x01Z6google.golang.org/genproto/googleapis/pubsub/v1;pubsub\xf8\x01\x01\xaa\x02\x16Google.Cloud.PubSub.V1\xca\x02\x16Google\\Cloud\\PubSub\\V1\xea\x02\x19Google::Cloud::PubSub::V1b\x06proto3' ), dependencies=[ google_dot_api_dot_annotations__pb2.DESCRIPTOR, + google_dot_api_dot_resource__pb2.DESCRIPTOR, google_dot_protobuf_dot_duration__pb2.DESCRIPTOR, google_dot_protobuf_dot_empty__pb2.DESCRIPTOR, google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR, @@ -75,8 +77,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=221, - serialized_end=280, + serialized_start=248, + serialized_end=307, ) @@ -132,8 +134,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=431, - serialized_end=476, + serialized_start=480, + serialized_end=525, ) _TOPIC = _descriptor.Descriptor( @@ -197,6 +199,24 @@ serialized_options=None, file=DESCRIPTOR, ), + _descriptor.FieldDescriptor( + name="kms_key_name", + full_name="google.pubsub.v1.Topic.kms_key_name", + index=3, + number=5, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + ), ], extensions=[], nested_types=[_TOPIC_LABELSENTRY], @@ -206,8 +226,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=283, - serialized_end=476, + serialized_start=310, + serialized_end=525, ) @@ -263,8 +283,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=671, - serialized_end=720, + serialized_start=720, + serialized_end=769, ) _PUBSUBMESSAGE = _descriptor.Descriptor( @@ -373,8 +393,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=479, - serialized_end=720, + serialized_start=528, + serialized_end=769, ) @@ -412,8 +432,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=722, - serialized_end=754, + serialized_start=771, + serialized_end=803, ) @@ -469,8 +489,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=756, - serialized_end=865, + serialized_start=805, + serialized_end=914, ) @@ -526,8 +546,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=867, - serialized_end=949, + serialized_start=916, + serialized_end=998, ) @@ -565,8 +585,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=951, - serialized_end=989, + serialized_start=1000, + serialized_end=1038, ) @@ -640,8 +660,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=991, - serialized_end=1066, + serialized_start=1040, + serialized_end=1115, ) @@ -697,8 +717,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1068, - serialized_end=1154, + serialized_start=1117, + serialized_end=1203, ) @@ -772,8 +792,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1156, - serialized_end=1241, + serialized_start=1205, + serialized_end=1290, ) @@ -829,8 +849,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1243, - serialized_end=1323, + serialized_start=1292, + serialized_end=1372, ) @@ -904,8 +924,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1325, - serialized_end=1406, + serialized_start=1374, + serialized_end=1455, ) @@ -961,8 +981,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1408, - serialized_end=1480, + serialized_start=1457, + serialized_end=1529, ) @@ -1000,8 +1020,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1482, - serialized_end=1517, + serialized_start=1531, + serialized_end=1566, ) @@ -1057,8 +1077,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=431, - serialized_end=476, + serialized_start=480, + serialized_end=525, ) _SUBSCRIPTION = _descriptor.Descriptor( @@ -1239,8 +1259,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1520, - serialized_end=1941, + serialized_start=1569, + serialized_end=1990, ) @@ -1278,21 +1298,21 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=1943, - serialized_end=2001, + serialized_start=1992, + serialized_end=2050, ) -_PUSHCONFIG_ATTRIBUTESENTRY = _descriptor.Descriptor( - name="AttributesEntry", - full_name="google.pubsub.v1.PushConfig.AttributesEntry", +_PUSHCONFIG_OIDCTOKEN = _descriptor.Descriptor( + name="OidcToken", + full_name="google.pubsub.v1.PushConfig.OidcToken", filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name="key", - full_name="google.pubsub.v1.PushConfig.AttributesEntry.key", + name="service_account_email", + full_name="google.pubsub.v1.PushConfig.OidcToken.service_account_email", index=0, number=1, type=9, @@ -1309,8 +1329,8 @@ file=DESCRIPTOR, ), _descriptor.FieldDescriptor( - name="value", - full_name="google.pubsub.v1.PushConfig.AttributesEntry.value", + name="audience", + full_name="google.pubsub.v1.PushConfig.OidcToken.audience", index=1, number=2, type=9, @@ -1330,25 +1350,25 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=_b("8\001"), + serialized_options=None, is_extendable=False, syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=671, - serialized_end=720, + serialized_start=2218, + serialized_end=2278, ) -_PUSHCONFIG_OIDCTOKEN = _descriptor.Descriptor( - name="OidcToken", - full_name="google.pubsub.v1.PushConfig.OidcToken", +_PUSHCONFIG_ATTRIBUTESENTRY = _descriptor.Descriptor( + name="AttributesEntry", + full_name="google.pubsub.v1.PushConfig.AttributesEntry", filename=None, file=DESCRIPTOR, containing_type=None, fields=[ _descriptor.FieldDescriptor( - name="service_account_email", - full_name="google.pubsub.v1.PushConfig.OidcToken.service_account_email", + name="key", + full_name="google.pubsub.v1.PushConfig.AttributesEntry.key", index=0, number=1, type=9, @@ -1365,8 +1385,8 @@ file=DESCRIPTOR, ), _descriptor.FieldDescriptor( - name="audience", - full_name="google.pubsub.v1.PushConfig.OidcToken.audience", + name="value", + full_name="google.pubsub.v1.PushConfig.AttributesEntry.value", index=1, number=2, type=9, @@ -1386,13 +1406,13 @@ extensions=[], nested_types=[], enum_types=[], - serialized_options=None, + serialized_options=_b("8\001"), is_extendable=False, syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2220, - serialized_end=2280, + serialized_start=720, + serialized_end=769, ) _PUSHCONFIG = _descriptor.Descriptor( @@ -1458,7 +1478,7 @@ ), ], extensions=[], - nested_types=[_PUSHCONFIG_ATTRIBUTESENTRY, _PUSHCONFIG_OIDCTOKEN], + nested_types=[_PUSHCONFIG_OIDCTOKEN, _PUSHCONFIG_ATTRIBUTESENTRY], enum_types=[], serialized_options=None, is_extendable=False, @@ -1473,8 +1493,8 @@ fields=[], ) ], - serialized_start=2004, - serialized_end=2305, + serialized_start=2053, + serialized_end=2354, ) @@ -1530,8 +1550,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2307, - serialized_end=2390, + serialized_start=2356, + serialized_end=2439, ) @@ -1569,8 +1589,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2392, - serialized_end=2438, + serialized_start=2441, + serialized_end=2487, ) @@ -1626,8 +1646,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2441, - serialized_end=2571, + serialized_start=2490, + serialized_end=2620, ) @@ -1701,8 +1721,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2573, - serialized_end=2655, + serialized_start=2622, + serialized_end=2704, ) @@ -1758,8 +1778,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2657, - serialized_end=2764, + serialized_start=2706, + serialized_end=2813, ) @@ -1797,8 +1817,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2766, - serialized_end=2815, + serialized_start=2815, + serialized_end=2864, ) @@ -1854,8 +1874,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2817, - serialized_end=2915, + serialized_start=2866, + serialized_end=2964, ) @@ -1929,8 +1949,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=2917, - serialized_end=3002, + serialized_start=2966, + serialized_end=3051, ) @@ -1968,8 +1988,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3004, - serialized_end=3080, + serialized_start=3053, + serialized_end=3129, ) @@ -2043,8 +2063,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3082, - serialized_end=3177, + serialized_start=3131, + serialized_end=3226, ) @@ -2100,8 +2120,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3179, - serialized_end=3238, + serialized_start=3228, + serialized_end=3287, ) @@ -2211,8 +2231,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3241, - serialized_end=3405, + serialized_start=3290, + serialized_end=3454, ) @@ -2250,8 +2270,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3407, - serialized_end=3492, + serialized_start=3456, + serialized_end=3541, ) @@ -2307,8 +2327,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=431, - serialized_end=476, + serialized_start=480, + serialized_end=525, ) _CREATESNAPSHOTREQUEST = _descriptor.Descriptor( @@ -2381,8 +2401,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3495, - serialized_end=3670, + serialized_start=3544, + serialized_end=3719, ) @@ -2438,8 +2458,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3672, - serialized_end=3790, + serialized_start=3721, + serialized_end=3839, ) @@ -2495,8 +2515,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=431, - serialized_end=476, + serialized_start=480, + serialized_end=525, ) _SNAPSHOT = _descriptor.Descriptor( @@ -2587,8 +2607,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3793, - serialized_end=3984, + serialized_start=3842, + serialized_end=4033, ) @@ -2626,8 +2646,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=3986, - serialized_end=4024, + serialized_start=4035, + serialized_end=4073, ) @@ -2701,8 +2721,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4026, - serialized_end=4104, + serialized_start=4075, + serialized_end=4153, ) @@ -2758,8 +2778,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4106, - serialized_end=4201, + serialized_start=4155, + serialized_end=4250, ) @@ -2797,8 +2817,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4203, - serialized_end=4244, + serialized_start=4252, + serialized_end=4293, ) @@ -2880,8 +2900,8 @@ fields=[], ) ], - serialized_start=4246, - serialized_end=4355, + serialized_start=4295, + serialized_end=4404, ) @@ -2900,8 +2920,8 @@ syntax="proto3", extension_ranges=[], oneofs=[], - serialized_start=4357, - serialized_end=4371, + serialized_start=4406, + serialized_end=4420, ) _TOPIC_LABELSENTRY.containing_type = _TOPIC @@ -2930,8 +2950,8 @@ _EXPIRATIONPOLICY.fields_by_name[ "ttl" ].message_type = google_dot_protobuf_dot_duration__pb2._DURATION -_PUSHCONFIG_ATTRIBUTESENTRY.containing_type = _PUSHCONFIG _PUSHCONFIG_OIDCTOKEN.containing_type = _PUSHCONFIG +_PUSHCONFIG_ATTRIBUTESENTRY.containing_type = _PUSHCONFIG _PUSHCONFIG.fields_by_name["attributes"].message_type = _PUSHCONFIG_ATTRIBUTESENTRY _PUSHCONFIG.fields_by_name["oidc_token"].message_type = _PUSHCONFIG_OIDCTOKEN _PUSHCONFIG.oneofs_by_name["authentication_method"].fields.append( @@ -3094,6 +3114,15 @@ This field will be populated in the responses for GetTopic, CreateTopic, and UpdateTopic: if not present in the response, then no constraints are in effect. + kms_key_name: + The resource name of the Cloud KMS CryptoKey to be used to + protect access to messages published on this topic. The + expected format is + ``projects/*/locations/*/keyRings/*/cryptoKeys/*``. + EXPERIMENTAL: This feature is part of a closed alpha release. + This API might be changed in backward-incompatible ways and is + not recommended for production use. It is not subject to any + SLA or deprecation policy. """, # @@protoc_insertion_point(class_scope:google.pubsub.v1.Topic) ), @@ -3345,10 +3374,7 @@ dict( DESCRIPTOR=_LISTTOPICSNAPSHOTSREQUEST, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Request for the ``ListTopicSnapshots`` method. BETA: This feature is - part of a beta release. This API might be changed in - backward-incompatible ways and is not recommended for production use. It - is not subject to any SLA or deprecation policy. + __doc__="""Request for the ``ListTopicSnapshots`` method. Attributes: @@ -3374,10 +3400,7 @@ dict( DESCRIPTOR=_LISTTOPICSNAPSHOTSRESPONSE, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Response for the ``ListTopicSnapshots`` method. BETA: This feature is - part of a beta release. This API might be changed in - backward-incompatible ways and is not recommended for production use. It - is not subject to any SLA or deprecation policy. + __doc__="""Response for the ``ListTopicSnapshots`` method. Attributes: @@ -3472,11 +3495,7 @@ then messages are not expunged from the subscription's backlog, even if they are acknowledged, until they fall out of the ``message_retention_duration`` window. This must be true - if you would like to Seek to a timestamp. BETA: This feature - is part of a beta release. This API might be changed in - backward-incompatible ways and is not recommended for - production use. It is not subject to any SLA or deprecation - policy. + if you would like to Seek to a timestamp. message_retention_duration: How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is @@ -3484,10 +3503,7 @@ also configures the retention of acknowledged messages, and thus configures how far back in time a ``Seek`` can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10 - minutes. BETA: This feature is part of a beta release. This - API might be changed in backward-incompatible ways and is not - recommended for production use. It is not subject to any SLA - or deprecation policy. + minutes. labels: See Creating and managing labels. enable_message_ordering: @@ -3506,10 +3522,7 @@ the subscription or is issuing operations on the subscription. If ``expiration_policy`` is not set, a *default policy* with ``ttl`` of 31 days will be used. The minimum allowed value for - ``expiration_policy.ttl`` is 1 day. BETA: This feature is part - of a beta release. This API might be changed in backward- - incompatible ways and is not recommended for production use. - It is not subject to any SLA or deprecation policy. + ``expiration_policy.ttl`` is 1 day. """, # @@protoc_insertion_point(class_scope:google.pubsub.v1.Subscription) ), @@ -3546,15 +3559,6 @@ "PushConfig", (_message.Message,), dict( - AttributesEntry=_reflection.GeneratedProtocolMessageType( - "AttributesEntry", - (_message.Message,), - dict( - DESCRIPTOR=_PUSHCONFIG_ATTRIBUTESENTRY, - __module__="google.cloud.pubsub_v1.proto.pubsub_pb2" - # @@protoc_insertion_point(class_scope:google.pubsub.v1.PushConfig.AttributesEntry) - ), - ), OidcToken=_reflection.GeneratedProtocolMessageType( "OidcToken", (_message.Message,), @@ -3571,10 +3575,8 @@ `__ to be used for generating the OIDC token. The caller (for CreateSubscription, UpdateSubscription, and ModifyPushConfig - calls) must have the iam.serviceAccounts.actAs permission for - the service account. See - https://cloud.google.com/iam/docs/understanding-roles#service- - accounts-roles. + RPCs) must have the iam.serviceAccounts.actAs permission for + the service account. audience: Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. @@ -3587,6 +3589,15 @@ # @@protoc_insertion_point(class_scope:google.pubsub.v1.PushConfig.OidcToken) ), ), + AttributesEntry=_reflection.GeneratedProtocolMessageType( + "AttributesEntry", + (_message.Message,), + dict( + DESCRIPTOR=_PUSHCONFIG_ATTRIBUTESENTRY, + __module__="google.cloud.pubsub_v1.proto.pubsub_pb2" + # @@protoc_insertion_point(class_scope:google.pubsub.v1.PushConfig.AttributesEntry) + ), + ), DESCRIPTOR=_PUSHCONFIG, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", __doc__="""Configuration for a push delivery endpoint. @@ -3622,10 +3633,6 @@ that are private by default to allow requests only from the Cloud Pub/Sub system, for example. This field is optional and should be set only by users interested in authenticated push. - EXPERIMENTAL: This field a part of a closed alpha that may not - be accessible to all users. It may be changed in backward- - incompatible ways and is not subject to any SLA or deprecation - policy. It is not recommended for production use. oidc_token: If specified, Pub/Sub will generate and attach an OIDC JWT token as an ``Authorization`` header in the HTTP request for @@ -3635,8 +3642,8 @@ ), ) _sym_db.RegisterMessage(PushConfig) -_sym_db.RegisterMessage(PushConfig.AttributesEntry) _sym_db.RegisterMessage(PushConfig.OidcToken) +_sym_db.RegisterMessage(PushConfig.AttributesEntry) ReceivedMessage = _reflection.GeneratedProtocolMessageType( "ReceivedMessage", @@ -3988,10 +3995,7 @@ ), DESCRIPTOR=_CREATESNAPSHOTREQUEST, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Request for the ``CreateSnapshot`` method. BETA: This feature is part of - a beta release. This API might be changed in backward-incompatible ways - and is not recommended for production use. It is not subject to any SLA - or deprecation policy. + __doc__="""Request for the ``CreateSnapshot`` method. Attributes: @@ -4027,10 +4031,7 @@ dict( DESCRIPTOR=_UPDATESNAPSHOTREQUEST, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Request for the UpdateSnapshot method. BETA: This feature is part of a - beta release. This API might be changed in backward-incompatible ways - and is not recommended for production use. It is not subject to any SLA - or deprecation policy. + __doc__="""Request for the UpdateSnapshot method. Attributes: @@ -4063,10 +4064,7 @@ __doc__="""A snapshot resource. Snapshots are used in Seek operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the - state captured by a snapshot. BETA: This feature is part of a beta - release. This API might be changed in backward-incompatible ways and is - not recommended for production use. It is not subject to any SLA or - deprecation policy. + state captured by a snapshot. Attributes: @@ -4103,10 +4101,7 @@ dict( DESCRIPTOR=_GETSNAPSHOTREQUEST, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Request for the GetSnapshot method. BETA: This feature is part of a beta - release. This API might be changed in backward-incompatible ways and is - not recommended for production use. It is not subject to any SLA or - deprecation policy. + __doc__="""Request for the GetSnapshot method. Attributes: @@ -4125,10 +4120,7 @@ dict( DESCRIPTOR=_LISTSNAPSHOTSREQUEST, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Request for the ``ListSnapshots`` method. BETA: This feature is part of - a beta release. This API might be changed in backward-incompatible ways - and is not recommended for production use. It is not subject to any SLA - or deprecation policy. + __doc__="""Request for the ``ListSnapshots`` method. Attributes: @@ -4154,10 +4146,7 @@ dict( DESCRIPTOR=_LISTSNAPSHOTSRESPONSE, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Response for the ``ListSnapshots`` method. BETA: This feature is part of - a beta release. This API might be changed in backward-incompatible ways - and is not recommended for production use. It is not subject to any SLA - or deprecation policy. + __doc__="""Response for the ``ListSnapshots`` method. Attributes: @@ -4179,10 +4168,7 @@ dict( DESCRIPTOR=_DELETESNAPSHOTREQUEST, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Request for the ``DeleteSnapshot`` method. BETA: This feature is part of - a beta release. This API might be changed in backward-incompatible ways - and is not recommended for production use. It is not subject to any SLA - or deprecation policy. + __doc__="""Request for the ``DeleteSnapshot`` method. Attributes: @@ -4201,10 +4187,7 @@ dict( DESCRIPTOR=_SEEKREQUEST, __module__="google.cloud.pubsub_v1.proto.pubsub_pb2", - __doc__="""Request for the ``Seek`` method. BETA: This feature is part of a beta - release. This API might be changed in backward-incompatible ways and is - not recommended for production use. It is not subject to any SLA or - deprecation policy. + __doc__="""Request for the ``Seek`` method. Attributes: @@ -4261,8 +4244,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=4374, - serialized_end=5461, + serialized_start=4423, + serialized_end=5510, methods=[ _descriptor.MethodDescriptor( name="CreateTopic", @@ -4365,8 +4348,8 @@ file=DESCRIPTOR, index=1, serialized_options=None, - serialized_start=5464, - serialized_end=7761, + serialized_start=5513, + serialized_end=7810, methods=[ _descriptor.MethodDescriptor( name="CreateSubscription", diff --git a/pubsub/google/cloud/pubsub_v1/proto/pubsub_pb2_grpc.py b/pubsub/google/cloud/pubsub_v1/proto/pubsub_pb2_grpc.py index dfe337e36271..dd1a365877e1 100644 --- a/pubsub/google/cloud/pubsub_v1/proto/pubsub_pb2_grpc.py +++ b/pubsub/google/cloud/pubsub_v1/proto/pubsub_pb2_grpc.py @@ -117,10 +117,7 @@ def ListTopicSnapshots(self, request, context): operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state - captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. + captured by a snapshot. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -402,10 +399,7 @@ def GetSnapshot(self, request, context):
Seek operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing - subscription to the state captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. + subscription to the state captured by a snapshot. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -417,10 +411,7 @@ def ListSnapshots(self, request, context): operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state - captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. + captured by a snapshot. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -433,11 +424,7 @@ def CreateSnapshot(self, request, context): you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. -

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy.

- If the snapshot already exists, returns `ALREADY_EXISTS`. +

If the snapshot already exists, returns `ALREADY_EXISTS`. If the requested subscription doesn't exist, returns `NOT_FOUND`. If the backlog in the subscription is too old -- and the resulting snapshot would expire in less than 1 hour -- then `FAILED_PRECONDITION` is returned. @@ -460,11 +447,7 @@ def UpdateSnapshot(self, request, context): operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state - captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. - Note that certain properties of a snapshot are not modifiable. + captured by a snapshot. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") @@ -477,9 +460,6 @@ def DeleteSnapshot(self, request, context): you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. When the snapshot is deleted, all messages retained in the snapshot are immediately dropped. After a snapshot is deleted, a new one may be created with the same name, but the new one has no association with the old @@ -497,10 +477,7 @@ def Seek(self, request, context): you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot. Note that both the subscription and the snapshot - must be on the same topic.

- BETA: This feature is part of a beta release. This API might be - changed in backward-incompatible ways and is not recommended for production - use. It is not subject to any SLA or deprecation policy. + must be on the same topic. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details("Method not implemented!") diff --git a/pubsub/synth.metadata b/pubsub/synth.metadata index 8348023941e7..c677890bd9af 100644 --- a/pubsub/synth.metadata +++ b/pubsub/synth.metadata @@ -1,26 +1,26 @@ { - "updateTime": "2019-04-23T12:24:42.913789Z", + "updateTime": "2019-05-10T12:31:34.113225Z", "sources": [ { "generator": { "name": "artman", - "version": "0.17.0", - "dockerImage": "googleapis/artman@sha256:c58f4ec3838eb4e0718eb1bccc6512bd6850feaa85a360a9e38f6f848ec73bc2" + "version": "0.19.0", + "dockerImage": "googleapis/artman@sha256:d3df563538225ac6caac45d8ad86499500211d1bcb2536955a6dbda15e1b368e" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "547e19e7df398e9290e8e3674d7351efc500f9b0", - "internalRef": "244712781" + "sha": "07883be5bf3c3233095e99d8e92b8094f5d7084a", + "internalRef": "247530843" } }, { "template": { "name": "python_library", "origin": "synthtool.gcp", - "version": "2019.4.10" + "version": "2019.5.2" } } ], diff --git a/pubsub/tests/unit/gapic/v1/test_publisher_client_v1.py b/pubsub/tests/unit/gapic/v1/test_publisher_client_v1.py index c7dbae01da07..fb6de29fd129 100644 --- a/pubsub/tests/unit/gapic/v1/test_publisher_client_v1.py +++ b/pubsub/tests/unit/gapic/v1/test_publisher_client_v1.py @@ -66,7 +66,8 @@ class TestPublisherClient(object): def test_create_topic(self): # Setup Expected Response name_2 = "name2-1052831874" - expected_response = {"name": name_2} + kms_key_name = "kmsKeyName2094986649" + expected_response = {"name": name_2, "kms_key_name": kms_key_name} expected_response = pubsub_pb2.Topic(**expected_response) # Mock the API response @@ -104,7 +105,8 @@ def test_create_topic_exception(self): def test_update_topic(self): # Setup Expected Response name = "name3373707" - expected_response = {"name": name} + kms_key_name = "kmsKeyName2094986649" + expected_response = {"name": name, "kms_key_name": kms_key_name} expected_response = pubsub_pb2.Topic(**expected_response) # Mock the API response @@ -191,7 +193,8 @@ def test_publish_exception(self): def test_get_topic(self): # Setup Expected Response name = "name3373707" - expected_response = {"name": name} + kms_key_name = "kmsKeyName2094986649" + expected_response = {"name": name, "kms_key_name": kms_key_name} expected_response = pubsub_pb2.Topic(**expected_response) # Mock the API response