REST Resource: projects.topics

Resource: Topic

A topic resource.

JSON representation
{
  "name": string,
  "labels": {
    string: string,
    ...
  },
  "messageStoragePolicy": {
    object (MessageStoragePolicy)
  },
  "kmsKeyName": string,
  "schemaSettings": {
    object (SchemaSettings)
  },
  "satisfiesPzs": boolean,
  "messageRetentionDuration": string
}
Fields
name

string

Required. Name of the topic. Format is projects/{project}/topics/{topic}.

labels

map (key: string, value: string)

See Creating and managing labels.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

messageStoragePolicy

object (MessageStoragePolicy)

Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not present, then no constraints are in effect.

kmsKeyName

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/*.

schemaSettings

object (SchemaSettings)

Settings for validating messages published against a schema.

satisfiesPzs

boolean

Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.

messageRetentionDuration

string (Duration format)

Indicates the minimum duration to retain a message after it is published to the topic. If this field is set, messages published to the topic in the last messageRetentionDuration are always available to subscribers. For instance, it allows any attached subscription to seek to a timestamp that is up to messageRetentionDuration in the past. If this field is not set, message retention is controlled by settings on individual subscriptions. Cannot be more than 7 days or less than 10 minutes.

A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

MessageStoragePolicy

A policy constraining the storage of messages published to the topic.

JSON representation
{
  "allowedPersistenceRegions": [
    string
  ]
}
Fields
allowedPersistenceRegions[]

string

A list of IDs of GCP regions 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 means that no regions are allowed, and is not a valid configuration.

SchemaSettings

Settings for validating messages published against a schema.

JSON representation
{
  "schema": string,
  "encoding": enum (Encoding)
}
Fields
schema

string

Required. The name of the schema that messages published should be validated against. Format is projects/{project}/schemas/{schema}. The value of this field will be _deleted-schema_ if the schema has been deleted.

encoding

enum (Encoding)

The encoding of messages validated against schema.

Encoding

Possible encoding types for messages.

Enums
ENCODING_UNSPECIFIED Unspecified
JSON JSON encoding
BINARY Binary encoding, as defined by the schema type. For some schema types, binary encoding may not be available.

Methods

create

Creates the given topic with the given name.

delete

Deletes the topic with the given name.

get

Gets the configuration of a topic.

getIamPolicy

Gets the access control policy for a resource.

list

Lists matching topics.

patch

Updates an existing topic.

publish

Adds one or more messages to the topic.

setIamPolicy

Sets the access control policy on the specified resource.

testIamPermissions

Returns permissions that a caller has on the specified resource.