topics
Creates, updates, deletes, gets or lists a topics
resource.
Overview
Name | topics |
Type | Resource |
Id | google.pubsub.topics |
Fields
The following fields are returned by SELECT
queries:
- projects_topics_get
- projects_topics_list
Successful response
Name | Datatype | Description |
---|---|---|
name | string | 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 (_ ), periods (. ), tildes (~ ), plus (+ ) or percent signs (% ). It must be between 3 and 255 characters in length, and it must not start with "goog" . |
ingestionDataSourceSettings | object | Optional. Settings for ingestion from a data source into this topic. (id: IngestionDataSourceSettings) |
kmsKeyName | string | Optional. 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/* . |
labels | object | Optional. See [Creating and managing labels] (https://cloud.google.com/pubsub/docs/labels). |
messageRetentionDuration | string (google-duration) | Optional. 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 message_retention_duration are always available to subscribers. For instance, it allows any attached subscription to seek to a timestamp that is up to message_retention_duration in the past. If this field is not set, message retention is controlled by settings on individual subscriptions. Cannot be more than 31 days or less than 10 minutes. |
messageStoragePolicy | object | Optional. 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. (id: MessageStoragePolicy) |
messageTransforms | array | Optional. Transforms to be applied to messages published to the topic. Transforms are applied in the order specified. |
satisfiesPzs | boolean | Optional. Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests. |
schemaSettings | object | Optional. Settings for validating messages published against a schema. (id: SchemaSettings) |
state | string | Output only. An output-only field indicating the state of the topic. |
Successful response
Name | Datatype | Description |
---|---|---|
name | string | 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 (_ ), periods (. ), tildes (~ ), plus (+ ) or percent signs (% ). It must be between 3 and 255 characters in length, and it must not start with "goog" . |
ingestionDataSourceSettings | object | Optional. Settings for ingestion from a data source into this topic. (id: IngestionDataSourceSettings) |
kmsKeyName | string | Optional. 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/* . |
labels | object | Optional. See [Creating and managing labels] (https://cloud.google.com/pubsub/docs/labels). |
messageRetentionDuration | string (google-duration) | Optional. 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 message_retention_duration are always available to subscribers. For instance, it allows any attached subscription to seek to a timestamp that is up to message_retention_duration in the past. If this field is not set, message retention is controlled by settings on individual subscriptions. Cannot be more than 31 days or less than 10 minutes. |
messageStoragePolicy | object | Optional. 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. (id: MessageStoragePolicy) |
messageTransforms | array | Optional. Transforms to be applied to messages published to the topic. Transforms are applied in the order specified. |
satisfiesPzs | boolean | Optional. Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests. |
schemaSettings | object | Optional. Settings for validating messages published against a schema. (id: SchemaSettings) |
state | string | Output only. An output-only field indicating the state of the topic. |
Methods
The following methods are available for this resource:
Name | Accessible by | Required Params | Optional Params | Description |
---|---|---|---|---|
projects_topics_get | select | projectsId , topicsId | Gets the configuration of a topic. | |
projects_topics_list | select | projectsId | pageSize , pageToken | Lists matching topics. |
projects_topics_patch | update | projectsId , topicsId | Updates an existing topic by updating the fields specified in the update mask. Note that certain properties of a topic are not modifiable. | |
projects_topics_delete | delete | projectsId , topicsId | 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_ . | |
projects_topics_create | exec | projectsId , topicsId | Creates the given topic with the given name. See the [resource name rules] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names). | |
projects_topics_publish | exec | projectsId , topicsId | Adds one or more messages to the topic. Returns NOT_FOUND if the topic does not exist. |
Parameters
Parameters can be passed in the WHERE
clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
Name | Datatype | Description |
---|---|---|
projectsId | string | |
topicsId | string | |
pageSize | integer (int32) | |
pageToken | string |
SELECT
examples
- projects_topics_get
- projects_topics_list
Gets the configuration of a topic.
SELECT
name,
ingestionDataSourceSettings,
kmsKeyName,
labels,
messageRetentionDuration,
messageStoragePolicy,
messageTransforms,
satisfiesPzs,
schemaSettings,
state
FROM google.pubsub.topics
WHERE projectsId = '{{ projectsId }}' -- required
AND topicsId = '{{ topicsId }}' -- required;
Lists matching topics.
SELECT
name,
ingestionDataSourceSettings,
kmsKeyName,
labels,
messageRetentionDuration,
messageStoragePolicy,
messageTransforms,
satisfiesPzs,
schemaSettings,
state
FROM google.pubsub.topics
WHERE projectsId = '{{ projectsId }}' -- required
AND pageSize = '{{ pageSize }}'
AND pageToken = '{{ pageToken }}';
UPDATE
examples
- projects_topics_patch
Updates an existing topic by updating the fields specified in the update mask. Note that certain properties of a topic are not modifiable.
UPDATE google.pubsub.topics
SET
data__topic = '{{ topic }}',
data__updateMask = '{{ updateMask }}'
WHERE
projectsId = '{{ projectsId }}' --required
AND topicsId = '{{ topicsId }}' --required
RETURNING
name,
ingestionDataSourceSettings,
kmsKeyName,
labels,
messageRetentionDuration,
messageStoragePolicy,
messageTransforms,
satisfiesPzs,
schemaSettings,
state;
DELETE
examples
- projects_topics_delete
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_
.
DELETE FROM google.pubsub.topics
WHERE projectsId = '{{ projectsId }}' --required
AND topicsId = '{{ topicsId }}' --required;
Lifecycle Methods
- projects_topics_create
- projects_topics_publish
Creates the given topic with the given name. See the [resource name rules] (https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names).
EXEC google.pubsub.topics.projects_topics_create
@projectsId='{{ projectsId }}' --required,
@topicsId='{{ topicsId }}' --required
@@json=
'{
"name": "{{ name }}",
"labels": "{{ labels }}",
"messageStoragePolicy": "{{ messageStoragePolicy }}",
"kmsKeyName": "{{ kmsKeyName }}",
"schemaSettings": "{{ schemaSettings }}",
"satisfiesPzs": {{ satisfiesPzs }},
"messageRetentionDuration": "{{ messageRetentionDuration }}",
"ingestionDataSourceSettings": "{{ ingestionDataSourceSettings }}",
"messageTransforms": "{{ messageTransforms }}"
}';
Adds one or more messages to the topic. Returns NOT_FOUND
if the topic does not exist.
EXEC google.pubsub.topics.projects_topics_publish
@projectsId='{{ projectsId }}' --required,
@topicsId='{{ topicsId }}' --required
@@json=
'{
"messages": "{{ messages }}"
}';