Method: googleapis.pubsub.v1.projects.subscriptions.create

Creates a subscription to a given topic. See the resource name rules. If the subscription already exists, returns ALREADY_EXISTS. If the corresponding topic doesn't exist, returns NOT_FOUND. If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic, conforming to the resource name format. The generated name is populated in the returned Subscription object. Note that for REST API requests, you must specify a name in the request.

Arguments

Parameters
name

string

Required. 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".

body

object (Subscription)

Required.

Raised exceptions

Exceptions
ConnectionError In case of a network problem (such as DNS failure or refused connection).
HttpError If the response status is >= 400 (excluding 429 and 503).
TimeoutError If a long-running operation takes longer to finish than the specified timeout limit.
TypeError If an operation or function receives an argument of the wrong type.
ValueError If an operation or function receives an argument of the right type but an inappropriate value. For example, a negative timeout.

Response

If successful, the response contains an instance of Subscription.

Subworkflow snippet

Some fields might be optional or required. To identify required fields, refer to the API documentation.

YAML

- create:
    call: googleapis.pubsub.v1.projects.subscriptions.create
    args:
        name: ...
        body:
            ackDeadlineSeconds: ...
            deadLetterPolicy:
                deadLetterTopic: ...
                maxDeliveryAttempts: ...
            detached: ...
            enableMessageOrdering: ...
            expirationPolicy:
                ttl: ...
            filter: ...
            labels: ...
            messageRetentionDuration: ...
            name: ...
            pushConfig:
                attributes: ...
                oidcToken:
                    audience: ...
                    serviceAccountEmail: ...
                pushEndpoint: ...
            retainAckedMessages: ...
            retryPolicy:
                maximumBackoff: ...
                minimumBackoff: ...
            topic: ...
    result: createResult

JSON

[
  {
    "create": {
      "call": "googleapis.pubsub.v1.projects.subscriptions.create",
      "args": {
        "name": "...",
        "body": {
          "ackDeadlineSeconds": "...",
          "deadLetterPolicy": {
            "deadLetterTopic": "...",
            "maxDeliveryAttempts": "..."
          },
          "detached": "...",
          "enableMessageOrdering": "...",
          "expirationPolicy": {
            "ttl": "..."
          },
          "filter": "...",
          "labels": "...",
          "messageRetentionDuration": "...",
          "name": "...",
          "pushConfig": {
            "attributes": "...",
            "oidcToken": {
              "audience": "...",
              "serviceAccountEmail": "..."
            },
            "pushEndpoint": "..."
          },
          "retainAckedMessages": "...",
          "retryPolicy": {
            "maximumBackoff": "...",
            "minimumBackoff": "..."
          },
          "topic": "..."
        }
      },
      "result": "createResult"
    }
  }
]