|  | <html><body> | 
|  | <style> | 
|  |  | 
|  | body, h1, h2, h3, div, span, p, pre, a { | 
|  | margin: 0; | 
|  | padding: 0; | 
|  | border: 0; | 
|  | font-weight: inherit; | 
|  | font-style: inherit; | 
|  | font-size: 100%; | 
|  | font-family: inherit; | 
|  | vertical-align: baseline; | 
|  | } | 
|  |  | 
|  | body { | 
|  | font-size: 13px; | 
|  | padding: 1em; | 
|  | } | 
|  |  | 
|  | h1 { | 
|  | font-size: 26px; | 
|  | margin-bottom: 1em; | 
|  | } | 
|  |  | 
|  | h2 { | 
|  | font-size: 24px; | 
|  | margin-bottom: 1em; | 
|  | } | 
|  |  | 
|  | h3 { | 
|  | font-size: 20px; | 
|  | margin-bottom: 1em; | 
|  | margin-top: 1em; | 
|  | } | 
|  |  | 
|  | pre, code { | 
|  | line-height: 1.5; | 
|  | font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; | 
|  | } | 
|  |  | 
|  | pre { | 
|  | margin-top: 0.5em; | 
|  | } | 
|  |  | 
|  | h1, h2, h3, p { | 
|  | font-family: Arial, sans serif; | 
|  | } | 
|  |  | 
|  | h1, h2, h3 { | 
|  | border-bottom: solid #CCC 1px; | 
|  | } | 
|  |  | 
|  | .toc_element { | 
|  | margin-top: 0.5em; | 
|  | } | 
|  |  | 
|  | .firstline { | 
|  | margin-left: 2 em; | 
|  | } | 
|  |  | 
|  | .method  { | 
|  | margin-top: 1em; | 
|  | border: solid 1px #CCC; | 
|  | padding: 1em; | 
|  | background: #EEE; | 
|  | } | 
|  |  | 
|  | .details { | 
|  | font-weight: bold; | 
|  | font-size: 14px; | 
|  | } | 
|  |  | 
|  | </style> | 
|  |  | 
|  | <h1><a href="pubsub_v1.html">Cloud Pub/Sub API</a> . <a href="pubsub_v1.projects.html">projects</a> . <a href="pubsub_v1.projects.topics.html">topics</a></h1> | 
|  | <h2>Instance Methods</h2> | 
|  | <p class="toc_element"> | 
|  | <code><a href="pubsub_v1.projects.topics.snapshots.html">snapshots()</a></code> | 
|  | </p> | 
|  | <p class="firstline">Returns the snapshots Resource.</p> | 
|  |  | 
|  | <p class="toc_element"> | 
|  | <code><a href="pubsub_v1.projects.topics.subscriptions.html">subscriptions()</a></code> | 
|  | </p> | 
|  | <p class="firstline">Returns the subscriptions Resource.</p> | 
|  |  | 
|  | <p class="toc_element"> | 
|  | <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Creates the given topic with the given name. See the</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#delete">delete(topic, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Deletes the topic with the given name. Returns `NOT_FOUND` if the topic</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#get">get(topic, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Gets the configuration of a topic.</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#getIamPolicy">getIamPolicy(resource, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Gets the access control policy for a resource.</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#list">list(project, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Lists matching topics.</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p> | 
|  | <p class="firstline">Retrieves the next page of results.</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#patch">patch(name, body, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Updates an existing topic. Note that certain properties of a</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#publish">publish(topic, body, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Sets the access control policy on the specified resource. Replaces any</p> | 
|  | <p class="toc_element"> | 
|  | <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p> | 
|  | <p class="firstline">Returns permissions that a caller has on the specified resource.</p> | 
|  | <h3>Method Details</h3> | 
|  | <div class="method"> | 
|  | <code class="details" id="create">create(name, body, x__xgafv=None)</code> | 
|  | <pre>Creates the given topic with the given name. See the | 
|  | <a href="https://cloud.google.com/pubsub/docs/admin#resource_names"> | 
|  | resource name rules</a>. | 
|  |  | 
|  | Args: | 
|  | name: string, 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"`. (required) | 
|  | body: object, The request body. (required) | 
|  | The object takes the form of: | 
|  |  | 
|  | { # A topic resource. | 
|  | "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and | 
|  | # managing labels</a>. | 
|  | "a_key": "A String", | 
|  | }, | 
|  | "name": "A String", # 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"`. | 
|  | "messageStoragePolicy": { # 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. | 
|  | "allowedPersistenceRegions": [ # 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. | 
|  | "A String", | 
|  | ], | 
|  | }, | 
|  | "kmsKeyName": "A String", # 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/*`. | 
|  | } | 
|  |  | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # A topic resource. | 
|  | "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and | 
|  | # managing labels</a>. | 
|  | "a_key": "A String", | 
|  | }, | 
|  | "name": "A String", # 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"`. | 
|  | "messageStoragePolicy": { # 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. | 
|  | "allowedPersistenceRegions": [ # 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. | 
|  | "A String", | 
|  | ], | 
|  | }, | 
|  | "kmsKeyName": "A String", # 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/*`. | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="delete">delete(topic, x__xgafv=None)</code> | 
|  | <pre>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_`. | 
|  |  | 
|  | Args: | 
|  | topic: string, Name of the topic to delete. | 
|  | Format is `projects/{project}/topics/{topic}`. (required) | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # A generic empty message that you can re-use to avoid defining duplicated | 
|  | # empty messages in your APIs. A typical example is to use it as the request | 
|  | # or the response type of an API method. For instance: | 
|  | # | 
|  | #     service Foo { | 
|  | #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); | 
|  | #     } | 
|  | # | 
|  | # The JSON representation for `Empty` is empty JSON object `{}`. | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="get">get(topic, x__xgafv=None)</code> | 
|  | <pre>Gets the configuration of a topic. | 
|  |  | 
|  | Args: | 
|  | topic: string, The name of the topic to get. | 
|  | Format is `projects/{project}/topics/{topic}`. (required) | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # A topic resource. | 
|  | "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and | 
|  | # managing labels</a>. | 
|  | "a_key": "A String", | 
|  | }, | 
|  | "name": "A String", # 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"`. | 
|  | "messageStoragePolicy": { # 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. | 
|  | "allowedPersistenceRegions": [ # 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. | 
|  | "A String", | 
|  | ], | 
|  | }, | 
|  | "kmsKeyName": "A String", # 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/*`. | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="getIamPolicy">getIamPolicy(resource, x__xgafv=None)</code> | 
|  | <pre>Gets the access control policy for a resource. | 
|  | Returns an empty policy if the resource exists and does not have a policy | 
|  | set. | 
|  |  | 
|  | Args: | 
|  | resource: string, REQUIRED: The resource for which the policy is being requested. | 
|  | See the operation documentation for the appropriate value for this field. (required) | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # Defines an Identity and Access Management (IAM) policy. It is used to | 
|  | # specify access control policies for Cloud Platform resources. | 
|  | # | 
|  | # | 
|  | # A `Policy` consists of a list of `bindings`. A `binding` binds a list of | 
|  | # `members` to a `role`, where the members can be user accounts, Google groups, | 
|  | # Google domains, and service accounts. A `role` is a named list of permissions | 
|  | # defined by IAM. | 
|  | # | 
|  | # **JSON Example** | 
|  | # | 
|  | #     { | 
|  | #       "bindings": [ | 
|  | #         { | 
|  | #           "role": "roles/owner", | 
|  | #           "members": [ | 
|  | #             "user:mike@example.com", | 
|  | #             "group:admins@example.com", | 
|  | #             "domain:google.com", | 
|  | #             "serviceAccount:my-other-app@appspot.gserviceaccount.com" | 
|  | #           ] | 
|  | #         }, | 
|  | #         { | 
|  | #           "role": "roles/viewer", | 
|  | #           "members": ["user:sean@example.com"] | 
|  | #         } | 
|  | #       ] | 
|  | #     } | 
|  | # | 
|  | # **YAML Example** | 
|  | # | 
|  | #     bindings: | 
|  | #     - members: | 
|  | #       - user:mike@example.com | 
|  | #       - group:admins@example.com | 
|  | #       - domain:google.com | 
|  | #       - serviceAccount:my-other-app@appspot.gserviceaccount.com | 
|  | #       role: roles/owner | 
|  | #     - members: | 
|  | #       - user:sean@example.com | 
|  | #       role: roles/viewer | 
|  | # | 
|  | # | 
|  | # For a description of IAM and its features, see the | 
|  | # [IAM developer's guide](https://cloud.google.com/iam/docs). | 
|  | "bindings": [ # Associates a list of `members` to a `role`. | 
|  | # `bindings` with no members will result in an error. | 
|  | { # Associates `members` with a `role`. | 
|  | "role": "A String", # Role that is assigned to `members`. | 
|  | # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. | 
|  | "members": [ # Specifies the identities requesting access for a Cloud Platform resource. | 
|  | # `members` can have the following values: | 
|  | # | 
|  | # * `allUsers`: A special identifier that represents anyone who is | 
|  | #    on the internet; with or without a Google account. | 
|  | # | 
|  | # * `allAuthenticatedUsers`: A special identifier that represents anyone | 
|  | #    who is authenticated with a Google account or a service account. | 
|  | # | 
|  | # * `user:{emailid}`: An email address that represents a specific Google | 
|  | #    account. For example, `alice@gmail.com` . | 
|  | # | 
|  | # | 
|  | # * `serviceAccount:{emailid}`: An email address that represents a service | 
|  | #    account. For example, `my-other-app@appspot.gserviceaccount.com`. | 
|  | # | 
|  | # * `group:{emailid}`: An email address that represents a Google group. | 
|  | #    For example, `admins@example.com`. | 
|  | # | 
|  | # | 
|  | # * `domain:{domain}`: The G Suite domain (primary) that represents all the | 
|  | #    users of that domain. For example, `google.com` or `example.com`. | 
|  | # | 
|  | "A String", | 
|  | ], | 
|  | "condition": { # Represents an expression text. Example: # The condition that is associated with this binding. | 
|  | # NOTE: An unsatisfied condition will not allow user access via current | 
|  | # binding. Different bindings, including their conditions, are examined | 
|  | # independently. | 
|  | # | 
|  | #     title: "User account presence" | 
|  | #     description: "Determines whether the request has a user account" | 
|  | #     expression: "size(request.user) > 0" | 
|  | "location": "A String", # An optional string indicating the location of the expression for error | 
|  | # reporting, e.g. a file name and a position in the file. | 
|  | "expression": "A String", # Textual representation of an expression in | 
|  | # Common Expression Language syntax. | 
|  | # | 
|  | # The application context of the containing message determines which | 
|  | # well-known feature set of CEL is supported. | 
|  | "description": "A String", # An optional description of the expression. This is a longer text which | 
|  | # describes the expression, e.g. when hovered over it in a UI. | 
|  | "title": "A String", # An optional title for the expression, i.e. a short string describing | 
|  | # its purpose. This can be used e.g. in UIs which allow to enter the | 
|  | # expression. | 
|  | }, | 
|  | }, | 
|  | ], | 
|  | "version": 42, # Deprecated. | 
|  | "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help | 
|  | # prevent simultaneous updates of a policy from overwriting each other. | 
|  | # It is strongly suggested that systems make use of the `etag` in the | 
|  | # read-modify-write cycle to perform policy updates in order to avoid race | 
|  | # conditions: An `etag` is returned in the response to `getIamPolicy`, and | 
|  | # systems are expected to put that etag in the request to `setIamPolicy` to | 
|  | # ensure that their change will be applied to the same version of the policy. | 
|  | # | 
|  | # If no `etag` is provided in the call to `setIamPolicy`, then the existing | 
|  | # policy is overwritten blindly. | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="list">list(project, pageSize=None, pageToken=None, x__xgafv=None)</code> | 
|  | <pre>Lists matching topics. | 
|  |  | 
|  | Args: | 
|  | project: string, The name of the project in which to list topics. | 
|  | Format is `projects/{project-id}`. (required) | 
|  | pageSize: integer, Maximum number of topics to return. | 
|  | pageToken: string, 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. | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # Response for the `ListTopics` method. | 
|  | "nextPageToken": "A String", # If not empty, indicates that there may be more topics that match the | 
|  | # request; this value should be passed in a new `ListTopicsRequest`. | 
|  | "topics": [ # The resulting topics. | 
|  | { # A topic resource. | 
|  | "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and | 
|  | # managing labels</a>. | 
|  | "a_key": "A String", | 
|  | }, | 
|  | "name": "A String", # 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"`. | 
|  | "messageStoragePolicy": { # 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. | 
|  | "allowedPersistenceRegions": [ # 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. | 
|  | "A String", | 
|  | ], | 
|  | }, | 
|  | "kmsKeyName": "A String", # 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/*`. | 
|  | }, | 
|  | ], | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="list_next">list_next(previous_request, previous_response)</code> | 
|  | <pre>Retrieves the next page of results. | 
|  |  | 
|  | Args: | 
|  | previous_request: The request for the previous page. (required) | 
|  | previous_response: The response from the request for the previous page. (required) | 
|  |  | 
|  | Returns: | 
|  | A request object that you can call 'execute()' on to request the next | 
|  | page. Returns None if there are no more items in the collection. | 
|  | </pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="patch">patch(name, body, x__xgafv=None)</code> | 
|  | <pre>Updates an existing topic. Note that certain properties of a | 
|  | topic are not modifiable. | 
|  |  | 
|  | Args: | 
|  | name: string, 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"`. (required) | 
|  | body: object, The request body. (required) | 
|  | The object takes the form of: | 
|  |  | 
|  | { # Request for the UpdateTopic method. | 
|  | "topic": { # A topic resource. # The updated topic object. | 
|  | "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and | 
|  | # managing labels</a>. | 
|  | "a_key": "A String", | 
|  | }, | 
|  | "name": "A String", # 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"`. | 
|  | "messageStoragePolicy": { # 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. | 
|  | "allowedPersistenceRegions": [ # 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. | 
|  | "A String", | 
|  | ], | 
|  | }, | 
|  | "kmsKeyName": "A String", # 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/*`. | 
|  | }, | 
|  | "updateMask": "A String", # 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. | 
|  | } | 
|  |  | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # A topic resource. | 
|  | "labels": { # See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and | 
|  | # managing labels</a>. | 
|  | "a_key": "A String", | 
|  | }, | 
|  | "name": "A String", # 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"`. | 
|  | "messageStoragePolicy": { # 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. | 
|  | "allowedPersistenceRegions": [ # 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. | 
|  | "A String", | 
|  | ], | 
|  | }, | 
|  | "kmsKeyName": "A String", # 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/*`. | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="publish">publish(topic, body, x__xgafv=None)</code> | 
|  | <pre>Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic | 
|  | does not exist. | 
|  |  | 
|  | Args: | 
|  | topic: string, The messages in the request will be published on this topic. | 
|  | Format is `projects/{project}/topics/{topic}`. (required) | 
|  | body: object, The request body. (required) | 
|  | The object takes the form of: | 
|  |  | 
|  | { # Request for the Publish method. | 
|  | "messages": [ # The messages to publish. | 
|  | { # 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 | 
|  | # <a href="https://cloud.google.com/pubsub/docs/reference/libraries">client | 
|  | # library documentation</a> for more information. See | 
|  | # <a href="https://cloud.google.com/pubsub/quotas">Quotas and limits</a> | 
|  | # for more information about message limits. | 
|  | "attributes": { # Optional attributes for this message. | 
|  | "a_key": "A String", | 
|  | }, | 
|  | "data": "A String", # The message data field. If this field is empty, the message must contain | 
|  | # at least one attribute. | 
|  | "publishTime": "A String", # 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. | 
|  | "messageId": "A String", # 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. | 
|  | }, | 
|  | ], | 
|  | } | 
|  |  | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # Response for the `Publish` method. | 
|  | "messageIds": [ # 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. | 
|  | "A String", | 
|  | ], | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code> | 
|  | <pre>Sets the access control policy on the specified resource. Replaces any | 
|  | existing policy. | 
|  |  | 
|  | Args: | 
|  | resource: string, REQUIRED: The resource for which the policy is being specified. | 
|  | See the operation documentation for the appropriate value for this field. (required) | 
|  | body: object, The request body. (required) | 
|  | The object takes the form of: | 
|  |  | 
|  | { # Request message for `SetIamPolicy` method. | 
|  | "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # 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) | 
|  | # might reject them. | 
|  | # specify access control policies for Cloud Platform resources. | 
|  | # | 
|  | # | 
|  | # A `Policy` consists of a list of `bindings`. A `binding` binds a list of | 
|  | # `members` to a `role`, where the members can be user accounts, Google groups, | 
|  | # Google domains, and service accounts. A `role` is a named list of permissions | 
|  | # defined by IAM. | 
|  | # | 
|  | # **JSON Example** | 
|  | # | 
|  | #     { | 
|  | #       "bindings": [ | 
|  | #         { | 
|  | #           "role": "roles/owner", | 
|  | #           "members": [ | 
|  | #             "user:mike@example.com", | 
|  | #             "group:admins@example.com", | 
|  | #             "domain:google.com", | 
|  | #             "serviceAccount:my-other-app@appspot.gserviceaccount.com" | 
|  | #           ] | 
|  | #         }, | 
|  | #         { | 
|  | #           "role": "roles/viewer", | 
|  | #           "members": ["user:sean@example.com"] | 
|  | #         } | 
|  | #       ] | 
|  | #     } | 
|  | # | 
|  | # **YAML Example** | 
|  | # | 
|  | #     bindings: | 
|  | #     - members: | 
|  | #       - user:mike@example.com | 
|  | #       - group:admins@example.com | 
|  | #       - domain:google.com | 
|  | #       - serviceAccount:my-other-app@appspot.gserviceaccount.com | 
|  | #       role: roles/owner | 
|  | #     - members: | 
|  | #       - user:sean@example.com | 
|  | #       role: roles/viewer | 
|  | # | 
|  | # | 
|  | # For a description of IAM and its features, see the | 
|  | # [IAM developer's guide](https://cloud.google.com/iam/docs). | 
|  | "bindings": [ # Associates a list of `members` to a `role`. | 
|  | # `bindings` with no members will result in an error. | 
|  | { # Associates `members` with a `role`. | 
|  | "role": "A String", # Role that is assigned to `members`. | 
|  | # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. | 
|  | "members": [ # Specifies the identities requesting access for a Cloud Platform resource. | 
|  | # `members` can have the following values: | 
|  | # | 
|  | # * `allUsers`: A special identifier that represents anyone who is | 
|  | #    on the internet; with or without a Google account. | 
|  | # | 
|  | # * `allAuthenticatedUsers`: A special identifier that represents anyone | 
|  | #    who is authenticated with a Google account or a service account. | 
|  | # | 
|  | # * `user:{emailid}`: An email address that represents a specific Google | 
|  | #    account. For example, `alice@gmail.com` . | 
|  | # | 
|  | # | 
|  | # * `serviceAccount:{emailid}`: An email address that represents a service | 
|  | #    account. For example, `my-other-app@appspot.gserviceaccount.com`. | 
|  | # | 
|  | # * `group:{emailid}`: An email address that represents a Google group. | 
|  | #    For example, `admins@example.com`. | 
|  | # | 
|  | # | 
|  | # * `domain:{domain}`: The G Suite domain (primary) that represents all the | 
|  | #    users of that domain. For example, `google.com` or `example.com`. | 
|  | # | 
|  | "A String", | 
|  | ], | 
|  | "condition": { # Represents an expression text. Example: # The condition that is associated with this binding. | 
|  | # NOTE: An unsatisfied condition will not allow user access via current | 
|  | # binding. Different bindings, including their conditions, are examined | 
|  | # independently. | 
|  | # | 
|  | #     title: "User account presence" | 
|  | #     description: "Determines whether the request has a user account" | 
|  | #     expression: "size(request.user) > 0" | 
|  | "location": "A String", # An optional string indicating the location of the expression for error | 
|  | # reporting, e.g. a file name and a position in the file. | 
|  | "expression": "A String", # Textual representation of an expression in | 
|  | # Common Expression Language syntax. | 
|  | # | 
|  | # The application context of the containing message determines which | 
|  | # well-known feature set of CEL is supported. | 
|  | "description": "A String", # An optional description of the expression. This is a longer text which | 
|  | # describes the expression, e.g. when hovered over it in a UI. | 
|  | "title": "A String", # An optional title for the expression, i.e. a short string describing | 
|  | # its purpose. This can be used e.g. in UIs which allow to enter the | 
|  | # expression. | 
|  | }, | 
|  | }, | 
|  | ], | 
|  | "version": 42, # Deprecated. | 
|  | "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help | 
|  | # prevent simultaneous updates of a policy from overwriting each other. | 
|  | # It is strongly suggested that systems make use of the `etag` in the | 
|  | # read-modify-write cycle to perform policy updates in order to avoid race | 
|  | # conditions: An `etag` is returned in the response to `getIamPolicy`, and | 
|  | # systems are expected to put that etag in the request to `setIamPolicy` to | 
|  | # ensure that their change will be applied to the same version of the policy. | 
|  | # | 
|  | # If no `etag` is provided in the call to `setIamPolicy`, then the existing | 
|  | # policy is overwritten blindly. | 
|  | }, | 
|  | } | 
|  |  | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # Defines an Identity and Access Management (IAM) policy. It is used to | 
|  | # specify access control policies for Cloud Platform resources. | 
|  | # | 
|  | # | 
|  | # A `Policy` consists of a list of `bindings`. A `binding` binds a list of | 
|  | # `members` to a `role`, where the members can be user accounts, Google groups, | 
|  | # Google domains, and service accounts. A `role` is a named list of permissions | 
|  | # defined by IAM. | 
|  | # | 
|  | # **JSON Example** | 
|  | # | 
|  | #     { | 
|  | #       "bindings": [ | 
|  | #         { | 
|  | #           "role": "roles/owner", | 
|  | #           "members": [ | 
|  | #             "user:mike@example.com", | 
|  | #             "group:admins@example.com", | 
|  | #             "domain:google.com", | 
|  | #             "serviceAccount:my-other-app@appspot.gserviceaccount.com" | 
|  | #           ] | 
|  | #         }, | 
|  | #         { | 
|  | #           "role": "roles/viewer", | 
|  | #           "members": ["user:sean@example.com"] | 
|  | #         } | 
|  | #       ] | 
|  | #     } | 
|  | # | 
|  | # **YAML Example** | 
|  | # | 
|  | #     bindings: | 
|  | #     - members: | 
|  | #       - user:mike@example.com | 
|  | #       - group:admins@example.com | 
|  | #       - domain:google.com | 
|  | #       - serviceAccount:my-other-app@appspot.gserviceaccount.com | 
|  | #       role: roles/owner | 
|  | #     - members: | 
|  | #       - user:sean@example.com | 
|  | #       role: roles/viewer | 
|  | # | 
|  | # | 
|  | # For a description of IAM and its features, see the | 
|  | # [IAM developer's guide](https://cloud.google.com/iam/docs). | 
|  | "bindings": [ # Associates a list of `members` to a `role`. | 
|  | # `bindings` with no members will result in an error. | 
|  | { # Associates `members` with a `role`. | 
|  | "role": "A String", # Role that is assigned to `members`. | 
|  | # For example, `roles/viewer`, `roles/editor`, or `roles/owner`. | 
|  | "members": [ # Specifies the identities requesting access for a Cloud Platform resource. | 
|  | # `members` can have the following values: | 
|  | # | 
|  | # * `allUsers`: A special identifier that represents anyone who is | 
|  | #    on the internet; with or without a Google account. | 
|  | # | 
|  | # * `allAuthenticatedUsers`: A special identifier that represents anyone | 
|  | #    who is authenticated with a Google account or a service account. | 
|  | # | 
|  | # * `user:{emailid}`: An email address that represents a specific Google | 
|  | #    account. For example, `alice@gmail.com` . | 
|  | # | 
|  | # | 
|  | # * `serviceAccount:{emailid}`: An email address that represents a service | 
|  | #    account. For example, `my-other-app@appspot.gserviceaccount.com`. | 
|  | # | 
|  | # * `group:{emailid}`: An email address that represents a Google group. | 
|  | #    For example, `admins@example.com`. | 
|  | # | 
|  | # | 
|  | # * `domain:{domain}`: The G Suite domain (primary) that represents all the | 
|  | #    users of that domain. For example, `google.com` or `example.com`. | 
|  | # | 
|  | "A String", | 
|  | ], | 
|  | "condition": { # Represents an expression text. Example: # The condition that is associated with this binding. | 
|  | # NOTE: An unsatisfied condition will not allow user access via current | 
|  | # binding. Different bindings, including their conditions, are examined | 
|  | # independently. | 
|  | # | 
|  | #     title: "User account presence" | 
|  | #     description: "Determines whether the request has a user account" | 
|  | #     expression: "size(request.user) > 0" | 
|  | "location": "A String", # An optional string indicating the location of the expression for error | 
|  | # reporting, e.g. a file name and a position in the file. | 
|  | "expression": "A String", # Textual representation of an expression in | 
|  | # Common Expression Language syntax. | 
|  | # | 
|  | # The application context of the containing message determines which | 
|  | # well-known feature set of CEL is supported. | 
|  | "description": "A String", # An optional description of the expression. This is a longer text which | 
|  | # describes the expression, e.g. when hovered over it in a UI. | 
|  | "title": "A String", # An optional title for the expression, i.e. a short string describing | 
|  | # its purpose. This can be used e.g. in UIs which allow to enter the | 
|  | # expression. | 
|  | }, | 
|  | }, | 
|  | ], | 
|  | "version": 42, # Deprecated. | 
|  | "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help | 
|  | # prevent simultaneous updates of a policy from overwriting each other. | 
|  | # It is strongly suggested that systems make use of the `etag` in the | 
|  | # read-modify-write cycle to perform policy updates in order to avoid race | 
|  | # conditions: An `etag` is returned in the response to `getIamPolicy`, and | 
|  | # systems are expected to put that etag in the request to `setIamPolicy` to | 
|  | # ensure that their change will be applied to the same version of the policy. | 
|  | # | 
|  | # If no `etag` is provided in the call to `setIamPolicy`, then the existing | 
|  | # policy is overwritten blindly. | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | <div class="method"> | 
|  | <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code> | 
|  | <pre>Returns permissions that a caller has on the specified resource. | 
|  | If the 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. | 
|  |  | 
|  | Args: | 
|  | resource: string, REQUIRED: The resource for which the policy detail is being requested. | 
|  | See the operation documentation for the appropriate value for this field. (required) | 
|  | body: object, The request body. (required) | 
|  | The object takes the form of: | 
|  |  | 
|  | { # Request message for `TestIamPermissions` method. | 
|  | "permissions": [ # The set of permissions to check for the `resource`. Permissions with | 
|  | # wildcards (such as '*' or 'storage.*') are not allowed. For more | 
|  | # information see | 
|  | # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). | 
|  | "A String", | 
|  | ], | 
|  | } | 
|  |  | 
|  | x__xgafv: string, V1 error format. | 
|  | Allowed values | 
|  | 1 - v1 error format | 
|  | 2 - v2 error format | 
|  |  | 
|  | Returns: | 
|  | An object of the form: | 
|  |  | 
|  | { # Response message for `TestIamPermissions` method. | 
|  | "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is | 
|  | # allowed. | 
|  | "A String", | 
|  | ], | 
|  | }</pre> | 
|  | </div> | 
|  |  | 
|  | </body></html> |