# Google Cloud Pub/Sub API . topics

## Instance Methods

Creates the given topic with the given name.

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.

Gets the configuration of a topic. Since the topic only has the name attribute, this method is only useful to check the existence of a topic. If other attributes are added in the future, they will be returned here.

Lists matching topics.

Retrieves the next page of results.

Adds a message to the topic. Returns NOT_FOUND if the topic does not exist.

Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.

### Method Details

`create(body, x__xgafv=None)`

    Creates the given topic with the given name.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # A topic resource.
      "name": "A String", # Name of the topic.
    }

      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # A topic resource.
        "name": "A String", # Name of the topic.
      }

`delete(topic, x__xgafv=None)`

    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.

    Args:
      topic: string, Name of the topic to delete. (required)
      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # An empty message that you can re-use to avoid defining duplicated empty messages in your project. A typical example is to use it as argument or the return value of a service API. For instance: service Foo { rpc Bar (proto2.Empty) returns (proto2.Empty) { }; }; BEGIN GOOGLE-INTERNAL The difference between this one and net/rpc/empty-message.proto is that 1) The generated message here is in proto2 C++ API. 2) The proto2.Empty has minimum dependencies (no message_set or net/rpc dependencies) END GOOGLE-INTERNAL
      }

`get(topic, x__xgafv=None)`

    Gets the configuration of a topic. Since the topic only has the name attribute, this method is only useful to check the existence of a topic. If other attributes are added in the future, they will be returned here.

    Args:
      topic: string, The name of the topic to get. (required)
      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # A topic resource.
        "name": "A String", # Name of the topic.
      }

`list(maxResults=None, pageToken=None, query=None, x__xgafv=None)`

    Lists matching topics.

    Args:
      maxResults: integer, Maximum number of topics to return.
      pageToken: string, The value obtained in the last ListTopicsResponse for continuation.
      query: string, A valid label query expression.
      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # Response for the ListTopics method.
        "topic": [ # The resulting topics.
          { # A topic resource.
            "name": "A String", # Name of the topic.
          },
        ],
        "nextPageToken": "A String", # If not empty, indicates that there are more topics that match the request, and this value should be passed to the next ListTopicsRequest to continue.
      }

`list_next(previous_request, previous_response)`

    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.

`publish(body, x__xgafv=None)`

    Adds a message to the topic. Returns NOT_FOUND if the topic does not exist.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # Request for the Publish method.
        "topic": "A String", # The message in the request will be published on this topic.
        "message": { # A message data and its labels. # The message to publish.
          "messageId": "A String", # ID of this message assigned by the server at publication time. 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 a publisher in a Publish call.
          "data": "A String", # The message payload.
          "publishTime": "A String", # The time at which the message was published. The time is milliseconds since the UNIX epoch.
          "label": [ # Optional list of labels for this message. Keys in this collection must be unique.
            { # A key-value pair applied to a given object.
              "numValue": "A String", # An integer value.
              "strValue": "A String", # A string value.
              "key": "A String", # The key of a label is a syntactically valid URL (as per RFC 1738) with the "scheme" and initial slashes omitted and with the additional restrictions noted below. Each key should be globally unique. The "host" portion is called the "namespace" and is not necessarily resolvable to a network endpoint. Instead, the namespace indicates what system or entity defines the semantics of the label. Namespaces do not restrict the set of objects to which a label may be associated. Keys are defined by the following grammar: key = hostname "/" kpath kpath = ksegment *[ "/" ksegment ] ksegment = alphadigit | *[ alphadigit | "-" | "_" | "." ] where "hostname" and "alphadigit" are defined as in RFC 1738. Example key: spanner.google.com/universe
            },
          ],
        },
      }

      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # An empty message that you can re-use to avoid defining duplicated empty messages in your project. A typical example is to use it as argument or the return value of a service API. For instance: service Foo { rpc Bar (proto2.Empty) returns (proto2.Empty) { }; }; BEGIN GOOGLE-INTERNAL The difference between this one and net/rpc/empty-message.proto is that 1) The generated message here is in proto2 C++ API. 2) The proto2.Empty has minimum dependencies (no message_set or net/rpc dependencies) END GOOGLE-INTERNAL
      }

`publishBatch(body, x__xgafv=None)`

    Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist.

    Args:
      body: object, The request body. (required)
        The object takes the form of:

    { # Request for the PublishBatch method.
        "topic": "A String", # The messages in the request will be published on this topic.
        "messages": [ # The messages to publish.
          { # A message data and its labels.
            "messageId": "A String", # ID of this message assigned by the server at publication time. 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 a publisher in a Publish call.
            "data": "A String", # The message payload.
            "publishTime": "A String", # The time at which the message was published. The time is milliseconds since the UNIX epoch.
            "label": [ # Optional list of labels for this message. Keys in this collection must be unique.
              { # A key-value pair applied to a given object.
                "numValue": "A String", # An integer value.
                "strValue": "A String", # A string value.
                "key": "A String", # The key of a label is a syntactically valid URL (as per RFC 1738) with the "scheme" and initial slashes omitted and with the additional restrictions noted below. Each key should be globally unique. The "host" portion is called the "namespace" and is not necessarily resolvable to a network endpoint. Instead, the namespace indicates what system or entity defines the semantics of the label. Namespaces do not restrict the set of objects to which a label may be associated. Keys are defined by the following grammar: key = hostname "/" kpath kpath = ksegment *[ "/" ksegment ] ksegment = alphadigit | *[ alphadigit | "-" | "_" | "." ] where "hostname" and "alphadigit" are defined as in RFC 1738. Example key: spanner.google.com/universe
              },
            ],
          },
        ],
      }

      x__xgafv: string, V1 error format.

    Returns:
      An object of the form:

        { # Response for the PublishBatch 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",
        ],
      }