openapi: 3.1.0 info: title: Google Pub/Sub Google Cloud Pub/Sub Publish Topics API description: Provides reliable, many-to-many, asynchronous messaging between applications. The Pub/Sub API allows you to create and manage topics and subscriptions, publish messages, and pull or push messages to subscribers. version: v1 contact: name: Google Cloud url: https://cloud.google.com/pubsub license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://pubsub.googleapis.com description: Google Cloud Pub/Sub API security: - oauth2: - https://www.googleapis.com/auth/pubsub - bearerAuth: [] tags: - name: Topics description: Manage Pub/Sub topics paths: /v1/projects/{project}/topics: get: operationId: listTopics summary: Google Pub/Sub List topics description: Lists matching topics in the given project. tags: - Topics parameters: - name: project in: path required: true description: The project ID (e.g., projects/my-project). schema: type: string - name: pageSize in: query description: Maximum number of topics to return. schema: type: integer - name: pageToken in: query description: Token for pagination. schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ListTopicsResponse' /v1/projects/{project}/topics/{topic}: get: operationId: getTopic summary: Google Pub/Sub Get a topic description: Gets the configuration of a topic. tags: - Topics parameters: - name: project in: path required: true schema: type: string - name: topic in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Topic' put: operationId: createTopic summary: Google Pub/Sub Create a topic description: Creates the given topic with the given name. The topic name must be unique within the project. tags: - Topics parameters: - name: project in: path required: true schema: type: string - name: topic in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Topic' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Topic' delete: operationId: deleteTopic summary: Google Pub/Sub Delete a topic description: Deletes the topic with the given name. Existing subscriptions to this topic are not deleted but their topic field is set to _deleted-topic_. tags: - Topics parameters: - name: project in: path required: true schema: type: string - name: topic in: path required: true schema: type: string responses: '200': description: Successful response /v1/{topic}: patch: operationId: updateTopic summary: Google Pub/Sub Update a topic description: Updates an existing topic by updating the fields specified in the update mask. tags: - Topics parameters: - name: topic in: path required: true description: The name of the topic (e.g., projects/my-project/topics/my-topic). schema: type: string requestBody: content: application/json: schema: type: object properties: topic: $ref: '#/components/schemas/Topic' updateMask: type: string description: Fields to update. responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/Topic' components: schemas: Topic: type: object properties: name: type: string description: The name of the topic (e.g., projects/my-project/topics/my-topic). labels: type: object additionalProperties: type: string messageStoragePolicy: type: object properties: allowedPersistenceRegions: type: array items: type: string kmsKeyName: type: string description: The resource name of the Cloud KMS key to use for message encryption. schemaSettings: type: object properties: schema: type: string encoding: type: string enum: - ENCODING_UNSPECIFIED - JSON - BINARY firstRevisionId: type: string lastRevisionId: type: string satisfiesPzs: type: boolean messageRetentionDuration: type: string description: Message retention duration (e.g., 604800s for 7 days). state: type: string enum: - STATE_UNSPECIFIED - ACTIVE - INGESTION_RESOURCE_ERROR ListTopicsResponse: type: object properties: topics: type: array items: $ref: '#/components/schemas/Topic' nextPageToken: type: string securitySchemes: oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://accounts.google.com/o/oauth2/auth tokenUrl: https://oauth2.googleapis.com/token scopes: https://www.googleapis.com/auth/pubsub: Manage Pub/Sub resources https://www.googleapis.com/auth/cloud-platform: Full access to Google Cloud bearerAuth: type: http scheme: bearer