googleapis
Version:
Google APIs Client Library for Node.js
1,364 lines • 195 kB
TypeScript
/**
* Copyright 2015 Google Inc. All Rights Reserved.
*
* 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 { AxiosPromise } from 'axios';
import { GoogleApis } from '../..';
import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api';
/**
* Cloud Storage JSON API
*
* Stores and retrieves potentially large, immutable data objects.
*
* @example
* const google = require('googleapis');
* const storage = google.storage('v1');
*
* @namespace storage
* @type {Function}
* @version v1
* @variation v1
* @param {object=} options Options for Storage
*/
export declare class Storage {
_options: GlobalOptions;
google: GoogleApis;
root: this;
bucketAccessControls: Resource$Bucketaccesscontrols;
buckets: Resource$Buckets;
channels: Resource$Channels;
defaultObjectAccessControls: Resource$Defaultobjectaccesscontrols;
notifications: Resource$Notifications;
objectAccessControls: Resource$Objectaccesscontrols;
objects: Resource$Objects;
projects: Resource$Projects;
constructor(options: GlobalOptions, google: GoogleApis);
getRoot(): this;
}
/**
* A bucket.
*/
export interface Schema$Bucket {
/**
* Access controls on the bucket.
*/
acl: Schema$BucketAccessControl[];
/**
* The bucket's billing configuration.
*/
billing: any;
/**
* The bucket's Cross-Origin Resource Sharing (CORS) configuration.
*/
cors: any[];
/**
* Defines the default value for Event-Based hold on newly created objects in
* this bucket. Event-Based hold is a way to retain objects indefinitely until
* an event occurs, signified by the hold's release. After being released,
* such objects will be subject to bucket-level retention (if any). One sample
* use case of this flag is for banks to hold loan documents for at least 3
* years after loan is paid in full. Here bucket-level retention is 3 years
* and the event is loan being paid in full. In this example these objects
* will be held intact for any number of years until the event has occurred
* (hold is released) and then 3 more years after that. Objects under
* Event-Based hold cannot be deleted, overwritten or archived until the hold
* is removed.
*/
defaultEventBasedHold: boolean;
/**
* Default access controls to apply to new objects when no ACL is provided.
*/
defaultObjectAcl: Schema$ObjectAccessControl[];
/**
* Encryption configuration used by default for newly inserted objects, when
* no encryption config is specified.
*/
encryption: any;
/**
* HTTP 1.1 Entity tag for the bucket.
*/
etag: string;
/**
* The ID of the bucket. For buckets, the id and name properties are the same.
*/
id: string;
/**
* The kind of item this is. For buckets, this is always storage#bucket.
*/
kind: string;
/**
* User-provided labels, in key/value pairs.
*/
labels: any;
/**
* The bucket's lifecycle configuration. See lifecycle management for more
* information.
*/
lifecycle: any;
/**
* The location of the bucket. Object data for objects in the bucket resides
* in physical storage within this region. Defaults to US. See the
* developer's guide for the authoritative list.
*/
location: string;
/**
* The bucket's logging configuration, which defines the destination
* bucket and optional name prefix for the current bucket's logs.
*/
logging: any;
/**
* The metadata generation of this bucket.
*/
metageneration: string;
/**
* The name of the bucket.
*/
name: string;
/**
* The owner of the bucket. This is always the project team's owner group.
*/
owner: any;
/**
* The project number of the project the bucket belongs to.
*/
projectNumber: string;
/**
* Defines the retention policy for a bucket. The Retention policy enforces a
* minimum retention time for all objects contained in the bucket, based on
* their creation time. Any attempt to overwrite or delete objects younger
* than the retention period will result in a PERMISSION_DENIED error. An
* unlocked retention policy can be modified or removed from the bucket via
* the UpdateBucketMetadata RPC. A locked retention policy cannot be removed
* or shortened in duration for the lifetime of the bucket. Attempting to
* remove or decrease period of a locked retention policy will result in a
* PERMISSION_DENIED error.
*/
retentionPolicy: any;
/**
* The URI of this bucket.
*/
selfLink: string;
/**
* The bucket's default storage class, used whenever no storageClass is
* specified for a newly-created object. This defines how objects in the
* bucket are stored and determines the SLA and the cost of storage. Values
* include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, and
* DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the
* bucket is created, it will default to STANDARD. For more information, see
* storage classes.
*/
storageClass: string;
/**
* The creation time of the bucket in RFC 3339 format.
*/
timeCreated: string;
/**
* The modification time of the bucket in RFC 3339 format.
*/
updated: string;
/**
* The bucket's versioning configuration.
*/
versioning: any;
/**
* The bucket's website configuration, controlling how the service behaves
* when accessing bucket contents as a web site. See the Static Website
* Examples for more information.
*/
website: any;
}
/**
* An access-control entry.
*/
export interface Schema$BucketAccessControl {
/**
* The name of the bucket.
*/
bucket: string;
/**
* The domain associated with the entity, if any.
*/
domain: string;
/**
* The email address associated with the entity, if any.
*/
email: string;
/**
* The entity holding the permission, in one of the following forms: -
* user-userId - user-email - group-groupId - group-email - domain-domain
* - project-team-projectId - allUsers - allAuthenticatedUsers Examples: -
* The user liz@example.com would be user-liz@example.com. - The group
* example@googlegroups.com would be group-example@googlegroups.com. - To
* refer to all members of the Google Apps for Business domain example.com,
* the entity would be domain-example.com.
*/
entity: string;
/**
* The ID for the entity, if any.
*/
entityId: string;
/**
* HTTP 1.1 Entity tag for the access-control entry.
*/
etag: string;
/**
* The ID of the access-control entry.
*/
id: string;
/**
* The kind of item this is. For bucket access control entries, this is always
* storage#bucketAccessControl.
*/
kind: string;
/**
* The project team associated with the entity, if any.
*/
projectTeam: any;
/**
* The access permission for the entity.
*/
role: string;
/**
* The link to this access-control entry.
*/
selfLink: string;
}
/**
* An access-control list.
*/
export interface Schema$BucketAccessControls {
/**
* The list of items.
*/
items: Schema$BucketAccessControl[];
/**
* The kind of item this is. For lists of bucket access control entries, this
* is always storage#bucketAccessControls.
*/
kind: string;
}
/**
* A list of buckets.
*/
export interface Schema$Buckets {
/**
* The list of items.
*/
items: Schema$Bucket[];
/**
* The kind of item this is. For lists of buckets, this is always
* storage#buckets.
*/
kind: string;
/**
* The continuation token, used to page through large result sets. Provide
* this value in a subsequent request to return the next page of results.
*/
nextPageToken: string;
}
/**
* An notification channel used to watch for resource changes.
*/
export interface Schema$Channel {
/**
* The address where notifications are delivered for this channel.
*/
address: string;
/**
* Date and time of notification channel expiration, expressed as a Unix
* timestamp, in milliseconds. Optional.
*/
expiration: string;
/**
* A UUID or similar unique string that identifies this channel.
*/
id: string;
/**
* Identifies this as a notification channel used to watch for changes to a
* resource. Value: the fixed string "api#channel".
*/
kind: string;
/**
* Additional parameters controlling delivery channel behavior. Optional.
*/
params: any;
/**
* A Boolean value to indicate whether payload is wanted. Optional.
*/
payload: boolean;
/**
* An opaque ID that identifies the resource being watched on this channel.
* Stable across different API versions.
*/
resourceId: string;
/**
* A version-specific identifier for the watched resource.
*/
resourceUri: string;
/**
* An arbitrary string delivered to the target address with each notification
* delivered over this channel. Optional.
*/
token: string;
/**
* The type of delivery mechanism used for this channel.
*/
type: string;
}
/**
* A Compose request.
*/
export interface Schema$ComposeRequest {
/**
* Properties of the resulting object.
*/
destination: Schema$Object;
/**
* The kind of item this is.
*/
kind: string;
/**
* The list of source objects that will be concatenated into a single object.
*/
sourceObjects: any[];
}
/**
* A subscription to receive Google PubSub notifications.
*/
export interface Schema$Notification {
/**
* An optional list of additional attributes to attach to each Cloud PubSub
* message published for this notification subscription.
*/
custom_attributes: any;
/**
* HTTP 1.1 Entity tag for this subscription notification.
*/
etag: string;
/**
* If present, only send notifications about listed event types. If empty,
* sent notifications for all event types.
*/
event_types: string[];
/**
* The ID of the notification.
*/
id: string;
/**
* The kind of item this is. For notifications, this is always
* storage#notification.
*/
kind: string;
/**
* If present, only apply this notification configuration to object names that
* begin with this prefix.
*/
object_name_prefix: string;
/**
* The desired content of the Payload.
*/
payload_format: string;
/**
* The canonical URL of this notification.
*/
selfLink: string;
/**
* The Cloud PubSub topic to which this subscription publishes. Formatted as:
* '//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}'
*/
topic: string;
}
/**
* A list of notification subscriptions.
*/
export interface Schema$Notifications {
/**
* The list of items.
*/
items: Schema$Notification[];
/**
* The kind of item this is. For lists of notifications, this is always
* storage#notifications.
*/
kind: string;
}
/**
* An object.
*/
export interface Schema$Object {
/**
* Access controls on the object.
*/
acl: Schema$ObjectAccessControl[];
/**
* The name of the bucket containing this object.
*/
bucket: string;
/**
* Cache-Control directive for the object data. If omitted, and the object is
* accessible to all anonymous users, the default will be public,
* max-age=3600.
*/
cacheControl: string;
/**
* Number of underlying components that make up this object. Components are
* accumulated by compose operations.
*/
componentCount: number;
/**
* Content-Disposition of the object data.
*/
contentDisposition: string;
/**
* Content-Encoding of the object data.
*/
contentEncoding: string;
/**
* Content-Language of the object data.
*/
contentLanguage: string;
/**
* Content-Type of the object data. If an object is stored without a
* Content-Type, it is served as application/octet-stream.
*/
contentType: string;
/**
* CRC32c checksum, as described in RFC 4960, Appendix B; encoded using base64
* in big-endian byte order. For more information about using the CRC32c
* checksum, see Hashes and ETags: Best Practices.
*/
crc32c: string;
/**
* Metadata of customer-supplied encryption key, if the object is encrypted by
* such a key.
*/
customerEncryption: any;
/**
* HTTP 1.1 Entity tag for the object.
*/
etag: string;
/**
* Defines the Event-Based hold for an object. Event-Based hold is a way to
* retain objects indefinitely until an event occurs, signified by the
* hold's release. After being released, such objects will be subject to
* bucket-level retention (if any). One sample use case of this flag is for
* banks to hold loan documents for at least 3 years after loan is paid in
* full. Here bucket-level retention is 3 years and the event is loan being
* paid in full. In this example these objects will be held intact for any
* number of years until the event has occurred (hold is released) and then 3
* more years after that.
*/
eventBasedHold: boolean;
/**
* The content generation of this object. Used for object versioning.
*/
generation: string;
/**
* The ID of the object, including the bucket name, object name, and
* generation number.
*/
id: string;
/**
* The kind of item this is. For objects, this is always storage#object.
*/
kind: string;
/**
* Cloud KMS Key used to encrypt this object, if the object is encrypted by
* such a key. Limited availability; usable only by enabled projects.
*/
kmsKeyName: string;
/**
* MD5 hash of the data; encoded using base64. For more information about
* using the MD5 hash, see Hashes and ETags: Best Practices.
*/
md5Hash: string;
/**
* Media download link.
*/
mediaLink: string;
/**
* User-provided metadata, in key/value pairs.
*/
metadata: any;
/**
* The version of the metadata for this object at this generation. Used for
* preconditions and for detecting changes in metadata. A metageneration
* number is only meaningful in the context of a particular generation of a
* particular object.
*/
metageneration: string;
/**
* The name of the object. Required if not specified by URL parameter.
*/
name: string;
/**
* The owner of the object. This will always be the uploader of the object.
*/
owner: any;
/**
* Specifies the earliest time that the object's retention period expires.
* This value is server-determined and is in RFC 3339 format. Note 1: This
* field is not provided for objects with an active Event-Based hold, since
* retention expiration is unknown until the hold is removed. Note 2: This
* value can be provided even when TemporaryHold is set (so that the user can
* reason about policy without having to first unset the TemporaryHold).
*/
retentionExpirationTime: string;
/**
* The link to this object.
*/
selfLink: string;
/**
* Content-Length of the data in bytes.
*/
size: string;
/**
* Storage class of the object.
*/
storageClass: string;
/**
* Defines the temporary hold for an object. This flag is used to enforce a
* temporary hold on an object. While it is set to true, the object is
* protected against deletion and overwrites. A common use case of this flag
* is regulatory investigations where objects need to be retained while the
* investigation is ongoing.
*/
temporaryHold: boolean;
/**
* The creation time of the object in RFC 3339 format.
*/
timeCreated: string;
/**
* The deletion time of the object in RFC 3339 format. Will be returned if and
* only if this version of the object has been deleted.
*/
timeDeleted: string;
/**
* The time at which the object's storage class was last changed. When the
* object is initially created, it will be set to timeCreated.
*/
timeStorageClassUpdated: string;
/**
* The modification time of the object metadata in RFC 3339 format.
*/
updated: string;
}
/**
* An access-control entry.
*/
export interface Schema$ObjectAccessControl {
/**
* The name of the bucket.
*/
bucket: string;
/**
* The domain associated with the entity, if any.
*/
domain: string;
/**
* The email address associated with the entity, if any.
*/
email: string;
/**
* The entity holding the permission, in one of the following forms: -
* user-userId - user-email - group-groupId - group-email - domain-domain
* - project-team-projectId - allUsers - allAuthenticatedUsers Examples: -
* The user liz@example.com would be user-liz@example.com. - The group
* example@googlegroups.com would be group-example@googlegroups.com. - To
* refer to all members of the Google Apps for Business domain example.com,
* the entity would be domain-example.com.
*/
entity: string;
/**
* The ID for the entity, if any.
*/
entityId: string;
/**
* HTTP 1.1 Entity tag for the access-control entry.
*/
etag: string;
/**
* The content generation of the object, if applied to an object.
*/
generation: string;
/**
* The ID of the access-control entry.
*/
id: string;
/**
* The kind of item this is. For object access control entries, this is always
* storage#objectAccessControl.
*/
kind: string;
/**
* The name of the object, if applied to an object.
*/
object: string;
/**
* The project team associated with the entity, if any.
*/
projectTeam: any;
/**
* The access permission for the entity.
*/
role: string;
/**
* The link to this access-control entry.
*/
selfLink: string;
}
/**
* An access-control list.
*/
export interface Schema$ObjectAccessControls {
/**
* The list of items.
*/
items: Schema$ObjectAccessControl[];
/**
* The kind of item this is. For lists of object access control entries, this
* is always storage#objectAccessControls.
*/
kind: string;
}
/**
* A list of objects.
*/
export interface Schema$Objects {
/**
* The list of items.
*/
items: Schema$Object[];
/**
* The kind of item this is. For lists of objects, this is always
* storage#objects.
*/
kind: string;
/**
* The continuation token, used to page through large result sets. Provide
* this value in a subsequent request to return the next page of results.
*/
nextPageToken: string;
/**
* The list of prefixes of objects matching-but-not-listed up to and including
* the requested delimiter.
*/
prefixes: string[];
}
/**
* A bucket/object IAM policy.
*/
export interface Schema$Policy {
/**
* An association between a role, which comes with a set of permissions, and
* members who may assume that role.
*/
bindings: any[];
/**
* HTTP 1.1 Entity tag for the policy.
*/
etag: string;
/**
* The kind of item this is. For policies, this is always storage#policy. This
* field is ignored on input.
*/
kind: string;
/**
* The ID of the resource to which this policy belongs. Will be of the form
* projects/_/buckets/bucket for buckets, and
* projects/_/buckets/bucket/objects/object for objects. A specific generation
* may be specified by appending #generationNumber to the end of the object
* name, e.g. projects/_/buckets/my-bucket/objects/data.txt#17. The current
* generation can be denoted with #0. This field is ignored on input.
*/
resourceId: string;
}
/**
* A rewrite response.
*/
export interface Schema$RewriteResponse {
/**
* true if the copy is finished; otherwise, false if the copy is in progress.
* This property is always present in the response.
*/
done: boolean;
/**
* The kind of item this is.
*/
kind: string;
/**
* The total size of the object being copied in bytes. This property is always
* present in the response.
*/
objectSize: string;
/**
* A resource containing the metadata for the copied-to object. This property
* is present in the response only when copying completes.
*/
resource: Schema$Object;
/**
* A token to use in subsequent requests to continue copying data. This token
* is present in the response only when there is more data to copy.
*/
rewriteToken: string;
/**
* The total bytes written so far, which can be used to provide a waiting user
* with a progress indicator. This property is always present in the response.
*/
totalBytesRewritten: string;
}
/**
* A subscription to receive Google PubSub notifications.
*/
export interface Schema$ServiceAccount {
/**
* The ID of the notification.
*/
email_address: string;
/**
* The kind of item this is. For notifications, this is always
* storage#notification.
*/
kind: string;
}
/**
* A storage.(buckets|objects).testIamPermissions response.
*/
export interface Schema$TestIamPermissionsResponse {
/**
* The kind of item this is.
*/
kind: string;
/**
* The permissions held by the caller. Permissions are always of the format
* storage.resource.capability, where resource is one of buckets or objects.
* The supported permissions are as follows: - storage.buckets.delete —
* Delete bucket. - storage.buckets.get — Read bucket metadata. -
* storage.buckets.getIamPolicy — Read bucket IAM policy. -
* storage.buckets.create — Create bucket. - storage.buckets.list — List
* buckets. - storage.buckets.setIamPolicy — Update bucket IAM policy. -
* storage.buckets.update — Update bucket metadata. - storage.objects.delete
* — Delete object. - storage.objects.get — Read object data and metadata.
* - storage.objects.getIamPolicy — Read object IAM policy. -
* storage.objects.create — Create object. - storage.objects.list — List
* objects. - storage.objects.setIamPolicy — Update object IAM policy. -
* storage.objects.update — Update object metadata.
*/
permissions: string[];
}
export declare class Resource$Bucketaccesscontrols {
root: Storage;
constructor(root: Storage);
getRoot(): Storage;
/**
* storage.bucketAccessControls.delete
* @desc Permanently deletes the ACL entry for the specified entity on the
* specified bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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 storage = google.storage('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of a bucket.
* bucket: 'my-bucket', // TODO: Update placeholder value.
*
* // The entity holding the permission. Can be user-userId,
* user-emailAddress, group-groupId,
* // group-emailAddress, allUsers, or allAuthenticatedUsers.
* entity: 'my-entity', // TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* storage.bucketAccessControls.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 storage.bucketAccessControls.delete
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.bucket Name of a bucket.
* @param {string} params.entity The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.
* @param {string=} params.userProject The project to be billed for this request. Required for Requester Pays buckets.
* @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?: any, options?: MethodOptions): AxiosPromise<void>;
delete(params?: any, options?: MethodOptions | BodyResponseCallback<void>, callback?: BodyResponseCallback<void>): void;
/**
* storage.bucketAccessControls.get
* @desc Returns the ACL entry for the specified entity on the specified
* bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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 storage = google.storage('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of a bucket.
* bucket: 'my-bucket', // TODO: Update placeholder value.
*
* // The entity holding the permission. Can be user-userId,
* user-emailAddress, group-groupId,
* // group-emailAddress, allUsers, or allAuthenticatedUsers.
* entity: 'my-entity', // TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* storage.bucketAccessControls.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 storage.bucketAccessControls.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.bucket Name of a bucket.
* @param {string} params.entity The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.
* @param {string=} params.userProject The project to be billed for this request. Required for Requester Pays buckets.
* @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?: any, options?: MethodOptions): AxiosPromise<Schema$BucketAccessControl>;
get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$BucketAccessControl>, callback?: BodyResponseCallback<Schema$BucketAccessControl>): void;
/**
* storage.bucketAccessControls.insert
* @desc Creates a new ACL entry on the specified bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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 storage = google.storage('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of a bucket.
* bucket: 'my-bucket', // TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body.
* },
*
* auth: authClient,
* };
*
* storage.bucketAccessControls.insert(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 storage.bucketAccessControls.insert
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.bucket Name of a bucket.
* @param {string=} params.userProject The project to be billed for this request. Required for Requester Pays buckets.
* @param {().BucketAccessControl} 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
*/
insert(params?: any, options?: MethodOptions): AxiosPromise<Schema$BucketAccessControl>;
insert(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$BucketAccessControl>, callback?: BodyResponseCallback<Schema$BucketAccessControl>): void;
/**
* storage.bucketAccessControls.list
* @desc Retrieves ACL entries on the specified bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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 storage = google.storage('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of a bucket.
* bucket: 'my-bucket', // TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* storage.bucketAccessControls.list(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 storage.bucketAccessControls.list
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.bucket Name of a bucket.
* @param {string=} params.userProject The project to be billed for this request. Required for Requester Pays buckets.
* @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?: any, options?: MethodOptions): AxiosPromise<Schema$BucketAccessControls>;
list(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$BucketAccessControls>, callback?: BodyResponseCallback<Schema$BucketAccessControls>): void;
/**
* storage.bucketAccessControls.patch
* @desc Patches an ACL entry on the specified bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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 storage = google.storage('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of a bucket.
* bucket: 'my-bucket', // TODO: Update placeholder value.
*
* // The entity holding the permission. Can be user-userId,
* user-emailAddress, group-groupId,
* // group-emailAddress, allUsers, or allAuthenticatedUsers.
* entity: 'my-entity', // TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body. Only these
* properties
* // will be changed.
* },
*
* auth: authClient,
* };
*
* storage.bucketAccessControls.patch(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 storage.bucketAccessControls.patch
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.bucket Name of a bucket.
* @param {string} params.entity The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.
* @param {string=} params.userProject The project to be billed for this request. Required for Requester Pays buckets.
* @param {().BucketAccessControl} 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?: any, options?: MethodOptions): AxiosPromise<Schema$BucketAccessControl>;
patch(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$BucketAccessControl>, callback?: BodyResponseCallback<Schema$BucketAccessControl>): void;
/**
* storage.bucketAccessControls.update
* @desc Updates an ACL entry on the specified bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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 storage = google.storage('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of a bucket.
* bucket: 'my-bucket', // TODO: Update placeholder value.
*
* // The entity holding the permission. Can be user-userId,
* user-emailAddress, group-groupId,
* // group-emailAddress, allUsers, or allAuthenticatedUsers.
* entity: 'my-entity', // TODO: Update placeholder value.
*
* resource: {
* // TODO: Add desired properties to the request body. All existing
* properties
* // will be replaced.
* },
*
* auth: authClient,
* };
*
* storage.bucketAccessControls.update(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 storage.bucketAccessControls.update
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.bucket Name of a bucket.
* @param {string} params.entity The entity holding the permission. Can be user-userId, user-emailAddress, group-groupId, group-emailAddress, allUsers, or allAuthenticatedUsers.
* @param {string=} params.userProject The project to be billed for this request. Required for Requester Pays buckets.
* @param {().BucketAccessControl} 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
*/
update(params?: any, options?: MethodOptions): AxiosPromise<Schema$BucketAccessControl>;
update(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$BucketAccessControl>, callback?: BodyResponseCallback<Schema$BucketAccessControl>): void;
}
export declare class Resource$Buckets {
root: Storage;
constructor(root: Storage);
getRoot(): Storage;
/**
* storage.buckets.delete
* @desc Permanently deletes an empty bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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 storage = google.storage('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of a bucket.
* bucket: 'my-bucket', // TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* storage.buckets.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 storage.buckets.delete
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.bucket Name of a bucket.
* @param {string=} params.ifMetagenerationMatch If set, only deletes the bucket if its metageneration matches this value.
* @param {string=} params.ifMetagenerationNotMatch If set, only deletes the bucket if its metageneration does not match this value.
* @param {string=} params.userProject The project to be billed for this request. Required for Requester Pays buckets.
* @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?: any, options?: MethodOptions): AxiosPromise<void>;
delete(params?: any, options?: MethodOptions | BodyResponseCallback<void>, callback?: BodyResponseCallback<void>): void;
/**
* storage.buckets.get
* @desc Returns metadata for the specified bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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 storage = google.storage('v1');
*
* authorize(function(authClient) {
* var request = {
* // Name of a bucket.
* bucket: 'my-bucket', // TODO: Update placeholder value.
*
* auth: authClient,
* };
*
* storage.buckets.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 storage.buckets.get
* @memberOf! ()
*
* @param {object} params Parameters for request
* @param {string} params.bucket Name of a bucket.
* @param {string=} params.ifMetagenerationMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration matches the given value.
* @param {string=} params.ifMetagenerationNotMatch Makes the return of the bucket metadata conditional on whether the bucket's current metageneration does not match the given value.
* @param {string=} params.projection Set of properties to return. Defaults to noAcl.
* @param {string=} params.userProject The project to be billed for this request. Required for Requester Pays buckets.
* @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?: any, options?: MethodOptions): AxiosPromise<Schema$Bucket>;
get(params?: any, options?: MethodOptions | BodyResponseCallback<Schema$Bucket>, callback?: BodyResponseCallback<Schema$Bucket>): void;
/**
* storage.buckets.getIamPolicy
* @desc Returns an IAM policy for the specified bucket.
* @example
* * // BEFORE RUNNING:
* // ---------------
* // 1. If not already done, enable the Cloud Storage JSON API
* // and check the quota for your project at
* // https://console.developers.google.com/apis/api/storage
* // 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/app