/**
* 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
*
* http://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.
*/
import { GaxiosPromise } from 'gaxios';
import { Compute, JWT, OAuth2Client, UserRefreshClient } from 'google-auth-library';
import { BodyResponseCallback, GlobalOptions, GoogleConfigurable, MethodOptions } from 'googleapis-common';
export declare namespace pubsub_v1 {
interface Options extends GlobalOptions {
version: 'v1';
}
interface StandardParameters {
/**
* V1 error format.
*/
'$.xgafv'?: string;
/**
* OAuth access token.
*/
access_token?: string;
/**
* Data format for response.
*/
alt?: string;
/**
* JSONP
*/
callback?: string;
/**
* Selector specifying which fields to include in a partial response.
*/
fields?: string;
/**
* API key. Your API key identifies your project and provides you with API
* access, quota, and reports. Required unless you provide an OAuth 2.0
* token.
*/
key?: string;
/**
* OAuth 2.0 token for the current user.
*/
oauth_token?: string;
/**
* Returns response with indentations and line breaks.
*/
prettyPrint?: boolean;
/**
* Available to use for quota purposes for server-side applications. Can be
* any arbitrary string assigned to a user, but should not exceed 40
* characters.
*/
quotaUser?: string;
/**
* Legacy upload protocol for media (e.g. "media", "multipart").
*/
uploadType?: string;
/**
* Upload protocol for media (e.g. "raw", "multipart").
*/
upload_protocol?: string;
}
/**
* Cloud Pub/Sub API
*
* Provides reliable, many-to-many, asynchronous messaging between
* applications.
*
* @example
* const {google} = require('googleapis');
* const pubsub = google.pubsub('v1');
*
* @namespace pubsub
* @type {Function}
* @version v1
* @variation v1
* @param {object=} options Options for Pubsub
*/
class Pubsub {
projects: Resource$Projects;
constructor(options: GlobalOptions, google?: GoogleConfigurable);
}
/**
* Request for the Acknowledge method.
*/
interface Schema$AcknowledgeRequest {
/**
* The acknowledgment ID for the messages being acknowledged that was
* returned by the Pub/Sub system in the `Pull` response. Must not be empty.
*/
ackIds?: string[];
}
/**
* Associates `members` with a `role`.
*/
interface Schema$Binding {
/**
* Unimplemented. The condition that is associated with this binding. NOTE:
* an unsatisfied condition will not allow user access via current binding.
* Different bindings, including their conditions, are examined
* independently.
*/
condition?: Schema$Expr;
/**
* Specifies the identities requesting access for a Cloud Platform resource.
* `members` can have the following values: * `allUsers`: A special
* identifier that represents anyone who is on the internet; with or
* without a Google account. * `allAuthenticatedUsers`: A special
* identifier that represents anyone who is authenticated with a Google
* account or a service account. * `user:{emailid}`: An email address that
* represents a specific Google account. For example, `alice@gmail.com` .
* * `serviceAccount:{emailid}`: An email address that represents a service
* account. For example, `my-other-app@appspot.gserviceaccount.com`. *
* `group:{emailid}`: An email address that represents a Google group. For
* example, `admins@example.com`. * `domain:{domain}`: A Google Apps
* domain name that represents all the users of that domain. For example,
* `google.com` or `example.com`.
*/
members?: string[];
/**
* Role that is assigned to `members`. For example, `roles/viewer`,
* `roles/editor`, or `roles/owner`.
*/
role?: string;
}
/**
* Request for the `CreateSnapshot` method.<br><br>
* <b>BETA:</b> This feature is part of a beta 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.
*/
interface Schema$CreateSnapshotRequest {
/**
* See <a
* href="https://cloud.google.com/pubsub/docs/labels"> Creating
* and managing labels</a>.
*/
labels?: {
[key: string]: string;
};
/**
* 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}`.
*/
subscription?: string;
}
/**
* A generic empty message that you can re-use to avoid defining duplicated
* empty messages in your APIs. A typical example is to use it as the request
* or the response type of an API method. For instance: service Foo { rpc
* Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON
* representation for `Empty` is empty JSON object `{}`.
*/
interface Schema$Empty {
}
/**
* A policy that specifies the conditions for resource expiration (i.e.,
* automatic resource deletion).
*/
interface Schema$ExpirationPolicy {
/**
* 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.
*/
ttl?: string;
}
/**
* Represents an expression text. Example: title: "User account
* presence" description: "Determines whether the request has a
* user account" expression: "size(request.user) > 0"
*/
interface Schema$Expr {
/**
* An optional description of the expression. This is a longer text which
* describes the expression, e.g. when hovered over it in a UI.
*/
description?: string;
/**
* Textual representation of an expression in Common Expression Language
* syntax. The application context of the containing message determines
* which well-known feature set of CEL is supported.
*/
expression?: string;
/**
* An optional string indicating the location of the expression for error
* reporting, e.g. a file name and a position in the file.
*/
location?: string;
/**
* An optional title for the expression, i.e. a short string describing its
* purpose. This can be used e.g. in UIs which allow to enter the
* expression.
*/
title?: string;
}
/**
* Response for the `ListSnapshots` method.<br><br>
* <b>BETA:</b> This feature is part of a beta 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.
*/
interface Schema$ListSnapshotsResponse {
/**
* If not empty, indicates that there may be more snapshot that match the
* request; this value should be passed in a new `ListSnapshotsRequest`.
*/
nextPageToken?: string;
/**
* The resulting snapshots.
*/
snapshots?: Schema$Snapshot[];
}
/**
* Response for the `ListSubscriptions` method.
*/
interface Schema$ListSubscriptionsResponse {
/**
* 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.
*/
nextPageToken?: string;
/**
* The subscriptions that match the request.
*/
subscriptions?: Schema$Subscription[];
}
/**
* Response for the `ListTopicSnapshots` method.<br><br>
* <b>BETA:</b> This feature is part of a beta 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.
*/
interface Schema$ListTopicSnapshotsResponse {
/**
* 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.
*/
nextPageToken?: string;
/**
* The names of the snapshots that match the request.
*/
snapshots?: string[];
}
/**
* Response for the `ListTopics` method.
*/
interface Schema$ListTopicsResponse {
/**
* If not empty, indicates that there may be more topics that match the
* request; this value should be passed in a new `ListTopicsRequest`.
*/
nextPageToken?: string;
/**
* The resulting topics.
*/
topics?: Schema$Topic[];
}
/**
* Response for the `ListTopicSubscriptions` method.
*/
interface Schema$ListTopicSubscriptionsResponse {
/**
* 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.
*/
nextPageToken?: string;
/**
* The names of the subscriptions that match the request.
*/
subscriptions?: string[];
}
/**
* Request for the ModifyAckDeadline method.
*/
interface Schema$ModifyAckDeadlineRequest {
/**
* 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).
*/
ackDeadlineSeconds?: number;
/**
* List of acknowledgment IDs.
*/
ackIds?: string[];
}
/**
* Request for the ModifyPushConfig method.
*/
interface Schema$ModifyPushConfigRequest {
/**
* 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.
*/
pushConfig?: Schema$PushConfig;
}
/**
* Defines an Identity and Access Management (IAM) policy. It is used to
* specify access control policies for Cloud Platform resources. A `Policy`
* consists of a list of `bindings`. A `binding` binds a list of `members` to
* a `role`, where the members can be user accounts, Google groups, Google
* domains, and service accounts. A `role` is a named list of permissions
* defined by IAM. **JSON Example** { "bindings": [ {
* "role": "roles/owner", "members": [
* "user:mike@example.com", "group:admins@example.com",
* "domain:google.com",
* "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] }, {
* "role": "roles/viewer", "members":
* ["user:sean@example.com"] } ] } **YAML
* Example** bindings: - members: - user:mike@example.com -
* group:admins@example.com - domain:google.com -
* serviceAccount:my-other-app@appspot.gserviceaccount.com role:
* roles/owner - members: - user:sean@example.com role:
* roles/viewer For a description of IAM and its features, see the [IAM
* developer's guide](https://cloud.google.com/iam/docs).
*/
interface Schema$Policy {
/**
* Associates a list of `members` to a `role`. `bindings` with no members
* will result in an error.
*/
bindings?: Schema$Binding[];
/**
* `etag` is used for optimistic concurrency control as a way to help
* prevent simultaneous updates of a policy from overwriting each other. It
* is strongly suggested that systems make use of the `etag` in the
* read-modify-write cycle to perform policy updates in order to avoid race
* conditions: An `etag` is returned in the response to `getIamPolicy`, and
* systems are expected to put that etag in the request to `setIamPolicy` to
* ensure that their change will be applied to the same version of the
* policy. If no `etag` is provided in the call to `setIamPolicy`, then the
* existing policy is overwritten blindly.
*/
etag?: string;
/**
* Deprecated.
*/
version?: number;
}
/**
* Request for the Publish method.
*/
interface Schema$PublishRequest {
/**
* The messages to publish.
*/
messages?: Schema$PubsubMessage[];
}
/**
* Response for the `Publish` method.
*/
interface Schema$PublishResponse {
/**
* 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.
*/
messageIds?: string[];
}
/**
* 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.
*/
interface Schema$PubsubMessage {
/**
* Optional attributes for this message.
*/
attributes?: {
[key: string]: string;
};
/**
* The message data field. If this field is empty, the message must contain
* at least one attribute.
*/
data?: string;
/**
* 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.
*/
messageId?: string;
/**
* 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.
*/
publishTime?: string;
}
/**
* Request for the `Pull` method.
*/
interface Schema$PullRequest {
/**
* The maximum number of messages returned for this request. The Pub/Sub
* system may return fewer than the number specified.
*/
maxMessages?: number;
/**
* 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.
*/
returnImmediately?: boolean;
}
/**
* Response for the `Pull` method.
*/
interface Schema$PullResponse {
/**
* 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.
*/
receivedMessages?: Schema$ReceivedMessage[];
}
/**
* Configuration for a push delivery endpoint.
*/
interface Schema$PushConfig {
/**
* Endpoint configuration attributes. Every endpoint has a set of API
* supported attributes that can be used to control different aspects of the
* message delivery. The 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). The endpoint version is based on the version of the Pub/Sub
* API. If not present during the `CreateSubscription` call, it will
* default to the version of the API used to make such call. If not present
* during 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 possible values for
* this 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.
*/
attributes?: {
[key: string]: string;
};
/**
* A URL locating the endpoint to which messages should be pushed. For
* example, a Webhook endpoint might use
* "https://example.com/push".
*/
pushEndpoint?: string;
}
/**
* A message and its corresponding acknowledgment ID.
*/
interface Schema$ReceivedMessage {
/**
* This ID can be used to acknowledge the received message.
*/
ackId?: string;
/**
* The message.
*/
message?: Schema$PubsubMessage;
}
/**
* Request for the `Seek` method. <br><br>
* <b>BETA:</b> This feature is part of a beta 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.
*/
interface Schema$SeekRequest {
/**
* 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}`.
*/
snapshot?: string;
/**
* 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.
*/
time?: string;
}
/**
* Response for the `Seek` method (this response is empty).
*/
interface Schema$SeekResponse {
}
/**
* Request message for `SetIamPolicy` method.
*/
interface Schema$SetIamPolicyRequest {
/**
* REQUIRED: The complete policy to be applied to the `resource`. The size
* of the policy is limited to a few 10s of KB. An empty policy is a valid
* policy but certain Cloud Platform services (such as Projects) might
* reject them.
*/
policy?: Schema$Policy;
}
/**
* 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.<br><br>
* <b>BETA:</b> This feature is part of a beta 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.
*/
interface Schema$Snapshot {
/**
* 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.
*/
expireTime?: string;
/**
* See <a
* href="https://cloud.google.com/pubsub/docs/labels"> Creating
* and managing labels</a>.
*/
labels?: {
[key: string]: string;
};
/**
* The name of the snapshot.
*/
name?: string;
/**
* The name of the topic from which this snapshot is retaining messages.
*/
topic?: string;
}
/**
* A subscription resource.
*/
interface Schema$Subscription {
/**
* 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.
*/
ackDeadlineSeconds?: number;
/**
* 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.
* <b>BETA:</b> This feature is part of a beta 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.
*/
expirationPolicy?: Schema$ExpirationPolicy;
/**
* See <a
* href="https://cloud.google.com/pubsub/docs/labels"> Creating
* and managing labels</a>.
*/
labels?: {
[key: string]: string;
};
/**
* 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.<br><br> <b>BETA:</b> This
* feature is part of a beta 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.
*/
messageRetentionDuration?: string;
/**
* 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"`.
*/
name?: string;
/**
* 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.
*/
pushConfig?: Schema$PushConfig;
/**
* 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>. <br><br>
* <b>BETA:</b> This feature is part of a beta 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.
*/
retainAckedMessages?: boolean;
/**
* 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.
*/
topic?: string;
}
/**
* Request message for `TestIamPermissions` method.
*/
interface Schema$TestIamPermissionsRequest {
/**
* The set of permissions to check for the `resource`. Permissions with
* wildcards (such as '*' or 'storage.*') are not allowed.
* For more information see [IAM
* Overview](https://cloud.google.com/iam/docs/overview#permissions).
*/
permissions?: string[];
}
/**
* Response message for `TestIamPermissions` method.
*/
interface Schema$TestIamPermissionsResponse {
/**
* A subset of `TestPermissionsRequest.permissions` that the caller is
* allowed.
*/
permissions?: string[];
}
/**
* A topic resource.
*/
interface Schema$Topic {
/**
* See <a
* href="https://cloud.google.com/pubsub/docs/labels"> Creating
* and managing labels</a>.
*/
labels?: {
[key: string]: string;
};
/**
* 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"`.
*/
name?: string;
}
/**
* Request for the UpdateSnapshot method.<br><br>
* <b>BETA:</b> This feature is part of a beta 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.
*/
interface Schema$UpdateSnapshotRequest {
/**
* The updated snapshot object.
*/
snapshot?: Schema$Snapshot;
/**
* Indicates which fields in the provided snapshot to update. Must be
* specified and non-empty.
*/
updateMask?: string;
}
/**
* Request for the UpdateSubscription method.
*/
interface Schema$UpdateSubscriptionRequest {
/**
* The updated subscription object.
*/
subscription?: Schema$Subscription;
/**
* Indicates which fields in the provided subscription to update. Must be
* specified and non-empty.
*/
updateMask?: string;
}
/**
* Request for the UpdateTopic method.
*/
interface Schema$UpdateTopicRequest {
/**
* The updated topic object.
*/
topic?: Schema$Topic;
/**
* 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.
*/
updateMask?: string;
}
class Resource$Projects {
snapshots: Resource$Projects$Snapshots;
subscriptions: Resource$Projects$Subscriptions;
topics: Resource$Projects$Topics;
constructor();
}
class Resource$Projects$Snapshots {
constructor();
/**
* pubsub.projects.snapshots.create
* @desc Creates a snapshot from the requested subscription. Snapshots are
* used in Seek
* 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.
BETA:
* This feature is part of a beta 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.
If the snapshot
* already exists, returns `ALREADY_EXISTS`. If the requested subscription
* doesn't exist, returns `NOT_FOUND`. If the backlog in the subscription is
* too old -- and the resulting snapshot would expire in less than 1 hour --
* then `FAILED_PRECONDITION` is returned. See also the
* `Snapshot.expire_time` field. 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, conforming to the [resource name
* format](https://cloud.google.com/pubsub/docs/admin#resource_names). The
* generated name is populated in the returned Snapshot object. Note that
* for REST API requests, you must specify a name in the request.
* @alias pubsub.projects.snapshots.create
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.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 resource name rules. Format is `projects/{project}/snapshots/{snap}`.
* @param {().CreateSnapshotRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
create(params?: Params$Resource$Projects$Snapshots$Create, options?: MethodOptions): GaxiosPromise;
create(params: Params$Resource$Projects$Snapshots$Create, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
create(params: Params$Resource$Projects$Snapshots$Create, callback: BodyResponseCallback): void;
create(callback: BodyResponseCallback): void;
/**
* pubsub.projects.snapshots.delete
* @desc Removes an existing snapshot. Snapshots are used in Seek
* 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.
BETA:
* This feature is part of a beta 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. When the snapshot is
* deleted, all messages retained in the snapshot are immediately dropped.
* After a snapshot is deleted, a new one may be created with the same name,
* but the new one has no association with the old snapshot or its
* subscription, unless the same subscription is specified.
* @alias pubsub.projects.snapshots.delete
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.snapshot The name of the snapshot to delete. Format is `projects/{project}/snapshots/{snap}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
delete(params?: Params$Resource$Projects$Snapshots$Delete, options?: MethodOptions): GaxiosPromise;
delete(params: Params$Resource$Projects$Snapshots$Delete, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
delete(params: Params$Resource$Projects$Snapshots$Delete, callback: BodyResponseCallback): void;
delete(callback: BodyResponseCallback): void;
/**
* pubsub.projects.snapshots.get
* @desc Gets the configuration details of a snapshot. Snapshots are used in
* Seek
* 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.
BETA:
* This feature is part of a beta 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.
* @alias pubsub.projects.snapshots.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.snapshot The name of the snapshot to get. Format is `projects/{project}/snapshots/{snap}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: Params$Resource$Projects$Snapshots$Get, options?: MethodOptions): GaxiosPromise;
get(params: Params$Resource$Projects$Snapshots$Get, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
get(params: Params$Resource$Projects$Snapshots$Get, callback: BodyResponseCallback): void;
get(callback: BodyResponseCallback): void;
/**
* pubsub.projects.snapshots.getIamPolicy
* @desc Gets the access control policy for a resource. Returns an empty
* policy if the resource exists and does not have a policy set.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy is being requested.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/snapshots/my-snapshot', // TODO:
* Update placeholder value.
*
* auth: authClient,
* };
*
* pubsub.projects.snapshots.getIamPolicy(request, function(err, response)
* { if (err) { console.error(err); return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.snapshots.getIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
getIamPolicy(params?: Params$Resource$Projects$Snapshots$Getiampolicy, options?: MethodOptions): GaxiosPromise;
getIamPolicy(params: Params$Resource$Projects$Snapshots$Getiampolicy, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
getIamPolicy(params: Params$Resource$Projects$Snapshots$Getiampolicy, callback: BodyResponseCallback): void;
getIamPolicy(callback: BodyResponseCallback): void;
/**
* pubsub.projects.snapshots.list
* @desc Lists the existing snapshots. Snapshots are used in Seek
* 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.
BETA:
* This feature is part of a beta 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.
* @alias pubsub.projects.snapshots.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {integer=} params.pageSize Maximum number of snapshots to return.
* @param {string=} params.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.
* @param {string} params.project The name of the project in which to list snapshots. Format is `projects/{project-id}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: Params$Resource$Projects$Snapshots$List, options?: MethodOptions): GaxiosPromise;
list(params: Params$Resource$Projects$Snapshots$List, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
list(params: Params$Resource$Projects$Snapshots$List, callback: BodyResponseCallback): void;
list(callback: BodyResponseCallback): void;
/**
* pubsub.projects.snapshots.patch
* @desc Updates an existing snapshot. Snapshots are used in Seek
* 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.
BETA:
* This feature is part of a beta 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. Note that certain
* properties of a snapshot are not modifiable.
* @alias pubsub.projects.snapshots.patch
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.name The name of the snapshot.
* @param {().UpdateSnapshotRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
patch(params?: Params$Resource$Projects$Snapshots$Patch, options?: MethodOptions): GaxiosPromise;
patch(params: Params$Resource$Projects$Snapshots$Patch, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
patch(params: Params$Resource$Projects$Snapshots$Patch, callback: BodyResponseCallback): void;
patch(callback: BodyResponseCallback): void;
/**
* pubsub.projects.snapshots.setIamPolicy
* @desc Sets the access control policy on the specified resource. Replaces
* any existing policy.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy is being specified.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/snapshots/my-snapshot', // TODO:
* Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.snapshots.setIamPolicy(request, function(err, response)
* { if (err) { console.error(err); return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.snapshots.setIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
* @param {().SetIamPolicyRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
setIamPolicy(params?: Params$Resource$Projects$Snapshots$Setiampolicy, options?: MethodOptions): GaxiosPromise;
setIamPolicy(params: Params$Resource$Projects$Snapshots$Setiampolicy, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
setIamPolicy(params: Params$Resource$Projects$Snapshots$Setiampolicy, callback: BodyResponseCallback): void;
setIamPolicy(callback: BodyResponseCallback): void;
/**
* pubsub.projects.snapshots.testIamPermissions
* @desc Returns permissions that a caller has on the specified resource. If
* the resource does not exist, this will return an empty set of
* permissions, not a NOT_FOUND error. Note: This operation is designed to
* be used for building permission-aware UIs and command-line tools, not for
* authorization checking. This operation may "fail open" without warning.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy detail is being
* requested.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/snapshots/my-snapshot', // TODO:
* Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.snapshots.testIamPermissions(request, function(err,
* response) { if (err) { console.error(err); return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.snapshots.testIamPermissions
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
* @param {().TestIamPermissionsRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
testIamPermissions(params?: Params$Resource$Projects$Snapshots$Testiampermissions, options?: MethodOptions): GaxiosPromise;
testIamPermissions(params: Params$Resource$Projects$Snapshots$Testiampermissions, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
testIamPermissions(params: Params$Resource$Projects$Snapshots$Testiampermissions, callback: BodyResponseCallback): void;
testIamPermissions(callback: BodyResponseCallback): void;
}
interface Params$Resource$Projects$Snapshots$Create extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* 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
* resource name rules. Format is `projects/{project}/snapshots/{snap}`.
*/
name?: string;
/**
* Request body metadata
*/
requestBody?: Schema$CreateSnapshotRequest;
}
interface Params$Resource$Projects$Snapshots$Delete extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The name of the snapshot to delete. Format is
* `projects/{project}/snapshots/{snap}`.
*/
snapshot?: string;
}
interface Params$Resource$Projects$Snapshots$Get extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The name of the snapshot to get. Format is
* `projects/{project}/snapshots/{snap}`.
*/
snapshot?: string;
}
interface Params$Resource$Projects$Snapshots$Getiampolicy extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy is being requested. See the
* operation documentation for the appropriate value for this field.
*/
resource?: string;
}
interface Params$Resource$Projects$Snapshots$List extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* Maximum number of snapshots to return.
*/
pageSize?: number;
/**
* 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.
*/
pageToken?: string;
/**
* The name of the project in which to list snapshots. Format is
* `projects/{project-id}`.
*/
project?: string;
}
interface Params$Resource$Projects$Snapshots$Patch extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The name of the snapshot.
*/
name?: string;
/**
* Request body metadata
*/
requestBody?: Schema$UpdateSnapshotRequest;
}
interface Params$Resource$Projects$Snapshots$Setiampolicy extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy is being specified. See the
* operation documentation for the appropriate value for this field.
*/
resource?: string;
/**
* Request body metadata
*/
requestBody?: Schema$SetIamPolicyRequest;
}
interface Params$Resource$Projects$Snapshots$Testiampermissions extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy detail is being requested.
* See the operation documentation for the appropriate value for this field.
*/
resource?: string;
/**
* Request body metadata
*/
requestBody?: Schema$TestIamPermissionsRequest;
}
class Resource$Projects$Subscriptions {
constructor();
/**
* pubsub.projects.subscriptions.acknowledge
* @desc Acknowledges the messages associated with the `ack_ids` in the
* `AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages
* from the subscription. Acknowledging a message whose ack deadline has
* expired may succeed, but such a message may be redelivered later.
* Acknowledging a message more than once will not result in an error.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The subscription whose message is being acknowledged.
* // Format is `projects/{project}/subscriptions/{sub}`.
* subscription: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.acknowledge(request, function(err) {
* if (err) {
* console.error(err);
* return;
* }
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.acknowledge
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.subscription The subscription whose message is being acknowledged. Format is `projects/{project}/subscriptions/{sub}`.
* @param {().AcknowledgeRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
acknowledge(params?: Params$Resource$Projects$Subscriptions$Acknowledge, options?: MethodOptions): GaxiosPromise;
acknowledge(params: Params$Resource$Projects$Subscriptions$Acknowledge, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
acknowledge(params: Params$Resource$Projects$Subscriptions$Acknowledge, callback: BodyResponseCallback): void;
acknowledge(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.create
* @desc 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](https://cloud.google.com/pubsub/docs/admin#resource_names). The
* generated name is populated in the returned Subscription object. Note
* that for REST API requests, you must specify a name in the request.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // 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"`.
* name: 'projects/my-project/subscriptions/my-subscription', // TODO:
* Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body. All existing
* properties
* // will be replaced.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.create(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.create
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.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"`.
* @param {().Subscription} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
create(params?: Params$Resource$Projects$Subscriptions$Create, options?: MethodOptions): GaxiosPromise;
create(params: Params$Resource$Projects$Subscriptions$Create, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
create(params: Params$Resource$Projects$Subscriptions$Create, callback: BodyResponseCallback): void;
create(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.delete
* @desc Deletes an existing subscription. All messages retained in the
* subscription are immediately dropped. Calls to `Pull` after deletion will
* return `NOT_FOUND`. After a subscription is deleted, a new one may be
* created with the same name, but the new one has no association with the
* old subscription or its topic unless the same topic is specified.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The subscription to delete.
* // Format is `projects/{project}/subscriptions/{sub}`.
* subscription: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.delete(request, function(err) {
* if (err) {
* console.error(err);
* return;
* }
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.delete
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.subscription The subscription to delete. Format is `projects/{project}/subscriptions/{sub}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
delete(params?: Params$Resource$Projects$Subscriptions$Delete, options?: MethodOptions): GaxiosPromise;
delete(params: Params$Resource$Projects$Subscriptions$Delete, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
delete(params: Params$Resource$Projects$Subscriptions$Delete, callback: BodyResponseCallback): void;
delete(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.get
* @desc Gets the configuration details of a subscription.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The name of the subscription to get.
* // Format is `projects/{project}/subscriptions/{sub}`.
* subscription: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.get(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.subscription The name of the subscription to get. Format is `projects/{project}/subscriptions/{sub}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: Params$Resource$Projects$Subscriptions$Get, options?: MethodOptions): GaxiosPromise;
get(params: Params$Resource$Projects$Subscriptions$Get, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
get(params: Params$Resource$Projects$Subscriptions$Get, callback: BodyResponseCallback): void;
get(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.getIamPolicy
* @desc Gets the access control policy for a resource. Returns an empty
* policy if the resource exists and does not have a policy set.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy is being requested.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.getIamPolicy(request, function(err,
* response) { if (err) { console.error(err); return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.getIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
getIamPolicy(params?: Params$Resource$Projects$Subscriptions$Getiampolicy, options?: MethodOptions): GaxiosPromise;
getIamPolicy(params: Params$Resource$Projects$Subscriptions$Getiampolicy, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
getIamPolicy(params: Params$Resource$Projects$Subscriptions$Getiampolicy, callback: BodyResponseCallback): void;
getIamPolicy(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.list
* @desc Lists matching subscriptions.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The name of the cloud project that subscriptions belong to.
* // Format is `projects/{project}`.
* project: 'projects/my-project', // TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* var handlePage = function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* var subscriptionsPage = response['subscriptions'];
* if (!subscriptionsPage) {
* return;
* }
* for (var i = 0; i < subscriptionsPage.length; i++) {
* // TODO: Change code below to process each resource in
* `subscriptionsPage`: console.log(JSON.stringify(subscriptionsPage[i],
* null, 2));
* }
*
* if (response.nextPageToken) {
* request.pageToken = response.nextPageToken;
* pubsub.projects.subscriptions.list(request, handlePage);
* }
* };
*
* pubsub.projects.subscriptions.list(request, handlePage);
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {integer=} params.pageSize Maximum number of subscriptions to return.
* @param {string=} params.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.
* @param {string} params.project The name of the project in which to list subscriptions. Format is `projects/{project-id}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: Params$Resource$Projects$Subscriptions$List, options?: MethodOptions): GaxiosPromise;
list(params: Params$Resource$Projects$Subscriptions$List, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
list(params: Params$Resource$Projects$Subscriptions$List, callback: BodyResponseCallback): void;
list(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.modifyAckDeadline
* @desc Modifies the ack deadline for a specific message. This method is
* useful 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. Note that this does not modify the
* subscription-level `ackDeadlineSeconds` used for subsequent messages.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The name of the subscription.
* // Format is `projects/{project}/subscriptions/{sub}`.
* subscription: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.modifyAckDeadline(request, function(err)
* { if (err) { console.error(err); return;
* }
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.modifyAckDeadline
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.subscription The name of the subscription. Format is `projects/{project}/subscriptions/{sub}`.
* @param {().ModifyAckDeadlineRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
modifyAckDeadline(params?: Params$Resource$Projects$Subscriptions$Modifyackdeadline, options?: MethodOptions): GaxiosPromise;
modifyAckDeadline(params: Params$Resource$Projects$Subscriptions$Modifyackdeadline, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
modifyAckDeadline(params: Params$Resource$Projects$Subscriptions$Modifyackdeadline, callback: BodyResponseCallback): void;
modifyAckDeadline(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.modifyPushConfig
* @desc Modifies the `PushConfig` for a specified subscription. This may
* be used to change a push subscription to a pull one (signified by an
* empty `PushConfig`) or vice versa, or change the endpoint URL and other
* attributes of a push subscription. Messages will accumulate for delivery
* continuously through the call regardless of changes to the `PushConfig`.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The name of the subscription.
* // Format is `projects/{project}/subscriptions/{sub}`.
* subscription: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.modifyPushConfig(request, function(err) {
* if (err) {
* console.error(err);
* return;
* }
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.modifyPushConfig
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.subscription The name of the subscription. Format is `projects/{project}/subscriptions/{sub}`.
* @param {().ModifyPushConfigRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
modifyPushConfig(params?: Params$Resource$Projects$Subscriptions$Modifypushconfig, options?: MethodOptions): GaxiosPromise;
modifyPushConfig(params: Params$Resource$Projects$Subscriptions$Modifypushconfig, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
modifyPushConfig(params: Params$Resource$Projects$Subscriptions$Modifypushconfig, callback: BodyResponseCallback): void;
modifyPushConfig(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.patch
* @desc Updates an existing subscription. Note that certain properties of a
* subscription, such as its topic, are not modifiable.
* @alias pubsub.projects.subscriptions.patch
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.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"`.
* @param {().UpdateSubscriptionRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
patch(params?: Params$Resource$Projects$Subscriptions$Patch, options?: MethodOptions): GaxiosPromise;
patch(params: Params$Resource$Projects$Subscriptions$Patch, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
patch(params: Params$Resource$Projects$Subscriptions$Patch, callback: BodyResponseCallback): void;
patch(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.pull
* @desc Pulls messages from the server. The server may return `UNAVAILABLE`
* if there are too many concurrent pull requests pending for the given
* subscription.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The subscription from which messages should be pulled.
* // Format is `projects/{project}/subscriptions/{sub}`.
* subscription: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.pull(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.pull
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.subscription The subscription from which messages should be pulled. Format is `projects/{project}/subscriptions/{sub}`.
* @param {().PullRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
pull(params?: Params$Resource$Projects$Subscriptions$Pull, options?: MethodOptions): GaxiosPromise;
pull(params: Params$Resource$Projects$Subscriptions$Pull, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
pull(params: Params$Resource$Projects$Subscriptions$Pull, callback: BodyResponseCallback): void;
pull(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.seek
* @desc Seeks an existing subscription to a point in time or to a given
* snapshot, whichever is provided in the request. Snapshots are used in Seek
* 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. Note that both the
* subscription and the snapshot must be on the same topic.
* BETA: This feature is part of a beta 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.
* @alias pubsub.projects.subscriptions.seek
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.subscription The subscription to affect.
* @param {().SeekRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
seek(params?: Params$Resource$Projects$Subscriptions$Seek, options?: MethodOptions): GaxiosPromise;
seek(params: Params$Resource$Projects$Subscriptions$Seek, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
seek(params: Params$Resource$Projects$Subscriptions$Seek, callback: BodyResponseCallback): void;
seek(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.setIamPolicy
* @desc Sets the access control policy on the specified resource. Replaces
* any existing policy.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy is being specified.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.setIamPolicy(request, function(err,
* response) { if (err) { console.error(err); return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.setIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
* @param {().SetIamPolicyRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
setIamPolicy(params?: Params$Resource$Projects$Subscriptions$Setiampolicy, options?: MethodOptions): GaxiosPromise;
setIamPolicy(params: Params$Resource$Projects$Subscriptions$Setiampolicy, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
setIamPolicy(params: Params$Resource$Projects$Subscriptions$Setiampolicy, callback: BodyResponseCallback): void;
setIamPolicy(callback: BodyResponseCallback): void;
/**
* pubsub.projects.subscriptions.testIamPermissions
* @desc Returns permissions that a caller has on the specified resource. If
* the resource does not exist, this will return an empty set of
* permissions, not a NOT_FOUND error. Note: This operation is designed to
* be used for building permission-aware UIs and command-line tools, not for
* authorization checking. This operation may "fail open" without warning.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy detail is being
* requested.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/subscriptions/my-subscription', //
* TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.subscriptions.testIamPermissions(request, function(err,
* response) { if (err) { console.error(err); return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.subscriptions.testIamPermissions
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
* @param {().TestIamPermissionsRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
testIamPermissions(params?: Params$Resource$Projects$Subscriptions$Testiampermissions, options?: MethodOptions): GaxiosPromise;
testIamPermissions(params: Params$Resource$Projects$Subscriptions$Testiampermissions, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
testIamPermissions(params: Params$Resource$Projects$Subscriptions$Testiampermissions, callback: BodyResponseCallback): void;
testIamPermissions(callback: BodyResponseCallback): void;
}
interface Params$Resource$Projects$Subscriptions$Acknowledge extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The subscription whose message is being acknowledged. Format is
* `projects/{project}/subscriptions/{sub}`.
*/
subscription?: string;
/**
* Request body metadata
*/
requestBody?: Schema$AcknowledgeRequest;
}
interface Params$Resource$Projects$Subscriptions$Create extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* 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"`.
*/
name?: string;
/**
* Request body metadata
*/
requestBody?: Schema$Subscription;
}
interface Params$Resource$Projects$Subscriptions$Delete extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The subscription to delete. Format is
* `projects/{project}/subscriptions/{sub}`.
*/
subscription?: string;
}
interface Params$Resource$Projects$Subscriptions$Get extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The name of the subscription to get. Format is
* `projects/{project}/subscriptions/{sub}`.
*/
subscription?: string;
}
interface Params$Resource$Projects$Subscriptions$Getiampolicy extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy is being requested. See the
* operation documentation for the appropriate value for this field.
*/
resource?: string;
}
interface Params$Resource$Projects$Subscriptions$List extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* Maximum number of subscriptions to return.
*/
pageSize?: number;
/**
* 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.
*/
pageToken?: string;
/**
* The name of the project in which to list subscriptions. Format is
* `projects/{project-id}`.
*/
project?: string;
}
interface Params$Resource$Projects$Subscriptions$Modifyackdeadline extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The name of the subscription. Format is
* `projects/{project}/subscriptions/{sub}`.
*/
subscription?: string;
/**
* Request body metadata
*/
requestBody?: Schema$ModifyAckDeadlineRequest;
}
interface Params$Resource$Projects$Subscriptions$Modifypushconfig extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The name of the subscription. Format is
* `projects/{project}/subscriptions/{sub}`.
*/
subscription?: string;
/**
* Request body metadata
*/
requestBody?: Schema$ModifyPushConfigRequest;
}
interface Params$Resource$Projects$Subscriptions$Patch extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* 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"`.
*/
name?: string;
/**
* Request body metadata
*/
requestBody?: Schema$UpdateSubscriptionRequest;
}
interface Params$Resource$Projects$Subscriptions$Pull extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The subscription from which messages should be pulled. Format is
* `projects/{project}/subscriptions/{sub}`.
*/
subscription?: string;
/**
* Request body metadata
*/
requestBody?: Schema$PullRequest;
}
interface Params$Resource$Projects$Subscriptions$Seek extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The subscription to affect.
*/
subscription?: string;
/**
* Request body metadata
*/
requestBody?: Schema$SeekRequest;
}
interface Params$Resource$Projects$Subscriptions$Setiampolicy extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy is being specified. See the
* operation documentation for the appropriate value for this field.
*/
resource?: string;
/**
* Request body metadata
*/
requestBody?: Schema$SetIamPolicyRequest;
}
interface Params$Resource$Projects$Subscriptions$Testiampermissions extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy detail is being requested.
* See the operation documentation for the appropriate value for this field.
*/
resource?: string;
/**
* Request body metadata
*/
requestBody?: Schema$TestIamPermissionsRequest;
}
class Resource$Projects$Topics {
snapshots: Resource$Projects$Topics$Snapshots;
subscriptions: Resource$Projects$Topics$Subscriptions;
constructor();
/**
* pubsub.projects.topics.create
* @desc Creates the given topic with the given name. See the
* resource name rules.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // 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"`.
* name: 'projects/my-project/topics/my-topic', // TODO: Update
* placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body. All existing
* properties
* // will be replaced.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.topics.create(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.create
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.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"`.
* @param {().Topic} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
create(params?: Params$Resource$Projects$Topics$Create, options?: MethodOptions): GaxiosPromise;
create(params: Params$Resource$Projects$Topics$Create, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
create(params: Params$Resource$Projects$Topics$Create, callback: BodyResponseCallback): void;
create(callback: BodyResponseCallback): void;
/**
* pubsub.projects.topics.delete
* @desc Deletes the topic with the given name. Returns `NOT_FOUND` if the
* topic does not exist. After a topic is deleted, a new topic may be
* created with the same name; this is an entirely new topic with none of
* the old configuration or subscriptions. Existing subscriptions to this
* topic are not deleted, but their `topic` field is set to
* `_deleted-topic_`.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of the topic to delete.
* // Format is `projects/{project}/topics/{topic}`.
* topic: 'projects/my-project/topics/my-topic', // TODO: Update
* placeholder value.
*
* auth: authClient,
* };
*
* pubsub.projects.topics.delete(request, function(err) {
* if (err) {
* console.error(err);
* return;
* }
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.delete
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.topic Name of the topic to delete. Format is `projects/{project}/topics/{topic}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
delete(params?: Params$Resource$Projects$Topics$Delete, options?: MethodOptions): GaxiosPromise;
delete(params: Params$Resource$Projects$Topics$Delete, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
delete(params: Params$Resource$Projects$Topics$Delete, callback: BodyResponseCallback): void;
delete(callback: BodyResponseCallback): void;
/**
* pubsub.projects.topics.get
* @desc Gets the configuration of a topic.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The name of the topic to get.
* // Format is `projects/{project}/topics/{topic}`.
* topic: 'projects/my-project/topics/my-topic', // TODO: Update
* placeholder value.
*
* auth: authClient,
* };
*
* pubsub.projects.topics.get(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.topic The name of the topic to get. Format is `projects/{project}/topics/{topic}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
get(params?: Params$Resource$Projects$Topics$Get, options?: MethodOptions): GaxiosPromise;
get(params: Params$Resource$Projects$Topics$Get, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
get(params: Params$Resource$Projects$Topics$Get, callback: BodyResponseCallback): void;
get(callback: BodyResponseCallback): void;
/**
* pubsub.projects.topics.getIamPolicy
* @desc Gets the access control policy for a resource. Returns an empty
* policy if the resource exists and does not have a policy set.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy is being requested.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/topics/my-topic', // TODO: Update
* placeholder value.
*
* auth: authClient,
* };
*
* pubsub.projects.topics.getIamPolicy(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.getIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being requested. See the operation documentation for the appropriate value for this field.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
getIamPolicy(params?: Params$Resource$Projects$Topics$Getiampolicy, options?: MethodOptions): GaxiosPromise;
getIamPolicy(params: Params$Resource$Projects$Topics$Getiampolicy, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
getIamPolicy(params: Params$Resource$Projects$Topics$Getiampolicy, callback: BodyResponseCallback): void;
getIamPolicy(callback: BodyResponseCallback): void;
/**
* pubsub.projects.topics.list
* @desc Lists matching topics.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The name of the cloud project that topics belong to.
* // Format is `projects/{project}`.
* project: 'projects/my-project', // TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* var handlePage = function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* var topicsPage = response['topics'];
* if (!topicsPage) {
* return;
* }
* for (var i = 0; i < topicsPage.length; i++) {
* // TODO: Change code below to process each resource in
* `topicsPage`: console.log(JSON.stringify(topicsPage[i], null, 2));
* }
*
* if (response.nextPageToken) {
* request.pageToken = response.nextPageToken;
* pubsub.projects.topics.list(request, handlePage);
* }
* };
*
* pubsub.projects.topics.list(request, handlePage);
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {integer=} params.pageSize Maximum number of topics to return.
* @param {string=} params.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.
* @param {string} params.project The name of the project in which to list topics. Format is `projects/{project-id}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: Params$Resource$Projects$Topics$List, options?: MethodOptions): GaxiosPromise;
list(params: Params$Resource$Projects$Topics$List, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
list(params: Params$Resource$Projects$Topics$List, callback: BodyResponseCallback): void;
list(callback: BodyResponseCallback): void;
/**
* pubsub.projects.topics.patch
* @desc Updates an existing topic. Note that certain properties of a topic
* are not modifiable.
* @alias pubsub.projects.topics.patch
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.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"`.
* @param {().UpdateTopicRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
patch(params?: Params$Resource$Projects$Topics$Patch, options?: MethodOptions): GaxiosPromise;
patch(params: Params$Resource$Projects$Topics$Patch, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
patch(params: Params$Resource$Projects$Topics$Patch, callback: BodyResponseCallback): void;
patch(callback: BodyResponseCallback): void;
/**
* pubsub.projects.topics.publish
* @desc Adds one or more messages to the topic. Returns `NOT_FOUND` if the
* topic does not exist.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The messages in the request will be published on this topic.
* // Format is `projects/{project}/topics/{topic}`.
* topic: 'projects/my-project/topics/my-topic', // TODO: Update
* placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.topics.publish(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.publish
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.topic The messages in the request will be published on this topic. Format is `projects/{project}/topics/{topic}`.
* @param {().PublishRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
publish(params?: Params$Resource$Projects$Topics$Publish, options?: MethodOptions): GaxiosPromise;
publish(params: Params$Resource$Projects$Topics$Publish, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
publish(params: Params$Resource$Projects$Topics$Publish, callback: BodyResponseCallback): void;
publish(callback: BodyResponseCallback): void;
/**
* pubsub.projects.topics.setIamPolicy
* @desc Sets the access control policy on the specified resource. Replaces
* any existing policy.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy is being specified.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/topics/my-topic', // TODO: Update
* placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.topics.setIamPolicy(request, function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.setIamPolicy
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.
* @param {().SetIamPolicyRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
setIamPolicy(params?: Params$Resource$Projects$Topics$Setiampolicy, options?: MethodOptions): GaxiosPromise;
setIamPolicy(params: Params$Resource$Projects$Topics$Setiampolicy, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
setIamPolicy(params: Params$Resource$Projects$Topics$Setiampolicy, callback: BodyResponseCallback): void;
setIamPolicy(callback: BodyResponseCallback): void;
/**
* pubsub.projects.topics.testIamPermissions
* @desc Returns permissions that a caller has on the specified resource. If
* the resource does not exist, this will return an empty set of
* permissions, not a NOT_FOUND error. Note: This operation is designed to
* be used for building permission-aware UIs and command-line tools, not for
* authorization checking. This operation may "fail open" without warning.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // REQUIRED: The resource for which the policy detail is being
* requested.
* // See the operation documentation for the appropriate value for this
* field. resource_: 'projects/my-project/topics/my-topic', // TODO: Update
* placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* pubsub.projects.topics.testIamPermissions(request, function(err,
* response) { if (err) { console.error(err); return;
* }
*
* // TODO: Change code below to process the `response` object:
* console.log(JSON.stringify(response, null, 2));
* });
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.testIamPermissions
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.resource_ REQUIRED: The resource for which the policy detail is being requested. See the operation documentation for the appropriate value for this field.
* @param {().TestIamPermissionsRequest} params.resource Request body data
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
testIamPermissions(params?: Params$Resource$Projects$Topics$Testiampermissions, options?: MethodOptions): GaxiosPromise;
testIamPermissions(params: Params$Resource$Projects$Topics$Testiampermissions, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
testIamPermissions(params: Params$Resource$Projects$Topics$Testiampermissions, callback: BodyResponseCallback): void;
testIamPermissions(callback: BodyResponseCallback): void;
}
interface Params$Resource$Projects$Topics$Create extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* 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"`.
*/
name?: string;
/**
* Request body metadata
*/
requestBody?: Schema$Topic;
}
interface Params$Resource$Projects$Topics$Delete extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* Name of the topic to delete. Format is
* `projects/{project}/topics/{topic}`.
*/
topic?: string;
}
interface Params$Resource$Projects$Topics$Get extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The name of the topic to get. Format is
* `projects/{project}/topics/{topic}`.
*/
topic?: string;
}
interface Params$Resource$Projects$Topics$Getiampolicy extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy is being requested. See the
* operation documentation for the appropriate value for this field.
*/
resource?: string;
}
interface Params$Resource$Projects$Topics$List extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* Maximum number of topics to return.
*/
pageSize?: number;
/**
* 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.
*/
pageToken?: string;
/**
* The name of the project in which to list topics. Format is
* `projects/{project-id}`.
*/
project?: string;
}
interface Params$Resource$Projects$Topics$Patch extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* 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"`.
*/
name?: string;
/**
* Request body metadata
*/
requestBody?: Schema$UpdateTopicRequest;
}
interface Params$Resource$Projects$Topics$Publish extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* The messages in the request will be published on this topic. Format is
* `projects/{project}/topics/{topic}`.
*/
topic?: string;
/**
* Request body metadata
*/
requestBody?: Schema$PublishRequest;
}
interface Params$Resource$Projects$Topics$Setiampolicy extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy is being specified. See the
* operation documentation for the appropriate value for this field.
*/
resource?: string;
/**
* Request body metadata
*/
requestBody?: Schema$SetIamPolicyRequest;
}
interface Params$Resource$Projects$Topics$Testiampermissions extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* REQUIRED: The resource for which the policy detail is being requested.
* See the operation documentation for the appropriate value for this field.
*/
resource?: string;
/**
* Request body metadata
*/
requestBody?: Schema$TestIamPermissionsRequest;
}
class Resource$Projects$Topics$Snapshots {
constructor();
/**
* pubsub.projects.topics.snapshots.list
* @desc Lists the names of the snapshots on this topic. Snapshots are used
* in Seek
* 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.
BETA:
* This feature is part of a beta 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.
* @alias pubsub.projects.topics.snapshots.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {integer=} params.pageSize Maximum number of snapshot names to return.
* @param {string=} params.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.
* @param {string} params.topic The name of the topic that snapshots are attached to. Format is `projects/{project}/topics/{topic}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: Params$Resource$Projects$Topics$Snapshots$List, options?: MethodOptions): GaxiosPromise;
list(params: Params$Resource$Projects$Topics$Snapshots$List, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
list(params: Params$Resource$Projects$Topics$Snapshots$List, callback: BodyResponseCallback): void;
list(callback: BodyResponseCallback): void;
}
interface Params$Resource$Projects$Topics$Snapshots$List extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* Maximum number of snapshot names to return.
*/
pageSize?: number;
/**
* 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.
*/
pageToken?: string;
/**
* The name of the topic that snapshots are attached to. Format is
* `projects/{project}/topics/{topic}`.
*/
topic?: string;
}
class Resource$Projects$Topics$Subscriptions {
constructor();
/**
* pubsub.projects.topics.subscriptions.list
* @desc Lists the names of the subscriptions on this topic.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Google Cloud Pub/Sub API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/pubsub
* // 2. This sample uses Application Default Credentials for
* authentication.
* // If not already done, install the gcloud CLI from
* // https://cloud.google.com/sdk and run
* // `gcloud beta auth application-default login`.
* // For more information, see
* //
* https://developers.google.com/identity/protocols/application-default-credentials
* // 3. Install the Node.js client library by running
* // `npm install googleapis --save`
*
* var google = require('googleapis');
* var pubsub = google.pubsub('v1');
*
* authorize(function(authClient) {
* var request = {
* // The name of the topic that subscriptions are attached to.
* // Format is `projects/{project}/topics/{topic}`.
* topic: 'projects/my-project/topics/my-topic', // TODO: Update
* placeholder value.
*
* auth: authClient,
* };
*
* var handlePage = function(err, response) {
* if (err) {
* console.error(err);
* return;
* }
*
* var subscriptionsPage = response['subscriptions'];
* if (!subscriptionsPage) {
* return;
* }
* for (var i = 0; i < subscriptionsPage.length; i++) {
* // TODO: Change code below to process each resource in
* `subscriptionsPage`: console.log(JSON.stringify(subscriptionsPage[i],
* null, 2));
* }
*
* if (response.nextPageToken) {
* request.pageToken = response.nextPageToken;
* pubsub.projects.topics.subscriptions.list(request, handlePage);
* }
* };
*
* pubsub.projects.topics.subscriptions.list(request, handlePage);
* });
*
* function authorize(callback) {
* google.auth.getApplicationDefault(function(err, authClient) {
* if (err) {
* console.error('authentication failed: ', err);
* return;
* }
* if (authClient.createScopedRequired &&
* authClient.createScopedRequired()) { var scopes =
* ['https://www.googleapis.com/auth/cloud-platform']; authClient =
* authClient.createScoped(scopes);
* }
* callback(authClient);
* });
* }
* @alias pubsub.projects.topics.subscriptions.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {integer=} params.pageSize Maximum number of subscription names to return.
* @param {string=} params.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.
* @param {string} params.topic The name of the topic that subscriptions are attached to. Format is `projects/{project}/topics/{topic}`.
* @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
* @param {callback} callback The callback that handles the response.
* @return {object} Request object
*/
list(params?: Params$Resource$Projects$Topics$Subscriptions$List, options?: MethodOptions): GaxiosPromise;
list(params: Params$Resource$Projects$Topics$Subscriptions$List, options: MethodOptions | BodyResponseCallback, callback: BodyResponseCallback): void;
list(params: Params$Resource$Projects$Topics$Subscriptions$List, callback: BodyResponseCallback): void;
list(callback: BodyResponseCallback): void;
}
interface Params$Resource$Projects$Topics$Subscriptions$List extends StandardParameters {
/**
* Auth client or API Key for the request
*/
auth?: string | OAuth2Client | JWT | Compute | UserRefreshClient;
/**
* Maximum number of subscription names to return.
*/
pageSize?: number;
/**
* 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.
*/
pageToken?: string;
/**
* The name of the topic that subscriptions are attached to. Format is
* `projects/{project}/topics/{topic}`.
*/
topic?: string;
}
}