Class Client (2.1.0)

Client(batch_settings=(), publisher_options=(), **kwargs)

A publisher client for Google Cloud Pub/Sub.

This creates an object that is capable of publishing messages. Generally, you can instantiate this client with no arguments, and you get sensible defaults.

Parameters

NameDescription
kwargs dict Example: .. code-block:: python from google.cloud import pubsub_v1 publisher_client = pubsub_v1.PublisherClient( # Optional batch_settings = pubsub_v1.types.BatchSettings( max_bytes=1024, # One kilobyte max_latency=1, # One second ), # Optional publisher_options = pubsub_v1.types.PublisherOptions( enable_message_ordering=False, flow_control=pubsub_v1.types.PublishFlowControl( message_limit=2000, limit_exceeded_behavior=pubsub_v1.types.LimitExceededBehavior.BLOCK, ), ), # Optional client_options = { "api_endpoint": REGIONAL_ENDPOINT } )

Any additional arguments provided are sent as keyword arguments to the underlying PublisherClient. Generally you should not need to set additional keyword arguments. Regional endpoints can be set via client_options that takes a single key-value pair that defines the endpoint.

batch_settings BatchSettings

The settings for batch publishing.

publisher_options PublisherOptions

The options for the publisher client. Note that enabling message ordering will override the publish retry timeout to be infinite.

Properties

target

Return the target (where the API is).

Returns
TypeDescription
strThe location of the API.

Methods

create_topic

create_topic(request: google.cloud.pubsub_v1.types.Topic = None, *, name: str = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Creates the given topic with the given name. See the resource name rules <https://cloud.google.com/pubsub/docs/admin#resource_names>__.

Parameters
NameDescription
request .pubsub.Topic

The request object. A topic resource.

name str

Required. 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 (<code>_</code><code>), periods (</code><code>.</code><code>), tildes (<pre></pre>), plus (</code>+<code>) or percent signs (</code>%<code>). It must be between 3 and 255 characters in length, and it must not start with </code>"goog"<code>. This corresponds to the </code>name<code> field on the </code>request<code> instance; if </code>request is provided, this should not be set.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.pubsub.TopicA topic resource.

delete_topic

delete_topic(request: google.cloud.pubsub_v1.types.DeleteTopicRequest = None, *, topic: str = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Deletes the topic with the given name. Returns NOT_FOUND if the topic does not exist. After a topic is deleted, a new topic may be created with the same name; this is an entirely new topic with none of the old configuration or subscriptions. Existing subscriptions to this topic are not deleted, but their topic field is set to _deleted-topic_.

Parameters
NameDescription
request .pubsub.DeleteTopicRequest

The request object. Request for the DeleteTopic method.

topic str

Required. Name of the topic to delete. Format is projects/{project}/topics/{topic}. This corresponds to the topic field on the request instance; if request is provided, this should not be set.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

detach_subscription

detach_subscription(request: google.cloud.pubsub_v1.types.DetachSubscriptionRequest = None, *, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Detaches a subscription from this topic. All messages retained in the subscription are dropped. Subsequent Pull and StreamingPull requests will return FAILED_PRECONDITION. If the subscription is a push subscription, pushes to the endpoint will stop.

Parameters
NameDescription
request .pubsub.DetachSubscriptionRequest

The request object. Request for the DetachSubscription method.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.pubsub.DetachSubscriptionResponseResponse for the DetachSubscription method. Reserved for future use.

ensure_cleanup_and_commit_timer_runs

ensure_cleanup_and_commit_timer_runs()

Ensure a cleanup/commit timer thread is running.

If a cleanup/commit timer thread is already running, this does nothing.

from_service_account_file

from_service_account_file(filename, batch_settings=(), **kwargs)

Creates an instance of this client using the provided credentials file.

Parameters
NameDescription
filename str

The path to the service account private key json file.

batch_settings BatchSettings

The settings for batch publishing.

from_service_account_json

from_service_account_json(filename, batch_settings=(), **kwargs)

Creates an instance of this client using the provided credentials file.

Parameters
NameDescription
filename str

The path to the service account private key json file.

batch_settings BatchSettings

The settings for batch publishing.

get_iam_policy

get_iam_policy(request: google.iam.v1.iam_policy_pb2.GetIamPolicyRequest = None, *, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Gets the IAM access control policy for a function. Returns an empty policy if the function exists and does not have a policy set.

Parameters
NameDescription
request .iam_policy.GetIamPolicyRequest

The request object. Request message for GetIamPolicy method.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.policy.PolicyDefines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions (defined by IAM or configured by users). A binding can optionally specify a condition, which is a logic expression that further constrains the role binding based on attributes about the request and/or target resource. **JSON Example**:: { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01t00:00:00.000z')",="" }="" }="" ]="" }="" **yaml="" example**::="" bindings:="" -="" members:="" -="" user:mike@example.com="" -="" group:admins@example.com="" -="" domain:google.com="" -="" serviceaccount:my-project-id@appspot.gserviceaccount.com="" role:="" roles/resourcemanager.organizationadmin="" -="" members:="" -="" user:eve@example.com="" role:="" roles/resourcemanager.organizationviewer="" condition:="" title:="" expirable="" access="" description:="" does="" not="" grant="" access="" after="" sep="" 2020="" expression:="" request.time="">< timestamp('2020-10-01t00:00:00.000z')="" for="" a="" description="" of="" iam="" and="" its="" features,="" see="" the="">IAM developer's guide __.

get_topic

get_topic(request: google.cloud.pubsub_v1.types.GetTopicRequest = None, *, topic: str = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Gets the configuration of a topic.

Parameters
NameDescription
request .pubsub.GetTopicRequest

The request object. Request for the GetTopic method.

topic str

Required. The name of the topic to get. Format is projects/{project}/topics/{topic}. This corresponds to the topic field on the request instance; if request is provided, this should not be set.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.pubsub.TopicA topic resource.

list_topic_snapshots

list_topic_snapshots(request: google.cloud.pubsub_v1.types.ListTopicSnapshotsRequest = None, *, topic: str = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Lists the names of the snapshots on this topic. Snapshots are used in Seek <https://cloud.google.com/pubsub/docs/replay-overview>__ 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.

Parameters
NameDescription
request .pubsub.ListTopicSnapshotsRequest

The request object. Request for the ListTopicSnapshots method.

topic str

Required. The name of the topic that snapshots are attached to. Format is projects/{project}/topics/{topic}. This corresponds to the topic field on the request instance; if request is provided, this should not be set.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.pagers.ListTopicSnapshotsPagerResponse for the ListTopicSnapshots method. Iterating over this object will yield results and resolve additional pages automatically.

list_topic_subscriptions

list_topic_subscriptions(request: google.cloud.pubsub_v1.types.ListTopicSubscriptionsRequest = None, *, topic: str = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Lists the names of the attached subscriptions on this topic.

Parameters
NameDescription
request .pubsub.ListTopicSubscriptionsRequest

The request object. Request for the ListTopicSubscriptions method.

topic str

Required. The name of the topic that subscriptions are attached to. Format is projects/{project}/topics/{topic}. This corresponds to the topic field on the request instance; if request is provided, this should not be set.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.pagers.ListTopicSubscriptionsPagerResponse for the ListTopicSubscriptions method. Iterating over this object will yield results and resolve additional pages automatically.

list_topics

list_topics(request: google.cloud.pubsub_v1.types.ListTopicsRequest = None, *, project: str = None, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Lists matching topics.

Parameters
NameDescription
request .pubsub.ListTopicsRequest

The request object. Request for the ListTopics method.

project str

Required. The name of the project in which to list topics. Format is projects/{project-id}. This corresponds to the project field on the request instance; if request is provided, this should not be set.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.pagers.ListTopicsPagerResponse for the ListTopics method. Iterating over this object will yield results and resolve additional pages automatically.

parse_topic_path

parse_topic_path(path: str)

Parse a topic path into its component segments.

publish

publish(topic, data, ordering_key='', retry=<_MethodDefault._DEFAULT_VALUE: <object object>>, **attrs)

Publish a single message.

The reason that this is so important (and why we do not try to coerce for you) is because Pub/Sub is also platform independent and there is no way to know how to decode messages properly on the other side; therefore, encoding and decoding is a required exercise for the developer.

Add the given message to this object; this will cause it to be published once the batch either has enough messages or a sufficient period of time has elapsed.

.. rubric:: Example

from google.cloud import pubsub_v1 client = pubsub_v1.PublisherClient() topic = client.topic_path('[PROJECT]', '[TOPIC]') data = b'The rain in Wales falls mainly on the snails.' response = client.publish(topic, data, username='guido')

Parameters
NameDescription
attrs Mapping[str, str]

A dictionary of attributes to be sent as metadata. (These may be text strings or byte strings.)

topic str

The topic to publish messages to.

data bytes

A bytestring representing the message body. This must be a bytestring.

retry Optional[google.api_core.retry.Retry]

Designation of what errors, if any, should be retried. If ordering_key is specified, the total retry deadline will be changed to "infinity".

Exceptions
TypeDescription
RuntimeErrorIf called after publisher has been stopped by a stop() method call.
pubsub_v1.publisher.exceptions.MessageTooLargeErrorIf publishing the message would exceed the max size limit on the backend.

resume_publish

resume_publish(topic, ordering_key)

Resume publish on an ordering key that has had unrecoverable errors.

Parameter
NameDescription
topic str

The topic to publish messages to.

Exceptions
TypeDescription
RuntimeErrorIf called after publisher has been stopped by a stop() method call.
ValueErrorIf the topic/ordering key combination has not been seen before by this client.

set_iam_policy

set_iam_policy(request: google.iam.v1.iam_policy_pb2.SetIamPolicyRequest = None, *, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Sets the IAM access control policy on the specified function. Replaces any existing policy.

Parameters
NameDescription
request .iam_policy.SetIamPolicyRequest

The request object. Request message for SetIamPolicy method.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.policy.PolicyDefines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A Policy is a collection of bindings. A binding binds one or more members to a single role. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A role is a named list of permissions (defined by IAM or configured by users). A binding can optionally specify a condition, which is a logic expression that further constrains the role binding based on attributes about the request and/or target resource. **JSON Example**:: { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": ["user:eve@example.com"], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp('2020-10-01t00:00:00.000z')",="" }="" }="" ]="" }="" **yaml="" example**::="" bindings:="" -="" members:="" -="" user:mike@example.com="" -="" group:admins@example.com="" -="" domain:google.com="" -="" serviceaccount:my-project-id@appspot.gserviceaccount.com="" role:="" roles/resourcemanager.organizationadmin="" -="" members:="" -="" user:eve@example.com="" role:="" roles/resourcemanager.organizationviewer="" condition:="" title:="" expirable="" access="" description:="" does="" not="" grant="" access="" after="" sep="" 2020="" expression:="" request.time="">< timestamp('2020-10-01t00:00:00.000z')="" for="" a="" description="" of="" iam="" and="" its="" features,="" see="" the="">IAM developer's guide __.

stop

stop()

Immediately publish all outstanding messages.

Asynchronously sends all outstanding messages and prevents future calls to publish(). Method should be invoked prior to deleting this Client() object in order to ensure that no pending messages are lost.

Exceptions
TypeDescription
RuntimeErrorIf called after publisher has been stopped by a stop() method call.

test_iam_permissions

test_iam_permissions(request: google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest = None, *, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Tests the specified permissions against the IAM access control policy for a function. If the function does not exist, this will return an empty set of permissions, not a NOT_FOUND error.

Parameters
NameDescription
request .iam_policy.TestIamPermissionsRequest

The request object. Request message for TestIamPermissions method.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.iam_policy.TestIamPermissionsResponseResponse message for TestIamPermissions method.

topic_path

topic_path(project: str, topic: str)

Return a fully-qualified topic string.

update_topic

update_topic(request: google.cloud.pubsub_v1.types.UpdateTopicRequest = None, *, retry: google.api_core.retry.Retry = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: float = None, metadata: Sequence[Tuple[str, str]] = ())

Updates an existing topic. Note that certain properties of a topic are not modifiable.

Parameters
NameDescription
request .pubsub.UpdateTopicRequest

The request object. Request for the UpdateTopic method.

retry google.api_core.retry.Retry

Designation of what errors, if any, should be retried.

timeout float

The timeout for this request.

metadata Sequence[Tuple[str, str]]

Strings which should be sent along with the request as metadata.

Returns
TypeDescription
.pubsub.TopicA topic resource.