// Copyright 2019 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Note: this file is purely for documentation. Any contents are not expected
// to be loaded as the JS file.
/**
* @property {string[]} allowedPersistenceRegions
* A list of IDs of GCP regions where messages that are published to the topic
* may be persisted in storage. Messages published by publishers running in
* non-allowed GCP regions (or running outside of GCP altogether) will be
* routed for storage in one of the allowed regions. An empty list means that
* no regions are allowed, and is not a valid configuration.
*
* @typedef MessageStoragePolicy
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.MessageStoragePolicy definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const MessageStoragePolicy = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* A topic resource.
*
* @property {string} name
* 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"`.
*
* @property {Object.<string, string>} labels
* See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
* managing labels</a>.
*
* @property {Object} messageStoragePolicy
* 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.
*
* This object should have the same structure as [MessageStoragePolicy]{@link google.pubsub.v1.MessageStoragePolicy}
*
* @property {string} kmsKeyName
* 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/*`.
*
* @typedef Topic
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.Topic definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const Topic = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* A message that is published by publishers and consumed by subscribers. The
* message must contain either a non-empty data field or at least one attribute.
* Note that client libraries represent this object differently
* depending on the language. See the corresponding
* <a href="https://cloud.google.com/pubsub/docs/reference/libraries">client
* library documentation</a> for more information. See
* <a href="https://cloud.google.com/pubsub/quotas">Quotas and limits</a>
* for more information about message limits.
*
* @property {Buffer} data
* The message data field. If this field is empty, the message must contain
* at least one attribute.
*
* @property {Object.<string, string>} attributes
* Optional attributes for this message.
*
* @property {string} messageId
* ID of this message, assigned by the server when the message is published.
* Guaranteed to be unique within the topic. This value may be read by a
* subscriber that receives a `PubsubMessage` via a `Pull` call or a push
* delivery. It must not be populated by the publisher in a `Publish` call.
*
* @property {Object} publishTime
* The time at which the message was published, populated by the server when
* it receives the `Publish` call. It must not be populated by the
* publisher in a `Publish` call.
*
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
*
* @property {string} orderingKey
* Identifies related messages for which publish order should be respected.
* If a `Subscription` has `enable_message_ordering` set to `true`, messages
* published with the same `ordering_key` value will be delivered to
* subscribers in the order in which they are received by the Pub/Sub system.
* <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
* API might be changed in backward-incompatible ways and is not recommended
* for production use. It is not subject to any SLA or deprecation policy.
*
* @typedef PubsubMessage
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.PubsubMessage definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const PubsubMessage = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the GetTopic method.
*
* @property {string} topic
* The name of the topic to get.
* Format is `projects/{project}/topics/{topic}`.
*
* @typedef GetTopicRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.GetTopicRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const GetTopicRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the UpdateTopic method.
*
* @property {Object} topic
* The updated topic object.
*
* This object should have the same structure as [Topic]{@link google.pubsub.v1.Topic}
*
* @property {Object} updateMask
* Indicates which fields in the provided topic to update. Must be specified
* and non-empty. Note that if `update_mask` contains
* "message_storage_policy" then the new value will be determined based on the
* policy configured at the project or organization level. The
* `message_storage_policy` must not be set in the `topic` provided above.
*
* This object should have the same structure as [FieldMask]{@link google.protobuf.FieldMask}
*
* @typedef UpdateTopicRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.UpdateTopicRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const UpdateTopicRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the Publish method.
*
* @property {string} topic
* The messages in the request will be published on this topic.
* Format is `projects/{project}/topics/{topic}`.
*
* @property {Object[]} messages
* The messages to publish.
*
* This object should have the same structure as [PubsubMessage]{@link google.pubsub.v1.PubsubMessage}
*
* @typedef PublishRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.PublishRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const PublishRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `Publish` method.
*
* @property {string[]} messageIds
* The server-assigned ID of each published message, in the same order as
* the messages in the request. IDs are guaranteed to be unique within
* the topic.
*
* @typedef PublishResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.PublishResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const PublishResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `ListTopics` method.
*
* @property {string} project
* The name of the project in which to list topics.
* Format is `projects/{project-id}`.
*
* @property {number} pageSize
* Maximum number of topics to return.
*
* @property {string} pageToken
* The value returned by the last `ListTopicsResponse`; indicates that this is
* a continuation of a prior `ListTopics` call, and that the system should
* return the next page of data.
*
* @typedef ListTopicsRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListTopicsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListTopicsRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `ListTopics` method.
*
* @property {Object[]} topics
* The resulting topics.
*
* This object should have the same structure as [Topic]{@link google.pubsub.v1.Topic}
*
* @property {string} nextPageToken
* If not empty, indicates that there may be more topics that match the
* request; this value should be passed in a new `ListTopicsRequest`.
*
* @typedef ListTopicsResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListTopicsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListTopicsResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `ListTopicSubscriptions` method.
*
* @property {string} topic
* The name of the topic that subscriptions are attached to.
* Format is `projects/{project}/topics/{topic}`.
*
* @property {number} pageSize
* Maximum number of subscription names to return.
*
* @property {string} pageToken
* The value returned by the last `ListTopicSubscriptionsResponse`; indicates
* that this is a continuation of a prior `ListTopicSubscriptions` call, and
* that the system should return the next page of data.
*
* @typedef ListTopicSubscriptionsRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListTopicSubscriptionsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListTopicSubscriptionsRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `ListTopicSubscriptions` method.
*
* @property {string[]} subscriptions
* The names of the subscriptions that match the request.
*
* @property {string} nextPageToken
* If not empty, indicates that there may be more subscriptions that match
* the request; this value should be passed in a new
* `ListTopicSubscriptionsRequest` to get more subscriptions.
*
* @typedef ListTopicSubscriptionsResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListTopicSubscriptionsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListTopicSubscriptionsResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `ListTopicSnapshots` method.
*
* @property {string} topic
* The name of the topic that snapshots are attached to.
* Format is `projects/{project}/topics/{topic}`.
*
* @property {number} pageSize
* Maximum number of snapshot names to return.
*
* @property {string} pageToken
* The value returned by the last `ListTopicSnapshotsResponse`; indicates
* that this is a continuation of a prior `ListTopicSnapshots` call, and
* that the system should return the next page of data.
*
* @typedef ListTopicSnapshotsRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListTopicSnapshotsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListTopicSnapshotsRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `ListTopicSnapshots` method.
*
* @property {string[]} snapshots
* The names of the snapshots that match the request.
*
* @property {string} nextPageToken
* If not empty, indicates that there may be more snapshots that match
* the request; this value should be passed in a new
* `ListTopicSnapshotsRequest` to get more snapshots.
*
* @typedef ListTopicSnapshotsResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListTopicSnapshotsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListTopicSnapshotsResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `DeleteTopic` method.
*
* @property {string} topic
* Name of the topic to delete.
* Format is `projects/{project}/topics/{topic}`.
*
* @typedef DeleteTopicRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.DeleteTopicRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const DeleteTopicRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* A subscription resource.
*
* @property {string} name
* 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"`
*
* @property {string} topic
* The name of the topic from which this subscription is receiving messages.
* Format is `projects/{project}/topics/{topic}`.
* The value of this field will be `_deleted-topic_` if the topic has been
* deleted.
*
* @property {Object} pushConfig
* If push delivery is used with this subscription, this field is
* used to configure it. An empty `pushConfig` signifies that the subscriber
* will pull and ack messages using API methods.
*
* This object should have the same structure as [PushConfig]{@link google.pubsub.v1.PushConfig}
*
* @property {number} ackDeadlineSeconds
* The approximate amount of time (on a best-effort basis) Pub/Sub waits for
* the subscriber to acknowledge receipt before resending the message. In the
* interval after the message is delivered and before it is acknowledged, it
* is considered to be <i>outstanding</i>. During that time period, the
* message will not be redelivered (on a best-effort basis).
*
* For pull subscriptions, this value is used as the initial value for the ack
* deadline. To override this value for a given message, call
* `ModifyAckDeadline` with the corresponding `ack_id` if using
* non-streaming pull or send the `ack_id` in a
* `StreamingModifyAckDeadlineRequest` if using streaming pull.
* The minimum custom deadline you can specify is 10 seconds.
* The maximum custom deadline you can specify is 600 seconds (10 minutes).
* If this parameter is 0, a default value of 10 seconds is used.
*
* For push delivery, this value is also used to set the request timeout for
* the call to the push endpoint.
*
* If the subscriber never acknowledges the message, the Pub/Sub
* system will eventually redeliver the message.
*
* @property {boolean} retainAckedMessages
* Indicates whether to retain acknowledged messages. If true, then
* messages are not expunged from the subscription's backlog, even if they are
* acknowledged, until they fall out of the `message_retention_duration`
* window. This must be true if you would like to
* <a
* href="https://cloud.google.com/pubsub/docs/replay-overview#seek_to_a_time">
* Seek to a timestamp</a>.
*
* @property {Object} messageRetentionDuration
* How long to retain unacknowledged messages in the subscription's backlog,
* from the moment a message is published.
* If `retain_acked_messages` is true, then this also configures the retention
* of acknowledged messages, and thus configures how far back in time a `Seek`
* can be done. Defaults to 7 days. Cannot be more than 7 days or less than 10
* minutes.
*
* This object should have the same structure as [Duration]{@link google.protobuf.Duration}
*
* @property {Object.<string, string>} labels
* See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
* managing labels</a>.
*
* @property {boolean} enableMessageOrdering
* If true, messages published with the same `ordering_key` in `PubsubMessage`
* will be delivered to the subscribers in the order in which they
* are received by the Pub/Sub system. Otherwise, they may be delivered in
* any order.
* <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
* API might be changed in backward-incompatible ways and is not recommended
* for production use. It is not subject to any SLA or deprecation policy.
*
* @property {Object} expirationPolicy
* A policy that specifies the conditions for this subscription's expiration.
* A subscription is considered active as long as any connected subscriber is
* successfully consuming messages from the subscription or is issuing
* operations on the subscription. If `expiration_policy` is not set, a
* *default policy* with `ttl` of 31 days will be used. The minimum allowed
* value for `expiration_policy.ttl` is 1 day.
*
* This object should have the same structure as [ExpirationPolicy]{@link google.pubsub.v1.ExpirationPolicy}
*
* @property {Object} deadLetterPolicy
* A policy that specifies the conditions for dead lettering messages in
* this subscription. If dead_letter_policy is not set, dead lettering
* is disabled.
*
* The Cloud Pub/Sub service account associated with this subscriptions's
* parent project (i.e.,
* service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
* permission to Acknowledge() messages on this subscription.
* <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
* API might be changed in backward-incompatible ways and is not recommended
* for production use. It is not subject to any SLA or deprecation policy.
*
* This object should have the same structure as [DeadLetterPolicy]{@link google.pubsub.v1.DeadLetterPolicy}
*
* @typedef Subscription
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.Subscription definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const Subscription = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Dead lettering is done on a best effort basis. The same message might be
* dead lettered multiple times.
*
* If validation on any of the fields fails at subscription creation/updation,
* the create/update subscription request will fail.
*
* @property {string} deadLetterTopic
* The name of the topic to which dead letter messages should be published.
* Format is `projects/{project}/topics/{topic}`.The Cloud Pub/Sub service
* account associated with the enclosing subscription's parent project (i.e.,
* service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
* permission to Publish() to this topic.
*
* The operation will fail if the topic does not exist.
* Users should ensure that there is a subscription attached to this topic
* since messages published to a topic with no subscriptions are lost.
*
* @property {number} maxDeliveryAttempts
* The maximum number of delivery attempts for any message. The value must be
* between 5 and 100.
*
* The number of delivery attempts is defined as 1 + (the sum of number of
* NACKs and number of times the acknowledgement deadline has been exceeded
* for the message).
*
* A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
* client libraries may automatically extend ack_deadlines.
*
* This field will be honored on a best effort basis.
*
* If this parameter is 0, a default value of 5 is used.
*
* @typedef DeadLetterPolicy
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.DeadLetterPolicy definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const DeadLetterPolicy = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* A policy that specifies the conditions for resource expiration (i.e.,
* automatic resource deletion).
*
* @property {Object} ttl
* Specifies the "time-to-live" duration for an associated resource. The
* resource expires if it is not active for a period of `ttl`. The definition
* of "activity" depends on the type of the associated resource. The minimum
* and maximum allowed values for `ttl` depend on the type of the associated
* resource, as well. If `ttl` is not set, the associated resource never
* expires.
*
* This object should have the same structure as [Duration]{@link google.protobuf.Duration}
*
* @typedef ExpirationPolicy
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ExpirationPolicy definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ExpirationPolicy = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Configuration for a push delivery endpoint.
*
* @property {string} pushEndpoint
* A URL locating the endpoint to which messages should be pushed.
* For example, a Webhook endpoint might use "https://example.com/push".
*
* @property {Object.<string, string>} attributes
* Endpoint configuration attributes that can be used to control different
* aspects of the message delivery.
*
* The only currently supported attribute is `x-goog-version`, which you can
* use to change the format of the pushed message. This attribute
* indicates the version of the data expected by the endpoint. This
* controls the shape of the pushed message (i.e., its fields and metadata).
*
* If not present during the `CreateSubscription` call, it will default to
* the version of the Pub/Sub API used to make such call. If not present in a
* `ModifyPushConfig` call, its value will not be changed. `GetSubscription`
* calls will always return a valid version, even if the subscription was
* created without this attribute.
*
* The only supported values for the `x-goog-version` attribute are:
*
* * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API.
* * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.
*
* For example:
* <pre><code>attributes { "x-goog-version": "v1" } </code></pre>
*
* @property {Object} oidcToken
* If specified, Pub/Sub will generate and attach an OIDC JWT token as an
* `Authorization` header in the HTTP request for every pushed message.
*
* This object should have the same structure as [OidcToken]{@link google.pubsub.v1.OidcToken}
*
* @typedef PushConfig
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.PushConfig definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const PushConfig = {
// This is for documentation. Actual contents will be loaded by gRPC.
/**
* Contains information needed for generating an
* [OpenID Connect
* token](https://developers.google.com/identity/protocols/OpenIDConnect).
*
* @property {string} serviceAccountEmail
* [Service account
* email](https://cloud.google.com/iam/docs/service-accounts)
* to be used for generating the OIDC token. The caller (for
* CreateSubscription, UpdateSubscription, and ModifyPushConfig RPCs) must
* have the iam.serviceAccounts.actAs permission for the service account.
*
* @property {string} audience
* Audience to be used when generating OIDC token. The audience claim
* identifies the recipients that the JWT is intended for. The audience
* value is a single case-sensitive string. Having multiple values (array)
* for the audience field is not supported. More info about the OIDC JWT
* token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
* Note: if not specified, the Push endpoint URL will be used.
*
* @typedef OidcToken
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.PushConfig.OidcToken definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
OidcToken: {
// This is for documentation. Actual contents will be loaded by gRPC.
}
};
/**
* A message and its corresponding acknowledgment ID.
*
* @property {string} ackId
* This ID can be used to acknowledge the received message.
*
* @property {Object} message
* The message.
*
* This object should have the same structure as [PubsubMessage]{@link google.pubsub.v1.PubsubMessage}
*
* @property {number} deliveryAttempt
* Delivery attempt counter is 1 + (the sum of number of NACKs and number of
* ack_deadline exceeds) for this message.
*
* A NACK is any call to ModifyAckDeadline with a 0 deadline. An ack_deadline
* exceeds event is whenever a message is not acknowledged within
* ack_deadline. Note that ack_deadline is initially
* Subscription.ackDeadlineSeconds, but may get extended automatically by
* the client library.
*
* The first delivery of a given message will have this value as 1. The value
* is calculated at best effort and is approximate.
*
* If a DeadLetterPolicy is not set on the subscription, this will be 0.
* <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
* API might be changed in backward-incompatible ways and is not recommended
* for production use. It is not subject to any SLA or deprecation policy.
*
* @typedef ReceivedMessage
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ReceivedMessage definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ReceivedMessage = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the GetSubscription method.
*
* @property {string} subscription
* The name of the subscription to get.
* Format is `projects/{project}/subscriptions/{sub}`.
*
* @typedef GetSubscriptionRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.GetSubscriptionRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const GetSubscriptionRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the UpdateSubscription method.
*
* @property {Object} subscription
* The updated subscription object.
*
* This object should have the same structure as [Subscription]{@link google.pubsub.v1.Subscription}
*
* @property {Object} updateMask
* Indicates which fields in the provided subscription to update.
* Must be specified and non-empty.
*
* This object should have the same structure as [FieldMask]{@link google.protobuf.FieldMask}
*
* @typedef UpdateSubscriptionRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.UpdateSubscriptionRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const UpdateSubscriptionRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `ListSubscriptions` method.
*
* @property {string} project
* The name of the project in which to list subscriptions.
* Format is `projects/{project-id}`.
*
* @property {number} pageSize
* Maximum number of subscriptions to return.
*
* @property {string} pageToken
* The value returned by the last `ListSubscriptionsResponse`; indicates that
* this is a continuation of a prior `ListSubscriptions` call, and that the
* system should return the next page of data.
*
* @typedef ListSubscriptionsRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListSubscriptionsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListSubscriptionsRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `ListSubscriptions` method.
*
* @property {Object[]} subscriptions
* The subscriptions that match the request.
*
* This object should have the same structure as [Subscription]{@link google.pubsub.v1.Subscription}
*
* @property {string} nextPageToken
* If not empty, indicates that there may be more subscriptions that match
* the request; this value should be passed in a new
* `ListSubscriptionsRequest` to get more subscriptions.
*
* @typedef ListSubscriptionsResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListSubscriptionsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListSubscriptionsResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the DeleteSubscription method.
*
* @property {string} subscription
* The subscription to delete.
* Format is `projects/{project}/subscriptions/{sub}`.
*
* @typedef DeleteSubscriptionRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.DeleteSubscriptionRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const DeleteSubscriptionRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the ModifyPushConfig method.
*
* @property {string} subscription
* The name of the subscription.
* Format is `projects/{project}/subscriptions/{sub}`.
*
* @property {Object} pushConfig
* The push configuration for future deliveries.
*
* An empty `pushConfig` indicates that the Pub/Sub system should
* stop pushing messages from the given subscription and allow
* messages to be pulled and acknowledged - effectively pausing
* the subscription if `Pull` or `StreamingPull` is not called.
*
* This object should have the same structure as [PushConfig]{@link google.pubsub.v1.PushConfig}
*
* @typedef ModifyPushConfigRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ModifyPushConfigRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ModifyPushConfigRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `Pull` method.
*
* @property {string} subscription
* The subscription from which messages should be pulled.
* Format is `projects/{project}/subscriptions/{sub}`.
*
* @property {boolean} returnImmediately
* If this field set to true, the system will respond immediately even if
* it there are no messages available to return in the `Pull` response.
* Otherwise, the system may wait (for a bounded amount of time) until at
* least one message is available, rather than returning no messages.
*
* @property {number} maxMessages
* The maximum number of messages to return for this request. Must be a
* positive integer. The Pub/Sub system may return fewer than the number
* specified.
*
* @typedef PullRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.PullRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const PullRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `Pull` method.
*
* @property {Object[]} receivedMessages
* Received Pub/Sub messages. The list will be empty if there are no more
* messages available in the backlog. For JSON, the response can be entirely
* empty. The Pub/Sub system may return fewer than the `maxMessages` requested
* even if there are more messages available in the backlog.
*
* This object should have the same structure as [ReceivedMessage]{@link google.pubsub.v1.ReceivedMessage}
*
* @typedef PullResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.PullResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const PullResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the ModifyAckDeadline method.
*
* @property {string} subscription
* The name of the subscription.
* Format is `projects/{project}/subscriptions/{sub}`.
*
* @property {string[]} ackIds
* List of acknowledgment IDs.
*
* @property {number} ackDeadlineSeconds
* The new ack deadline with respect to the time this request was sent to
* the Pub/Sub system. For example, if the value is 10, the new
* ack deadline will expire 10 seconds after the `ModifyAckDeadline` call
* was made. Specifying zero might immediately make the message available for
* delivery to another subscriber client. This typically results in an
* increase in the rate of message redeliveries (that is, duplicates).
* The minimum deadline you can specify is 0 seconds.
* The maximum deadline you can specify is 600 seconds (10 minutes).
*
* @typedef ModifyAckDeadlineRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ModifyAckDeadlineRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ModifyAckDeadlineRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the Acknowledge method.
*
* @property {string} subscription
* The subscription whose message is being acknowledged.
* Format is `projects/{project}/subscriptions/{sub}`.
*
* @property {string[]} ackIds
* The acknowledgment ID for the messages being acknowledged that was returned
* by the Pub/Sub system in the `Pull` response. Must not be empty.
*
* @typedef AcknowledgeRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.AcknowledgeRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const AcknowledgeRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `StreamingPull` streaming RPC method. This request is used to
* establish the initial stream as well as to stream acknowledgements and ack
* deadline modifications from the client to the server.
*
* @property {string} subscription
* The subscription for which to initialize the new stream. This must be
* provided in the first request on the stream, and must not be set in
* subsequent requests from client to server.
* Format is `projects/{project}/subscriptions/{sub}`.
*
* @property {string[]} ackIds
* List of acknowledgement IDs for acknowledging previously received messages
* (received on this stream or a different stream). If an ack ID has expired,
* the corresponding message may be redelivered later. Acknowledging a message
* more than once will not result in an error. If the acknowledgement ID is
* malformed, the stream will be aborted with status `INVALID_ARGUMENT`.
*
* @property {number[]} modifyDeadlineSeconds
* The list of new ack deadlines for the IDs listed in
* `modify_deadline_ack_ids`. The size of this list must be the same as the
* size of `modify_deadline_ack_ids`. If it differs the stream will be aborted
* with `INVALID_ARGUMENT`. Each element in this list is applied to the
* element in the same position in `modify_deadline_ack_ids`. The new ack
* deadline is with respect to the time this request was sent to the Pub/Sub
* system. Must be >= 0. For example, if the value is 10, the new ack deadline
* will expire 10 seconds after this request is received. If the value is 0,
* the message is immediately made available for another streaming or
* non-streaming pull request. If the value is < 0 (an error), the stream will
* be aborted with status `INVALID_ARGUMENT`.
*
* @property {string[]} modifyDeadlineAckIds
* List of acknowledgement IDs whose deadline will be modified based on the
* corresponding element in `modify_deadline_seconds`. This field can be used
* to indicate that more time is needed to process a message by the
* subscriber, or to make the message available for redelivery if the
* processing was interrupted.
*
* @property {number} streamAckDeadlineSeconds
* The ack deadline to use for the stream. This must be provided in the
* first request on the stream, but it can also be updated on subsequent
* requests from client to server. The minimum deadline you can specify is 10
* seconds. The maximum deadline you can specify is 600 seconds (10 minutes).
*
* @typedef StreamingPullRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.StreamingPullRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const StreamingPullRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `StreamingPull` method. This response is used to stream
* messages from the server to the client.
*
* @property {Object[]} receivedMessages
* Received Pub/Sub messages. This will not be empty.
*
* This object should have the same structure as [ReceivedMessage]{@link google.pubsub.v1.ReceivedMessage}
*
* @typedef StreamingPullResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.StreamingPullResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const StreamingPullResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `CreateSnapshot` method.
*
* @property {string} name
* Optional user-provided name for this snapshot.
* If the name is not provided in the request, the server will assign a random
* name for this snapshot on the same project as the subscription.
* Note that for REST API requests, you must specify a name. See the
* <a href="https://cloud.google.com/pubsub/docs/admin#resource_names">
* resource name rules</a>.
* Format is `projects/{project}/snapshots/{snap}`.
*
* @property {string} subscription
* The subscription whose backlog the snapshot retains.
* Specifically, the created snapshot is guaranteed to retain:
* (a) The existing backlog on the subscription. More precisely, this is
* defined as the messages in the subscription's backlog that are
* unacknowledged upon the successful completion of the
* `CreateSnapshot` request; as well as:
* (b) Any messages published to the subscription's topic following the
* successful completion of the CreateSnapshot request.
* Format is `projects/{project}/subscriptions/{sub}`.
*
* @property {Object.<string, string>} labels
* See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
* managing labels</a>.
*
* @typedef CreateSnapshotRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.CreateSnapshotRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const CreateSnapshotRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the UpdateSnapshot method.
*
* @property {Object} snapshot
* The updated snapshot object.
*
* This object should have the same structure as [Snapshot]{@link google.pubsub.v1.Snapshot}
*
* @property {Object} updateMask
* Indicates which fields in the provided snapshot to update.
* Must be specified and non-empty.
*
* This object should have the same structure as [FieldMask]{@link google.protobuf.FieldMask}
*
* @typedef UpdateSnapshotRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.UpdateSnapshotRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const UpdateSnapshotRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* A snapshot resource. Snapshots are used in
* <a href="https://cloud.google.com/pubsub/docs/replay-overview">Seek</a>
* operations, which allow
* you to manage message acknowledgments in bulk. That is, you can set the
* acknowledgment state of messages in an existing subscription to the state
* captured by a snapshot.
*
* @property {string} name
* The name of the snapshot.
*
* @property {string} topic
* The name of the topic from which this snapshot is retaining messages.
*
* @property {Object} expireTime
* The snapshot is guaranteed to exist up until this time.
* A newly-created snapshot expires no later than 7 days from the time of its
* creation. Its exact lifetime is determined at creation by the existing
* backlog in the source subscription. Specifically, the lifetime of the
* snapshot is `7 days - (age of oldest unacked message in the subscription)`.
* For example, consider a subscription whose oldest unacked message is 3 days
* old. If a snapshot is created from this subscription, the snapshot -- which
* will always capture this 3-day-old backlog as long as the snapshot
* exists -- will expire in 4 days. The service will refuse to create a
* snapshot that would expire in less than 1 hour after creation.
*
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
*
* @property {Object.<string, string>} labels
* See <a href="https://cloud.google.com/pubsub/docs/labels"> Creating and
* managing labels</a>.
*
* @typedef Snapshot
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.Snapshot definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const Snapshot = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the GetSnapshot method.
*
* @property {string} snapshot
* The name of the snapshot to get.
* Format is `projects/{project}/snapshots/{snap}`.
*
* @typedef GetSnapshotRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.GetSnapshotRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const GetSnapshotRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `ListSnapshots` method.
*
* @property {string} project
* The name of the project in which to list snapshots.
* Format is `projects/{project-id}`.
*
* @property {number} pageSize
* Maximum number of snapshots to return.
*
* @property {string} pageToken
* The value returned by the last `ListSnapshotsResponse`; indicates that this
* is a continuation of a prior `ListSnapshots` call, and that the system
* should return the next page of data.
*
* @typedef ListSnapshotsRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListSnapshotsRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListSnapshotsRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `ListSnapshots` method.
*
* @property {Object[]} snapshots
* The resulting snapshots.
*
* This object should have the same structure as [Snapshot]{@link google.pubsub.v1.Snapshot}
*
* @property {string} nextPageToken
* If not empty, indicates that there may be more snapshot that match the
* request; this value should be passed in a new `ListSnapshotsRequest`.
*
* @typedef ListSnapshotsResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.ListSnapshotsResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const ListSnapshotsResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `DeleteSnapshot` method.
*
* @property {string} snapshot
* The name of the snapshot to delete.
* Format is `projects/{project}/snapshots/{snap}`.
*
* @typedef DeleteSnapshotRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.DeleteSnapshotRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const DeleteSnapshotRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Request for the `Seek` method.
*
* @property {string} subscription
* The subscription to affect.
*
* @property {Object} time
* The time to seek to.
* Messages retained in the subscription that were published before this
* time are marked as acknowledged, and messages retained in the
* subscription that were published after this time are marked as
* unacknowledged. Note that this operation affects only those messages
* retained in the subscription (configured by the combination of
* `message_retention_duration` and `retain_acked_messages`). For example,
* if `time` corresponds to a point before the message retention
* window (or to a point before the system's notion of the subscription
* creation time), only retained messages will be marked as unacknowledged,
* and already-expunged messages will not be restored.
*
* This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
*
* @property {string} snapshot
* The snapshot to seek to. The snapshot's topic must be the same as that of
* the provided subscription.
* Format is `projects/{project}/snapshots/{snap}`.
*
* @typedef SeekRequest
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.SeekRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const SeekRequest = {
// This is for documentation. Actual contents will be loaded by gRPC.
};
/**
* Response for the `Seek` method (this response is empty).
* @typedef SeekResponse
* @memberof google.pubsub.v1
* @see [google.pubsub.v1.SeekResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/pubsub/v1/pubsub.proto}
*/
const SeekResponse = {
// This is for documentation. Actual contents will be loaded by gRPC.
};