tra-analysis/website/node_modules/firebase-functions/lib/providers/storage.d.ts
2019-01-06 13:14:45 -06:00

86 lines
2.9 KiB
TypeScript

import { CloudFunction, EventContext } from '../cloud-functions';
/**
* The optional bucket function allows you to choose which buckets' events to handle.
* This step can be bypassed by calling object() directly, which will use the default
* Cloud Storage for Firebase bucket.
* @param bucket Name of the Google Cloud Storage bucket to listen to.
*/
export declare function bucket(bucket?: string): BucketBuilder;
/**
* Handle events related to Cloud Storage objects.
*/
export declare function object(): ObjectBuilder;
export declare class BucketBuilder {
private triggerResource;
private opts;
/** Handle events for objects in this bucket. */
object(): ObjectBuilder;
}
export declare class ObjectBuilder {
private triggerResource;
private opts;
/** Respond to archiving of an object, this is only for buckets that enabled object versioning. */
onArchive(handler: (object: ObjectMetadata, context: EventContext) => PromiseLike<any> | any): CloudFunction<ObjectMetadata>;
/** Respond to the deletion of an object (not to archiving, if object versioning is enabled). */
onDelete(handler: (object: ObjectMetadata, context: EventContext) => PromiseLike<any> | any): CloudFunction<ObjectMetadata>;
/** Respond to the successful creation of an object. */
onFinalize(handler: (object: ObjectMetadata, context: EventContext) => PromiseLike<any> | any): CloudFunction<ObjectMetadata>;
/** Respond to metadata updates of existing objects. */
onMetadataUpdate(handler: (object: ObjectMetadata, context: EventContext) => PromiseLike<any> | any): CloudFunction<ObjectMetadata>;
private onOperation(handler, eventType);
}
export interface ObjectMetadata {
kind: string;
id: string;
bucket: string;
storageClass: string;
size: string;
timeCreated: string;
updated: string;
selfLink?: string;
name?: string;
generation?: string;
contentType?: string;
metageneration?: string;
timeDeleted?: string;
timeStorageClassUpdated?: string;
md5Hash?: string;
mediaLink?: string;
contentEncoding?: string;
contentDisposition?: string;
contentLanguage?: string;
cacheControl?: string;
metadata?: {
[key: string]: string;
};
acl?: [{
kind?: string;
id?: string;
selfLink?: string;
bucket?: string;
object?: string;
generation?: string;
entity?: string;
role?: string;
email?: string;
entityId?: string;
domain?: string;
projectTeam?: {
projectNumber?: string;
team?: string;
};
etag?: string;
}];
owner?: {
entity?: string;
entityId?: string;
};
crc32c?: string;
componentCount?: string;
etag?: string;
customerEncryption?: {
encryptionAlgorithm?: string;
keySha256?: string;
};
}