import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs } from "../../types"; /** * Creates a new bucket. */ export declare class Bucket extends pulumi.CustomResource { /** * Get an existing Bucket resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): Bucket; /** * Returns true if the given object is an instance of Bucket. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Bucket; /** * Access controls on the bucket. */ readonly acl: pulumi.Output; /** * The bucket's billing configuration. */ readonly billing: pulumi.Output<{ [key: string]: string; }>; /** * The bucket's Cross-Origin Resource Sharing (CORS) configuration. */ readonly cors: pulumi.Output<{ [key: string]: string; }[]>; /** * 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 (event-based hold on the object is released) and then 3 more years after that. That means retention duration of the objects begins from the moment event-based hold transitioned from true to false. Objects under event-based hold cannot be deleted, overwritten or archived until the hold is removed. */ readonly defaultEventBasedHold: pulumi.Output; /** * Default access controls to apply to new objects when no ACL is provided. */ readonly defaultObjectAcl: pulumi.Output; /** * Encryption configuration for a bucket. */ readonly encryption: pulumi.Output<{ [key: string]: string; }>; /** * HTTP 1.1 Entity tag for the bucket. */ readonly etag: pulumi.Output; /** * The bucket's IAM configuration. */ readonly iamConfiguration: pulumi.Output<{ [key: string]: string; }>; /** * The kind of item this is. For buckets, this is always storage#bucket. */ readonly kind: pulumi.Output; /** * User-provided labels, in key/value pairs. */ readonly labels: pulumi.Output<{ [key: string]: string; }>; /** * The bucket's lifecycle configuration. See lifecycle management for more information. */ readonly lifecycle: pulumi.Output<{ [key: string]: string; }>; /** * 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. */ readonly location: pulumi.Output; /** * The type of the bucket location. */ readonly locationType: pulumi.Output; /** * The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs. */ readonly logging: pulumi.Output<{ [key: string]: string; }>; /** * The metadata generation of this bucket. */ readonly metageneration: pulumi.Output; /** * The name of the bucket. */ readonly name: pulumi.Output; /** * The owner of the bucket. This is always the project team's owner group. */ readonly owner: pulumi.Output<{ [key: string]: string; }>; /** * The project number of the project the bucket belongs to. */ readonly projectNumber: pulumi.Output; /** * The bucket's retention policy. 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 a storage.buckets.update operation. 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. */ readonly retentionPolicy: pulumi.Output<{ [key: string]: string; }>; /** * Reserved for future use. */ readonly satisfiesPZS: pulumi.Output; /** * The URI of this bucket. */ readonly selfLink: pulumi.Output; /** * 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, ARCHIVE, 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. */ readonly storageClass: pulumi.Output; /** * The creation time of the bucket in RFC 3339 format. */ readonly timeCreated: pulumi.Output; /** * The modification time of the bucket in RFC 3339 format. */ readonly updated: pulumi.Output; /** * The bucket's versioning configuration. */ readonly versioning: pulumi.Output<{ [key: string]: string; }>; /** * 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. */ readonly website: pulumi.Output<{ [key: string]: string; }>; /** * The zone or zones from which the bucket is intended to use zonal quota. Requests for data from outside the specified affinities are still allowed but won't be able to use zonal quota. The zone or zones need to be within the bucket location otherwise the requests will fail with a 400 Bad Request response. */ readonly zoneAffinity: pulumi.Output; /** * Create a Bucket resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: BucketArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a Bucket resource. */ export interface BucketArgs { /** * Access controls on the bucket. */ readonly acl?: pulumi.Input[]>; /** * The bucket's billing configuration. */ readonly billing?: pulumi.Input<{ [key: string]: pulumi.Input; }>; readonly bucket: pulumi.Input; /** * The bucket's Cross-Origin Resource Sharing (CORS) configuration. */ readonly cors?: pulumi.Input; }>[]>; /** * 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 (event-based hold on the object is released) and then 3 more years after that. That means retention duration of the objects begins from the moment event-based hold transitioned from true to false. Objects under event-based hold cannot be deleted, overwritten or archived until the hold is removed. */ readonly defaultEventBasedHold?: pulumi.Input; /** * Default access controls to apply to new objects when no ACL is provided. */ readonly defaultObjectAcl?: pulumi.Input[]>; /** * Encryption configuration for a bucket. */ readonly encryption?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * HTTP 1.1 Entity tag for the bucket. */ readonly etag?: pulumi.Input; /** * The bucket's IAM configuration. */ readonly iamConfiguration?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The ID of the bucket. For buckets, the id and name properties are the same. */ readonly id?: pulumi.Input; /** * The kind of item this is. For buckets, this is always storage#bucket. */ readonly kind?: pulumi.Input; /** * User-provided labels, in key/value pairs. */ readonly labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The bucket's lifecycle configuration. See lifecycle management for more information. */ readonly lifecycle?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * 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. */ readonly location?: pulumi.Input; /** * The type of the bucket location. */ readonly locationType?: pulumi.Input; /** * The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs. */ readonly logging?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The metadata generation of this bucket. */ readonly metageneration?: pulumi.Input; /** * The name of the bucket. */ readonly name?: pulumi.Input; /** * The owner of the bucket. This is always the project team's owner group. */ readonly owner?: pulumi.Input<{ [key: string]: pulumi.Input; }>; readonly project: pulumi.Input; /** * The project number of the project the bucket belongs to. */ readonly projectNumber?: pulumi.Input; /** * The bucket's retention policy. 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 a storage.buckets.update operation. 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. */ readonly retentionPolicy?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Reserved for future use. */ readonly satisfiesPZS?: pulumi.Input; /** * The URI of this bucket. */ readonly selfLink?: pulumi.Input; /** * 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, ARCHIVE, 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. */ readonly storageClass?: pulumi.Input; /** * The creation time of the bucket in RFC 3339 format. */ readonly timeCreated?: pulumi.Input; /** * The modification time of the bucket in RFC 3339 format. */ readonly updated?: pulumi.Input; /** * The bucket's versioning configuration. */ readonly versioning?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * 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. */ readonly website?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The zone or zones from which the bucket is intended to use zonal quota. Requests for data from outside the specified affinities are still allowed but won't be able to use zonal quota. The zone or zones need to be within the bucket location otherwise the requests will fail with a 400 Bad Request response. */ readonly zoneAffinity?: pulumi.Input[]>; }