storage

package
v4.21.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bucket

type Bucket struct {
	pulumi.CustomResourceState

	// Enables [Bucket Policy Only](https://cloud.google.com/storage/docs/bucket-policy-only) access to a bucket. This field will be removed in the next major release of the provider.
	//
	// Deprecated: Please use the uniform_bucket_level_access as this field has been renamed by Google.
	BucketPolicyOnly pulumi.BoolOutput `pulumi:"bucketPolicyOnly"`
	// 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                  BucketCorArrayOutput `pulumi:"cors"`
	DefaultEventBasedHold pulumi.BoolPtrOutput `pulumi:"defaultEventBasedHold"`
	// The bucket's encryption configuration.
	Encryption BucketEncryptionPtrOutput `pulumi:"encryption"`
	// When deleting a bucket, this
	// boolean option will delete all contained objects. If you try to delete a
	// bucket that contains objects, the provider will fail that run.
	ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"`
	// A map of key/value label pairs to assign to the bucket.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// 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 BucketLifecycleRuleArrayOutput `pulumi:"lifecycleRules"`
	// The [GCS location](https://cloud.google.com/storage/docs/bucket-locations)
	Location pulumi.StringPtrOutput `pulumi:"location"`
	// The bucket's [Access & Storage Logs](https://cloud.google.com/storage/docs/access-logs) configuration.
	Logging BucketLoggingPtrOutput `pulumi:"logging"`
	// The name of the bucket.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket.
	RequesterPays pulumi.BoolPtrOutput `pulumi:"requesterPays"`
	// Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
	RetentionPolicy BucketRetentionPolicyPtrOutput `pulumi:"retentionPolicy"`
	// The URI of the created resource.
	SelfLink pulumi.StringOutput `pulumi:"selfLink"`
	// The target [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects affected by this Lifecycle Rule. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
	StorageClass pulumi.StringPtrOutput `pulumi:"storageClass"`
	// Enables [Uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) access to a bucket.
	UniformBucketLevelAccess pulumi.BoolOutput `pulumi:"uniformBucketLevelAccess"`
	// The base URL of the bucket, in the format `gs://<bucket-name>`.
	Url pulumi.StringOutput `pulumi:"url"`
	// The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration.
	Versioning BucketVersioningPtrOutput `pulumi:"versioning"`
	// Configuration if the bucket acts as a website. Structure is documented below.
	Website BucketWebsitePtrOutput `pulumi:"website"`
}

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`](https://www.terraform.io/docs/providers/google/r/storage_bucket_acl.html) resource.

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.

## Example Usage ### Creating A Private Bucket In Standard Storage, In The EU Region. Bucket Configured As Static Website And CORS Configurations

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucket(ctx, "static_site", &storage.BucketArgs{
			Cors: storage.BucketCorArray{
				&storage.BucketCorArgs{
					MaxAgeSeconds: pulumi.Int(3600),
					Methods: pulumi.StringArray{
						pulumi.String("GET"),
						pulumi.String("HEAD"),
						pulumi.String("PUT"),
						pulumi.String("POST"),
						pulumi.String("DELETE"),
					},
					Origins: pulumi.StringArray{
						pulumi.String("http://image-store.com"),
					},
					ResponseHeaders: pulumi.StringArray{
						pulumi.String("*"),
					},
				},
			},
			ForceDestroy:             pulumi.Bool(true),
			Location:                 pulumi.String("EU"),
			UniformBucketLevelAccess: pulumi.Bool(true),
			Website: &storage.BucketWebsiteArgs{
				MainPageSuffix: pulumi.String("index.html"),
				NotFoundPage:   pulumi.String("404.html"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Life Cycle Settings For Storage Bucket Objects

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucket(ctx, "auto_expire", &storage.BucketArgs{
			ForceDestroy: pulumi.Bool(true),
			LifecycleRules: storage.BucketLifecycleRuleArray{
				&storage.BucketLifecycleRuleArgs{
					Action: &storage.BucketLifecycleRuleActionArgs{
						Type: pulumi.String("Delete"),
					},
					Condition: &storage.BucketLifecycleRuleConditionArgs{
						Age: pulumi.Int(3),
					},
				},
			},
			Location: pulumi.String("US"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Storage buckets can be imported using the `name` or

`project/name`. If the project is not passed to the import command it will be inferred from the provider block or environment variables. If it cannot be inferred it will be queried from the Compute API (this will fail if the API is not enabled). e.g.

```sh

$ pulumi import gcp:storage/bucket:Bucket image-store image-store-bucket

```

```sh

$ pulumi import gcp:storage/bucket:Bucket image-store tf-test-project/image-store-bucket

```

`false` in state. If you've set it to `true` in config, run `terraform apply` to update the value set in state. If you delete this resource before updating the value, objects in the bucket will not be destroyed.

func GetBucket

func GetBucket(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BucketState, opts ...pulumi.ResourceOption) (*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.ResourceOption) (*Bucket, error)

NewBucket registers a new resource with the given unique name, arguments, and options.

func (*Bucket) ElementType added in v4.4.0

func (*Bucket) ElementType() reflect.Type

func (*Bucket) ToBucketOutput added in v4.4.0

func (i *Bucket) ToBucketOutput() BucketOutput

func (*Bucket) ToBucketOutputWithContext added in v4.4.0

func (i *Bucket) ToBucketOutputWithContext(ctx context.Context) BucketOutput

func (*Bucket) ToBucketPtrOutput added in v4.11.1

func (i *Bucket) ToBucketPtrOutput() BucketPtrOutput

func (*Bucket) ToBucketPtrOutputWithContext added in v4.11.1

func (i *Bucket) ToBucketPtrOutputWithContext(ctx context.Context) BucketPtrOutput

type BucketACL

type BucketACL struct {
	pulumi.CustomResourceState

	// The name of the bucket it applies to.
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// Configure this ACL to be the default ACL.
	DefaultAcl pulumi.StringPtrOutput `pulumi:"defaultAcl"`
	// 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 pulumi.StringPtrOutput `pulumi:"predefinedAcl"`
	// 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 pulumi.StringArrayOutput `pulumi:"roleEntities"`
}

Authoritatively manages a bucket's ACLs 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).

Bucket ACLs can be managed non authoritatively using the `storageBucketAccessControl` resource. Do not use these two resources in conjunction to manage the same bucket.

Permissions can be granted either by ACLs or Cloud IAM policies. In general, permissions granted by Cloud IAM policies do not appear in ACLs, and permissions granted by ACLs do not appear in Cloud IAM policies. The only exception is for ACLs applied directly on a bucket and certain bucket-level Cloud IAM policies, as described in [Cloud IAM relation to ACLs](https://cloud.google.com/storage/docs/access-control/iam#acls).

**NOTE** This resource will not remove the `project-owners-<project_id>` entity from the `OWNER` role.

## Example Usage

Example creating an ACL on a bucket with one owner, and one reader.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucket(ctx, "image_store", &storage.BucketArgs{
			Location: pulumi.String("EU"),
		})
		if err != nil {
			return err
		}
		_, err = storage.NewBucketACL(ctx, "image_store_acl", &storage.BucketACLArgs{
			Bucket: image_store.Name,
			RoleEntities: pulumi.StringArray{
				pulumi.String("OWNER:user-my.email@gmail.com"),
				pulumi.String("READER:group-mygroup"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource does not support import.

func GetBucketACL

func GetBucketACL(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BucketACLState, opts ...pulumi.ResourceOption) (*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.ResourceOption) (*BucketACL, error)

NewBucketACL registers a new resource with the given unique name, arguments, and options.

func (*BucketACL) ElementType added in v4.4.0

func (*BucketACL) ElementType() reflect.Type

func (*BucketACL) ToBucketACLOutput added in v4.4.0

func (i *BucketACL) ToBucketACLOutput() BucketACLOutput

func (*BucketACL) ToBucketACLOutputWithContext added in v4.4.0

func (i *BucketACL) ToBucketACLOutputWithContext(ctx context.Context) BucketACLOutput

func (*BucketACL) ToBucketACLPtrOutput added in v4.11.1

func (i *BucketACL) ToBucketACLPtrOutput() BucketACLPtrOutput

func (*BucketACL) ToBucketACLPtrOutputWithContext added in v4.11.1

func (i *BucketACL) ToBucketACLPtrOutputWithContext(ctx context.Context) BucketACLPtrOutput

type BucketACLArgs

type BucketACLArgs struct {
	// The name of the bucket it applies to.
	Bucket pulumi.StringInput
	// Configure this ACL to be the default ACL.
	DefaultAcl pulumi.StringPtrInput
	// 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 pulumi.StringPtrInput
	// 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 pulumi.StringArrayInput
}

The set of arguments for constructing a BucketACL resource.

func (BucketACLArgs) ElementType

func (BucketACLArgs) ElementType() reflect.Type

type BucketACLArray added in v4.11.1

type BucketACLArray []BucketACLInput

func (BucketACLArray) ElementType added in v4.11.1

func (BucketACLArray) ElementType() reflect.Type

func (BucketACLArray) ToBucketACLArrayOutput added in v4.11.1

func (i BucketACLArray) ToBucketACLArrayOutput() BucketACLArrayOutput

func (BucketACLArray) ToBucketACLArrayOutputWithContext added in v4.11.1

func (i BucketACLArray) ToBucketACLArrayOutputWithContext(ctx context.Context) BucketACLArrayOutput

type BucketACLArrayInput added in v4.11.1

type BucketACLArrayInput interface {
	pulumi.Input

	ToBucketACLArrayOutput() BucketACLArrayOutput
	ToBucketACLArrayOutputWithContext(context.Context) BucketACLArrayOutput
}

BucketACLArrayInput is an input type that accepts BucketACLArray and BucketACLArrayOutput values. You can construct a concrete instance of `BucketACLArrayInput` via:

BucketACLArray{ BucketACLArgs{...} }

type BucketACLArrayOutput added in v4.11.1

type BucketACLArrayOutput struct{ *pulumi.OutputState }

func (BucketACLArrayOutput) ElementType added in v4.11.1

func (BucketACLArrayOutput) ElementType() reflect.Type

func (BucketACLArrayOutput) Index added in v4.11.1

func (BucketACLArrayOutput) ToBucketACLArrayOutput added in v4.11.1

func (o BucketACLArrayOutput) ToBucketACLArrayOutput() BucketACLArrayOutput

func (BucketACLArrayOutput) ToBucketACLArrayOutputWithContext added in v4.11.1

func (o BucketACLArrayOutput) ToBucketACLArrayOutputWithContext(ctx context.Context) BucketACLArrayOutput

type BucketACLInput added in v4.4.0

type BucketACLInput interface {
	pulumi.Input

	ToBucketACLOutput() BucketACLOutput
	ToBucketACLOutputWithContext(ctx context.Context) BucketACLOutput
}

type BucketACLMap added in v4.11.1

type BucketACLMap map[string]BucketACLInput

func (BucketACLMap) ElementType added in v4.11.1

func (BucketACLMap) ElementType() reflect.Type

func (BucketACLMap) ToBucketACLMapOutput added in v4.11.1

func (i BucketACLMap) ToBucketACLMapOutput() BucketACLMapOutput

func (BucketACLMap) ToBucketACLMapOutputWithContext added in v4.11.1

func (i BucketACLMap) ToBucketACLMapOutputWithContext(ctx context.Context) BucketACLMapOutput

type BucketACLMapInput added in v4.11.1

type BucketACLMapInput interface {
	pulumi.Input

	ToBucketACLMapOutput() BucketACLMapOutput
	ToBucketACLMapOutputWithContext(context.Context) BucketACLMapOutput
}

BucketACLMapInput is an input type that accepts BucketACLMap and BucketACLMapOutput values. You can construct a concrete instance of `BucketACLMapInput` via:

BucketACLMap{ "key": BucketACLArgs{...} }

type BucketACLMapOutput added in v4.11.1

type BucketACLMapOutput struct{ *pulumi.OutputState }

func (BucketACLMapOutput) ElementType added in v4.11.1

func (BucketACLMapOutput) ElementType() reflect.Type

func (BucketACLMapOutput) MapIndex added in v4.11.1

func (BucketACLMapOutput) ToBucketACLMapOutput added in v4.11.1

func (o BucketACLMapOutput) ToBucketACLMapOutput() BucketACLMapOutput

func (BucketACLMapOutput) ToBucketACLMapOutputWithContext added in v4.11.1

func (o BucketACLMapOutput) ToBucketACLMapOutputWithContext(ctx context.Context) BucketACLMapOutput

type BucketACLOutput added in v4.4.0

type BucketACLOutput struct {
	*pulumi.OutputState
}

func (BucketACLOutput) ElementType added in v4.4.0

func (BucketACLOutput) ElementType() reflect.Type

func (BucketACLOutput) ToBucketACLOutput added in v4.4.0

func (o BucketACLOutput) ToBucketACLOutput() BucketACLOutput

func (BucketACLOutput) ToBucketACLOutputWithContext added in v4.4.0

func (o BucketACLOutput) ToBucketACLOutputWithContext(ctx context.Context) BucketACLOutput

func (BucketACLOutput) ToBucketACLPtrOutput added in v4.11.1

func (o BucketACLOutput) ToBucketACLPtrOutput() BucketACLPtrOutput

func (BucketACLOutput) ToBucketACLPtrOutputWithContext added in v4.11.1

func (o BucketACLOutput) ToBucketACLPtrOutputWithContext(ctx context.Context) BucketACLPtrOutput

type BucketACLPtrInput added in v4.11.1

type BucketACLPtrInput interface {
	pulumi.Input

	ToBucketACLPtrOutput() BucketACLPtrOutput
	ToBucketACLPtrOutputWithContext(ctx context.Context) BucketACLPtrOutput
}

type BucketACLPtrOutput added in v4.11.1

type BucketACLPtrOutput struct {
	*pulumi.OutputState
}

func (BucketACLPtrOutput) ElementType added in v4.11.1

func (BucketACLPtrOutput) ElementType() reflect.Type

func (BucketACLPtrOutput) ToBucketACLPtrOutput added in v4.11.1

func (o BucketACLPtrOutput) ToBucketACLPtrOutput() BucketACLPtrOutput

func (BucketACLPtrOutput) ToBucketACLPtrOutputWithContext added in v4.11.1

func (o BucketACLPtrOutput) ToBucketACLPtrOutputWithContext(ctx context.Context) BucketACLPtrOutput

type BucketACLState

type BucketACLState struct {
	// The name of the bucket it applies to.
	Bucket pulumi.StringPtrInput
	// Configure this ACL to be the default ACL.
	DefaultAcl pulumi.StringPtrInput
	// 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 pulumi.StringPtrInput
	// 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 pulumi.StringArrayInput
}

func (BucketACLState) ElementType

func (BucketACLState) ElementType() reflect.Type

type BucketAccessControl

type BucketAccessControl struct {
	pulumi.CustomResourceState

	// The name of the bucket.
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// The domain associated with the entity.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// The email address associated with the entity.
	Email pulumi.StringOutput `pulumi:"email"`
	// 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 pulumi.StringOutput `pulumi:"entity"`
	// The access permission for the entity.
	// Possible values are `OWNER`, `READER`, and `WRITER`.
	Role pulumi.StringPtrOutput `pulumi:"role"`
}

Bucket ACLs can be managed authoritatively using the `storageBucketAcl` resource. Do not use these two resources in conjunction to manage the same bucket.

The BucketAccessControls resource manages the Access Control List (ACLs) for a single entity/role pairing on a bucket. ACLs let you specify who has access to your data and to what extent.

There are three roles that can be assigned to an entity:

READERs can get the bucket, though no acl property will be returned, and list the bucket's objects. WRITERs are READERs, and they can insert objects into the bucket and delete the bucket's objects. OWNERs are WRITERs, and they can get the acl property of a bucket, update a bucket, and call all BucketAccessControls methods on the bucket. For more information, see Access Control, with the caveat that this API uses READER, WRITER, and OWNER instead of READ, WRITE, and FULL_CONTROL.

To get more information about BucketAccessControl, see:

* [API documentation](https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls) * How-to Guides

## Example Usage ### Storage Bucket Access Control Public Bucket

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		bucket, err := storage.NewBucket(ctx, "bucket", nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketAccessControl(ctx, "publicRule", &storage.BucketAccessControlArgs{
			Bucket: bucket.Name,
			Role:   pulumi.String("READER"),
			Entity: pulumi.String("allUsers"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

BucketAccessControl can be imported using any of these accepted formats

```sh

$ pulumi import gcp:storage/bucketAccessControl:BucketAccessControl default {{bucket}}/{{entity}}

```

func GetBucketAccessControl

func GetBucketAccessControl(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BucketAccessControlState, opts ...pulumi.ResourceOption) (*BucketAccessControl, error)

GetBucketAccessControl gets an existing BucketAccessControl 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 NewBucketAccessControl

func NewBucketAccessControl(ctx *pulumi.Context,
	name string, args *BucketAccessControlArgs, opts ...pulumi.ResourceOption) (*BucketAccessControl, error)

NewBucketAccessControl registers a new resource with the given unique name, arguments, and options.

func (*BucketAccessControl) ElementType added in v4.4.0

func (*BucketAccessControl) ElementType() reflect.Type

func (*BucketAccessControl) ToBucketAccessControlOutput added in v4.4.0

func (i *BucketAccessControl) ToBucketAccessControlOutput() BucketAccessControlOutput

func (*BucketAccessControl) ToBucketAccessControlOutputWithContext added in v4.4.0

func (i *BucketAccessControl) ToBucketAccessControlOutputWithContext(ctx context.Context) BucketAccessControlOutput

func (*BucketAccessControl) ToBucketAccessControlPtrOutput added in v4.11.1

func (i *BucketAccessControl) ToBucketAccessControlPtrOutput() BucketAccessControlPtrOutput

func (*BucketAccessControl) ToBucketAccessControlPtrOutputWithContext added in v4.11.1

func (i *BucketAccessControl) ToBucketAccessControlPtrOutputWithContext(ctx context.Context) BucketAccessControlPtrOutput

type BucketAccessControlArgs

type BucketAccessControlArgs struct {
	// The name of the bucket.
	Bucket pulumi.StringInput
	// 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 pulumi.StringInput
	// The access permission for the entity.
	// Possible values are `OWNER`, `READER`, and `WRITER`.
	Role pulumi.StringPtrInput
}

The set of arguments for constructing a BucketAccessControl resource.

func (BucketAccessControlArgs) ElementType

func (BucketAccessControlArgs) ElementType() reflect.Type

type BucketAccessControlArray added in v4.11.1

type BucketAccessControlArray []BucketAccessControlInput

func (BucketAccessControlArray) ElementType added in v4.11.1

func (BucketAccessControlArray) ElementType() reflect.Type

func (BucketAccessControlArray) ToBucketAccessControlArrayOutput added in v4.11.1

func (i BucketAccessControlArray) ToBucketAccessControlArrayOutput() BucketAccessControlArrayOutput

func (BucketAccessControlArray) ToBucketAccessControlArrayOutputWithContext added in v4.11.1

func (i BucketAccessControlArray) ToBucketAccessControlArrayOutputWithContext(ctx context.Context) BucketAccessControlArrayOutput

type BucketAccessControlArrayInput added in v4.11.1

type BucketAccessControlArrayInput interface {
	pulumi.Input

	ToBucketAccessControlArrayOutput() BucketAccessControlArrayOutput
	ToBucketAccessControlArrayOutputWithContext(context.Context) BucketAccessControlArrayOutput
}

BucketAccessControlArrayInput is an input type that accepts BucketAccessControlArray and BucketAccessControlArrayOutput values. You can construct a concrete instance of `BucketAccessControlArrayInput` via:

BucketAccessControlArray{ BucketAccessControlArgs{...} }

type BucketAccessControlArrayOutput added in v4.11.1

type BucketAccessControlArrayOutput struct{ *pulumi.OutputState }

func (BucketAccessControlArrayOutput) ElementType added in v4.11.1

func (BucketAccessControlArrayOutput) Index added in v4.11.1

func (BucketAccessControlArrayOutput) ToBucketAccessControlArrayOutput added in v4.11.1

func (o BucketAccessControlArrayOutput) ToBucketAccessControlArrayOutput() BucketAccessControlArrayOutput

func (BucketAccessControlArrayOutput) ToBucketAccessControlArrayOutputWithContext added in v4.11.1

func (o BucketAccessControlArrayOutput) ToBucketAccessControlArrayOutputWithContext(ctx context.Context) BucketAccessControlArrayOutput

type BucketAccessControlInput added in v4.4.0

type BucketAccessControlInput interface {
	pulumi.Input

	ToBucketAccessControlOutput() BucketAccessControlOutput
	ToBucketAccessControlOutputWithContext(ctx context.Context) BucketAccessControlOutput
}

type BucketAccessControlMap added in v4.11.1

type BucketAccessControlMap map[string]BucketAccessControlInput

func (BucketAccessControlMap) ElementType added in v4.11.1

func (BucketAccessControlMap) ElementType() reflect.Type

func (BucketAccessControlMap) ToBucketAccessControlMapOutput added in v4.11.1

func (i BucketAccessControlMap) ToBucketAccessControlMapOutput() BucketAccessControlMapOutput

func (BucketAccessControlMap) ToBucketAccessControlMapOutputWithContext added in v4.11.1

func (i BucketAccessControlMap) ToBucketAccessControlMapOutputWithContext(ctx context.Context) BucketAccessControlMapOutput

type BucketAccessControlMapInput added in v4.11.1

type BucketAccessControlMapInput interface {
	pulumi.Input

	ToBucketAccessControlMapOutput() BucketAccessControlMapOutput
	ToBucketAccessControlMapOutputWithContext(context.Context) BucketAccessControlMapOutput
}

BucketAccessControlMapInput is an input type that accepts BucketAccessControlMap and BucketAccessControlMapOutput values. You can construct a concrete instance of `BucketAccessControlMapInput` via:

BucketAccessControlMap{ "key": BucketAccessControlArgs{...} }

type BucketAccessControlMapOutput added in v4.11.1

type BucketAccessControlMapOutput struct{ *pulumi.OutputState }

func (BucketAccessControlMapOutput) ElementType added in v4.11.1

func (BucketAccessControlMapOutput) MapIndex added in v4.11.1

func (BucketAccessControlMapOutput) ToBucketAccessControlMapOutput added in v4.11.1

func (o BucketAccessControlMapOutput) ToBucketAccessControlMapOutput() BucketAccessControlMapOutput

func (BucketAccessControlMapOutput) ToBucketAccessControlMapOutputWithContext added in v4.11.1

func (o BucketAccessControlMapOutput) ToBucketAccessControlMapOutputWithContext(ctx context.Context) BucketAccessControlMapOutput

type BucketAccessControlOutput added in v4.4.0

type BucketAccessControlOutput struct {
	*pulumi.OutputState
}

func (BucketAccessControlOutput) ElementType added in v4.4.0

func (BucketAccessControlOutput) ElementType() reflect.Type

func (BucketAccessControlOutput) ToBucketAccessControlOutput added in v4.4.0

func (o BucketAccessControlOutput) ToBucketAccessControlOutput() BucketAccessControlOutput

func (BucketAccessControlOutput) ToBucketAccessControlOutputWithContext added in v4.4.0

func (o BucketAccessControlOutput) ToBucketAccessControlOutputWithContext(ctx context.Context) BucketAccessControlOutput

func (BucketAccessControlOutput) ToBucketAccessControlPtrOutput added in v4.11.1

func (o BucketAccessControlOutput) ToBucketAccessControlPtrOutput() BucketAccessControlPtrOutput

func (BucketAccessControlOutput) ToBucketAccessControlPtrOutputWithContext added in v4.11.1

func (o BucketAccessControlOutput) ToBucketAccessControlPtrOutputWithContext(ctx context.Context) BucketAccessControlPtrOutput

type BucketAccessControlPtrInput added in v4.11.1

type BucketAccessControlPtrInput interface {
	pulumi.Input

	ToBucketAccessControlPtrOutput() BucketAccessControlPtrOutput
	ToBucketAccessControlPtrOutputWithContext(ctx context.Context) BucketAccessControlPtrOutput
}

type BucketAccessControlPtrOutput added in v4.11.1

type BucketAccessControlPtrOutput struct {
	*pulumi.OutputState
}

func (BucketAccessControlPtrOutput) ElementType added in v4.11.1

func (BucketAccessControlPtrOutput) ToBucketAccessControlPtrOutput added in v4.11.1

func (o BucketAccessControlPtrOutput) ToBucketAccessControlPtrOutput() BucketAccessControlPtrOutput

func (BucketAccessControlPtrOutput) ToBucketAccessControlPtrOutputWithContext added in v4.11.1

func (o BucketAccessControlPtrOutput) ToBucketAccessControlPtrOutputWithContext(ctx context.Context) BucketAccessControlPtrOutput

type BucketAccessControlState

type BucketAccessControlState struct {
	// The name of the bucket.
	Bucket pulumi.StringPtrInput
	// The domain associated with the entity.
	Domain pulumi.StringPtrInput
	// The email address associated with the entity.
	Email pulumi.StringPtrInput
	// 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 pulumi.StringPtrInput
	// The access permission for the entity.
	// Possible values are `OWNER`, `READER`, and `WRITER`.
	Role pulumi.StringPtrInput
}

func (BucketAccessControlState) ElementType

func (BucketAccessControlState) ElementType() reflect.Type

type BucketArgs

type BucketArgs struct {
	// Enables [Bucket Policy Only](https://cloud.google.com/storage/docs/bucket-policy-only) access to a bucket. This field will be removed in the next major release of the provider.
	//
	// Deprecated: Please use the uniform_bucket_level_access as this field has been renamed by Google.
	BucketPolicyOnly pulumi.BoolPtrInput
	// 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                  BucketCorArrayInput
	DefaultEventBasedHold pulumi.BoolPtrInput
	// The bucket's encryption configuration.
	Encryption BucketEncryptionPtrInput
	// When deleting a bucket, this
	// boolean option will delete all contained objects. If you try to delete a
	// bucket that contains objects, the provider will fail that run.
	ForceDestroy pulumi.BoolPtrInput
	// A map of key/value label pairs to assign to the bucket.
	Labels pulumi.StringMapInput
	// 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 BucketLifecycleRuleArrayInput
	// The [GCS location](https://cloud.google.com/storage/docs/bucket-locations)
	Location pulumi.StringPtrInput
	// The bucket's [Access & Storage Logs](https://cloud.google.com/storage/docs/access-logs) configuration.
	Logging BucketLoggingPtrInput
	// The name of the bucket.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket.
	RequesterPays pulumi.BoolPtrInput
	// Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
	RetentionPolicy BucketRetentionPolicyPtrInput
	// The target [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects affected by this Lifecycle Rule. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
	StorageClass pulumi.StringPtrInput
	// Enables [Uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) access to a bucket.
	UniformBucketLevelAccess pulumi.BoolPtrInput
	// The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration.
	Versioning BucketVersioningPtrInput
	// Configuration if the bucket acts as a website. Structure is documented below.
	Website BucketWebsitePtrInput
}

The set of arguments for constructing a Bucket resource.

func (BucketArgs) ElementType

func (BucketArgs) ElementType() reflect.Type

type BucketArray added in v4.11.1

type BucketArray []BucketInput

func (BucketArray) ElementType added in v4.11.1

func (BucketArray) ElementType() reflect.Type

func (BucketArray) ToBucketArrayOutput added in v4.11.1

func (i BucketArray) ToBucketArrayOutput() BucketArrayOutput

func (BucketArray) ToBucketArrayOutputWithContext added in v4.11.1

func (i BucketArray) ToBucketArrayOutputWithContext(ctx context.Context) BucketArrayOutput

type BucketArrayInput added in v4.11.1

type BucketArrayInput interface {
	pulumi.Input

	ToBucketArrayOutput() BucketArrayOutput
	ToBucketArrayOutputWithContext(context.Context) BucketArrayOutput
}

BucketArrayInput is an input type that accepts BucketArray and BucketArrayOutput values. You can construct a concrete instance of `BucketArrayInput` via:

BucketArray{ BucketArgs{...} }

type BucketArrayOutput added in v4.11.1

type BucketArrayOutput struct{ *pulumi.OutputState }

func (BucketArrayOutput) ElementType added in v4.11.1

func (BucketArrayOutput) ElementType() reflect.Type

func (BucketArrayOutput) Index added in v4.11.1

func (BucketArrayOutput) ToBucketArrayOutput added in v4.11.1

func (o BucketArrayOutput) ToBucketArrayOutput() BucketArrayOutput

func (BucketArrayOutput) ToBucketArrayOutputWithContext added in v4.11.1

func (o BucketArrayOutput) ToBucketArrayOutputWithContext(ctx context.Context) BucketArrayOutput

type BucketCor

type BucketCor struct {
	// The value, in seconds, to return in the [Access-Control-Max-Age header](https://www.w3.org/TR/cors/#access-control-max-age-response-header) used in preflight responses.
	MaxAgeSeconds *int `pulumi:"maxAgeSeconds"`
	// The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: "*" is permitted in the list of methods, and means "any method".
	Methods []string `pulumi:"methods"`
	// The list of [Origins](https://tools.ietf.org/html/rfc6454) eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
	Origins []string `pulumi:"origins"`
	// The list of HTTP headers other than the [simple response headers](https://www.w3.org/TR/cors/#simple-response-header) to give permission for the user-agent to share across domains.
	ResponseHeaders []string `pulumi:"responseHeaders"`
}

type BucketCorArgs

type BucketCorArgs struct {
	// The value, in seconds, to return in the [Access-Control-Max-Age header](https://www.w3.org/TR/cors/#access-control-max-age-response-header) used in preflight responses.
	MaxAgeSeconds pulumi.IntPtrInput `pulumi:"maxAgeSeconds"`
	// The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: "*" is permitted in the list of methods, and means "any method".
	Methods pulumi.StringArrayInput `pulumi:"methods"`
	// The list of [Origins](https://tools.ietf.org/html/rfc6454) eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
	Origins pulumi.StringArrayInput `pulumi:"origins"`
	// The list of HTTP headers other than the [simple response headers](https://www.w3.org/TR/cors/#simple-response-header) to give permission for the user-agent to share across domains.
	ResponseHeaders pulumi.StringArrayInput `pulumi:"responseHeaders"`
}

func (BucketCorArgs) ElementType

func (BucketCorArgs) ElementType() reflect.Type

func (BucketCorArgs) ToBucketCorOutput

func (i BucketCorArgs) ToBucketCorOutput() BucketCorOutput

func (BucketCorArgs) ToBucketCorOutputWithContext

func (i BucketCorArgs) ToBucketCorOutputWithContext(ctx context.Context) BucketCorOutput

type BucketCorArray

type BucketCorArray []BucketCorInput

func (BucketCorArray) ElementType

func (BucketCorArray) ElementType() reflect.Type

func (BucketCorArray) ToBucketCorArrayOutput

func (i BucketCorArray) ToBucketCorArrayOutput() BucketCorArrayOutput

func (BucketCorArray) ToBucketCorArrayOutputWithContext

func (i BucketCorArray) ToBucketCorArrayOutputWithContext(ctx context.Context) BucketCorArrayOutput

type BucketCorArrayInput

type BucketCorArrayInput interface {
	pulumi.Input

	ToBucketCorArrayOutput() BucketCorArrayOutput
	ToBucketCorArrayOutputWithContext(context.Context) BucketCorArrayOutput
}

BucketCorArrayInput is an input type that accepts BucketCorArray and BucketCorArrayOutput values. You can construct a concrete instance of `BucketCorArrayInput` via:

BucketCorArray{ BucketCorArgs{...} }

type BucketCorArrayOutput

type BucketCorArrayOutput struct{ *pulumi.OutputState }

func (BucketCorArrayOutput) ElementType

func (BucketCorArrayOutput) ElementType() reflect.Type

func (BucketCorArrayOutput) Index

func (BucketCorArrayOutput) ToBucketCorArrayOutput

func (o BucketCorArrayOutput) ToBucketCorArrayOutput() BucketCorArrayOutput

func (BucketCorArrayOutput) ToBucketCorArrayOutputWithContext

func (o BucketCorArrayOutput) ToBucketCorArrayOutputWithContext(ctx context.Context) BucketCorArrayOutput

type BucketCorInput

type BucketCorInput interface {
	pulumi.Input

	ToBucketCorOutput() BucketCorOutput
	ToBucketCorOutputWithContext(context.Context) BucketCorOutput
}

BucketCorInput is an input type that accepts BucketCorArgs and BucketCorOutput values. You can construct a concrete instance of `BucketCorInput` via:

BucketCorArgs{...}

type BucketCorOutput

type BucketCorOutput struct{ *pulumi.OutputState }

func (BucketCorOutput) ElementType

func (BucketCorOutput) ElementType() reflect.Type

func (BucketCorOutput) MaxAgeSeconds

func (o BucketCorOutput) MaxAgeSeconds() pulumi.IntPtrOutput

The value, in seconds, to return in the [Access-Control-Max-Age header](https://www.w3.org/TR/cors/#access-control-max-age-response-header) used in preflight responses.

func (BucketCorOutput) Methods

The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: "*" is permitted in the list of methods, and means "any method".

func (BucketCorOutput) Origins

The list of [Origins](https://tools.ietf.org/html/rfc6454) eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".

func (BucketCorOutput) ResponseHeaders

func (o BucketCorOutput) ResponseHeaders() pulumi.StringArrayOutput

The list of HTTP headers other than the [simple response headers](https://www.w3.org/TR/cors/#simple-response-header) to give permission for the user-agent to share across domains.

func (BucketCorOutput) ToBucketCorOutput

func (o BucketCorOutput) ToBucketCorOutput() BucketCorOutput

func (BucketCorOutput) ToBucketCorOutputWithContext

func (o BucketCorOutput) ToBucketCorOutputWithContext(ctx context.Context) BucketCorOutput

type BucketEncryption

type BucketEncryption struct {
	DefaultKmsKeyName string `pulumi:"defaultKmsKeyName"`
}

type BucketEncryptionArgs

type BucketEncryptionArgs struct {
	DefaultKmsKeyName pulumi.StringInput `pulumi:"defaultKmsKeyName"`
}

func (BucketEncryptionArgs) ElementType

func (BucketEncryptionArgs) ElementType() reflect.Type

func (BucketEncryptionArgs) ToBucketEncryptionOutput

func (i BucketEncryptionArgs) ToBucketEncryptionOutput() BucketEncryptionOutput

func (BucketEncryptionArgs) ToBucketEncryptionOutputWithContext

func (i BucketEncryptionArgs) ToBucketEncryptionOutputWithContext(ctx context.Context) BucketEncryptionOutput

func (BucketEncryptionArgs) ToBucketEncryptionPtrOutput

func (i BucketEncryptionArgs) ToBucketEncryptionPtrOutput() BucketEncryptionPtrOutput

func (BucketEncryptionArgs) ToBucketEncryptionPtrOutputWithContext

func (i BucketEncryptionArgs) ToBucketEncryptionPtrOutputWithContext(ctx context.Context) BucketEncryptionPtrOutput

type BucketEncryptionInput

type BucketEncryptionInput interface {
	pulumi.Input

	ToBucketEncryptionOutput() BucketEncryptionOutput
	ToBucketEncryptionOutputWithContext(context.Context) BucketEncryptionOutput
}

BucketEncryptionInput is an input type that accepts BucketEncryptionArgs and BucketEncryptionOutput values. You can construct a concrete instance of `BucketEncryptionInput` via:

BucketEncryptionArgs{...}

type BucketEncryptionOutput

type BucketEncryptionOutput struct{ *pulumi.OutputState }

func (BucketEncryptionOutput) DefaultKmsKeyName

func (o BucketEncryptionOutput) DefaultKmsKeyName() pulumi.StringOutput

func (BucketEncryptionOutput) ElementType

func (BucketEncryptionOutput) ElementType() reflect.Type

func (BucketEncryptionOutput) ToBucketEncryptionOutput

func (o BucketEncryptionOutput) ToBucketEncryptionOutput() BucketEncryptionOutput

func (BucketEncryptionOutput) ToBucketEncryptionOutputWithContext

func (o BucketEncryptionOutput) ToBucketEncryptionOutputWithContext(ctx context.Context) BucketEncryptionOutput

func (BucketEncryptionOutput) ToBucketEncryptionPtrOutput

func (o BucketEncryptionOutput) ToBucketEncryptionPtrOutput() BucketEncryptionPtrOutput

func (BucketEncryptionOutput) ToBucketEncryptionPtrOutputWithContext

func (o BucketEncryptionOutput) ToBucketEncryptionPtrOutputWithContext(ctx context.Context) BucketEncryptionPtrOutput

type BucketEncryptionPtrInput

type BucketEncryptionPtrInput interface {
	pulumi.Input

	ToBucketEncryptionPtrOutput() BucketEncryptionPtrOutput
	ToBucketEncryptionPtrOutputWithContext(context.Context) BucketEncryptionPtrOutput
}

BucketEncryptionPtrInput is an input type that accepts BucketEncryptionArgs, BucketEncryptionPtr and BucketEncryptionPtrOutput values. You can construct a concrete instance of `BucketEncryptionPtrInput` via:

        BucketEncryptionArgs{...}

or:

        nil

type BucketEncryptionPtrOutput

type BucketEncryptionPtrOutput struct{ *pulumi.OutputState }

func (BucketEncryptionPtrOutput) DefaultKmsKeyName

func (o BucketEncryptionPtrOutput) DefaultKmsKeyName() pulumi.StringPtrOutput

func (BucketEncryptionPtrOutput) Elem

func (BucketEncryptionPtrOutput) ElementType

func (BucketEncryptionPtrOutput) ElementType() reflect.Type

func (BucketEncryptionPtrOutput) ToBucketEncryptionPtrOutput

func (o BucketEncryptionPtrOutput) ToBucketEncryptionPtrOutput() BucketEncryptionPtrOutput

func (BucketEncryptionPtrOutput) ToBucketEncryptionPtrOutputWithContext

func (o BucketEncryptionPtrOutput) ToBucketEncryptionPtrOutputWithContext(ctx context.Context) BucketEncryptionPtrOutput

type BucketIAMBinding

type BucketIAMBinding struct {
	pulumi.CustomResourceState

	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition BucketIAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The role that should be applied. Only one
	// `storage.BucketIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage your IAM policy for Cloud Storage Bucket. Each of these resources serves a different use case:

* `storage.BucketIAMPolicy`: Authoritative. Sets the IAM policy for the bucket and replaces any existing policy already attached. * `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 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 bucket are preserved.

> **Note:** `storage.BucketIAMPolicy` **cannot** be used in conjunction with `storage.BucketIAMBinding` and `storage.BucketIAMMember` or they will fight over what your policy should be.

> **Note:** `storage.BucketIAMBinding` resources **can be** used in conjunction with `storage.BucketIAMMember` resources **only if** they do not grant privilege to the same role.

## google\_storage\_bucket\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/storage.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMPolicy(ctx, "policy", &storage.BucketIAMPolicyArgs{
			Bucket:     pulumi.Any(google_storage_bucket.Default.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/storage.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: organizations.GetIAMPolicyBindingCondition{
						Title:       "expires_after_2019_12_31",
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMPolicy(ctx, "policy", &storage.BucketIAMPolicyArgs{
			Bucket:     pulumi.Any(google_storage_bucket.Default.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## google\_storage\_bucket\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMBinding(ctx, "binding", &storage.BucketIAMBindingArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMBinding(ctx, "binding", &storage.BucketIAMBindingArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &storage.BucketIAMBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## google\_storage\_bucket\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMMember(ctx, "member", &storage.BucketIAMMemberArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMMember(ctx, "member", &storage.BucketIAMMemberArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String("user:jane@example.com"),
			Condition: &storage.BucketIAMMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms* b/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Storage bucket IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMBinding:BucketIAMBinding editor "b/{{bucket}} roles/storage.objectViewer user:jane@example.com"

```

IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMBinding:BucketIAMBinding editor "b/{{bucket}} roles/storage.objectViewer"

```

IAM policy imports use the identifier of the resource in question, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMBinding:BucketIAMBinding editor b/{{bucket}}

```

-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetBucketIAMBinding

func GetBucketIAMBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BucketIAMBindingState, opts ...pulumi.ResourceOption) (*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.ResourceOption) (*BucketIAMBinding, error)

NewBucketIAMBinding registers a new resource with the given unique name, arguments, and options.

func (*BucketIAMBinding) ElementType added in v4.4.0

func (*BucketIAMBinding) ElementType() reflect.Type

func (*BucketIAMBinding) ToBucketIAMBindingOutput added in v4.4.0

func (i *BucketIAMBinding) ToBucketIAMBindingOutput() BucketIAMBindingOutput

func (*BucketIAMBinding) ToBucketIAMBindingOutputWithContext added in v4.4.0

func (i *BucketIAMBinding) ToBucketIAMBindingOutputWithContext(ctx context.Context) BucketIAMBindingOutput

func (*BucketIAMBinding) ToBucketIAMBindingPtrOutput added in v4.11.1

func (i *BucketIAMBinding) ToBucketIAMBindingPtrOutput() BucketIAMBindingPtrOutput

func (*BucketIAMBinding) ToBucketIAMBindingPtrOutputWithContext added in v4.11.1

func (i *BucketIAMBinding) ToBucketIAMBindingPtrOutputWithContext(ctx context.Context) BucketIAMBindingPtrOutput

type BucketIAMBindingArgs

type BucketIAMBindingArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringInput
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition BucketIAMBindingConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `storage.BucketIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a BucketIAMBinding resource.

func (BucketIAMBindingArgs) ElementType

func (BucketIAMBindingArgs) ElementType() reflect.Type

type BucketIAMBindingArray added in v4.11.1

type BucketIAMBindingArray []BucketIAMBindingInput

func (BucketIAMBindingArray) ElementType added in v4.11.1

func (BucketIAMBindingArray) ElementType() reflect.Type

func (BucketIAMBindingArray) ToBucketIAMBindingArrayOutput added in v4.11.1

func (i BucketIAMBindingArray) ToBucketIAMBindingArrayOutput() BucketIAMBindingArrayOutput

func (BucketIAMBindingArray) ToBucketIAMBindingArrayOutputWithContext added in v4.11.1

func (i BucketIAMBindingArray) ToBucketIAMBindingArrayOutputWithContext(ctx context.Context) BucketIAMBindingArrayOutput

type BucketIAMBindingArrayInput added in v4.11.1

type BucketIAMBindingArrayInput interface {
	pulumi.Input

	ToBucketIAMBindingArrayOutput() BucketIAMBindingArrayOutput
	ToBucketIAMBindingArrayOutputWithContext(context.Context) BucketIAMBindingArrayOutput
}

BucketIAMBindingArrayInput is an input type that accepts BucketIAMBindingArray and BucketIAMBindingArrayOutput values. You can construct a concrete instance of `BucketIAMBindingArrayInput` via:

BucketIAMBindingArray{ BucketIAMBindingArgs{...} }

type BucketIAMBindingArrayOutput added in v4.11.1

type BucketIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (BucketIAMBindingArrayOutput) ElementType added in v4.11.1

func (BucketIAMBindingArrayOutput) Index added in v4.11.1

func (BucketIAMBindingArrayOutput) ToBucketIAMBindingArrayOutput added in v4.11.1

func (o BucketIAMBindingArrayOutput) ToBucketIAMBindingArrayOutput() BucketIAMBindingArrayOutput

func (BucketIAMBindingArrayOutput) ToBucketIAMBindingArrayOutputWithContext added in v4.11.1

func (o BucketIAMBindingArrayOutput) ToBucketIAMBindingArrayOutputWithContext(ctx context.Context) BucketIAMBindingArrayOutput

type BucketIAMBindingCondition

type BucketIAMBindingCondition struct {
	// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type BucketIAMBindingConditionArgs

type BucketIAMBindingConditionArgs struct {
	// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (BucketIAMBindingConditionArgs) ElementType

func (BucketIAMBindingConditionArgs) ToBucketIAMBindingConditionOutput

func (i BucketIAMBindingConditionArgs) ToBucketIAMBindingConditionOutput() BucketIAMBindingConditionOutput

func (BucketIAMBindingConditionArgs) ToBucketIAMBindingConditionOutputWithContext

func (i BucketIAMBindingConditionArgs) ToBucketIAMBindingConditionOutputWithContext(ctx context.Context) BucketIAMBindingConditionOutput

func (BucketIAMBindingConditionArgs) ToBucketIAMBindingConditionPtrOutput

func (i BucketIAMBindingConditionArgs) ToBucketIAMBindingConditionPtrOutput() BucketIAMBindingConditionPtrOutput

func (BucketIAMBindingConditionArgs) ToBucketIAMBindingConditionPtrOutputWithContext

func (i BucketIAMBindingConditionArgs) ToBucketIAMBindingConditionPtrOutputWithContext(ctx context.Context) BucketIAMBindingConditionPtrOutput

type BucketIAMBindingConditionInput

type BucketIAMBindingConditionInput interface {
	pulumi.Input

	ToBucketIAMBindingConditionOutput() BucketIAMBindingConditionOutput
	ToBucketIAMBindingConditionOutputWithContext(context.Context) BucketIAMBindingConditionOutput
}

BucketIAMBindingConditionInput is an input type that accepts BucketIAMBindingConditionArgs and BucketIAMBindingConditionOutput values. You can construct a concrete instance of `BucketIAMBindingConditionInput` via:

BucketIAMBindingConditionArgs{...}

type BucketIAMBindingConditionOutput

type BucketIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (BucketIAMBindingConditionOutput) Description

An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.

func (BucketIAMBindingConditionOutput) ElementType

func (BucketIAMBindingConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (BucketIAMBindingConditionOutput) Title

A title for the expression, i.e. a short string describing its purpose.

func (BucketIAMBindingConditionOutput) ToBucketIAMBindingConditionOutput

func (o BucketIAMBindingConditionOutput) ToBucketIAMBindingConditionOutput() BucketIAMBindingConditionOutput

func (BucketIAMBindingConditionOutput) ToBucketIAMBindingConditionOutputWithContext

func (o BucketIAMBindingConditionOutput) ToBucketIAMBindingConditionOutputWithContext(ctx context.Context) BucketIAMBindingConditionOutput

func (BucketIAMBindingConditionOutput) ToBucketIAMBindingConditionPtrOutput

func (o BucketIAMBindingConditionOutput) ToBucketIAMBindingConditionPtrOutput() BucketIAMBindingConditionPtrOutput

func (BucketIAMBindingConditionOutput) ToBucketIAMBindingConditionPtrOutputWithContext

func (o BucketIAMBindingConditionOutput) ToBucketIAMBindingConditionPtrOutputWithContext(ctx context.Context) BucketIAMBindingConditionPtrOutput

type BucketIAMBindingConditionPtrInput

type BucketIAMBindingConditionPtrInput interface {
	pulumi.Input

	ToBucketIAMBindingConditionPtrOutput() BucketIAMBindingConditionPtrOutput
	ToBucketIAMBindingConditionPtrOutputWithContext(context.Context) BucketIAMBindingConditionPtrOutput
}

BucketIAMBindingConditionPtrInput is an input type that accepts BucketIAMBindingConditionArgs, BucketIAMBindingConditionPtr and BucketIAMBindingConditionPtrOutput values. You can construct a concrete instance of `BucketIAMBindingConditionPtrInput` via:

        BucketIAMBindingConditionArgs{...}

or:

        nil

type BucketIAMBindingConditionPtrOutput

type BucketIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (BucketIAMBindingConditionPtrOutput) Description

An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.

func (BucketIAMBindingConditionPtrOutput) Elem

func (BucketIAMBindingConditionPtrOutput) ElementType

func (BucketIAMBindingConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (BucketIAMBindingConditionPtrOutput) Title

A title for the expression, i.e. a short string describing its purpose.

func (BucketIAMBindingConditionPtrOutput) ToBucketIAMBindingConditionPtrOutput

func (o BucketIAMBindingConditionPtrOutput) ToBucketIAMBindingConditionPtrOutput() BucketIAMBindingConditionPtrOutput

func (BucketIAMBindingConditionPtrOutput) ToBucketIAMBindingConditionPtrOutputWithContext

func (o BucketIAMBindingConditionPtrOutput) ToBucketIAMBindingConditionPtrOutputWithContext(ctx context.Context) BucketIAMBindingConditionPtrOutput

type BucketIAMBindingInput added in v4.4.0

type BucketIAMBindingInput interface {
	pulumi.Input

	ToBucketIAMBindingOutput() BucketIAMBindingOutput
	ToBucketIAMBindingOutputWithContext(ctx context.Context) BucketIAMBindingOutput
}

type BucketIAMBindingMap added in v4.11.1

type BucketIAMBindingMap map[string]BucketIAMBindingInput

func (BucketIAMBindingMap) ElementType added in v4.11.1

func (BucketIAMBindingMap) ElementType() reflect.Type

func (BucketIAMBindingMap) ToBucketIAMBindingMapOutput added in v4.11.1

func (i BucketIAMBindingMap) ToBucketIAMBindingMapOutput() BucketIAMBindingMapOutput

func (BucketIAMBindingMap) ToBucketIAMBindingMapOutputWithContext added in v4.11.1

func (i BucketIAMBindingMap) ToBucketIAMBindingMapOutputWithContext(ctx context.Context) BucketIAMBindingMapOutput

type BucketIAMBindingMapInput added in v4.11.1

type BucketIAMBindingMapInput interface {
	pulumi.Input

	ToBucketIAMBindingMapOutput() BucketIAMBindingMapOutput
	ToBucketIAMBindingMapOutputWithContext(context.Context) BucketIAMBindingMapOutput
}

BucketIAMBindingMapInput is an input type that accepts BucketIAMBindingMap and BucketIAMBindingMapOutput values. You can construct a concrete instance of `BucketIAMBindingMapInput` via:

BucketIAMBindingMap{ "key": BucketIAMBindingArgs{...} }

type BucketIAMBindingMapOutput added in v4.11.1

type BucketIAMBindingMapOutput struct{ *pulumi.OutputState }

func (BucketIAMBindingMapOutput) ElementType added in v4.11.1

func (BucketIAMBindingMapOutput) ElementType() reflect.Type

func (BucketIAMBindingMapOutput) MapIndex added in v4.11.1

func (BucketIAMBindingMapOutput) ToBucketIAMBindingMapOutput added in v4.11.1

func (o BucketIAMBindingMapOutput) ToBucketIAMBindingMapOutput() BucketIAMBindingMapOutput

func (BucketIAMBindingMapOutput) ToBucketIAMBindingMapOutputWithContext added in v4.11.1

func (o BucketIAMBindingMapOutput) ToBucketIAMBindingMapOutputWithContext(ctx context.Context) BucketIAMBindingMapOutput

type BucketIAMBindingOutput added in v4.4.0

type BucketIAMBindingOutput struct {
	*pulumi.OutputState
}

func (BucketIAMBindingOutput) ElementType added in v4.4.0

func (BucketIAMBindingOutput) ElementType() reflect.Type

func (BucketIAMBindingOutput) ToBucketIAMBindingOutput added in v4.4.0

func (o BucketIAMBindingOutput) ToBucketIAMBindingOutput() BucketIAMBindingOutput

func (BucketIAMBindingOutput) ToBucketIAMBindingOutputWithContext added in v4.4.0

func (o BucketIAMBindingOutput) ToBucketIAMBindingOutputWithContext(ctx context.Context) BucketIAMBindingOutput

func (BucketIAMBindingOutput) ToBucketIAMBindingPtrOutput added in v4.11.1

func (o BucketIAMBindingOutput) ToBucketIAMBindingPtrOutput() BucketIAMBindingPtrOutput

func (BucketIAMBindingOutput) ToBucketIAMBindingPtrOutputWithContext added in v4.11.1

func (o BucketIAMBindingOutput) ToBucketIAMBindingPtrOutputWithContext(ctx context.Context) BucketIAMBindingPtrOutput

type BucketIAMBindingPtrInput added in v4.11.1

type BucketIAMBindingPtrInput interface {
	pulumi.Input

	ToBucketIAMBindingPtrOutput() BucketIAMBindingPtrOutput
	ToBucketIAMBindingPtrOutputWithContext(ctx context.Context) BucketIAMBindingPtrOutput
}

type BucketIAMBindingPtrOutput added in v4.11.1

type BucketIAMBindingPtrOutput struct {
	*pulumi.OutputState
}

func (BucketIAMBindingPtrOutput) ElementType added in v4.11.1

func (BucketIAMBindingPtrOutput) ElementType() reflect.Type

func (BucketIAMBindingPtrOutput) ToBucketIAMBindingPtrOutput added in v4.11.1

func (o BucketIAMBindingPtrOutput) ToBucketIAMBindingPtrOutput() BucketIAMBindingPtrOutput

func (BucketIAMBindingPtrOutput) ToBucketIAMBindingPtrOutputWithContext added in v4.11.1

func (o BucketIAMBindingPtrOutput) ToBucketIAMBindingPtrOutputWithContext(ctx context.Context) BucketIAMBindingPtrOutput

type BucketIAMBindingState

type BucketIAMBindingState struct {
	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringPtrInput
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition BucketIAMBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `storage.BucketIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (BucketIAMBindingState) ElementType

func (BucketIAMBindingState) ElementType() reflect.Type

type BucketIAMMember

type BucketIAMMember struct {
	pulumi.CustomResourceState

	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition BucketIAMMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The role that should be applied. Only one
	// `storage.BucketIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage your IAM policy for Cloud Storage Bucket. Each of these resources serves a different use case:

* `storage.BucketIAMPolicy`: Authoritative. Sets the IAM policy for the bucket and replaces any existing policy already attached. * `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 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 bucket are preserved.

> **Note:** `storage.BucketIAMPolicy` **cannot** be used in conjunction with `storage.BucketIAMBinding` and `storage.BucketIAMMember` or they will fight over what your policy should be.

> **Note:** `storage.BucketIAMBinding` resources **can be** used in conjunction with `storage.BucketIAMMember` resources **only if** they do not grant privilege to the same role.

## google\_storage\_bucket\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/storage.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMPolicy(ctx, "policy", &storage.BucketIAMPolicyArgs{
			Bucket:     pulumi.Any(google_storage_bucket.Default.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/storage.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: organizations.GetIAMPolicyBindingCondition{
						Title:       "expires_after_2019_12_31",
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMPolicy(ctx, "policy", &storage.BucketIAMPolicyArgs{
			Bucket:     pulumi.Any(google_storage_bucket.Default.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## google\_storage\_bucket\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMBinding(ctx, "binding", &storage.BucketIAMBindingArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMBinding(ctx, "binding", &storage.BucketIAMBindingArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &storage.BucketIAMBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## google\_storage\_bucket\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMMember(ctx, "member", &storage.BucketIAMMemberArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMMember(ctx, "member", &storage.BucketIAMMemberArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String("user:jane@example.com"),
			Condition: &storage.BucketIAMMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms* b/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Storage bucket IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMMember:BucketIAMMember editor "b/{{bucket}} roles/storage.objectViewer user:jane@example.com"

```

IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMMember:BucketIAMMember editor "b/{{bucket}} roles/storage.objectViewer"

```

IAM policy imports use the identifier of the resource in question, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMMember:BucketIAMMember editor b/{{bucket}}

```

-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetBucketIAMMember

func GetBucketIAMMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BucketIAMMemberState, opts ...pulumi.ResourceOption) (*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.ResourceOption) (*BucketIAMMember, error)

NewBucketIAMMember registers a new resource with the given unique name, arguments, and options.

func (*BucketIAMMember) ElementType added in v4.4.0

func (*BucketIAMMember) ElementType() reflect.Type

func (*BucketIAMMember) ToBucketIAMMemberOutput added in v4.4.0

func (i *BucketIAMMember) ToBucketIAMMemberOutput() BucketIAMMemberOutput

func (*BucketIAMMember) ToBucketIAMMemberOutputWithContext added in v4.4.0

func (i *BucketIAMMember) ToBucketIAMMemberOutputWithContext(ctx context.Context) BucketIAMMemberOutput

func (*BucketIAMMember) ToBucketIAMMemberPtrOutput added in v4.11.1

func (i *BucketIAMMember) ToBucketIAMMemberPtrOutput() BucketIAMMemberPtrOutput

func (*BucketIAMMember) ToBucketIAMMemberPtrOutputWithContext added in v4.11.1

func (i *BucketIAMMember) ToBucketIAMMemberPtrOutputWithContext(ctx context.Context) BucketIAMMemberPtrOutput

type BucketIAMMemberArgs

type BucketIAMMemberArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringInput
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition BucketIAMMemberConditionPtrInput
	Member    pulumi.StringInput
	// The role that should be applied. Only one
	// `storage.BucketIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a BucketIAMMember resource.

func (BucketIAMMemberArgs) ElementType

func (BucketIAMMemberArgs) ElementType() reflect.Type

type BucketIAMMemberArray added in v4.11.1

type BucketIAMMemberArray []BucketIAMMemberInput

func (BucketIAMMemberArray) ElementType added in v4.11.1

func (BucketIAMMemberArray) ElementType() reflect.Type

func (BucketIAMMemberArray) ToBucketIAMMemberArrayOutput added in v4.11.1

func (i BucketIAMMemberArray) ToBucketIAMMemberArrayOutput() BucketIAMMemberArrayOutput

func (BucketIAMMemberArray) ToBucketIAMMemberArrayOutputWithContext added in v4.11.1

func (i BucketIAMMemberArray) ToBucketIAMMemberArrayOutputWithContext(ctx context.Context) BucketIAMMemberArrayOutput

type BucketIAMMemberArrayInput added in v4.11.1

type BucketIAMMemberArrayInput interface {
	pulumi.Input

	ToBucketIAMMemberArrayOutput() BucketIAMMemberArrayOutput
	ToBucketIAMMemberArrayOutputWithContext(context.Context) BucketIAMMemberArrayOutput
}

BucketIAMMemberArrayInput is an input type that accepts BucketIAMMemberArray and BucketIAMMemberArrayOutput values. You can construct a concrete instance of `BucketIAMMemberArrayInput` via:

BucketIAMMemberArray{ BucketIAMMemberArgs{...} }

type BucketIAMMemberArrayOutput added in v4.11.1

type BucketIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (BucketIAMMemberArrayOutput) ElementType added in v4.11.1

func (BucketIAMMemberArrayOutput) ElementType() reflect.Type

func (BucketIAMMemberArrayOutput) Index added in v4.11.1

func (BucketIAMMemberArrayOutput) ToBucketIAMMemberArrayOutput added in v4.11.1

func (o BucketIAMMemberArrayOutput) ToBucketIAMMemberArrayOutput() BucketIAMMemberArrayOutput

func (BucketIAMMemberArrayOutput) ToBucketIAMMemberArrayOutputWithContext added in v4.11.1

func (o BucketIAMMemberArrayOutput) ToBucketIAMMemberArrayOutputWithContext(ctx context.Context) BucketIAMMemberArrayOutput

type BucketIAMMemberCondition

type BucketIAMMemberCondition struct {
	// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type BucketIAMMemberConditionArgs

type BucketIAMMemberConditionArgs struct {
	// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (BucketIAMMemberConditionArgs) ElementType

func (BucketIAMMemberConditionArgs) ToBucketIAMMemberConditionOutput

func (i BucketIAMMemberConditionArgs) ToBucketIAMMemberConditionOutput() BucketIAMMemberConditionOutput

func (BucketIAMMemberConditionArgs) ToBucketIAMMemberConditionOutputWithContext

func (i BucketIAMMemberConditionArgs) ToBucketIAMMemberConditionOutputWithContext(ctx context.Context) BucketIAMMemberConditionOutput

func (BucketIAMMemberConditionArgs) ToBucketIAMMemberConditionPtrOutput

func (i BucketIAMMemberConditionArgs) ToBucketIAMMemberConditionPtrOutput() BucketIAMMemberConditionPtrOutput

func (BucketIAMMemberConditionArgs) ToBucketIAMMemberConditionPtrOutputWithContext

func (i BucketIAMMemberConditionArgs) ToBucketIAMMemberConditionPtrOutputWithContext(ctx context.Context) BucketIAMMemberConditionPtrOutput

type BucketIAMMemberConditionInput

type BucketIAMMemberConditionInput interface {
	pulumi.Input

	ToBucketIAMMemberConditionOutput() BucketIAMMemberConditionOutput
	ToBucketIAMMemberConditionOutputWithContext(context.Context) BucketIAMMemberConditionOutput
}

BucketIAMMemberConditionInput is an input type that accepts BucketIAMMemberConditionArgs and BucketIAMMemberConditionOutput values. You can construct a concrete instance of `BucketIAMMemberConditionInput` via:

BucketIAMMemberConditionArgs{...}

type BucketIAMMemberConditionOutput

type BucketIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (BucketIAMMemberConditionOutput) Description

An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.

func (BucketIAMMemberConditionOutput) ElementType

func (BucketIAMMemberConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (BucketIAMMemberConditionOutput) Title

A title for the expression, i.e. a short string describing its purpose.

func (BucketIAMMemberConditionOutput) ToBucketIAMMemberConditionOutput

func (o BucketIAMMemberConditionOutput) ToBucketIAMMemberConditionOutput() BucketIAMMemberConditionOutput

func (BucketIAMMemberConditionOutput) ToBucketIAMMemberConditionOutputWithContext

func (o BucketIAMMemberConditionOutput) ToBucketIAMMemberConditionOutputWithContext(ctx context.Context) BucketIAMMemberConditionOutput

func (BucketIAMMemberConditionOutput) ToBucketIAMMemberConditionPtrOutput

func (o BucketIAMMemberConditionOutput) ToBucketIAMMemberConditionPtrOutput() BucketIAMMemberConditionPtrOutput

func (BucketIAMMemberConditionOutput) ToBucketIAMMemberConditionPtrOutputWithContext

func (o BucketIAMMemberConditionOutput) ToBucketIAMMemberConditionPtrOutputWithContext(ctx context.Context) BucketIAMMemberConditionPtrOutput

type BucketIAMMemberConditionPtrInput

type BucketIAMMemberConditionPtrInput interface {
	pulumi.Input

	ToBucketIAMMemberConditionPtrOutput() BucketIAMMemberConditionPtrOutput
	ToBucketIAMMemberConditionPtrOutputWithContext(context.Context) BucketIAMMemberConditionPtrOutput
}

BucketIAMMemberConditionPtrInput is an input type that accepts BucketIAMMemberConditionArgs, BucketIAMMemberConditionPtr and BucketIAMMemberConditionPtrOutput values. You can construct a concrete instance of `BucketIAMMemberConditionPtrInput` via:

        BucketIAMMemberConditionArgs{...}

or:

        nil

type BucketIAMMemberConditionPtrOutput

type BucketIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (BucketIAMMemberConditionPtrOutput) Description

An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.

func (BucketIAMMemberConditionPtrOutput) Elem

func (BucketIAMMemberConditionPtrOutput) ElementType

func (BucketIAMMemberConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (BucketIAMMemberConditionPtrOutput) Title

A title for the expression, i.e. a short string describing its purpose.

func (BucketIAMMemberConditionPtrOutput) ToBucketIAMMemberConditionPtrOutput

func (o BucketIAMMemberConditionPtrOutput) ToBucketIAMMemberConditionPtrOutput() BucketIAMMemberConditionPtrOutput

func (BucketIAMMemberConditionPtrOutput) ToBucketIAMMemberConditionPtrOutputWithContext

func (o BucketIAMMemberConditionPtrOutput) ToBucketIAMMemberConditionPtrOutputWithContext(ctx context.Context) BucketIAMMemberConditionPtrOutput

type BucketIAMMemberInput added in v4.4.0

type BucketIAMMemberInput interface {
	pulumi.Input

	ToBucketIAMMemberOutput() BucketIAMMemberOutput
	ToBucketIAMMemberOutputWithContext(ctx context.Context) BucketIAMMemberOutput
}

type BucketIAMMemberMap added in v4.11.1

type BucketIAMMemberMap map[string]BucketIAMMemberInput

func (BucketIAMMemberMap) ElementType added in v4.11.1

func (BucketIAMMemberMap) ElementType() reflect.Type

func (BucketIAMMemberMap) ToBucketIAMMemberMapOutput added in v4.11.1

func (i BucketIAMMemberMap) ToBucketIAMMemberMapOutput() BucketIAMMemberMapOutput

func (BucketIAMMemberMap) ToBucketIAMMemberMapOutputWithContext added in v4.11.1

func (i BucketIAMMemberMap) ToBucketIAMMemberMapOutputWithContext(ctx context.Context) BucketIAMMemberMapOutput

type BucketIAMMemberMapInput added in v4.11.1

type BucketIAMMemberMapInput interface {
	pulumi.Input

	ToBucketIAMMemberMapOutput() BucketIAMMemberMapOutput
	ToBucketIAMMemberMapOutputWithContext(context.Context) BucketIAMMemberMapOutput
}

BucketIAMMemberMapInput is an input type that accepts BucketIAMMemberMap and BucketIAMMemberMapOutput values. You can construct a concrete instance of `BucketIAMMemberMapInput` via:

BucketIAMMemberMap{ "key": BucketIAMMemberArgs{...} }

type BucketIAMMemberMapOutput added in v4.11.1

type BucketIAMMemberMapOutput struct{ *pulumi.OutputState }

func (BucketIAMMemberMapOutput) ElementType added in v4.11.1

func (BucketIAMMemberMapOutput) ElementType() reflect.Type

func (BucketIAMMemberMapOutput) MapIndex added in v4.11.1

func (BucketIAMMemberMapOutput) ToBucketIAMMemberMapOutput added in v4.11.1

func (o BucketIAMMemberMapOutput) ToBucketIAMMemberMapOutput() BucketIAMMemberMapOutput

func (BucketIAMMemberMapOutput) ToBucketIAMMemberMapOutputWithContext added in v4.11.1

func (o BucketIAMMemberMapOutput) ToBucketIAMMemberMapOutputWithContext(ctx context.Context) BucketIAMMemberMapOutput

type BucketIAMMemberOutput added in v4.4.0

type BucketIAMMemberOutput struct {
	*pulumi.OutputState
}

func (BucketIAMMemberOutput) ElementType added in v4.4.0

func (BucketIAMMemberOutput) ElementType() reflect.Type

func (BucketIAMMemberOutput) ToBucketIAMMemberOutput added in v4.4.0

func (o BucketIAMMemberOutput) ToBucketIAMMemberOutput() BucketIAMMemberOutput

func (BucketIAMMemberOutput) ToBucketIAMMemberOutputWithContext added in v4.4.0

func (o BucketIAMMemberOutput) ToBucketIAMMemberOutputWithContext(ctx context.Context) BucketIAMMemberOutput

func (BucketIAMMemberOutput) ToBucketIAMMemberPtrOutput added in v4.11.1

func (o BucketIAMMemberOutput) ToBucketIAMMemberPtrOutput() BucketIAMMemberPtrOutput

func (BucketIAMMemberOutput) ToBucketIAMMemberPtrOutputWithContext added in v4.11.1

func (o BucketIAMMemberOutput) ToBucketIAMMemberPtrOutputWithContext(ctx context.Context) BucketIAMMemberPtrOutput

type BucketIAMMemberPtrInput added in v4.11.1

type BucketIAMMemberPtrInput interface {
	pulumi.Input

	ToBucketIAMMemberPtrOutput() BucketIAMMemberPtrOutput
	ToBucketIAMMemberPtrOutputWithContext(ctx context.Context) BucketIAMMemberPtrOutput
}

type BucketIAMMemberPtrOutput added in v4.11.1

type BucketIAMMemberPtrOutput struct {
	*pulumi.OutputState
}

func (BucketIAMMemberPtrOutput) ElementType added in v4.11.1

func (BucketIAMMemberPtrOutput) ElementType() reflect.Type

func (BucketIAMMemberPtrOutput) ToBucketIAMMemberPtrOutput added in v4.11.1

func (o BucketIAMMemberPtrOutput) ToBucketIAMMemberPtrOutput() BucketIAMMemberPtrOutput

func (BucketIAMMemberPtrOutput) ToBucketIAMMemberPtrOutputWithContext added in v4.11.1

func (o BucketIAMMemberPtrOutput) ToBucketIAMMemberPtrOutputWithContext(ctx context.Context) BucketIAMMemberPtrOutput

type BucketIAMMemberState

type BucketIAMMemberState struct {
	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringPtrInput
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition BucketIAMMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `storage.BucketIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (BucketIAMMemberState) ElementType

func (BucketIAMMemberState) ElementType() reflect.Type

type BucketIAMPolicy

type BucketIAMPolicy struct {
	pulumi.CustomResourceState

	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
}

Three different resources help you manage your IAM policy for Cloud Storage Bucket. Each of these resources serves a different use case:

* `storage.BucketIAMPolicy`: Authoritative. Sets the IAM policy for the bucket and replaces any existing policy already attached. * `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 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 bucket are preserved.

> **Note:** `storage.BucketIAMPolicy` **cannot** be used in conjunction with `storage.BucketIAMBinding` and `storage.BucketIAMMember` or they will fight over what your policy should be.

> **Note:** `storage.BucketIAMBinding` resources **can be** used in conjunction with `storage.BucketIAMMember` resources **only if** they do not grant privilege to the same role.

## google\_storage\_bucket\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/storage.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMPolicy(ctx, "policy", &storage.BucketIAMPolicyArgs{
			Bucket:     pulumi.Any(google_storage_bucket.Default.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/storage.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: organizations.GetIAMPolicyBindingCondition{
						Title:       "expires_after_2019_12_31",
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMPolicy(ctx, "policy", &storage.BucketIAMPolicyArgs{
			Bucket:     pulumi.Any(google_storage_bucket.Default.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## google\_storage\_bucket\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMBinding(ctx, "binding", &storage.BucketIAMBindingArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMBinding(ctx, "binding", &storage.BucketIAMBindingArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &storage.BucketIAMBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## google\_storage\_bucket\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMMember(ctx, "member", &storage.BucketIAMMemberArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketIAMMember(ctx, "member", &storage.BucketIAMMemberArgs{
			Bucket: pulumi.Any(google_storage_bucket.Default.Name),
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String("user:jane@example.com"),
			Condition: &storage.BucketIAMMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms* b/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Storage bucket IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMPolicy:BucketIAMPolicy editor "b/{{bucket}} roles/storage.objectViewer user:jane@example.com"

```

IAM binding imports use space-delimited identifiersthe resource in question and the role, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMPolicy:BucketIAMPolicy editor "b/{{bucket}} roles/storage.objectViewer"

```

IAM policy imports use the identifier of the resource in question, e.g.

```sh

$ pulumi import gcp:storage/bucketIAMPolicy:BucketIAMPolicy editor b/{{bucket}}

```

-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetBucketIAMPolicy

func GetBucketIAMPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BucketIAMPolicyState, opts ...pulumi.ResourceOption) (*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

func NewBucketIAMPolicy(ctx *pulumi.Context,
	name string, args *BucketIAMPolicyArgs, opts ...pulumi.ResourceOption) (*BucketIAMPolicy, error)

NewBucketIAMPolicy registers a new resource with the given unique name, arguments, and options.

func (*BucketIAMPolicy) ElementType added in v4.4.0

func (*BucketIAMPolicy) ElementType() reflect.Type

func (*BucketIAMPolicy) ToBucketIAMPolicyOutput added in v4.4.0

func (i *BucketIAMPolicy) ToBucketIAMPolicyOutput() BucketIAMPolicyOutput

func (*BucketIAMPolicy) ToBucketIAMPolicyOutputWithContext added in v4.4.0

func (i *BucketIAMPolicy) ToBucketIAMPolicyOutputWithContext(ctx context.Context) BucketIAMPolicyOutput

func (*BucketIAMPolicy) ToBucketIAMPolicyPtrOutput added in v4.11.1

func (i *BucketIAMPolicy) ToBucketIAMPolicyPtrOutput() BucketIAMPolicyPtrOutput

func (*BucketIAMPolicy) ToBucketIAMPolicyPtrOutputWithContext added in v4.11.1

func (i *BucketIAMPolicy) ToBucketIAMPolicyPtrOutputWithContext(ctx context.Context) BucketIAMPolicyPtrOutput

type BucketIAMPolicyArgs

type BucketIAMPolicyArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
}

The set of arguments for constructing a BucketIAMPolicy resource.

func (BucketIAMPolicyArgs) ElementType

func (BucketIAMPolicyArgs) ElementType() reflect.Type

type BucketIAMPolicyArray added in v4.11.1

type BucketIAMPolicyArray []BucketIAMPolicyInput

func (BucketIAMPolicyArray) ElementType added in v4.11.1

func (BucketIAMPolicyArray) ElementType() reflect.Type

func (BucketIAMPolicyArray) ToBucketIAMPolicyArrayOutput added in v4.11.1

func (i BucketIAMPolicyArray) ToBucketIAMPolicyArrayOutput() BucketIAMPolicyArrayOutput

func (BucketIAMPolicyArray) ToBucketIAMPolicyArrayOutputWithContext added in v4.11.1

func (i BucketIAMPolicyArray) ToBucketIAMPolicyArrayOutputWithContext(ctx context.Context) BucketIAMPolicyArrayOutput

type BucketIAMPolicyArrayInput added in v4.11.1

type BucketIAMPolicyArrayInput interface {
	pulumi.Input

	ToBucketIAMPolicyArrayOutput() BucketIAMPolicyArrayOutput
	ToBucketIAMPolicyArrayOutputWithContext(context.Context) BucketIAMPolicyArrayOutput
}

BucketIAMPolicyArrayInput is an input type that accepts BucketIAMPolicyArray and BucketIAMPolicyArrayOutput values. You can construct a concrete instance of `BucketIAMPolicyArrayInput` via:

BucketIAMPolicyArray{ BucketIAMPolicyArgs{...} }

type BucketIAMPolicyArrayOutput added in v4.11.1

type BucketIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (BucketIAMPolicyArrayOutput) ElementType added in v4.11.1

func (BucketIAMPolicyArrayOutput) ElementType() reflect.Type

func (BucketIAMPolicyArrayOutput) Index added in v4.11.1

func (BucketIAMPolicyArrayOutput) ToBucketIAMPolicyArrayOutput added in v4.11.1

func (o BucketIAMPolicyArrayOutput) ToBucketIAMPolicyArrayOutput() BucketIAMPolicyArrayOutput

func (BucketIAMPolicyArrayOutput) ToBucketIAMPolicyArrayOutputWithContext added in v4.11.1

func (o BucketIAMPolicyArrayOutput) ToBucketIAMPolicyArrayOutputWithContext(ctx context.Context) BucketIAMPolicyArrayOutput

type BucketIAMPolicyInput added in v4.4.0

type BucketIAMPolicyInput interface {
	pulumi.Input

	ToBucketIAMPolicyOutput() BucketIAMPolicyOutput
	ToBucketIAMPolicyOutputWithContext(ctx context.Context) BucketIAMPolicyOutput
}

type BucketIAMPolicyMap added in v4.11.1

type BucketIAMPolicyMap map[string]BucketIAMPolicyInput

func (BucketIAMPolicyMap) ElementType added in v4.11.1

func (BucketIAMPolicyMap) ElementType() reflect.Type

func (BucketIAMPolicyMap) ToBucketIAMPolicyMapOutput added in v4.11.1

func (i BucketIAMPolicyMap) ToBucketIAMPolicyMapOutput() BucketIAMPolicyMapOutput

func (BucketIAMPolicyMap) ToBucketIAMPolicyMapOutputWithContext added in v4.11.1

func (i BucketIAMPolicyMap) ToBucketIAMPolicyMapOutputWithContext(ctx context.Context) BucketIAMPolicyMapOutput

type BucketIAMPolicyMapInput added in v4.11.1

type BucketIAMPolicyMapInput interface {
	pulumi.Input

	ToBucketIAMPolicyMapOutput() BucketIAMPolicyMapOutput
	ToBucketIAMPolicyMapOutputWithContext(context.Context) BucketIAMPolicyMapOutput
}

BucketIAMPolicyMapInput is an input type that accepts BucketIAMPolicyMap and BucketIAMPolicyMapOutput values. You can construct a concrete instance of `BucketIAMPolicyMapInput` via:

BucketIAMPolicyMap{ "key": BucketIAMPolicyArgs{...} }

type BucketIAMPolicyMapOutput added in v4.11.1

type BucketIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (BucketIAMPolicyMapOutput) ElementType added in v4.11.1

func (BucketIAMPolicyMapOutput) ElementType() reflect.Type

func (BucketIAMPolicyMapOutput) MapIndex added in v4.11.1

func (BucketIAMPolicyMapOutput) ToBucketIAMPolicyMapOutput added in v4.11.1

func (o BucketIAMPolicyMapOutput) ToBucketIAMPolicyMapOutput() BucketIAMPolicyMapOutput

func (BucketIAMPolicyMapOutput) ToBucketIAMPolicyMapOutputWithContext added in v4.11.1

func (o BucketIAMPolicyMapOutput) ToBucketIAMPolicyMapOutputWithContext(ctx context.Context) BucketIAMPolicyMapOutput

type BucketIAMPolicyOutput added in v4.4.0

type BucketIAMPolicyOutput struct {
	*pulumi.OutputState
}

func (BucketIAMPolicyOutput) ElementType added in v4.4.0

func (BucketIAMPolicyOutput) ElementType() reflect.Type

func (BucketIAMPolicyOutput) ToBucketIAMPolicyOutput added in v4.4.0

func (o BucketIAMPolicyOutput) ToBucketIAMPolicyOutput() BucketIAMPolicyOutput

func (BucketIAMPolicyOutput) ToBucketIAMPolicyOutputWithContext added in v4.4.0

func (o BucketIAMPolicyOutput) ToBucketIAMPolicyOutputWithContext(ctx context.Context) BucketIAMPolicyOutput

func (BucketIAMPolicyOutput) ToBucketIAMPolicyPtrOutput added in v4.11.1

func (o BucketIAMPolicyOutput) ToBucketIAMPolicyPtrOutput() BucketIAMPolicyPtrOutput

func (BucketIAMPolicyOutput) ToBucketIAMPolicyPtrOutputWithContext added in v4.11.1

func (o BucketIAMPolicyOutput) ToBucketIAMPolicyPtrOutputWithContext(ctx context.Context) BucketIAMPolicyPtrOutput

type BucketIAMPolicyPtrInput added in v4.11.1

type BucketIAMPolicyPtrInput interface {
	pulumi.Input

	ToBucketIAMPolicyPtrOutput() BucketIAMPolicyPtrOutput
	ToBucketIAMPolicyPtrOutputWithContext(ctx context.Context) BucketIAMPolicyPtrOutput
}

type BucketIAMPolicyPtrOutput added in v4.11.1

type BucketIAMPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (BucketIAMPolicyPtrOutput) ElementType added in v4.11.1

func (BucketIAMPolicyPtrOutput) ElementType() reflect.Type

func (BucketIAMPolicyPtrOutput) ToBucketIAMPolicyPtrOutput added in v4.11.1

func (o BucketIAMPolicyPtrOutput) ToBucketIAMPolicyPtrOutput() BucketIAMPolicyPtrOutput

func (BucketIAMPolicyPtrOutput) ToBucketIAMPolicyPtrOutputWithContext added in v4.11.1

func (o BucketIAMPolicyPtrOutput) ToBucketIAMPolicyPtrOutputWithContext(ctx context.Context) BucketIAMPolicyPtrOutput

type BucketIAMPolicyState

type BucketIAMPolicyState struct {
	// Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
}

func (BucketIAMPolicyState) ElementType

func (BucketIAMPolicyState) ElementType() reflect.Type

type BucketInput added in v4.4.0

type BucketInput interface {
	pulumi.Input

	ToBucketOutput() BucketOutput
	ToBucketOutputWithContext(ctx context.Context) BucketOutput
}

type BucketLifecycleRule

type BucketLifecycleRule struct {
	// The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.
	Action BucketLifecycleRuleAction `pulumi:"action"`
	// The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.
	Condition BucketLifecycleRuleCondition `pulumi:"condition"`
}

type BucketLifecycleRuleAction

type BucketLifecycleRuleAction struct {
	// The target [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects affected by this Lifecycle Rule. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
	StorageClass *string `pulumi:"storageClass"`
	// The type of the action of this Lifecycle Rule. Supported values include: `Delete` and `SetStorageClass`.
	Type string `pulumi:"type"`
}

type BucketLifecycleRuleActionArgs

type BucketLifecycleRuleActionArgs struct {
	// The target [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects affected by this Lifecycle Rule. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
	StorageClass pulumi.StringPtrInput `pulumi:"storageClass"`
	// The type of the action of this Lifecycle Rule. Supported values include: `Delete` and `SetStorageClass`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (BucketLifecycleRuleActionArgs) ElementType

func (BucketLifecycleRuleActionArgs) ToBucketLifecycleRuleActionOutput

func (i BucketLifecycleRuleActionArgs) ToBucketLifecycleRuleActionOutput() BucketLifecycleRuleActionOutput

func (BucketLifecycleRuleActionArgs) ToBucketLifecycleRuleActionOutputWithContext

func (i BucketLifecycleRuleActionArgs) ToBucketLifecycleRuleActionOutputWithContext(ctx context.Context) BucketLifecycleRuleActionOutput

type BucketLifecycleRuleActionInput

type BucketLifecycleRuleActionInput interface {
	pulumi.Input

	ToBucketLifecycleRuleActionOutput() BucketLifecycleRuleActionOutput
	ToBucketLifecycleRuleActionOutputWithContext(context.Context) BucketLifecycleRuleActionOutput
}

BucketLifecycleRuleActionInput is an input type that accepts BucketLifecycleRuleActionArgs and BucketLifecycleRuleActionOutput values. You can construct a concrete instance of `BucketLifecycleRuleActionInput` via:

BucketLifecycleRuleActionArgs{...}

type BucketLifecycleRuleActionOutput

type BucketLifecycleRuleActionOutput struct{ *pulumi.OutputState }

func (BucketLifecycleRuleActionOutput) ElementType

func (BucketLifecycleRuleActionOutput) StorageClass

The target [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects affected by this Lifecycle Rule. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.

func (BucketLifecycleRuleActionOutput) ToBucketLifecycleRuleActionOutput

func (o BucketLifecycleRuleActionOutput) ToBucketLifecycleRuleActionOutput() BucketLifecycleRuleActionOutput

func (BucketLifecycleRuleActionOutput) ToBucketLifecycleRuleActionOutputWithContext

func (o BucketLifecycleRuleActionOutput) ToBucketLifecycleRuleActionOutputWithContext(ctx context.Context) BucketLifecycleRuleActionOutput

func (BucketLifecycleRuleActionOutput) Type

The type of the action of this Lifecycle Rule. Supported values include: `Delete` and `SetStorageClass`.

type BucketLifecycleRuleArgs

type BucketLifecycleRuleArgs struct {
	// The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.
	Action BucketLifecycleRuleActionInput `pulumi:"action"`
	// The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.
	Condition BucketLifecycleRuleConditionInput `pulumi:"condition"`
}

func (BucketLifecycleRuleArgs) ElementType

func (BucketLifecycleRuleArgs) ElementType() reflect.Type

func (BucketLifecycleRuleArgs) ToBucketLifecycleRuleOutput

func (i BucketLifecycleRuleArgs) ToBucketLifecycleRuleOutput() BucketLifecycleRuleOutput

func (BucketLifecycleRuleArgs) ToBucketLifecycleRuleOutputWithContext

func (i BucketLifecycleRuleArgs) ToBucketLifecycleRuleOutputWithContext(ctx context.Context) BucketLifecycleRuleOutput

type BucketLifecycleRuleArray

type BucketLifecycleRuleArray []BucketLifecycleRuleInput

func (BucketLifecycleRuleArray) ElementType

func (BucketLifecycleRuleArray) ElementType() reflect.Type

func (BucketLifecycleRuleArray) ToBucketLifecycleRuleArrayOutput

func (i BucketLifecycleRuleArray) ToBucketLifecycleRuleArrayOutput() BucketLifecycleRuleArrayOutput

func (BucketLifecycleRuleArray) ToBucketLifecycleRuleArrayOutputWithContext

func (i BucketLifecycleRuleArray) ToBucketLifecycleRuleArrayOutputWithContext(ctx context.Context) BucketLifecycleRuleArrayOutput

type BucketLifecycleRuleArrayInput

type BucketLifecycleRuleArrayInput interface {
	pulumi.Input

	ToBucketLifecycleRuleArrayOutput() BucketLifecycleRuleArrayOutput
	ToBucketLifecycleRuleArrayOutputWithContext(context.Context) BucketLifecycleRuleArrayOutput
}

BucketLifecycleRuleArrayInput is an input type that accepts BucketLifecycleRuleArray and BucketLifecycleRuleArrayOutput values. You can construct a concrete instance of `BucketLifecycleRuleArrayInput` via:

BucketLifecycleRuleArray{ BucketLifecycleRuleArgs{...} }

type BucketLifecycleRuleArrayOutput

type BucketLifecycleRuleArrayOutput struct{ *pulumi.OutputState }

func (BucketLifecycleRuleArrayOutput) ElementType

func (BucketLifecycleRuleArrayOutput) Index

func (BucketLifecycleRuleArrayOutput) ToBucketLifecycleRuleArrayOutput

func (o BucketLifecycleRuleArrayOutput) ToBucketLifecycleRuleArrayOutput() BucketLifecycleRuleArrayOutput

func (BucketLifecycleRuleArrayOutput) ToBucketLifecycleRuleArrayOutputWithContext

func (o BucketLifecycleRuleArrayOutput) ToBucketLifecycleRuleArrayOutputWithContext(ctx context.Context) BucketLifecycleRuleArrayOutput

type BucketLifecycleRuleCondition

type BucketLifecycleRuleCondition struct {
	// Minimum age of an object in days to satisfy this condition.
	Age *int `pulumi:"age"`
	// Creation date of an object in RFC 3339 (e.g. `2017-06-13`) to satisfy this condition.
	CreatedBefore *string `pulumi:"createdBefore"`
	// Creation date of an object in RFC 3339 (e.g. `2017-06-13`) to satisfy this condition.
	CustomTimeBefore *string `pulumi:"customTimeBefore"`
	// Date in RFC 3339 (e.g. `2017-06-13`) when an object's Custom-Time metadata is earlier than the date specified in this condition.
	DaysSinceCustomTime *int `pulumi:"daysSinceCustomTime"`
	// Relevant only for versioned objects. Number of days elapsed since the noncurrent timestamp of an object.
	DaysSinceNoncurrentTime *int `pulumi:"daysSinceNoncurrentTime"`
	// [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects to satisfy this condition. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `STANDARD`, `DURABLE_REDUCED_AVAILABILITY`.
	MatchesStorageClasses []string `pulumi:"matchesStorageClasses"`
	// Relevant only for versioned objects. The date in RFC 3339 (e.g. `2017-06-13`) when the object became nonconcurrent.
	NoncurrentTimeBefore *string `pulumi:"noncurrentTimeBefore"`
	// Relevant only for versioned objects. The number of newer versions of an object to satisfy this condition.
	NumNewerVersions *int `pulumi:"numNewerVersions"`
	// Match to live and/or archived objects. Unversioned buckets have only live objects. Supported values include: `"LIVE"`, `"ARCHIVED"`, `"ANY"`.
	WithState *string `pulumi:"withState"`
}

type BucketLifecycleRuleConditionArgs

type BucketLifecycleRuleConditionArgs struct {
	// Minimum age of an object in days to satisfy this condition.
	Age pulumi.IntPtrInput `pulumi:"age"`
	// Creation date of an object in RFC 3339 (e.g. `2017-06-13`) to satisfy this condition.
	CreatedBefore pulumi.StringPtrInput `pulumi:"createdBefore"`
	// Creation date of an object in RFC 3339 (e.g. `2017-06-13`) to satisfy this condition.
	CustomTimeBefore pulumi.StringPtrInput `pulumi:"customTimeBefore"`
	// Date in RFC 3339 (e.g. `2017-06-13`) when an object's Custom-Time metadata is earlier than the date specified in this condition.
	DaysSinceCustomTime pulumi.IntPtrInput `pulumi:"daysSinceCustomTime"`
	// Relevant only for versioned objects. Number of days elapsed since the noncurrent timestamp of an object.
	DaysSinceNoncurrentTime pulumi.IntPtrInput `pulumi:"daysSinceNoncurrentTime"`
	// [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects to satisfy this condition. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `STANDARD`, `DURABLE_REDUCED_AVAILABILITY`.
	MatchesStorageClasses pulumi.StringArrayInput `pulumi:"matchesStorageClasses"`
	// Relevant only for versioned objects. The date in RFC 3339 (e.g. `2017-06-13`) when the object became nonconcurrent.
	NoncurrentTimeBefore pulumi.StringPtrInput `pulumi:"noncurrentTimeBefore"`
	// Relevant only for versioned objects. The number of newer versions of an object to satisfy this condition.
	NumNewerVersions pulumi.IntPtrInput `pulumi:"numNewerVersions"`
	// Match to live and/or archived objects. Unversioned buckets have only live objects. Supported values include: `"LIVE"`, `"ARCHIVED"`, `"ANY"`.
	WithState pulumi.StringPtrInput `pulumi:"withState"`
}

func (BucketLifecycleRuleConditionArgs) ElementType

func (BucketLifecycleRuleConditionArgs) ToBucketLifecycleRuleConditionOutput

func (i BucketLifecycleRuleConditionArgs) ToBucketLifecycleRuleConditionOutput() BucketLifecycleRuleConditionOutput

func (BucketLifecycleRuleConditionArgs) ToBucketLifecycleRuleConditionOutputWithContext

func (i BucketLifecycleRuleConditionArgs) ToBucketLifecycleRuleConditionOutputWithContext(ctx context.Context) BucketLifecycleRuleConditionOutput

type BucketLifecycleRuleConditionInput

type BucketLifecycleRuleConditionInput interface {
	pulumi.Input

	ToBucketLifecycleRuleConditionOutput() BucketLifecycleRuleConditionOutput
	ToBucketLifecycleRuleConditionOutputWithContext(context.Context) BucketLifecycleRuleConditionOutput
}

BucketLifecycleRuleConditionInput is an input type that accepts BucketLifecycleRuleConditionArgs and BucketLifecycleRuleConditionOutput values. You can construct a concrete instance of `BucketLifecycleRuleConditionInput` via:

BucketLifecycleRuleConditionArgs{...}

type BucketLifecycleRuleConditionOutput

type BucketLifecycleRuleConditionOutput struct{ *pulumi.OutputState }

func (BucketLifecycleRuleConditionOutput) Age

Minimum age of an object in days to satisfy this condition.

func (BucketLifecycleRuleConditionOutput) CreatedBefore

Creation date of an object in RFC 3339 (e.g. `2017-06-13`) to satisfy this condition.

func (BucketLifecycleRuleConditionOutput) CustomTimeBefore added in v4.6.0

Creation date of an object in RFC 3339 (e.g. `2017-06-13`) to satisfy this condition.

func (BucketLifecycleRuleConditionOutput) DaysSinceCustomTime added in v4.6.0

func (o BucketLifecycleRuleConditionOutput) DaysSinceCustomTime() pulumi.IntPtrOutput

Date in RFC 3339 (e.g. `2017-06-13`) when an object's Custom-Time metadata is earlier than the date specified in this condition.

func (BucketLifecycleRuleConditionOutput) DaysSinceNoncurrentTime added in v4.6.0

func (o BucketLifecycleRuleConditionOutput) DaysSinceNoncurrentTime() pulumi.IntPtrOutput

Relevant only for versioned objects. Number of days elapsed since the noncurrent timestamp of an object.

func (BucketLifecycleRuleConditionOutput) ElementType

func (BucketLifecycleRuleConditionOutput) MatchesStorageClasses

[Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects to satisfy this condition. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `STANDARD`, `DURABLE_REDUCED_AVAILABILITY`.

func (BucketLifecycleRuleConditionOutput) NoncurrentTimeBefore added in v4.6.0

Relevant only for versioned objects. The date in RFC 3339 (e.g. `2017-06-13`) when the object became nonconcurrent.

func (BucketLifecycleRuleConditionOutput) NumNewerVersions

Relevant only for versioned objects. The number of newer versions of an object to satisfy this condition.

func (BucketLifecycleRuleConditionOutput) ToBucketLifecycleRuleConditionOutput

func (o BucketLifecycleRuleConditionOutput) ToBucketLifecycleRuleConditionOutput() BucketLifecycleRuleConditionOutput

func (BucketLifecycleRuleConditionOutput) ToBucketLifecycleRuleConditionOutputWithContext

func (o BucketLifecycleRuleConditionOutput) ToBucketLifecycleRuleConditionOutputWithContext(ctx context.Context) BucketLifecycleRuleConditionOutput

func (BucketLifecycleRuleConditionOutput) WithState

Match to live and/or archived objects. Unversioned buckets have only live objects. Supported values include: `"LIVE"`, `"ARCHIVED"`, `"ANY"`.

type BucketLifecycleRuleInput

type BucketLifecycleRuleInput interface {
	pulumi.Input

	ToBucketLifecycleRuleOutput() BucketLifecycleRuleOutput
	ToBucketLifecycleRuleOutputWithContext(context.Context) BucketLifecycleRuleOutput
}

BucketLifecycleRuleInput is an input type that accepts BucketLifecycleRuleArgs and BucketLifecycleRuleOutput values. You can construct a concrete instance of `BucketLifecycleRuleInput` via:

BucketLifecycleRuleArgs{...}

type BucketLifecycleRuleOutput

type BucketLifecycleRuleOutput struct{ *pulumi.OutputState }

func (BucketLifecycleRuleOutput) Action

The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.

func (BucketLifecycleRuleOutput) Condition

The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.

func (BucketLifecycleRuleOutput) ElementType

func (BucketLifecycleRuleOutput) ElementType() reflect.Type

func (BucketLifecycleRuleOutput) ToBucketLifecycleRuleOutput

func (o BucketLifecycleRuleOutput) ToBucketLifecycleRuleOutput() BucketLifecycleRuleOutput

func (BucketLifecycleRuleOutput) ToBucketLifecycleRuleOutputWithContext

func (o BucketLifecycleRuleOutput) ToBucketLifecycleRuleOutputWithContext(ctx context.Context) BucketLifecycleRuleOutput

type BucketLogging

type BucketLogging struct {
	// The bucket that will receive log objects.
	LogBucket string `pulumi:"logBucket"`
	// The object prefix for log objects. If it's not provided,
	// by default GCS sets this to this bucket's name.
	LogObjectPrefix *string `pulumi:"logObjectPrefix"`
}

type BucketLoggingArgs

type BucketLoggingArgs struct {
	// The bucket that will receive log objects.
	LogBucket pulumi.StringInput `pulumi:"logBucket"`
	// The object prefix for log objects. If it's not provided,
	// by default GCS sets this to this bucket's name.
	LogObjectPrefix pulumi.StringPtrInput `pulumi:"logObjectPrefix"`
}

func (BucketLoggingArgs) ElementType

func (BucketLoggingArgs) ElementType() reflect.Type

func (BucketLoggingArgs) ToBucketLoggingOutput

func (i BucketLoggingArgs) ToBucketLoggingOutput() BucketLoggingOutput

func (BucketLoggingArgs) ToBucketLoggingOutputWithContext

func (i BucketLoggingArgs) ToBucketLoggingOutputWithContext(ctx context.Context) BucketLoggingOutput

func (BucketLoggingArgs) ToBucketLoggingPtrOutput

func (i BucketLoggingArgs) ToBucketLoggingPtrOutput() BucketLoggingPtrOutput

func (BucketLoggingArgs) ToBucketLoggingPtrOutputWithContext

func (i BucketLoggingArgs) ToBucketLoggingPtrOutputWithContext(ctx context.Context) BucketLoggingPtrOutput

type BucketLoggingInput

type BucketLoggingInput interface {
	pulumi.Input

	ToBucketLoggingOutput() BucketLoggingOutput
	ToBucketLoggingOutputWithContext(context.Context) BucketLoggingOutput
}

BucketLoggingInput is an input type that accepts BucketLoggingArgs and BucketLoggingOutput values. You can construct a concrete instance of `BucketLoggingInput` via:

BucketLoggingArgs{...}

type BucketLoggingOutput

type BucketLoggingOutput struct{ *pulumi.OutputState }

func (BucketLoggingOutput) ElementType

func (BucketLoggingOutput) ElementType() reflect.Type

func (BucketLoggingOutput) LogBucket

func (o BucketLoggingOutput) LogBucket() pulumi.StringOutput

The bucket that will receive log objects.

func (BucketLoggingOutput) LogObjectPrefix

func (o BucketLoggingOutput) LogObjectPrefix() pulumi.StringPtrOutput

The object prefix for log objects. If it's not provided, by default GCS sets this to this bucket's name.

func (BucketLoggingOutput) ToBucketLoggingOutput

func (o BucketLoggingOutput) ToBucketLoggingOutput() BucketLoggingOutput

func (BucketLoggingOutput) ToBucketLoggingOutputWithContext

func (o BucketLoggingOutput) ToBucketLoggingOutputWithContext(ctx context.Context) BucketLoggingOutput

func (BucketLoggingOutput) ToBucketLoggingPtrOutput

func (o BucketLoggingOutput) ToBucketLoggingPtrOutput() BucketLoggingPtrOutput

func (BucketLoggingOutput) ToBucketLoggingPtrOutputWithContext

func (o BucketLoggingOutput) ToBucketLoggingPtrOutputWithContext(ctx context.Context) BucketLoggingPtrOutput

type BucketLoggingPtrInput

type BucketLoggingPtrInput interface {
	pulumi.Input

	ToBucketLoggingPtrOutput() BucketLoggingPtrOutput
	ToBucketLoggingPtrOutputWithContext(context.Context) BucketLoggingPtrOutput
}

BucketLoggingPtrInput is an input type that accepts BucketLoggingArgs, BucketLoggingPtr and BucketLoggingPtrOutput values. You can construct a concrete instance of `BucketLoggingPtrInput` via:

        BucketLoggingArgs{...}

or:

        nil

type BucketLoggingPtrOutput

type BucketLoggingPtrOutput struct{ *pulumi.OutputState }

func (BucketLoggingPtrOutput) Elem

func (BucketLoggingPtrOutput) ElementType

func (BucketLoggingPtrOutput) ElementType() reflect.Type

func (BucketLoggingPtrOutput) LogBucket

The bucket that will receive log objects.

func (BucketLoggingPtrOutput) LogObjectPrefix

func (o BucketLoggingPtrOutput) LogObjectPrefix() pulumi.StringPtrOutput

The object prefix for log objects. If it's not provided, by default GCS sets this to this bucket's name.

func (BucketLoggingPtrOutput) ToBucketLoggingPtrOutput

func (o BucketLoggingPtrOutput) ToBucketLoggingPtrOutput() BucketLoggingPtrOutput

func (BucketLoggingPtrOutput) ToBucketLoggingPtrOutputWithContext

func (o BucketLoggingPtrOutput) ToBucketLoggingPtrOutputWithContext(ctx context.Context) BucketLoggingPtrOutput

type BucketMap added in v4.11.1

type BucketMap map[string]BucketInput

func (BucketMap) ElementType added in v4.11.1

func (BucketMap) ElementType() reflect.Type

func (BucketMap) ToBucketMapOutput added in v4.11.1

func (i BucketMap) ToBucketMapOutput() BucketMapOutput

func (BucketMap) ToBucketMapOutputWithContext added in v4.11.1

func (i BucketMap) ToBucketMapOutputWithContext(ctx context.Context) BucketMapOutput

type BucketMapInput added in v4.11.1

type BucketMapInput interface {
	pulumi.Input

	ToBucketMapOutput() BucketMapOutput
	ToBucketMapOutputWithContext(context.Context) BucketMapOutput
}

BucketMapInput is an input type that accepts BucketMap and BucketMapOutput values. You can construct a concrete instance of `BucketMapInput` via:

BucketMap{ "key": BucketArgs{...} }

type BucketMapOutput added in v4.11.1

type BucketMapOutput struct{ *pulumi.OutputState }

func (BucketMapOutput) ElementType added in v4.11.1

func (BucketMapOutput) ElementType() reflect.Type

func (BucketMapOutput) MapIndex added in v4.11.1

func (BucketMapOutput) ToBucketMapOutput added in v4.11.1

func (o BucketMapOutput) ToBucketMapOutput() BucketMapOutput

func (BucketMapOutput) ToBucketMapOutputWithContext added in v4.11.1

func (o BucketMapOutput) ToBucketMapOutputWithContext(ctx context.Context) BucketMapOutput

type BucketObject

type BucketObject struct {
	pulumi.CustomResourceState

	// The name of the containing bucket.
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// [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 pulumi.StringPtrOutput `pulumi:"cacheControl"`
	// Data as `string` to be uploaded. Must be defined if `source` is not. **Note**: The `content` field is marked as sensitive.
	Content pulumi.StringPtrOutput `pulumi:"content"`
	// [Content-Disposition](https://tools.ietf.org/html/rfc6266) of the object data.
	ContentDisposition pulumi.StringPtrOutput `pulumi:"contentDisposition"`
	// [Content-Encoding](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) of the object data.
	ContentEncoding pulumi.StringPtrOutput `pulumi:"contentEncoding"`
	// [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object data.
	ContentLanguage pulumi.StringPtrOutput `pulumi:"contentLanguage"`
	// [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 pulumi.StringOutput `pulumi:"contentType"`
	// (Computed) Base 64 CRC32 hash of the uploaded data.
	Crc32c        pulumi.StringOutput    `pulumi:"crc32c"`
	DetectMd5hash pulumi.StringPtrOutput `pulumi:"detectMd5hash"`
	// The resource name of the Cloud KMS key that will be used to [encrypt](https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys) the object.
	KmsKeyName pulumi.StringOutput `pulumi:"kmsKeyName"`
	// (Computed) Base 64 MD5 hash of the uploaded data.
	Md5hash pulumi.StringOutput `pulumi:"md5hash"`
	// (Computed) A url reference to download this object.
	MediaLink pulumi.StringOutput `pulumi:"mediaLink"`
	// User-provided metadata, in key/value pairs.
	Metadata pulumi.StringMapOutput `pulumi:"metadata"`
	// The name of the object. If you're interpolating the name of this object, see `outputName` instead.
	Name pulumi.StringOutput `pulumi:"name"`
	// (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 pulumi.StringOutput `pulumi:"outputName"`
	// (Computed) A url reference to this object.
	SelfLink pulumi.StringOutput `pulumi:"selfLink"`
	// A path to the data you want to upload. Must be defined
	// if `content` is not.
	Source pulumi.AssetOrArchiveOutput `pulumi:"source"`
	// The [StorageClass](https://cloud.google.com/storage/docs/storage-classes) of the new bucket object.
	// Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`. 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 pulumi.StringOutput `pulumi:"storageClass"`
}

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).

## Example Usage

Example creating a public object in an existing `image-store` bucket.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucketObject(ctx, "picture", &storage.BucketObjectArgs{
			Bucket: pulumi.String("image-store"),
			Source: pulumi.NewFileAsset("/images/nature/garden-tiger-moth.jpg"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource does not support import.

func GetBucketObject

func GetBucketObject(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BucketObjectState, opts ...pulumi.ResourceOption) (*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.ResourceOption) (*BucketObject, error)

NewBucketObject registers a new resource with the given unique name, arguments, and options.

func (*BucketObject) ElementType added in v4.4.0

func (*BucketObject) ElementType() reflect.Type

func (*BucketObject) ToBucketObjectOutput added in v4.4.0

func (i *BucketObject) ToBucketObjectOutput() BucketObjectOutput

func (*BucketObject) ToBucketObjectOutputWithContext added in v4.4.0

func (i *BucketObject) ToBucketObjectOutputWithContext(ctx context.Context) BucketObjectOutput

func (*BucketObject) ToBucketObjectPtrOutput added in v4.11.1

func (i *BucketObject) ToBucketObjectPtrOutput() BucketObjectPtrOutput

func (*BucketObject) ToBucketObjectPtrOutputWithContext added in v4.11.1

func (i *BucketObject) ToBucketObjectPtrOutputWithContext(ctx context.Context) BucketObjectPtrOutput

type BucketObjectArgs

type BucketObjectArgs struct {
	// The name of the containing bucket.
	Bucket pulumi.StringInput
	// [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 pulumi.StringPtrInput
	// Data as `string` to be uploaded. Must be defined if `source` is not. **Note**: The `content` field is marked as sensitive.
	Content pulumi.StringPtrInput
	// [Content-Disposition](https://tools.ietf.org/html/rfc6266) of the object data.
	ContentDisposition pulumi.StringPtrInput
	// [Content-Encoding](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) of the object data.
	ContentEncoding pulumi.StringPtrInput
	// [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object data.
	ContentLanguage pulumi.StringPtrInput
	// [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   pulumi.StringPtrInput
	DetectMd5hash pulumi.StringPtrInput
	// The resource name of the Cloud KMS key that will be used to [encrypt](https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys) the object.
	KmsKeyName pulumi.StringPtrInput
	// User-provided metadata, in key/value pairs.
	Metadata pulumi.StringMapInput
	// The name of the object. If you're interpolating the name of this object, see `outputName` instead.
	Name pulumi.StringPtrInput
	// A path to the data you want to upload. Must be defined
	// if `content` is not.
	Source pulumi.AssetOrArchiveInput
	// The [StorageClass](https://cloud.google.com/storage/docs/storage-classes) of the new bucket object.
	// Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`. 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 pulumi.StringPtrInput
}

The set of arguments for constructing a BucketObject resource.

func (BucketObjectArgs) ElementType

func (BucketObjectArgs) ElementType() reflect.Type

type BucketObjectArray added in v4.11.1

type BucketObjectArray []BucketObjectInput

func (BucketObjectArray) ElementType added in v4.11.1

func (BucketObjectArray) ElementType() reflect.Type

func (BucketObjectArray) ToBucketObjectArrayOutput added in v4.11.1

func (i BucketObjectArray) ToBucketObjectArrayOutput() BucketObjectArrayOutput

func (BucketObjectArray) ToBucketObjectArrayOutputWithContext added in v4.11.1

func (i BucketObjectArray) ToBucketObjectArrayOutputWithContext(ctx context.Context) BucketObjectArrayOutput

type BucketObjectArrayInput added in v4.11.1

type BucketObjectArrayInput interface {
	pulumi.Input

	ToBucketObjectArrayOutput() BucketObjectArrayOutput
	ToBucketObjectArrayOutputWithContext(context.Context) BucketObjectArrayOutput
}

BucketObjectArrayInput is an input type that accepts BucketObjectArray and BucketObjectArrayOutput values. You can construct a concrete instance of `BucketObjectArrayInput` via:

BucketObjectArray{ BucketObjectArgs{...} }

type BucketObjectArrayOutput added in v4.11.1

type BucketObjectArrayOutput struct{ *pulumi.OutputState }

func (BucketObjectArrayOutput) ElementType added in v4.11.1

func (BucketObjectArrayOutput) ElementType() reflect.Type

func (BucketObjectArrayOutput) Index added in v4.11.1

func (BucketObjectArrayOutput) ToBucketObjectArrayOutput added in v4.11.1

func (o BucketObjectArrayOutput) ToBucketObjectArrayOutput() BucketObjectArrayOutput

func (BucketObjectArrayOutput) ToBucketObjectArrayOutputWithContext added in v4.11.1

func (o BucketObjectArrayOutput) ToBucketObjectArrayOutputWithContext(ctx context.Context) BucketObjectArrayOutput

type BucketObjectInput added in v4.4.0

type BucketObjectInput interface {
	pulumi.Input

	ToBucketObjectOutput() BucketObjectOutput
	ToBucketObjectOutputWithContext(ctx context.Context) BucketObjectOutput
}

type BucketObjectMap added in v4.11.1

type BucketObjectMap map[string]BucketObjectInput

func (BucketObjectMap) ElementType added in v4.11.1

func (BucketObjectMap) ElementType() reflect.Type

func (BucketObjectMap) ToBucketObjectMapOutput added in v4.11.1

func (i BucketObjectMap) ToBucketObjectMapOutput() BucketObjectMapOutput

func (BucketObjectMap) ToBucketObjectMapOutputWithContext added in v4.11.1

func (i BucketObjectMap) ToBucketObjectMapOutputWithContext(ctx context.Context) BucketObjectMapOutput

type BucketObjectMapInput added in v4.11.1

type BucketObjectMapInput interface {
	pulumi.Input

	ToBucketObjectMapOutput() BucketObjectMapOutput
	ToBucketObjectMapOutputWithContext(context.Context) BucketObjectMapOutput
}

BucketObjectMapInput is an input type that accepts BucketObjectMap and BucketObjectMapOutput values. You can construct a concrete instance of `BucketObjectMapInput` via:

BucketObjectMap{ "key": BucketObjectArgs{...} }

type BucketObjectMapOutput added in v4.11.1

type BucketObjectMapOutput struct{ *pulumi.OutputState }

func (BucketObjectMapOutput) ElementType added in v4.11.1

func (BucketObjectMapOutput) ElementType() reflect.Type

func (BucketObjectMapOutput) MapIndex added in v4.11.1

func (BucketObjectMapOutput) ToBucketObjectMapOutput added in v4.11.1

func (o BucketObjectMapOutput) ToBucketObjectMapOutput() BucketObjectMapOutput

func (BucketObjectMapOutput) ToBucketObjectMapOutputWithContext added in v4.11.1

func (o BucketObjectMapOutput) ToBucketObjectMapOutputWithContext(ctx context.Context) BucketObjectMapOutput

type BucketObjectOutput added in v4.4.0

type BucketObjectOutput struct {
	*pulumi.OutputState
}

func (BucketObjectOutput) ElementType added in v4.4.0

func (BucketObjectOutput) ElementType() reflect.Type

func (BucketObjectOutput) ToBucketObjectOutput added in v4.4.0

func (o BucketObjectOutput) ToBucketObjectOutput() BucketObjectOutput

func (BucketObjectOutput) ToBucketObjectOutputWithContext added in v4.4.0

func (o BucketObjectOutput) ToBucketObjectOutputWithContext(ctx context.Context) BucketObjectOutput

func (BucketObjectOutput) ToBucketObjectPtrOutput added in v4.11.1

func (o BucketObjectOutput) ToBucketObjectPtrOutput() BucketObjectPtrOutput

func (BucketObjectOutput) ToBucketObjectPtrOutputWithContext added in v4.11.1

func (o BucketObjectOutput) ToBucketObjectPtrOutputWithContext(ctx context.Context) BucketObjectPtrOutput

type BucketObjectPtrInput added in v4.11.1

type BucketObjectPtrInput interface {
	pulumi.Input

	ToBucketObjectPtrOutput() BucketObjectPtrOutput
	ToBucketObjectPtrOutputWithContext(ctx context.Context) BucketObjectPtrOutput
}

type BucketObjectPtrOutput added in v4.11.1

type BucketObjectPtrOutput struct {
	*pulumi.OutputState
}

func (BucketObjectPtrOutput) ElementType added in v4.11.1

func (BucketObjectPtrOutput) ElementType() reflect.Type

func (BucketObjectPtrOutput) ToBucketObjectPtrOutput added in v4.11.1

func (o BucketObjectPtrOutput) ToBucketObjectPtrOutput() BucketObjectPtrOutput

func (BucketObjectPtrOutput) ToBucketObjectPtrOutputWithContext added in v4.11.1

func (o BucketObjectPtrOutput) ToBucketObjectPtrOutputWithContext(ctx context.Context) BucketObjectPtrOutput

type BucketObjectState

type BucketObjectState struct {
	// The name of the containing bucket.
	Bucket pulumi.StringPtrInput
	// [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 pulumi.StringPtrInput
	// Data as `string` to be uploaded. Must be defined if `source` is not. **Note**: The `content` field is marked as sensitive.
	Content pulumi.StringPtrInput
	// [Content-Disposition](https://tools.ietf.org/html/rfc6266) of the object data.
	ContentDisposition pulumi.StringPtrInput
	// [Content-Encoding](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) of the object data.
	ContentEncoding pulumi.StringPtrInput
	// [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object data.
	ContentLanguage pulumi.StringPtrInput
	// [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 pulumi.StringPtrInput
	// (Computed) Base 64 CRC32 hash of the uploaded data.
	Crc32c        pulumi.StringPtrInput
	DetectMd5hash pulumi.StringPtrInput
	// The resource name of the Cloud KMS key that will be used to [encrypt](https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys) the object.
	KmsKeyName pulumi.StringPtrInput
	// (Computed) Base 64 MD5 hash of the uploaded data.
	Md5hash pulumi.StringPtrInput
	// (Computed) A url reference to download this object.
	MediaLink pulumi.StringPtrInput
	// User-provided metadata, in key/value pairs.
	Metadata pulumi.StringMapInput
	// The name of the object. If you're interpolating the name of this object, see `outputName` instead.
	Name pulumi.StringPtrInput
	// (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 pulumi.StringPtrInput
	// (Computed) A url reference to this object.
	SelfLink pulumi.StringPtrInput
	// A path to the data you want to upload. Must be defined
	// if `content` is not.
	Source pulumi.AssetOrArchiveInput
	// The [StorageClass](https://cloud.google.com/storage/docs/storage-classes) of the new bucket object.
	// Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`. 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 pulumi.StringPtrInput
}

func (BucketObjectState) ElementType

func (BucketObjectState) ElementType() reflect.Type

type BucketOutput added in v4.4.0

type BucketOutput struct {
	*pulumi.OutputState
}

func (BucketOutput) ElementType added in v4.4.0

func (BucketOutput) ElementType() reflect.Type

func (BucketOutput) ToBucketOutput added in v4.4.0

func (o BucketOutput) ToBucketOutput() BucketOutput

func (BucketOutput) ToBucketOutputWithContext added in v4.4.0

func (o BucketOutput) ToBucketOutputWithContext(ctx context.Context) BucketOutput

func (BucketOutput) ToBucketPtrOutput added in v4.11.1

func (o BucketOutput) ToBucketPtrOutput() BucketPtrOutput

func (BucketOutput) ToBucketPtrOutputWithContext added in v4.11.1

func (o BucketOutput) ToBucketPtrOutputWithContext(ctx context.Context) BucketPtrOutput

type BucketPtrInput added in v4.11.1

type BucketPtrInput interface {
	pulumi.Input

	ToBucketPtrOutput() BucketPtrOutput
	ToBucketPtrOutputWithContext(ctx context.Context) BucketPtrOutput
}

type BucketPtrOutput added in v4.11.1

type BucketPtrOutput struct {
	*pulumi.OutputState
}

func (BucketPtrOutput) ElementType added in v4.11.1

func (BucketPtrOutput) ElementType() reflect.Type

func (BucketPtrOutput) ToBucketPtrOutput added in v4.11.1

func (o BucketPtrOutput) ToBucketPtrOutput() BucketPtrOutput

func (BucketPtrOutput) ToBucketPtrOutputWithContext added in v4.11.1

func (o BucketPtrOutput) ToBucketPtrOutputWithContext(ctx context.Context) BucketPtrOutput

type BucketRetentionPolicy

type BucketRetentionPolicy struct {
	// If set to `true`, the bucket will be [locked](https://cloud.google.com/storage/docs/using-bucket-lock#lock-bucket) and permanently restrict edits to the bucket's retention policy.  Caution: Locking a bucket is an irreversible action.
	IsLocked *bool `pulumi:"isLocked"`
	// The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 2,147,483,647 seconds.
	RetentionPeriod int `pulumi:"retentionPeriod"`
}

type BucketRetentionPolicyArgs

type BucketRetentionPolicyArgs struct {
	// If set to `true`, the bucket will be [locked](https://cloud.google.com/storage/docs/using-bucket-lock#lock-bucket) and permanently restrict edits to the bucket's retention policy.  Caution: Locking a bucket is an irreversible action.
	IsLocked pulumi.BoolPtrInput `pulumi:"isLocked"`
	// The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 2,147,483,647 seconds.
	RetentionPeriod pulumi.IntInput `pulumi:"retentionPeriod"`
}

func (BucketRetentionPolicyArgs) ElementType

func (BucketRetentionPolicyArgs) ElementType() reflect.Type

func (BucketRetentionPolicyArgs) ToBucketRetentionPolicyOutput

func (i BucketRetentionPolicyArgs) ToBucketRetentionPolicyOutput() BucketRetentionPolicyOutput

func (BucketRetentionPolicyArgs) ToBucketRetentionPolicyOutputWithContext

func (i BucketRetentionPolicyArgs) ToBucketRetentionPolicyOutputWithContext(ctx context.Context) BucketRetentionPolicyOutput

func (BucketRetentionPolicyArgs) ToBucketRetentionPolicyPtrOutput

func (i BucketRetentionPolicyArgs) ToBucketRetentionPolicyPtrOutput() BucketRetentionPolicyPtrOutput

func (BucketRetentionPolicyArgs) ToBucketRetentionPolicyPtrOutputWithContext

func (i BucketRetentionPolicyArgs) ToBucketRetentionPolicyPtrOutputWithContext(ctx context.Context) BucketRetentionPolicyPtrOutput

type BucketRetentionPolicyInput

type BucketRetentionPolicyInput interface {
	pulumi.Input

	ToBucketRetentionPolicyOutput() BucketRetentionPolicyOutput
	ToBucketRetentionPolicyOutputWithContext(context.Context) BucketRetentionPolicyOutput
}

BucketRetentionPolicyInput is an input type that accepts BucketRetentionPolicyArgs and BucketRetentionPolicyOutput values. You can construct a concrete instance of `BucketRetentionPolicyInput` via:

BucketRetentionPolicyArgs{...}

type BucketRetentionPolicyOutput

type BucketRetentionPolicyOutput struct{ *pulumi.OutputState }

func (BucketRetentionPolicyOutput) ElementType

func (BucketRetentionPolicyOutput) IsLocked

If set to `true`, the bucket will be [locked](https://cloud.google.com/storage/docs/using-bucket-lock#lock-bucket) and permanently restrict edits to the bucket's retention policy. Caution: Locking a bucket is an irreversible action.

func (BucketRetentionPolicyOutput) RetentionPeriod

func (o BucketRetentionPolicyOutput) RetentionPeriod() pulumi.IntOutput

The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 2,147,483,647 seconds.

func (BucketRetentionPolicyOutput) ToBucketRetentionPolicyOutput

func (o BucketRetentionPolicyOutput) ToBucketRetentionPolicyOutput() BucketRetentionPolicyOutput

func (BucketRetentionPolicyOutput) ToBucketRetentionPolicyOutputWithContext

func (o BucketRetentionPolicyOutput) ToBucketRetentionPolicyOutputWithContext(ctx context.Context) BucketRetentionPolicyOutput

func (BucketRetentionPolicyOutput) ToBucketRetentionPolicyPtrOutput

func (o BucketRetentionPolicyOutput) ToBucketRetentionPolicyPtrOutput() BucketRetentionPolicyPtrOutput

func (BucketRetentionPolicyOutput) ToBucketRetentionPolicyPtrOutputWithContext

func (o BucketRetentionPolicyOutput) ToBucketRetentionPolicyPtrOutputWithContext(ctx context.Context) BucketRetentionPolicyPtrOutput

type BucketRetentionPolicyPtrInput

type BucketRetentionPolicyPtrInput interface {
	pulumi.Input

	ToBucketRetentionPolicyPtrOutput() BucketRetentionPolicyPtrOutput
	ToBucketRetentionPolicyPtrOutputWithContext(context.Context) BucketRetentionPolicyPtrOutput
}

BucketRetentionPolicyPtrInput is an input type that accepts BucketRetentionPolicyArgs, BucketRetentionPolicyPtr and BucketRetentionPolicyPtrOutput values. You can construct a concrete instance of `BucketRetentionPolicyPtrInput` via:

        BucketRetentionPolicyArgs{...}

or:

        nil

type BucketRetentionPolicyPtrOutput

type BucketRetentionPolicyPtrOutput struct{ *pulumi.OutputState }

func (BucketRetentionPolicyPtrOutput) Elem

func (BucketRetentionPolicyPtrOutput) ElementType

func (BucketRetentionPolicyPtrOutput) IsLocked

If set to `true`, the bucket will be [locked](https://cloud.google.com/storage/docs/using-bucket-lock#lock-bucket) and permanently restrict edits to the bucket's retention policy. Caution: Locking a bucket is an irreversible action.

func (BucketRetentionPolicyPtrOutput) RetentionPeriod

The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 2,147,483,647 seconds.

func (BucketRetentionPolicyPtrOutput) ToBucketRetentionPolicyPtrOutput

func (o BucketRetentionPolicyPtrOutput) ToBucketRetentionPolicyPtrOutput() BucketRetentionPolicyPtrOutput

func (BucketRetentionPolicyPtrOutput) ToBucketRetentionPolicyPtrOutputWithContext

func (o BucketRetentionPolicyPtrOutput) ToBucketRetentionPolicyPtrOutputWithContext(ctx context.Context) BucketRetentionPolicyPtrOutput

type BucketState

type BucketState struct {
	// Enables [Bucket Policy Only](https://cloud.google.com/storage/docs/bucket-policy-only) access to a bucket. This field will be removed in the next major release of the provider.
	//
	// Deprecated: Please use the uniform_bucket_level_access as this field has been renamed by Google.
	BucketPolicyOnly pulumi.BoolPtrInput
	// 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                  BucketCorArrayInput
	DefaultEventBasedHold pulumi.BoolPtrInput
	// The bucket's encryption configuration.
	Encryption BucketEncryptionPtrInput
	// When deleting a bucket, this
	// boolean option will delete all contained objects. If you try to delete a
	// bucket that contains objects, the provider will fail that run.
	ForceDestroy pulumi.BoolPtrInput
	// A map of key/value label pairs to assign to the bucket.
	Labels pulumi.StringMapInput
	// 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 BucketLifecycleRuleArrayInput
	// The [GCS location](https://cloud.google.com/storage/docs/bucket-locations)
	Location pulumi.StringPtrInput
	// The bucket's [Access & Storage Logs](https://cloud.google.com/storage/docs/access-logs) configuration.
	Logging BucketLoggingPtrInput
	// The name of the bucket.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket.
	RequesterPays pulumi.BoolPtrInput
	// Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
	RetentionPolicy BucketRetentionPolicyPtrInput
	// The URI of the created resource.
	SelfLink pulumi.StringPtrInput
	// The target [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of objects affected by this Lifecycle Rule. Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
	StorageClass pulumi.StringPtrInput
	// Enables [Uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) access to a bucket.
	UniformBucketLevelAccess pulumi.BoolPtrInput
	// The base URL of the bucket, in the format `gs://<bucket-name>`.
	Url pulumi.StringPtrInput
	// The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration.
	Versioning BucketVersioningPtrInput
	// Configuration if the bucket acts as a website. Structure is documented below.
	Website BucketWebsitePtrInput
}

func (BucketState) ElementType

func (BucketState) ElementType() reflect.Type

type BucketVersioning

type BucketVersioning struct {
	// While set to `true`, versioning is fully enabled for this bucket.
	Enabled bool `pulumi:"enabled"`
}

type BucketVersioningArgs

type BucketVersioningArgs struct {
	// While set to `true`, versioning is fully enabled for this bucket.
	Enabled pulumi.BoolInput `pulumi:"enabled"`
}

func (BucketVersioningArgs) ElementType

func (BucketVersioningArgs) ElementType() reflect.Type

func (BucketVersioningArgs) ToBucketVersioningOutput

func (i BucketVersioningArgs) ToBucketVersioningOutput() BucketVersioningOutput

func (BucketVersioningArgs) ToBucketVersioningOutputWithContext

func (i BucketVersioningArgs) ToBucketVersioningOutputWithContext(ctx context.Context) BucketVersioningOutput

func (BucketVersioningArgs) ToBucketVersioningPtrOutput

func (i BucketVersioningArgs) ToBucketVersioningPtrOutput() BucketVersioningPtrOutput

func (BucketVersioningArgs) ToBucketVersioningPtrOutputWithContext

func (i BucketVersioningArgs) ToBucketVersioningPtrOutputWithContext(ctx context.Context) BucketVersioningPtrOutput

type BucketVersioningInput

type BucketVersioningInput interface {
	pulumi.Input

	ToBucketVersioningOutput() BucketVersioningOutput
	ToBucketVersioningOutputWithContext(context.Context) BucketVersioningOutput
}

BucketVersioningInput is an input type that accepts BucketVersioningArgs and BucketVersioningOutput values. You can construct a concrete instance of `BucketVersioningInput` via:

BucketVersioningArgs{...}

type BucketVersioningOutput

type BucketVersioningOutput struct{ *pulumi.OutputState }

func (BucketVersioningOutput) ElementType

func (BucketVersioningOutput) ElementType() reflect.Type

func (BucketVersioningOutput) Enabled

While set to `true`, versioning is fully enabled for this bucket.

func (BucketVersioningOutput) ToBucketVersioningOutput

func (o BucketVersioningOutput) ToBucketVersioningOutput() BucketVersioningOutput

func (BucketVersioningOutput) ToBucketVersioningOutputWithContext

func (o BucketVersioningOutput) ToBucketVersioningOutputWithContext(ctx context.Context) BucketVersioningOutput

func (BucketVersioningOutput) ToBucketVersioningPtrOutput

func (o BucketVersioningOutput) ToBucketVersioningPtrOutput() BucketVersioningPtrOutput

func (BucketVersioningOutput) ToBucketVersioningPtrOutputWithContext

func (o BucketVersioningOutput) ToBucketVersioningPtrOutputWithContext(ctx context.Context) BucketVersioningPtrOutput

type BucketVersioningPtrInput

type BucketVersioningPtrInput interface {
	pulumi.Input

	ToBucketVersioningPtrOutput() BucketVersioningPtrOutput
	ToBucketVersioningPtrOutputWithContext(context.Context) BucketVersioningPtrOutput
}

BucketVersioningPtrInput is an input type that accepts BucketVersioningArgs, BucketVersioningPtr and BucketVersioningPtrOutput values. You can construct a concrete instance of `BucketVersioningPtrInput` via:

        BucketVersioningArgs{...}

or:

        nil

type BucketVersioningPtrOutput

type BucketVersioningPtrOutput struct{ *pulumi.OutputState }

func (BucketVersioningPtrOutput) Elem

func (BucketVersioningPtrOutput) ElementType

func (BucketVersioningPtrOutput) ElementType() reflect.Type

func (BucketVersioningPtrOutput) Enabled

While set to `true`, versioning is fully enabled for this bucket.

func (BucketVersioningPtrOutput) ToBucketVersioningPtrOutput

func (o BucketVersioningPtrOutput) ToBucketVersioningPtrOutput() BucketVersioningPtrOutput

func (BucketVersioningPtrOutput) ToBucketVersioningPtrOutputWithContext

func (o BucketVersioningPtrOutput) ToBucketVersioningPtrOutputWithContext(ctx context.Context) BucketVersioningPtrOutput

type BucketWebsite

type BucketWebsite struct {
	// Behaves as the bucket's directory index where
	// missing objects are treated as potential directories.
	MainPageSuffix *string `pulumi:"mainPageSuffix"`
	// The custom object to return when a requested
	// resource is not found.
	NotFoundPage *string `pulumi:"notFoundPage"`
}

type BucketWebsiteArgs

type BucketWebsiteArgs struct {
	// Behaves as the bucket's directory index where
	// missing objects are treated as potential directories.
	MainPageSuffix pulumi.StringPtrInput `pulumi:"mainPageSuffix"`
	// The custom object to return when a requested
	// resource is not found.
	NotFoundPage pulumi.StringPtrInput `pulumi:"notFoundPage"`
}

func (BucketWebsiteArgs) ElementType

func (BucketWebsiteArgs) ElementType() reflect.Type

func (BucketWebsiteArgs) ToBucketWebsiteOutput

func (i BucketWebsiteArgs) ToBucketWebsiteOutput() BucketWebsiteOutput

func (BucketWebsiteArgs) ToBucketWebsiteOutputWithContext

func (i BucketWebsiteArgs) ToBucketWebsiteOutputWithContext(ctx context.Context) BucketWebsiteOutput

func (BucketWebsiteArgs) ToBucketWebsitePtrOutput

func (i BucketWebsiteArgs) ToBucketWebsitePtrOutput() BucketWebsitePtrOutput

func (BucketWebsiteArgs) ToBucketWebsitePtrOutputWithContext

func (i BucketWebsiteArgs) ToBucketWebsitePtrOutputWithContext(ctx context.Context) BucketWebsitePtrOutput

type BucketWebsiteInput

type BucketWebsiteInput interface {
	pulumi.Input

	ToBucketWebsiteOutput() BucketWebsiteOutput
	ToBucketWebsiteOutputWithContext(context.Context) BucketWebsiteOutput
}

BucketWebsiteInput is an input type that accepts BucketWebsiteArgs and BucketWebsiteOutput values. You can construct a concrete instance of `BucketWebsiteInput` via:

BucketWebsiteArgs{...}

type BucketWebsiteOutput

type BucketWebsiteOutput struct{ *pulumi.OutputState }

func (BucketWebsiteOutput) ElementType

func (BucketWebsiteOutput) ElementType() reflect.Type

func (BucketWebsiteOutput) MainPageSuffix

func (o BucketWebsiteOutput) MainPageSuffix() pulumi.StringPtrOutput

Behaves as the bucket's directory index where missing objects are treated as potential directories.

func (BucketWebsiteOutput) NotFoundPage

func (o BucketWebsiteOutput) NotFoundPage() pulumi.StringPtrOutput

The custom object to return when a requested resource is not found.

func (BucketWebsiteOutput) ToBucketWebsiteOutput

func (o BucketWebsiteOutput) ToBucketWebsiteOutput() BucketWebsiteOutput

func (BucketWebsiteOutput) ToBucketWebsiteOutputWithContext

func (o BucketWebsiteOutput) ToBucketWebsiteOutputWithContext(ctx context.Context) BucketWebsiteOutput

func (BucketWebsiteOutput) ToBucketWebsitePtrOutput

func (o BucketWebsiteOutput) ToBucketWebsitePtrOutput() BucketWebsitePtrOutput

func (BucketWebsiteOutput) ToBucketWebsitePtrOutputWithContext

func (o BucketWebsiteOutput) ToBucketWebsitePtrOutputWithContext(ctx context.Context) BucketWebsitePtrOutput

type BucketWebsitePtrInput

type BucketWebsitePtrInput interface {
	pulumi.Input

	ToBucketWebsitePtrOutput() BucketWebsitePtrOutput
	ToBucketWebsitePtrOutputWithContext(context.Context) BucketWebsitePtrOutput
}

BucketWebsitePtrInput is an input type that accepts BucketWebsiteArgs, BucketWebsitePtr and BucketWebsitePtrOutput values. You can construct a concrete instance of `BucketWebsitePtrInput` via:

        BucketWebsiteArgs{...}

or:

        nil

type BucketWebsitePtrOutput

type BucketWebsitePtrOutput struct{ *pulumi.OutputState }

func (BucketWebsitePtrOutput) Elem

func (BucketWebsitePtrOutput) ElementType

func (BucketWebsitePtrOutput) ElementType() reflect.Type

func (BucketWebsitePtrOutput) MainPageSuffix

func (o BucketWebsitePtrOutput) MainPageSuffix() pulumi.StringPtrOutput

Behaves as the bucket's directory index where missing objects are treated as potential directories.

func (BucketWebsitePtrOutput) NotFoundPage

The custom object to return when a requested resource is not found.

func (BucketWebsitePtrOutput) ToBucketWebsitePtrOutput

func (o BucketWebsitePtrOutput) ToBucketWebsitePtrOutput() BucketWebsitePtrOutput

func (BucketWebsitePtrOutput) ToBucketWebsitePtrOutputWithContext

func (o BucketWebsitePtrOutput) ToBucketWebsitePtrOutputWithContext(ctx context.Context) BucketWebsitePtrOutput

type DefaultObjectACL

type DefaultObjectACL struct {
	pulumi.CustomResourceState

	// The name of the bucket it applies to.
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// 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 pulumi.StringArrayOutput `pulumi:"roleEntities"`
}

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.

## Example Usage

Example creating a default object ACL on a bucket with one owner, and one reader.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucket(ctx, "image_store", &storage.BucketArgs{
			Location: pulumi.String("EU"),
		})
		if err != nil {
			return err
		}
		_, err = storage.NewDefaultObjectACL(ctx, "image_store_default_acl", &storage.DefaultObjectACLArgs{
			Bucket: image_store.Name,
			RoleEntities: pulumi.StringArray{
				pulumi.String("OWNER:user-my.email@gmail.com"),
				pulumi.String("READER:group-mygroup"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource does not support import.

func GetDefaultObjectACL

func GetDefaultObjectACL(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DefaultObjectACLState, opts ...pulumi.ResourceOption) (*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.ResourceOption) (*DefaultObjectACL, error)

NewDefaultObjectACL registers a new resource with the given unique name, arguments, and options.

func (*DefaultObjectACL) ElementType added in v4.4.0

func (*DefaultObjectACL) ElementType() reflect.Type

func (*DefaultObjectACL) ToDefaultObjectACLOutput added in v4.4.0

func (i *DefaultObjectACL) ToDefaultObjectACLOutput() DefaultObjectACLOutput

func (*DefaultObjectACL) ToDefaultObjectACLOutputWithContext added in v4.4.0

func (i *DefaultObjectACL) ToDefaultObjectACLOutputWithContext(ctx context.Context) DefaultObjectACLOutput

func (*DefaultObjectACL) ToDefaultObjectACLPtrOutput added in v4.11.1

func (i *DefaultObjectACL) ToDefaultObjectACLPtrOutput() DefaultObjectACLPtrOutput

func (*DefaultObjectACL) ToDefaultObjectACLPtrOutputWithContext added in v4.11.1

func (i *DefaultObjectACL) ToDefaultObjectACLPtrOutputWithContext(ctx context.Context) DefaultObjectACLPtrOutput

type DefaultObjectACLArgs

type DefaultObjectACLArgs struct {
	// The name of the bucket it applies to.
	Bucket pulumi.StringInput
	// 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 pulumi.StringArrayInput
}

The set of arguments for constructing a DefaultObjectACL resource.

func (DefaultObjectACLArgs) ElementType

func (DefaultObjectACLArgs) ElementType() reflect.Type

type DefaultObjectACLArray added in v4.11.1

type DefaultObjectACLArray []DefaultObjectACLInput

func (DefaultObjectACLArray) ElementType added in v4.11.1

func (DefaultObjectACLArray) ElementType() reflect.Type

func (DefaultObjectACLArray) ToDefaultObjectACLArrayOutput added in v4.11.1

func (i DefaultObjectACLArray) ToDefaultObjectACLArrayOutput() DefaultObjectACLArrayOutput

func (DefaultObjectACLArray) ToDefaultObjectACLArrayOutputWithContext added in v4.11.1

func (i DefaultObjectACLArray) ToDefaultObjectACLArrayOutputWithContext(ctx context.Context) DefaultObjectACLArrayOutput

type DefaultObjectACLArrayInput added in v4.11.1

type DefaultObjectACLArrayInput interface {
	pulumi.Input

	ToDefaultObjectACLArrayOutput() DefaultObjectACLArrayOutput
	ToDefaultObjectACLArrayOutputWithContext(context.Context) DefaultObjectACLArrayOutput
}

DefaultObjectACLArrayInput is an input type that accepts DefaultObjectACLArray and DefaultObjectACLArrayOutput values. You can construct a concrete instance of `DefaultObjectACLArrayInput` via:

DefaultObjectACLArray{ DefaultObjectACLArgs{...} }

type DefaultObjectACLArrayOutput added in v4.11.1

type DefaultObjectACLArrayOutput struct{ *pulumi.OutputState }

func (DefaultObjectACLArrayOutput) ElementType added in v4.11.1

func (DefaultObjectACLArrayOutput) Index added in v4.11.1

func (DefaultObjectACLArrayOutput) ToDefaultObjectACLArrayOutput added in v4.11.1

func (o DefaultObjectACLArrayOutput) ToDefaultObjectACLArrayOutput() DefaultObjectACLArrayOutput

func (DefaultObjectACLArrayOutput) ToDefaultObjectACLArrayOutputWithContext added in v4.11.1

func (o DefaultObjectACLArrayOutput) ToDefaultObjectACLArrayOutputWithContext(ctx context.Context) DefaultObjectACLArrayOutput

type DefaultObjectACLInput added in v4.4.0

type DefaultObjectACLInput interface {
	pulumi.Input

	ToDefaultObjectACLOutput() DefaultObjectACLOutput
	ToDefaultObjectACLOutputWithContext(ctx context.Context) DefaultObjectACLOutput
}

type DefaultObjectACLMap added in v4.11.1

type DefaultObjectACLMap map[string]DefaultObjectACLInput

func (DefaultObjectACLMap) ElementType added in v4.11.1

func (DefaultObjectACLMap) ElementType() reflect.Type

func (DefaultObjectACLMap) ToDefaultObjectACLMapOutput added in v4.11.1

func (i DefaultObjectACLMap) ToDefaultObjectACLMapOutput() DefaultObjectACLMapOutput

func (DefaultObjectACLMap) ToDefaultObjectACLMapOutputWithContext added in v4.11.1

func (i DefaultObjectACLMap) ToDefaultObjectACLMapOutputWithContext(ctx context.Context) DefaultObjectACLMapOutput

type DefaultObjectACLMapInput added in v4.11.1

type DefaultObjectACLMapInput interface {
	pulumi.Input

	ToDefaultObjectACLMapOutput() DefaultObjectACLMapOutput
	ToDefaultObjectACLMapOutputWithContext(context.Context) DefaultObjectACLMapOutput
}

DefaultObjectACLMapInput is an input type that accepts DefaultObjectACLMap and DefaultObjectACLMapOutput values. You can construct a concrete instance of `DefaultObjectACLMapInput` via:

DefaultObjectACLMap{ "key": DefaultObjectACLArgs{...} }

type DefaultObjectACLMapOutput added in v4.11.1

type DefaultObjectACLMapOutput struct{ *pulumi.OutputState }

func (DefaultObjectACLMapOutput) ElementType added in v4.11.1

func (DefaultObjectACLMapOutput) ElementType() reflect.Type

func (DefaultObjectACLMapOutput) MapIndex added in v4.11.1

func (DefaultObjectACLMapOutput) ToDefaultObjectACLMapOutput added in v4.11.1

func (o DefaultObjectACLMapOutput) ToDefaultObjectACLMapOutput() DefaultObjectACLMapOutput

func (DefaultObjectACLMapOutput) ToDefaultObjectACLMapOutputWithContext added in v4.11.1

func (o DefaultObjectACLMapOutput) ToDefaultObjectACLMapOutputWithContext(ctx context.Context) DefaultObjectACLMapOutput

type DefaultObjectACLOutput added in v4.4.0

type DefaultObjectACLOutput struct {
	*pulumi.OutputState
}

func (DefaultObjectACLOutput) ElementType added in v4.4.0

func (DefaultObjectACLOutput) ElementType() reflect.Type

func (DefaultObjectACLOutput) ToDefaultObjectACLOutput added in v4.4.0

func (o DefaultObjectACLOutput) ToDefaultObjectACLOutput() DefaultObjectACLOutput

func (DefaultObjectACLOutput) ToDefaultObjectACLOutputWithContext added in v4.4.0

func (o DefaultObjectACLOutput) ToDefaultObjectACLOutputWithContext(ctx context.Context) DefaultObjectACLOutput

func (DefaultObjectACLOutput) ToDefaultObjectACLPtrOutput added in v4.11.1

func (o DefaultObjectACLOutput) ToDefaultObjectACLPtrOutput() DefaultObjectACLPtrOutput

func (DefaultObjectACLOutput) ToDefaultObjectACLPtrOutputWithContext added in v4.11.1

func (o DefaultObjectACLOutput) ToDefaultObjectACLPtrOutputWithContext(ctx context.Context) DefaultObjectACLPtrOutput

type DefaultObjectACLPtrInput added in v4.11.1

type DefaultObjectACLPtrInput interface {
	pulumi.Input

	ToDefaultObjectACLPtrOutput() DefaultObjectACLPtrOutput
	ToDefaultObjectACLPtrOutputWithContext(ctx context.Context) DefaultObjectACLPtrOutput
}

type DefaultObjectACLPtrOutput added in v4.11.1

type DefaultObjectACLPtrOutput struct {
	*pulumi.OutputState
}

func (DefaultObjectACLPtrOutput) ElementType added in v4.11.1

func (DefaultObjectACLPtrOutput) ElementType() reflect.Type

func (DefaultObjectACLPtrOutput) ToDefaultObjectACLPtrOutput added in v4.11.1

func (o DefaultObjectACLPtrOutput) ToDefaultObjectACLPtrOutput() DefaultObjectACLPtrOutput

func (DefaultObjectACLPtrOutput) ToDefaultObjectACLPtrOutputWithContext added in v4.11.1

func (o DefaultObjectACLPtrOutput) ToDefaultObjectACLPtrOutputWithContext(ctx context.Context) DefaultObjectACLPtrOutput

type DefaultObjectACLState

type DefaultObjectACLState struct {
	// The name of the bucket it applies to.
	Bucket pulumi.StringPtrInput
	// 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 pulumi.StringArrayInput
}

func (DefaultObjectACLState) ElementType

func (DefaultObjectACLState) ElementType() reflect.Type

type DefaultObjectAccessControl

type DefaultObjectAccessControl struct {
	pulumi.CustomResourceState

	// The name of the bucket.
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// The domain associated with the entity.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// The email address associated with the entity.
	Email pulumi.StringOutput `pulumi:"email"`
	// The entity holding the permission, in one of the following forms:
	// * user-{{userId}}
	// * user-{{email}} (such as "user-liz@example.com")
	// * group-{{groupId}}
	// * group-{{email}} (such as "group-example@googlegroups.com")
	// * domain-{{domain}} (such as "domain-example.com")
	// * project-team-{{projectId}}
	// * allUsers
	// * allAuthenticatedUsers
	Entity pulumi.StringOutput `pulumi:"entity"`
	// The ID for the entity
	EntityId pulumi.StringOutput `pulumi:"entityId"`
	// The content generation of the object, if applied to an object.
	Generation pulumi.IntOutput `pulumi:"generation"`
	// The name of the object, if applied to an object.
	Object pulumi.StringPtrOutput `pulumi:"object"`
	// The project team associated with the entity
	ProjectTeams DefaultObjectAccessControlProjectTeamArrayOutput `pulumi:"projectTeams"`
	// The access permission for the entity.
	// Possible values are `OWNER` and `READER`.
	Role pulumi.StringOutput `pulumi:"role"`
}

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

## Example Usage ### Storage Default Object Access Control Public

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		bucket, err := storage.NewBucket(ctx, "bucket", nil)
		if err != nil {
			return err
		}
		_, err = storage.NewDefaultObjectAccessControl(ctx, "publicRule", &storage.DefaultObjectAccessControlArgs{
			Bucket: bucket.Name,
			Role:   pulumi.String("READER"),
			Entity: pulumi.String("allUsers"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

DefaultObjectAccessControl can be imported using any of these accepted formats

```sh

$ pulumi import gcp:storage/defaultObjectAccessControl:DefaultObjectAccessControl default {{bucket}}/{{entity}}

```

func GetDefaultObjectAccessControl

func GetDefaultObjectAccessControl(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DefaultObjectAccessControlState, opts ...pulumi.ResourceOption) (*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

func NewDefaultObjectAccessControl(ctx *pulumi.Context,
	name string, args *DefaultObjectAccessControlArgs, opts ...pulumi.ResourceOption) (*DefaultObjectAccessControl, error)

NewDefaultObjectAccessControl registers a new resource with the given unique name, arguments, and options.

func (*DefaultObjectAccessControl) ElementType added in v4.4.0

func (*DefaultObjectAccessControl) ElementType() reflect.Type

func (*DefaultObjectAccessControl) ToDefaultObjectAccessControlOutput added in v4.4.0

func (i *DefaultObjectAccessControl) ToDefaultObjectAccessControlOutput() DefaultObjectAccessControlOutput

func (*DefaultObjectAccessControl) ToDefaultObjectAccessControlOutputWithContext added in v4.4.0

func (i *DefaultObjectAccessControl) ToDefaultObjectAccessControlOutputWithContext(ctx context.Context) DefaultObjectAccessControlOutput

func (*DefaultObjectAccessControl) ToDefaultObjectAccessControlPtrOutput added in v4.11.1

func (i *DefaultObjectAccessControl) ToDefaultObjectAccessControlPtrOutput() DefaultObjectAccessControlPtrOutput

func (*DefaultObjectAccessControl) ToDefaultObjectAccessControlPtrOutputWithContext added in v4.11.1

func (i *DefaultObjectAccessControl) ToDefaultObjectAccessControlPtrOutputWithContext(ctx context.Context) DefaultObjectAccessControlPtrOutput

type DefaultObjectAccessControlArgs

type DefaultObjectAccessControlArgs struct {
	// The name of the bucket.
	Bucket pulumi.StringInput
	// The entity holding the permission, in one of the following forms:
	// * user-{{userId}}
	// * user-{{email}} (such as "user-liz@example.com")
	// * group-{{groupId}}
	// * group-{{email}} (such as "group-example@googlegroups.com")
	// * domain-{{domain}} (such as "domain-example.com")
	// * project-team-{{projectId}}
	// * allUsers
	// * allAuthenticatedUsers
	Entity pulumi.StringInput
	// The name of the object, if applied to an object.
	Object pulumi.StringPtrInput
	// The access permission for the entity.
	// Possible values are `OWNER` and `READER`.
	Role pulumi.StringInput
}

The set of arguments for constructing a DefaultObjectAccessControl resource.

func (DefaultObjectAccessControlArgs) ElementType

type DefaultObjectAccessControlArray added in v4.11.1

type DefaultObjectAccessControlArray []DefaultObjectAccessControlInput

func (DefaultObjectAccessControlArray) ElementType added in v4.11.1

func (DefaultObjectAccessControlArray) ToDefaultObjectAccessControlArrayOutput added in v4.11.1

func (i DefaultObjectAccessControlArray) ToDefaultObjectAccessControlArrayOutput() DefaultObjectAccessControlArrayOutput

func (DefaultObjectAccessControlArray) ToDefaultObjectAccessControlArrayOutputWithContext added in v4.11.1

func (i DefaultObjectAccessControlArray) ToDefaultObjectAccessControlArrayOutputWithContext(ctx context.Context) DefaultObjectAccessControlArrayOutput

type DefaultObjectAccessControlArrayInput added in v4.11.1

type DefaultObjectAccessControlArrayInput interface {
	pulumi.Input

	ToDefaultObjectAccessControlArrayOutput() DefaultObjectAccessControlArrayOutput
	ToDefaultObjectAccessControlArrayOutputWithContext(context.Context) DefaultObjectAccessControlArrayOutput
}

DefaultObjectAccessControlArrayInput is an input type that accepts DefaultObjectAccessControlArray and DefaultObjectAccessControlArrayOutput values. You can construct a concrete instance of `DefaultObjectAccessControlArrayInput` via:

DefaultObjectAccessControlArray{ DefaultObjectAccessControlArgs{...} }

type DefaultObjectAccessControlArrayOutput added in v4.11.1

type DefaultObjectAccessControlArrayOutput struct{ *pulumi.OutputState }

func (DefaultObjectAccessControlArrayOutput) ElementType added in v4.11.1

func (DefaultObjectAccessControlArrayOutput) Index added in v4.11.1

func (DefaultObjectAccessControlArrayOutput) ToDefaultObjectAccessControlArrayOutput added in v4.11.1

func (o DefaultObjectAccessControlArrayOutput) ToDefaultObjectAccessControlArrayOutput() DefaultObjectAccessControlArrayOutput

func (DefaultObjectAccessControlArrayOutput) ToDefaultObjectAccessControlArrayOutputWithContext added in v4.11.1

func (o DefaultObjectAccessControlArrayOutput) ToDefaultObjectAccessControlArrayOutputWithContext(ctx context.Context) DefaultObjectAccessControlArrayOutput

type DefaultObjectAccessControlInput added in v4.4.0

type DefaultObjectAccessControlInput interface {
	pulumi.Input

	ToDefaultObjectAccessControlOutput() DefaultObjectAccessControlOutput
	ToDefaultObjectAccessControlOutputWithContext(ctx context.Context) DefaultObjectAccessControlOutput
}

type DefaultObjectAccessControlMap added in v4.11.1

type DefaultObjectAccessControlMap map[string]DefaultObjectAccessControlInput

func (DefaultObjectAccessControlMap) ElementType added in v4.11.1

func (DefaultObjectAccessControlMap) ToDefaultObjectAccessControlMapOutput added in v4.11.1

func (i DefaultObjectAccessControlMap) ToDefaultObjectAccessControlMapOutput() DefaultObjectAccessControlMapOutput

func (DefaultObjectAccessControlMap) ToDefaultObjectAccessControlMapOutputWithContext added in v4.11.1

func (i DefaultObjectAccessControlMap) ToDefaultObjectAccessControlMapOutputWithContext(ctx context.Context) DefaultObjectAccessControlMapOutput

type DefaultObjectAccessControlMapInput added in v4.11.1

type DefaultObjectAccessControlMapInput interface {
	pulumi.Input

	ToDefaultObjectAccessControlMapOutput() DefaultObjectAccessControlMapOutput
	ToDefaultObjectAccessControlMapOutputWithContext(context.Context) DefaultObjectAccessControlMapOutput
}

DefaultObjectAccessControlMapInput is an input type that accepts DefaultObjectAccessControlMap and DefaultObjectAccessControlMapOutput values. You can construct a concrete instance of `DefaultObjectAccessControlMapInput` via:

DefaultObjectAccessControlMap{ "key": DefaultObjectAccessControlArgs{...} }

type DefaultObjectAccessControlMapOutput added in v4.11.1

type DefaultObjectAccessControlMapOutput struct{ *pulumi.OutputState }

func (DefaultObjectAccessControlMapOutput) ElementType added in v4.11.1

func (DefaultObjectAccessControlMapOutput) MapIndex added in v4.11.1

func (DefaultObjectAccessControlMapOutput) ToDefaultObjectAccessControlMapOutput added in v4.11.1

func (o DefaultObjectAccessControlMapOutput) ToDefaultObjectAccessControlMapOutput() DefaultObjectAccessControlMapOutput

func (DefaultObjectAccessControlMapOutput) ToDefaultObjectAccessControlMapOutputWithContext added in v4.11.1

func (o DefaultObjectAccessControlMapOutput) ToDefaultObjectAccessControlMapOutputWithContext(ctx context.Context) DefaultObjectAccessControlMapOutput

type DefaultObjectAccessControlOutput added in v4.4.0

type DefaultObjectAccessControlOutput struct {
	*pulumi.OutputState
}

func (DefaultObjectAccessControlOutput) ElementType added in v4.4.0

func (DefaultObjectAccessControlOutput) ToDefaultObjectAccessControlOutput added in v4.4.0

func (o DefaultObjectAccessControlOutput) ToDefaultObjectAccessControlOutput() DefaultObjectAccessControlOutput

func (DefaultObjectAccessControlOutput) ToDefaultObjectAccessControlOutputWithContext added in v4.4.0

func (o DefaultObjectAccessControlOutput) ToDefaultObjectAccessControlOutputWithContext(ctx context.Context) DefaultObjectAccessControlOutput

func (DefaultObjectAccessControlOutput) ToDefaultObjectAccessControlPtrOutput added in v4.11.1

func (o DefaultObjectAccessControlOutput) ToDefaultObjectAccessControlPtrOutput() DefaultObjectAccessControlPtrOutput

func (DefaultObjectAccessControlOutput) ToDefaultObjectAccessControlPtrOutputWithContext added in v4.11.1

func (o DefaultObjectAccessControlOutput) ToDefaultObjectAccessControlPtrOutputWithContext(ctx context.Context) DefaultObjectAccessControlPtrOutput

type DefaultObjectAccessControlProjectTeam

type DefaultObjectAccessControlProjectTeam struct {
	ProjectNumber *string `pulumi:"projectNumber"`
	Team          *string `pulumi:"team"`
}

type DefaultObjectAccessControlProjectTeamArgs

type DefaultObjectAccessControlProjectTeamArgs struct {
	ProjectNumber pulumi.StringPtrInput `pulumi:"projectNumber"`
	Team          pulumi.StringPtrInput `pulumi:"team"`
}

func (DefaultObjectAccessControlProjectTeamArgs) ElementType

func (DefaultObjectAccessControlProjectTeamArgs) ToDefaultObjectAccessControlProjectTeamOutput

func (i DefaultObjectAccessControlProjectTeamArgs) ToDefaultObjectAccessControlProjectTeamOutput() DefaultObjectAccessControlProjectTeamOutput

func (DefaultObjectAccessControlProjectTeamArgs) ToDefaultObjectAccessControlProjectTeamOutputWithContext

func (i DefaultObjectAccessControlProjectTeamArgs) ToDefaultObjectAccessControlProjectTeamOutputWithContext(ctx context.Context) DefaultObjectAccessControlProjectTeamOutput

type DefaultObjectAccessControlProjectTeamArray

type DefaultObjectAccessControlProjectTeamArray []DefaultObjectAccessControlProjectTeamInput

func (DefaultObjectAccessControlProjectTeamArray) ElementType

func (DefaultObjectAccessControlProjectTeamArray) ToDefaultObjectAccessControlProjectTeamArrayOutput

func (i DefaultObjectAccessControlProjectTeamArray) ToDefaultObjectAccessControlProjectTeamArrayOutput() DefaultObjectAccessControlProjectTeamArrayOutput

func (DefaultObjectAccessControlProjectTeamArray) ToDefaultObjectAccessControlProjectTeamArrayOutputWithContext

func (i DefaultObjectAccessControlProjectTeamArray) ToDefaultObjectAccessControlProjectTeamArrayOutputWithContext(ctx context.Context) DefaultObjectAccessControlProjectTeamArrayOutput

type DefaultObjectAccessControlProjectTeamArrayInput

type DefaultObjectAccessControlProjectTeamArrayInput interface {
	pulumi.Input

	ToDefaultObjectAccessControlProjectTeamArrayOutput() DefaultObjectAccessControlProjectTeamArrayOutput
	ToDefaultObjectAccessControlProjectTeamArrayOutputWithContext(context.Context) DefaultObjectAccessControlProjectTeamArrayOutput
}

DefaultObjectAccessControlProjectTeamArrayInput is an input type that accepts DefaultObjectAccessControlProjectTeamArray and DefaultObjectAccessControlProjectTeamArrayOutput values. You can construct a concrete instance of `DefaultObjectAccessControlProjectTeamArrayInput` via:

DefaultObjectAccessControlProjectTeamArray{ DefaultObjectAccessControlProjectTeamArgs{...} }

type DefaultObjectAccessControlProjectTeamArrayOutput

type DefaultObjectAccessControlProjectTeamArrayOutput struct{ *pulumi.OutputState }

func (DefaultObjectAccessControlProjectTeamArrayOutput) ElementType

func (DefaultObjectAccessControlProjectTeamArrayOutput) Index

func (DefaultObjectAccessControlProjectTeamArrayOutput) ToDefaultObjectAccessControlProjectTeamArrayOutput

func (o DefaultObjectAccessControlProjectTeamArrayOutput) ToDefaultObjectAccessControlProjectTeamArrayOutput() DefaultObjectAccessControlProjectTeamArrayOutput

func (DefaultObjectAccessControlProjectTeamArrayOutput) ToDefaultObjectAccessControlProjectTeamArrayOutputWithContext

func (o DefaultObjectAccessControlProjectTeamArrayOutput) ToDefaultObjectAccessControlProjectTeamArrayOutputWithContext(ctx context.Context) DefaultObjectAccessControlProjectTeamArrayOutput

type DefaultObjectAccessControlProjectTeamInput

type DefaultObjectAccessControlProjectTeamInput interface {
	pulumi.Input

	ToDefaultObjectAccessControlProjectTeamOutput() DefaultObjectAccessControlProjectTeamOutput
	ToDefaultObjectAccessControlProjectTeamOutputWithContext(context.Context) DefaultObjectAccessControlProjectTeamOutput
}

DefaultObjectAccessControlProjectTeamInput is an input type that accepts DefaultObjectAccessControlProjectTeamArgs and DefaultObjectAccessControlProjectTeamOutput values. You can construct a concrete instance of `DefaultObjectAccessControlProjectTeamInput` via:

DefaultObjectAccessControlProjectTeamArgs{...}

type DefaultObjectAccessControlProjectTeamOutput

type DefaultObjectAccessControlProjectTeamOutput struct{ *pulumi.OutputState }

func (DefaultObjectAccessControlProjectTeamOutput) ElementType

func (DefaultObjectAccessControlProjectTeamOutput) ProjectNumber

func (DefaultObjectAccessControlProjectTeamOutput) Team

func (DefaultObjectAccessControlProjectTeamOutput) ToDefaultObjectAccessControlProjectTeamOutput

func (o DefaultObjectAccessControlProjectTeamOutput) ToDefaultObjectAccessControlProjectTeamOutput() DefaultObjectAccessControlProjectTeamOutput

func (DefaultObjectAccessControlProjectTeamOutput) ToDefaultObjectAccessControlProjectTeamOutputWithContext

func (o DefaultObjectAccessControlProjectTeamOutput) ToDefaultObjectAccessControlProjectTeamOutputWithContext(ctx context.Context) DefaultObjectAccessControlProjectTeamOutput

type DefaultObjectAccessControlPtrInput added in v4.11.1

type DefaultObjectAccessControlPtrInput interface {
	pulumi.Input

	ToDefaultObjectAccessControlPtrOutput() DefaultObjectAccessControlPtrOutput
	ToDefaultObjectAccessControlPtrOutputWithContext(ctx context.Context) DefaultObjectAccessControlPtrOutput
}

type DefaultObjectAccessControlPtrOutput added in v4.11.1

type DefaultObjectAccessControlPtrOutput struct {
	*pulumi.OutputState
}

func (DefaultObjectAccessControlPtrOutput) ElementType added in v4.11.1

func (DefaultObjectAccessControlPtrOutput) ToDefaultObjectAccessControlPtrOutput added in v4.11.1

func (o DefaultObjectAccessControlPtrOutput) ToDefaultObjectAccessControlPtrOutput() DefaultObjectAccessControlPtrOutput

func (DefaultObjectAccessControlPtrOutput) ToDefaultObjectAccessControlPtrOutputWithContext added in v4.11.1

func (o DefaultObjectAccessControlPtrOutput) ToDefaultObjectAccessControlPtrOutputWithContext(ctx context.Context) DefaultObjectAccessControlPtrOutput

type DefaultObjectAccessControlState

type DefaultObjectAccessControlState struct {
	// The name of the bucket.
	Bucket pulumi.StringPtrInput
	// The domain associated with the entity.
	Domain pulumi.StringPtrInput
	// The email address associated with the entity.
	Email pulumi.StringPtrInput
	// The entity holding the permission, in one of the following forms:
	// * user-{{userId}}
	// * user-{{email}} (such as "user-liz@example.com")
	// * group-{{groupId}}
	// * group-{{email}} (such as "group-example@googlegroups.com")
	// * domain-{{domain}} (such as "domain-example.com")
	// * project-team-{{projectId}}
	// * allUsers
	// * allAuthenticatedUsers
	Entity pulumi.StringPtrInput
	// The ID for the entity
	EntityId pulumi.StringPtrInput
	// The content generation of the object, if applied to an object.
	Generation pulumi.IntPtrInput
	// The name of the object, if applied to an object.
	Object pulumi.StringPtrInput
	// The project team associated with the entity
	ProjectTeams DefaultObjectAccessControlProjectTeamArrayInput
	// The access permission for the entity.
	// Possible values are `OWNER` and `READER`.
	Role pulumi.StringPtrInput
}

func (DefaultObjectAccessControlState) ElementType

type GetBucketObjectContentArgs added in v4.7.0

type GetBucketObjectContentArgs struct {
	// The name of the containing bucket.
	Bucket string `pulumi:"bucket"`
	// (Computed) [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object content.
	Content *string `pulumi:"content"`
	// The name of the object.
	Name string `pulumi:"name"`
}

A collection of arguments for invoking getBucketObjectContent.

type GetBucketObjectContentResult added in v4.7.0

type GetBucketObjectContentResult struct {
	Bucket       string `pulumi:"bucket"`
	CacheControl string `pulumi:"cacheControl"`
	// (Computed) [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object content.
	Content            *string `pulumi:"content"`
	ContentDisposition string  `pulumi:"contentDisposition"`
	ContentEncoding    string  `pulumi:"contentEncoding"`
	ContentLanguage    string  `pulumi:"contentLanguage"`
	ContentType        string  `pulumi:"contentType"`
	Crc32c             string  `pulumi:"crc32c"`
	DetectMd5hash      string  `pulumi:"detectMd5hash"`
	// The provider-assigned unique ID for this managed resource.
	Id           string            `pulumi:"id"`
	KmsKeyName   string            `pulumi:"kmsKeyName"`
	Md5hash      string            `pulumi:"md5hash"`
	MediaLink    string            `pulumi:"mediaLink"`
	Metadata     map[string]string `pulumi:"metadata"`
	Name         string            `pulumi:"name"`
	OutputName   string            `pulumi:"outputName"`
	SelfLink     string            `pulumi:"selfLink"`
	Source       string            `pulumi:"source"`
	StorageClass string            `pulumi:"storageClass"`
}

A collection of values returned by getBucketObjectContent.

func GetBucketObjectContent added in v4.7.0

func GetBucketObjectContent(ctx *pulumi.Context, args *GetBucketObjectContentArgs, opts ...pulumi.InvokeOption) (*GetBucketObjectContentResult, error)

Gets an existing object content 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).

> **Warning:** The object content will be saved in the state, and visiable to everyone who has access to the state file.

## Example Usage

Example file object stored within a folder.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		key, err := storage.GetBucketObjectContent(ctx, &storage.GetBucketObjectContentArgs{
			Name:   "encryptedkey",
			Bucket: "keystore",
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("encrypted", key.Content)
		return nil
	})
}

```

type GetObjectSignedUrlArgs

type GetObjectSignedUrlArgs struct {
	// The name of the bucket to read the object from
	Bucket string `pulumi:"bucket"`
	// 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 *string `pulumi:"contentMd5"`
	// If you specify this in the datasource, the client must provide the `Content-Type` HTTP header with the same value in its request.
	ContentType *string `pulumi:"contentType"`
	// 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 *string `pulumi:"credentials"`
	// 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 *string `pulumi:"duration"`
	// 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 map[string]string `pulumi:"extensionHeaders"`
	// What HTTP Method will the signed URL allow (defaults to `GET`)
	HttpMethod *string `pulumi:"httpMethod"`
	// The full path to the object inside the bucket
	Path string `pulumi:"path"`
}

A collection of arguments for invoking getObjectSignedUrl.

type GetObjectSignedUrlResult

type GetObjectSignedUrlResult struct {
	Bucket           string            `pulumi:"bucket"`
	ContentMd5       *string           `pulumi:"contentMd5"`
	ContentType      *string           `pulumi:"contentType"`
	Credentials      *string           `pulumi:"credentials"`
	Duration         *string           `pulumi:"duration"`
	ExtensionHeaders map[string]string `pulumi:"extensionHeaders"`
	HttpMethod       *string           `pulumi:"httpMethod"`
	// The provider-assigned unique ID for this managed resource.
	Id   string `pulumi:"id"`
	Path string `pulumi:"path"`
	// The signed URL that can be used to access the storage object without authentication.
	SignedUrl string `pulumi:"signedUrl"`
}

A collection of values returned by getObjectSignedUrl.

func GetObjectSignedUrl

func GetObjectSignedUrl(ctx *pulumi.Context, args *GetObjectSignedUrlArgs, opts ...pulumi.InvokeOption) (*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).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.GetObjectSignedUrl(ctx, &storage.GetObjectSignedUrlArgs{
			Bucket: "install_binaries",
			Path:   "path/to/install_file.bin",
		}, nil)
		if err != nil {
			return err
		}
		_, err = compute.NewInstance(ctx, "vm", nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetProjectServiceAccountArgs

type GetProjectServiceAccountArgs struct {
	// The project the unique service account was created for. If it is not provided, the provider project is used.
	Project *string `pulumi:"project"`
	// 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 *string `pulumi:"userProject"`
}

A collection of arguments for invoking getProjectServiceAccount.

type GetProjectServiceAccountResult

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 string `pulumi:"emailAddress"`
	// The provider-assigned unique ID for this managed resource.
	Id          string  `pulumi:"id"`
	Project     string  `pulumi:"project"`
	UserProject *string `pulumi:"userProject"`
}

A collection of values returned by getProjectServiceAccount.

func GetProjectServiceAccount

func GetProjectServiceAccount(ctx *pulumi.Context, args *GetProjectServiceAccountArgs, opts ...pulumi.InvokeOption) (*GetProjectServiceAccountResult, error)

Get the email address of a project's unique [automatic Google Cloud Storage service account](https://cloud.google.com/storage/docs/projects#service-accounts).

For each Google Cloud project, Google maintains a unique service account which is used as the identity for various Google Cloud Storage operations, including operations involving [customer-managed encryption keys](https://cloud.google.com/storage/docs/encryption/customer-managed-keys) and those involving [storage notifications to pub/sub](https://cloud.google.com/storage/docs/gsutil/commands/notification). This automatic Google service account requires access to the relevant Cloud KMS keys or pub/sub topics, respectively, in order for Cloud Storage to use these customer-managed resources.

The service account has a well-known, documented naming format which is parameterised on the numeric Google project ID. However, as noted in [the docs](https://cloud.google.com/storage/docs/projects#service-accounts), it is only created when certain relevant actions occur which presuppose its existence. These actions include calling a [Cloud Storage API endpoint](https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount/get) to yield the service account's identity, or performing some operations in the UI which must use the service account's identity, such as attempting to list Cloud KMS keys on the bucket creation page.

Use of this data source calls the relevant API endpoint to obtain the service account's identity and thus ensures it exists prior to any API operations which demand its existence, such as specifying it in Cloud IAM policy. Always prefer to use this data source over interpolating the project ID into the well-known format for this service account, as the latter approach may cause provider update errors in cases where the service account does not yet exist.

> When you write provider code which uses features depending on this service account *and* your provider code adds the service account in IAM policy on other resources,

you must take care for race conditions between the establishment of the IAM policy and creation of the relevant Cloud Storage resource.
Cloud Storage APIs will require permissions on resources such as pub/sub topics or Cloud KMS keys to exist *before* the attempt to utilise them in a
bucket configuration, otherwise the API calls will fail.
You may need to use `dependsOn` to create an explicit dependency between the IAM policy resource and the Cloud Storage resource which depends on it.
See the examples here and in the `storage.Notification` resource.

For more information see [the API reference](https://cloud.google.com/storage/docs/json_api/v1/projects/serviceAccount).

## Example Usage ### Pub/Sub Notifications

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		gcsAccount, err := storage.GetProjectServiceAccount(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Topic: pulumi.Any(google_pubsub_topic.Topic.Name),
			Role:  pulumi.String("roles/pubsub.publisher"),
			Members: pulumi.StringArray{
				pulumi.String(fmt.Sprintf("%v%v", "serviceAccount:", gcsAccount.EmailAddress)),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Cloud KMS Keys

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		gcsAccount, err := storage.GetProjectServiceAccount(ctx, nil, nil)
		if err != nil {
			return err
		}
		binding, err := kms.NewCryptoKeyIAMBinding(ctx, "binding", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: pulumi.String("your-crypto-key-id"),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
			Members: pulumi.StringArray{
				pulumi.String(fmt.Sprintf("%v%v", "serviceAccount:", gcsAccount.EmailAddress)),
			},
		})
		if err != nil {
			return err
		}
		_, err = storage.NewBucket(ctx, "bucket", &storage.BucketArgs{
			Encryption: &storage.BucketEncryptionArgs{
				DefaultKmsKeyName: pulumi.String("your-crypto-key-id"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			binding,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetTransferProjectServieAccountArgs

type GetTransferProjectServieAccountArgs struct {
	// The project ID. If it is not provided, the provider project is used.
	Project *string `pulumi:"project"`
}

A collection of arguments for invoking getTransferProjectServieAccount.

type GetTransferProjectServieAccountResult

type GetTransferProjectServieAccountResult struct {
	// Email address of the default service account used by Storage Transfer Jobs running in this project
	Email string `pulumi:"email"`
	// The provider-assigned unique ID for this managed resource.
	Id      string `pulumi:"id"`
	Project string `pulumi:"project"`
}

A collection of values returned by getTransferProjectServieAccount.

func GetTransferProjectServieAccount

Use this data source to retrieve Storage Transfer service account for this project

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := storage.GetTransferProjectServieAccount(ctx, nil, nil)
		if err != nil {
			return err
		}
		ctx.Export("defaultAccount", _default.Email)
		return nil
	})
}

```

type HmacKey

type HmacKey struct {
	pulumi.CustomResourceState

	// The access ID of the HMAC Key.
	AccessId pulumi.StringOutput `pulumi:"accessId"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// HMAC secret key material.
	Secret pulumi.StringOutput `pulumi:"secret"`
	// The email address of the key's associated service account.
	ServiceAccountEmail pulumi.StringOutput `pulumi:"serviceAccountEmail"`
	// The state of the key. Can be set to one of ACTIVE, INACTIVE.
	// Default value is `ACTIVE`.
	// Possible values are `ACTIVE` and `INACTIVE`.
	State pulumi.StringPtrOutput `pulumi:"state"`
	// 'The creation time of the HMAC key in RFC 3339 format. '
	TimeCreated pulumi.StringOutput `pulumi:"timeCreated"`
	// 'The last modification time of the HMAC key metadata in RFC 3339 format.'
	Updated pulumi.StringOutput `pulumi:"updated"`
}

The hmacKeys resource represents an HMAC key within Cloud Storage. The resource consists of a secret and HMAC key metadata. HMAC keys can be used as credentials for service accounts.

To get more information about HmacKey, see:

* [API documentation](https://cloud.google.com/storage/docs/json_api/v1/projects/hmacKeys) * How-to Guides

> **Warning:** All arguments including the `secret` value will be stored in the raw state as plain-text. [Read more about secrets in state](https://www.pulumi.com/docs/intro/concepts/programming-model/#secrets). On import, the `secret` value will not be retrieved.

> **Warning:** All arguments including `secret` will be stored in the raw state as plain-text. [Read more about secrets in state](https://www.pulumi.com/docs/intro/concepts/programming-model/#secrets).

## Example Usage ### Storage Hmac Key

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/serviceAccount"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		serviceAccount, err := serviceAccount.NewAccount(ctx, "serviceAccount", &serviceAccount.AccountArgs{
			AccountId: pulumi.String("my-svc-acc"),
		})
		if err != nil {
			return err
		}
		_, err = storage.NewHmacKey(ctx, "key", &storage.HmacKeyArgs{
			ServiceAccountEmail: serviceAccount.Email,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

HmacKey can be imported using any of these accepted formats

```sh

$ pulumi import gcp:storage/hmacKey:HmacKey default projects/{{project}}/hmacKeys/{{access_id}}

```

```sh

$ pulumi import gcp:storage/hmacKey:HmacKey default {{project}}/{{access_id}}

```

```sh

$ pulumi import gcp:storage/hmacKey:HmacKey default {{access_id}}

```

func GetHmacKey

func GetHmacKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *HmacKeyState, opts ...pulumi.ResourceOption) (*HmacKey, error)

GetHmacKey gets an existing HmacKey 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 NewHmacKey

func NewHmacKey(ctx *pulumi.Context,
	name string, args *HmacKeyArgs, opts ...pulumi.ResourceOption) (*HmacKey, error)

NewHmacKey registers a new resource with the given unique name, arguments, and options.

func (*HmacKey) ElementType added in v4.4.0

func (*HmacKey) ElementType() reflect.Type

func (*HmacKey) ToHmacKeyOutput added in v4.4.0

func (i *HmacKey) ToHmacKeyOutput() HmacKeyOutput

func (*HmacKey) ToHmacKeyOutputWithContext added in v4.4.0

func (i *HmacKey) ToHmacKeyOutputWithContext(ctx context.Context) HmacKeyOutput

func (*HmacKey) ToHmacKeyPtrOutput added in v4.11.1

func (i *HmacKey) ToHmacKeyPtrOutput() HmacKeyPtrOutput

func (*HmacKey) ToHmacKeyPtrOutputWithContext added in v4.11.1

func (i *HmacKey) ToHmacKeyPtrOutputWithContext(ctx context.Context) HmacKeyPtrOutput

type HmacKeyArgs

type HmacKeyArgs struct {
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The email address of the key's associated service account.
	ServiceAccountEmail pulumi.StringInput
	// The state of the key. Can be set to one of ACTIVE, INACTIVE.
	// Default value is `ACTIVE`.
	// Possible values are `ACTIVE` and `INACTIVE`.
	State pulumi.StringPtrInput
}

The set of arguments for constructing a HmacKey resource.

func (HmacKeyArgs) ElementType

func (HmacKeyArgs) ElementType() reflect.Type

type HmacKeyArray added in v4.11.1

type HmacKeyArray []HmacKeyInput

func (HmacKeyArray) ElementType added in v4.11.1

func (HmacKeyArray) ElementType() reflect.Type

func (HmacKeyArray) ToHmacKeyArrayOutput added in v4.11.1

func (i HmacKeyArray) ToHmacKeyArrayOutput() HmacKeyArrayOutput

func (HmacKeyArray) ToHmacKeyArrayOutputWithContext added in v4.11.1

func (i HmacKeyArray) ToHmacKeyArrayOutputWithContext(ctx context.Context) HmacKeyArrayOutput

type HmacKeyArrayInput added in v4.11.1

type HmacKeyArrayInput interface {
	pulumi.Input

	ToHmacKeyArrayOutput() HmacKeyArrayOutput
	ToHmacKeyArrayOutputWithContext(context.Context) HmacKeyArrayOutput
}

HmacKeyArrayInput is an input type that accepts HmacKeyArray and HmacKeyArrayOutput values. You can construct a concrete instance of `HmacKeyArrayInput` via:

HmacKeyArray{ HmacKeyArgs{...} }

type HmacKeyArrayOutput added in v4.11.1

type HmacKeyArrayOutput struct{ *pulumi.OutputState }

func (HmacKeyArrayOutput) ElementType added in v4.11.1

func (HmacKeyArrayOutput) ElementType() reflect.Type

func (HmacKeyArrayOutput) Index added in v4.11.1

func (HmacKeyArrayOutput) ToHmacKeyArrayOutput added in v4.11.1

func (o HmacKeyArrayOutput) ToHmacKeyArrayOutput() HmacKeyArrayOutput

func (HmacKeyArrayOutput) ToHmacKeyArrayOutputWithContext added in v4.11.1

func (o HmacKeyArrayOutput) ToHmacKeyArrayOutputWithContext(ctx context.Context) HmacKeyArrayOutput

type HmacKeyInput added in v4.4.0

type HmacKeyInput interface {
	pulumi.Input

	ToHmacKeyOutput() HmacKeyOutput
	ToHmacKeyOutputWithContext(ctx context.Context) HmacKeyOutput
}

type HmacKeyMap added in v4.11.1

type HmacKeyMap map[string]HmacKeyInput

func (HmacKeyMap) ElementType added in v4.11.1

func (HmacKeyMap) ElementType() reflect.Type

func (HmacKeyMap) ToHmacKeyMapOutput added in v4.11.1

func (i HmacKeyMap) ToHmacKeyMapOutput() HmacKeyMapOutput

func (HmacKeyMap) ToHmacKeyMapOutputWithContext added in v4.11.1

func (i HmacKeyMap) ToHmacKeyMapOutputWithContext(ctx context.Context) HmacKeyMapOutput

type HmacKeyMapInput added in v4.11.1

type HmacKeyMapInput interface {
	pulumi.Input

	ToHmacKeyMapOutput() HmacKeyMapOutput
	ToHmacKeyMapOutputWithContext(context.Context) HmacKeyMapOutput
}

HmacKeyMapInput is an input type that accepts HmacKeyMap and HmacKeyMapOutput values. You can construct a concrete instance of `HmacKeyMapInput` via:

HmacKeyMap{ "key": HmacKeyArgs{...} }

type HmacKeyMapOutput added in v4.11.1

type HmacKeyMapOutput struct{ *pulumi.OutputState }

func (HmacKeyMapOutput) ElementType added in v4.11.1

func (HmacKeyMapOutput) ElementType() reflect.Type

func (HmacKeyMapOutput) MapIndex added in v4.11.1

func (HmacKeyMapOutput) ToHmacKeyMapOutput added in v4.11.1

func (o HmacKeyMapOutput) ToHmacKeyMapOutput() HmacKeyMapOutput

func (HmacKeyMapOutput) ToHmacKeyMapOutputWithContext added in v4.11.1

func (o HmacKeyMapOutput) ToHmacKeyMapOutputWithContext(ctx context.Context) HmacKeyMapOutput

type HmacKeyOutput added in v4.4.0

type HmacKeyOutput struct {
	*pulumi.OutputState
}

func (HmacKeyOutput) ElementType added in v4.4.0

func (HmacKeyOutput) ElementType() reflect.Type

func (HmacKeyOutput) ToHmacKeyOutput added in v4.4.0

func (o HmacKeyOutput) ToHmacKeyOutput() HmacKeyOutput

func (HmacKeyOutput) ToHmacKeyOutputWithContext added in v4.4.0

func (o HmacKeyOutput) ToHmacKeyOutputWithContext(ctx context.Context) HmacKeyOutput

func (HmacKeyOutput) ToHmacKeyPtrOutput added in v4.11.1

func (o HmacKeyOutput) ToHmacKeyPtrOutput() HmacKeyPtrOutput

func (HmacKeyOutput) ToHmacKeyPtrOutputWithContext added in v4.11.1

func (o HmacKeyOutput) ToHmacKeyPtrOutputWithContext(ctx context.Context) HmacKeyPtrOutput

type HmacKeyPtrInput added in v4.11.1

type HmacKeyPtrInput interface {
	pulumi.Input

	ToHmacKeyPtrOutput() HmacKeyPtrOutput
	ToHmacKeyPtrOutputWithContext(ctx context.Context) HmacKeyPtrOutput
}

type HmacKeyPtrOutput added in v4.11.1

type HmacKeyPtrOutput struct {
	*pulumi.OutputState
}

func (HmacKeyPtrOutput) ElementType added in v4.11.1

func (HmacKeyPtrOutput) ElementType() reflect.Type

func (HmacKeyPtrOutput) ToHmacKeyPtrOutput added in v4.11.1

func (o HmacKeyPtrOutput) ToHmacKeyPtrOutput() HmacKeyPtrOutput

func (HmacKeyPtrOutput) ToHmacKeyPtrOutputWithContext added in v4.11.1

func (o HmacKeyPtrOutput) ToHmacKeyPtrOutputWithContext(ctx context.Context) HmacKeyPtrOutput

type HmacKeyState

type HmacKeyState struct {
	// The access ID of the HMAC Key.
	AccessId pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// HMAC secret key material.
	Secret pulumi.StringPtrInput
	// The email address of the key's associated service account.
	ServiceAccountEmail pulumi.StringPtrInput
	// The state of the key. Can be set to one of ACTIVE, INACTIVE.
	// Default value is `ACTIVE`.
	// Possible values are `ACTIVE` and `INACTIVE`.
	State pulumi.StringPtrInput
	// 'The creation time of the HMAC key in RFC 3339 format. '
	TimeCreated pulumi.StringPtrInput
	// 'The last modification time of the HMAC key metadata in RFC 3339 format.'
	Updated pulumi.StringPtrInput
}

func (HmacKeyState) ElementType

func (HmacKeyState) ElementType() reflect.Type

type LookupBucketObjectArgs

type LookupBucketObjectArgs struct {
	// The name of the containing bucket.
	Bucket *string `pulumi:"bucket"`
	// The name of the object.
	Name *string `pulumi:"name"`
}

A collection of arguments for invoking getBucketObject.

type LookupBucketObjectResult

type LookupBucketObjectResult struct {
	Bucket *string `pulumi:"bucket"`
	// (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 string `pulumi:"cacheControl"`
	Content      string `pulumi:"content"`
	// (Computed) [Content-Disposition](https://tools.ietf.org/html/rfc6266) of the object data.
	ContentDisposition string `pulumi:"contentDisposition"`
	// (Computed) [Content-Encoding](https://tools.ietf.org/html/rfc7231#section-3.1.2.2) of the object data.
	ContentEncoding string `pulumi:"contentEncoding"`
	// (Computed) [Content-Language](https://tools.ietf.org/html/rfc7231#section-3.1.3.2) of the object data.
	ContentLanguage string `pulumi:"contentLanguage"`
	// (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 string `pulumi:"contentType"`
	// (Computed) Base 64 CRC32 hash of the uploaded data.
	Crc32c        string `pulumi:"crc32c"`
	DetectMd5hash string `pulumi:"detectMd5hash"`
	// The provider-assigned unique ID for this managed resource.
	Id         string `pulumi:"id"`
	KmsKeyName string `pulumi:"kmsKeyName"`
	// (Computed) Base 64 MD5 hash of the uploaded data.
	Md5hash string `pulumi:"md5hash"`
	// (Computed) A url reference to download this object.
	MediaLink  string            `pulumi:"mediaLink"`
	Metadata   map[string]string `pulumi:"metadata"`
	Name       *string           `pulumi:"name"`
	OutputName string            `pulumi:"outputName"`
	// (Computed) A url reference to this object.
	SelfLink string `pulumi:"selfLink"`
	Source   string `pulumi:"source"`
	// (Computed) The [StorageClass](https://cloud.google.com/storage/docs/storage-classes) of the new bucket object.
	// Supported values include: `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`. 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 string `pulumi:"storageClass"`
}

A collection of values returned by getBucketObject.

func LookupBucketObject

func LookupBucketObject(ctx *pulumi.Context, args *LookupBucketObjectArgs, opts ...pulumi.InvokeOption) (*LookupBucketObjectResult, 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).

## Example Usage

Example picture stored within a folder.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := "image-store"
		opt1 := "folder/butterfly01.jpg"
		_, err := storage.LookupBucketObject(ctx, &storage.LookupBucketObjectArgs{
			Bucket: &opt0,
			Name:   &opt1,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type Notification

type Notification struct {
	pulumi.CustomResourceState

	// The name of the bucket.
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// A set of key/value attribute pairs to attach to each Cloud PubSub message published for this notification subscription
	CustomAttributes pulumi.StringMapOutput `pulumi:"customAttributes"`
	// 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 pulumi.StringArrayOutput `pulumi:"eventTypes"`
	// The ID of the created notification.
	NotificationId pulumi.StringOutput `pulumi:"notificationId"`
	// 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 pulumi.StringPtrOutput `pulumi:"objectNamePrefix"`
	// The desired content of the Payload. One of `"JSON_API_V1"` or `"NONE"`.
	PayloadFormat pulumi.StringOutput `pulumi:"payloadFormat"`
	// The URI of the created resource.
	SelfLink pulumi.StringOutput `pulumi:"selfLink"`
	// 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`. If the project is not set in the provider,
	// you will need to use the project-level name.
	Topic pulumi.StringOutput `pulumi:"topic"`
}

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 exist and have the IAM permission "projects.topics.publish" for a Cloud Pub/Sub topic in the project. This service account is not created automatically when a project is created. To ensure the service account exists and obtain its email address for use in granting the correct IAM permission, use the [`storage.getProjectServiceAccount`](https://www.terraform.io/docs/providers/google/d/storage_project_service_account.html) 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.

> **NOTE**: This resource can affect your storage IAM policy. If you are using this in the same config as your storage IAM policy resources, consider making this resource dependent on those IAM resources via `dependsOn`. This will safeguard against errors due to IAM race conditions.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		gcsAccount, err := storage.GetProjectServiceAccount(ctx, nil, nil)
		if err != nil {
			return err
		}
		topic, err := pubsub.NewTopic(ctx, "topic", nil)
		if err != nil {
			return err
		}
		binding, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Topic: topic.ID(),
			Role:  pulumi.String("roles/pubsub.publisher"),
			Members: pulumi.StringArray{
				pulumi.String(fmt.Sprintf("%v%v", "serviceAccount:", gcsAccount.EmailAddress)),
			},
		})
		if err != nil {
			return err
		}
		bucket, err := storage.NewBucket(ctx, "bucket", nil)
		if err != nil {
			return err
		}
		_, err = storage.NewNotification(ctx, "notification", &storage.NotificationArgs{
			Bucket:        bucket.Name,
			PayloadFormat: pulumi.String("JSON_API_V1"),
			Topic:         topic.ID(),
			EventTypes: pulumi.StringArray{
				pulumi.String("OBJECT_FINALIZE"),
				pulumi.String("OBJECT_METADATA_UPDATE"),
			},
			CustomAttributes: pulumi.StringMap{
				"new-attribute": pulumi.String("new-attribute-value"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			binding,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Storage notifications can be imported using the notification `id` in the format `<bucket_name>/notificationConfigs/<id>` e.g.

```sh

$ pulumi import gcp:storage/notification:Notification notification default_bucket/notificationConfigs/102

```

func GetNotification

func GetNotification(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *NotificationState, opts ...pulumi.ResourceOption) (*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.ResourceOption) (*Notification, error)

NewNotification registers a new resource with the given unique name, arguments, and options.

func (*Notification) ElementType added in v4.4.0

func (*Notification) ElementType() reflect.Type

func (*Notification) ToNotificationOutput added in v4.4.0

func (i *Notification) ToNotificationOutput() NotificationOutput

func (*Notification) ToNotificationOutputWithContext added in v4.4.0

func (i *Notification) ToNotificationOutputWithContext(ctx context.Context) NotificationOutput

func (*Notification) ToNotificationPtrOutput added in v4.11.1

func (i *Notification) ToNotificationPtrOutput() NotificationPtrOutput

func (*Notification) ToNotificationPtrOutputWithContext added in v4.11.1

func (i *Notification) ToNotificationPtrOutputWithContext(ctx context.Context) NotificationPtrOutput

type NotificationArgs

type NotificationArgs struct {
	// The name of the bucket.
	Bucket pulumi.StringInput
	// A set of key/value attribute pairs to attach to each Cloud PubSub message published for this notification subscription
	CustomAttributes pulumi.StringMapInput
	// 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 pulumi.StringArrayInput
	// 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 pulumi.StringPtrInput
	// The desired content of the Payload. One of `"JSON_API_V1"` or `"NONE"`.
	PayloadFormat pulumi.StringInput
	// 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`. If the project is not set in the provider,
	// you will need to use the project-level name.
	Topic pulumi.StringInput
}

The set of arguments for constructing a Notification resource.

func (NotificationArgs) ElementType

func (NotificationArgs) ElementType() reflect.Type

type NotificationArray added in v4.11.1

type NotificationArray []NotificationInput

func (NotificationArray) ElementType added in v4.11.1

func (NotificationArray) ElementType() reflect.Type

func (NotificationArray) ToNotificationArrayOutput added in v4.11.1

func (i NotificationArray) ToNotificationArrayOutput() NotificationArrayOutput

func (NotificationArray) ToNotificationArrayOutputWithContext added in v4.11.1

func (i NotificationArray) ToNotificationArrayOutputWithContext(ctx context.Context) NotificationArrayOutput

type NotificationArrayInput added in v4.11.1

type NotificationArrayInput interface {
	pulumi.Input

	ToNotificationArrayOutput() NotificationArrayOutput
	ToNotificationArrayOutputWithContext(context.Context) NotificationArrayOutput
}

NotificationArrayInput is an input type that accepts NotificationArray and NotificationArrayOutput values. You can construct a concrete instance of `NotificationArrayInput` via:

NotificationArray{ NotificationArgs{...} }

type NotificationArrayOutput added in v4.11.1

type NotificationArrayOutput struct{ *pulumi.OutputState }

func (NotificationArrayOutput) ElementType added in v4.11.1

func (NotificationArrayOutput) ElementType() reflect.Type

func (NotificationArrayOutput) Index added in v4.11.1

func (NotificationArrayOutput) ToNotificationArrayOutput added in v4.11.1

func (o NotificationArrayOutput) ToNotificationArrayOutput() NotificationArrayOutput

func (NotificationArrayOutput) ToNotificationArrayOutputWithContext added in v4.11.1

func (o NotificationArrayOutput) ToNotificationArrayOutputWithContext(ctx context.Context) NotificationArrayOutput

type NotificationInput added in v4.4.0

type NotificationInput interface {
	pulumi.Input

	ToNotificationOutput() NotificationOutput
	ToNotificationOutputWithContext(ctx context.Context) NotificationOutput
}

type NotificationMap added in v4.11.1

type NotificationMap map[string]NotificationInput

func (NotificationMap) ElementType added in v4.11.1

func (NotificationMap) ElementType() reflect.Type

func (NotificationMap) ToNotificationMapOutput added in v4.11.1

func (i NotificationMap) ToNotificationMapOutput() NotificationMapOutput

func (NotificationMap) ToNotificationMapOutputWithContext added in v4.11.1

func (i NotificationMap) ToNotificationMapOutputWithContext(ctx context.Context) NotificationMapOutput

type NotificationMapInput added in v4.11.1

type NotificationMapInput interface {
	pulumi.Input

	ToNotificationMapOutput() NotificationMapOutput
	ToNotificationMapOutputWithContext(context.Context) NotificationMapOutput
}

NotificationMapInput is an input type that accepts NotificationMap and NotificationMapOutput values. You can construct a concrete instance of `NotificationMapInput` via:

NotificationMap{ "key": NotificationArgs{...} }

type NotificationMapOutput added in v4.11.1

type NotificationMapOutput struct{ *pulumi.OutputState }

func (NotificationMapOutput) ElementType added in v4.11.1

func (NotificationMapOutput) ElementType() reflect.Type

func (NotificationMapOutput) MapIndex added in v4.11.1

func (NotificationMapOutput) ToNotificationMapOutput added in v4.11.1

func (o NotificationMapOutput) ToNotificationMapOutput() NotificationMapOutput

func (NotificationMapOutput) ToNotificationMapOutputWithContext added in v4.11.1

func (o NotificationMapOutput) ToNotificationMapOutputWithContext(ctx context.Context) NotificationMapOutput

type NotificationOutput added in v4.4.0

type NotificationOutput struct {
	*pulumi.OutputState
}

func (NotificationOutput) ElementType added in v4.4.0

func (NotificationOutput) ElementType() reflect.Type

func (NotificationOutput) ToNotificationOutput added in v4.4.0

func (o NotificationOutput) ToNotificationOutput() NotificationOutput

func (NotificationOutput) ToNotificationOutputWithContext added in v4.4.0

func (o NotificationOutput) ToNotificationOutputWithContext(ctx context.Context) NotificationOutput

func (NotificationOutput) ToNotificationPtrOutput added in v4.11.1

func (o NotificationOutput) ToNotificationPtrOutput() NotificationPtrOutput

func (NotificationOutput) ToNotificationPtrOutputWithContext added in v4.11.1

func (o NotificationOutput) ToNotificationPtrOutputWithContext(ctx context.Context) NotificationPtrOutput

type NotificationPtrInput added in v4.11.1

type NotificationPtrInput interface {
	pulumi.Input

	ToNotificationPtrOutput() NotificationPtrOutput
	ToNotificationPtrOutputWithContext(ctx context.Context) NotificationPtrOutput
}

type NotificationPtrOutput added in v4.11.1

type NotificationPtrOutput struct {
	*pulumi.OutputState
}

func (NotificationPtrOutput) ElementType added in v4.11.1

func (NotificationPtrOutput) ElementType() reflect.Type

func (NotificationPtrOutput) ToNotificationPtrOutput added in v4.11.1

func (o NotificationPtrOutput) ToNotificationPtrOutput() NotificationPtrOutput

func (NotificationPtrOutput) ToNotificationPtrOutputWithContext added in v4.11.1

func (o NotificationPtrOutput) ToNotificationPtrOutputWithContext(ctx context.Context) NotificationPtrOutput

type NotificationState

type NotificationState struct {
	// The name of the bucket.
	Bucket pulumi.StringPtrInput
	// A set of key/value attribute pairs to attach to each Cloud PubSub message published for this notification subscription
	CustomAttributes pulumi.StringMapInput
	// 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 pulumi.StringArrayInput
	// The ID of the created notification.
	NotificationId pulumi.StringPtrInput
	// 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 pulumi.StringPtrInput
	// The desired content of the Payload. One of `"JSON_API_V1"` or `"NONE"`.
	PayloadFormat pulumi.StringPtrInput
	// The URI of the created resource.
	SelfLink pulumi.StringPtrInput
	// 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`. If the project is not set in the provider,
	// you will need to use the project-level name.
	Topic pulumi.StringPtrInput
}

func (NotificationState) ElementType

func (NotificationState) ElementType() reflect.Type

type ObjectACL

type ObjectACL struct {
	pulumi.CustomResourceState

	// The name of the bucket the object is stored in.
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// The name of the object to apply the acl to.
	Object pulumi.StringOutput `pulumi:"object"`
	// The "canned" [predefined ACL](https://cloud.google.com/storage/docs/access-control#predefined-acl) to apply. Must be set if `roleEntity` is not.
	PredefinedAcl pulumi.StringPtrOutput `pulumi:"predefinedAcl"`
	// 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 pulumi.StringArrayOutput `pulumi:"roleEntities"`
}

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.

## Example Usage

Create an object ACL with one owner and one reader.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucket(ctx, "image_store", &storage.BucketArgs{
			Location: pulumi.String("EU"),
		})
		if err != nil {
			return err
		}
		image, err := storage.NewBucketObject(ctx, "image", &storage.BucketObjectArgs{
			Bucket: image_store.Name,
			Source: pulumi.NewFileAsset("image1.jpg"),
		})
		if err != nil {
			return err
		}
		_, err = storage.NewObjectACL(ctx, "image_store_acl", &storage.ObjectACLArgs{
			Bucket: image_store.Name,
			Object: image.OutputName,
			RoleEntities: pulumi.StringArray{
				pulumi.String("OWNER:user-my.email@gmail.com"),
				pulumi.String("READER:group-mygroup"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource does not support import.

func GetObjectACL

func GetObjectACL(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ObjectACLState, opts ...pulumi.ResourceOption) (*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.ResourceOption) (*ObjectACL, error)

NewObjectACL registers a new resource with the given unique name, arguments, and options.

func (*ObjectACL) ElementType added in v4.4.0

func (*ObjectACL) ElementType() reflect.Type

func (*ObjectACL) ToObjectACLOutput added in v4.4.0

func (i *ObjectACL) ToObjectACLOutput() ObjectACLOutput

func (*ObjectACL) ToObjectACLOutputWithContext added in v4.4.0

func (i *ObjectACL) ToObjectACLOutputWithContext(ctx context.Context) ObjectACLOutput

func (*ObjectACL) ToObjectACLPtrOutput added in v4.11.1

func (i *ObjectACL) ToObjectACLPtrOutput() ObjectACLPtrOutput

func (*ObjectACL) ToObjectACLPtrOutputWithContext added in v4.11.1

func (i *ObjectACL) ToObjectACLPtrOutputWithContext(ctx context.Context) ObjectACLPtrOutput

type ObjectACLArgs

type ObjectACLArgs struct {
	// The name of the bucket the object is stored in.
	Bucket pulumi.StringInput
	// The name of the object to apply the acl to.
	Object pulumi.StringInput
	// The "canned" [predefined ACL](https://cloud.google.com/storage/docs/access-control#predefined-acl) to apply. Must be set if `roleEntity` is not.
	PredefinedAcl pulumi.StringPtrInput
	// 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 pulumi.StringArrayInput
}

The set of arguments for constructing a ObjectACL resource.

func (ObjectACLArgs) ElementType

func (ObjectACLArgs) ElementType() reflect.Type

type ObjectACLArray added in v4.11.1

type ObjectACLArray []ObjectACLInput

func (ObjectACLArray) ElementType added in v4.11.1

func (ObjectACLArray) ElementType() reflect.Type

func (ObjectACLArray) ToObjectACLArrayOutput added in v4.11.1

func (i ObjectACLArray) ToObjectACLArrayOutput() ObjectACLArrayOutput

func (ObjectACLArray) ToObjectACLArrayOutputWithContext added in v4.11.1

func (i ObjectACLArray) ToObjectACLArrayOutputWithContext(ctx context.Context) ObjectACLArrayOutput

type ObjectACLArrayInput added in v4.11.1

type ObjectACLArrayInput interface {
	pulumi.Input

	ToObjectACLArrayOutput() ObjectACLArrayOutput
	ToObjectACLArrayOutputWithContext(context.Context) ObjectACLArrayOutput
}

ObjectACLArrayInput is an input type that accepts ObjectACLArray and ObjectACLArrayOutput values. You can construct a concrete instance of `ObjectACLArrayInput` via:

ObjectACLArray{ ObjectACLArgs{...} }

type ObjectACLArrayOutput added in v4.11.1

type ObjectACLArrayOutput struct{ *pulumi.OutputState }

func (ObjectACLArrayOutput) ElementType added in v4.11.1

func (ObjectACLArrayOutput) ElementType() reflect.Type

func (ObjectACLArrayOutput) Index added in v4.11.1

func (ObjectACLArrayOutput) ToObjectACLArrayOutput added in v4.11.1

func (o ObjectACLArrayOutput) ToObjectACLArrayOutput() ObjectACLArrayOutput

func (ObjectACLArrayOutput) ToObjectACLArrayOutputWithContext added in v4.11.1

func (o ObjectACLArrayOutput) ToObjectACLArrayOutputWithContext(ctx context.Context) ObjectACLArrayOutput

type ObjectACLInput added in v4.4.0

type ObjectACLInput interface {
	pulumi.Input

	ToObjectACLOutput() ObjectACLOutput
	ToObjectACLOutputWithContext(ctx context.Context) ObjectACLOutput
}

type ObjectACLMap added in v4.11.1

type ObjectACLMap map[string]ObjectACLInput

func (ObjectACLMap) ElementType added in v4.11.1

func (ObjectACLMap) ElementType() reflect.Type

func (ObjectACLMap) ToObjectACLMapOutput added in v4.11.1

func (i ObjectACLMap) ToObjectACLMapOutput() ObjectACLMapOutput

func (ObjectACLMap) ToObjectACLMapOutputWithContext added in v4.11.1

func (i ObjectACLMap) ToObjectACLMapOutputWithContext(ctx context.Context) ObjectACLMapOutput

type ObjectACLMapInput added in v4.11.1

type ObjectACLMapInput interface {
	pulumi.Input

	ToObjectACLMapOutput() ObjectACLMapOutput
	ToObjectACLMapOutputWithContext(context.Context) ObjectACLMapOutput
}

ObjectACLMapInput is an input type that accepts ObjectACLMap and ObjectACLMapOutput values. You can construct a concrete instance of `ObjectACLMapInput` via:

ObjectACLMap{ "key": ObjectACLArgs{...} }

type ObjectACLMapOutput added in v4.11.1

type ObjectACLMapOutput struct{ *pulumi.OutputState }

func (ObjectACLMapOutput) ElementType added in v4.11.1

func (ObjectACLMapOutput) ElementType() reflect.Type

func (ObjectACLMapOutput) MapIndex added in v4.11.1

func (ObjectACLMapOutput) ToObjectACLMapOutput added in v4.11.1

func (o ObjectACLMapOutput) ToObjectACLMapOutput() ObjectACLMapOutput

func (ObjectACLMapOutput) ToObjectACLMapOutputWithContext added in v4.11.1

func (o ObjectACLMapOutput) ToObjectACLMapOutputWithContext(ctx context.Context) ObjectACLMapOutput

type ObjectACLOutput added in v4.4.0

type ObjectACLOutput struct {
	*pulumi.OutputState
}

func (ObjectACLOutput) ElementType added in v4.4.0

func (ObjectACLOutput) ElementType() reflect.Type

func (ObjectACLOutput) ToObjectACLOutput added in v4.4.0

func (o ObjectACLOutput) ToObjectACLOutput() ObjectACLOutput

func (ObjectACLOutput) ToObjectACLOutputWithContext added in v4.4.0

func (o ObjectACLOutput) ToObjectACLOutputWithContext(ctx context.Context) ObjectACLOutput

func (ObjectACLOutput) ToObjectACLPtrOutput added in v4.11.1

func (o ObjectACLOutput) ToObjectACLPtrOutput() ObjectACLPtrOutput

func (ObjectACLOutput) ToObjectACLPtrOutputWithContext added in v4.11.1

func (o ObjectACLOutput) ToObjectACLPtrOutputWithContext(ctx context.Context) ObjectACLPtrOutput

type ObjectACLPtrInput added in v4.11.1

type ObjectACLPtrInput interface {
	pulumi.Input

	ToObjectACLPtrOutput() ObjectACLPtrOutput
	ToObjectACLPtrOutputWithContext(ctx context.Context) ObjectACLPtrOutput
}

type ObjectACLPtrOutput added in v4.11.1

type ObjectACLPtrOutput struct {
	*pulumi.OutputState
}

func (ObjectACLPtrOutput) ElementType added in v4.11.1

func (ObjectACLPtrOutput) ElementType() reflect.Type

func (ObjectACLPtrOutput) ToObjectACLPtrOutput added in v4.11.1

func (o ObjectACLPtrOutput) ToObjectACLPtrOutput() ObjectACLPtrOutput

func (ObjectACLPtrOutput) ToObjectACLPtrOutputWithContext added in v4.11.1

func (o ObjectACLPtrOutput) ToObjectACLPtrOutputWithContext(ctx context.Context) ObjectACLPtrOutput

type ObjectACLState

type ObjectACLState struct {
	// The name of the bucket the object is stored in.
	Bucket pulumi.StringPtrInput
	// The name of the object to apply the acl to.
	Object pulumi.StringPtrInput
	// The "canned" [predefined ACL](https://cloud.google.com/storage/docs/access-control#predefined-acl) to apply. Must be set if `roleEntity` is not.
	PredefinedAcl pulumi.StringPtrInput
	// 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 pulumi.StringArrayInput
}

func (ObjectACLState) ElementType

func (ObjectACLState) ElementType() reflect.Type

type ObjectAccessControl

type ObjectAccessControl struct {
	pulumi.CustomResourceState

	// The name of the bucket.
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// The domain associated with the entity.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// The email address associated with the entity.
	Email pulumi.StringOutput `pulumi:"email"`
	// The entity holding the permission, in one of the following forms:
	// * user-{{userId}}
	// * user-{{email}} (such as "user-liz@example.com")
	// * group-{{groupId}}
	// * group-{{email}} (such as "group-example@googlegroups.com")
	// * domain-{{domain}} (such as "domain-example.com")
	// * project-team-{{projectId}}
	// * allUsers
	// * allAuthenticatedUsers
	Entity pulumi.StringOutput `pulumi:"entity"`
	// The ID for the entity
	EntityId pulumi.StringOutput `pulumi:"entityId"`
	// The content generation of the object, if applied to an object.
	Generation pulumi.IntOutput `pulumi:"generation"`
	// The name of the object to apply the access control to.
	Object pulumi.StringOutput `pulumi:"object"`
	// The project team associated with the entity
	ProjectTeams ObjectAccessControlProjectTeamArrayOutput `pulumi:"projectTeams"`
	// The access permission for the entity.
	// Possible values are `OWNER` and `READER`.
	Role pulumi.StringOutput `pulumi:"role"`
}

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

## Example Usage ### Storage Object Access Control Public Object

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		bucket, err := storage.NewBucket(ctx, "bucket", nil)
		if err != nil {
			return err
		}
		object, err := storage.NewBucketObject(ctx, "object", &storage.BucketObjectArgs{
			Bucket: bucket.Name,
			Source: pulumi.NewFileAsset("../static/img/header-logo.png"),
		})
		if err != nil {
			return err
		}
		_, err = storage.NewObjectAccessControl(ctx, "publicRule", &storage.ObjectAccessControlArgs{
			Object: object.OutputName,
			Bucket: bucket.Name,
			Role:   pulumi.String("READER"),
			Entity: pulumi.String("allUsers"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ObjectAccessControl can be imported using any of these accepted formats

```sh

$ pulumi import gcp:storage/objectAccessControl:ObjectAccessControl default {{bucket}}/{{object}}/{{entity}}

```

func GetObjectAccessControl

func GetObjectAccessControl(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ObjectAccessControlState, opts ...pulumi.ResourceOption) (*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

func NewObjectAccessControl(ctx *pulumi.Context,
	name string, args *ObjectAccessControlArgs, opts ...pulumi.ResourceOption) (*ObjectAccessControl, error)

NewObjectAccessControl registers a new resource with the given unique name, arguments, and options.

func (*ObjectAccessControl) ElementType added in v4.4.0

func (*ObjectAccessControl) ElementType() reflect.Type

func (*ObjectAccessControl) ToObjectAccessControlOutput added in v4.4.0

func (i *ObjectAccessControl) ToObjectAccessControlOutput() ObjectAccessControlOutput

func (*ObjectAccessControl) ToObjectAccessControlOutputWithContext added in v4.4.0

func (i *ObjectAccessControl) ToObjectAccessControlOutputWithContext(ctx context.Context) ObjectAccessControlOutput

func (*ObjectAccessControl) ToObjectAccessControlPtrOutput added in v4.11.1

func (i *ObjectAccessControl) ToObjectAccessControlPtrOutput() ObjectAccessControlPtrOutput

func (*ObjectAccessControl) ToObjectAccessControlPtrOutputWithContext added in v4.11.1

func (i *ObjectAccessControl) ToObjectAccessControlPtrOutputWithContext(ctx context.Context) ObjectAccessControlPtrOutput

type ObjectAccessControlArgs

type ObjectAccessControlArgs struct {
	// The name of the bucket.
	Bucket pulumi.StringInput
	// The entity holding the permission, in one of the following forms:
	// * user-{{userId}}
	// * user-{{email}} (such as "user-liz@example.com")
	// * group-{{groupId}}
	// * group-{{email}} (such as "group-example@googlegroups.com")
	// * domain-{{domain}} (such as "domain-example.com")
	// * project-team-{{projectId}}
	// * allUsers
	// * allAuthenticatedUsers
	Entity pulumi.StringInput
	// The name of the object to apply the access control to.
	Object pulumi.StringInput
	// The access permission for the entity.
	// Possible values are `OWNER` and `READER`.
	Role pulumi.StringInput
}

The set of arguments for constructing a ObjectAccessControl resource.

func (ObjectAccessControlArgs) ElementType

func (ObjectAccessControlArgs) ElementType() reflect.Type

type ObjectAccessControlArray added in v4.11.1

type ObjectAccessControlArray []ObjectAccessControlInput

func (ObjectAccessControlArray) ElementType added in v4.11.1

func (ObjectAccessControlArray) ElementType() reflect.Type

func (ObjectAccessControlArray) ToObjectAccessControlArrayOutput added in v4.11.1

func (i ObjectAccessControlArray) ToObjectAccessControlArrayOutput() ObjectAccessControlArrayOutput

func (ObjectAccessControlArray) ToObjectAccessControlArrayOutputWithContext added in v4.11.1

func (i ObjectAccessControlArray) ToObjectAccessControlArrayOutputWithContext(ctx context.Context) ObjectAccessControlArrayOutput

type ObjectAccessControlArrayInput added in v4.11.1

type ObjectAccessControlArrayInput interface {
	pulumi.Input

	ToObjectAccessControlArrayOutput() ObjectAccessControlArrayOutput
	ToObjectAccessControlArrayOutputWithContext(context.Context) ObjectAccessControlArrayOutput
}

ObjectAccessControlArrayInput is an input type that accepts ObjectAccessControlArray and ObjectAccessControlArrayOutput values. You can construct a concrete instance of `ObjectAccessControlArrayInput` via:

ObjectAccessControlArray{ ObjectAccessControlArgs{...} }

type ObjectAccessControlArrayOutput added in v4.11.1

type ObjectAccessControlArrayOutput struct{ *pulumi.OutputState }

func (ObjectAccessControlArrayOutput) ElementType added in v4.11.1

func (ObjectAccessControlArrayOutput) Index added in v4.11.1

func (ObjectAccessControlArrayOutput) ToObjectAccessControlArrayOutput added in v4.11.1

func (o ObjectAccessControlArrayOutput) ToObjectAccessControlArrayOutput() ObjectAccessControlArrayOutput

func (ObjectAccessControlArrayOutput) ToObjectAccessControlArrayOutputWithContext added in v4.11.1

func (o ObjectAccessControlArrayOutput) ToObjectAccessControlArrayOutputWithContext(ctx context.Context) ObjectAccessControlArrayOutput

type ObjectAccessControlInput added in v4.4.0

type ObjectAccessControlInput interface {
	pulumi.Input

	ToObjectAccessControlOutput() ObjectAccessControlOutput
	ToObjectAccessControlOutputWithContext(ctx context.Context) ObjectAccessControlOutput
}

type ObjectAccessControlMap added in v4.11.1

type ObjectAccessControlMap map[string]ObjectAccessControlInput

func (ObjectAccessControlMap) ElementType added in v4.11.1

func (ObjectAccessControlMap) ElementType() reflect.Type

func (ObjectAccessControlMap) ToObjectAccessControlMapOutput added in v4.11.1

func (i ObjectAccessControlMap) ToObjectAccessControlMapOutput() ObjectAccessControlMapOutput

func (ObjectAccessControlMap) ToObjectAccessControlMapOutputWithContext added in v4.11.1

func (i ObjectAccessControlMap) ToObjectAccessControlMapOutputWithContext(ctx context.Context) ObjectAccessControlMapOutput

type ObjectAccessControlMapInput added in v4.11.1

type ObjectAccessControlMapInput interface {
	pulumi.Input

	ToObjectAccessControlMapOutput() ObjectAccessControlMapOutput
	ToObjectAccessControlMapOutputWithContext(context.Context) ObjectAccessControlMapOutput
}

ObjectAccessControlMapInput is an input type that accepts ObjectAccessControlMap and ObjectAccessControlMapOutput values. You can construct a concrete instance of `ObjectAccessControlMapInput` via:

ObjectAccessControlMap{ "key": ObjectAccessControlArgs{...} }

type ObjectAccessControlMapOutput added in v4.11.1

type ObjectAccessControlMapOutput struct{ *pulumi.OutputState }

func (ObjectAccessControlMapOutput) ElementType added in v4.11.1

func (ObjectAccessControlMapOutput) MapIndex added in v4.11.1

func (ObjectAccessControlMapOutput) ToObjectAccessControlMapOutput added in v4.11.1

func (o ObjectAccessControlMapOutput) ToObjectAccessControlMapOutput() ObjectAccessControlMapOutput

func (ObjectAccessControlMapOutput) ToObjectAccessControlMapOutputWithContext added in v4.11.1

func (o ObjectAccessControlMapOutput) ToObjectAccessControlMapOutputWithContext(ctx context.Context) ObjectAccessControlMapOutput

type ObjectAccessControlOutput added in v4.4.0

type ObjectAccessControlOutput struct {
	*pulumi.OutputState
}

func (ObjectAccessControlOutput) ElementType added in v4.4.0

func (ObjectAccessControlOutput) ElementType() reflect.Type

func (ObjectAccessControlOutput) ToObjectAccessControlOutput added in v4.4.0

func (o ObjectAccessControlOutput) ToObjectAccessControlOutput() ObjectAccessControlOutput

func (ObjectAccessControlOutput) ToObjectAccessControlOutputWithContext added in v4.4.0

func (o ObjectAccessControlOutput) ToObjectAccessControlOutputWithContext(ctx context.Context) ObjectAccessControlOutput

func (ObjectAccessControlOutput) ToObjectAccessControlPtrOutput added in v4.11.1

func (o ObjectAccessControlOutput) ToObjectAccessControlPtrOutput() ObjectAccessControlPtrOutput

func (ObjectAccessControlOutput) ToObjectAccessControlPtrOutputWithContext added in v4.11.1

func (o ObjectAccessControlOutput) ToObjectAccessControlPtrOutputWithContext(ctx context.Context) ObjectAccessControlPtrOutput

type ObjectAccessControlProjectTeam

type ObjectAccessControlProjectTeam struct {
	ProjectNumber *string `pulumi:"projectNumber"`
	Team          *string `pulumi:"team"`
}

type ObjectAccessControlProjectTeamArgs

type ObjectAccessControlProjectTeamArgs struct {
	ProjectNumber pulumi.StringPtrInput `pulumi:"projectNumber"`
	Team          pulumi.StringPtrInput `pulumi:"team"`
}

func (ObjectAccessControlProjectTeamArgs) ElementType

func (ObjectAccessControlProjectTeamArgs) ToObjectAccessControlProjectTeamOutput

func (i ObjectAccessControlProjectTeamArgs) ToObjectAccessControlProjectTeamOutput() ObjectAccessControlProjectTeamOutput

func (ObjectAccessControlProjectTeamArgs) ToObjectAccessControlProjectTeamOutputWithContext

func (i ObjectAccessControlProjectTeamArgs) ToObjectAccessControlProjectTeamOutputWithContext(ctx context.Context) ObjectAccessControlProjectTeamOutput

type ObjectAccessControlProjectTeamArray

type ObjectAccessControlProjectTeamArray []ObjectAccessControlProjectTeamInput

func (ObjectAccessControlProjectTeamArray) ElementType

func (ObjectAccessControlProjectTeamArray) ToObjectAccessControlProjectTeamArrayOutput

func (i ObjectAccessControlProjectTeamArray) ToObjectAccessControlProjectTeamArrayOutput() ObjectAccessControlProjectTeamArrayOutput

func (ObjectAccessControlProjectTeamArray) ToObjectAccessControlProjectTeamArrayOutputWithContext

func (i ObjectAccessControlProjectTeamArray) ToObjectAccessControlProjectTeamArrayOutputWithContext(ctx context.Context) ObjectAccessControlProjectTeamArrayOutput

type ObjectAccessControlProjectTeamArrayInput

type ObjectAccessControlProjectTeamArrayInput interface {
	pulumi.Input

	ToObjectAccessControlProjectTeamArrayOutput() ObjectAccessControlProjectTeamArrayOutput
	ToObjectAccessControlProjectTeamArrayOutputWithContext(context.Context) ObjectAccessControlProjectTeamArrayOutput
}

ObjectAccessControlProjectTeamArrayInput is an input type that accepts ObjectAccessControlProjectTeamArray and ObjectAccessControlProjectTeamArrayOutput values. You can construct a concrete instance of `ObjectAccessControlProjectTeamArrayInput` via:

ObjectAccessControlProjectTeamArray{ ObjectAccessControlProjectTeamArgs{...} }

type ObjectAccessControlProjectTeamArrayOutput

type ObjectAccessControlProjectTeamArrayOutput struct{ *pulumi.OutputState }

func (ObjectAccessControlProjectTeamArrayOutput) ElementType

func (ObjectAccessControlProjectTeamArrayOutput) Index

func (ObjectAccessControlProjectTeamArrayOutput) ToObjectAccessControlProjectTeamArrayOutput

func (o ObjectAccessControlProjectTeamArrayOutput) ToObjectAccessControlProjectTeamArrayOutput() ObjectAccessControlProjectTeamArrayOutput

func (ObjectAccessControlProjectTeamArrayOutput) ToObjectAccessControlProjectTeamArrayOutputWithContext

func (o ObjectAccessControlProjectTeamArrayOutput) ToObjectAccessControlProjectTeamArrayOutputWithContext(ctx context.Context) ObjectAccessControlProjectTeamArrayOutput

type ObjectAccessControlProjectTeamInput

type ObjectAccessControlProjectTeamInput interface {
	pulumi.Input

	ToObjectAccessControlProjectTeamOutput() ObjectAccessControlProjectTeamOutput
	ToObjectAccessControlProjectTeamOutputWithContext(context.Context) ObjectAccessControlProjectTeamOutput
}

ObjectAccessControlProjectTeamInput is an input type that accepts ObjectAccessControlProjectTeamArgs and ObjectAccessControlProjectTeamOutput values. You can construct a concrete instance of `ObjectAccessControlProjectTeamInput` via:

ObjectAccessControlProjectTeamArgs{...}

type ObjectAccessControlProjectTeamOutput

type ObjectAccessControlProjectTeamOutput struct{ *pulumi.OutputState }

func (ObjectAccessControlProjectTeamOutput) ElementType

func (ObjectAccessControlProjectTeamOutput) ProjectNumber

func (ObjectAccessControlProjectTeamOutput) Team

func (ObjectAccessControlProjectTeamOutput) ToObjectAccessControlProjectTeamOutput

func (o ObjectAccessControlProjectTeamOutput) ToObjectAccessControlProjectTeamOutput() ObjectAccessControlProjectTeamOutput

func (ObjectAccessControlProjectTeamOutput) ToObjectAccessControlProjectTeamOutputWithContext

func (o ObjectAccessControlProjectTeamOutput) ToObjectAccessControlProjectTeamOutputWithContext(ctx context.Context) ObjectAccessControlProjectTeamOutput

type ObjectAccessControlPtrInput added in v4.11.1

type ObjectAccessControlPtrInput interface {
	pulumi.Input

	ToObjectAccessControlPtrOutput() ObjectAccessControlPtrOutput
	ToObjectAccessControlPtrOutputWithContext(ctx context.Context) ObjectAccessControlPtrOutput
}

type ObjectAccessControlPtrOutput added in v4.11.1

type ObjectAccessControlPtrOutput struct {
	*pulumi.OutputState
}

func (ObjectAccessControlPtrOutput) ElementType added in v4.11.1

func (ObjectAccessControlPtrOutput) ToObjectAccessControlPtrOutput added in v4.11.1

func (o ObjectAccessControlPtrOutput) ToObjectAccessControlPtrOutput() ObjectAccessControlPtrOutput

func (ObjectAccessControlPtrOutput) ToObjectAccessControlPtrOutputWithContext added in v4.11.1

func (o ObjectAccessControlPtrOutput) ToObjectAccessControlPtrOutputWithContext(ctx context.Context) ObjectAccessControlPtrOutput

type ObjectAccessControlState

type ObjectAccessControlState struct {
	// The name of the bucket.
	Bucket pulumi.StringPtrInput
	// The domain associated with the entity.
	Domain pulumi.StringPtrInput
	// The email address associated with the entity.
	Email pulumi.StringPtrInput
	// The entity holding the permission, in one of the following forms:
	// * user-{{userId}}
	// * user-{{email}} (such as "user-liz@example.com")
	// * group-{{groupId}}
	// * group-{{email}} (such as "group-example@googlegroups.com")
	// * domain-{{domain}} (such as "domain-example.com")
	// * project-team-{{projectId}}
	// * allUsers
	// * allAuthenticatedUsers
	Entity pulumi.StringPtrInput
	// The ID for the entity
	EntityId pulumi.StringPtrInput
	// The content generation of the object, if applied to an object.
	Generation pulumi.IntPtrInput
	// The name of the object to apply the access control to.
	Object pulumi.StringPtrInput
	// The project team associated with the entity
	ProjectTeams ObjectAccessControlProjectTeamArrayInput
	// The access permission for the entity.
	// Possible values are `OWNER` and `READER`.
	Role pulumi.StringPtrInput
}

func (ObjectAccessControlState) ElementType

func (ObjectAccessControlState) ElementType() reflect.Type

type TransferJob

type TransferJob struct {
	pulumi.CustomResourceState

	// When the Transfer Job was created.
	CreationTime pulumi.StringOutput `pulumi:"creationTime"`
	// When the Transfer Job was deleted.
	DeletionTime pulumi.StringOutput `pulumi:"deletionTime"`
	// Unique description to identify the Transfer Job.
	Description pulumi.StringOutput `pulumi:"description"`
	// When the Transfer Job was last modified.
	LastModificationTime pulumi.StringOutput `pulumi:"lastModificationTime"`
	// The name of the Transfer Job.
	Name pulumi.StringOutput `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Schedule specification defining when the Transfer Job should be scheduled to start, end and what time to run. Structure documented below.
	Schedule TransferJobScheduleOutput `pulumi:"schedule"`
	// 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 pulumi.StringPtrOutput `pulumi:"status"`
	// Transfer specification. Structure documented below.
	TransferSpec TransferJobTransferSpecOutput `pulumi:"transferSpec"`
}

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

## Example Usage

Example creating a nightly Transfer Job from an AWS S3 Bucket to a GCS bucket.

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		opt0 := _var.Project
		_default, err := storage.GetTransferProjectServieAccount(ctx, &storage.GetTransferProjectServieAccountArgs{
			Project: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucket(ctx, "s3_backup_bucketBucket", &storage.BucketArgs{
			StorageClass: pulumi.String("NEARLINE"),
			Project:      pulumi.Any(_var.Project),
		})
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMMember(ctx, "s3_backup_bucketBucketIAMMember", &storage.BucketIAMMemberArgs{
			Bucket: s3_backup_bucketBucket.Name,
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String(fmt.Sprintf("%v%v", "serviceAccount:", _default.Email)),
		}, pulumi.DependsOn([]pulumi.Resource{
			s3_backup_bucketBucket,
		}))
		if err != nil {
			return err
		}
		_, err = storage.NewTransferJob(ctx, "s3_bucket_nightly_backup", &storage.TransferJobArgs{
			Description: pulumi.String("Nightly backup of S3 bucket"),
			Project:     pulumi.Any(_var.Project),
			TransferSpec: &storage.TransferJobTransferSpecArgs{
				ObjectConditions: &storage.TransferJobTransferSpecObjectConditionsArgs{
					MaxTimeElapsedSinceLastModification: pulumi.String("600s"),
					ExcludePrefixes: pulumi.StringArray{
						pulumi.String("requests.gz"),
					},
				},
				TransferOptions: &storage.TransferJobTransferSpecTransferOptionsArgs{
					DeleteObjectsUniqueInSink: pulumi.Bool(false),
				},
				AwsS3DataSource: &storage.TransferJobTransferSpecAwsS3DataSourceArgs{
					BucketName: pulumi.Any(_var.Aws_s3_bucket),
					AwsAccessKey: &storage.TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs{
						AccessKeyId:     pulumi.Any(_var.Aws_access_key),
						SecretAccessKey: pulumi.Any(_var.Aws_secret_key),
					},
				},
				GcsDataSink: &storage.TransferJobTransferSpecGcsDataSinkArgs{
					BucketName: s3_backup_bucketBucket.Name,
				},
			},
			Schedule: &storage.TransferJobScheduleArgs{
				ScheduleStartDate: &storage.TransferJobScheduleScheduleStartDateArgs{
					Year:  pulumi.Int(2018),
					Month: pulumi.Int(10),
					Day:   pulumi.Int(1),
				},
				ScheduleEndDate: &storage.TransferJobScheduleScheduleEndDateArgs{
					Year:  pulumi.Int(2019),
					Month: pulumi.Int(1),
					Day:   pulumi.Int(15),
				},
				StartTimeOfDay: &storage.TransferJobScheduleStartTimeOfDayArgs{
					Hours:   pulumi.Int(23),
					Minutes: pulumi.Int(30),
					Seconds: pulumi.Int(0),
					Nanos:   pulumi.Int(0),
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			s3_backup_bucketBucketIAMMember,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Storage buckets can be imported using the Transfer Job's `project` and `name` without the `transferJob/` prefix, e.g.

```sh

$ pulumi import gcp:storage/transferJob:TransferJob nightly-backup-transfer-job my-project-1asd32/8422144862922355674

```

func GetTransferJob

func GetTransferJob(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TransferJobState, opts ...pulumi.ResourceOption) (*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

func NewTransferJob(ctx *pulumi.Context,
	name string, args *TransferJobArgs, opts ...pulumi.ResourceOption) (*TransferJob, error)

NewTransferJob registers a new resource with the given unique name, arguments, and options.

func (*TransferJob) ElementType added in v4.4.0

func (*TransferJob) ElementType() reflect.Type

func (*TransferJob) ToTransferJobOutput added in v4.4.0

func (i *TransferJob) ToTransferJobOutput() TransferJobOutput

func (*TransferJob) ToTransferJobOutputWithContext added in v4.4.0

func (i *TransferJob) ToTransferJobOutputWithContext(ctx context.Context) TransferJobOutput

func (*TransferJob) ToTransferJobPtrOutput added in v4.11.1

func (i *TransferJob) ToTransferJobPtrOutput() TransferJobPtrOutput

func (*TransferJob) ToTransferJobPtrOutputWithContext added in v4.11.1

func (i *TransferJob) ToTransferJobPtrOutputWithContext(ctx context.Context) TransferJobPtrOutput

type TransferJobArgs

type TransferJobArgs struct {
	// Unique description to identify the Transfer Job.
	Description pulumi.StringInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Schedule specification defining when the Transfer Job should be scheduled to start, end and what time to run. Structure documented below.
	Schedule TransferJobScheduleInput
	// 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 pulumi.StringPtrInput
	// Transfer specification. Structure documented below.
	TransferSpec TransferJobTransferSpecInput
}

The set of arguments for constructing a TransferJob resource.

func (TransferJobArgs) ElementType

func (TransferJobArgs) ElementType() reflect.Type

type TransferJobArray added in v4.11.1

type TransferJobArray []TransferJobInput

func (TransferJobArray) ElementType added in v4.11.1

func (TransferJobArray) ElementType() reflect.Type

func (TransferJobArray) ToTransferJobArrayOutput added in v4.11.1

func (i TransferJobArray) ToTransferJobArrayOutput() TransferJobArrayOutput

func (TransferJobArray) ToTransferJobArrayOutputWithContext added in v4.11.1

func (i TransferJobArray) ToTransferJobArrayOutputWithContext(ctx context.Context) TransferJobArrayOutput

type TransferJobArrayInput added in v4.11.1

type TransferJobArrayInput interface {
	pulumi.Input

	ToTransferJobArrayOutput() TransferJobArrayOutput
	ToTransferJobArrayOutputWithContext(context.Context) TransferJobArrayOutput
}

TransferJobArrayInput is an input type that accepts TransferJobArray and TransferJobArrayOutput values. You can construct a concrete instance of `TransferJobArrayInput` via:

TransferJobArray{ TransferJobArgs{...} }

type TransferJobArrayOutput added in v4.11.1

type TransferJobArrayOutput struct{ *pulumi.OutputState }

func (TransferJobArrayOutput) ElementType added in v4.11.1

func (TransferJobArrayOutput) ElementType() reflect.Type

func (TransferJobArrayOutput) Index added in v4.11.1

func (TransferJobArrayOutput) ToTransferJobArrayOutput added in v4.11.1

func (o TransferJobArrayOutput) ToTransferJobArrayOutput() TransferJobArrayOutput

func (TransferJobArrayOutput) ToTransferJobArrayOutputWithContext added in v4.11.1

func (o TransferJobArrayOutput) ToTransferJobArrayOutputWithContext(ctx context.Context) TransferJobArrayOutput

type TransferJobInput added in v4.4.0

type TransferJobInput interface {
	pulumi.Input

	ToTransferJobOutput() TransferJobOutput
	ToTransferJobOutputWithContext(ctx context.Context) TransferJobOutput
}

type TransferJobMap added in v4.11.1

type TransferJobMap map[string]TransferJobInput

func (TransferJobMap) ElementType added in v4.11.1

func (TransferJobMap) ElementType() reflect.Type

func (TransferJobMap) ToTransferJobMapOutput added in v4.11.1

func (i TransferJobMap) ToTransferJobMapOutput() TransferJobMapOutput

func (TransferJobMap) ToTransferJobMapOutputWithContext added in v4.11.1

func (i TransferJobMap) ToTransferJobMapOutputWithContext(ctx context.Context) TransferJobMapOutput

type TransferJobMapInput added in v4.11.1

type TransferJobMapInput interface {
	pulumi.Input

	ToTransferJobMapOutput() TransferJobMapOutput
	ToTransferJobMapOutputWithContext(context.Context) TransferJobMapOutput
}

TransferJobMapInput is an input type that accepts TransferJobMap and TransferJobMapOutput values. You can construct a concrete instance of `TransferJobMapInput` via:

TransferJobMap{ "key": TransferJobArgs{...} }

type TransferJobMapOutput added in v4.11.1

type TransferJobMapOutput struct{ *pulumi.OutputState }

func (TransferJobMapOutput) ElementType added in v4.11.1

func (TransferJobMapOutput) ElementType() reflect.Type

func (TransferJobMapOutput) MapIndex added in v4.11.1

func (TransferJobMapOutput) ToTransferJobMapOutput added in v4.11.1

func (o TransferJobMapOutput) ToTransferJobMapOutput() TransferJobMapOutput

func (TransferJobMapOutput) ToTransferJobMapOutputWithContext added in v4.11.1

func (o TransferJobMapOutput) ToTransferJobMapOutputWithContext(ctx context.Context) TransferJobMapOutput

type TransferJobOutput added in v4.4.0

type TransferJobOutput struct {
	*pulumi.OutputState
}

func (TransferJobOutput) ElementType added in v4.4.0

func (TransferJobOutput) ElementType() reflect.Type

func (TransferJobOutput) ToTransferJobOutput added in v4.4.0

func (o TransferJobOutput) ToTransferJobOutput() TransferJobOutput

func (TransferJobOutput) ToTransferJobOutputWithContext added in v4.4.0

func (o TransferJobOutput) ToTransferJobOutputWithContext(ctx context.Context) TransferJobOutput

func (TransferJobOutput) ToTransferJobPtrOutput added in v4.11.1

func (o TransferJobOutput) ToTransferJobPtrOutput() TransferJobPtrOutput

func (TransferJobOutput) ToTransferJobPtrOutputWithContext added in v4.11.1

func (o TransferJobOutput) ToTransferJobPtrOutputWithContext(ctx context.Context) TransferJobPtrOutput

type TransferJobPtrInput added in v4.11.1

type TransferJobPtrInput interface {
	pulumi.Input

	ToTransferJobPtrOutput() TransferJobPtrOutput
	ToTransferJobPtrOutputWithContext(ctx context.Context) TransferJobPtrOutput
}

type TransferJobPtrOutput added in v4.11.1

type TransferJobPtrOutput struct {
	*pulumi.OutputState
}

func (TransferJobPtrOutput) ElementType added in v4.11.1

func (TransferJobPtrOutput) ElementType() reflect.Type

func (TransferJobPtrOutput) ToTransferJobPtrOutput added in v4.11.1

func (o TransferJobPtrOutput) ToTransferJobPtrOutput() TransferJobPtrOutput

func (TransferJobPtrOutput) ToTransferJobPtrOutputWithContext added in v4.11.1

func (o TransferJobPtrOutput) ToTransferJobPtrOutputWithContext(ctx context.Context) TransferJobPtrOutput

type TransferJobSchedule

type TransferJobSchedule struct {
	// The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once. Structure documented below.
	ScheduleEndDate *TransferJobScheduleScheduleEndDate `pulumi:"scheduleEndDate"`
	// The first day the recurring transfer is scheduled to run. If `scheduleStartDate` is in the past, the transfer will run for the first time on the following day. Structure documented below.
	ScheduleStartDate TransferJobScheduleScheduleStartDate `pulumi:"scheduleStartDate"`
	// The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone. Structure documented below.
	StartTimeOfDay *TransferJobScheduleStartTimeOfDay `pulumi:"startTimeOfDay"`
}

type TransferJobScheduleArgs

type TransferJobScheduleArgs struct {
	// The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once. Structure documented below.
	ScheduleEndDate TransferJobScheduleScheduleEndDatePtrInput `pulumi:"scheduleEndDate"`
	// The first day the recurring transfer is scheduled to run. If `scheduleStartDate` is in the past, the transfer will run for the first time on the following day. Structure documented below.
	ScheduleStartDate TransferJobScheduleScheduleStartDateInput `pulumi:"scheduleStartDate"`
	// The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone. Structure documented below.
	StartTimeOfDay TransferJobScheduleStartTimeOfDayPtrInput `pulumi:"startTimeOfDay"`
}

func (TransferJobScheduleArgs) ElementType

func (TransferJobScheduleArgs) ElementType() reflect.Type

func (TransferJobScheduleArgs) ToTransferJobScheduleOutput

func (i TransferJobScheduleArgs) ToTransferJobScheduleOutput() TransferJobScheduleOutput

func (TransferJobScheduleArgs) ToTransferJobScheduleOutputWithContext

func (i TransferJobScheduleArgs) ToTransferJobScheduleOutputWithContext(ctx context.Context) TransferJobScheduleOutput

func (TransferJobScheduleArgs) ToTransferJobSchedulePtrOutput

func (i TransferJobScheduleArgs) ToTransferJobSchedulePtrOutput() TransferJobSchedulePtrOutput

func (TransferJobScheduleArgs) ToTransferJobSchedulePtrOutputWithContext

func (i TransferJobScheduleArgs) ToTransferJobSchedulePtrOutputWithContext(ctx context.Context) TransferJobSchedulePtrOutput

type TransferJobScheduleInput

type TransferJobScheduleInput interface {
	pulumi.Input

	ToTransferJobScheduleOutput() TransferJobScheduleOutput
	ToTransferJobScheduleOutputWithContext(context.Context) TransferJobScheduleOutput
}

TransferJobScheduleInput is an input type that accepts TransferJobScheduleArgs and TransferJobScheduleOutput values. You can construct a concrete instance of `TransferJobScheduleInput` via:

TransferJobScheduleArgs{...}

type TransferJobScheduleOutput

type TransferJobScheduleOutput struct{ *pulumi.OutputState }

func (TransferJobScheduleOutput) ElementType

func (TransferJobScheduleOutput) ElementType() reflect.Type

func (TransferJobScheduleOutput) ScheduleEndDate

The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once. Structure documented below.

func (TransferJobScheduleOutput) ScheduleStartDate

The first day the recurring transfer is scheduled to run. If `scheduleStartDate` is in the past, the transfer will run for the first time on the following day. Structure documented below.

func (TransferJobScheduleOutput) StartTimeOfDay

The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone. Structure documented below.

func (TransferJobScheduleOutput) ToTransferJobScheduleOutput

func (o TransferJobScheduleOutput) ToTransferJobScheduleOutput() TransferJobScheduleOutput

func (TransferJobScheduleOutput) ToTransferJobScheduleOutputWithContext

func (o TransferJobScheduleOutput) ToTransferJobScheduleOutputWithContext(ctx context.Context) TransferJobScheduleOutput

func (TransferJobScheduleOutput) ToTransferJobSchedulePtrOutput

func (o TransferJobScheduleOutput) ToTransferJobSchedulePtrOutput() TransferJobSchedulePtrOutput

func (TransferJobScheduleOutput) ToTransferJobSchedulePtrOutputWithContext

func (o TransferJobScheduleOutput) ToTransferJobSchedulePtrOutputWithContext(ctx context.Context) TransferJobSchedulePtrOutput

type TransferJobSchedulePtrInput

type TransferJobSchedulePtrInput interface {
	pulumi.Input

	ToTransferJobSchedulePtrOutput() TransferJobSchedulePtrOutput
	ToTransferJobSchedulePtrOutputWithContext(context.Context) TransferJobSchedulePtrOutput
}

TransferJobSchedulePtrInput is an input type that accepts TransferJobScheduleArgs, TransferJobSchedulePtr and TransferJobSchedulePtrOutput values. You can construct a concrete instance of `TransferJobSchedulePtrInput` via:

        TransferJobScheduleArgs{...}

or:

        nil

type TransferJobSchedulePtrOutput

type TransferJobSchedulePtrOutput struct{ *pulumi.OutputState }

func (TransferJobSchedulePtrOutput) Elem

func (TransferJobSchedulePtrOutput) ElementType

func (TransferJobSchedulePtrOutput) ScheduleEndDate

The last day the recurring transfer will be run. If `scheduleEndDate` is the same as `scheduleStartDate`, the transfer will be executed only once. Structure documented below.

func (TransferJobSchedulePtrOutput) ScheduleStartDate

The first day the recurring transfer is scheduled to run. If `scheduleStartDate` is in the past, the transfer will run for the first time on the following day. Structure documented below.

func (TransferJobSchedulePtrOutput) StartTimeOfDay

The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone. Structure documented below.

func (TransferJobSchedulePtrOutput) ToTransferJobSchedulePtrOutput

func (o TransferJobSchedulePtrOutput) ToTransferJobSchedulePtrOutput() TransferJobSchedulePtrOutput

func (TransferJobSchedulePtrOutput) ToTransferJobSchedulePtrOutputWithContext

func (o TransferJobSchedulePtrOutput) ToTransferJobSchedulePtrOutputWithContext(ctx context.Context) TransferJobSchedulePtrOutput

type TransferJobScheduleScheduleEndDate

type TransferJobScheduleScheduleEndDate struct {
	// Day of month. Must be from 1 to 31 and valid for the year and month.
	Day int `pulumi:"day"`
	// Month of year. Must be from 1 to 12.
	Month int `pulumi:"month"`
	// Year of date. Must be from 1 to 9999.
	Year int `pulumi:"year"`
}

type TransferJobScheduleScheduleEndDateArgs

type TransferJobScheduleScheduleEndDateArgs struct {
	// Day of month. Must be from 1 to 31 and valid for the year and month.
	Day pulumi.IntInput `pulumi:"day"`
	// Month of year. Must be from 1 to 12.
	Month pulumi.IntInput `pulumi:"month"`
	// Year of date. Must be from 1 to 9999.
	Year pulumi.IntInput `pulumi:"year"`
}

func (TransferJobScheduleScheduleEndDateArgs) ElementType

func (TransferJobScheduleScheduleEndDateArgs) ToTransferJobScheduleScheduleEndDateOutput

func (i TransferJobScheduleScheduleEndDateArgs) ToTransferJobScheduleScheduleEndDateOutput() TransferJobScheduleScheduleEndDateOutput

func (TransferJobScheduleScheduleEndDateArgs) ToTransferJobScheduleScheduleEndDateOutputWithContext

func (i TransferJobScheduleScheduleEndDateArgs) ToTransferJobScheduleScheduleEndDateOutputWithContext(ctx context.Context) TransferJobScheduleScheduleEndDateOutput

func (TransferJobScheduleScheduleEndDateArgs) ToTransferJobScheduleScheduleEndDatePtrOutput

func (i TransferJobScheduleScheduleEndDateArgs) ToTransferJobScheduleScheduleEndDatePtrOutput() TransferJobScheduleScheduleEndDatePtrOutput

func (TransferJobScheduleScheduleEndDateArgs) ToTransferJobScheduleScheduleEndDatePtrOutputWithContext

func (i TransferJobScheduleScheduleEndDateArgs) ToTransferJobScheduleScheduleEndDatePtrOutputWithContext(ctx context.Context) TransferJobScheduleScheduleEndDatePtrOutput

type TransferJobScheduleScheduleEndDateInput

type TransferJobScheduleScheduleEndDateInput interface {
	pulumi.Input

	ToTransferJobScheduleScheduleEndDateOutput() TransferJobScheduleScheduleEndDateOutput
	ToTransferJobScheduleScheduleEndDateOutputWithContext(context.Context) TransferJobScheduleScheduleEndDateOutput
}

TransferJobScheduleScheduleEndDateInput is an input type that accepts TransferJobScheduleScheduleEndDateArgs and TransferJobScheduleScheduleEndDateOutput values. You can construct a concrete instance of `TransferJobScheduleScheduleEndDateInput` via:

TransferJobScheduleScheduleEndDateArgs{...}

type TransferJobScheduleScheduleEndDateOutput

type TransferJobScheduleScheduleEndDateOutput struct{ *pulumi.OutputState }

func (TransferJobScheduleScheduleEndDateOutput) Day

Day of month. Must be from 1 to 31 and valid for the year and month.

func (TransferJobScheduleScheduleEndDateOutput) ElementType

func (TransferJobScheduleScheduleEndDateOutput) Month

Month of year. Must be from 1 to 12.

func (TransferJobScheduleScheduleEndDateOutput) ToTransferJobScheduleScheduleEndDateOutput

func (o TransferJobScheduleScheduleEndDateOutput) ToTransferJobScheduleScheduleEndDateOutput() TransferJobScheduleScheduleEndDateOutput

func (TransferJobScheduleScheduleEndDateOutput) ToTransferJobScheduleScheduleEndDateOutputWithContext

func (o TransferJobScheduleScheduleEndDateOutput) ToTransferJobScheduleScheduleEndDateOutputWithContext(ctx context.Context) TransferJobScheduleScheduleEndDateOutput

func (TransferJobScheduleScheduleEndDateOutput) ToTransferJobScheduleScheduleEndDatePtrOutput

func (o TransferJobScheduleScheduleEndDateOutput) ToTransferJobScheduleScheduleEndDatePtrOutput() TransferJobScheduleScheduleEndDatePtrOutput

func (TransferJobScheduleScheduleEndDateOutput) ToTransferJobScheduleScheduleEndDatePtrOutputWithContext

func (o TransferJobScheduleScheduleEndDateOutput) ToTransferJobScheduleScheduleEndDatePtrOutputWithContext(ctx context.Context) TransferJobScheduleScheduleEndDatePtrOutput

func (TransferJobScheduleScheduleEndDateOutput) Year

Year of date. Must be from 1 to 9999.

type TransferJobScheduleScheduleEndDatePtrInput

type TransferJobScheduleScheduleEndDatePtrInput interface {
	pulumi.Input

	ToTransferJobScheduleScheduleEndDatePtrOutput() TransferJobScheduleScheduleEndDatePtrOutput
	ToTransferJobScheduleScheduleEndDatePtrOutputWithContext(context.Context) TransferJobScheduleScheduleEndDatePtrOutput
}

TransferJobScheduleScheduleEndDatePtrInput is an input type that accepts TransferJobScheduleScheduleEndDateArgs, TransferJobScheduleScheduleEndDatePtr and TransferJobScheduleScheduleEndDatePtrOutput values. You can construct a concrete instance of `TransferJobScheduleScheduleEndDatePtrInput` via:

        TransferJobScheduleScheduleEndDateArgs{...}

or:

        nil

type TransferJobScheduleScheduleEndDatePtrOutput

type TransferJobScheduleScheduleEndDatePtrOutput struct{ *pulumi.OutputState }

func (TransferJobScheduleScheduleEndDatePtrOutput) Day

Day of month. Must be from 1 to 31 and valid for the year and month.

func (TransferJobScheduleScheduleEndDatePtrOutput) Elem

func (TransferJobScheduleScheduleEndDatePtrOutput) ElementType

func (TransferJobScheduleScheduleEndDatePtrOutput) Month

Month of year. Must be from 1 to 12.

func (TransferJobScheduleScheduleEndDatePtrOutput) ToTransferJobScheduleScheduleEndDatePtrOutput

func (o TransferJobScheduleScheduleEndDatePtrOutput) ToTransferJobScheduleScheduleEndDatePtrOutput() TransferJobScheduleScheduleEndDatePtrOutput

func (TransferJobScheduleScheduleEndDatePtrOutput) ToTransferJobScheduleScheduleEndDatePtrOutputWithContext

func (o TransferJobScheduleScheduleEndDatePtrOutput) ToTransferJobScheduleScheduleEndDatePtrOutputWithContext(ctx context.Context) TransferJobScheduleScheduleEndDatePtrOutput

func (TransferJobScheduleScheduleEndDatePtrOutput) Year

Year of date. Must be from 1 to 9999.

type TransferJobScheduleScheduleStartDate

type TransferJobScheduleScheduleStartDate struct {
	// Day of month. Must be from 1 to 31 and valid for the year and month.
	Day int `pulumi:"day"`
	// Month of year. Must be from 1 to 12.
	Month int `pulumi:"month"`
	// Year of date. Must be from 1 to 9999.
	Year int `pulumi:"year"`
}

type TransferJobScheduleScheduleStartDateArgs

type TransferJobScheduleScheduleStartDateArgs struct {
	// Day of month. Must be from 1 to 31 and valid for the year and month.
	Day pulumi.IntInput `pulumi:"day"`
	// Month of year. Must be from 1 to 12.
	Month pulumi.IntInput `pulumi:"month"`
	// Year of date. Must be from 1 to 9999.
	Year pulumi.IntInput `pulumi:"year"`
}

func (TransferJobScheduleScheduleStartDateArgs) ElementType

func (TransferJobScheduleScheduleStartDateArgs) ToTransferJobScheduleScheduleStartDateOutput

func (i TransferJobScheduleScheduleStartDateArgs) ToTransferJobScheduleScheduleStartDateOutput() TransferJobScheduleScheduleStartDateOutput

func (TransferJobScheduleScheduleStartDateArgs) ToTransferJobScheduleScheduleStartDateOutputWithContext

func (i TransferJobScheduleScheduleStartDateArgs) ToTransferJobScheduleScheduleStartDateOutputWithContext(ctx context.Context) TransferJobScheduleScheduleStartDateOutput

func (TransferJobScheduleScheduleStartDateArgs) ToTransferJobScheduleScheduleStartDatePtrOutput

func (i TransferJobScheduleScheduleStartDateArgs) ToTransferJobScheduleScheduleStartDatePtrOutput() TransferJobScheduleScheduleStartDatePtrOutput

func (TransferJobScheduleScheduleStartDateArgs) ToTransferJobScheduleScheduleStartDatePtrOutputWithContext

func (i TransferJobScheduleScheduleStartDateArgs) ToTransferJobScheduleScheduleStartDatePtrOutputWithContext(ctx context.Context) TransferJobScheduleScheduleStartDatePtrOutput

type TransferJobScheduleScheduleStartDateInput

type TransferJobScheduleScheduleStartDateInput interface {
	pulumi.Input

	ToTransferJobScheduleScheduleStartDateOutput() TransferJobScheduleScheduleStartDateOutput
	ToTransferJobScheduleScheduleStartDateOutputWithContext(context.Context) TransferJobScheduleScheduleStartDateOutput
}

TransferJobScheduleScheduleStartDateInput is an input type that accepts TransferJobScheduleScheduleStartDateArgs and TransferJobScheduleScheduleStartDateOutput values. You can construct a concrete instance of `TransferJobScheduleScheduleStartDateInput` via:

TransferJobScheduleScheduleStartDateArgs{...}

type TransferJobScheduleScheduleStartDateOutput

type TransferJobScheduleScheduleStartDateOutput struct{ *pulumi.OutputState }

func (TransferJobScheduleScheduleStartDateOutput) Day

Day of month. Must be from 1 to 31 and valid for the year and month.

func (TransferJobScheduleScheduleStartDateOutput) ElementType

func (TransferJobScheduleScheduleStartDateOutput) Month

Month of year. Must be from 1 to 12.

func (TransferJobScheduleScheduleStartDateOutput) ToTransferJobScheduleScheduleStartDateOutput

func (o TransferJobScheduleScheduleStartDateOutput) ToTransferJobScheduleScheduleStartDateOutput() TransferJobScheduleScheduleStartDateOutput

func (TransferJobScheduleScheduleStartDateOutput) ToTransferJobScheduleScheduleStartDateOutputWithContext

func (o TransferJobScheduleScheduleStartDateOutput) ToTransferJobScheduleScheduleStartDateOutputWithContext(ctx context.Context) TransferJobScheduleScheduleStartDateOutput

func (TransferJobScheduleScheduleStartDateOutput) ToTransferJobScheduleScheduleStartDatePtrOutput

func (o TransferJobScheduleScheduleStartDateOutput) ToTransferJobScheduleScheduleStartDatePtrOutput() TransferJobScheduleScheduleStartDatePtrOutput

func (TransferJobScheduleScheduleStartDateOutput) ToTransferJobScheduleScheduleStartDatePtrOutputWithContext

func (o TransferJobScheduleScheduleStartDateOutput) ToTransferJobScheduleScheduleStartDatePtrOutputWithContext(ctx context.Context) TransferJobScheduleScheduleStartDatePtrOutput

func (TransferJobScheduleScheduleStartDateOutput) Year

Year of date. Must be from 1 to 9999.

type TransferJobScheduleScheduleStartDatePtrInput

type TransferJobScheduleScheduleStartDatePtrInput interface {
	pulumi.Input

	ToTransferJobScheduleScheduleStartDatePtrOutput() TransferJobScheduleScheduleStartDatePtrOutput
	ToTransferJobScheduleScheduleStartDatePtrOutputWithContext(context.Context) TransferJobScheduleScheduleStartDatePtrOutput
}

TransferJobScheduleScheduleStartDatePtrInput is an input type that accepts TransferJobScheduleScheduleStartDateArgs, TransferJobScheduleScheduleStartDatePtr and TransferJobScheduleScheduleStartDatePtrOutput values. You can construct a concrete instance of `TransferJobScheduleScheduleStartDatePtrInput` via:

        TransferJobScheduleScheduleStartDateArgs{...}

or:

        nil

type TransferJobScheduleScheduleStartDatePtrOutput

type TransferJobScheduleScheduleStartDatePtrOutput struct{ *pulumi.OutputState }

func (TransferJobScheduleScheduleStartDatePtrOutput) Day

Day of month. Must be from 1 to 31 and valid for the year and month.

func (TransferJobScheduleScheduleStartDatePtrOutput) Elem

func (TransferJobScheduleScheduleStartDatePtrOutput) ElementType

func (TransferJobScheduleScheduleStartDatePtrOutput) Month

Month of year. Must be from 1 to 12.

func (TransferJobScheduleScheduleStartDatePtrOutput) ToTransferJobScheduleScheduleStartDatePtrOutput

func (o TransferJobScheduleScheduleStartDatePtrOutput) ToTransferJobScheduleScheduleStartDatePtrOutput() TransferJobScheduleScheduleStartDatePtrOutput

func (TransferJobScheduleScheduleStartDatePtrOutput) ToTransferJobScheduleScheduleStartDatePtrOutputWithContext

func (o TransferJobScheduleScheduleStartDatePtrOutput) ToTransferJobScheduleScheduleStartDatePtrOutputWithContext(ctx context.Context) TransferJobScheduleScheduleStartDatePtrOutput

func (TransferJobScheduleScheduleStartDatePtrOutput) Year

Year of date. Must be from 1 to 9999.

type TransferJobScheduleStartTimeOfDay

type TransferJobScheduleStartTimeOfDay struct {
	// Hours of day in 24 hour format. Should be from 0 to 23
	Hours int `pulumi:"hours"`
	// Minutes of hour of day. Must be from 0 to 59.
	Minutes int `pulumi:"minutes"`
	// Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
	Nanos int `pulumi:"nanos"`
	// Seconds of minutes of the time. Must normally be from 0 to 59.
	Seconds int `pulumi:"seconds"`
}

type TransferJobScheduleStartTimeOfDayArgs

type TransferJobScheduleStartTimeOfDayArgs struct {
	// Hours of day in 24 hour format. Should be from 0 to 23
	Hours pulumi.IntInput `pulumi:"hours"`
	// Minutes of hour of day. Must be from 0 to 59.
	Minutes pulumi.IntInput `pulumi:"minutes"`
	// Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
	Nanos pulumi.IntInput `pulumi:"nanos"`
	// Seconds of minutes of the time. Must normally be from 0 to 59.
	Seconds pulumi.IntInput `pulumi:"seconds"`
}

func (TransferJobScheduleStartTimeOfDayArgs) ElementType

func (TransferJobScheduleStartTimeOfDayArgs) ToTransferJobScheduleStartTimeOfDayOutput

func (i TransferJobScheduleStartTimeOfDayArgs) ToTransferJobScheduleStartTimeOfDayOutput() TransferJobScheduleStartTimeOfDayOutput

func (TransferJobScheduleStartTimeOfDayArgs) ToTransferJobScheduleStartTimeOfDayOutputWithContext

func (i TransferJobScheduleStartTimeOfDayArgs) ToTransferJobScheduleStartTimeOfDayOutputWithContext(ctx context.Context) TransferJobScheduleStartTimeOfDayOutput

func (TransferJobScheduleStartTimeOfDayArgs) ToTransferJobScheduleStartTimeOfDayPtrOutput

func (i TransferJobScheduleStartTimeOfDayArgs) ToTransferJobScheduleStartTimeOfDayPtrOutput() TransferJobScheduleStartTimeOfDayPtrOutput

func (TransferJobScheduleStartTimeOfDayArgs) ToTransferJobScheduleStartTimeOfDayPtrOutputWithContext

func (i TransferJobScheduleStartTimeOfDayArgs) ToTransferJobScheduleStartTimeOfDayPtrOutputWithContext(ctx context.Context) TransferJobScheduleStartTimeOfDayPtrOutput

type TransferJobScheduleStartTimeOfDayInput

type TransferJobScheduleStartTimeOfDayInput interface {
	pulumi.Input

	ToTransferJobScheduleStartTimeOfDayOutput() TransferJobScheduleStartTimeOfDayOutput
	ToTransferJobScheduleStartTimeOfDayOutputWithContext(context.Context) TransferJobScheduleStartTimeOfDayOutput
}

TransferJobScheduleStartTimeOfDayInput is an input type that accepts TransferJobScheduleStartTimeOfDayArgs and TransferJobScheduleStartTimeOfDayOutput values. You can construct a concrete instance of `TransferJobScheduleStartTimeOfDayInput` via:

TransferJobScheduleStartTimeOfDayArgs{...}

type TransferJobScheduleStartTimeOfDayOutput

type TransferJobScheduleStartTimeOfDayOutput struct{ *pulumi.OutputState }

func (TransferJobScheduleStartTimeOfDayOutput) ElementType

func (TransferJobScheduleStartTimeOfDayOutput) Hours

Hours of day in 24 hour format. Should be from 0 to 23

func (TransferJobScheduleStartTimeOfDayOutput) Minutes

Minutes of hour of day. Must be from 0 to 59.

func (TransferJobScheduleStartTimeOfDayOutput) Nanos

Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.

func (TransferJobScheduleStartTimeOfDayOutput) Seconds

Seconds of minutes of the time. Must normally be from 0 to 59.

func (TransferJobScheduleStartTimeOfDayOutput) ToTransferJobScheduleStartTimeOfDayOutput

func (o TransferJobScheduleStartTimeOfDayOutput) ToTransferJobScheduleStartTimeOfDayOutput() TransferJobScheduleStartTimeOfDayOutput

func (TransferJobScheduleStartTimeOfDayOutput) ToTransferJobScheduleStartTimeOfDayOutputWithContext

func (o TransferJobScheduleStartTimeOfDayOutput) ToTransferJobScheduleStartTimeOfDayOutputWithContext(ctx context.Context) TransferJobScheduleStartTimeOfDayOutput

func (TransferJobScheduleStartTimeOfDayOutput) ToTransferJobScheduleStartTimeOfDayPtrOutput

func (o TransferJobScheduleStartTimeOfDayOutput) ToTransferJobScheduleStartTimeOfDayPtrOutput() TransferJobScheduleStartTimeOfDayPtrOutput

func (TransferJobScheduleStartTimeOfDayOutput) ToTransferJobScheduleStartTimeOfDayPtrOutputWithContext

func (o TransferJobScheduleStartTimeOfDayOutput) ToTransferJobScheduleStartTimeOfDayPtrOutputWithContext(ctx context.Context) TransferJobScheduleStartTimeOfDayPtrOutput

type TransferJobScheduleStartTimeOfDayPtrInput

type TransferJobScheduleStartTimeOfDayPtrInput interface {
	pulumi.Input

	ToTransferJobScheduleStartTimeOfDayPtrOutput() TransferJobScheduleStartTimeOfDayPtrOutput
	ToTransferJobScheduleStartTimeOfDayPtrOutputWithContext(context.Context) TransferJobScheduleStartTimeOfDayPtrOutput
}

TransferJobScheduleStartTimeOfDayPtrInput is an input type that accepts TransferJobScheduleStartTimeOfDayArgs, TransferJobScheduleStartTimeOfDayPtr and TransferJobScheduleStartTimeOfDayPtrOutput values. You can construct a concrete instance of `TransferJobScheduleStartTimeOfDayPtrInput` via:

        TransferJobScheduleStartTimeOfDayArgs{...}

or:

        nil

type TransferJobScheduleStartTimeOfDayPtrOutput

type TransferJobScheduleStartTimeOfDayPtrOutput struct{ *pulumi.OutputState }

func (TransferJobScheduleStartTimeOfDayPtrOutput) Elem

func (TransferJobScheduleStartTimeOfDayPtrOutput) ElementType

func (TransferJobScheduleStartTimeOfDayPtrOutput) Hours

Hours of day in 24 hour format. Should be from 0 to 23

func (TransferJobScheduleStartTimeOfDayPtrOutput) Minutes

Minutes of hour of day. Must be from 0 to 59.

func (TransferJobScheduleStartTimeOfDayPtrOutput) Nanos

Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.

func (TransferJobScheduleStartTimeOfDayPtrOutput) Seconds

Seconds of minutes of the time. Must normally be from 0 to 59.

func (TransferJobScheduleStartTimeOfDayPtrOutput) ToTransferJobScheduleStartTimeOfDayPtrOutput

func (o TransferJobScheduleStartTimeOfDayPtrOutput) ToTransferJobScheduleStartTimeOfDayPtrOutput() TransferJobScheduleStartTimeOfDayPtrOutput

func (TransferJobScheduleStartTimeOfDayPtrOutput) ToTransferJobScheduleStartTimeOfDayPtrOutputWithContext

func (o TransferJobScheduleStartTimeOfDayPtrOutput) ToTransferJobScheduleStartTimeOfDayPtrOutputWithContext(ctx context.Context) TransferJobScheduleStartTimeOfDayPtrOutput

type TransferJobState

type TransferJobState struct {
	// When the Transfer Job was created.
	CreationTime pulumi.StringPtrInput
	// When the Transfer Job was deleted.
	DeletionTime pulumi.StringPtrInput
	// Unique description to identify the Transfer Job.
	Description pulumi.StringPtrInput
	// When the Transfer Job was last modified.
	LastModificationTime pulumi.StringPtrInput
	// The name of the Transfer Job.
	Name pulumi.StringPtrInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Schedule specification defining when the Transfer Job should be scheduled to start, end and what time to run. Structure documented below.
	Schedule TransferJobSchedulePtrInput
	// 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 pulumi.StringPtrInput
	// Transfer specification. Structure documented below.
	TransferSpec TransferJobTransferSpecPtrInput
}

func (TransferJobState) ElementType

func (TransferJobState) ElementType() reflect.Type

type TransferJobTransferSpec

type TransferJobTransferSpec struct {
	// An AWS S3 data source. Structure documented below.
	AwsS3DataSource *TransferJobTransferSpecAwsS3DataSource `pulumi:"awsS3DataSource"`
	// A Google Cloud Storage data sink. Structure documented below.
	GcsDataSink *TransferJobTransferSpecGcsDataSink `pulumi:"gcsDataSink"`
	// A Google Cloud Storage data source. Structure documented below.
	GcsDataSource *TransferJobTransferSpecGcsDataSource `pulumi:"gcsDataSource"`
	// An HTTP URL data source. Structure documented below.
	HttpDataSource *TransferJobTransferSpecHttpDataSource `pulumi:"httpDataSource"`
	// Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink. Structure documented below.
	ObjectConditions *TransferJobTransferSpecObjectConditions `pulumi:"objectConditions"`
	// Characteristics of how to treat files from datasource and sink during job. If the option `deleteObjectsUniqueInSink` is true, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink. Structure documented below.
	TransferOptions *TransferJobTransferSpecTransferOptions `pulumi:"transferOptions"`
}

type TransferJobTransferSpecArgs

type TransferJobTransferSpecArgs struct {
	// An AWS S3 data source. Structure documented below.
	AwsS3DataSource TransferJobTransferSpecAwsS3DataSourcePtrInput `pulumi:"awsS3DataSource"`
	// A Google Cloud Storage data sink. Structure documented below.
	GcsDataSink TransferJobTransferSpecGcsDataSinkPtrInput `pulumi:"gcsDataSink"`
	// A Google Cloud Storage data source. Structure documented below.
	GcsDataSource TransferJobTransferSpecGcsDataSourcePtrInput `pulumi:"gcsDataSource"`
	// An HTTP URL data source. Structure documented below.
	HttpDataSource TransferJobTransferSpecHttpDataSourcePtrInput `pulumi:"httpDataSource"`
	// Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink. Structure documented below.
	ObjectConditions TransferJobTransferSpecObjectConditionsPtrInput `pulumi:"objectConditions"`
	// Characteristics of how to treat files from datasource and sink during job. If the option `deleteObjectsUniqueInSink` is true, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink. Structure documented below.
	TransferOptions TransferJobTransferSpecTransferOptionsPtrInput `pulumi:"transferOptions"`
}

func (TransferJobTransferSpecArgs) ElementType

func (TransferJobTransferSpecArgs) ToTransferJobTransferSpecOutput

func (i TransferJobTransferSpecArgs) ToTransferJobTransferSpecOutput() TransferJobTransferSpecOutput

func (TransferJobTransferSpecArgs) ToTransferJobTransferSpecOutputWithContext

func (i TransferJobTransferSpecArgs) ToTransferJobTransferSpecOutputWithContext(ctx context.Context) TransferJobTransferSpecOutput

func (TransferJobTransferSpecArgs) ToTransferJobTransferSpecPtrOutput

func (i TransferJobTransferSpecArgs) ToTransferJobTransferSpecPtrOutput() TransferJobTransferSpecPtrOutput

func (TransferJobTransferSpecArgs) ToTransferJobTransferSpecPtrOutputWithContext

func (i TransferJobTransferSpecArgs) ToTransferJobTransferSpecPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecPtrOutput

type TransferJobTransferSpecAwsS3DataSource

type TransferJobTransferSpecAwsS3DataSource struct {
	// AWS credentials block.
	AwsAccessKey TransferJobTransferSpecAwsS3DataSourceAwsAccessKey `pulumi:"awsAccessKey"`
	// S3 Bucket name.
	BucketName string `pulumi:"bucketName"`
}

type TransferJobTransferSpecAwsS3DataSourceArgs

type TransferJobTransferSpecAwsS3DataSourceArgs struct {
	// AWS credentials block.
	AwsAccessKey TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyInput `pulumi:"awsAccessKey"`
	// S3 Bucket name.
	BucketName pulumi.StringInput `pulumi:"bucketName"`
}

func (TransferJobTransferSpecAwsS3DataSourceArgs) ElementType

func (TransferJobTransferSpecAwsS3DataSourceArgs) ToTransferJobTransferSpecAwsS3DataSourceOutput

func (i TransferJobTransferSpecAwsS3DataSourceArgs) ToTransferJobTransferSpecAwsS3DataSourceOutput() TransferJobTransferSpecAwsS3DataSourceOutput

func (TransferJobTransferSpecAwsS3DataSourceArgs) ToTransferJobTransferSpecAwsS3DataSourceOutputWithContext

func (i TransferJobTransferSpecAwsS3DataSourceArgs) ToTransferJobTransferSpecAwsS3DataSourceOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourceOutput

func (TransferJobTransferSpecAwsS3DataSourceArgs) ToTransferJobTransferSpecAwsS3DataSourcePtrOutput

func (i TransferJobTransferSpecAwsS3DataSourceArgs) ToTransferJobTransferSpecAwsS3DataSourcePtrOutput() TransferJobTransferSpecAwsS3DataSourcePtrOutput

func (TransferJobTransferSpecAwsS3DataSourceArgs) ToTransferJobTransferSpecAwsS3DataSourcePtrOutputWithContext

func (i TransferJobTransferSpecAwsS3DataSourceArgs) ToTransferJobTransferSpecAwsS3DataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourcePtrOutput

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKey

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKey struct {
	// AWS Key ID.
	AccessKeyId string `pulumi:"accessKeyId"`
	// AWS Secret Access Key.
	SecretAccessKey string `pulumi:"secretAccessKey"`
}

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs struct {
	// AWS Key ID.
	AccessKeyId pulumi.StringInput `pulumi:"accessKeyId"`
	// AWS Secret Access Key.
	SecretAccessKey pulumi.StringInput `pulumi:"secretAccessKey"`
}

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs) ElementType

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutputWithContext

func (i TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput

func (i TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput() TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutputWithContext

func (i TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyInput

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyInput interface {
	pulumi.Input

	ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput() TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput
	ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutputWithContext(context.Context) TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput
}

TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyInput is an input type that accepts TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs and TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput values. You can construct a concrete instance of `TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyInput` via:

TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs{...}

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) AccessKeyId

AWS Key ID.

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) ElementType

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) SecretAccessKey

AWS Secret Access Key.

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutputWithContext

func (o TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutputWithContext

func (o TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrInput

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrInput interface {
	pulumi.Input

	ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput() TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput
	ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutputWithContext(context.Context) TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput
}

TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrInput is an input type that accepts TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs, TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtr and TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput values. You can construct a concrete instance of `TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrInput` via:

        TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyArgs{...}

or:

        nil

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput

type TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput) AccessKeyId

AWS Key ID.

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput) Elem

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput) ElementType

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput) SecretAccessKey

AWS Secret Access Key.

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput

func (TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutputWithContext

func (o TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput) ToTransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourceAwsAccessKeyPtrOutput

type TransferJobTransferSpecAwsS3DataSourceInput

type TransferJobTransferSpecAwsS3DataSourceInput interface {
	pulumi.Input

	ToTransferJobTransferSpecAwsS3DataSourceOutput() TransferJobTransferSpecAwsS3DataSourceOutput
	ToTransferJobTransferSpecAwsS3DataSourceOutputWithContext(context.Context) TransferJobTransferSpecAwsS3DataSourceOutput
}

TransferJobTransferSpecAwsS3DataSourceInput is an input type that accepts TransferJobTransferSpecAwsS3DataSourceArgs and TransferJobTransferSpecAwsS3DataSourceOutput values. You can construct a concrete instance of `TransferJobTransferSpecAwsS3DataSourceInput` via:

TransferJobTransferSpecAwsS3DataSourceArgs{...}

type TransferJobTransferSpecAwsS3DataSourceOutput

type TransferJobTransferSpecAwsS3DataSourceOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecAwsS3DataSourceOutput) AwsAccessKey

AWS credentials block.

func (TransferJobTransferSpecAwsS3DataSourceOutput) BucketName

S3 Bucket name.

func (TransferJobTransferSpecAwsS3DataSourceOutput) ElementType

func (TransferJobTransferSpecAwsS3DataSourceOutput) ToTransferJobTransferSpecAwsS3DataSourceOutput

func (o TransferJobTransferSpecAwsS3DataSourceOutput) ToTransferJobTransferSpecAwsS3DataSourceOutput() TransferJobTransferSpecAwsS3DataSourceOutput

func (TransferJobTransferSpecAwsS3DataSourceOutput) ToTransferJobTransferSpecAwsS3DataSourceOutputWithContext

func (o TransferJobTransferSpecAwsS3DataSourceOutput) ToTransferJobTransferSpecAwsS3DataSourceOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourceOutput

func (TransferJobTransferSpecAwsS3DataSourceOutput) ToTransferJobTransferSpecAwsS3DataSourcePtrOutput

func (o TransferJobTransferSpecAwsS3DataSourceOutput) ToTransferJobTransferSpecAwsS3DataSourcePtrOutput() TransferJobTransferSpecAwsS3DataSourcePtrOutput

func (TransferJobTransferSpecAwsS3DataSourceOutput) ToTransferJobTransferSpecAwsS3DataSourcePtrOutputWithContext

func (o TransferJobTransferSpecAwsS3DataSourceOutput) ToTransferJobTransferSpecAwsS3DataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourcePtrOutput

type TransferJobTransferSpecAwsS3DataSourcePtrInput

type TransferJobTransferSpecAwsS3DataSourcePtrInput interface {
	pulumi.Input

	ToTransferJobTransferSpecAwsS3DataSourcePtrOutput() TransferJobTransferSpecAwsS3DataSourcePtrOutput
	ToTransferJobTransferSpecAwsS3DataSourcePtrOutputWithContext(context.Context) TransferJobTransferSpecAwsS3DataSourcePtrOutput
}

TransferJobTransferSpecAwsS3DataSourcePtrInput is an input type that accepts TransferJobTransferSpecAwsS3DataSourceArgs, TransferJobTransferSpecAwsS3DataSourcePtr and TransferJobTransferSpecAwsS3DataSourcePtrOutput values. You can construct a concrete instance of `TransferJobTransferSpecAwsS3DataSourcePtrInput` via:

        TransferJobTransferSpecAwsS3DataSourceArgs{...}

or:

        nil

type TransferJobTransferSpecAwsS3DataSourcePtrOutput

type TransferJobTransferSpecAwsS3DataSourcePtrOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecAwsS3DataSourcePtrOutput) AwsAccessKey

AWS credentials block.

func (TransferJobTransferSpecAwsS3DataSourcePtrOutput) BucketName

S3 Bucket name.

func (TransferJobTransferSpecAwsS3DataSourcePtrOutput) Elem

func (TransferJobTransferSpecAwsS3DataSourcePtrOutput) ElementType

func (TransferJobTransferSpecAwsS3DataSourcePtrOutput) ToTransferJobTransferSpecAwsS3DataSourcePtrOutput

func (o TransferJobTransferSpecAwsS3DataSourcePtrOutput) ToTransferJobTransferSpecAwsS3DataSourcePtrOutput() TransferJobTransferSpecAwsS3DataSourcePtrOutput

func (TransferJobTransferSpecAwsS3DataSourcePtrOutput) ToTransferJobTransferSpecAwsS3DataSourcePtrOutputWithContext

func (o TransferJobTransferSpecAwsS3DataSourcePtrOutput) ToTransferJobTransferSpecAwsS3DataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecAwsS3DataSourcePtrOutput

type TransferJobTransferSpecGcsDataSink

type TransferJobTransferSpecGcsDataSink struct {
	// S3 Bucket name.
	BucketName string `pulumi:"bucketName"`
}

type TransferJobTransferSpecGcsDataSinkArgs

type TransferJobTransferSpecGcsDataSinkArgs struct {
	// S3 Bucket name.
	BucketName pulumi.StringInput `pulumi:"bucketName"`
}

func (TransferJobTransferSpecGcsDataSinkArgs) ElementType

func (TransferJobTransferSpecGcsDataSinkArgs) ToTransferJobTransferSpecGcsDataSinkOutput

func (i TransferJobTransferSpecGcsDataSinkArgs) ToTransferJobTransferSpecGcsDataSinkOutput() TransferJobTransferSpecGcsDataSinkOutput

func (TransferJobTransferSpecGcsDataSinkArgs) ToTransferJobTransferSpecGcsDataSinkOutputWithContext

func (i TransferJobTransferSpecGcsDataSinkArgs) ToTransferJobTransferSpecGcsDataSinkOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSinkOutput

func (TransferJobTransferSpecGcsDataSinkArgs) ToTransferJobTransferSpecGcsDataSinkPtrOutput

func (i TransferJobTransferSpecGcsDataSinkArgs) ToTransferJobTransferSpecGcsDataSinkPtrOutput() TransferJobTransferSpecGcsDataSinkPtrOutput

func (TransferJobTransferSpecGcsDataSinkArgs) ToTransferJobTransferSpecGcsDataSinkPtrOutputWithContext

func (i TransferJobTransferSpecGcsDataSinkArgs) ToTransferJobTransferSpecGcsDataSinkPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSinkPtrOutput

type TransferJobTransferSpecGcsDataSinkInput

type TransferJobTransferSpecGcsDataSinkInput interface {
	pulumi.Input

	ToTransferJobTransferSpecGcsDataSinkOutput() TransferJobTransferSpecGcsDataSinkOutput
	ToTransferJobTransferSpecGcsDataSinkOutputWithContext(context.Context) TransferJobTransferSpecGcsDataSinkOutput
}

TransferJobTransferSpecGcsDataSinkInput is an input type that accepts TransferJobTransferSpecGcsDataSinkArgs and TransferJobTransferSpecGcsDataSinkOutput values. You can construct a concrete instance of `TransferJobTransferSpecGcsDataSinkInput` via:

TransferJobTransferSpecGcsDataSinkArgs{...}

type TransferJobTransferSpecGcsDataSinkOutput

type TransferJobTransferSpecGcsDataSinkOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecGcsDataSinkOutput) BucketName

S3 Bucket name.

func (TransferJobTransferSpecGcsDataSinkOutput) ElementType

func (TransferJobTransferSpecGcsDataSinkOutput) ToTransferJobTransferSpecGcsDataSinkOutput

func (o TransferJobTransferSpecGcsDataSinkOutput) ToTransferJobTransferSpecGcsDataSinkOutput() TransferJobTransferSpecGcsDataSinkOutput

func (TransferJobTransferSpecGcsDataSinkOutput) ToTransferJobTransferSpecGcsDataSinkOutputWithContext

func (o TransferJobTransferSpecGcsDataSinkOutput) ToTransferJobTransferSpecGcsDataSinkOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSinkOutput

func (TransferJobTransferSpecGcsDataSinkOutput) ToTransferJobTransferSpecGcsDataSinkPtrOutput

func (o TransferJobTransferSpecGcsDataSinkOutput) ToTransferJobTransferSpecGcsDataSinkPtrOutput() TransferJobTransferSpecGcsDataSinkPtrOutput

func (TransferJobTransferSpecGcsDataSinkOutput) ToTransferJobTransferSpecGcsDataSinkPtrOutputWithContext

func (o TransferJobTransferSpecGcsDataSinkOutput) ToTransferJobTransferSpecGcsDataSinkPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSinkPtrOutput

type TransferJobTransferSpecGcsDataSinkPtrInput

type TransferJobTransferSpecGcsDataSinkPtrInput interface {
	pulumi.Input

	ToTransferJobTransferSpecGcsDataSinkPtrOutput() TransferJobTransferSpecGcsDataSinkPtrOutput
	ToTransferJobTransferSpecGcsDataSinkPtrOutputWithContext(context.Context) TransferJobTransferSpecGcsDataSinkPtrOutput
}

TransferJobTransferSpecGcsDataSinkPtrInput is an input type that accepts TransferJobTransferSpecGcsDataSinkArgs, TransferJobTransferSpecGcsDataSinkPtr and TransferJobTransferSpecGcsDataSinkPtrOutput values. You can construct a concrete instance of `TransferJobTransferSpecGcsDataSinkPtrInput` via:

        TransferJobTransferSpecGcsDataSinkArgs{...}

or:

        nil

type TransferJobTransferSpecGcsDataSinkPtrOutput

type TransferJobTransferSpecGcsDataSinkPtrOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecGcsDataSinkPtrOutput) BucketName

S3 Bucket name.

func (TransferJobTransferSpecGcsDataSinkPtrOutput) Elem

func (TransferJobTransferSpecGcsDataSinkPtrOutput) ElementType

func (TransferJobTransferSpecGcsDataSinkPtrOutput) ToTransferJobTransferSpecGcsDataSinkPtrOutput

func (o TransferJobTransferSpecGcsDataSinkPtrOutput) ToTransferJobTransferSpecGcsDataSinkPtrOutput() TransferJobTransferSpecGcsDataSinkPtrOutput

func (TransferJobTransferSpecGcsDataSinkPtrOutput) ToTransferJobTransferSpecGcsDataSinkPtrOutputWithContext

func (o TransferJobTransferSpecGcsDataSinkPtrOutput) ToTransferJobTransferSpecGcsDataSinkPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSinkPtrOutput

type TransferJobTransferSpecGcsDataSource

type TransferJobTransferSpecGcsDataSource struct {
	// S3 Bucket name.
	BucketName string `pulumi:"bucketName"`
}

type TransferJobTransferSpecGcsDataSourceArgs

type TransferJobTransferSpecGcsDataSourceArgs struct {
	// S3 Bucket name.
	BucketName pulumi.StringInput `pulumi:"bucketName"`
}

func (TransferJobTransferSpecGcsDataSourceArgs) ElementType

func (TransferJobTransferSpecGcsDataSourceArgs) ToTransferJobTransferSpecGcsDataSourceOutput

func (i TransferJobTransferSpecGcsDataSourceArgs) ToTransferJobTransferSpecGcsDataSourceOutput() TransferJobTransferSpecGcsDataSourceOutput

func (TransferJobTransferSpecGcsDataSourceArgs) ToTransferJobTransferSpecGcsDataSourceOutputWithContext

func (i TransferJobTransferSpecGcsDataSourceArgs) ToTransferJobTransferSpecGcsDataSourceOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSourceOutput

func (TransferJobTransferSpecGcsDataSourceArgs) ToTransferJobTransferSpecGcsDataSourcePtrOutput

func (i TransferJobTransferSpecGcsDataSourceArgs) ToTransferJobTransferSpecGcsDataSourcePtrOutput() TransferJobTransferSpecGcsDataSourcePtrOutput

func (TransferJobTransferSpecGcsDataSourceArgs) ToTransferJobTransferSpecGcsDataSourcePtrOutputWithContext

func (i TransferJobTransferSpecGcsDataSourceArgs) ToTransferJobTransferSpecGcsDataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSourcePtrOutput

type TransferJobTransferSpecGcsDataSourceInput

type TransferJobTransferSpecGcsDataSourceInput interface {
	pulumi.Input

	ToTransferJobTransferSpecGcsDataSourceOutput() TransferJobTransferSpecGcsDataSourceOutput
	ToTransferJobTransferSpecGcsDataSourceOutputWithContext(context.Context) TransferJobTransferSpecGcsDataSourceOutput
}

TransferJobTransferSpecGcsDataSourceInput is an input type that accepts TransferJobTransferSpecGcsDataSourceArgs and TransferJobTransferSpecGcsDataSourceOutput values. You can construct a concrete instance of `TransferJobTransferSpecGcsDataSourceInput` via:

TransferJobTransferSpecGcsDataSourceArgs{...}

type TransferJobTransferSpecGcsDataSourceOutput

type TransferJobTransferSpecGcsDataSourceOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecGcsDataSourceOutput) BucketName

S3 Bucket name.

func (TransferJobTransferSpecGcsDataSourceOutput) ElementType

func (TransferJobTransferSpecGcsDataSourceOutput) ToTransferJobTransferSpecGcsDataSourceOutput

func (o TransferJobTransferSpecGcsDataSourceOutput) ToTransferJobTransferSpecGcsDataSourceOutput() TransferJobTransferSpecGcsDataSourceOutput

func (TransferJobTransferSpecGcsDataSourceOutput) ToTransferJobTransferSpecGcsDataSourceOutputWithContext

func (o TransferJobTransferSpecGcsDataSourceOutput) ToTransferJobTransferSpecGcsDataSourceOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSourceOutput

func (TransferJobTransferSpecGcsDataSourceOutput) ToTransferJobTransferSpecGcsDataSourcePtrOutput

func (o TransferJobTransferSpecGcsDataSourceOutput) ToTransferJobTransferSpecGcsDataSourcePtrOutput() TransferJobTransferSpecGcsDataSourcePtrOutput

func (TransferJobTransferSpecGcsDataSourceOutput) ToTransferJobTransferSpecGcsDataSourcePtrOutputWithContext

func (o TransferJobTransferSpecGcsDataSourceOutput) ToTransferJobTransferSpecGcsDataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSourcePtrOutput

type TransferJobTransferSpecGcsDataSourcePtrInput

type TransferJobTransferSpecGcsDataSourcePtrInput interface {
	pulumi.Input

	ToTransferJobTransferSpecGcsDataSourcePtrOutput() TransferJobTransferSpecGcsDataSourcePtrOutput
	ToTransferJobTransferSpecGcsDataSourcePtrOutputWithContext(context.Context) TransferJobTransferSpecGcsDataSourcePtrOutput
}

TransferJobTransferSpecGcsDataSourcePtrInput is an input type that accepts TransferJobTransferSpecGcsDataSourceArgs, TransferJobTransferSpecGcsDataSourcePtr and TransferJobTransferSpecGcsDataSourcePtrOutput values. You can construct a concrete instance of `TransferJobTransferSpecGcsDataSourcePtrInput` via:

        TransferJobTransferSpecGcsDataSourceArgs{...}

or:

        nil

type TransferJobTransferSpecGcsDataSourcePtrOutput

type TransferJobTransferSpecGcsDataSourcePtrOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecGcsDataSourcePtrOutput) BucketName

S3 Bucket name.

func (TransferJobTransferSpecGcsDataSourcePtrOutput) Elem

func (TransferJobTransferSpecGcsDataSourcePtrOutput) ElementType

func (TransferJobTransferSpecGcsDataSourcePtrOutput) ToTransferJobTransferSpecGcsDataSourcePtrOutput

func (o TransferJobTransferSpecGcsDataSourcePtrOutput) ToTransferJobTransferSpecGcsDataSourcePtrOutput() TransferJobTransferSpecGcsDataSourcePtrOutput

func (TransferJobTransferSpecGcsDataSourcePtrOutput) ToTransferJobTransferSpecGcsDataSourcePtrOutputWithContext

func (o TransferJobTransferSpecGcsDataSourcePtrOutput) ToTransferJobTransferSpecGcsDataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecGcsDataSourcePtrOutput

type TransferJobTransferSpecHttpDataSource

type TransferJobTransferSpecHttpDataSource struct {
	// The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
	ListUrl string `pulumi:"listUrl"`
}

type TransferJobTransferSpecHttpDataSourceArgs

type TransferJobTransferSpecHttpDataSourceArgs struct {
	// The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
	ListUrl pulumi.StringInput `pulumi:"listUrl"`
}

func (TransferJobTransferSpecHttpDataSourceArgs) ElementType

func (TransferJobTransferSpecHttpDataSourceArgs) ToTransferJobTransferSpecHttpDataSourceOutput

func (i TransferJobTransferSpecHttpDataSourceArgs) ToTransferJobTransferSpecHttpDataSourceOutput() TransferJobTransferSpecHttpDataSourceOutput

func (TransferJobTransferSpecHttpDataSourceArgs) ToTransferJobTransferSpecHttpDataSourceOutputWithContext

func (i TransferJobTransferSpecHttpDataSourceArgs) ToTransferJobTransferSpecHttpDataSourceOutputWithContext(ctx context.Context) TransferJobTransferSpecHttpDataSourceOutput

func (TransferJobTransferSpecHttpDataSourceArgs) ToTransferJobTransferSpecHttpDataSourcePtrOutput

func (i TransferJobTransferSpecHttpDataSourceArgs) ToTransferJobTransferSpecHttpDataSourcePtrOutput() TransferJobTransferSpecHttpDataSourcePtrOutput

func (TransferJobTransferSpecHttpDataSourceArgs) ToTransferJobTransferSpecHttpDataSourcePtrOutputWithContext

func (i TransferJobTransferSpecHttpDataSourceArgs) ToTransferJobTransferSpecHttpDataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecHttpDataSourcePtrOutput

type TransferJobTransferSpecHttpDataSourceInput

type TransferJobTransferSpecHttpDataSourceInput interface {
	pulumi.Input

	ToTransferJobTransferSpecHttpDataSourceOutput() TransferJobTransferSpecHttpDataSourceOutput
	ToTransferJobTransferSpecHttpDataSourceOutputWithContext(context.Context) TransferJobTransferSpecHttpDataSourceOutput
}

TransferJobTransferSpecHttpDataSourceInput is an input type that accepts TransferJobTransferSpecHttpDataSourceArgs and TransferJobTransferSpecHttpDataSourceOutput values. You can construct a concrete instance of `TransferJobTransferSpecHttpDataSourceInput` via:

TransferJobTransferSpecHttpDataSourceArgs{...}

type TransferJobTransferSpecHttpDataSourceOutput

type TransferJobTransferSpecHttpDataSourceOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecHttpDataSourceOutput) ElementType

func (TransferJobTransferSpecHttpDataSourceOutput) ListUrl

The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.

func (TransferJobTransferSpecHttpDataSourceOutput) ToTransferJobTransferSpecHttpDataSourceOutput

func (o TransferJobTransferSpecHttpDataSourceOutput) ToTransferJobTransferSpecHttpDataSourceOutput() TransferJobTransferSpecHttpDataSourceOutput

func (TransferJobTransferSpecHttpDataSourceOutput) ToTransferJobTransferSpecHttpDataSourceOutputWithContext

func (o TransferJobTransferSpecHttpDataSourceOutput) ToTransferJobTransferSpecHttpDataSourceOutputWithContext(ctx context.Context) TransferJobTransferSpecHttpDataSourceOutput

func (TransferJobTransferSpecHttpDataSourceOutput) ToTransferJobTransferSpecHttpDataSourcePtrOutput

func (o TransferJobTransferSpecHttpDataSourceOutput) ToTransferJobTransferSpecHttpDataSourcePtrOutput() TransferJobTransferSpecHttpDataSourcePtrOutput

func (TransferJobTransferSpecHttpDataSourceOutput) ToTransferJobTransferSpecHttpDataSourcePtrOutputWithContext

func (o TransferJobTransferSpecHttpDataSourceOutput) ToTransferJobTransferSpecHttpDataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecHttpDataSourcePtrOutput

type TransferJobTransferSpecHttpDataSourcePtrInput

type TransferJobTransferSpecHttpDataSourcePtrInput interface {
	pulumi.Input

	ToTransferJobTransferSpecHttpDataSourcePtrOutput() TransferJobTransferSpecHttpDataSourcePtrOutput
	ToTransferJobTransferSpecHttpDataSourcePtrOutputWithContext(context.Context) TransferJobTransferSpecHttpDataSourcePtrOutput
}

TransferJobTransferSpecHttpDataSourcePtrInput is an input type that accepts TransferJobTransferSpecHttpDataSourceArgs, TransferJobTransferSpecHttpDataSourcePtr and TransferJobTransferSpecHttpDataSourcePtrOutput values. You can construct a concrete instance of `TransferJobTransferSpecHttpDataSourcePtrInput` via:

        TransferJobTransferSpecHttpDataSourceArgs{...}

or:

        nil

type TransferJobTransferSpecHttpDataSourcePtrOutput

type TransferJobTransferSpecHttpDataSourcePtrOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecHttpDataSourcePtrOutput) Elem

func (TransferJobTransferSpecHttpDataSourcePtrOutput) ElementType

func (TransferJobTransferSpecHttpDataSourcePtrOutput) ListUrl

The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.

func (TransferJobTransferSpecHttpDataSourcePtrOutput) ToTransferJobTransferSpecHttpDataSourcePtrOutput

func (o TransferJobTransferSpecHttpDataSourcePtrOutput) ToTransferJobTransferSpecHttpDataSourcePtrOutput() TransferJobTransferSpecHttpDataSourcePtrOutput

func (TransferJobTransferSpecHttpDataSourcePtrOutput) ToTransferJobTransferSpecHttpDataSourcePtrOutputWithContext

func (o TransferJobTransferSpecHttpDataSourcePtrOutput) ToTransferJobTransferSpecHttpDataSourcePtrOutputWithContext(ctx context.Context) TransferJobTransferSpecHttpDataSourcePtrOutput

type TransferJobTransferSpecInput

type TransferJobTransferSpecInput interface {
	pulumi.Input

	ToTransferJobTransferSpecOutput() TransferJobTransferSpecOutput
	ToTransferJobTransferSpecOutputWithContext(context.Context) TransferJobTransferSpecOutput
}

TransferJobTransferSpecInput is an input type that accepts TransferJobTransferSpecArgs and TransferJobTransferSpecOutput values. You can construct a concrete instance of `TransferJobTransferSpecInput` via:

TransferJobTransferSpecArgs{...}

type TransferJobTransferSpecObjectConditions

type TransferJobTransferSpecObjectConditions struct {
	// `excludePrefixes` must follow the requirements described for `includePrefixes`. See [Requirements](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#ObjectConditions).
	ExcludePrefixes []string `pulumi:"excludePrefixes"`
	// If `includeRefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. See [Requirements](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#ObjectConditions).
	IncludePrefixes []string `pulumi:"includePrefixes"`
	// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
	MaxTimeElapsedSinceLastModification *string `pulumi:"maxTimeElapsedSinceLastModification"`
	// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
	MinTimeElapsedSinceLastModification *string `pulumi:"minTimeElapsedSinceLastModification"`
}

type TransferJobTransferSpecObjectConditionsArgs

type TransferJobTransferSpecObjectConditionsArgs struct {
	// `excludePrefixes` must follow the requirements described for `includePrefixes`. See [Requirements](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#ObjectConditions).
	ExcludePrefixes pulumi.StringArrayInput `pulumi:"excludePrefixes"`
	// If `includeRefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. See [Requirements](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#ObjectConditions).
	IncludePrefixes pulumi.StringArrayInput `pulumi:"includePrefixes"`
	// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
	MaxTimeElapsedSinceLastModification pulumi.StringPtrInput `pulumi:"maxTimeElapsedSinceLastModification"`
	// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
	MinTimeElapsedSinceLastModification pulumi.StringPtrInput `pulumi:"minTimeElapsedSinceLastModification"`
}

func (TransferJobTransferSpecObjectConditionsArgs) ElementType

func (TransferJobTransferSpecObjectConditionsArgs) ToTransferJobTransferSpecObjectConditionsOutput

func (i TransferJobTransferSpecObjectConditionsArgs) ToTransferJobTransferSpecObjectConditionsOutput() TransferJobTransferSpecObjectConditionsOutput

func (TransferJobTransferSpecObjectConditionsArgs) ToTransferJobTransferSpecObjectConditionsOutputWithContext

func (i TransferJobTransferSpecObjectConditionsArgs) ToTransferJobTransferSpecObjectConditionsOutputWithContext(ctx context.Context) TransferJobTransferSpecObjectConditionsOutput

func (TransferJobTransferSpecObjectConditionsArgs) ToTransferJobTransferSpecObjectConditionsPtrOutput

func (i TransferJobTransferSpecObjectConditionsArgs) ToTransferJobTransferSpecObjectConditionsPtrOutput() TransferJobTransferSpecObjectConditionsPtrOutput

func (TransferJobTransferSpecObjectConditionsArgs) ToTransferJobTransferSpecObjectConditionsPtrOutputWithContext

func (i TransferJobTransferSpecObjectConditionsArgs) ToTransferJobTransferSpecObjectConditionsPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecObjectConditionsPtrOutput

type TransferJobTransferSpecObjectConditionsInput

type TransferJobTransferSpecObjectConditionsInput interface {
	pulumi.Input

	ToTransferJobTransferSpecObjectConditionsOutput() TransferJobTransferSpecObjectConditionsOutput
	ToTransferJobTransferSpecObjectConditionsOutputWithContext(context.Context) TransferJobTransferSpecObjectConditionsOutput
}

TransferJobTransferSpecObjectConditionsInput is an input type that accepts TransferJobTransferSpecObjectConditionsArgs and TransferJobTransferSpecObjectConditionsOutput values. You can construct a concrete instance of `TransferJobTransferSpecObjectConditionsInput` via:

TransferJobTransferSpecObjectConditionsArgs{...}

type TransferJobTransferSpecObjectConditionsOutput

type TransferJobTransferSpecObjectConditionsOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecObjectConditionsOutput) ElementType

func (TransferJobTransferSpecObjectConditionsOutput) ExcludePrefixes

`excludePrefixes` must follow the requirements described for `includePrefixes`. See [Requirements](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#ObjectConditions).

func (TransferJobTransferSpecObjectConditionsOutput) IncludePrefixes

If `includeRefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. See [Requirements](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#ObjectConditions).

func (TransferJobTransferSpecObjectConditionsOutput) MaxTimeElapsedSinceLastModification

func (o TransferJobTransferSpecObjectConditionsOutput) MaxTimeElapsedSinceLastModification() pulumi.StringPtrOutput

A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (TransferJobTransferSpecObjectConditionsOutput) MinTimeElapsedSinceLastModification

func (o TransferJobTransferSpecObjectConditionsOutput) MinTimeElapsedSinceLastModification() pulumi.StringPtrOutput

A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (TransferJobTransferSpecObjectConditionsOutput) ToTransferJobTransferSpecObjectConditionsOutput

func (o TransferJobTransferSpecObjectConditionsOutput) ToTransferJobTransferSpecObjectConditionsOutput() TransferJobTransferSpecObjectConditionsOutput

func (TransferJobTransferSpecObjectConditionsOutput) ToTransferJobTransferSpecObjectConditionsOutputWithContext

func (o TransferJobTransferSpecObjectConditionsOutput) ToTransferJobTransferSpecObjectConditionsOutputWithContext(ctx context.Context) TransferJobTransferSpecObjectConditionsOutput

func (TransferJobTransferSpecObjectConditionsOutput) ToTransferJobTransferSpecObjectConditionsPtrOutput

func (o TransferJobTransferSpecObjectConditionsOutput) ToTransferJobTransferSpecObjectConditionsPtrOutput() TransferJobTransferSpecObjectConditionsPtrOutput

func (TransferJobTransferSpecObjectConditionsOutput) ToTransferJobTransferSpecObjectConditionsPtrOutputWithContext

func (o TransferJobTransferSpecObjectConditionsOutput) ToTransferJobTransferSpecObjectConditionsPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecObjectConditionsPtrOutput

type TransferJobTransferSpecObjectConditionsPtrInput

type TransferJobTransferSpecObjectConditionsPtrInput interface {
	pulumi.Input

	ToTransferJobTransferSpecObjectConditionsPtrOutput() TransferJobTransferSpecObjectConditionsPtrOutput
	ToTransferJobTransferSpecObjectConditionsPtrOutputWithContext(context.Context) TransferJobTransferSpecObjectConditionsPtrOutput
}

TransferJobTransferSpecObjectConditionsPtrInput is an input type that accepts TransferJobTransferSpecObjectConditionsArgs, TransferJobTransferSpecObjectConditionsPtr and TransferJobTransferSpecObjectConditionsPtrOutput values. You can construct a concrete instance of `TransferJobTransferSpecObjectConditionsPtrInput` via:

        TransferJobTransferSpecObjectConditionsArgs{...}

or:

        nil

type TransferJobTransferSpecObjectConditionsPtrOutput

type TransferJobTransferSpecObjectConditionsPtrOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecObjectConditionsPtrOutput) Elem

func (TransferJobTransferSpecObjectConditionsPtrOutput) ElementType

func (TransferJobTransferSpecObjectConditionsPtrOutput) ExcludePrefixes

`excludePrefixes` must follow the requirements described for `includePrefixes`. See [Requirements](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#ObjectConditions).

func (TransferJobTransferSpecObjectConditionsPtrOutput) IncludePrefixes

If `includeRefixes` is specified, objects that satisfy the object conditions must have names that start with one of the `includePrefixes` and that do not start with any of the `excludePrefixes`. If `includePrefixes` is not specified, all objects except those that have names starting with one of the `excludePrefixes` must satisfy the object conditions. See [Requirements](https://cloud.google.com/storage-transfer/docs/reference/rest/v1/TransferSpec#ObjectConditions).

func (TransferJobTransferSpecObjectConditionsPtrOutput) MaxTimeElapsedSinceLastModification

func (o TransferJobTransferSpecObjectConditionsPtrOutput) MaxTimeElapsedSinceLastModification() pulumi.StringPtrOutput

A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (TransferJobTransferSpecObjectConditionsPtrOutput) MinTimeElapsedSinceLastModification

func (o TransferJobTransferSpecObjectConditionsPtrOutput) MinTimeElapsedSinceLastModification() pulumi.StringPtrOutput

A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (TransferJobTransferSpecObjectConditionsPtrOutput) ToTransferJobTransferSpecObjectConditionsPtrOutput

func (o TransferJobTransferSpecObjectConditionsPtrOutput) ToTransferJobTransferSpecObjectConditionsPtrOutput() TransferJobTransferSpecObjectConditionsPtrOutput

func (TransferJobTransferSpecObjectConditionsPtrOutput) ToTransferJobTransferSpecObjectConditionsPtrOutputWithContext

func (o TransferJobTransferSpecObjectConditionsPtrOutput) ToTransferJobTransferSpecObjectConditionsPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecObjectConditionsPtrOutput

type TransferJobTransferSpecOutput

type TransferJobTransferSpecOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecOutput) AwsS3DataSource

An AWS S3 data source. Structure documented below.

func (TransferJobTransferSpecOutput) ElementType

func (TransferJobTransferSpecOutput) GcsDataSink

A Google Cloud Storage data sink. Structure documented below.

func (TransferJobTransferSpecOutput) GcsDataSource

A Google Cloud Storage data source. Structure documented below.

func (TransferJobTransferSpecOutput) HttpDataSource

An HTTP URL data source. Structure documented below.

func (TransferJobTransferSpecOutput) ObjectConditions

Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink. Structure documented below.

func (TransferJobTransferSpecOutput) ToTransferJobTransferSpecOutput

func (o TransferJobTransferSpecOutput) ToTransferJobTransferSpecOutput() TransferJobTransferSpecOutput

func (TransferJobTransferSpecOutput) ToTransferJobTransferSpecOutputWithContext

func (o TransferJobTransferSpecOutput) ToTransferJobTransferSpecOutputWithContext(ctx context.Context) TransferJobTransferSpecOutput

func (TransferJobTransferSpecOutput) ToTransferJobTransferSpecPtrOutput

func (o TransferJobTransferSpecOutput) ToTransferJobTransferSpecPtrOutput() TransferJobTransferSpecPtrOutput

func (TransferJobTransferSpecOutput) ToTransferJobTransferSpecPtrOutputWithContext

func (o TransferJobTransferSpecOutput) ToTransferJobTransferSpecPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecPtrOutput

func (TransferJobTransferSpecOutput) TransferOptions

Characteristics of how to treat files from datasource and sink during job. If the option `deleteObjectsUniqueInSink` is true, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink. Structure documented below.

type TransferJobTransferSpecPtrInput

type TransferJobTransferSpecPtrInput interface {
	pulumi.Input

	ToTransferJobTransferSpecPtrOutput() TransferJobTransferSpecPtrOutput
	ToTransferJobTransferSpecPtrOutputWithContext(context.Context) TransferJobTransferSpecPtrOutput
}

TransferJobTransferSpecPtrInput is an input type that accepts TransferJobTransferSpecArgs, TransferJobTransferSpecPtr and TransferJobTransferSpecPtrOutput values. You can construct a concrete instance of `TransferJobTransferSpecPtrInput` via:

        TransferJobTransferSpecArgs{...}

or:

        nil

type TransferJobTransferSpecPtrOutput

type TransferJobTransferSpecPtrOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecPtrOutput) AwsS3DataSource

An AWS S3 data source. Structure documented below.

func (TransferJobTransferSpecPtrOutput) Elem

func (TransferJobTransferSpecPtrOutput) ElementType

func (TransferJobTransferSpecPtrOutput) GcsDataSink

A Google Cloud Storage data sink. Structure documented below.

func (TransferJobTransferSpecPtrOutput) GcsDataSource

A Google Cloud Storage data source. Structure documented below.

func (TransferJobTransferSpecPtrOutput) HttpDataSource

An HTTP URL data source. Structure documented below.

func (TransferJobTransferSpecPtrOutput) ObjectConditions

Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects' `lastModificationTime` do not exclude objects in a data sink. Structure documented below.

func (TransferJobTransferSpecPtrOutput) ToTransferJobTransferSpecPtrOutput

func (o TransferJobTransferSpecPtrOutput) ToTransferJobTransferSpecPtrOutput() TransferJobTransferSpecPtrOutput

func (TransferJobTransferSpecPtrOutput) ToTransferJobTransferSpecPtrOutputWithContext

func (o TransferJobTransferSpecPtrOutput) ToTransferJobTransferSpecPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecPtrOutput

func (TransferJobTransferSpecPtrOutput) TransferOptions

Characteristics of how to treat files from datasource and sink during job. If the option `deleteObjectsUniqueInSink` is true, object conditions based on objects' `lastModificationTime` are ignored and do not exclude objects in a data source or a data sink. Structure documented below.

type TransferJobTransferSpecTransferOptions

type TransferJobTransferSpecTransferOptions struct {
	// Whether objects should be deleted from the source after they are transferred to the sink. Note that this option and `deleteObjectsUniqueInSink` are mutually exclusive.
	DeleteObjectsFromSourceAfterTransfer *bool `pulumi:"deleteObjectsFromSourceAfterTransfer"`
	// Whether objects that exist only in the sink should be deleted. Note that this option and
	// `deleteObjectsFromSourceAfterTransfer` are mutually exclusive.
	DeleteObjectsUniqueInSink *bool `pulumi:"deleteObjectsUniqueInSink"`
	// Whether overwriting objects that already exist in the sink is allowed.
	OverwriteObjectsAlreadyExistingInSink *bool `pulumi:"overwriteObjectsAlreadyExistingInSink"`
}

type TransferJobTransferSpecTransferOptionsArgs

type TransferJobTransferSpecTransferOptionsArgs struct {
	// Whether objects should be deleted from the source after they are transferred to the sink. Note that this option and `deleteObjectsUniqueInSink` are mutually exclusive.
	DeleteObjectsFromSourceAfterTransfer pulumi.BoolPtrInput `pulumi:"deleteObjectsFromSourceAfterTransfer"`
	// Whether objects that exist only in the sink should be deleted. Note that this option and
	// `deleteObjectsFromSourceAfterTransfer` are mutually exclusive.
	DeleteObjectsUniqueInSink pulumi.BoolPtrInput `pulumi:"deleteObjectsUniqueInSink"`
	// Whether overwriting objects that already exist in the sink is allowed.
	OverwriteObjectsAlreadyExistingInSink pulumi.BoolPtrInput `pulumi:"overwriteObjectsAlreadyExistingInSink"`
}

func (TransferJobTransferSpecTransferOptionsArgs) ElementType

func (TransferJobTransferSpecTransferOptionsArgs) ToTransferJobTransferSpecTransferOptionsOutput

func (i TransferJobTransferSpecTransferOptionsArgs) ToTransferJobTransferSpecTransferOptionsOutput() TransferJobTransferSpecTransferOptionsOutput

func (TransferJobTransferSpecTransferOptionsArgs) ToTransferJobTransferSpecTransferOptionsOutputWithContext

func (i TransferJobTransferSpecTransferOptionsArgs) ToTransferJobTransferSpecTransferOptionsOutputWithContext(ctx context.Context) TransferJobTransferSpecTransferOptionsOutput

func (TransferJobTransferSpecTransferOptionsArgs) ToTransferJobTransferSpecTransferOptionsPtrOutput

func (i TransferJobTransferSpecTransferOptionsArgs) ToTransferJobTransferSpecTransferOptionsPtrOutput() TransferJobTransferSpecTransferOptionsPtrOutput

func (TransferJobTransferSpecTransferOptionsArgs) ToTransferJobTransferSpecTransferOptionsPtrOutputWithContext

func (i TransferJobTransferSpecTransferOptionsArgs) ToTransferJobTransferSpecTransferOptionsPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecTransferOptionsPtrOutput

type TransferJobTransferSpecTransferOptionsInput

type TransferJobTransferSpecTransferOptionsInput interface {
	pulumi.Input

	ToTransferJobTransferSpecTransferOptionsOutput() TransferJobTransferSpecTransferOptionsOutput
	ToTransferJobTransferSpecTransferOptionsOutputWithContext(context.Context) TransferJobTransferSpecTransferOptionsOutput
}

TransferJobTransferSpecTransferOptionsInput is an input type that accepts TransferJobTransferSpecTransferOptionsArgs and TransferJobTransferSpecTransferOptionsOutput values. You can construct a concrete instance of `TransferJobTransferSpecTransferOptionsInput` via:

TransferJobTransferSpecTransferOptionsArgs{...}

type TransferJobTransferSpecTransferOptionsOutput

type TransferJobTransferSpecTransferOptionsOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecTransferOptionsOutput) DeleteObjectsFromSourceAfterTransfer

func (o TransferJobTransferSpecTransferOptionsOutput) DeleteObjectsFromSourceAfterTransfer() pulumi.BoolPtrOutput

Whether objects should be deleted from the source after they are transferred to the sink. Note that this option and `deleteObjectsUniqueInSink` are mutually exclusive.

func (TransferJobTransferSpecTransferOptionsOutput) DeleteObjectsUniqueInSink

Whether objects that exist only in the sink should be deleted. Note that this option and `deleteObjectsFromSourceAfterTransfer` are mutually exclusive.

func (TransferJobTransferSpecTransferOptionsOutput) ElementType

func (TransferJobTransferSpecTransferOptionsOutput) OverwriteObjectsAlreadyExistingInSink

func (o TransferJobTransferSpecTransferOptionsOutput) OverwriteObjectsAlreadyExistingInSink() pulumi.BoolPtrOutput

Whether overwriting objects that already exist in the sink is allowed.

func (TransferJobTransferSpecTransferOptionsOutput) ToTransferJobTransferSpecTransferOptionsOutput

func (o TransferJobTransferSpecTransferOptionsOutput) ToTransferJobTransferSpecTransferOptionsOutput() TransferJobTransferSpecTransferOptionsOutput

func (TransferJobTransferSpecTransferOptionsOutput) ToTransferJobTransferSpecTransferOptionsOutputWithContext

func (o TransferJobTransferSpecTransferOptionsOutput) ToTransferJobTransferSpecTransferOptionsOutputWithContext(ctx context.Context) TransferJobTransferSpecTransferOptionsOutput

func (TransferJobTransferSpecTransferOptionsOutput) ToTransferJobTransferSpecTransferOptionsPtrOutput

func (o TransferJobTransferSpecTransferOptionsOutput) ToTransferJobTransferSpecTransferOptionsPtrOutput() TransferJobTransferSpecTransferOptionsPtrOutput

func (TransferJobTransferSpecTransferOptionsOutput) ToTransferJobTransferSpecTransferOptionsPtrOutputWithContext

func (o TransferJobTransferSpecTransferOptionsOutput) ToTransferJobTransferSpecTransferOptionsPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecTransferOptionsPtrOutput

type TransferJobTransferSpecTransferOptionsPtrInput

type TransferJobTransferSpecTransferOptionsPtrInput interface {
	pulumi.Input

	ToTransferJobTransferSpecTransferOptionsPtrOutput() TransferJobTransferSpecTransferOptionsPtrOutput
	ToTransferJobTransferSpecTransferOptionsPtrOutputWithContext(context.Context) TransferJobTransferSpecTransferOptionsPtrOutput
}

TransferJobTransferSpecTransferOptionsPtrInput is an input type that accepts TransferJobTransferSpecTransferOptionsArgs, TransferJobTransferSpecTransferOptionsPtr and TransferJobTransferSpecTransferOptionsPtrOutput values. You can construct a concrete instance of `TransferJobTransferSpecTransferOptionsPtrInput` via:

        TransferJobTransferSpecTransferOptionsArgs{...}

or:

        nil

type TransferJobTransferSpecTransferOptionsPtrOutput

type TransferJobTransferSpecTransferOptionsPtrOutput struct{ *pulumi.OutputState }

func (TransferJobTransferSpecTransferOptionsPtrOutput) DeleteObjectsFromSourceAfterTransfer

func (o TransferJobTransferSpecTransferOptionsPtrOutput) DeleteObjectsFromSourceAfterTransfer() pulumi.BoolPtrOutput

Whether objects should be deleted from the source after they are transferred to the sink. Note that this option and `deleteObjectsUniqueInSink` are mutually exclusive.

func (TransferJobTransferSpecTransferOptionsPtrOutput) DeleteObjectsUniqueInSink

Whether objects that exist only in the sink should be deleted. Note that this option and `deleteObjectsFromSourceAfterTransfer` are mutually exclusive.

func (TransferJobTransferSpecTransferOptionsPtrOutput) Elem

func (TransferJobTransferSpecTransferOptionsPtrOutput) ElementType

func (TransferJobTransferSpecTransferOptionsPtrOutput) OverwriteObjectsAlreadyExistingInSink

func (o TransferJobTransferSpecTransferOptionsPtrOutput) OverwriteObjectsAlreadyExistingInSink() pulumi.BoolPtrOutput

Whether overwriting objects that already exist in the sink is allowed.

func (TransferJobTransferSpecTransferOptionsPtrOutput) ToTransferJobTransferSpecTransferOptionsPtrOutput

func (o TransferJobTransferSpecTransferOptionsPtrOutput) ToTransferJobTransferSpecTransferOptionsPtrOutput() TransferJobTransferSpecTransferOptionsPtrOutput

func (TransferJobTransferSpecTransferOptionsPtrOutput) ToTransferJobTransferSpecTransferOptionsPtrOutputWithContext

func (o TransferJobTransferSpecTransferOptionsPtrOutput) ToTransferJobTransferSpecTransferOptionsPtrOutputWithContext(ctx context.Context) TransferJobTransferSpecTransferOptionsPtrOutput

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL