bigtable

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 GCPolicy

type GCPolicy struct {
	pulumi.CustomResourceState

	// The name of the column family.
	ColumnFamily pulumi.StringOutput `pulumi:"columnFamily"`
	// The name of the Bigtable instance.
	InstanceName pulumi.StringOutput `pulumi:"instanceName"`
	// GC policy that applies to all cells older than the given age.
	MaxAge GCPolicyMaxAgePtrOutput `pulumi:"maxAge"`
	// GC policy that applies to all versions of a cell except for the most recent.
	MaxVersions GCPolicyMaxVersionArrayOutput `pulumi:"maxVersions"`
	// If multiple policies are set, you should choose between `UNION` OR `INTERSECTION`.
	Mode pulumi.StringPtrOutput `pulumi:"mode"`
	// 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"`
	// The name of the table.
	Table pulumi.StringOutput `pulumi:"table"`
}

Creates a Google Cloud Bigtable GC Policy inside a family. For more information see [the official documentation](https://cloud.google.com/bigtable/) and [API](https://cloud.google.com/bigtable/docs/go/reference).

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		instance, err := bigtable.NewInstance(ctx, "instance", &bigtable.InstanceArgs{
			Clusters: bigtable.InstanceClusterArray{
				&bigtable.InstanceClusterArgs{
					ClusterId:   pulumi.String("tf-instance-cluster"),
					NumNodes:    pulumi.Int(3),
					StorageType: pulumi.String("HDD"),
				},
			},
		})
		if err != nil {
			return err
		}
		table, err := bigtable.NewTable(ctx, "table", &bigtable.TableArgs{
			InstanceName: instance.Name,
			ColumnFamilies: bigtable.TableColumnFamilyArray{
				&bigtable.TableColumnFamilyArgs{
					Family: pulumi.String("name"),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = bigtable.NewGCPolicy(ctx, "policy", &bigtable.GCPolicyArgs{
			InstanceName: instance.Name,
			Table:        table.Name,
			ColumnFamily: pulumi.String("name"),
			MaxAge: &bigtable.GCPolicyMaxAgeArgs{
				Duration: pulumi.String("168h"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Multiple conditions is also supported. `UNION` when any of its sub-policies apply (OR). `INTERSECTION` when all its sub-policies apply (AND)

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewGCPolicy(ctx, "policy", &bigtable.GCPolicyArgs{
			InstanceName: pulumi.Any(google_bigtable_instance.Instance.Name),
			Table:        pulumi.Any(google_bigtable_table.Table.Name),
			ColumnFamily: pulumi.String("name"),
			Mode:         pulumi.String("UNION"),
			MaxAge: &bigtable.GCPolicyMaxAgeArgs{
				Duration: pulumi.String("168h"),
			},
			MaxVersions: bigtable.GCPolicyMaxVersionArray{
				&bigtable.GCPolicyMaxVersionArgs{
					Number: pulumi.Int(10),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource does not support import.

func GetGCPolicy

func GetGCPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *GCPolicyState, opts ...pulumi.ResourceOption) (*GCPolicy, error)

GetGCPolicy gets an existing GCPolicy 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 NewGCPolicy

func NewGCPolicy(ctx *pulumi.Context,
	name string, args *GCPolicyArgs, opts ...pulumi.ResourceOption) (*GCPolicy, error)

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

func (*GCPolicy) ElementType added in v4.4.0

func (*GCPolicy) ElementType() reflect.Type

func (*GCPolicy) ToGCPolicyOutput added in v4.4.0

func (i *GCPolicy) ToGCPolicyOutput() GCPolicyOutput

func (*GCPolicy) ToGCPolicyOutputWithContext added in v4.4.0

func (i *GCPolicy) ToGCPolicyOutputWithContext(ctx context.Context) GCPolicyOutput

func (*GCPolicy) ToGCPolicyPtrOutput added in v4.11.1

func (i *GCPolicy) ToGCPolicyPtrOutput() GCPolicyPtrOutput

func (*GCPolicy) ToGCPolicyPtrOutputWithContext added in v4.11.1

func (i *GCPolicy) ToGCPolicyPtrOutputWithContext(ctx context.Context) GCPolicyPtrOutput

type GCPolicyArgs

type GCPolicyArgs struct {
	// The name of the column family.
	ColumnFamily pulumi.StringInput
	// The name of the Bigtable instance.
	InstanceName pulumi.StringInput
	// GC policy that applies to all cells older than the given age.
	MaxAge GCPolicyMaxAgePtrInput
	// GC policy that applies to all versions of a cell except for the most recent.
	MaxVersions GCPolicyMaxVersionArrayInput
	// If multiple policies are set, you should choose between `UNION` OR `INTERSECTION`.
	Mode 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
	// The name of the table.
	Table pulumi.StringInput
}

The set of arguments for constructing a GCPolicy resource.

func (GCPolicyArgs) ElementType

func (GCPolicyArgs) ElementType() reflect.Type

type GCPolicyArray added in v4.11.1

type GCPolicyArray []GCPolicyInput

func (GCPolicyArray) ElementType added in v4.11.1

func (GCPolicyArray) ElementType() reflect.Type

func (GCPolicyArray) ToGCPolicyArrayOutput added in v4.11.1

func (i GCPolicyArray) ToGCPolicyArrayOutput() GCPolicyArrayOutput

func (GCPolicyArray) ToGCPolicyArrayOutputWithContext added in v4.11.1

func (i GCPolicyArray) ToGCPolicyArrayOutputWithContext(ctx context.Context) GCPolicyArrayOutput

type GCPolicyArrayInput added in v4.11.1

type GCPolicyArrayInput interface {
	pulumi.Input

	ToGCPolicyArrayOutput() GCPolicyArrayOutput
	ToGCPolicyArrayOutputWithContext(context.Context) GCPolicyArrayOutput
}

GCPolicyArrayInput is an input type that accepts GCPolicyArray and GCPolicyArrayOutput values. You can construct a concrete instance of `GCPolicyArrayInput` via:

GCPolicyArray{ GCPolicyArgs{...} }

type GCPolicyArrayOutput added in v4.11.1

type GCPolicyArrayOutput struct{ *pulumi.OutputState }

func (GCPolicyArrayOutput) ElementType added in v4.11.1

func (GCPolicyArrayOutput) ElementType() reflect.Type

func (GCPolicyArrayOutput) Index added in v4.11.1

func (GCPolicyArrayOutput) ToGCPolicyArrayOutput added in v4.11.1

func (o GCPolicyArrayOutput) ToGCPolicyArrayOutput() GCPolicyArrayOutput

func (GCPolicyArrayOutput) ToGCPolicyArrayOutputWithContext added in v4.11.1

func (o GCPolicyArrayOutput) ToGCPolicyArrayOutputWithContext(ctx context.Context) GCPolicyArrayOutput

type GCPolicyInput added in v4.4.0

type GCPolicyInput interface {
	pulumi.Input

	ToGCPolicyOutput() GCPolicyOutput
	ToGCPolicyOutputWithContext(ctx context.Context) GCPolicyOutput
}

type GCPolicyMap added in v4.11.1

type GCPolicyMap map[string]GCPolicyInput

func (GCPolicyMap) ElementType added in v4.11.1

func (GCPolicyMap) ElementType() reflect.Type

func (GCPolicyMap) ToGCPolicyMapOutput added in v4.11.1

func (i GCPolicyMap) ToGCPolicyMapOutput() GCPolicyMapOutput

func (GCPolicyMap) ToGCPolicyMapOutputWithContext added in v4.11.1

func (i GCPolicyMap) ToGCPolicyMapOutputWithContext(ctx context.Context) GCPolicyMapOutput

type GCPolicyMapInput added in v4.11.1

type GCPolicyMapInput interface {
	pulumi.Input

	ToGCPolicyMapOutput() GCPolicyMapOutput
	ToGCPolicyMapOutputWithContext(context.Context) GCPolicyMapOutput
}

GCPolicyMapInput is an input type that accepts GCPolicyMap and GCPolicyMapOutput values. You can construct a concrete instance of `GCPolicyMapInput` via:

GCPolicyMap{ "key": GCPolicyArgs{...} }

type GCPolicyMapOutput added in v4.11.1

type GCPolicyMapOutput struct{ *pulumi.OutputState }

func (GCPolicyMapOutput) ElementType added in v4.11.1

func (GCPolicyMapOutput) ElementType() reflect.Type

func (GCPolicyMapOutput) MapIndex added in v4.11.1

func (GCPolicyMapOutput) ToGCPolicyMapOutput added in v4.11.1

func (o GCPolicyMapOutput) ToGCPolicyMapOutput() GCPolicyMapOutput

func (GCPolicyMapOutput) ToGCPolicyMapOutputWithContext added in v4.11.1

func (o GCPolicyMapOutput) ToGCPolicyMapOutputWithContext(ctx context.Context) GCPolicyMapOutput

type GCPolicyMaxAge

type GCPolicyMaxAge struct {
	// Number of days before applying GC policy.
	//
	// Deprecated: Deprecated in favor of duration
	Days *int `pulumi:"days"`
	// Duration before applying GC policy (ex. "8h"). This is required when `days` isn't set
	Duration *string `pulumi:"duration"`
}

type GCPolicyMaxAgeArgs

type GCPolicyMaxAgeArgs struct {
	// Number of days before applying GC policy.
	//
	// Deprecated: Deprecated in favor of duration
	Days pulumi.IntPtrInput `pulumi:"days"`
	// Duration before applying GC policy (ex. "8h"). This is required when `days` isn't set
	Duration pulumi.StringPtrInput `pulumi:"duration"`
}

func (GCPolicyMaxAgeArgs) ElementType

func (GCPolicyMaxAgeArgs) ElementType() reflect.Type

func (GCPolicyMaxAgeArgs) ToGCPolicyMaxAgeOutput

func (i GCPolicyMaxAgeArgs) ToGCPolicyMaxAgeOutput() GCPolicyMaxAgeOutput

func (GCPolicyMaxAgeArgs) ToGCPolicyMaxAgeOutputWithContext

func (i GCPolicyMaxAgeArgs) ToGCPolicyMaxAgeOutputWithContext(ctx context.Context) GCPolicyMaxAgeOutput

func (GCPolicyMaxAgeArgs) ToGCPolicyMaxAgePtrOutput added in v4.7.0

func (i GCPolicyMaxAgeArgs) ToGCPolicyMaxAgePtrOutput() GCPolicyMaxAgePtrOutput

func (GCPolicyMaxAgeArgs) ToGCPolicyMaxAgePtrOutputWithContext added in v4.7.0

func (i GCPolicyMaxAgeArgs) ToGCPolicyMaxAgePtrOutputWithContext(ctx context.Context) GCPolicyMaxAgePtrOutput

type GCPolicyMaxAgeInput

type GCPolicyMaxAgeInput interface {
	pulumi.Input

	ToGCPolicyMaxAgeOutput() GCPolicyMaxAgeOutput
	ToGCPolicyMaxAgeOutputWithContext(context.Context) GCPolicyMaxAgeOutput
}

GCPolicyMaxAgeInput is an input type that accepts GCPolicyMaxAgeArgs and GCPolicyMaxAgeOutput values. You can construct a concrete instance of `GCPolicyMaxAgeInput` via:

GCPolicyMaxAgeArgs{...}

type GCPolicyMaxAgeOutput

type GCPolicyMaxAgeOutput struct{ *pulumi.OutputState }

func (GCPolicyMaxAgeOutput) Days deprecated

Number of days before applying GC policy.

Deprecated: Deprecated in favor of duration

func (GCPolicyMaxAgeOutput) Duration added in v4.7.0

Duration before applying GC policy (ex. "8h"). This is required when `days` isn't set

func (GCPolicyMaxAgeOutput) ElementType

func (GCPolicyMaxAgeOutput) ElementType() reflect.Type

func (GCPolicyMaxAgeOutput) ToGCPolicyMaxAgeOutput

func (o GCPolicyMaxAgeOutput) ToGCPolicyMaxAgeOutput() GCPolicyMaxAgeOutput

func (GCPolicyMaxAgeOutput) ToGCPolicyMaxAgeOutputWithContext

func (o GCPolicyMaxAgeOutput) ToGCPolicyMaxAgeOutputWithContext(ctx context.Context) GCPolicyMaxAgeOutput

func (GCPolicyMaxAgeOutput) ToGCPolicyMaxAgePtrOutput added in v4.7.0

func (o GCPolicyMaxAgeOutput) ToGCPolicyMaxAgePtrOutput() GCPolicyMaxAgePtrOutput

func (GCPolicyMaxAgeOutput) ToGCPolicyMaxAgePtrOutputWithContext added in v4.7.0

func (o GCPolicyMaxAgeOutput) ToGCPolicyMaxAgePtrOutputWithContext(ctx context.Context) GCPolicyMaxAgePtrOutput

type GCPolicyMaxAgePtrInput added in v4.7.0

type GCPolicyMaxAgePtrInput interface {
	pulumi.Input

	ToGCPolicyMaxAgePtrOutput() GCPolicyMaxAgePtrOutput
	ToGCPolicyMaxAgePtrOutputWithContext(context.Context) GCPolicyMaxAgePtrOutput
}

GCPolicyMaxAgePtrInput is an input type that accepts GCPolicyMaxAgeArgs, GCPolicyMaxAgePtr and GCPolicyMaxAgePtrOutput values. You can construct a concrete instance of `GCPolicyMaxAgePtrInput` via:

        GCPolicyMaxAgeArgs{...}

or:

        nil

func GCPolicyMaxAgePtr added in v4.7.0

func GCPolicyMaxAgePtr(v *GCPolicyMaxAgeArgs) GCPolicyMaxAgePtrInput

type GCPolicyMaxAgePtrOutput added in v4.7.0

type GCPolicyMaxAgePtrOutput struct{ *pulumi.OutputState }

func (GCPolicyMaxAgePtrOutput) Days deprecated added in v4.7.0

Number of days before applying GC policy.

Deprecated: Deprecated in favor of duration

func (GCPolicyMaxAgePtrOutput) Duration added in v4.7.0

Duration before applying GC policy (ex. "8h"). This is required when `days` isn't set

func (GCPolicyMaxAgePtrOutput) Elem added in v4.7.0

func (GCPolicyMaxAgePtrOutput) ElementType added in v4.7.0

func (GCPolicyMaxAgePtrOutput) ElementType() reflect.Type

func (GCPolicyMaxAgePtrOutput) ToGCPolicyMaxAgePtrOutput added in v4.7.0

func (o GCPolicyMaxAgePtrOutput) ToGCPolicyMaxAgePtrOutput() GCPolicyMaxAgePtrOutput

func (GCPolicyMaxAgePtrOutput) ToGCPolicyMaxAgePtrOutputWithContext added in v4.7.0

func (o GCPolicyMaxAgePtrOutput) ToGCPolicyMaxAgePtrOutputWithContext(ctx context.Context) GCPolicyMaxAgePtrOutput

type GCPolicyMaxVersion

type GCPolicyMaxVersion struct {
	// Number of version before applying the GC policy.
	Number int `pulumi:"number"`
}

type GCPolicyMaxVersionArgs

type GCPolicyMaxVersionArgs struct {
	// Number of version before applying the GC policy.
	Number pulumi.IntInput `pulumi:"number"`
}

func (GCPolicyMaxVersionArgs) ElementType

func (GCPolicyMaxVersionArgs) ElementType() reflect.Type

func (GCPolicyMaxVersionArgs) ToGCPolicyMaxVersionOutput

func (i GCPolicyMaxVersionArgs) ToGCPolicyMaxVersionOutput() GCPolicyMaxVersionOutput

func (GCPolicyMaxVersionArgs) ToGCPolicyMaxVersionOutputWithContext

func (i GCPolicyMaxVersionArgs) ToGCPolicyMaxVersionOutputWithContext(ctx context.Context) GCPolicyMaxVersionOutput

type GCPolicyMaxVersionArray

type GCPolicyMaxVersionArray []GCPolicyMaxVersionInput

func (GCPolicyMaxVersionArray) ElementType

func (GCPolicyMaxVersionArray) ElementType() reflect.Type

func (GCPolicyMaxVersionArray) ToGCPolicyMaxVersionArrayOutput

func (i GCPolicyMaxVersionArray) ToGCPolicyMaxVersionArrayOutput() GCPolicyMaxVersionArrayOutput

func (GCPolicyMaxVersionArray) ToGCPolicyMaxVersionArrayOutputWithContext

func (i GCPolicyMaxVersionArray) ToGCPolicyMaxVersionArrayOutputWithContext(ctx context.Context) GCPolicyMaxVersionArrayOutput

type GCPolicyMaxVersionArrayInput

type GCPolicyMaxVersionArrayInput interface {
	pulumi.Input

	ToGCPolicyMaxVersionArrayOutput() GCPolicyMaxVersionArrayOutput
	ToGCPolicyMaxVersionArrayOutputWithContext(context.Context) GCPolicyMaxVersionArrayOutput
}

GCPolicyMaxVersionArrayInput is an input type that accepts GCPolicyMaxVersionArray and GCPolicyMaxVersionArrayOutput values. You can construct a concrete instance of `GCPolicyMaxVersionArrayInput` via:

GCPolicyMaxVersionArray{ GCPolicyMaxVersionArgs{...} }

type GCPolicyMaxVersionArrayOutput

type GCPolicyMaxVersionArrayOutput struct{ *pulumi.OutputState }

func (GCPolicyMaxVersionArrayOutput) ElementType

func (GCPolicyMaxVersionArrayOutput) Index

func (GCPolicyMaxVersionArrayOutput) ToGCPolicyMaxVersionArrayOutput

func (o GCPolicyMaxVersionArrayOutput) ToGCPolicyMaxVersionArrayOutput() GCPolicyMaxVersionArrayOutput

func (GCPolicyMaxVersionArrayOutput) ToGCPolicyMaxVersionArrayOutputWithContext

func (o GCPolicyMaxVersionArrayOutput) ToGCPolicyMaxVersionArrayOutputWithContext(ctx context.Context) GCPolicyMaxVersionArrayOutput

type GCPolicyMaxVersionInput

type GCPolicyMaxVersionInput interface {
	pulumi.Input

	ToGCPolicyMaxVersionOutput() GCPolicyMaxVersionOutput
	ToGCPolicyMaxVersionOutputWithContext(context.Context) GCPolicyMaxVersionOutput
}

GCPolicyMaxVersionInput is an input type that accepts GCPolicyMaxVersionArgs and GCPolicyMaxVersionOutput values. You can construct a concrete instance of `GCPolicyMaxVersionInput` via:

GCPolicyMaxVersionArgs{...}

type GCPolicyMaxVersionOutput

type GCPolicyMaxVersionOutput struct{ *pulumi.OutputState }

func (GCPolicyMaxVersionOutput) ElementType

func (GCPolicyMaxVersionOutput) ElementType() reflect.Type

func (GCPolicyMaxVersionOutput) Number

Number of version before applying the GC policy.

func (GCPolicyMaxVersionOutput) ToGCPolicyMaxVersionOutput

func (o GCPolicyMaxVersionOutput) ToGCPolicyMaxVersionOutput() GCPolicyMaxVersionOutput

func (GCPolicyMaxVersionOutput) ToGCPolicyMaxVersionOutputWithContext

func (o GCPolicyMaxVersionOutput) ToGCPolicyMaxVersionOutputWithContext(ctx context.Context) GCPolicyMaxVersionOutput

type GCPolicyOutput added in v4.4.0

type GCPolicyOutput struct {
	*pulumi.OutputState
}

func (GCPolicyOutput) ElementType added in v4.4.0

func (GCPolicyOutput) ElementType() reflect.Type

func (GCPolicyOutput) ToGCPolicyOutput added in v4.4.0

func (o GCPolicyOutput) ToGCPolicyOutput() GCPolicyOutput

func (GCPolicyOutput) ToGCPolicyOutputWithContext added in v4.4.0

func (o GCPolicyOutput) ToGCPolicyOutputWithContext(ctx context.Context) GCPolicyOutput

func (GCPolicyOutput) ToGCPolicyPtrOutput added in v4.11.1

func (o GCPolicyOutput) ToGCPolicyPtrOutput() GCPolicyPtrOutput

func (GCPolicyOutput) ToGCPolicyPtrOutputWithContext added in v4.11.1

func (o GCPolicyOutput) ToGCPolicyPtrOutputWithContext(ctx context.Context) GCPolicyPtrOutput

type GCPolicyPtrInput added in v4.11.1

type GCPolicyPtrInput interface {
	pulumi.Input

	ToGCPolicyPtrOutput() GCPolicyPtrOutput
	ToGCPolicyPtrOutputWithContext(ctx context.Context) GCPolicyPtrOutput
}

type GCPolicyPtrOutput added in v4.11.1

type GCPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (GCPolicyPtrOutput) ElementType added in v4.11.1

func (GCPolicyPtrOutput) ElementType() reflect.Type

func (GCPolicyPtrOutput) ToGCPolicyPtrOutput added in v4.11.1

func (o GCPolicyPtrOutput) ToGCPolicyPtrOutput() GCPolicyPtrOutput

func (GCPolicyPtrOutput) ToGCPolicyPtrOutputWithContext added in v4.11.1

func (o GCPolicyPtrOutput) ToGCPolicyPtrOutputWithContext(ctx context.Context) GCPolicyPtrOutput

type GCPolicyState

type GCPolicyState struct {
	// The name of the column family.
	ColumnFamily pulumi.StringPtrInput
	// The name of the Bigtable instance.
	InstanceName pulumi.StringPtrInput
	// GC policy that applies to all cells older than the given age.
	MaxAge GCPolicyMaxAgePtrInput
	// GC policy that applies to all versions of a cell except for the most recent.
	MaxVersions GCPolicyMaxVersionArrayInput
	// If multiple policies are set, you should choose between `UNION` OR `INTERSECTION`.
	Mode 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
	// The name of the table.
	Table pulumi.StringPtrInput
}

func (GCPolicyState) ElementType

func (GCPolicyState) ElementType() reflect.Type

type Instance

type Instance struct {
	pulumi.CustomResourceState

	// A block of cluster configuration options. This can be specified at least once, and up to 4 times.
	// See structure below.
	Clusters InstanceClusterArrayOutput `pulumi:"clusters"`
	// Whether or not to allow this provider to destroy the instance. Unless this field is set to false
	// in the statefile, a `pulumi destroy` or `pulumi up` that would delete the instance will fail.
	DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"`
	// The human-readable display name of the Bigtable instance. Defaults to the instance `name`.
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// The instance type to create. One of `"DEVELOPMENT"` or `"PRODUCTION"`. Defaults to `"PRODUCTION"`.
	// It is recommended to leave this field unspecified since the distinction between `"DEVELOPMENT"` and `"PRODUCTION"` instances is going away,
	// and all instances will become `"PRODUCTION"` instances. This means that new and existing `"DEVELOPMENT"` instances will be converted to
	// `"PRODUCTION"` instances. It is recommended for users to use `"PRODUCTION"` instances in any case, since a 1-node `"PRODUCTION"` instance
	// is functionally identical to a `"DEVELOPMENT"` instance, but without the accompanying restrictions.
	//
	// Deprecated: It is recommended to leave this field unspecified since the distinction between "DEVELOPMENT" and "PRODUCTION" instances is going away, and all instances will become "PRODUCTION" instances. This means that new and existing "DEVELOPMENT" instances will be converted to "PRODUCTION" instances. It is recommended for users to use "PRODUCTION" instances in any case, since a 1-node "PRODUCTION" instance is functionally identical to a "DEVELOPMENT" instance, but without the accompanying restrictions.
	InstanceType pulumi.StringPtrOutput `pulumi:"instanceType"`
	// A set of key/value label pairs to assign to the resource. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// The name (also called Instance Id in the Cloud Console) of the Cloud Bigtable instance.
	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"`
}

Creates a Google Bigtable instance. For more information see:

* [API documentation](https://cloud.google.com/bigtable/docs/reference/admin/rest/v2/projects.instances.clusters) * How-to Guides

## Example Usage ### Production Instance

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewInstance(ctx, "production_instance", &bigtable.InstanceArgs{
			Clusters: bigtable.InstanceClusterArray{
				&bigtable.InstanceClusterArgs{
					ClusterId:   pulumi.String("tf-instance-cluster"),
					NumNodes:    pulumi.Int(1),
					StorageType: pulumi.String("HDD"),
				},
			},
			Labels: pulumi.StringMap{
				"my-label": pulumi.String("prod-label"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Bigtable Instances can be imported using any of these accepted formats

```sh

$ pulumi import gcp:bigtable/instance:Instance default projects/{{project}}/instances/{{name}}

```

```sh

$ pulumi import gcp:bigtable/instance:Instance default {{project}}/{{name}}

```

```sh

$ pulumi import gcp:bigtable/instance:Instance default {{name}}

```

func GetInstance

func GetInstance(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceState, opts ...pulumi.ResourceOption) (*Instance, error)

GetInstance gets an existing Instance 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 NewInstance

func NewInstance(ctx *pulumi.Context,
	name string, args *InstanceArgs, opts ...pulumi.ResourceOption) (*Instance, error)

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

func (*Instance) ElementType added in v4.4.0

func (*Instance) ElementType() reflect.Type

func (*Instance) ToInstanceOutput added in v4.4.0

func (i *Instance) ToInstanceOutput() InstanceOutput

func (*Instance) ToInstanceOutputWithContext added in v4.4.0

func (i *Instance) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput

func (*Instance) ToInstancePtrOutput added in v4.11.1

func (i *Instance) ToInstancePtrOutput() InstancePtrOutput

func (*Instance) ToInstancePtrOutputWithContext added in v4.11.1

func (i *Instance) ToInstancePtrOutputWithContext(ctx context.Context) InstancePtrOutput

type InstanceArgs

type InstanceArgs struct {
	// A block of cluster configuration options. This can be specified at least once, and up to 4 times.
	// See structure below.
	Clusters InstanceClusterArrayInput
	// Whether or not to allow this provider to destroy the instance. Unless this field is set to false
	// in the statefile, a `pulumi destroy` or `pulumi up` that would delete the instance will fail.
	DeletionProtection pulumi.BoolPtrInput
	// The human-readable display name of the Bigtable instance. Defaults to the instance `name`.
	DisplayName pulumi.StringPtrInput
	// The instance type to create. One of `"DEVELOPMENT"` or `"PRODUCTION"`. Defaults to `"PRODUCTION"`.
	// It is recommended to leave this field unspecified since the distinction between `"DEVELOPMENT"` and `"PRODUCTION"` instances is going away,
	// and all instances will become `"PRODUCTION"` instances. This means that new and existing `"DEVELOPMENT"` instances will be converted to
	// `"PRODUCTION"` instances. It is recommended for users to use `"PRODUCTION"` instances in any case, since a 1-node `"PRODUCTION"` instance
	// is functionally identical to a `"DEVELOPMENT"` instance, but without the accompanying restrictions.
	//
	// Deprecated: It is recommended to leave this field unspecified since the distinction between "DEVELOPMENT" and "PRODUCTION" instances is going away, and all instances will become "PRODUCTION" instances. This means that new and existing "DEVELOPMENT" instances will be converted to "PRODUCTION" instances. It is recommended for users to use "PRODUCTION" instances in any case, since a 1-node "PRODUCTION" instance is functionally identical to a "DEVELOPMENT" instance, but without the accompanying restrictions.
	InstanceType pulumi.StringPtrInput
	// A set of key/value label pairs to assign to the resource. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.
	Labels pulumi.StringMapInput
	// The name (also called Instance Id in the Cloud Console) of the Cloud Bigtable instance.
	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
}

The set of arguments for constructing a Instance resource.

func (InstanceArgs) ElementType

func (InstanceArgs) ElementType() reflect.Type

type InstanceArray added in v4.11.1

type InstanceArray []InstanceInput

func (InstanceArray) ElementType added in v4.11.1

func (InstanceArray) ElementType() reflect.Type

func (InstanceArray) ToInstanceArrayOutput added in v4.11.1

func (i InstanceArray) ToInstanceArrayOutput() InstanceArrayOutput

func (InstanceArray) ToInstanceArrayOutputWithContext added in v4.11.1

func (i InstanceArray) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput

type InstanceArrayInput added in v4.11.1

type InstanceArrayInput interface {
	pulumi.Input

	ToInstanceArrayOutput() InstanceArrayOutput
	ToInstanceArrayOutputWithContext(context.Context) InstanceArrayOutput
}

InstanceArrayInput is an input type that accepts InstanceArray and InstanceArrayOutput values. You can construct a concrete instance of `InstanceArrayInput` via:

InstanceArray{ InstanceArgs{...} }

type InstanceArrayOutput added in v4.11.1

type InstanceArrayOutput struct{ *pulumi.OutputState }

func (InstanceArrayOutput) ElementType added in v4.11.1

func (InstanceArrayOutput) ElementType() reflect.Type

func (InstanceArrayOutput) Index added in v4.11.1

func (InstanceArrayOutput) ToInstanceArrayOutput added in v4.11.1

func (o InstanceArrayOutput) ToInstanceArrayOutput() InstanceArrayOutput

func (InstanceArrayOutput) ToInstanceArrayOutputWithContext added in v4.11.1

func (o InstanceArrayOutput) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput

type InstanceCluster

type InstanceCluster struct {
	// The ID of the Cloud Bigtable cluster.
	ClusterId string `pulumi:"clusterId"`
	// The number of nodes in your Cloud Bigtable cluster.
	// Required, with a minimum of `1` for a `PRODUCTION` instance. Must be left unset
	// for a `DEVELOPMENT` instance.
	NumNodes *int `pulumi:"numNodes"`
	// The storage type to use. One of `"SSD"` or
	// `"HDD"`. Defaults to `"SSD"`.
	StorageType *string `pulumi:"storageType"`
	// The zone to create the Cloud Bigtable cluster in. If it not
	// specified, the provider zone is used. Each cluster must have a different zone in the same region. Zones that support
	// Bigtable instances are noted on the [Cloud Bigtable locations page](https://cloud.google.com/bigtable/docs/locations).
	Zone *string `pulumi:"zone"`
}

type InstanceClusterArgs

type InstanceClusterArgs struct {
	// The ID of the Cloud Bigtable cluster.
	ClusterId pulumi.StringInput `pulumi:"clusterId"`
	// The number of nodes in your Cloud Bigtable cluster.
	// Required, with a minimum of `1` for a `PRODUCTION` instance. Must be left unset
	// for a `DEVELOPMENT` instance.
	NumNodes pulumi.IntPtrInput `pulumi:"numNodes"`
	// The storage type to use. One of `"SSD"` or
	// `"HDD"`. Defaults to `"SSD"`.
	StorageType pulumi.StringPtrInput `pulumi:"storageType"`
	// The zone to create the Cloud Bigtable cluster in. If it not
	// specified, the provider zone is used. Each cluster must have a different zone in the same region. Zones that support
	// Bigtable instances are noted on the [Cloud Bigtable locations page](https://cloud.google.com/bigtable/docs/locations).
	Zone pulumi.StringPtrInput `pulumi:"zone"`
}

func (InstanceClusterArgs) ElementType

func (InstanceClusterArgs) ElementType() reflect.Type

func (InstanceClusterArgs) ToInstanceClusterOutput

func (i InstanceClusterArgs) ToInstanceClusterOutput() InstanceClusterOutput

func (InstanceClusterArgs) ToInstanceClusterOutputWithContext

func (i InstanceClusterArgs) ToInstanceClusterOutputWithContext(ctx context.Context) InstanceClusterOutput

type InstanceClusterArray

type InstanceClusterArray []InstanceClusterInput

func (InstanceClusterArray) ElementType

func (InstanceClusterArray) ElementType() reflect.Type

func (InstanceClusterArray) ToInstanceClusterArrayOutput

func (i InstanceClusterArray) ToInstanceClusterArrayOutput() InstanceClusterArrayOutput

func (InstanceClusterArray) ToInstanceClusterArrayOutputWithContext

func (i InstanceClusterArray) ToInstanceClusterArrayOutputWithContext(ctx context.Context) InstanceClusterArrayOutput

type InstanceClusterArrayInput

type InstanceClusterArrayInput interface {
	pulumi.Input

	ToInstanceClusterArrayOutput() InstanceClusterArrayOutput
	ToInstanceClusterArrayOutputWithContext(context.Context) InstanceClusterArrayOutput
}

InstanceClusterArrayInput is an input type that accepts InstanceClusterArray and InstanceClusterArrayOutput values. You can construct a concrete instance of `InstanceClusterArrayInput` via:

InstanceClusterArray{ InstanceClusterArgs{...} }

type InstanceClusterArrayOutput

type InstanceClusterArrayOutput struct{ *pulumi.OutputState }

func (InstanceClusterArrayOutput) ElementType

func (InstanceClusterArrayOutput) ElementType() reflect.Type

func (InstanceClusterArrayOutput) Index

func (InstanceClusterArrayOutput) ToInstanceClusterArrayOutput

func (o InstanceClusterArrayOutput) ToInstanceClusterArrayOutput() InstanceClusterArrayOutput

func (InstanceClusterArrayOutput) ToInstanceClusterArrayOutputWithContext

func (o InstanceClusterArrayOutput) ToInstanceClusterArrayOutputWithContext(ctx context.Context) InstanceClusterArrayOutput

type InstanceClusterInput

type InstanceClusterInput interface {
	pulumi.Input

	ToInstanceClusterOutput() InstanceClusterOutput
	ToInstanceClusterOutputWithContext(context.Context) InstanceClusterOutput
}

InstanceClusterInput is an input type that accepts InstanceClusterArgs and InstanceClusterOutput values. You can construct a concrete instance of `InstanceClusterInput` via:

InstanceClusterArgs{...}

type InstanceClusterOutput

type InstanceClusterOutput struct{ *pulumi.OutputState }

func (InstanceClusterOutput) ClusterId

The ID of the Cloud Bigtable cluster.

func (InstanceClusterOutput) ElementType

func (InstanceClusterOutput) ElementType() reflect.Type

func (InstanceClusterOutput) NumNodes

The number of nodes in your Cloud Bigtable cluster. Required, with a minimum of `1` for a `PRODUCTION` instance. Must be left unset for a `DEVELOPMENT` instance.

func (InstanceClusterOutput) StorageType

The storage type to use. One of `"SSD"` or `"HDD"`. Defaults to `"SSD"`.

func (InstanceClusterOutput) ToInstanceClusterOutput

func (o InstanceClusterOutput) ToInstanceClusterOutput() InstanceClusterOutput

func (InstanceClusterOutput) ToInstanceClusterOutputWithContext

func (o InstanceClusterOutput) ToInstanceClusterOutputWithContext(ctx context.Context) InstanceClusterOutput

func (InstanceClusterOutput) Zone

The zone to create the Cloud Bigtable cluster in. If it not specified, the provider zone is used. Each cluster must have a different zone in the same region. Zones that support Bigtable instances are noted on the [Cloud Bigtable locations page](https://cloud.google.com/bigtable/docs/locations).

type InstanceIamBinding

type InstanceIamBinding struct {
	pulumi.CustomResourceState

	Condition InstanceIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the instances's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringOutput      `pulumi:"instance"`
	Members  pulumi.StringArrayOutput `pulumi:"members"`
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `bigtable.InstanceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage IAM policies on bigtable instances. Each of these resources serves a different use case:

* `bigtable.InstanceIamPolicy`: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached. * `bigtable.InstanceIamBinding`: 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 instance are preserved. * `bigtable.InstanceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the instance are preserved.

> **Note:** `bigtable.InstanceIamPolicy` **cannot** be used in conjunction with `bigtable.InstanceIamBinding` and `bigtable.InstanceIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the instance as `bigtable.InstanceIamPolicy` replaces the entire policy.

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

## google\_bigtable\_instance\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"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/bigtable.user",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = bigtable.NewInstanceIamPolicy(ctx, "editor", &bigtable.InstanceIamPolicyArgs{
			Project:    pulumi.String("your-project"),
			Instance:   pulumi.String("your-bigtable-instance"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewInstanceIamBinding(ctx, "editor", &bigtable.InstanceIamBindingArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/bigtable.user"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewInstanceIamMember(ctx, "editor", &bigtable.InstanceIamMemberArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Member:   pulumi.String("user:jane@example.com"),
			Role:     pulumi.String("roles/bigtable.user"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Instance IAM resources can be imported using the project, instance name, role and/or member.

```sh

$ pulumi import gcp:bigtable/instanceIamBinding:InstanceIamBinding editor "projects/{project}/instances/{instance}"

```

```sh

$ pulumi import gcp:bigtable/instanceIamBinding:InstanceIamBinding editor "projects/{project}/instances/{instance} roles/editor"

```

```sh

$ pulumi import gcp:bigtable/instanceIamBinding:InstanceIamBinding editor "projects/{project}/instances/{instance} roles/editor user:jane@example.com"

```

-> **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 GetInstanceIamBinding

func GetInstanceIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceIamBindingState, opts ...pulumi.ResourceOption) (*InstanceIamBinding, error)

GetInstanceIamBinding gets an existing InstanceIamBinding 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 NewInstanceIamBinding

func NewInstanceIamBinding(ctx *pulumi.Context,
	name string, args *InstanceIamBindingArgs, opts ...pulumi.ResourceOption) (*InstanceIamBinding, error)

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

func (*InstanceIamBinding) ElementType added in v4.4.0

func (*InstanceIamBinding) ElementType() reflect.Type

func (*InstanceIamBinding) ToInstanceIamBindingOutput added in v4.4.0

func (i *InstanceIamBinding) ToInstanceIamBindingOutput() InstanceIamBindingOutput

func (*InstanceIamBinding) ToInstanceIamBindingOutputWithContext added in v4.4.0

func (i *InstanceIamBinding) ToInstanceIamBindingOutputWithContext(ctx context.Context) InstanceIamBindingOutput

func (*InstanceIamBinding) ToInstanceIamBindingPtrOutput added in v4.11.1

func (i *InstanceIamBinding) ToInstanceIamBindingPtrOutput() InstanceIamBindingPtrOutput

func (*InstanceIamBinding) ToInstanceIamBindingPtrOutputWithContext added in v4.11.1

func (i *InstanceIamBinding) ToInstanceIamBindingPtrOutputWithContext(ctx context.Context) InstanceIamBindingPtrOutput

type InstanceIamBindingArgs

type InstanceIamBindingArgs struct {
	Condition InstanceIamBindingConditionPtrInput
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringInput
	Members  pulumi.StringArrayInput
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigtable.InstanceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringInput
}

The set of arguments for constructing a InstanceIamBinding resource.

func (InstanceIamBindingArgs) ElementType

func (InstanceIamBindingArgs) ElementType() reflect.Type

type InstanceIamBindingArray added in v4.11.1

type InstanceIamBindingArray []InstanceIamBindingInput

func (InstanceIamBindingArray) ElementType added in v4.11.1

func (InstanceIamBindingArray) ElementType() reflect.Type

func (InstanceIamBindingArray) ToInstanceIamBindingArrayOutput added in v4.11.1

func (i InstanceIamBindingArray) ToInstanceIamBindingArrayOutput() InstanceIamBindingArrayOutput

func (InstanceIamBindingArray) ToInstanceIamBindingArrayOutputWithContext added in v4.11.1

func (i InstanceIamBindingArray) ToInstanceIamBindingArrayOutputWithContext(ctx context.Context) InstanceIamBindingArrayOutput

type InstanceIamBindingArrayInput added in v4.11.1

type InstanceIamBindingArrayInput interface {
	pulumi.Input

	ToInstanceIamBindingArrayOutput() InstanceIamBindingArrayOutput
	ToInstanceIamBindingArrayOutputWithContext(context.Context) InstanceIamBindingArrayOutput
}

InstanceIamBindingArrayInput is an input type that accepts InstanceIamBindingArray and InstanceIamBindingArrayOutput values. You can construct a concrete instance of `InstanceIamBindingArrayInput` via:

InstanceIamBindingArray{ InstanceIamBindingArgs{...} }

type InstanceIamBindingArrayOutput added in v4.11.1

type InstanceIamBindingArrayOutput struct{ *pulumi.OutputState }

func (InstanceIamBindingArrayOutput) ElementType added in v4.11.1

func (InstanceIamBindingArrayOutput) Index added in v4.11.1

func (InstanceIamBindingArrayOutput) ToInstanceIamBindingArrayOutput added in v4.11.1

func (o InstanceIamBindingArrayOutput) ToInstanceIamBindingArrayOutput() InstanceIamBindingArrayOutput

func (InstanceIamBindingArrayOutput) ToInstanceIamBindingArrayOutputWithContext added in v4.11.1

func (o InstanceIamBindingArrayOutput) ToInstanceIamBindingArrayOutputWithContext(ctx context.Context) InstanceIamBindingArrayOutput

type InstanceIamBindingCondition

type InstanceIamBindingCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type InstanceIamBindingConditionArgs

type InstanceIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (InstanceIamBindingConditionArgs) ElementType

func (InstanceIamBindingConditionArgs) ToInstanceIamBindingConditionOutput

func (i InstanceIamBindingConditionArgs) ToInstanceIamBindingConditionOutput() InstanceIamBindingConditionOutput

func (InstanceIamBindingConditionArgs) ToInstanceIamBindingConditionOutputWithContext

func (i InstanceIamBindingConditionArgs) ToInstanceIamBindingConditionOutputWithContext(ctx context.Context) InstanceIamBindingConditionOutput

func (InstanceIamBindingConditionArgs) ToInstanceIamBindingConditionPtrOutput

func (i InstanceIamBindingConditionArgs) ToInstanceIamBindingConditionPtrOutput() InstanceIamBindingConditionPtrOutput

func (InstanceIamBindingConditionArgs) ToInstanceIamBindingConditionPtrOutputWithContext

func (i InstanceIamBindingConditionArgs) ToInstanceIamBindingConditionPtrOutputWithContext(ctx context.Context) InstanceIamBindingConditionPtrOutput

type InstanceIamBindingConditionInput

type InstanceIamBindingConditionInput interface {
	pulumi.Input

	ToInstanceIamBindingConditionOutput() InstanceIamBindingConditionOutput
	ToInstanceIamBindingConditionOutputWithContext(context.Context) InstanceIamBindingConditionOutput
}

InstanceIamBindingConditionInput is an input type that accepts InstanceIamBindingConditionArgs and InstanceIamBindingConditionOutput values. You can construct a concrete instance of `InstanceIamBindingConditionInput` via:

InstanceIamBindingConditionArgs{...}

type InstanceIamBindingConditionOutput

type InstanceIamBindingConditionOutput struct{ *pulumi.OutputState }

func (InstanceIamBindingConditionOutput) Description

func (InstanceIamBindingConditionOutput) ElementType

func (InstanceIamBindingConditionOutput) Expression

func (InstanceIamBindingConditionOutput) Title

func (InstanceIamBindingConditionOutput) ToInstanceIamBindingConditionOutput

func (o InstanceIamBindingConditionOutput) ToInstanceIamBindingConditionOutput() InstanceIamBindingConditionOutput

func (InstanceIamBindingConditionOutput) ToInstanceIamBindingConditionOutputWithContext

func (o InstanceIamBindingConditionOutput) ToInstanceIamBindingConditionOutputWithContext(ctx context.Context) InstanceIamBindingConditionOutput

func (InstanceIamBindingConditionOutput) ToInstanceIamBindingConditionPtrOutput

func (o InstanceIamBindingConditionOutput) ToInstanceIamBindingConditionPtrOutput() InstanceIamBindingConditionPtrOutput

func (InstanceIamBindingConditionOutput) ToInstanceIamBindingConditionPtrOutputWithContext

func (o InstanceIamBindingConditionOutput) ToInstanceIamBindingConditionPtrOutputWithContext(ctx context.Context) InstanceIamBindingConditionPtrOutput

type InstanceIamBindingConditionPtrInput

type InstanceIamBindingConditionPtrInput interface {
	pulumi.Input

	ToInstanceIamBindingConditionPtrOutput() InstanceIamBindingConditionPtrOutput
	ToInstanceIamBindingConditionPtrOutputWithContext(context.Context) InstanceIamBindingConditionPtrOutput
}

InstanceIamBindingConditionPtrInput is an input type that accepts InstanceIamBindingConditionArgs, InstanceIamBindingConditionPtr and InstanceIamBindingConditionPtrOutput values. You can construct a concrete instance of `InstanceIamBindingConditionPtrInput` via:

        InstanceIamBindingConditionArgs{...}

or:

        nil

type InstanceIamBindingConditionPtrOutput

type InstanceIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (InstanceIamBindingConditionPtrOutput) Description

func (InstanceIamBindingConditionPtrOutput) Elem

func (InstanceIamBindingConditionPtrOutput) ElementType

func (InstanceIamBindingConditionPtrOutput) Expression

func (InstanceIamBindingConditionPtrOutput) Title

func (InstanceIamBindingConditionPtrOutput) ToInstanceIamBindingConditionPtrOutput

func (o InstanceIamBindingConditionPtrOutput) ToInstanceIamBindingConditionPtrOutput() InstanceIamBindingConditionPtrOutput

func (InstanceIamBindingConditionPtrOutput) ToInstanceIamBindingConditionPtrOutputWithContext

func (o InstanceIamBindingConditionPtrOutput) ToInstanceIamBindingConditionPtrOutputWithContext(ctx context.Context) InstanceIamBindingConditionPtrOutput

type InstanceIamBindingInput added in v4.4.0

type InstanceIamBindingInput interface {
	pulumi.Input

	ToInstanceIamBindingOutput() InstanceIamBindingOutput
	ToInstanceIamBindingOutputWithContext(ctx context.Context) InstanceIamBindingOutput
}

type InstanceIamBindingMap added in v4.11.1

type InstanceIamBindingMap map[string]InstanceIamBindingInput

func (InstanceIamBindingMap) ElementType added in v4.11.1

func (InstanceIamBindingMap) ElementType() reflect.Type

func (InstanceIamBindingMap) ToInstanceIamBindingMapOutput added in v4.11.1

func (i InstanceIamBindingMap) ToInstanceIamBindingMapOutput() InstanceIamBindingMapOutput

func (InstanceIamBindingMap) ToInstanceIamBindingMapOutputWithContext added in v4.11.1

func (i InstanceIamBindingMap) ToInstanceIamBindingMapOutputWithContext(ctx context.Context) InstanceIamBindingMapOutput

type InstanceIamBindingMapInput added in v4.11.1

type InstanceIamBindingMapInput interface {
	pulumi.Input

	ToInstanceIamBindingMapOutput() InstanceIamBindingMapOutput
	ToInstanceIamBindingMapOutputWithContext(context.Context) InstanceIamBindingMapOutput
}

InstanceIamBindingMapInput is an input type that accepts InstanceIamBindingMap and InstanceIamBindingMapOutput values. You can construct a concrete instance of `InstanceIamBindingMapInput` via:

InstanceIamBindingMap{ "key": InstanceIamBindingArgs{...} }

type InstanceIamBindingMapOutput added in v4.11.1

type InstanceIamBindingMapOutput struct{ *pulumi.OutputState }

func (InstanceIamBindingMapOutput) ElementType added in v4.11.1

func (InstanceIamBindingMapOutput) MapIndex added in v4.11.1

func (InstanceIamBindingMapOutput) ToInstanceIamBindingMapOutput added in v4.11.1

func (o InstanceIamBindingMapOutput) ToInstanceIamBindingMapOutput() InstanceIamBindingMapOutput

func (InstanceIamBindingMapOutput) ToInstanceIamBindingMapOutputWithContext added in v4.11.1

func (o InstanceIamBindingMapOutput) ToInstanceIamBindingMapOutputWithContext(ctx context.Context) InstanceIamBindingMapOutput

type InstanceIamBindingOutput added in v4.4.0

type InstanceIamBindingOutput struct {
	*pulumi.OutputState
}

func (InstanceIamBindingOutput) ElementType added in v4.4.0

func (InstanceIamBindingOutput) ElementType() reflect.Type

func (InstanceIamBindingOutput) ToInstanceIamBindingOutput added in v4.4.0

func (o InstanceIamBindingOutput) ToInstanceIamBindingOutput() InstanceIamBindingOutput

func (InstanceIamBindingOutput) ToInstanceIamBindingOutputWithContext added in v4.4.0

func (o InstanceIamBindingOutput) ToInstanceIamBindingOutputWithContext(ctx context.Context) InstanceIamBindingOutput

func (InstanceIamBindingOutput) ToInstanceIamBindingPtrOutput added in v4.11.1

func (o InstanceIamBindingOutput) ToInstanceIamBindingPtrOutput() InstanceIamBindingPtrOutput

func (InstanceIamBindingOutput) ToInstanceIamBindingPtrOutputWithContext added in v4.11.1

func (o InstanceIamBindingOutput) ToInstanceIamBindingPtrOutputWithContext(ctx context.Context) InstanceIamBindingPtrOutput

type InstanceIamBindingPtrInput added in v4.11.1

type InstanceIamBindingPtrInput interface {
	pulumi.Input

	ToInstanceIamBindingPtrOutput() InstanceIamBindingPtrOutput
	ToInstanceIamBindingPtrOutputWithContext(ctx context.Context) InstanceIamBindingPtrOutput
}

type InstanceIamBindingPtrOutput added in v4.11.1

type InstanceIamBindingPtrOutput struct {
	*pulumi.OutputState
}

func (InstanceIamBindingPtrOutput) ElementType added in v4.11.1

func (InstanceIamBindingPtrOutput) ToInstanceIamBindingPtrOutput added in v4.11.1

func (o InstanceIamBindingPtrOutput) ToInstanceIamBindingPtrOutput() InstanceIamBindingPtrOutput

func (InstanceIamBindingPtrOutput) ToInstanceIamBindingPtrOutputWithContext added in v4.11.1

func (o InstanceIamBindingPtrOutput) ToInstanceIamBindingPtrOutputWithContext(ctx context.Context) InstanceIamBindingPtrOutput

type InstanceIamBindingState

type InstanceIamBindingState struct {
	Condition InstanceIamBindingConditionPtrInput
	// (Computed) The etag of the instances's IAM policy.
	Etag pulumi.StringPtrInput
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringPtrInput
	Members  pulumi.StringArrayInput
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigtable.InstanceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringPtrInput
}

func (InstanceIamBindingState) ElementType

func (InstanceIamBindingState) ElementType() reflect.Type

type InstanceIamMember

type InstanceIamMember struct {
	pulumi.CustomResourceState

	Condition InstanceIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the instances's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringOutput `pulumi:"instance"`
	Member   pulumi.StringOutput `pulumi:"member"`
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `bigtable.InstanceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage IAM policies on bigtable instances. Each of these resources serves a different use case:

* `bigtable.InstanceIamPolicy`: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached. * `bigtable.InstanceIamBinding`: 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 instance are preserved. * `bigtable.InstanceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the instance are preserved.

> **Note:** `bigtable.InstanceIamPolicy` **cannot** be used in conjunction with `bigtable.InstanceIamBinding` and `bigtable.InstanceIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the instance as `bigtable.InstanceIamPolicy` replaces the entire policy.

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

## google\_bigtable\_instance\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"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/bigtable.user",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = bigtable.NewInstanceIamPolicy(ctx, "editor", &bigtable.InstanceIamPolicyArgs{
			Project:    pulumi.String("your-project"),
			Instance:   pulumi.String("your-bigtable-instance"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewInstanceIamBinding(ctx, "editor", &bigtable.InstanceIamBindingArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/bigtable.user"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewInstanceIamMember(ctx, "editor", &bigtable.InstanceIamMemberArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Member:   pulumi.String("user:jane@example.com"),
			Role:     pulumi.String("roles/bigtable.user"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Instance IAM resources can be imported using the project, instance name, role and/or member.

```sh

$ pulumi import gcp:bigtable/instanceIamMember:InstanceIamMember editor "projects/{project}/instances/{instance}"

```

```sh

$ pulumi import gcp:bigtable/instanceIamMember:InstanceIamMember editor "projects/{project}/instances/{instance} roles/editor"

```

```sh

$ pulumi import gcp:bigtable/instanceIamMember:InstanceIamMember editor "projects/{project}/instances/{instance} roles/editor user:jane@example.com"

```

-> **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 GetInstanceIamMember

func GetInstanceIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceIamMemberState, opts ...pulumi.ResourceOption) (*InstanceIamMember, error)

GetInstanceIamMember gets an existing InstanceIamMember 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 NewInstanceIamMember

func NewInstanceIamMember(ctx *pulumi.Context,
	name string, args *InstanceIamMemberArgs, opts ...pulumi.ResourceOption) (*InstanceIamMember, error)

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

func (*InstanceIamMember) ElementType added in v4.4.0

func (*InstanceIamMember) ElementType() reflect.Type

func (*InstanceIamMember) ToInstanceIamMemberOutput added in v4.4.0

func (i *InstanceIamMember) ToInstanceIamMemberOutput() InstanceIamMemberOutput

func (*InstanceIamMember) ToInstanceIamMemberOutputWithContext added in v4.4.0

func (i *InstanceIamMember) ToInstanceIamMemberOutputWithContext(ctx context.Context) InstanceIamMemberOutput

func (*InstanceIamMember) ToInstanceIamMemberPtrOutput added in v4.11.1

func (i *InstanceIamMember) ToInstanceIamMemberPtrOutput() InstanceIamMemberPtrOutput

func (*InstanceIamMember) ToInstanceIamMemberPtrOutputWithContext added in v4.11.1

func (i *InstanceIamMember) ToInstanceIamMemberPtrOutputWithContext(ctx context.Context) InstanceIamMemberPtrOutput

type InstanceIamMemberArgs

type InstanceIamMemberArgs struct {
	Condition InstanceIamMemberConditionPtrInput
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringInput
	Member   pulumi.StringInput
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigtable.InstanceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringInput
}

The set of arguments for constructing a InstanceIamMember resource.

func (InstanceIamMemberArgs) ElementType

func (InstanceIamMemberArgs) ElementType() reflect.Type

type InstanceIamMemberArray added in v4.11.1

type InstanceIamMemberArray []InstanceIamMemberInput

func (InstanceIamMemberArray) ElementType added in v4.11.1

func (InstanceIamMemberArray) ElementType() reflect.Type

func (InstanceIamMemberArray) ToInstanceIamMemberArrayOutput added in v4.11.1

func (i InstanceIamMemberArray) ToInstanceIamMemberArrayOutput() InstanceIamMemberArrayOutput

func (InstanceIamMemberArray) ToInstanceIamMemberArrayOutputWithContext added in v4.11.1

func (i InstanceIamMemberArray) ToInstanceIamMemberArrayOutputWithContext(ctx context.Context) InstanceIamMemberArrayOutput

type InstanceIamMemberArrayInput added in v4.11.1

type InstanceIamMemberArrayInput interface {
	pulumi.Input

	ToInstanceIamMemberArrayOutput() InstanceIamMemberArrayOutput
	ToInstanceIamMemberArrayOutputWithContext(context.Context) InstanceIamMemberArrayOutput
}

InstanceIamMemberArrayInput is an input type that accepts InstanceIamMemberArray and InstanceIamMemberArrayOutput values. You can construct a concrete instance of `InstanceIamMemberArrayInput` via:

InstanceIamMemberArray{ InstanceIamMemberArgs{...} }

type InstanceIamMemberArrayOutput added in v4.11.1

type InstanceIamMemberArrayOutput struct{ *pulumi.OutputState }

func (InstanceIamMemberArrayOutput) ElementType added in v4.11.1

func (InstanceIamMemberArrayOutput) Index added in v4.11.1

func (InstanceIamMemberArrayOutput) ToInstanceIamMemberArrayOutput added in v4.11.1

func (o InstanceIamMemberArrayOutput) ToInstanceIamMemberArrayOutput() InstanceIamMemberArrayOutput

func (InstanceIamMemberArrayOutput) ToInstanceIamMemberArrayOutputWithContext added in v4.11.1

func (o InstanceIamMemberArrayOutput) ToInstanceIamMemberArrayOutputWithContext(ctx context.Context) InstanceIamMemberArrayOutput

type InstanceIamMemberCondition

type InstanceIamMemberCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type InstanceIamMemberConditionArgs

type InstanceIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (InstanceIamMemberConditionArgs) ElementType

func (InstanceIamMemberConditionArgs) ToInstanceIamMemberConditionOutput

func (i InstanceIamMemberConditionArgs) ToInstanceIamMemberConditionOutput() InstanceIamMemberConditionOutput

func (InstanceIamMemberConditionArgs) ToInstanceIamMemberConditionOutputWithContext

func (i InstanceIamMemberConditionArgs) ToInstanceIamMemberConditionOutputWithContext(ctx context.Context) InstanceIamMemberConditionOutput

func (InstanceIamMemberConditionArgs) ToInstanceIamMemberConditionPtrOutput

func (i InstanceIamMemberConditionArgs) ToInstanceIamMemberConditionPtrOutput() InstanceIamMemberConditionPtrOutput

func (InstanceIamMemberConditionArgs) ToInstanceIamMemberConditionPtrOutputWithContext

func (i InstanceIamMemberConditionArgs) ToInstanceIamMemberConditionPtrOutputWithContext(ctx context.Context) InstanceIamMemberConditionPtrOutput

type InstanceIamMemberConditionInput

type InstanceIamMemberConditionInput interface {
	pulumi.Input

	ToInstanceIamMemberConditionOutput() InstanceIamMemberConditionOutput
	ToInstanceIamMemberConditionOutputWithContext(context.Context) InstanceIamMemberConditionOutput
}

InstanceIamMemberConditionInput is an input type that accepts InstanceIamMemberConditionArgs and InstanceIamMemberConditionOutput values. You can construct a concrete instance of `InstanceIamMemberConditionInput` via:

InstanceIamMemberConditionArgs{...}

type InstanceIamMemberConditionOutput

type InstanceIamMemberConditionOutput struct{ *pulumi.OutputState }

func (InstanceIamMemberConditionOutput) Description

func (InstanceIamMemberConditionOutput) ElementType

func (InstanceIamMemberConditionOutput) Expression

func (InstanceIamMemberConditionOutput) Title

func (InstanceIamMemberConditionOutput) ToInstanceIamMemberConditionOutput

func (o InstanceIamMemberConditionOutput) ToInstanceIamMemberConditionOutput() InstanceIamMemberConditionOutput

func (InstanceIamMemberConditionOutput) ToInstanceIamMemberConditionOutputWithContext

func (o InstanceIamMemberConditionOutput) ToInstanceIamMemberConditionOutputWithContext(ctx context.Context) InstanceIamMemberConditionOutput

func (InstanceIamMemberConditionOutput) ToInstanceIamMemberConditionPtrOutput

func (o InstanceIamMemberConditionOutput) ToInstanceIamMemberConditionPtrOutput() InstanceIamMemberConditionPtrOutput

func (InstanceIamMemberConditionOutput) ToInstanceIamMemberConditionPtrOutputWithContext

func (o InstanceIamMemberConditionOutput) ToInstanceIamMemberConditionPtrOutputWithContext(ctx context.Context) InstanceIamMemberConditionPtrOutput

type InstanceIamMemberConditionPtrInput

type InstanceIamMemberConditionPtrInput interface {
	pulumi.Input

	ToInstanceIamMemberConditionPtrOutput() InstanceIamMemberConditionPtrOutput
	ToInstanceIamMemberConditionPtrOutputWithContext(context.Context) InstanceIamMemberConditionPtrOutput
}

InstanceIamMemberConditionPtrInput is an input type that accepts InstanceIamMemberConditionArgs, InstanceIamMemberConditionPtr and InstanceIamMemberConditionPtrOutput values. You can construct a concrete instance of `InstanceIamMemberConditionPtrInput` via:

        InstanceIamMemberConditionArgs{...}

or:

        nil

type InstanceIamMemberConditionPtrOutput

type InstanceIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (InstanceIamMemberConditionPtrOutput) Description

func (InstanceIamMemberConditionPtrOutput) Elem

func (InstanceIamMemberConditionPtrOutput) ElementType

func (InstanceIamMemberConditionPtrOutput) Expression

func (InstanceIamMemberConditionPtrOutput) Title

func (InstanceIamMemberConditionPtrOutput) ToInstanceIamMemberConditionPtrOutput

func (o InstanceIamMemberConditionPtrOutput) ToInstanceIamMemberConditionPtrOutput() InstanceIamMemberConditionPtrOutput

func (InstanceIamMemberConditionPtrOutput) ToInstanceIamMemberConditionPtrOutputWithContext

func (o InstanceIamMemberConditionPtrOutput) ToInstanceIamMemberConditionPtrOutputWithContext(ctx context.Context) InstanceIamMemberConditionPtrOutput

type InstanceIamMemberInput added in v4.4.0

type InstanceIamMemberInput interface {
	pulumi.Input

	ToInstanceIamMemberOutput() InstanceIamMemberOutput
	ToInstanceIamMemberOutputWithContext(ctx context.Context) InstanceIamMemberOutput
}

type InstanceIamMemberMap added in v4.11.1

type InstanceIamMemberMap map[string]InstanceIamMemberInput

func (InstanceIamMemberMap) ElementType added in v4.11.1

func (InstanceIamMemberMap) ElementType() reflect.Type

func (InstanceIamMemberMap) ToInstanceIamMemberMapOutput added in v4.11.1

func (i InstanceIamMemberMap) ToInstanceIamMemberMapOutput() InstanceIamMemberMapOutput

func (InstanceIamMemberMap) ToInstanceIamMemberMapOutputWithContext added in v4.11.1

func (i InstanceIamMemberMap) ToInstanceIamMemberMapOutputWithContext(ctx context.Context) InstanceIamMemberMapOutput

type InstanceIamMemberMapInput added in v4.11.1

type InstanceIamMemberMapInput interface {
	pulumi.Input

	ToInstanceIamMemberMapOutput() InstanceIamMemberMapOutput
	ToInstanceIamMemberMapOutputWithContext(context.Context) InstanceIamMemberMapOutput
}

InstanceIamMemberMapInput is an input type that accepts InstanceIamMemberMap and InstanceIamMemberMapOutput values. You can construct a concrete instance of `InstanceIamMemberMapInput` via:

InstanceIamMemberMap{ "key": InstanceIamMemberArgs{...} }

type InstanceIamMemberMapOutput added in v4.11.1

type InstanceIamMemberMapOutput struct{ *pulumi.OutputState }

func (InstanceIamMemberMapOutput) ElementType added in v4.11.1

func (InstanceIamMemberMapOutput) ElementType() reflect.Type

func (InstanceIamMemberMapOutput) MapIndex added in v4.11.1

func (InstanceIamMemberMapOutput) ToInstanceIamMemberMapOutput added in v4.11.1

func (o InstanceIamMemberMapOutput) ToInstanceIamMemberMapOutput() InstanceIamMemberMapOutput

func (InstanceIamMemberMapOutput) ToInstanceIamMemberMapOutputWithContext added in v4.11.1

func (o InstanceIamMemberMapOutput) ToInstanceIamMemberMapOutputWithContext(ctx context.Context) InstanceIamMemberMapOutput

type InstanceIamMemberOutput added in v4.4.0

type InstanceIamMemberOutput struct {
	*pulumi.OutputState
}

func (InstanceIamMemberOutput) ElementType added in v4.4.0

func (InstanceIamMemberOutput) ElementType() reflect.Type

func (InstanceIamMemberOutput) ToInstanceIamMemberOutput added in v4.4.0

func (o InstanceIamMemberOutput) ToInstanceIamMemberOutput() InstanceIamMemberOutput

func (InstanceIamMemberOutput) ToInstanceIamMemberOutputWithContext added in v4.4.0

func (o InstanceIamMemberOutput) ToInstanceIamMemberOutputWithContext(ctx context.Context) InstanceIamMemberOutput

func (InstanceIamMemberOutput) ToInstanceIamMemberPtrOutput added in v4.11.1

func (o InstanceIamMemberOutput) ToInstanceIamMemberPtrOutput() InstanceIamMemberPtrOutput

func (InstanceIamMemberOutput) ToInstanceIamMemberPtrOutputWithContext added in v4.11.1

func (o InstanceIamMemberOutput) ToInstanceIamMemberPtrOutputWithContext(ctx context.Context) InstanceIamMemberPtrOutput

type InstanceIamMemberPtrInput added in v4.11.1

type InstanceIamMemberPtrInput interface {
	pulumi.Input

	ToInstanceIamMemberPtrOutput() InstanceIamMemberPtrOutput
	ToInstanceIamMemberPtrOutputWithContext(ctx context.Context) InstanceIamMemberPtrOutput
}

type InstanceIamMemberPtrOutput added in v4.11.1

type InstanceIamMemberPtrOutput struct {
	*pulumi.OutputState
}

func (InstanceIamMemberPtrOutput) ElementType added in v4.11.1

func (InstanceIamMemberPtrOutput) ElementType() reflect.Type

func (InstanceIamMemberPtrOutput) ToInstanceIamMemberPtrOutput added in v4.11.1

func (o InstanceIamMemberPtrOutput) ToInstanceIamMemberPtrOutput() InstanceIamMemberPtrOutput

func (InstanceIamMemberPtrOutput) ToInstanceIamMemberPtrOutputWithContext added in v4.11.1

func (o InstanceIamMemberPtrOutput) ToInstanceIamMemberPtrOutputWithContext(ctx context.Context) InstanceIamMemberPtrOutput

type InstanceIamMemberState

type InstanceIamMemberState struct {
	Condition InstanceIamMemberConditionPtrInput
	// (Computed) The etag of the instances's IAM policy.
	Etag pulumi.StringPtrInput
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringPtrInput
	Member   pulumi.StringPtrInput
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigtable.InstanceIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringPtrInput
}

func (InstanceIamMemberState) ElementType

func (InstanceIamMemberState) ElementType() reflect.Type

type InstanceIamPolicy

type InstanceIamPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the instances's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringOutput `pulumi:"instance"`
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringOutput `pulumi:"project"`
}

Three different resources help you manage IAM policies on bigtable instances. Each of these resources serves a different use case:

* `bigtable.InstanceIamPolicy`: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached. * `bigtable.InstanceIamBinding`: 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 instance are preserved. * `bigtable.InstanceIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the instance are preserved.

> **Note:** `bigtable.InstanceIamPolicy` **cannot** be used in conjunction with `bigtable.InstanceIamBinding` and `bigtable.InstanceIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the instance as `bigtable.InstanceIamPolicy` replaces the entire policy.

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

## google\_bigtable\_instance\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"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/bigtable.user",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = bigtable.NewInstanceIamPolicy(ctx, "editor", &bigtable.InstanceIamPolicyArgs{
			Project:    pulumi.String("your-project"),
			Instance:   pulumi.String("your-bigtable-instance"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewInstanceIamBinding(ctx, "editor", &bigtable.InstanceIamBindingArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/bigtable.user"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewInstanceIamMember(ctx, "editor", &bigtable.InstanceIamMemberArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Member:   pulumi.String("user:jane@example.com"),
			Role:     pulumi.String("roles/bigtable.user"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Instance IAM resources can be imported using the project, instance name, role and/or member.

```sh

$ pulumi import gcp:bigtable/instanceIamPolicy:InstanceIamPolicy editor "projects/{project}/instances/{instance}"

```

```sh

$ pulumi import gcp:bigtable/instanceIamPolicy:InstanceIamPolicy editor "projects/{project}/instances/{instance} roles/editor"

```

```sh

$ pulumi import gcp:bigtable/instanceIamPolicy:InstanceIamPolicy editor "projects/{project}/instances/{instance} roles/editor user:jane@example.com"

```

-> **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 GetInstanceIamPolicy

func GetInstanceIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceIamPolicyState, opts ...pulumi.ResourceOption) (*InstanceIamPolicy, error)

GetInstanceIamPolicy gets an existing InstanceIamPolicy 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 NewInstanceIamPolicy

func NewInstanceIamPolicy(ctx *pulumi.Context,
	name string, args *InstanceIamPolicyArgs, opts ...pulumi.ResourceOption) (*InstanceIamPolicy, error)

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

func (*InstanceIamPolicy) ElementType added in v4.4.0

func (*InstanceIamPolicy) ElementType() reflect.Type

func (*InstanceIamPolicy) ToInstanceIamPolicyOutput added in v4.4.0

func (i *InstanceIamPolicy) ToInstanceIamPolicyOutput() InstanceIamPolicyOutput

func (*InstanceIamPolicy) ToInstanceIamPolicyOutputWithContext added in v4.4.0

func (i *InstanceIamPolicy) ToInstanceIamPolicyOutputWithContext(ctx context.Context) InstanceIamPolicyOutput

func (*InstanceIamPolicy) ToInstanceIamPolicyPtrOutput added in v4.11.1

func (i *InstanceIamPolicy) ToInstanceIamPolicyPtrOutput() InstanceIamPolicyPtrOutput

func (*InstanceIamPolicy) ToInstanceIamPolicyPtrOutputWithContext added in v4.11.1

func (i *InstanceIamPolicy) ToInstanceIamPolicyPtrOutputWithContext(ctx context.Context) InstanceIamPolicyPtrOutput

type InstanceIamPolicyArgs

type InstanceIamPolicyArgs struct {
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringInput
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a InstanceIamPolicy resource.

func (InstanceIamPolicyArgs) ElementType

func (InstanceIamPolicyArgs) ElementType() reflect.Type

type InstanceIamPolicyArray added in v4.11.1

type InstanceIamPolicyArray []InstanceIamPolicyInput

func (InstanceIamPolicyArray) ElementType added in v4.11.1

func (InstanceIamPolicyArray) ElementType() reflect.Type

func (InstanceIamPolicyArray) ToInstanceIamPolicyArrayOutput added in v4.11.1

func (i InstanceIamPolicyArray) ToInstanceIamPolicyArrayOutput() InstanceIamPolicyArrayOutput

func (InstanceIamPolicyArray) ToInstanceIamPolicyArrayOutputWithContext added in v4.11.1

func (i InstanceIamPolicyArray) ToInstanceIamPolicyArrayOutputWithContext(ctx context.Context) InstanceIamPolicyArrayOutput

type InstanceIamPolicyArrayInput added in v4.11.1

type InstanceIamPolicyArrayInput interface {
	pulumi.Input

	ToInstanceIamPolicyArrayOutput() InstanceIamPolicyArrayOutput
	ToInstanceIamPolicyArrayOutputWithContext(context.Context) InstanceIamPolicyArrayOutput
}

InstanceIamPolicyArrayInput is an input type that accepts InstanceIamPolicyArray and InstanceIamPolicyArrayOutput values. You can construct a concrete instance of `InstanceIamPolicyArrayInput` via:

InstanceIamPolicyArray{ InstanceIamPolicyArgs{...} }

type InstanceIamPolicyArrayOutput added in v4.11.1

type InstanceIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (InstanceIamPolicyArrayOutput) ElementType added in v4.11.1

func (InstanceIamPolicyArrayOutput) Index added in v4.11.1

func (InstanceIamPolicyArrayOutput) ToInstanceIamPolicyArrayOutput added in v4.11.1

func (o InstanceIamPolicyArrayOutput) ToInstanceIamPolicyArrayOutput() InstanceIamPolicyArrayOutput

func (InstanceIamPolicyArrayOutput) ToInstanceIamPolicyArrayOutputWithContext added in v4.11.1

func (o InstanceIamPolicyArrayOutput) ToInstanceIamPolicyArrayOutputWithContext(ctx context.Context) InstanceIamPolicyArrayOutput

type InstanceIamPolicyInput added in v4.4.0

type InstanceIamPolicyInput interface {
	pulumi.Input

	ToInstanceIamPolicyOutput() InstanceIamPolicyOutput
	ToInstanceIamPolicyOutputWithContext(ctx context.Context) InstanceIamPolicyOutput
}

type InstanceIamPolicyMap added in v4.11.1

type InstanceIamPolicyMap map[string]InstanceIamPolicyInput

func (InstanceIamPolicyMap) ElementType added in v4.11.1

func (InstanceIamPolicyMap) ElementType() reflect.Type

func (InstanceIamPolicyMap) ToInstanceIamPolicyMapOutput added in v4.11.1

func (i InstanceIamPolicyMap) ToInstanceIamPolicyMapOutput() InstanceIamPolicyMapOutput

func (InstanceIamPolicyMap) ToInstanceIamPolicyMapOutputWithContext added in v4.11.1

func (i InstanceIamPolicyMap) ToInstanceIamPolicyMapOutputWithContext(ctx context.Context) InstanceIamPolicyMapOutput

type InstanceIamPolicyMapInput added in v4.11.1

type InstanceIamPolicyMapInput interface {
	pulumi.Input

	ToInstanceIamPolicyMapOutput() InstanceIamPolicyMapOutput
	ToInstanceIamPolicyMapOutputWithContext(context.Context) InstanceIamPolicyMapOutput
}

InstanceIamPolicyMapInput is an input type that accepts InstanceIamPolicyMap and InstanceIamPolicyMapOutput values. You can construct a concrete instance of `InstanceIamPolicyMapInput` via:

InstanceIamPolicyMap{ "key": InstanceIamPolicyArgs{...} }

type InstanceIamPolicyMapOutput added in v4.11.1

type InstanceIamPolicyMapOutput struct{ *pulumi.OutputState }

func (InstanceIamPolicyMapOutput) ElementType added in v4.11.1

func (InstanceIamPolicyMapOutput) ElementType() reflect.Type

func (InstanceIamPolicyMapOutput) MapIndex added in v4.11.1

func (InstanceIamPolicyMapOutput) ToInstanceIamPolicyMapOutput added in v4.11.1

func (o InstanceIamPolicyMapOutput) ToInstanceIamPolicyMapOutput() InstanceIamPolicyMapOutput

func (InstanceIamPolicyMapOutput) ToInstanceIamPolicyMapOutputWithContext added in v4.11.1

func (o InstanceIamPolicyMapOutput) ToInstanceIamPolicyMapOutputWithContext(ctx context.Context) InstanceIamPolicyMapOutput

type InstanceIamPolicyOutput added in v4.4.0

type InstanceIamPolicyOutput struct {
	*pulumi.OutputState
}

func (InstanceIamPolicyOutput) ElementType added in v4.4.0

func (InstanceIamPolicyOutput) ElementType() reflect.Type

func (InstanceIamPolicyOutput) ToInstanceIamPolicyOutput added in v4.4.0

func (o InstanceIamPolicyOutput) ToInstanceIamPolicyOutput() InstanceIamPolicyOutput

func (InstanceIamPolicyOutput) ToInstanceIamPolicyOutputWithContext added in v4.4.0

func (o InstanceIamPolicyOutput) ToInstanceIamPolicyOutputWithContext(ctx context.Context) InstanceIamPolicyOutput

func (InstanceIamPolicyOutput) ToInstanceIamPolicyPtrOutput added in v4.11.1

func (o InstanceIamPolicyOutput) ToInstanceIamPolicyPtrOutput() InstanceIamPolicyPtrOutput

func (InstanceIamPolicyOutput) ToInstanceIamPolicyPtrOutputWithContext added in v4.11.1

func (o InstanceIamPolicyOutput) ToInstanceIamPolicyPtrOutputWithContext(ctx context.Context) InstanceIamPolicyPtrOutput

type InstanceIamPolicyPtrInput added in v4.11.1

type InstanceIamPolicyPtrInput interface {
	pulumi.Input

	ToInstanceIamPolicyPtrOutput() InstanceIamPolicyPtrOutput
	ToInstanceIamPolicyPtrOutputWithContext(ctx context.Context) InstanceIamPolicyPtrOutput
}

type InstanceIamPolicyPtrOutput added in v4.11.1

type InstanceIamPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (InstanceIamPolicyPtrOutput) ElementType added in v4.11.1

func (InstanceIamPolicyPtrOutput) ElementType() reflect.Type

func (InstanceIamPolicyPtrOutput) ToInstanceIamPolicyPtrOutput added in v4.11.1

func (o InstanceIamPolicyPtrOutput) ToInstanceIamPolicyPtrOutput() InstanceIamPolicyPtrOutput

func (InstanceIamPolicyPtrOutput) ToInstanceIamPolicyPtrOutputWithContext added in v4.11.1

func (o InstanceIamPolicyPtrOutput) ToInstanceIamPolicyPtrOutputWithContext(ctx context.Context) InstanceIamPolicyPtrOutput

type InstanceIamPolicyState

type InstanceIamPolicyState struct {
	// (Computed) The etag of the instances's IAM policy.
	Etag pulumi.StringPtrInput
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringPtrInput
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The project in which the instance belongs. If it
	// is not provided, a default will be supplied.
	Project pulumi.StringPtrInput
}

func (InstanceIamPolicyState) ElementType

func (InstanceIamPolicyState) ElementType() reflect.Type

type InstanceInput added in v4.4.0

type InstanceInput interface {
	pulumi.Input

	ToInstanceOutput() InstanceOutput
	ToInstanceOutputWithContext(ctx context.Context) InstanceOutput
}

type InstanceMap added in v4.11.1

type InstanceMap map[string]InstanceInput

func (InstanceMap) ElementType added in v4.11.1

func (InstanceMap) ElementType() reflect.Type

func (InstanceMap) ToInstanceMapOutput added in v4.11.1

func (i InstanceMap) ToInstanceMapOutput() InstanceMapOutput

func (InstanceMap) ToInstanceMapOutputWithContext added in v4.11.1

func (i InstanceMap) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput

type InstanceMapInput added in v4.11.1

type InstanceMapInput interface {
	pulumi.Input

	ToInstanceMapOutput() InstanceMapOutput
	ToInstanceMapOutputWithContext(context.Context) InstanceMapOutput
}

InstanceMapInput is an input type that accepts InstanceMap and InstanceMapOutput values. You can construct a concrete instance of `InstanceMapInput` via:

InstanceMap{ "key": InstanceArgs{...} }

type InstanceMapOutput added in v4.11.1

type InstanceMapOutput struct{ *pulumi.OutputState }

func (InstanceMapOutput) ElementType added in v4.11.1

func (InstanceMapOutput) ElementType() reflect.Type

func (InstanceMapOutput) MapIndex added in v4.11.1

func (InstanceMapOutput) ToInstanceMapOutput added in v4.11.1

func (o InstanceMapOutput) ToInstanceMapOutput() InstanceMapOutput

func (InstanceMapOutput) ToInstanceMapOutputWithContext added in v4.11.1

func (o InstanceMapOutput) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput

type InstanceOutput added in v4.4.0

type InstanceOutput struct {
	*pulumi.OutputState
}

func (InstanceOutput) ElementType added in v4.4.0

func (InstanceOutput) ElementType() reflect.Type

func (InstanceOutput) ToInstanceOutput added in v4.4.0

func (o InstanceOutput) ToInstanceOutput() InstanceOutput

func (InstanceOutput) ToInstanceOutputWithContext added in v4.4.0

func (o InstanceOutput) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput

func (InstanceOutput) ToInstancePtrOutput added in v4.11.1

func (o InstanceOutput) ToInstancePtrOutput() InstancePtrOutput

func (InstanceOutput) ToInstancePtrOutputWithContext added in v4.11.1

func (o InstanceOutput) ToInstancePtrOutputWithContext(ctx context.Context) InstancePtrOutput

type InstancePtrInput added in v4.11.1

type InstancePtrInput interface {
	pulumi.Input

	ToInstancePtrOutput() InstancePtrOutput
	ToInstancePtrOutputWithContext(ctx context.Context) InstancePtrOutput
}

type InstancePtrOutput added in v4.11.1

type InstancePtrOutput struct {
	*pulumi.OutputState
}

func (InstancePtrOutput) ElementType added in v4.11.1

func (InstancePtrOutput) ElementType() reflect.Type

func (InstancePtrOutput) ToInstancePtrOutput added in v4.11.1

func (o InstancePtrOutput) ToInstancePtrOutput() InstancePtrOutput

func (InstancePtrOutput) ToInstancePtrOutputWithContext added in v4.11.1

func (o InstancePtrOutput) ToInstancePtrOutputWithContext(ctx context.Context) InstancePtrOutput

type InstanceState

type InstanceState struct {
	// A block of cluster configuration options. This can be specified at least once, and up to 4 times.
	// See structure below.
	Clusters InstanceClusterArrayInput
	// Whether or not to allow this provider to destroy the instance. Unless this field is set to false
	// in the statefile, a `pulumi destroy` or `pulumi up` that would delete the instance will fail.
	DeletionProtection pulumi.BoolPtrInput
	// The human-readable display name of the Bigtable instance. Defaults to the instance `name`.
	DisplayName pulumi.StringPtrInput
	// The instance type to create. One of `"DEVELOPMENT"` or `"PRODUCTION"`. Defaults to `"PRODUCTION"`.
	// It is recommended to leave this field unspecified since the distinction between `"DEVELOPMENT"` and `"PRODUCTION"` instances is going away,
	// and all instances will become `"PRODUCTION"` instances. This means that new and existing `"DEVELOPMENT"` instances will be converted to
	// `"PRODUCTION"` instances. It is recommended for users to use `"PRODUCTION"` instances in any case, since a 1-node `"PRODUCTION"` instance
	// is functionally identical to a `"DEVELOPMENT"` instance, but without the accompanying restrictions.
	//
	// Deprecated: It is recommended to leave this field unspecified since the distinction between "DEVELOPMENT" and "PRODUCTION" instances is going away, and all instances will become "PRODUCTION" instances. This means that new and existing "DEVELOPMENT" instances will be converted to "PRODUCTION" instances. It is recommended for users to use "PRODUCTION" instances in any case, since a 1-node "PRODUCTION" instance is functionally identical to a "DEVELOPMENT" instance, but without the accompanying restrictions.
	InstanceType pulumi.StringPtrInput
	// A set of key/value label pairs to assign to the resource. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.
	Labels pulumi.StringMapInput
	// The name (also called Instance Id in the Cloud Console) of the Cloud Bigtable instance.
	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
}

func (InstanceState) ElementType

func (InstanceState) ElementType() reflect.Type

type Table

type Table struct {
	pulumi.CustomResourceState

	// A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below.
	ColumnFamilies TableColumnFamilyArrayOutput `pulumi:"columnFamilies"`
	// The name of the Bigtable instance.
	InstanceName pulumi.StringOutput `pulumi:"instanceName"`
	// The name of the table.
	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"`
	// A list of predefined keys to split the table on.
	// !> **Warning:** Modifying the `splitKeys` of an existing table will cause the provider
	// to delete/recreate the entire `bigtable.Table` resource.
	SplitKeys pulumi.StringArrayOutput `pulumi:"splitKeys"`
}

Creates a Google Cloud Bigtable table inside an instance. For more information see [the official documentation](https://cloud.google.com/bigtable/) and [API](https://cloud.google.com/bigtable/docs/go/reference).

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		instance, err := bigtable.NewInstance(ctx, "instance", &bigtable.InstanceArgs{
			Clusters: bigtable.InstanceClusterArray{
				&bigtable.InstanceClusterArgs{
					ClusterId:   pulumi.String("tf-instance-cluster"),
					Zone:        pulumi.String("us-central1-b"),
					NumNodes:    pulumi.Int(3),
					StorageType: pulumi.String("HDD"),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = bigtable.NewTable(ctx, "table", &bigtable.TableArgs{
			InstanceName: instance.Name,
			SplitKeys: pulumi.StringArray{
				pulumi.String("a"),
				pulumi.String("b"),
				pulumi.String("c"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Bigtable Tables can be imported using any of these accepted formats

```sh

$ pulumi import gcp:bigtable/table:Table default projects/{{project}}/instances/{{instance_name}}/tables/{{name}}

```

```sh

$ pulumi import gcp:bigtable/table:Table default {{project}}/{{instance_name}}/{{name}}

```

```sh

$ pulumi import gcp:bigtable/table:Table default {{instance_name}}/{{name}}

```

The following fields can't be read and will show diffs if set in config when imported- `split_keys`

func GetTable

func GetTable(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TableState, opts ...pulumi.ResourceOption) (*Table, error)

GetTable gets an existing Table 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 NewTable

func NewTable(ctx *pulumi.Context,
	name string, args *TableArgs, opts ...pulumi.ResourceOption) (*Table, error)

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

func (*Table) ElementType added in v4.4.0

func (*Table) ElementType() reflect.Type

func (*Table) ToTableOutput added in v4.4.0

func (i *Table) ToTableOutput() TableOutput

func (*Table) ToTableOutputWithContext added in v4.4.0

func (i *Table) ToTableOutputWithContext(ctx context.Context) TableOutput

func (*Table) ToTablePtrOutput added in v4.11.1

func (i *Table) ToTablePtrOutput() TablePtrOutput

func (*Table) ToTablePtrOutputWithContext added in v4.11.1

func (i *Table) ToTablePtrOutputWithContext(ctx context.Context) TablePtrOutput

type TableArgs

type TableArgs struct {
	// A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below.
	ColumnFamilies TableColumnFamilyArrayInput
	// The name of the Bigtable instance.
	InstanceName pulumi.StringInput
	// The name of the table.
	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
	// A list of predefined keys to split the table on.
	// !> **Warning:** Modifying the `splitKeys` of an existing table will cause the provider
	// to delete/recreate the entire `bigtable.Table` resource.
	SplitKeys pulumi.StringArrayInput
}

The set of arguments for constructing a Table resource.

func (TableArgs) ElementType

func (TableArgs) ElementType() reflect.Type

type TableArray added in v4.11.1

type TableArray []TableInput

func (TableArray) ElementType added in v4.11.1

func (TableArray) ElementType() reflect.Type

func (TableArray) ToTableArrayOutput added in v4.11.1

func (i TableArray) ToTableArrayOutput() TableArrayOutput

func (TableArray) ToTableArrayOutputWithContext added in v4.11.1

func (i TableArray) ToTableArrayOutputWithContext(ctx context.Context) TableArrayOutput

type TableArrayInput added in v4.11.1

type TableArrayInput interface {
	pulumi.Input

	ToTableArrayOutput() TableArrayOutput
	ToTableArrayOutputWithContext(context.Context) TableArrayOutput
}

TableArrayInput is an input type that accepts TableArray and TableArrayOutput values. You can construct a concrete instance of `TableArrayInput` via:

TableArray{ TableArgs{...} }

type TableArrayOutput added in v4.11.1

type TableArrayOutput struct{ *pulumi.OutputState }

func (TableArrayOutput) ElementType added in v4.11.1

func (TableArrayOutput) ElementType() reflect.Type

func (TableArrayOutput) Index added in v4.11.1

func (TableArrayOutput) ToTableArrayOutput added in v4.11.1

func (o TableArrayOutput) ToTableArrayOutput() TableArrayOutput

func (TableArrayOutput) ToTableArrayOutputWithContext added in v4.11.1

func (o TableArrayOutput) ToTableArrayOutputWithContext(ctx context.Context) TableArrayOutput

type TableColumnFamily

type TableColumnFamily struct {
	// The name of the column family.
	Family string `pulumi:"family"`
}

type TableColumnFamilyArgs

type TableColumnFamilyArgs struct {
	// The name of the column family.
	Family pulumi.StringInput `pulumi:"family"`
}

func (TableColumnFamilyArgs) ElementType

func (TableColumnFamilyArgs) ElementType() reflect.Type

func (TableColumnFamilyArgs) ToTableColumnFamilyOutput

func (i TableColumnFamilyArgs) ToTableColumnFamilyOutput() TableColumnFamilyOutput

func (TableColumnFamilyArgs) ToTableColumnFamilyOutputWithContext

func (i TableColumnFamilyArgs) ToTableColumnFamilyOutputWithContext(ctx context.Context) TableColumnFamilyOutput

type TableColumnFamilyArray

type TableColumnFamilyArray []TableColumnFamilyInput

func (TableColumnFamilyArray) ElementType

func (TableColumnFamilyArray) ElementType() reflect.Type

func (TableColumnFamilyArray) ToTableColumnFamilyArrayOutput

func (i TableColumnFamilyArray) ToTableColumnFamilyArrayOutput() TableColumnFamilyArrayOutput

func (TableColumnFamilyArray) ToTableColumnFamilyArrayOutputWithContext

func (i TableColumnFamilyArray) ToTableColumnFamilyArrayOutputWithContext(ctx context.Context) TableColumnFamilyArrayOutput

type TableColumnFamilyArrayInput

type TableColumnFamilyArrayInput interface {
	pulumi.Input

	ToTableColumnFamilyArrayOutput() TableColumnFamilyArrayOutput
	ToTableColumnFamilyArrayOutputWithContext(context.Context) TableColumnFamilyArrayOutput
}

TableColumnFamilyArrayInput is an input type that accepts TableColumnFamilyArray and TableColumnFamilyArrayOutput values. You can construct a concrete instance of `TableColumnFamilyArrayInput` via:

TableColumnFamilyArray{ TableColumnFamilyArgs{...} }

type TableColumnFamilyArrayOutput

type TableColumnFamilyArrayOutput struct{ *pulumi.OutputState }

func (TableColumnFamilyArrayOutput) ElementType

func (TableColumnFamilyArrayOutput) Index

func (TableColumnFamilyArrayOutput) ToTableColumnFamilyArrayOutput

func (o TableColumnFamilyArrayOutput) ToTableColumnFamilyArrayOutput() TableColumnFamilyArrayOutput

func (TableColumnFamilyArrayOutput) ToTableColumnFamilyArrayOutputWithContext

func (o TableColumnFamilyArrayOutput) ToTableColumnFamilyArrayOutputWithContext(ctx context.Context) TableColumnFamilyArrayOutput

type TableColumnFamilyInput

type TableColumnFamilyInput interface {
	pulumi.Input

	ToTableColumnFamilyOutput() TableColumnFamilyOutput
	ToTableColumnFamilyOutputWithContext(context.Context) TableColumnFamilyOutput
}

TableColumnFamilyInput is an input type that accepts TableColumnFamilyArgs and TableColumnFamilyOutput values. You can construct a concrete instance of `TableColumnFamilyInput` via:

TableColumnFamilyArgs{...}

type TableColumnFamilyOutput

type TableColumnFamilyOutput struct{ *pulumi.OutputState }

func (TableColumnFamilyOutput) ElementType

func (TableColumnFamilyOutput) ElementType() reflect.Type

func (TableColumnFamilyOutput) Family

The name of the column family.

func (TableColumnFamilyOutput) ToTableColumnFamilyOutput

func (o TableColumnFamilyOutput) ToTableColumnFamilyOutput() TableColumnFamilyOutput

func (TableColumnFamilyOutput) ToTableColumnFamilyOutputWithContext

func (o TableColumnFamilyOutput) ToTableColumnFamilyOutputWithContext(ctx context.Context) TableColumnFamilyOutput

type TableIamBinding

type TableIamBinding struct {
	pulumi.CustomResourceState

	Condition TableIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the tables's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringOutput      `pulumi:"instance"`
	Members  pulumi.StringArrayOutput `pulumi:"members"`
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `bigtable.TableIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringOutput `pulumi:"role"`
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringOutput `pulumi:"table"`
}

Three different resources help you manage IAM policies on bigtable tables. Each of these resources serves a different use case:

* `bigtable.TableIamPolicy`: Authoritative. Sets the IAM policy for the tables and replaces any existing policy already attached. * `bigtable.TableIamBinding`: 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 table are preserved. * `bigtable.TableIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the table are preserved.

> **Note:** `bigtable.TableIamPolicy` **cannot** be used in conjunction with `bigtable.TableIamBinding` and `bigtable.TableIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the table as `bigtable.TableIamPolicy` replaces the entire policy.

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

## google\_bigtable\_instance\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"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/bigtable.user",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = bigtable.NewTableIamPolicy(ctx, "editor", &bigtable.TableIamPolicyArgs{
			Project:    pulumi.String("your-project"),
			Instance:   pulumi.String("your-bigtable-instance"),
			Table:      pulumi.String("your-bigtable-table"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewTableIamBinding(ctx, "editor", &bigtable.TableIamBindingArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role:  pulumi.String("roles/bigtable.user"),
			Table: pulumi.String("your-bigtable-table"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewTableIamMember(ctx, "editor", &bigtable.TableIamMemberArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Member:   pulumi.String("user:jane@example.com"),
			Role:     pulumi.String("roles/bigtable.user"),
			Table:    pulumi.String("your-bigtable-table"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Instance IAM resources can be imported using the project, table name, role and/or member.

```sh

$ pulumi import gcp:bigtable/tableIamBinding:TableIamBinding editor "projects/{project}/tables/{table}"

```

```sh

$ pulumi import gcp:bigtable/tableIamBinding:TableIamBinding editor "projects/{project}/tables/{table} roles/editor"

```

```sh

$ pulumi import gcp:bigtable/tableIamBinding:TableIamBinding editor "projects/{project}/tables/{table} roles/editor user:jane@example.com"

```

-> **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 GetTableIamBinding

func GetTableIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TableIamBindingState, opts ...pulumi.ResourceOption) (*TableIamBinding, error)

GetTableIamBinding gets an existing TableIamBinding 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 NewTableIamBinding

func NewTableIamBinding(ctx *pulumi.Context,
	name string, args *TableIamBindingArgs, opts ...pulumi.ResourceOption) (*TableIamBinding, error)

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

func (*TableIamBinding) ElementType added in v4.4.0

func (*TableIamBinding) ElementType() reflect.Type

func (*TableIamBinding) ToTableIamBindingOutput added in v4.4.0

func (i *TableIamBinding) ToTableIamBindingOutput() TableIamBindingOutput

func (*TableIamBinding) ToTableIamBindingOutputWithContext added in v4.4.0

func (i *TableIamBinding) ToTableIamBindingOutputWithContext(ctx context.Context) TableIamBindingOutput

func (*TableIamBinding) ToTableIamBindingPtrOutput added in v4.11.1

func (i *TableIamBinding) ToTableIamBindingPtrOutput() TableIamBindingPtrOutput

func (*TableIamBinding) ToTableIamBindingPtrOutputWithContext added in v4.11.1

func (i *TableIamBinding) ToTableIamBindingPtrOutputWithContext(ctx context.Context) TableIamBindingPtrOutput

type TableIamBindingArgs

type TableIamBindingArgs struct {
	Condition TableIamBindingConditionPtrInput
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringInput
	Members  pulumi.StringArrayInput
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigtable.TableIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringInput
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringInput
}

The set of arguments for constructing a TableIamBinding resource.

func (TableIamBindingArgs) ElementType

func (TableIamBindingArgs) ElementType() reflect.Type

type TableIamBindingArray added in v4.11.1

type TableIamBindingArray []TableIamBindingInput

func (TableIamBindingArray) ElementType added in v4.11.1

func (TableIamBindingArray) ElementType() reflect.Type

func (TableIamBindingArray) ToTableIamBindingArrayOutput added in v4.11.1

func (i TableIamBindingArray) ToTableIamBindingArrayOutput() TableIamBindingArrayOutput

func (TableIamBindingArray) ToTableIamBindingArrayOutputWithContext added in v4.11.1

func (i TableIamBindingArray) ToTableIamBindingArrayOutputWithContext(ctx context.Context) TableIamBindingArrayOutput

type TableIamBindingArrayInput added in v4.11.1

type TableIamBindingArrayInput interface {
	pulumi.Input

	ToTableIamBindingArrayOutput() TableIamBindingArrayOutput
	ToTableIamBindingArrayOutputWithContext(context.Context) TableIamBindingArrayOutput
}

TableIamBindingArrayInput is an input type that accepts TableIamBindingArray and TableIamBindingArrayOutput values. You can construct a concrete instance of `TableIamBindingArrayInput` via:

TableIamBindingArray{ TableIamBindingArgs{...} }

type TableIamBindingArrayOutput added in v4.11.1

type TableIamBindingArrayOutput struct{ *pulumi.OutputState }

func (TableIamBindingArrayOutput) ElementType added in v4.11.1

func (TableIamBindingArrayOutput) ElementType() reflect.Type

func (TableIamBindingArrayOutput) Index added in v4.11.1

func (TableIamBindingArrayOutput) ToTableIamBindingArrayOutput added in v4.11.1

func (o TableIamBindingArrayOutput) ToTableIamBindingArrayOutput() TableIamBindingArrayOutput

func (TableIamBindingArrayOutput) ToTableIamBindingArrayOutputWithContext added in v4.11.1

func (o TableIamBindingArrayOutput) ToTableIamBindingArrayOutputWithContext(ctx context.Context) TableIamBindingArrayOutput

type TableIamBindingCondition

type TableIamBindingCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type TableIamBindingConditionArgs

type TableIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (TableIamBindingConditionArgs) ElementType

func (TableIamBindingConditionArgs) ToTableIamBindingConditionOutput

func (i TableIamBindingConditionArgs) ToTableIamBindingConditionOutput() TableIamBindingConditionOutput

func (TableIamBindingConditionArgs) ToTableIamBindingConditionOutputWithContext

func (i TableIamBindingConditionArgs) ToTableIamBindingConditionOutputWithContext(ctx context.Context) TableIamBindingConditionOutput

func (TableIamBindingConditionArgs) ToTableIamBindingConditionPtrOutput

func (i TableIamBindingConditionArgs) ToTableIamBindingConditionPtrOutput() TableIamBindingConditionPtrOutput

func (TableIamBindingConditionArgs) ToTableIamBindingConditionPtrOutputWithContext

func (i TableIamBindingConditionArgs) ToTableIamBindingConditionPtrOutputWithContext(ctx context.Context) TableIamBindingConditionPtrOutput

type TableIamBindingConditionInput

type TableIamBindingConditionInput interface {
	pulumi.Input

	ToTableIamBindingConditionOutput() TableIamBindingConditionOutput
	ToTableIamBindingConditionOutputWithContext(context.Context) TableIamBindingConditionOutput
}

TableIamBindingConditionInput is an input type that accepts TableIamBindingConditionArgs and TableIamBindingConditionOutput values. You can construct a concrete instance of `TableIamBindingConditionInput` via:

TableIamBindingConditionArgs{...}

type TableIamBindingConditionOutput

type TableIamBindingConditionOutput struct{ *pulumi.OutputState }

func (TableIamBindingConditionOutput) Description

func (TableIamBindingConditionOutput) ElementType

func (TableIamBindingConditionOutput) Expression

func (TableIamBindingConditionOutput) Title

func (TableIamBindingConditionOutput) ToTableIamBindingConditionOutput

func (o TableIamBindingConditionOutput) ToTableIamBindingConditionOutput() TableIamBindingConditionOutput

func (TableIamBindingConditionOutput) ToTableIamBindingConditionOutputWithContext

func (o TableIamBindingConditionOutput) ToTableIamBindingConditionOutputWithContext(ctx context.Context) TableIamBindingConditionOutput

func (TableIamBindingConditionOutput) ToTableIamBindingConditionPtrOutput

func (o TableIamBindingConditionOutput) ToTableIamBindingConditionPtrOutput() TableIamBindingConditionPtrOutput

func (TableIamBindingConditionOutput) ToTableIamBindingConditionPtrOutputWithContext

func (o TableIamBindingConditionOutput) ToTableIamBindingConditionPtrOutputWithContext(ctx context.Context) TableIamBindingConditionPtrOutput

type TableIamBindingConditionPtrInput

type TableIamBindingConditionPtrInput interface {
	pulumi.Input

	ToTableIamBindingConditionPtrOutput() TableIamBindingConditionPtrOutput
	ToTableIamBindingConditionPtrOutputWithContext(context.Context) TableIamBindingConditionPtrOutput
}

TableIamBindingConditionPtrInput is an input type that accepts TableIamBindingConditionArgs, TableIamBindingConditionPtr and TableIamBindingConditionPtrOutput values. You can construct a concrete instance of `TableIamBindingConditionPtrInput` via:

        TableIamBindingConditionArgs{...}

or:

        nil

type TableIamBindingConditionPtrOutput

type TableIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (TableIamBindingConditionPtrOutput) Description

func (TableIamBindingConditionPtrOutput) Elem

func (TableIamBindingConditionPtrOutput) ElementType

func (TableIamBindingConditionPtrOutput) Expression

func (TableIamBindingConditionPtrOutput) Title

func (TableIamBindingConditionPtrOutput) ToTableIamBindingConditionPtrOutput

func (o TableIamBindingConditionPtrOutput) ToTableIamBindingConditionPtrOutput() TableIamBindingConditionPtrOutput

func (TableIamBindingConditionPtrOutput) ToTableIamBindingConditionPtrOutputWithContext

func (o TableIamBindingConditionPtrOutput) ToTableIamBindingConditionPtrOutputWithContext(ctx context.Context) TableIamBindingConditionPtrOutput

type TableIamBindingInput added in v4.4.0

type TableIamBindingInput interface {
	pulumi.Input

	ToTableIamBindingOutput() TableIamBindingOutput
	ToTableIamBindingOutputWithContext(ctx context.Context) TableIamBindingOutput
}

type TableIamBindingMap added in v4.11.1

type TableIamBindingMap map[string]TableIamBindingInput

func (TableIamBindingMap) ElementType added in v4.11.1

func (TableIamBindingMap) ElementType() reflect.Type

func (TableIamBindingMap) ToTableIamBindingMapOutput added in v4.11.1

func (i TableIamBindingMap) ToTableIamBindingMapOutput() TableIamBindingMapOutput

func (TableIamBindingMap) ToTableIamBindingMapOutputWithContext added in v4.11.1

func (i TableIamBindingMap) ToTableIamBindingMapOutputWithContext(ctx context.Context) TableIamBindingMapOutput

type TableIamBindingMapInput added in v4.11.1

type TableIamBindingMapInput interface {
	pulumi.Input

	ToTableIamBindingMapOutput() TableIamBindingMapOutput
	ToTableIamBindingMapOutputWithContext(context.Context) TableIamBindingMapOutput
}

TableIamBindingMapInput is an input type that accepts TableIamBindingMap and TableIamBindingMapOutput values. You can construct a concrete instance of `TableIamBindingMapInput` via:

TableIamBindingMap{ "key": TableIamBindingArgs{...} }

type TableIamBindingMapOutput added in v4.11.1

type TableIamBindingMapOutput struct{ *pulumi.OutputState }

func (TableIamBindingMapOutput) ElementType added in v4.11.1

func (TableIamBindingMapOutput) ElementType() reflect.Type

func (TableIamBindingMapOutput) MapIndex added in v4.11.1

func (TableIamBindingMapOutput) ToTableIamBindingMapOutput added in v4.11.1

func (o TableIamBindingMapOutput) ToTableIamBindingMapOutput() TableIamBindingMapOutput

func (TableIamBindingMapOutput) ToTableIamBindingMapOutputWithContext added in v4.11.1

func (o TableIamBindingMapOutput) ToTableIamBindingMapOutputWithContext(ctx context.Context) TableIamBindingMapOutput

type TableIamBindingOutput added in v4.4.0

type TableIamBindingOutput struct {
	*pulumi.OutputState
}

func (TableIamBindingOutput) ElementType added in v4.4.0

func (TableIamBindingOutput) ElementType() reflect.Type

func (TableIamBindingOutput) ToTableIamBindingOutput added in v4.4.0

func (o TableIamBindingOutput) ToTableIamBindingOutput() TableIamBindingOutput

func (TableIamBindingOutput) ToTableIamBindingOutputWithContext added in v4.4.0

func (o TableIamBindingOutput) ToTableIamBindingOutputWithContext(ctx context.Context) TableIamBindingOutput

func (TableIamBindingOutput) ToTableIamBindingPtrOutput added in v4.11.1

func (o TableIamBindingOutput) ToTableIamBindingPtrOutput() TableIamBindingPtrOutput

func (TableIamBindingOutput) ToTableIamBindingPtrOutputWithContext added in v4.11.1

func (o TableIamBindingOutput) ToTableIamBindingPtrOutputWithContext(ctx context.Context) TableIamBindingPtrOutput

type TableIamBindingPtrInput added in v4.11.1

type TableIamBindingPtrInput interface {
	pulumi.Input

	ToTableIamBindingPtrOutput() TableIamBindingPtrOutput
	ToTableIamBindingPtrOutputWithContext(ctx context.Context) TableIamBindingPtrOutput
}

type TableIamBindingPtrOutput added in v4.11.1

type TableIamBindingPtrOutput struct {
	*pulumi.OutputState
}

func (TableIamBindingPtrOutput) ElementType added in v4.11.1

func (TableIamBindingPtrOutput) ElementType() reflect.Type

func (TableIamBindingPtrOutput) ToTableIamBindingPtrOutput added in v4.11.1

func (o TableIamBindingPtrOutput) ToTableIamBindingPtrOutput() TableIamBindingPtrOutput

func (TableIamBindingPtrOutput) ToTableIamBindingPtrOutputWithContext added in v4.11.1

func (o TableIamBindingPtrOutput) ToTableIamBindingPtrOutputWithContext(ctx context.Context) TableIamBindingPtrOutput

type TableIamBindingState

type TableIamBindingState struct {
	Condition TableIamBindingConditionPtrInput
	// (Computed) The etag of the tables's IAM policy.
	Etag pulumi.StringPtrInput
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringPtrInput
	Members  pulumi.StringArrayInput
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigtable.TableIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringPtrInput
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringPtrInput
}

func (TableIamBindingState) ElementType

func (TableIamBindingState) ElementType() reflect.Type

type TableIamMember

type TableIamMember struct {
	pulumi.CustomResourceState

	Condition TableIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the tables's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringOutput `pulumi:"instance"`
	Member   pulumi.StringOutput `pulumi:"member"`
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `bigtable.TableIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringOutput `pulumi:"role"`
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringOutput `pulumi:"table"`
}

Three different resources help you manage IAM policies on bigtable tables. Each of these resources serves a different use case:

* `bigtable.TableIamPolicy`: Authoritative. Sets the IAM policy for the tables and replaces any existing policy already attached. * `bigtable.TableIamBinding`: 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 table are preserved. * `bigtable.TableIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the table are preserved.

> **Note:** `bigtable.TableIamPolicy` **cannot** be used in conjunction with `bigtable.TableIamBinding` and `bigtable.TableIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the table as `bigtable.TableIamPolicy` replaces the entire policy.

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

## google\_bigtable\_instance\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"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/bigtable.user",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = bigtable.NewTableIamPolicy(ctx, "editor", &bigtable.TableIamPolicyArgs{
			Project:    pulumi.String("your-project"),
			Instance:   pulumi.String("your-bigtable-instance"),
			Table:      pulumi.String("your-bigtable-table"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewTableIamBinding(ctx, "editor", &bigtable.TableIamBindingArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role:  pulumi.String("roles/bigtable.user"),
			Table: pulumi.String("your-bigtable-table"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewTableIamMember(ctx, "editor", &bigtable.TableIamMemberArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Member:   pulumi.String("user:jane@example.com"),
			Role:     pulumi.String("roles/bigtable.user"),
			Table:    pulumi.String("your-bigtable-table"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Instance IAM resources can be imported using the project, table name, role and/or member.

```sh

$ pulumi import gcp:bigtable/tableIamMember:TableIamMember editor "projects/{project}/tables/{table}"

```

```sh

$ pulumi import gcp:bigtable/tableIamMember:TableIamMember editor "projects/{project}/tables/{table} roles/editor"

```

```sh

$ pulumi import gcp:bigtable/tableIamMember:TableIamMember editor "projects/{project}/tables/{table} roles/editor user:jane@example.com"

```

-> **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 GetTableIamMember

func GetTableIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TableIamMemberState, opts ...pulumi.ResourceOption) (*TableIamMember, error)

GetTableIamMember gets an existing TableIamMember 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 NewTableIamMember

func NewTableIamMember(ctx *pulumi.Context,
	name string, args *TableIamMemberArgs, opts ...pulumi.ResourceOption) (*TableIamMember, error)

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

func (*TableIamMember) ElementType added in v4.4.0

func (*TableIamMember) ElementType() reflect.Type

func (*TableIamMember) ToTableIamMemberOutput added in v4.4.0

func (i *TableIamMember) ToTableIamMemberOutput() TableIamMemberOutput

func (*TableIamMember) ToTableIamMemberOutputWithContext added in v4.4.0

func (i *TableIamMember) ToTableIamMemberOutputWithContext(ctx context.Context) TableIamMemberOutput

func (*TableIamMember) ToTableIamMemberPtrOutput added in v4.11.1

func (i *TableIamMember) ToTableIamMemberPtrOutput() TableIamMemberPtrOutput

func (*TableIamMember) ToTableIamMemberPtrOutputWithContext added in v4.11.1

func (i *TableIamMember) ToTableIamMemberPtrOutputWithContext(ctx context.Context) TableIamMemberPtrOutput

type TableIamMemberArgs

type TableIamMemberArgs struct {
	Condition TableIamMemberConditionPtrInput
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringInput
	Member   pulumi.StringInput
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigtable.TableIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringInput
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringInput
}

The set of arguments for constructing a TableIamMember resource.

func (TableIamMemberArgs) ElementType

func (TableIamMemberArgs) ElementType() reflect.Type

type TableIamMemberArray added in v4.11.1

type TableIamMemberArray []TableIamMemberInput

func (TableIamMemberArray) ElementType added in v4.11.1

func (TableIamMemberArray) ElementType() reflect.Type

func (TableIamMemberArray) ToTableIamMemberArrayOutput added in v4.11.1

func (i TableIamMemberArray) ToTableIamMemberArrayOutput() TableIamMemberArrayOutput

func (TableIamMemberArray) ToTableIamMemberArrayOutputWithContext added in v4.11.1

func (i TableIamMemberArray) ToTableIamMemberArrayOutputWithContext(ctx context.Context) TableIamMemberArrayOutput

type TableIamMemberArrayInput added in v4.11.1

type TableIamMemberArrayInput interface {
	pulumi.Input

	ToTableIamMemberArrayOutput() TableIamMemberArrayOutput
	ToTableIamMemberArrayOutputWithContext(context.Context) TableIamMemberArrayOutput
}

TableIamMemberArrayInput is an input type that accepts TableIamMemberArray and TableIamMemberArrayOutput values. You can construct a concrete instance of `TableIamMemberArrayInput` via:

TableIamMemberArray{ TableIamMemberArgs{...} }

type TableIamMemberArrayOutput added in v4.11.1

type TableIamMemberArrayOutput struct{ *pulumi.OutputState }

func (TableIamMemberArrayOutput) ElementType added in v4.11.1

func (TableIamMemberArrayOutput) ElementType() reflect.Type

func (TableIamMemberArrayOutput) Index added in v4.11.1

func (TableIamMemberArrayOutput) ToTableIamMemberArrayOutput added in v4.11.1

func (o TableIamMemberArrayOutput) ToTableIamMemberArrayOutput() TableIamMemberArrayOutput

func (TableIamMemberArrayOutput) ToTableIamMemberArrayOutputWithContext added in v4.11.1

func (o TableIamMemberArrayOutput) ToTableIamMemberArrayOutputWithContext(ctx context.Context) TableIamMemberArrayOutput

type TableIamMemberCondition

type TableIamMemberCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type TableIamMemberConditionArgs

type TableIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (TableIamMemberConditionArgs) ElementType

func (TableIamMemberConditionArgs) ToTableIamMemberConditionOutput

func (i TableIamMemberConditionArgs) ToTableIamMemberConditionOutput() TableIamMemberConditionOutput

func (TableIamMemberConditionArgs) ToTableIamMemberConditionOutputWithContext

func (i TableIamMemberConditionArgs) ToTableIamMemberConditionOutputWithContext(ctx context.Context) TableIamMemberConditionOutput

func (TableIamMemberConditionArgs) ToTableIamMemberConditionPtrOutput

func (i TableIamMemberConditionArgs) ToTableIamMemberConditionPtrOutput() TableIamMemberConditionPtrOutput

func (TableIamMemberConditionArgs) ToTableIamMemberConditionPtrOutputWithContext

func (i TableIamMemberConditionArgs) ToTableIamMemberConditionPtrOutputWithContext(ctx context.Context) TableIamMemberConditionPtrOutput

type TableIamMemberConditionInput

type TableIamMemberConditionInput interface {
	pulumi.Input

	ToTableIamMemberConditionOutput() TableIamMemberConditionOutput
	ToTableIamMemberConditionOutputWithContext(context.Context) TableIamMemberConditionOutput
}

TableIamMemberConditionInput is an input type that accepts TableIamMemberConditionArgs and TableIamMemberConditionOutput values. You can construct a concrete instance of `TableIamMemberConditionInput` via:

TableIamMemberConditionArgs{...}

type TableIamMemberConditionOutput

type TableIamMemberConditionOutput struct{ *pulumi.OutputState }

func (TableIamMemberConditionOutput) Description

func (TableIamMemberConditionOutput) ElementType

func (TableIamMemberConditionOutput) Expression

func (TableIamMemberConditionOutput) Title

func (TableIamMemberConditionOutput) ToTableIamMemberConditionOutput

func (o TableIamMemberConditionOutput) ToTableIamMemberConditionOutput() TableIamMemberConditionOutput

func (TableIamMemberConditionOutput) ToTableIamMemberConditionOutputWithContext

func (o TableIamMemberConditionOutput) ToTableIamMemberConditionOutputWithContext(ctx context.Context) TableIamMemberConditionOutput

func (TableIamMemberConditionOutput) ToTableIamMemberConditionPtrOutput

func (o TableIamMemberConditionOutput) ToTableIamMemberConditionPtrOutput() TableIamMemberConditionPtrOutput

func (TableIamMemberConditionOutput) ToTableIamMemberConditionPtrOutputWithContext

func (o TableIamMemberConditionOutput) ToTableIamMemberConditionPtrOutputWithContext(ctx context.Context) TableIamMemberConditionPtrOutput

type TableIamMemberConditionPtrInput

type TableIamMemberConditionPtrInput interface {
	pulumi.Input

	ToTableIamMemberConditionPtrOutput() TableIamMemberConditionPtrOutput
	ToTableIamMemberConditionPtrOutputWithContext(context.Context) TableIamMemberConditionPtrOutput
}

TableIamMemberConditionPtrInput is an input type that accepts TableIamMemberConditionArgs, TableIamMemberConditionPtr and TableIamMemberConditionPtrOutput values. You can construct a concrete instance of `TableIamMemberConditionPtrInput` via:

        TableIamMemberConditionArgs{...}

or:

        nil

type TableIamMemberConditionPtrOutput

type TableIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (TableIamMemberConditionPtrOutput) Description

func (TableIamMemberConditionPtrOutput) Elem

func (TableIamMemberConditionPtrOutput) ElementType

func (TableIamMemberConditionPtrOutput) Expression

func (TableIamMemberConditionPtrOutput) Title

func (TableIamMemberConditionPtrOutput) ToTableIamMemberConditionPtrOutput

func (o TableIamMemberConditionPtrOutput) ToTableIamMemberConditionPtrOutput() TableIamMemberConditionPtrOutput

func (TableIamMemberConditionPtrOutput) ToTableIamMemberConditionPtrOutputWithContext

func (o TableIamMemberConditionPtrOutput) ToTableIamMemberConditionPtrOutputWithContext(ctx context.Context) TableIamMemberConditionPtrOutput

type TableIamMemberInput added in v4.4.0

type TableIamMemberInput interface {
	pulumi.Input

	ToTableIamMemberOutput() TableIamMemberOutput
	ToTableIamMemberOutputWithContext(ctx context.Context) TableIamMemberOutput
}

type TableIamMemberMap added in v4.11.1

type TableIamMemberMap map[string]TableIamMemberInput

func (TableIamMemberMap) ElementType added in v4.11.1

func (TableIamMemberMap) ElementType() reflect.Type

func (TableIamMemberMap) ToTableIamMemberMapOutput added in v4.11.1

func (i TableIamMemberMap) ToTableIamMemberMapOutput() TableIamMemberMapOutput

func (TableIamMemberMap) ToTableIamMemberMapOutputWithContext added in v4.11.1

func (i TableIamMemberMap) ToTableIamMemberMapOutputWithContext(ctx context.Context) TableIamMemberMapOutput

type TableIamMemberMapInput added in v4.11.1

type TableIamMemberMapInput interface {
	pulumi.Input

	ToTableIamMemberMapOutput() TableIamMemberMapOutput
	ToTableIamMemberMapOutputWithContext(context.Context) TableIamMemberMapOutput
}

TableIamMemberMapInput is an input type that accepts TableIamMemberMap and TableIamMemberMapOutput values. You can construct a concrete instance of `TableIamMemberMapInput` via:

TableIamMemberMap{ "key": TableIamMemberArgs{...} }

type TableIamMemberMapOutput added in v4.11.1

type TableIamMemberMapOutput struct{ *pulumi.OutputState }

func (TableIamMemberMapOutput) ElementType added in v4.11.1

func (TableIamMemberMapOutput) ElementType() reflect.Type

func (TableIamMemberMapOutput) MapIndex added in v4.11.1

func (TableIamMemberMapOutput) ToTableIamMemberMapOutput added in v4.11.1

func (o TableIamMemberMapOutput) ToTableIamMemberMapOutput() TableIamMemberMapOutput

func (TableIamMemberMapOutput) ToTableIamMemberMapOutputWithContext added in v4.11.1

func (o TableIamMemberMapOutput) ToTableIamMemberMapOutputWithContext(ctx context.Context) TableIamMemberMapOutput

type TableIamMemberOutput added in v4.4.0

type TableIamMemberOutput struct {
	*pulumi.OutputState
}

func (TableIamMemberOutput) ElementType added in v4.4.0

func (TableIamMemberOutput) ElementType() reflect.Type

func (TableIamMemberOutput) ToTableIamMemberOutput added in v4.4.0

func (o TableIamMemberOutput) ToTableIamMemberOutput() TableIamMemberOutput

func (TableIamMemberOutput) ToTableIamMemberOutputWithContext added in v4.4.0

func (o TableIamMemberOutput) ToTableIamMemberOutputWithContext(ctx context.Context) TableIamMemberOutput

func (TableIamMemberOutput) ToTableIamMemberPtrOutput added in v4.11.1

func (o TableIamMemberOutput) ToTableIamMemberPtrOutput() TableIamMemberPtrOutput

func (TableIamMemberOutput) ToTableIamMemberPtrOutputWithContext added in v4.11.1

func (o TableIamMemberOutput) ToTableIamMemberPtrOutputWithContext(ctx context.Context) TableIamMemberPtrOutput

type TableIamMemberPtrInput added in v4.11.1

type TableIamMemberPtrInput interface {
	pulumi.Input

	ToTableIamMemberPtrOutput() TableIamMemberPtrOutput
	ToTableIamMemberPtrOutputWithContext(ctx context.Context) TableIamMemberPtrOutput
}

type TableIamMemberPtrOutput added in v4.11.1

type TableIamMemberPtrOutput struct {
	*pulumi.OutputState
}

func (TableIamMemberPtrOutput) ElementType added in v4.11.1

func (TableIamMemberPtrOutput) ElementType() reflect.Type

func (TableIamMemberPtrOutput) ToTableIamMemberPtrOutput added in v4.11.1

func (o TableIamMemberPtrOutput) ToTableIamMemberPtrOutput() TableIamMemberPtrOutput

func (TableIamMemberPtrOutput) ToTableIamMemberPtrOutputWithContext added in v4.11.1

func (o TableIamMemberPtrOutput) ToTableIamMemberPtrOutputWithContext(ctx context.Context) TableIamMemberPtrOutput

type TableIamMemberState

type TableIamMemberState struct {
	Condition TableIamMemberConditionPtrInput
	// (Computed) The etag of the tables's IAM policy.
	Etag pulumi.StringPtrInput
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringPtrInput
	Member   pulumi.StringPtrInput
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `bigtable.TableIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`. Read more about roles [here](https://cloud.google.com/bigtable/docs/access-control#roles).
	Role pulumi.StringPtrInput
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringPtrInput
}

func (TableIamMemberState) ElementType

func (TableIamMemberState) ElementType() reflect.Type

type TableIamPolicy

type TableIamPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the tables's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringOutput `pulumi:"instance"`
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringOutput `pulumi:"project"`
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringOutput `pulumi:"table"`
}

Three different resources help you manage IAM policies on bigtable tables. Each of these resources serves a different use case:

* `bigtable.TableIamPolicy`: Authoritative. Sets the IAM policy for the tables and replaces any existing policy already attached. * `bigtable.TableIamBinding`: 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 table are preserved. * `bigtable.TableIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the table are preserved.

> **Note:** `bigtable.TableIamPolicy` **cannot** be used in conjunction with `bigtable.TableIamBinding` and `bigtable.TableIamMember` or they will fight over what your policy should be. In addition, be careful not to accidentally unset ownership of the table as `bigtable.TableIamPolicy` replaces the entire policy.

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

## google\_bigtable\_instance\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"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/bigtable.user",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = bigtable.NewTableIamPolicy(ctx, "editor", &bigtable.TableIamPolicyArgs{
			Project:    pulumi.String("your-project"),
			Instance:   pulumi.String("your-bigtable-instance"),
			Table:      pulumi.String("your-bigtable-table"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewTableIamBinding(ctx, "editor", &bigtable.TableIamBindingArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role:  pulumi.String("roles/bigtable.user"),
			Table: pulumi.String("your-bigtable-table"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_bigtable\_instance\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.NewTableIamMember(ctx, "editor", &bigtable.TableIamMemberArgs{
			Instance: pulumi.String("your-bigtable-instance"),
			Member:   pulumi.String("user:jane@example.com"),
			Role:     pulumi.String("roles/bigtable.user"),
			Table:    pulumi.String("your-bigtable-table"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Instance IAM resources can be imported using the project, table name, role and/or member.

```sh

$ pulumi import gcp:bigtable/tableIamPolicy:TableIamPolicy editor "projects/{project}/tables/{table}"

```

```sh

$ pulumi import gcp:bigtable/tableIamPolicy:TableIamPolicy editor "projects/{project}/tables/{table} roles/editor"

```

```sh

$ pulumi import gcp:bigtable/tableIamPolicy:TableIamPolicy editor "projects/{project}/tables/{table} roles/editor user:jane@example.com"

```

-> **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 GetTableIamPolicy

func GetTableIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TableIamPolicyState, opts ...pulumi.ResourceOption) (*TableIamPolicy, error)

GetTableIamPolicy gets an existing TableIamPolicy 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 NewTableIamPolicy

func NewTableIamPolicy(ctx *pulumi.Context,
	name string, args *TableIamPolicyArgs, opts ...pulumi.ResourceOption) (*TableIamPolicy, error)

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

func (*TableIamPolicy) ElementType added in v4.4.0

func (*TableIamPolicy) ElementType() reflect.Type

func (*TableIamPolicy) ToTableIamPolicyOutput added in v4.4.0

func (i *TableIamPolicy) ToTableIamPolicyOutput() TableIamPolicyOutput

func (*TableIamPolicy) ToTableIamPolicyOutputWithContext added in v4.4.0

func (i *TableIamPolicy) ToTableIamPolicyOutputWithContext(ctx context.Context) TableIamPolicyOutput

func (*TableIamPolicy) ToTableIamPolicyPtrOutput added in v4.11.1

func (i *TableIamPolicy) ToTableIamPolicyPtrOutput() TableIamPolicyPtrOutput

func (*TableIamPolicy) ToTableIamPolicyPtrOutputWithContext added in v4.11.1

func (i *TableIamPolicy) ToTableIamPolicyPtrOutputWithContext(ctx context.Context) TableIamPolicyPtrOutput

type TableIamPolicyArgs

type TableIamPolicyArgs struct {
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringInput
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringPtrInput
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringInput
}

The set of arguments for constructing a TableIamPolicy resource.

func (TableIamPolicyArgs) ElementType

func (TableIamPolicyArgs) ElementType() reflect.Type

type TableIamPolicyArray added in v4.11.1

type TableIamPolicyArray []TableIamPolicyInput

func (TableIamPolicyArray) ElementType added in v4.11.1

func (TableIamPolicyArray) ElementType() reflect.Type

func (TableIamPolicyArray) ToTableIamPolicyArrayOutput added in v4.11.1

func (i TableIamPolicyArray) ToTableIamPolicyArrayOutput() TableIamPolicyArrayOutput

func (TableIamPolicyArray) ToTableIamPolicyArrayOutputWithContext added in v4.11.1

func (i TableIamPolicyArray) ToTableIamPolicyArrayOutputWithContext(ctx context.Context) TableIamPolicyArrayOutput

type TableIamPolicyArrayInput added in v4.11.1

type TableIamPolicyArrayInput interface {
	pulumi.Input

	ToTableIamPolicyArrayOutput() TableIamPolicyArrayOutput
	ToTableIamPolicyArrayOutputWithContext(context.Context) TableIamPolicyArrayOutput
}

TableIamPolicyArrayInput is an input type that accepts TableIamPolicyArray and TableIamPolicyArrayOutput values. You can construct a concrete instance of `TableIamPolicyArrayInput` via:

TableIamPolicyArray{ TableIamPolicyArgs{...} }

type TableIamPolicyArrayOutput added in v4.11.1

type TableIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (TableIamPolicyArrayOutput) ElementType added in v4.11.1

func (TableIamPolicyArrayOutput) ElementType() reflect.Type

func (TableIamPolicyArrayOutput) Index added in v4.11.1

func (TableIamPolicyArrayOutput) ToTableIamPolicyArrayOutput added in v4.11.1

func (o TableIamPolicyArrayOutput) ToTableIamPolicyArrayOutput() TableIamPolicyArrayOutput

func (TableIamPolicyArrayOutput) ToTableIamPolicyArrayOutputWithContext added in v4.11.1

func (o TableIamPolicyArrayOutput) ToTableIamPolicyArrayOutputWithContext(ctx context.Context) TableIamPolicyArrayOutput

type TableIamPolicyInput added in v4.4.0

type TableIamPolicyInput interface {
	pulumi.Input

	ToTableIamPolicyOutput() TableIamPolicyOutput
	ToTableIamPolicyOutputWithContext(ctx context.Context) TableIamPolicyOutput
}

type TableIamPolicyMap added in v4.11.1

type TableIamPolicyMap map[string]TableIamPolicyInput

func (TableIamPolicyMap) ElementType added in v4.11.1

func (TableIamPolicyMap) ElementType() reflect.Type

func (TableIamPolicyMap) ToTableIamPolicyMapOutput added in v4.11.1

func (i TableIamPolicyMap) ToTableIamPolicyMapOutput() TableIamPolicyMapOutput

func (TableIamPolicyMap) ToTableIamPolicyMapOutputWithContext added in v4.11.1

func (i TableIamPolicyMap) ToTableIamPolicyMapOutputWithContext(ctx context.Context) TableIamPolicyMapOutput

type TableIamPolicyMapInput added in v4.11.1

type TableIamPolicyMapInput interface {
	pulumi.Input

	ToTableIamPolicyMapOutput() TableIamPolicyMapOutput
	ToTableIamPolicyMapOutputWithContext(context.Context) TableIamPolicyMapOutput
}

TableIamPolicyMapInput is an input type that accepts TableIamPolicyMap and TableIamPolicyMapOutput values. You can construct a concrete instance of `TableIamPolicyMapInput` via:

TableIamPolicyMap{ "key": TableIamPolicyArgs{...} }

type TableIamPolicyMapOutput added in v4.11.1

type TableIamPolicyMapOutput struct{ *pulumi.OutputState }

func (TableIamPolicyMapOutput) ElementType added in v4.11.1

func (TableIamPolicyMapOutput) ElementType() reflect.Type

func (TableIamPolicyMapOutput) MapIndex added in v4.11.1

func (TableIamPolicyMapOutput) ToTableIamPolicyMapOutput added in v4.11.1

func (o TableIamPolicyMapOutput) ToTableIamPolicyMapOutput() TableIamPolicyMapOutput

func (TableIamPolicyMapOutput) ToTableIamPolicyMapOutputWithContext added in v4.11.1

func (o TableIamPolicyMapOutput) ToTableIamPolicyMapOutputWithContext(ctx context.Context) TableIamPolicyMapOutput

type TableIamPolicyOutput added in v4.4.0

type TableIamPolicyOutput struct {
	*pulumi.OutputState
}

func (TableIamPolicyOutput) ElementType added in v4.4.0

func (TableIamPolicyOutput) ElementType() reflect.Type

func (TableIamPolicyOutput) ToTableIamPolicyOutput added in v4.4.0

func (o TableIamPolicyOutput) ToTableIamPolicyOutput() TableIamPolicyOutput

func (TableIamPolicyOutput) ToTableIamPolicyOutputWithContext added in v4.4.0

func (o TableIamPolicyOutput) ToTableIamPolicyOutputWithContext(ctx context.Context) TableIamPolicyOutput

func (TableIamPolicyOutput) ToTableIamPolicyPtrOutput added in v4.11.1

func (o TableIamPolicyOutput) ToTableIamPolicyPtrOutput() TableIamPolicyPtrOutput

func (TableIamPolicyOutput) ToTableIamPolicyPtrOutputWithContext added in v4.11.1

func (o TableIamPolicyOutput) ToTableIamPolicyPtrOutputWithContext(ctx context.Context) TableIamPolicyPtrOutput

type TableIamPolicyPtrInput added in v4.11.1

type TableIamPolicyPtrInput interface {
	pulumi.Input

	ToTableIamPolicyPtrOutput() TableIamPolicyPtrOutput
	ToTableIamPolicyPtrOutputWithContext(ctx context.Context) TableIamPolicyPtrOutput
}

type TableIamPolicyPtrOutput added in v4.11.1

type TableIamPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (TableIamPolicyPtrOutput) ElementType added in v4.11.1

func (TableIamPolicyPtrOutput) ElementType() reflect.Type

func (TableIamPolicyPtrOutput) ToTableIamPolicyPtrOutput added in v4.11.1

func (o TableIamPolicyPtrOutput) ToTableIamPolicyPtrOutput() TableIamPolicyPtrOutput

func (TableIamPolicyPtrOutput) ToTableIamPolicyPtrOutputWithContext added in v4.11.1

func (o TableIamPolicyPtrOutput) ToTableIamPolicyPtrOutputWithContext(ctx context.Context) TableIamPolicyPtrOutput

type TableIamPolicyState

type TableIamPolicyState struct {
	// (Computed) The etag of the tables's IAM policy.
	Etag pulumi.StringPtrInput
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringPtrInput
	// The policy data generated by a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The project in which the table belongs. If it
	// is not provided, this provider will use the provider default.
	Project pulumi.StringPtrInput
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringPtrInput
}

func (TableIamPolicyState) ElementType

func (TableIamPolicyState) ElementType() reflect.Type

type TableInput added in v4.4.0

type TableInput interface {
	pulumi.Input

	ToTableOutput() TableOutput
	ToTableOutputWithContext(ctx context.Context) TableOutput
}

type TableMap added in v4.11.1

type TableMap map[string]TableInput

func (TableMap) ElementType added in v4.11.1

func (TableMap) ElementType() reflect.Type

func (TableMap) ToTableMapOutput added in v4.11.1

func (i TableMap) ToTableMapOutput() TableMapOutput

func (TableMap) ToTableMapOutputWithContext added in v4.11.1

func (i TableMap) ToTableMapOutputWithContext(ctx context.Context) TableMapOutput

type TableMapInput added in v4.11.1

type TableMapInput interface {
	pulumi.Input

	ToTableMapOutput() TableMapOutput
	ToTableMapOutputWithContext(context.Context) TableMapOutput
}

TableMapInput is an input type that accepts TableMap and TableMapOutput values. You can construct a concrete instance of `TableMapInput` via:

TableMap{ "key": TableArgs{...} }

type TableMapOutput added in v4.11.1

type TableMapOutput struct{ *pulumi.OutputState }

func (TableMapOutput) ElementType added in v4.11.1

func (TableMapOutput) ElementType() reflect.Type

func (TableMapOutput) MapIndex added in v4.11.1

func (TableMapOutput) ToTableMapOutput added in v4.11.1

func (o TableMapOutput) ToTableMapOutput() TableMapOutput

func (TableMapOutput) ToTableMapOutputWithContext added in v4.11.1

func (o TableMapOutput) ToTableMapOutputWithContext(ctx context.Context) TableMapOutput

type TableOutput added in v4.4.0

type TableOutput struct {
	*pulumi.OutputState
}

func (TableOutput) ElementType added in v4.4.0

func (TableOutput) ElementType() reflect.Type

func (TableOutput) ToTableOutput added in v4.4.0

func (o TableOutput) ToTableOutput() TableOutput

func (TableOutput) ToTableOutputWithContext added in v4.4.0

func (o TableOutput) ToTableOutputWithContext(ctx context.Context) TableOutput

func (TableOutput) ToTablePtrOutput added in v4.11.1

func (o TableOutput) ToTablePtrOutput() TablePtrOutput

func (TableOutput) ToTablePtrOutputWithContext added in v4.11.1

func (o TableOutput) ToTablePtrOutputWithContext(ctx context.Context) TablePtrOutput

type TablePtrInput added in v4.11.1

type TablePtrInput interface {
	pulumi.Input

	ToTablePtrOutput() TablePtrOutput
	ToTablePtrOutputWithContext(ctx context.Context) TablePtrOutput
}

type TablePtrOutput added in v4.11.1

type TablePtrOutput struct {
	*pulumi.OutputState
}

func (TablePtrOutput) ElementType added in v4.11.1

func (TablePtrOutput) ElementType() reflect.Type

func (TablePtrOutput) ToTablePtrOutput added in v4.11.1

func (o TablePtrOutput) ToTablePtrOutput() TablePtrOutput

func (TablePtrOutput) ToTablePtrOutputWithContext added in v4.11.1

func (o TablePtrOutput) ToTablePtrOutputWithContext(ctx context.Context) TablePtrOutput

type TableState

type TableState struct {
	// A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below.
	ColumnFamilies TableColumnFamilyArrayInput
	// The name of the Bigtable instance.
	InstanceName pulumi.StringPtrInput
	// The name of the table.
	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
	// A list of predefined keys to split the table on.
	// !> **Warning:** Modifying the `splitKeys` of an existing table will cause the provider
	// to delete/recreate the entire `bigtable.Table` resource.
	SplitKeys pulumi.StringArrayInput
}

func (TableState) ElementType

func (TableState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL