Google Pub/Sub · Capability

Google Pub/Sub Google Cloud Pub/Sub API

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.

Run with Naftiko GooglePubSubAPI

What You Can Do

GET
Listtopics — Google Pub/Sub List topics
/v1/projects/{project}/topics
GET
Gettopic — Google Pub/Sub Get a topic
/v1/projects/{project}/topics/{topic}
PUT
Createtopic — Google Pub/Sub Create a topic
/v1/projects/{project}/topics/{topic}
DELETE
Deletetopic — Google Pub/Sub Delete a topic
/v1/projects/{project}/topics/{topic}
PATCH
Updatetopic — Google Pub/Sub Update a topic
/v1/{topic}
POST
Publish — Google Pub/Sub Publish messages
/v1/{topic}:publish
GET
Listsubscriptions — Google Pub/Sub List subscriptions
/v1/projects/{project}/subscriptions
GET
Getsubscription — Google Pub/Sub Get a subscription
/v1/projects/{project}/subscriptions/{subscription}
PUT
Createsubscription — Google Pub/Sub Create a subscription
/v1/projects/{project}/subscriptions/{subscription}
DELETE
Deletesubscription — Google Pub/Sub Delete a subscription
/v1/projects/{project}/subscriptions/{subscription}
POST
Pull — Google Pub/Sub Pull messages
/v1/{subscription}:pull
POST
Acknowledge — Google Pub/Sub Acknowledge messages
/v1/{subscription}:acknowledge
POST
Modifyackdeadline — Google Pub/Sub Modify acknowledgement deadline
/v1/{subscription}:modifyAckDeadline
GET
Listsnapshots — Google Pub/Sub List snapshots
/v1/projects/{project}/snapshots
GET
Getsnapshot — Google Pub/Sub Get a snapshot
/v1/projects/{project}/snapshots/{snapshot}
PUT
Createsnapshot — Google Pub/Sub Create a snapshot
/v1/projects/{project}/snapshots/{snapshot}
DELETE
Deletesnapshot — Google Pub/Sub Delete a snapshot
/v1/projects/{project}/snapshots/{snapshot}
GET
Listschemas — Google Pub/Sub List schemas
/v1/projects/{project}/schemas
POST
Createschema — Google Pub/Sub Create a schema
/v1/projects/{project}/schemas

MCP Tools

listtopics

Google Pub/Sub List topics

read-only idempotent
gettopic

Google Pub/Sub Get a topic

read-only idempotent
createtopic

Google Pub/Sub Create a topic

idempotent
deletetopic

Google Pub/Sub Delete a topic

idempotent
updatetopic

Google Pub/Sub Update a topic

publish

Google Pub/Sub Publish messages

listsubscriptions

Google Pub/Sub List subscriptions

read-only idempotent
getsubscription

Google Pub/Sub Get a subscription

read-only idempotent
createsubscription

Google Pub/Sub Create a subscription

idempotent
deletesubscription

Google Pub/Sub Delete a subscription

idempotent
pull

Google Pub/Sub Pull messages

acknowledge

Google Pub/Sub Acknowledge messages

modifyackdeadline

Google Pub/Sub Modify acknowledgement deadline

listsnapshots

Google Pub/Sub List snapshots

read-only idempotent
getsnapshot

Google Pub/Sub Get a snapshot

read-only idempotent
createsnapshot

Google Pub/Sub Create a snapshot

idempotent
deletesnapshot

Google Pub/Sub Delete a snapshot

idempotent
listschemas

Google Pub/Sub List schemas

read-only idempotent
createschema

Google Pub/Sub Create a schema

Capability Spec

google-pub-sub-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Pub/Sub Google Cloud Pub/Sub 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.
  tags:
  - Google
  - Pub
  - Sub
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: google-pub-sub
    baseUri: https://pubsub.googleapis.com
    description: Google Pub/Sub Google Cloud Pub/Sub API HTTP API.
    authentication:
      type: bearer
      token: '{{GOOGLE_PUB_SUB_TOKEN}}'
    resources:
    - name: v1-projects-project-topics
      path: /v1/projects/{project}/topics
      operations:
      - name: listtopics
        method: GET
        description: Google Pub/Sub List topics
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
          description: The project ID (e.g., projects/my-project).
        - name: pageSize
          in: query
          type: integer
          description: Maximum number of topics to return.
        - name: pageToken
          in: query
          type: string
          description: Token for pagination.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-projects-project-topics-topic
      path: /v1/projects/{project}/topics/{topic}
      operations:
      - name: gettopic
        method: GET
        description: Google Pub/Sub Get a topic
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: topic
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createtopic
        method: PUT
        description: Google Pub/Sub Create a topic
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: topic
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletetopic
        method: DELETE
        description: Google Pub/Sub Delete a topic
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: topic
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-topic
      path: /v1/{topic}
      operations:
      - name: updatetopic
        method: PATCH
        description: Google Pub/Sub Update a topic
        inputParameters:
        - name: topic
          in: path
          type: string
          required: true
          description: The name of the topic (e.g., projects/my-project/topics/my-topic).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-topic-publish
      path: /v1/{topic}:publish
      operations:
      - name: publish
        method: POST
        description: Google Pub/Sub Publish messages
        inputParameters:
        - name: topic
          in: path
          type: string
          required: true
          description: The topic name (e.g., projects/my-project/topics/my-topic).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-projects-project-subscriptions
      path: /v1/projects/{project}/subscriptions
      operations:
      - name: listsubscriptions
        method: GET
        description: Google Pub/Sub List subscriptions
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: pageSize
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-projects-project-subscriptions-subscription
      path: /v1/projects/{project}/subscriptions/{subscription}
      operations:
      - name: getsubscription
        method: GET
        description: Google Pub/Sub Get a subscription
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: subscription
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createsubscription
        method: PUT
        description: Google Pub/Sub Create a subscription
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: subscription
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletesubscription
        method: DELETE
        description: Google Pub/Sub Delete a subscription
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: subscription
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-subscription-pull
      path: /v1/{subscription}:pull
      operations:
      - name: pull
        method: POST
        description: Google Pub/Sub Pull messages
        inputParameters:
        - name: subscription
          in: path
          type: string
          required: true
          description: The subscription name.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-subscription-acknowledge
      path: /v1/{subscription}:acknowledge
      operations:
      - name: acknowledge
        method: POST
        description: Google Pub/Sub Acknowledge messages
        inputParameters:
        - name: subscription
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-subscription-modifyackdeadline
      path: /v1/{subscription}:modifyAckDeadline
      operations:
      - name: modifyackdeadline
        method: POST
        description: Google Pub/Sub Modify acknowledgement deadline
        inputParameters:
        - name: subscription
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-projects-project-snapshots
      path: /v1/projects/{project}/snapshots
      operations:
      - name: listsnapshots
        method: GET
        description: Google Pub/Sub List snapshots
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: pageSize
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-projects-project-snapshots-snapshot
      path: /v1/projects/{project}/snapshots/{snapshot}
      operations:
      - name: getsnapshot
        method: GET
        description: Google Pub/Sub Get a snapshot
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: snapshot
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createsnapshot
        method: PUT
        description: Google Pub/Sub Create a snapshot
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: snapshot
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletesnapshot
        method: DELETE
        description: Google Pub/Sub Delete a snapshot
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: snapshot
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-projects-project-schemas
      path: /v1/projects/{project}/schemas
      operations:
      - name: listschemas
        method: GET
        description: Google Pub/Sub List schemas
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: pageSize
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createschema
        method: POST
        description: Google Pub/Sub Create a schema
        inputParameters:
        - name: project
          in: path
          type: string
          required: true
        - name: schemaId
          in: query
          type: string
          description: The ID to use for the schema.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: google-pub-sub-rest
    description: REST adapter for Google Pub/Sub Google Cloud Pub/Sub API.
    resources:
    - path: /v1/projects/{project}/topics
      name: listtopics
      operations:
      - method: GET
        name: listtopics
        description: Google Pub/Sub List topics
        call: google-pub-sub.listtopics
        with:
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/topics/{topic}
      name: gettopic
      operations:
      - method: GET
        name: gettopic
        description: Google Pub/Sub Get a topic
        call: google-pub-sub.gettopic
        with:
          project: rest.project
          topic: rest.topic
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/topics/{topic}
      name: createtopic
      operations:
      - method: PUT
        name: createtopic
        description: Google Pub/Sub Create a topic
        call: google-pub-sub.createtopic
        with:
          project: rest.project
          topic: rest.topic
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/topics/{topic}
      name: deletetopic
      operations:
      - method: DELETE
        name: deletetopic
        description: Google Pub/Sub Delete a topic
        call: google-pub-sub.deletetopic
        with:
          project: rest.project
          topic: rest.topic
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/{topic}
      name: updatetopic
      operations:
      - method: PATCH
        name: updatetopic
        description: Google Pub/Sub Update a topic
        call: google-pub-sub.updatetopic
        with:
          topic: rest.topic
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/{topic}:publish
      name: publish
      operations:
      - method: POST
        name: publish
        description: Google Pub/Sub Publish messages
        call: google-pub-sub.publish
        with:
          topic: rest.topic
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/subscriptions
      name: listsubscriptions
      operations:
      - method: GET
        name: listsubscriptions
        description: Google Pub/Sub List subscriptions
        call: google-pub-sub.listsubscriptions
        with:
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/subscriptions/{subscription}
      name: getsubscription
      operations:
      - method: GET
        name: getsubscription
        description: Google Pub/Sub Get a subscription
        call: google-pub-sub.getsubscription
        with:
          project: rest.project
          subscription: rest.subscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/subscriptions/{subscription}
      name: createsubscription
      operations:
      - method: PUT
        name: createsubscription
        description: Google Pub/Sub Create a subscription
        call: google-pub-sub.createsubscription
        with:
          project: rest.project
          subscription: rest.subscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/subscriptions/{subscription}
      name: deletesubscription
      operations:
      - method: DELETE
        name: deletesubscription
        description: Google Pub/Sub Delete a subscription
        call: google-pub-sub.deletesubscription
        with:
          project: rest.project
          subscription: rest.subscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/{subscription}:pull
      name: pull
      operations:
      - method: POST
        name: pull
        description: Google Pub/Sub Pull messages
        call: google-pub-sub.pull
        with:
          subscription: rest.subscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/{subscription}:acknowledge
      name: acknowledge
      operations:
      - method: POST
        name: acknowledge
        description: Google Pub/Sub Acknowledge messages
        call: google-pub-sub.acknowledge
        with:
          subscription: rest.subscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/{subscription}:modifyAckDeadline
      name: modifyackdeadline
      operations:
      - method: POST
        name: modifyackdeadline
        description: Google Pub/Sub Modify acknowledgement deadline
        call: google-pub-sub.modifyackdeadline
        with:
          subscription: rest.subscription
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/snapshots
      name: listsnapshots
      operations:
      - method: GET
        name: listsnapshots
        description: Google Pub/Sub List snapshots
        call: google-pub-sub.listsnapshots
        with:
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/snapshots/{snapshot}
      name: getsnapshot
      operations:
      - method: GET
        name: getsnapshot
        description: Google Pub/Sub Get a snapshot
        call: google-pub-sub.getsnapshot
        with:
          project: rest.project
          snapshot: rest.snapshot
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/snapshots/{snapshot}
      name: createsnapshot
      operations:
      - method: PUT
        name: createsnapshot
        description: Google Pub/Sub Create a snapshot
        call: google-pub-sub.createsnapshot
        with:
          project: rest.project
          snapshot: rest.snapshot
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/snapshots/{snapshot}
      name: deletesnapshot
      operations:
      - method: DELETE
        name: deletesnapshot
        description: Google Pub/Sub Delete a snapshot
        call: google-pub-sub.deletesnapshot
        with:
          project: rest.project
          snapshot: rest.snapshot
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/schemas
      name: listschemas
      operations:
      - method: GET
        name: listschemas
        description: Google Pub/Sub List schemas
        call: google-pub-sub.listschemas
        with:
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/projects/{project}/schemas
      name: createschema
      operations:
      - method: POST
        name: createschema
        description: Google Pub/Sub Create a schema
        call: google-pub-sub.createschema
        with:
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: google-pub-sub-mcp
    transport: http
    description: MCP adapter for Google Pub/Sub Google Cloud Pub/Sub API for AI agent use.
    tools:
    - name: listtopics
      description: Google Pub/Sub List topics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-pub-sub.listtopics
      with:
        project: tools.project
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: project
        type: string
        description: The project ID (e.g., projects/my-project).
        required: true
      - name: pageSize
        type: integer
        description: Maximum number of topics to return.
      - name: pageToken
        type: string
        description: Token for pagination.
      outputParameters:
      - type: object
        mapping: $.
    - name: gettopic
      description: Google Pub/Sub Get a topic
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-pub-sub.gettopic
      with:
        project: tools.project
        topic: tools.topic
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: topic
        type: string
        description: topic
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createtopic
      description: Google Pub/Sub Create a topic
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-pub-sub.createtopic
      with:
        project: tools.project
        topic: tools.topic
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: topic
        type: string
        description: topic
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletetopic
      description: Google Pub/Sub Delete a topic
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-pub-sub.deletetopic
      with:
        project: tools.project
        topic: tools.topic
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: topic
        type: string
        description: topic
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updatetopic
      description: Google Pub/Sub Update a topic
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-pub-sub.updatetopic
      with:
        topic: tools.topic
      inputParameters:
      - name: topic
        type: string
        description: The name of the topic (e.g., projects/my-project/topics/my-topic).
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: publish
      description: Google Pub/Sub Publish messages
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-pub-sub.publish
      with:
        topic: tools.topic
      inputParameters:
      - name: topic
        type: string
        description: The topic name (e.g., projects/my-project/topics/my-topic).
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listsubscriptions
      description: Google Pub/Sub List subscriptions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-pub-sub.listsubscriptions
      with:
        project: tools.project
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: getsubscription
      description: Google Pub/Sub Get a subscription
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-pub-sub.getsubscription
      with:
        project: tools.project
        subscription: tools.subscription
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: subscription
        type: string
        description: subscription
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createsubscription
      description: Google Pub/Sub Create a subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-pub-sub.createsubscription
      with:
        project: tools.project
        subscription: tools.subscription
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: subscription
        type: string
        description: subscription
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletesubscription
      description: Google Pub/Sub Delete a subscription
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-pub-sub.deletesubscription
      with:
        project: tools.project
        subscription: tools.subscription
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: subscription
        type: string
        description: subscription
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: pull
      description: Google Pub/Sub Pull messages
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-pub-sub.pull
      with:
        subscription: tools.subscription
      inputParameters:
      - name: subscription
        type: string
        description: The subscription name.
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: acknowledge
      description: Google Pub/Sub Acknowledge messages
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-pub-sub.acknowledge
      with:
        subscription: tools.subscription
      inputParameters:
      - name: subscription
        type: string
        description: subscription
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: modifyackdeadline
      description: Google Pub/Sub Modify acknowledgement deadline
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-pub-sub.modifyackdeadline
      with:
        subscription: tools.subscription
      inputParameters:
      - name: subscription
        type: string
        description: subscription
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listsnapshots
      description: Google Pub/Sub List snapshots
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-pub-sub.listsnapshots
      with:
        project: tools.project
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: getsnapshot
      description: Google Pub/Sub Get a snapshot
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-pub-sub.getsnapshot
      with:
        project: tools.project
        snapshot: tools.snapshot
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: snapshot
        type: string
        description: snapshot
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createsnapshot
      description: Google Pub/Sub Create a snapshot
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: google-pub-sub.createsnapshot
      with:
        project: tools.project
        snapshot: tools.snapshot
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: snapshot
        type: string
        description: snapshot
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletesnapshot
      description: Google Pub/Sub Delete a snapshot
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: google-pub-sub.deletesnapshot
      with:
        project: tools.project
        snapshot: tools.snapshot
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: snapshot
        type: string
        description: snapshot
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listschemas
      description: Google Pub/Sub List schemas
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: google-pub-sub.listschemas
      with:
        project: tools.project
        pageSize: tools.pageSize
        pageToken: tools.pageToken
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: pageSize
        type: integer
        description: pageSize
      - name: pageToken
        type: string
        description: pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: createschema
      description: Google Pub/Sub Create a schema
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: google-pub-sub.createschema
      with:
        project: tools.project
        schemaId: tools.schemaId
      inputParameters:
      - name: project
        type: string
        description: project
        required: true
      - name: schemaId
        type: string
        description: The ID to use for the schema.
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    GOOGLE_PUB_SUB_TOKEN: GOOGLE_PUB_SUB_TOKEN