Documentation
¶
Overview ¶
nolint: lll Package storage exports types, functions, subpackages for provisioning storage resources.
> This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-google) > distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature, > first check the [`pulumi/pulumi-gcp` repo](https://github.com/pulumi/pulumi-gcp/issues); however, if that doesn't turn up anything, > please consult the source [`terraform-providers/terraform-provider-google` repo](https://github.com/terraform-providers/terraform-provider-google/issues).
Index ¶
- type Bucket
- func (r *Bucket) BucketPolicyOnly() *pulumi.BoolOutput
- func (r *Bucket) Cors() *pulumi.ArrayOutput
- func (r *Bucket) Encryption() *pulumi.Output
- func (r *Bucket) ForceDestroy() *pulumi.BoolOutput
- func (r *Bucket) ID() *pulumi.IDOutput
- func (r *Bucket) Labels() *pulumi.MapOutput
- func (r *Bucket) LifecycleRules() *pulumi.ArrayOutput
- func (r *Bucket) Location() *pulumi.StringOutput
- func (r *Bucket) Logging() *pulumi.Output
- func (r *Bucket) Name() *pulumi.StringOutput
- func (r *Bucket) Project() *pulumi.StringOutput
- func (r *Bucket) RequesterPays() *pulumi.BoolOutput
- func (r *Bucket) RetentionPolicy() *pulumi.Output
- func (r *Bucket) SelfLink() *pulumi.StringOutput
- func (r *Bucket) StorageClass() *pulumi.StringOutput
- func (r *Bucket) URN() *pulumi.URNOutput
- func (r *Bucket) Url() *pulumi.StringOutput
- func (r *Bucket) Versioning() *pulumi.Output
- func (r *Bucket) Website() *pulumi.Output
- type BucketACL
- func (r *BucketACL) Bucket() *pulumi.StringOutput
- func (r *BucketACL) DefaultAcl() *pulumi.StringOutput
- func (r *BucketACL) ID() *pulumi.IDOutput
- func (r *BucketACL) PredefinedAcl() *pulumi.StringOutput
- func (r *BucketACL) RoleEntities() *pulumi.ArrayOutput
- func (r *BucketACL) URN() *pulumi.URNOutput
- type BucketACLArgs
- type BucketACLState
- type BucketArgs
- type BucketIAMBinding
- func (r *BucketIAMBinding) Bucket() *pulumi.StringOutput
- func (r *BucketIAMBinding) Etag() *pulumi.StringOutput
- func (r *BucketIAMBinding) ID() *pulumi.IDOutput
- func (r *BucketIAMBinding) Members() *pulumi.ArrayOutput
- func (r *BucketIAMBinding) Role() *pulumi.StringOutput
- func (r *BucketIAMBinding) URN() *pulumi.URNOutput
- type BucketIAMBindingArgs
- type BucketIAMBindingState
- type BucketIAMMember
- func (r *BucketIAMMember) Bucket() *pulumi.StringOutput
- func (r *BucketIAMMember) Etag() *pulumi.StringOutput
- func (r *BucketIAMMember) ID() *pulumi.IDOutput
- func (r *BucketIAMMember) Member() *pulumi.StringOutput
- func (r *BucketIAMMember) Role() *pulumi.StringOutput
- func (r *BucketIAMMember) URN() *pulumi.URNOutput
- type BucketIAMMemberArgs
- type BucketIAMMemberState
- type BucketIAMPolicy
- type BucketIAMPolicyArgs
- type BucketIAMPolicyState
- type BucketObject
- func (r *BucketObject) Bucket() *pulumi.StringOutput
- func (r *BucketObject) CacheControl() *pulumi.StringOutput
- func (r *BucketObject) Content() *pulumi.StringOutput
- func (r *BucketObject) ContentDisposition() *pulumi.StringOutput
- func (r *BucketObject) ContentEncoding() *pulumi.StringOutput
- func (r *BucketObject) ContentLanguage() *pulumi.StringOutput
- func (r *BucketObject) ContentType() *pulumi.StringOutput
- func (r *BucketObject) Crc32c() *pulumi.StringOutput
- func (r *BucketObject) DetectMd5hash() *pulumi.StringOutput
- func (r *BucketObject) ID() *pulumi.IDOutput
- func (r *BucketObject) Md5hash() *pulumi.StringOutput
- func (r *BucketObject) Name() *pulumi.StringOutput
- func (r *BucketObject) OutputName() *pulumi.StringOutput
- func (r *BucketObject) SelfLink() *pulumi.StringOutput
- func (r *BucketObject) Source() *pulumi.StringOutput
- func (r *BucketObject) StorageClass() *pulumi.StringOutput
- func (r *BucketObject) URN() *pulumi.URNOutput
- type BucketObjectArgs
- type BucketObjectState
- type BucketState
- type DefaultObjectACL
- type DefaultObjectACLArgs
- type DefaultObjectACLState
- type DefaultObjectAccessControl
- func (r *DefaultObjectAccessControl) Bucket() *pulumi.StringOutput
- func (r *DefaultObjectAccessControl) Domain() *pulumi.StringOutput
- func (r *DefaultObjectAccessControl) Email() *pulumi.StringOutput
- func (r *DefaultObjectAccessControl) Entity() *pulumi.StringOutput
- func (r *DefaultObjectAccessControl) EntityId() *pulumi.StringOutput
- func (r *DefaultObjectAccessControl) Generation() *pulumi.IntOutput
- func (r *DefaultObjectAccessControl) ID() *pulumi.IDOutput
- func (r *DefaultObjectAccessControl) Object() *pulumi.StringOutput
- func (r *DefaultObjectAccessControl) ProjectTeam() *pulumi.Output
- func (r *DefaultObjectAccessControl) Role() *pulumi.StringOutput
- func (r *DefaultObjectAccessControl) URN() *pulumi.URNOutput
- type DefaultObjectAccessControlArgs
- type DefaultObjectAccessControlState
- type GetBucketObjectArgs
- type GetBucketObjectResult
- type GetObjectSignedUrlArgs
- type GetObjectSignedUrlResult
- type GetProjectServiceAccountArgs
- type GetProjectServiceAccountResult
- type GetTransferProjectServieAccountArgs
- type GetTransferProjectServieAccountResult
- type Notification
- func (r *Notification) Bucket() *pulumi.StringOutput
- func (r *Notification) CustomAttributes() *pulumi.MapOutput
- func (r *Notification) EventTypes() *pulumi.ArrayOutput
- func (r *Notification) ID() *pulumi.IDOutput
- func (r *Notification) ObjectNamePrefix() *pulumi.StringOutput
- func (r *Notification) PayloadFormat() *pulumi.StringOutput
- func (r *Notification) SelfLink() *pulumi.StringOutput
- func (r *Notification) Topic() *pulumi.StringOutput
- func (r *Notification) URN() *pulumi.URNOutput
- type NotificationArgs
- type NotificationState
- type ObjectACL
- type ObjectACLArgs
- type ObjectACLState
- type ObjectAccessControl
- func (r *ObjectAccessControl) Bucket() *pulumi.StringOutput
- func (r *ObjectAccessControl) Domain() *pulumi.StringOutput
- func (r *ObjectAccessControl) Email() *pulumi.StringOutput
- func (r *ObjectAccessControl) Entity() *pulumi.StringOutput
- func (r *ObjectAccessControl) EntityId() *pulumi.StringOutput
- func (r *ObjectAccessControl) Generation() *pulumi.IntOutput
- func (r *ObjectAccessControl) ID() *pulumi.IDOutput
- func (r *ObjectAccessControl) Object() *pulumi.StringOutput
- func (r *ObjectAccessControl) ProjectTeam() *pulumi.Output
- func (r *ObjectAccessControl) Role() *pulumi.StringOutput
- func (r *ObjectAccessControl) URN() *pulumi.URNOutput
- type ObjectAccessControlArgs
- type ObjectAccessControlState
- type TransferJob
- func (r *TransferJob) CreationTime() *pulumi.StringOutput
- func (r *TransferJob) DeletionTime() *pulumi.StringOutput
- func (r *TransferJob) Description() *pulumi.StringOutput
- func (r *TransferJob) ID() *pulumi.IDOutput
- func (r *TransferJob) LastModificationTime() *pulumi.StringOutput
- func (r *TransferJob) Name() *pulumi.StringOutput
- func (r *TransferJob) Project() *pulumi.StringOutput
- func (r *TransferJob) Schedule() *pulumi.Output
- func (r *TransferJob) Status() *pulumi.StringOutput
- func (r *TransferJob) TransferSpec() *pulumi.Output
- func (r *TransferJob) URN() *pulumi.URNOutput
- type TransferJobArgs
- type TransferJobState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bucket ¶
type Bucket struct {
// contains filtered or unexported fields
}
Creates a new bucket in Google cloud storage service (GCS). Once a bucket has been created, its location can't be changed. [ACLs](https://cloud.google.com/storage/docs/access-control/lists) can be applied using the [`storage.BucketACL` resource](https://www.terraform.io/docs/providers/google/r/storage_bucket_acl.html).
For more information see [the official documentation](https://cloud.google.com/storage/docs/overview) and [API](https://cloud.google.com/storage/docs/json_api/v1/buckets).
**Note**: If the project id is not set on the resource or in the provider block it will be dynamically determined which will require enabling the compute api.
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_bucket.html.markdown.
func GetBucket ¶
func GetBucket(ctx *pulumi.Context, name string, id pulumi.ID, state *BucketState, opts ...pulumi.ResourceOpt) (*Bucket, error)
GetBucket gets an existing Bucket resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewBucket ¶
func NewBucket(ctx *pulumi.Context, name string, args *BucketArgs, opts ...pulumi.ResourceOpt) (*Bucket, error)
NewBucket registers a new resource with the given unique name, arguments, and options.
func (*Bucket) BucketPolicyOnly ¶ added in v0.18.8
func (r *Bucket) BucketPolicyOnly() *pulumi.BoolOutput
Enables [Bucket Policy Only](https://cloud.google.com/storage/docs/bucket-policy-only) access to a bucket.
func (*Bucket) Cors ¶
func (r *Bucket) Cors() *pulumi.ArrayOutput
The bucket's [Cross-Origin Resource Sharing (CORS)](https://www.w3.org/TR/cors/) configuration. Multiple blocks of this type are permitted. Structure is documented below.
func (*Bucket) Encryption ¶ added in v0.16.0
The bucket's encryption configuration.
func (*Bucket) ForceDestroy ¶
func (r *Bucket) ForceDestroy() *pulumi.BoolOutput
When deleting a bucket, this boolean option will delete all contained objects. If you try to delete a bucket that contains objects, this provider will fail that run.
func (*Bucket) LifecycleRules ¶
func (r *Bucket) LifecycleRules() *pulumi.ArrayOutput
The bucket's [Lifecycle Rules](https://cloud.google.com/storage/docs/lifecycle#configuration) configuration. Multiple blocks of this type are permitted. Structure is documented below.
func (*Bucket) Location ¶
func (r *Bucket) Location() *pulumi.StringOutput
The [GCS location](https://cloud.google.com/storage/docs/bucket-locations)
func (*Bucket) Logging ¶
The bucket's [Access & Storage Logs](https://cloud.google.com/storage/docs/access-logs) configuration.
func (*Bucket) Project ¶
func (r *Bucket) Project() *pulumi.StringOutput
The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
func (*Bucket) RequesterPays ¶ added in v0.18.0
func (r *Bucket) RequesterPays() *pulumi.BoolOutput
Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket.
func (*Bucket) RetentionPolicy ¶ added in v0.18.15
Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
func (*Bucket) SelfLink ¶
func (r *Bucket) SelfLink() *pulumi.StringOutput
The URI of the created resource.
func (*Bucket) StorageClass ¶
func (r *Bucket) StorageClass() *pulumi.StringOutput
The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`.
func (*Bucket) Url ¶
func (r *Bucket) Url() *pulumi.StringOutput
The base URL of the bucket, in the format `gs://<bucket-name>`.
func (*Bucket) Versioning ¶
The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration.
type BucketACL ¶
type BucketACL struct {
// contains filtered or unexported fields
}
Creates a new bucket ACL in Google cloud storage service (GCS). For more information see [the official documentation](https://cloud.google.com/storage/docs/access-control/lists) and [API](https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls).
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_bucket_acl.html.markdown.
func GetBucketACL ¶
func GetBucketACL(ctx *pulumi.Context, name string, id pulumi.ID, state *BucketACLState, opts ...pulumi.ResourceOpt) (*BucketACL, error)
GetBucketACL gets an existing BucketACL resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewBucketACL ¶
func NewBucketACL(ctx *pulumi.Context, name string, args *BucketACLArgs, opts ...pulumi.ResourceOpt) (*BucketACL, error)
NewBucketACL registers a new resource with the given unique name, arguments, and options.
func (*BucketACL) Bucket ¶
func (r *BucketACL) Bucket() *pulumi.StringOutput
The name of the bucket it applies to.
func (*BucketACL) DefaultAcl ¶
func (r *BucketACL) DefaultAcl() *pulumi.StringOutput
Configure this ACL to be the default ACL.
func (*BucketACL) PredefinedAcl ¶
func (r *BucketACL) PredefinedAcl() *pulumi.StringOutput
The [canned GCS ACL](https://cloud.google.com/storage/docs/access-control/lists#predefined-acl) to apply. Must be set if `roleEntity` is not.
func (*BucketACL) RoleEntities ¶
func (r *BucketACL) RoleEntities() *pulumi.ArrayOutput
List of role/entity pairs in the form `ROLE:entity`. See [GCS Bucket ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls) for more details. Must be set if `predefinedAcl` is not.
type BucketACLArgs ¶
type BucketACLArgs struct { // The name of the bucket it applies to. Bucket interface{} // Configure this ACL to be the default ACL. DefaultAcl interface{} // The [canned GCS ACL](https://cloud.google.com/storage/docs/access-control/lists#predefined-acl) to apply. Must be set if `roleEntity` is not. PredefinedAcl interface{} // List of role/entity pairs in the form `ROLE:entity`. See [GCS Bucket ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls) for more details. Must be set if `predefinedAcl` is not. RoleEntities interface{} }
The set of arguments for constructing a BucketACL resource.
type BucketACLState ¶
type BucketACLState struct { // The name of the bucket it applies to. Bucket interface{} // Configure this ACL to be the default ACL. DefaultAcl interface{} // The [canned GCS ACL](https://cloud.google.com/storage/docs/access-control/lists#predefined-acl) to apply. Must be set if `roleEntity` is not. PredefinedAcl interface{} // List of role/entity pairs in the form `ROLE:entity`. See [GCS Bucket ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls) for more details. Must be set if `predefinedAcl` is not. RoleEntities interface{} }
Input properties used for looking up and filtering BucketACL resources.
type BucketArgs ¶
type BucketArgs struct { // Enables [Bucket Policy Only](https://cloud.google.com/storage/docs/bucket-policy-only) access to a bucket. BucketPolicyOnly interface{} // The bucket's [Cross-Origin Resource Sharing (CORS)](https://www.w3.org/TR/cors/) configuration. Multiple blocks of this type are permitted. Structure is documented below. Cors interface{} // The bucket's encryption configuration. Encryption interface{} // When deleting a bucket, this // boolean option will delete all contained objects. If you try to delete a // bucket that contains objects, this provider will fail that run. ForceDestroy interface{} // A set of key/value label pairs to assign to the bucket. Labels interface{} // The bucket's [Lifecycle Rules](https://cloud.google.com/storage/docs/lifecycle#configuration) configuration. Multiple blocks of this type are permitted. Structure is documented below. LifecycleRules interface{} // The [GCS location](https://cloud.google.com/storage/docs/bucket-locations) Location interface{} // The bucket's [Access & Storage Logs](https://cloud.google.com/storage/docs/access-logs) configuration. Logging interface{} // The name of the bucket. Name interface{} // The ID of the project in which the resource belongs. If it // is not provided, the provider project is used. Project interface{} // Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket. RequesterPays interface{} // Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below. RetentionPolicy interface{} // The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`. StorageClass interface{} // The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration. Versioning interface{} // Configuration if the bucket acts as a website. Structure is documented below. Website interface{} }
The set of arguments for constructing a Bucket resource.
type BucketIAMBinding ¶
type BucketIAMBinding struct {
// contains filtered or unexported fields
}
Three different resources help you manage your IAM policy for storage bucket. Each of these resources serves a different use case:
* `storage.BucketIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the storage bucket are preserved. * `storage.BucketIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the storage bucket are preserved. * `storage.BucketIAMPolicy`: Setting a policy removes all other permissions on the bucket, and if done incorrectly, there's a real chance you will lock yourself out of the bucket. If possible for your use case, using multiple storage.BucketIAMBinding resources will be much safer. See the usage example on how to work with policy correctly.
> **Note:** `storage.BucketIAMBinding` resources **can be** used in conjunction with `storage.BucketIAMMember` resources **only if** they do not grant privilege to the same role.
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_bucket_iam_binding.html.markdown.
func GetBucketIAMBinding ¶
func GetBucketIAMBinding(ctx *pulumi.Context, name string, id pulumi.ID, state *BucketIAMBindingState, opts ...pulumi.ResourceOpt) (*BucketIAMBinding, error)
GetBucketIAMBinding gets an existing BucketIAMBinding resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewBucketIAMBinding ¶
func NewBucketIAMBinding(ctx *pulumi.Context, name string, args *BucketIAMBindingArgs, opts ...pulumi.ResourceOpt) (*BucketIAMBinding, error)
NewBucketIAMBinding registers a new resource with the given unique name, arguments, and options.
func (*BucketIAMBinding) Bucket ¶
func (r *BucketIAMBinding) Bucket() *pulumi.StringOutput
The name of the bucket it applies to.
func (*BucketIAMBinding) Etag ¶
func (r *BucketIAMBinding) Etag() *pulumi.StringOutput
(Computed) The etag of the storage bucket's IAM policy.
func (*BucketIAMBinding) ID ¶
func (r *BucketIAMBinding) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*BucketIAMBinding) Members ¶
func (r *BucketIAMBinding) Members() *pulumi.ArrayOutput
func (*BucketIAMBinding) Role ¶
func (r *BucketIAMBinding) Role() *pulumi.StringOutput
The role that should be applied. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.
func (*BucketIAMBinding) URN ¶
func (r *BucketIAMBinding) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type BucketIAMBindingArgs ¶
type BucketIAMBindingArgs struct { // The name of the bucket it applies to. Bucket interface{} Members interface{} // The role that should be applied. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role interface{} }
The set of arguments for constructing a BucketIAMBinding resource.
type BucketIAMBindingState ¶
type BucketIAMBindingState struct { // The name of the bucket it applies to. Bucket interface{} // (Computed) The etag of the storage bucket's IAM policy. Etag interface{} Members interface{} // The role that should be applied. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role interface{} }
Input properties used for looking up and filtering BucketIAMBinding resources.
type BucketIAMMember ¶
type BucketIAMMember struct {
// contains filtered or unexported fields
}
Three different resources help you manage your IAM policy for storage bucket. Each of these resources serves a different use case:
* `storage.BucketIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the storage bucket are preserved. * `storage.BucketIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the storage bucket are preserved. * `storage.BucketIAMPolicy`: Setting a policy removes all other permissions on the bucket, and if done incorrectly, there's a real chance you will lock yourself out of the bucket. If possible for your use case, using multiple storage.BucketIAMBinding resources will be much safer. See the usage example on how to work with policy correctly.
> **Note:** `storage.BucketIAMBinding` resources **can be** used in conjunction with `storage.BucketIAMMember` resources **only if** they do not grant privilege to the same role.
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_bucket_iam_member.html.markdown.
func GetBucketIAMMember ¶
func GetBucketIAMMember(ctx *pulumi.Context, name string, id pulumi.ID, state *BucketIAMMemberState, opts ...pulumi.ResourceOpt) (*BucketIAMMember, error)
GetBucketIAMMember gets an existing BucketIAMMember resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewBucketIAMMember ¶
func NewBucketIAMMember(ctx *pulumi.Context, name string, args *BucketIAMMemberArgs, opts ...pulumi.ResourceOpt) (*BucketIAMMember, error)
NewBucketIAMMember registers a new resource with the given unique name, arguments, and options.
func (*BucketIAMMember) Bucket ¶
func (r *BucketIAMMember) Bucket() *pulumi.StringOutput
The name of the bucket it applies to.
func (*BucketIAMMember) Etag ¶
func (r *BucketIAMMember) Etag() *pulumi.StringOutput
(Computed) The etag of the storage bucket's IAM policy.
func (*BucketIAMMember) ID ¶
func (r *BucketIAMMember) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*BucketIAMMember) Member ¶
func (r *BucketIAMMember) Member() *pulumi.StringOutput
func (*BucketIAMMember) Role ¶
func (r *BucketIAMMember) Role() *pulumi.StringOutput
The role that should be applied. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.
func (*BucketIAMMember) URN ¶
func (r *BucketIAMMember) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type BucketIAMMemberArgs ¶
type BucketIAMMemberArgs struct { // The name of the bucket it applies to. Bucket interface{} Member interface{} // The role that should be applied. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role interface{} }
The set of arguments for constructing a BucketIAMMember resource.
type BucketIAMMemberState ¶
type BucketIAMMemberState struct { // The name of the bucket it applies to. Bucket interface{} // (Computed) The etag of the storage bucket's IAM policy. Etag interface{} Member interface{} // The role that should be applied. Note that custom roles must be of the format // `[projects|organizations]/{parent-name}/roles/{role-name}`. Role interface{} }
Input properties used for looking up and filtering BucketIAMMember resources.
type BucketIAMPolicy ¶ added in v0.15.0
type BucketIAMPolicy struct {
// contains filtered or unexported fields
}
Three different resources help you manage your IAM policy for storage bucket. Each of these resources serves a different use case:
* `storage.BucketIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the storage bucket are preserved. * `storage.BucketIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the storage bucket are preserved. * `storage.BucketIAMPolicy`: Setting a policy removes all other permissions on the bucket, and if done incorrectly, there's a real chance you will lock yourself out of the bucket. If possible for your use case, using multiple storage.BucketIAMBinding resources will be much safer. See the usage example on how to work with policy correctly.
> **Note:** `storage.BucketIAMBinding` resources **can be** used in conjunction with `storage.BucketIAMMember` resources **only if** they do not grant privilege to the same role.
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_bucket_iam_policy.html.markdown.
func GetBucketIAMPolicy ¶ added in v0.15.0
func GetBucketIAMPolicy(ctx *pulumi.Context, name string, id pulumi.ID, state *BucketIAMPolicyState, opts ...pulumi.ResourceOpt) (*BucketIAMPolicy, error)
GetBucketIAMPolicy gets an existing BucketIAMPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewBucketIAMPolicy ¶ added in v0.15.0
func NewBucketIAMPolicy(ctx *pulumi.Context, name string, args *BucketIAMPolicyArgs, opts ...pulumi.ResourceOpt) (*BucketIAMPolicy, error)
NewBucketIAMPolicy registers a new resource with the given unique name, arguments, and options.
func (*BucketIAMPolicy) Bucket ¶ added in v0.15.0
func (r *BucketIAMPolicy) Bucket() *pulumi.StringOutput
The name of the bucket it applies to.
func (*BucketIAMPolicy) Etag ¶ added in v0.15.0
func (r *BucketIAMPolicy) Etag() *pulumi.StringOutput
(Computed) The etag of the storage bucket's IAM policy.
func (*BucketIAMPolicy) ID ¶ added in v0.15.0
func (r *BucketIAMPolicy) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*BucketIAMPolicy) PolicyData ¶ added in v0.15.0
func (r *BucketIAMPolicy) PolicyData() *pulumi.StringOutput
func (*BucketIAMPolicy) URN ¶ added in v0.15.0
func (r *BucketIAMPolicy) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type BucketIAMPolicyArgs ¶ added in v0.15.0
type BucketIAMPolicyArgs struct { // The name of the bucket it applies to. Bucket interface{} PolicyData interface{} }
The set of arguments for constructing a BucketIAMPolicy resource.
type BucketIAMPolicyState ¶ added in v0.15.0
type BucketIAMPolicyState struct { // The name of the bucket it applies to. Bucket interface{} // (Computed) The etag of the storage bucket's IAM policy. Etag interface{} PolicyData interface{} }
Input properties used for looking up and filtering BucketIAMPolicy resources.
type BucketObject ¶
type BucketObject struct {
// contains filtered or unexported fields
}
Creates a new object inside an existing bucket in Google cloud storage service (GCS). [ACLs](https://cloud.google.com/storage/docs/access-control/lists) can be applied using the `storage.ObjectACL` resource.
For more information see
[the official documentation](https://cloud.google.com/storage/docs/key-terms#objects) and [API](https://cloud.google.com/storage/docs/json_api/v1/objects).
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_bucket_object.html.markdown.
func GetBucketObject ¶
func GetBucketObject(ctx *pulumi.Context, name string, id pulumi.ID, state *BucketObjectState, opts ...pulumi.ResourceOpt) (*BucketObject, error)
GetBucketObject gets an existing BucketObject resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewBucketObject ¶
func NewBucketObject(ctx *pulumi.Context, name string, args *BucketObjectArgs, opts ...pulumi.ResourceOpt) (*BucketObject, error)
NewBucketObject registers a new resource with the given unique name, arguments, and options.
func (*BucketObject) Bucket ¶
func (r *BucketObject) Bucket() *pulumi.StringOutput
The name of the containing bucket.
func (*BucketObject) CacheControl ¶
func (r *BucketObject) CacheControl() *pulumi.StringOutput
[Cache-Control](https://tools.ietf.org/html/rfc7234#section-5.2) directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600
func (*BucketObject) Content ¶
func (r *BucketObject) Content() *pulumi.StringOutput
Data as `string` to be uploaded. Must be defined if `source` is not. **Note**: The `content` field is marked as sensitive. To view the raw contents of the object, please define an [output](https://www.terraform.io/docs/configuration/outputs.html).
func (*BucketObject) ContentDisposition ¶
func (r *BucketObject) ContentDisposition() *pulumi.StringOutput
[Content-Disposition](https://tools.ietf.org/html/rfc6266) of the object data.
func (*BucketObject) ContentEncoding ¶
func (r *BucketObject) ContentEncoding() *pulumi.StringOutput
[Content-Encoding](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) of the object data.
func (*BucketObject) ContentLanguage ¶
func (r *BucketObject) ContentLanguage() *pulumi.StringOutput
[Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object data.
func (*BucketObject) ContentType ¶
func (r *BucketObject) ContentType() *pulumi.StringOutput
[Content-Type](https://tools.ietf.org/html/rfc7231#section-3.1.1.5) of the object data. Defaults to "application/octet-stream" or "text/plain; charset=utf-8".
func (*BucketObject) Crc32c ¶
func (r *BucketObject) Crc32c() *pulumi.StringOutput
(Computed) Base 64 CRC32 hash of the uploaded data.
func (*BucketObject) DetectMd5hash ¶
func (r *BucketObject) DetectMd5hash() *pulumi.StringOutput
func (*BucketObject) ID ¶
func (r *BucketObject) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*BucketObject) Md5hash ¶
func (r *BucketObject) Md5hash() *pulumi.StringOutput
(Computed) Base 64 MD5 hash of the uploaded data.
func (*BucketObject) Name ¶
func (r *BucketObject) Name() *pulumi.StringOutput
The name of the object. If you're interpolating the name of this object, see `outputName` instead.
func (*BucketObject) OutputName ¶ added in v0.18.0
func (r *BucketObject) OutputName() *pulumi.StringOutput
(Computed) The name of the object. Use this field in interpolations with `storage.ObjectACL` to recreate `storage.ObjectACL` resources when your `storage.BucketObject` is recreated.
func (*BucketObject) SelfLink ¶ added in v0.18.0
func (r *BucketObject) SelfLink() *pulumi.StringOutput
(Computed) A url reference to this object.
func (*BucketObject) Source ¶
func (r *BucketObject) Source() *pulumi.StringOutput
A path to the data you want to upload. Must be defined if `content` is not.
func (*BucketObject) StorageClass ¶
func (r *BucketObject) StorageClass() *pulumi.StringOutput
The [StorageClass](https://cloud.google.com/storage/docs/storage-classes) of the new bucket object. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`. If not provided, this defaults to the bucket's default storage class or to a [standard](https://cloud.google.com/storage/docs/storage-classes#standard) class.
func (*BucketObject) URN ¶
func (r *BucketObject) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type BucketObjectArgs ¶
type BucketObjectArgs struct { // The name of the containing bucket. Bucket interface{} // [Cache-Control](https://tools.ietf.org/html/rfc7234#section-5.2) // directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600 CacheControl interface{} // Data as `string` to be uploaded. Must be defined if `source` is not. **Note**: The `content` field is marked as sensitive. To view the raw contents of the object, please define an [output](https://www.terraform.io/docs/configuration/outputs.html). Content interface{} // [Content-Disposition](https://tools.ietf.org/html/rfc6266) of the object data. ContentDisposition interface{} // [Content-Encoding](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) of the object data. ContentEncoding interface{} // [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object data. ContentLanguage interface{} // [Content-Type](https://tools.ietf.org/html/rfc7231#section-3.1.1.5) of the object data. Defaults to "application/octet-stream" or "text/plain; charset=utf-8". ContentType interface{} DetectMd5hash interface{} // The name of the object. If you're interpolating the name of this object, see `outputName` instead. Name interface{} // A path to the data you want to upload. Must be defined // if `content` is not. Source interface{} // The [StorageClass](https://cloud.google.com/storage/docs/storage-classes) of the new bucket object. // Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`. If not provided, this defaults to the bucket's default // storage class or to a [standard](https://cloud.google.com/storage/docs/storage-classes#standard) class. StorageClass interface{} }
The set of arguments for constructing a BucketObject resource.
type BucketObjectState ¶
type BucketObjectState struct { // The name of the containing bucket. Bucket interface{} // [Cache-Control](https://tools.ietf.org/html/rfc7234#section-5.2) // directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600 CacheControl interface{} // Data as `string` to be uploaded. Must be defined if `source` is not. **Note**: The `content` field is marked as sensitive. To view the raw contents of the object, please define an [output](https://www.terraform.io/docs/configuration/outputs.html). Content interface{} // [Content-Disposition](https://tools.ietf.org/html/rfc6266) of the object data. ContentDisposition interface{} // [Content-Encoding](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) of the object data. ContentEncoding interface{} // [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object data. ContentLanguage interface{} // [Content-Type](https://tools.ietf.org/html/rfc7231#section-3.1.1.5) of the object data. Defaults to "application/octet-stream" or "text/plain; charset=utf-8". ContentType interface{} // (Computed) Base 64 CRC32 hash of the uploaded data. Crc32c interface{} DetectMd5hash interface{} // (Computed) Base 64 MD5 hash of the uploaded data. Md5hash interface{} // The name of the object. If you're interpolating the name of this object, see `outputName` instead. Name interface{} // (Computed) The name of the object. Use this field in interpolations with `storage.ObjectACL` to recreate // `storage.ObjectACL` resources when your `storage.BucketObject` is recreated. OutputName interface{} // (Computed) A url reference to this object. SelfLink interface{} // A path to the data you want to upload. Must be defined // if `content` is not. Source interface{} // The [StorageClass](https://cloud.google.com/storage/docs/storage-classes) of the new bucket object. // Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`. If not provided, this defaults to the bucket's default // storage class or to a [standard](https://cloud.google.com/storage/docs/storage-classes#standard) class. StorageClass interface{} }
Input properties used for looking up and filtering BucketObject resources.
type BucketState ¶
type BucketState struct { // Enables [Bucket Policy Only](https://cloud.google.com/storage/docs/bucket-policy-only) access to a bucket. BucketPolicyOnly interface{} // The bucket's [Cross-Origin Resource Sharing (CORS)](https://www.w3.org/TR/cors/) configuration. Multiple blocks of this type are permitted. Structure is documented below. Cors interface{} // The bucket's encryption configuration. Encryption interface{} // When deleting a bucket, this // boolean option will delete all contained objects. If you try to delete a // bucket that contains objects, this provider will fail that run. ForceDestroy interface{} // A set of key/value label pairs to assign to the bucket. Labels interface{} // The bucket's [Lifecycle Rules](https://cloud.google.com/storage/docs/lifecycle#configuration) configuration. Multiple blocks of this type are permitted. Structure is documented below. LifecycleRules interface{} // The [GCS location](https://cloud.google.com/storage/docs/bucket-locations) Location interface{} // The bucket's [Access & Storage Logs](https://cloud.google.com/storage/docs/access-logs) configuration. Logging interface{} // The name of the bucket. Name interface{} // The ID of the project in which the resource belongs. If it // is not provided, the provider project is used. Project interface{} // Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket. RequesterPays interface{} // Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below. RetentionPolicy interface{} // The URI of the created resource. SelfLink interface{} // The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`. StorageClass interface{} // The base URL of the bucket, in the format `gs://<bucket-name>`. Url interface{} // The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration. Versioning interface{} // Configuration if the bucket acts as a website. Structure is documented below. Website interface{} }
Input properties used for looking up and filtering Bucket resources.
type DefaultObjectACL ¶
type DefaultObjectACL struct {
// contains filtered or unexported fields
}
Authoritatively manages the default object ACLs for a Google Cloud Storage bucket without managing the bucket itself.
> Note that for each object, its creator will have the `"OWNER"` role in addition to the default ACL that has been defined.
For more information see [the official documentation](https://cloud.google.com/storage/docs/access-control/lists) and [API](https://cloud.google.com/storage/docs/json_api/v1/defaultObjectAccessControls).
> Want fine-grained control over default object ACLs? Use `storage.DefaultObjectAccessControl` to control individual role entity pairs.
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_default_object_acl.html.markdown.
func GetDefaultObjectACL ¶
func GetDefaultObjectACL(ctx *pulumi.Context, name string, id pulumi.ID, state *DefaultObjectACLState, opts ...pulumi.ResourceOpt) (*DefaultObjectACL, error)
GetDefaultObjectACL gets an existing DefaultObjectACL resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewDefaultObjectACL ¶
func NewDefaultObjectACL(ctx *pulumi.Context, name string, args *DefaultObjectACLArgs, opts ...pulumi.ResourceOpt) (*DefaultObjectACL, error)
NewDefaultObjectACL registers a new resource with the given unique name, arguments, and options.
func (*DefaultObjectACL) Bucket ¶
func (r *DefaultObjectACL) Bucket() *pulumi.StringOutput
The name of the bucket it applies to.
func (*DefaultObjectACL) ID ¶
func (r *DefaultObjectACL) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*DefaultObjectACL) RoleEntities ¶
func (r *DefaultObjectACL) RoleEntities() *pulumi.ArrayOutput
List of role/entity pairs in the form `ROLE:entity`. See [GCS Object ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls) for more details. Omitting the field is the same as providing an empty list.
func (*DefaultObjectACL) URN ¶
func (r *DefaultObjectACL) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type DefaultObjectACLArgs ¶
type DefaultObjectACLArgs struct { // The name of the bucket it applies to. Bucket interface{} // List of role/entity pairs in the form `ROLE:entity`. // See [GCS Object ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls) for more details. // Omitting the field is the same as providing an empty list. RoleEntities interface{} }
The set of arguments for constructing a DefaultObjectACL resource.
type DefaultObjectACLState ¶
type DefaultObjectACLState struct { // The name of the bucket it applies to. Bucket interface{} // List of role/entity pairs in the form `ROLE:entity`. // See [GCS Object ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls) for more details. // Omitting the field is the same as providing an empty list. RoleEntities interface{} }
Input properties used for looking up and filtering DefaultObjectACL resources.
type DefaultObjectAccessControl ¶ added in v0.16.4
type DefaultObjectAccessControl struct {
// contains filtered or unexported fields
}
The DefaultObjectAccessControls resources represent the Access Control Lists (ACLs) applied to a new object within a Google Cloud Storage bucket when no ACL was provided for that object. ACLs let you specify who has access to your bucket contents and to what extent.
There are two roles that can be assigned to an entity:
READERs can get an object, though the acl property will not be revealed. OWNERs are READERs, and they can get the acl property, update an object, and call all objectAccessControls methods on the object. The owner of an object is always an OWNER. For more information, see Access Control, with the caveat that this API uses READER and OWNER instead of READ and FULL_CONTROL.
To get more information about DefaultObjectAccessControl, see:
* [API documentation](https://cloud.google.com/storage/docs/json_api/v1/defaultObjectAccessControls) * How-to Guides
- [Official Documentation](https://cloud.google.com/storage/docs/access-control/create-manage-lists)
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_default_object_access_control.html.markdown.
func GetDefaultObjectAccessControl ¶ added in v0.16.4
func GetDefaultObjectAccessControl(ctx *pulumi.Context, name string, id pulumi.ID, state *DefaultObjectAccessControlState, opts ...pulumi.ResourceOpt) (*DefaultObjectAccessControl, error)
GetDefaultObjectAccessControl gets an existing DefaultObjectAccessControl resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewDefaultObjectAccessControl ¶ added in v0.16.4
func NewDefaultObjectAccessControl(ctx *pulumi.Context, name string, args *DefaultObjectAccessControlArgs, opts ...pulumi.ResourceOpt) (*DefaultObjectAccessControl, error)
NewDefaultObjectAccessControl registers a new resource with the given unique name, arguments, and options.
func (*DefaultObjectAccessControl) Bucket ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) Bucket() *pulumi.StringOutput
func (*DefaultObjectAccessControl) Domain ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) Domain() *pulumi.StringOutput
func (*DefaultObjectAccessControl) Email ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) Email() *pulumi.StringOutput
func (*DefaultObjectAccessControl) Entity ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) Entity() *pulumi.StringOutput
func (*DefaultObjectAccessControl) EntityId ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) EntityId() *pulumi.StringOutput
func (*DefaultObjectAccessControl) Generation ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) Generation() *pulumi.IntOutput
func (*DefaultObjectAccessControl) ID ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*DefaultObjectAccessControl) Object ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) Object() *pulumi.StringOutput
func (*DefaultObjectAccessControl) ProjectTeam ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) ProjectTeam() *pulumi.Output
func (*DefaultObjectAccessControl) Role ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) Role() *pulumi.StringOutput
func (*DefaultObjectAccessControl) URN ¶ added in v0.16.4
func (r *DefaultObjectAccessControl) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type DefaultObjectAccessControlArgs ¶ added in v0.16.4
type DefaultObjectAccessControlArgs struct { Bucket interface{} Entity interface{} Object interface{} Role interface{} }
The set of arguments for constructing a DefaultObjectAccessControl resource.
type DefaultObjectAccessControlState ¶ added in v0.16.4
type DefaultObjectAccessControlState struct { Bucket interface{} Domain interface{} Email interface{} Entity interface{} EntityId interface{} Generation interface{} Object interface{} ProjectTeam interface{} Role interface{} }
Input properties used for looking up and filtering DefaultObjectAccessControl resources.
type GetBucketObjectArgs ¶ added in v0.18.0
type GetBucketObjectArgs struct { // The name of the containing bucket. Bucket interface{} // The name of the object. Name interface{} }
A collection of arguments for invoking getBucketObject.
type GetBucketObjectResult ¶ added in v0.18.0
type GetBucketObjectResult struct { Bucket interface{} // (Computed) [Cache-Control](https://tools.ietf.org/html/rfc7234#section-5.2) // directive to specify caching behavior of object data. If omitted and object is accessible to all anonymous users, the default will be public, max-age=3600 CacheControl interface{} Content interface{} // (Computed) [Content-Disposition](https://tools.ietf.org/html/rfc6266) of the object data. ContentDisposition interface{} // (Computed) [Content-Encoding](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) of the object data. ContentEncoding interface{} // (Computed) [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object data. ContentLanguage interface{} // (Computed) [Content-Type](https://tools.ietf.org/html/rfc7231#section-3.1.1.5) of the object data. Defaults to "application/octet-stream" or "text/plain; charset=utf-8". ContentType interface{} // (Computed) Base 64 CRC32 hash of the uploaded data. Crc32c interface{} DetectMd5hash interface{} // (Computed) Base 64 MD5 hash of the uploaded data. Md5hash interface{} Name interface{} OutputName interface{} PredefinedAcl interface{} // (Computed) A url reference to this object. SelfLink interface{} Source interface{} // (Computed) The [StorageClass](https://cloud.google.com/storage/docs/storage-classes) of the new bucket object. // Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`. If not provided, this defaults to the bucket's default // storage class or to a [standard](https://cloud.google.com/storage/docs/storage-classes#standard) class. StorageClass interface{} // id is the provider-assigned unique ID for this managed resource. Id interface{} }
A collection of values returned by getBucketObject.
func LookupBucketObject ¶ added in v0.18.0
func LookupBucketObject(ctx *pulumi.Context, args *GetBucketObjectArgs) (*GetBucketObjectResult, error)
Gets an existing object inside an existing bucket in Google Cloud Storage service (GCS). See [the official documentation](https://cloud.google.com/storage/docs/key-terms#objects) and [API](https://cloud.google.com/storage/docs/json_api/v1/objects).
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/d/storage_bucket_object.html.markdown.
type GetObjectSignedUrlArgs ¶
type GetObjectSignedUrlArgs struct { // The name of the bucket to read the object from Bucket interface{} // The [MD5 digest](https://cloud.google.com/storage/docs/hashes-etags#_MD5) value in Base64. // Typically retrieved from `google_storage_bucket_object.object.md5hash` attribute. // If you provide this in the datasource, the client (e.g. browser, curl) must provide the `Content-MD5` HTTP header with this same value in its request. ContentMd5 interface{} // If you specify this in the datasource, the client must provide the `Content-Type` HTTP header with the same value in its request. ContentType interface{} // What Google service account credentials json should be used to sign the URL. // This data source checks the following locations for credentials, in order of preference: data source `credentials` attribute, provider `credentials` attribute and finally the GOOGLE_APPLICATION_CREDENTIALS environment variable. Credentials interface{} // For how long shall the signed URL be valid (defaults to 1 hour - i.e. `1h`). // See [here](https://golang.org/pkg/time/#ParseDuration) for info on valid duration formats. Duration interface{} // As needed. The server checks to make sure that the client provides matching values in requests using the signed URL. // Any header starting with `x-goog-` is accepted but see the [Google Docs](https://cloud.google.com/storage/docs/xml-api/reference-headers) for list of headers that are supported by Google. ExtensionHeaders interface{} // What HTTP Method will the signed URL allow (defaults to `GET`) HttpMethod interface{} // The full path to the object inside the bucket Path interface{} }
A collection of arguments for invoking getObjectSignedUrl.
type GetObjectSignedUrlResult ¶
type GetObjectSignedUrlResult struct { Bucket interface{} ContentMd5 interface{} ContentType interface{} Credentials interface{} Duration interface{} ExtensionHeaders interface{} HttpMethod interface{} Path interface{} // The signed URL that can be used to access the storage object without authentication. SignedUrl interface{} // id is the provider-assigned unique ID for this managed resource. Id interface{} }
A collection of values returned by getObjectSignedUrl.
func LookupObjectSignedUrl ¶
func LookupObjectSignedUrl(ctx *pulumi.Context, args *GetObjectSignedUrlArgs) (*GetObjectSignedUrlResult, error)
The Google Cloud storage signed URL data source generates a signed URL for a given storage object. Signed URLs provide a way to give time-limited read or write access to anyone in possession of the URL, regardless of whether they have a Google account.
For more info about signed URL's is available [here](https://cloud.google.com/storage/docs/access-control/signed-urls).
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/d/storage_object_signed_url.html.markdown.
type GetProjectServiceAccountArgs ¶ added in v0.15.0
type GetProjectServiceAccountArgs struct { // The project the unique service account was created for. If it is not provided, the provider project is used. Project interface{} // The project the lookup originates from. This field is used if you are making the request // from a different account than the one you are finding the service account for. UserProject interface{} }
A collection of arguments for invoking getProjectServiceAccount.
type GetProjectServiceAccountResult ¶ added in v0.14.1
type GetProjectServiceAccountResult struct { // The email address of the service account. This value is often used to refer to the service account // in order to grant IAM permissions. EmailAddress interface{} Project interface{} UserProject interface{} // id is the provider-assigned unique ID for this managed resource. Id interface{} }
A collection of values returned by getProjectServiceAccount.
func LookupProjectServiceAccount ¶
func LookupProjectServiceAccount(ctx *pulumi.Context, args *GetProjectServiceAccountArgs) (*GetProjectServiceAccountResult, error)
Get the email address of a project's unique Google Cloud Storage service account.
Each Google Cloud project has a unique service account for use with Google Cloud Storage. Only this special service account can be used to set up `storage.Notification` resources.
For more information see [the API reference](https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount).
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/d/storage_project_service_account.html.markdown.
type GetTransferProjectServieAccountArgs ¶ added in v0.18.0
type GetTransferProjectServieAccountArgs struct {
// The project ID. If it is not provided, the provider project is used.
Project interface{}
}
A collection of arguments for invoking getTransferProjectServieAccount.
type GetTransferProjectServieAccountResult ¶ added in v0.18.0
type GetTransferProjectServieAccountResult struct { // Email address of the default service account used by Storage Transfer Jobs running in this project Email interface{} Project interface{} // id is the provider-assigned unique ID for this managed resource. Id interface{} }
A collection of values returned by getTransferProjectServieAccount.
func LookupTransferProjectServieAccount ¶ added in v0.18.0
func LookupTransferProjectServieAccount(ctx *pulumi.Context, args *GetTransferProjectServieAccountArgs) (*GetTransferProjectServieAccountResult, error)
Use this data source to retrieve Storage Transfer service account for this project
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/d/storage_transfer_project_service_account.html.markdown.
type Notification ¶
type Notification struct {
// contains filtered or unexported fields
}
Creates a new notification configuration on a specified bucket, establishing a flow of event notifications from GCS to a Cloud Pub/Sub topic.
For more information see
[the official documentation](https://cloud.google.com/storage/docs/pubsub-notifications) and [API](https://cloud.google.com/storage/docs/json_api/v1/notifications).
In order to enable notifications, a special Google Cloud Storage service account unique to the project must have the IAM permission "projects.topics.publish" for a Cloud Pub/Sub topic in the project. To get the service account's email address, use the `storage.getProjectServiceAccount` datasource's `emailAddress` value, and see below for an example of enabling notifications by granting the correct IAM permission. See [the notifications documentation](https://cloud.google.com/storage/docs/gsutil/commands/notification) for more details.
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_notification.html.markdown.
func GetNotification ¶
func GetNotification(ctx *pulumi.Context, name string, id pulumi.ID, state *NotificationState, opts ...pulumi.ResourceOpt) (*Notification, error)
GetNotification gets an existing Notification resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewNotification ¶
func NewNotification(ctx *pulumi.Context, name string, args *NotificationArgs, opts ...pulumi.ResourceOpt) (*Notification, error)
NewNotification registers a new resource with the given unique name, arguments, and options.
func (*Notification) Bucket ¶
func (r *Notification) Bucket() *pulumi.StringOutput
The name of the bucket.
func (*Notification) CustomAttributes ¶
func (r *Notification) CustomAttributes() *pulumi.MapOutput
A set of key/value attribute pairs to attach to each Cloud PubSub message published for this notification subscription
func (*Notification) EventTypes ¶
func (r *Notification) EventTypes() *pulumi.ArrayOutput
List of event type filters for this notification config. If not specified, Cloud Storage will send notifications for all event types. The valid types are: `"OBJECT_FINALIZE"`, `"OBJECT_METADATA_UPDATE"`, `"OBJECT_DELETE"`, `"OBJECT_ARCHIVE"`
func (*Notification) ID ¶
func (r *Notification) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*Notification) ObjectNamePrefix ¶
func (r *Notification) ObjectNamePrefix() *pulumi.StringOutput
Specifies a prefix path filter for this notification config. Cloud Storage will only send notifications for objects in this bucket whose names begin with the specified prefix.
func (*Notification) PayloadFormat ¶
func (r *Notification) PayloadFormat() *pulumi.StringOutput
The desired content of the Payload. One of `"JSON_API_V1"` or `"NONE"`.
func (*Notification) SelfLink ¶
func (r *Notification) SelfLink() *pulumi.StringOutput
The URI of the created resource.
func (*Notification) Topic ¶
func (r *Notification) Topic() *pulumi.StringOutput
The Cloud PubSub topic to which this subscription publishes. Expects either the topic name, assumed to belong to the default GCP provider project, or the project-level name, i.e. `projects/my-gcp-project/topics/my-topic` or `my-topic`.
func (*Notification) URN ¶
func (r *Notification) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type NotificationArgs ¶
type NotificationArgs struct { // The name of the bucket. Bucket interface{} // A set of key/value attribute pairs to attach to each Cloud PubSub message published for this notification subscription CustomAttributes interface{} // List of event type filters for this notification config. If not specified, Cloud Storage will send notifications for all event types. The valid types are: `"OBJECT_FINALIZE"`, `"OBJECT_METADATA_UPDATE"`, `"OBJECT_DELETE"`, `"OBJECT_ARCHIVE"` EventTypes interface{} // Specifies a prefix path filter for this notification config. Cloud Storage will only send notifications for objects in this bucket whose names begin with the specified prefix. ObjectNamePrefix interface{} // The desired content of the Payload. One of `"JSON_API_V1"` or `"NONE"`. PayloadFormat interface{} // The Cloud PubSub topic to which this subscription publishes. Expects either the // topic name, assumed to belong to the default GCP provider project, or the project-level name, // i.e. `projects/my-gcp-project/topics/my-topic` or `my-topic`. Topic interface{} }
The set of arguments for constructing a Notification resource.
type NotificationState ¶
type NotificationState struct { // The name of the bucket. Bucket interface{} // A set of key/value attribute pairs to attach to each Cloud PubSub message published for this notification subscription CustomAttributes interface{} // List of event type filters for this notification config. If not specified, Cloud Storage will send notifications for all event types. The valid types are: `"OBJECT_FINALIZE"`, `"OBJECT_METADATA_UPDATE"`, `"OBJECT_DELETE"`, `"OBJECT_ARCHIVE"` EventTypes interface{} // Specifies a prefix path filter for this notification config. Cloud Storage will only send notifications for objects in this bucket whose names begin with the specified prefix. ObjectNamePrefix interface{} // The desired content of the Payload. One of `"JSON_API_V1"` or `"NONE"`. PayloadFormat interface{} // The URI of the created resource. SelfLink interface{} // The Cloud PubSub topic to which this subscription publishes. Expects either the // topic name, assumed to belong to the default GCP provider project, or the project-level name, // i.e. `projects/my-gcp-project/topics/my-topic` or `my-topic`. Topic interface{} }
Input properties used for looking up and filtering Notification resources.
type ObjectACL ¶
type ObjectACL struct {
// contains filtered or unexported fields
}
Authoritatively manages the access control list (ACL) for an object in a Google Cloud Storage (GCS) bucket. Removing a `storage.ObjectACL` sets the acl to the `private` [predefined ACL](https://cloud.google.com/storage/docs/access-control#predefined-acl).
For more information see [the official documentation](https://cloud.google.com/storage/docs/access-control/lists) and [API](https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls).
> Want fine-grained control over object ACLs? Use `storage.ObjectAccessControl` to control individual role entity pairs.
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_object_acl.html.markdown.
func GetObjectACL ¶
func GetObjectACL(ctx *pulumi.Context, name string, id pulumi.ID, state *ObjectACLState, opts ...pulumi.ResourceOpt) (*ObjectACL, error)
GetObjectACL gets an existing ObjectACL resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewObjectACL ¶
func NewObjectACL(ctx *pulumi.Context, name string, args *ObjectACLArgs, opts ...pulumi.ResourceOpt) (*ObjectACL, error)
NewObjectACL registers a new resource with the given unique name, arguments, and options.
func (*ObjectACL) Bucket ¶
func (r *ObjectACL) Bucket() *pulumi.StringOutput
The name of the bucket the object is stored in.
func (*ObjectACL) Object ¶
func (r *ObjectACL) Object() *pulumi.StringOutput
The name of the object to apply the acl to.
func (*ObjectACL) PredefinedAcl ¶
func (r *ObjectACL) PredefinedAcl() *pulumi.StringOutput
The "canned" [predefined ACL](https://cloud.google.com/storage/docs/access-control#predefined-acl) to apply. Must be set if `roleEntity` is not.
func (*ObjectACL) RoleEntities ¶
func (r *ObjectACL) RoleEntities() *pulumi.ArrayOutput
List of role/entity pairs in the form `ROLE:entity`. See [GCS Object ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls) for more details. Must be set if `predefinedAcl` is not.
type ObjectACLArgs ¶
type ObjectACLArgs struct { // The name of the bucket the object is stored in. Bucket interface{} // The name of the object to apply the acl to. Object interface{} // The "canned" [predefined ACL](https://cloud.google.com/storage/docs/access-control#predefined-acl) to apply. Must be set if `roleEntity` is not. PredefinedAcl interface{} // List of role/entity pairs in the form `ROLE:entity`. See [GCS Object ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls) for more details. // Must be set if `predefinedAcl` is not. RoleEntities interface{} }
The set of arguments for constructing a ObjectACL resource.
type ObjectACLState ¶
type ObjectACLState struct { // The name of the bucket the object is stored in. Bucket interface{} // The name of the object to apply the acl to. Object interface{} // The "canned" [predefined ACL](https://cloud.google.com/storage/docs/access-control#predefined-acl) to apply. Must be set if `roleEntity` is not. PredefinedAcl interface{} // List of role/entity pairs in the form `ROLE:entity`. See [GCS Object ACL documentation](https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls) for more details. // Must be set if `predefinedAcl` is not. RoleEntities interface{} }
Input properties used for looking up and filtering ObjectACL resources.
type ObjectAccessControl ¶ added in v0.16.4
type ObjectAccessControl struct {
// contains filtered or unexported fields
}
The ObjectAccessControls resources represent the Access Control Lists (ACLs) for objects within Google Cloud Storage. ACLs let you specify who has access to your data and to what extent.
There are two roles that can be assigned to an entity:
READERs can get an object, though the acl property will not be revealed. OWNERs are READERs, and they can get the acl property, update an object, and call all objectAccessControls methods on the object. The owner of an object is always an OWNER. For more information, see Access Control, with the caveat that this API uses READER and OWNER instead of READ and FULL_CONTROL.
To get more information about ObjectAccessControl, see:
* [API documentation](https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls) * How-to Guides
- [Official Documentation](https://cloud.google.com/storage/docs/access-control/create-manage-lists)
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_object_access_control.html.markdown.
func GetObjectAccessControl ¶ added in v0.16.4
func GetObjectAccessControl(ctx *pulumi.Context, name string, id pulumi.ID, state *ObjectAccessControlState, opts ...pulumi.ResourceOpt) (*ObjectAccessControl, error)
GetObjectAccessControl gets an existing ObjectAccessControl resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewObjectAccessControl ¶ added in v0.16.4
func NewObjectAccessControl(ctx *pulumi.Context, name string, args *ObjectAccessControlArgs, opts ...pulumi.ResourceOpt) (*ObjectAccessControl, error)
NewObjectAccessControl registers a new resource with the given unique name, arguments, and options.
func (*ObjectAccessControl) Bucket ¶ added in v0.16.4
func (r *ObjectAccessControl) Bucket() *pulumi.StringOutput
func (*ObjectAccessControl) Domain ¶ added in v0.16.4
func (r *ObjectAccessControl) Domain() *pulumi.StringOutput
func (*ObjectAccessControl) Email ¶ added in v0.16.4
func (r *ObjectAccessControl) Email() *pulumi.StringOutput
func (*ObjectAccessControl) Entity ¶ added in v0.16.4
func (r *ObjectAccessControl) Entity() *pulumi.StringOutput
func (*ObjectAccessControl) EntityId ¶ added in v0.16.4
func (r *ObjectAccessControl) EntityId() *pulumi.StringOutput
func (*ObjectAccessControl) Generation ¶ added in v0.16.4
func (r *ObjectAccessControl) Generation() *pulumi.IntOutput
func (*ObjectAccessControl) ID ¶ added in v0.16.4
func (r *ObjectAccessControl) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*ObjectAccessControl) Object ¶ added in v0.16.4
func (r *ObjectAccessControl) Object() *pulumi.StringOutput
func (*ObjectAccessControl) ProjectTeam ¶ added in v0.16.4
func (r *ObjectAccessControl) ProjectTeam() *pulumi.Output
func (*ObjectAccessControl) Role ¶ added in v0.16.4
func (r *ObjectAccessControl) Role() *pulumi.StringOutput
func (*ObjectAccessControl) URN ¶ added in v0.16.4
func (r *ObjectAccessControl) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type ObjectAccessControlArgs ¶ added in v0.16.4
type ObjectAccessControlArgs struct { Bucket interface{} Entity interface{} Object interface{} Role interface{} }
The set of arguments for constructing a ObjectAccessControl resource.
type ObjectAccessControlState ¶ added in v0.16.4
type ObjectAccessControlState struct { Bucket interface{} Domain interface{} Email interface{} Entity interface{} EntityId interface{} Generation interface{} Object interface{} ProjectTeam interface{} Role interface{} }
Input properties used for looking up and filtering ObjectAccessControl resources.
type TransferJob ¶ added in v0.18.0
type TransferJob struct {
// contains filtered or unexported fields
}
Creates a new Transfer Job in Google Cloud Storage Transfer.
To get more information about Google Cloud Storage Transfer, see:
* [Overview](https://cloud.google.com/storage-transfer/docs/overview) * [API documentation](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/transferJobs#TransferJob) * How-to Guides
- [Configuring Access to Data Sources and Sinks](https://cloud.google.com/storage-transfer/docs/configure-access)
> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/storage_transfer_job.html.markdown.
func GetTransferJob ¶ added in v0.18.0
func GetTransferJob(ctx *pulumi.Context, name string, id pulumi.ID, state *TransferJobState, opts ...pulumi.ResourceOpt) (*TransferJob, error)
GetTransferJob gets an existing TransferJob resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).
func NewTransferJob ¶ added in v0.18.0
func NewTransferJob(ctx *pulumi.Context, name string, args *TransferJobArgs, opts ...pulumi.ResourceOpt) (*TransferJob, error)
NewTransferJob registers a new resource with the given unique name, arguments, and options.
func (*TransferJob) CreationTime ¶ added in v0.18.0
func (r *TransferJob) CreationTime() *pulumi.StringOutput
When the Transfer Job was created.
func (*TransferJob) DeletionTime ¶ added in v0.18.0
func (r *TransferJob) DeletionTime() *pulumi.StringOutput
When the Transfer Job was deleted.
func (*TransferJob) Description ¶ added in v0.18.0
func (r *TransferJob) Description() *pulumi.StringOutput
Unique description to identify the Transfer Job.
func (*TransferJob) ID ¶ added in v0.18.0
func (r *TransferJob) ID() *pulumi.IDOutput
ID is this resource's unique identifier assigned by its provider.
func (*TransferJob) LastModificationTime ¶ added in v0.18.0
func (r *TransferJob) LastModificationTime() *pulumi.StringOutput
When the Transfer Job was last modified.
func (*TransferJob) Name ¶ added in v0.18.0
func (r *TransferJob) Name() *pulumi.StringOutput
The name of the Transfer Job.
func (*TransferJob) Project ¶ added in v0.18.0
func (r *TransferJob) Project() *pulumi.StringOutput
The project in which the resource belongs. If it is not provided, the provider project is used.
func (*TransferJob) Schedule ¶ added in v0.18.0
func (r *TransferJob) Schedule() *pulumi.Output
Schedule specification defining when the Transfer Job should be scheduled to start, end and and what time to run. Structure documented below.
func (*TransferJob) Status ¶ added in v0.18.0
func (r *TransferJob) Status() *pulumi.StringOutput
Status of the job. Default: `ENABLED`. **NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.**
func (*TransferJob) TransferSpec ¶ added in v0.18.0
func (r *TransferJob) TransferSpec() *pulumi.Output
Transfer specification. Structure documented below.
func (*TransferJob) URN ¶ added in v0.18.0
func (r *TransferJob) URN() *pulumi.URNOutput
URN is this resource's unique name assigned by Pulumi.
type TransferJobArgs ¶ added in v0.18.0
type TransferJobArgs struct { // Unique description to identify the Transfer Job. Description interface{} // The project in which the resource belongs. If it // is not provided, the provider project is used. Project interface{} // Schedule specification defining when the Transfer Job should be scheduled to start, end and and what time to run. Structure documented below. Schedule interface{} // Status of the job. Default: `ENABLED`. **NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.** Status interface{} // Transfer specification. Structure documented below. TransferSpec interface{} }
The set of arguments for constructing a TransferJob resource.
type TransferJobState ¶ added in v0.18.0
type TransferJobState struct { // When the Transfer Job was created. CreationTime interface{} // When the Transfer Job was deleted. DeletionTime interface{} // Unique description to identify the Transfer Job. Description interface{} // When the Transfer Job was last modified. LastModificationTime interface{} // The name of the Transfer Job. Name interface{} // The project in which the resource belongs. If it // is not provided, the provider project is used. Project interface{} // Schedule specification defining when the Transfer Job should be scheduled to start, end and and what time to run. Structure documented below. Schedule interface{} // Status of the job. Default: `ENABLED`. **NOTE: The effect of the new job status takes place during a subsequent job run. For example, if you change the job status from ENABLED to DISABLED, and an operation spawned by the transfer is running, the status change would not affect the current operation.** Status interface{} // Transfer specification. Structure documented below. TransferSpec interface{} }
Input properties used for looking up and filtering TransferJob resources.
Source Files
¶
- bucket.go
- bucketACL.go
- bucketIAMBinding.go
- bucketIAMMember.go
- bucketIAMPolicy.go
- bucketObject.go
- defaultObjectACL.go
- defaultObjectAccessControl.go
- getBucketObject.go
- getObjectSignedUrl.go
- getProjectServiceAccount.go
- getTransferProjectServieAccount.go
- notification.go
- objectACL.go
- objectAccessControl.go
- storage.go
- transferJob.go