# Google Cloud Pub/Sub API service configuration

type: google.api.Service
config_version: 3
name: pubsub.googleapis.com

title: Google Cloud Pub/Sub API

documentation:
  summary: >
    Provides reliable, many-to-many, asynchronous messaging between
    applications.
  rules:
    - selector: >
        google.pubsub.v1.Topic.name,
      description: |
          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"`.
    - selector: >
        google.pubsub.v1.Subscription.name,
      description: |
          The name of the subscription. It must have the format
          `"projects/{project}/subscriptions/{subscription}"`. `{subscription}` 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"`.

apis:
- name: google.pubsub.v1.Publisher
- name: google.pubsub.v1.Subscriber

authentication:
  rules:
    - selector: '*'
      oauth:
        canonical_scopes: https://www.googleapis.com/auth/pubsub,
                          https://www.googleapis.com/auth/cloud-platform
