bigtable

package
v6.67.1 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2023 License: Apache-2.0 Imports: 8 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 deletion policy for the GC policy.
	// Setting ABANDON allows the resource to be abandoned rather than deleted. This is useful for GC policy as it cannot be deleted in a replicated instance.
	//
	// Possible values are: `ABANDON`.
	//
	// ***
	DeletionPolicy pulumi.StringPtrOutput `pulumi:"deletionPolicy"`
	// Serialized JSON object to represent a more complex GC policy. Conflicts with `mode`, `maxAge` and `maxVersion`. Conflicts with `mode`, `maxAge` and `maxVersion`.
	GcRules pulumi.StringPtrOutput `pulumi:"gcRules"`
	// 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).

> **Warning**: We don't recommend having multiple GC policies for the same column family as it may result in unexpected behavior.

> **Note**: GC policies associated with a replicated table cannot be destroyed directly. Destroying a GC policy is translated into never perform garbage collection, this is considered relaxing from pure age-based or version-based GC policy, hence not allowed. The workaround is unreplicating the instance first by updating the instance to have one cluster.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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"),
			DeletionPolicy: pulumi.String("ABANDON"),
			GcRules: pulumi.String(`  {
    "rules": [
      {
        "max_age": "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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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"),
			DeletionPolicy: pulumi.String("ABANDON"),
			GcRules: pulumi.String(`  {
    "mode": "union",
    "rules": [
      {
        "max_age": "168h"
      },
      {
        "max_version": 10
      }
    ]
  }

`),

		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

An example of more complex GC policy: ```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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("cid"),
					Zone:      pulumi.String("us-central1-b"),
				},
			},
			InstanceType:       pulumi.String("DEVELOPMENT"),
			DeletionProtection: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		table, err := bigtable.NewTable(ctx, "table", &bigtable.TableArgs{
			InstanceName: instance.ID(),
			ColumnFamilies: bigtable.TableColumnFamilyArray{
				&bigtable.TableColumnFamilyArgs{
					Family: pulumi.String("cf1"),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = bigtable.NewGCPolicy(ctx, "policy", &bigtable.GCPolicyArgs{
			InstanceName:   instance.ID(),
			Table:          table.Name,
			ColumnFamily:   pulumi.String("cf1"),
			DeletionPolicy: pulumi.String("ABANDON"),
			GcRules: pulumi.String(`  {
    "mode": "union",
    "rules": [
      {
        "max_age": "10h"
      },
      {
        "mode": "intersection",
        "rules": [
          {
            "max_age": "2h"
          },
          {
            "max_version": 2
          }
        ]
      }
    ]
  }

`),

		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` This is equivalent to running the following `cbt` command: ```go package main

import (

"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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

func (*GCPolicy) ElementType() reflect.Type

func (*GCPolicy) ToGCPolicyOutput

func (i *GCPolicy) ToGCPolicyOutput() GCPolicyOutput

func (*GCPolicy) ToGCPolicyOutputWithContext

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

func (*GCPolicy) ToOutput added in v6.65.1

func (i *GCPolicy) ToOutput(ctx context.Context) pulumix.Output[*GCPolicy]

type GCPolicyArgs

type GCPolicyArgs struct {
	// The name of the column family.
	ColumnFamily pulumi.StringInput
	// The deletion policy for the GC policy.
	// Setting ABANDON allows the resource to be abandoned rather than deleted. This is useful for GC policy as it cannot be deleted in a replicated instance.
	//
	// Possible values are: `ABANDON`.
	//
	// ***
	DeletionPolicy pulumi.StringPtrInput
	// Serialized JSON object to represent a more complex GC policy. Conflicts with `mode`, `maxAge` and `maxVersion`. Conflicts with `mode`, `maxAge` and `maxVersion`.
	GcRules pulumi.StringPtrInput
	// 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

type GCPolicyArray []GCPolicyInput

func (GCPolicyArray) ElementType

func (GCPolicyArray) ElementType() reflect.Type

func (GCPolicyArray) ToGCPolicyArrayOutput

func (i GCPolicyArray) ToGCPolicyArrayOutput() GCPolicyArrayOutput

func (GCPolicyArray) ToGCPolicyArrayOutputWithContext

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

func (GCPolicyArray) ToOutput added in v6.65.1

func (i GCPolicyArray) ToOutput(ctx context.Context) pulumix.Output[[]*GCPolicy]

type GCPolicyArrayInput

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

type GCPolicyArrayOutput struct{ *pulumi.OutputState }

func (GCPolicyArrayOutput) ElementType

func (GCPolicyArrayOutput) ElementType() reflect.Type

func (GCPolicyArrayOutput) Index

func (GCPolicyArrayOutput) ToGCPolicyArrayOutput

func (o GCPolicyArrayOutput) ToGCPolicyArrayOutput() GCPolicyArrayOutput

func (GCPolicyArrayOutput) ToGCPolicyArrayOutputWithContext

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

func (GCPolicyArrayOutput) ToOutput added in v6.65.1

type GCPolicyInput

type GCPolicyInput interface {
	pulumi.Input

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

type GCPolicyMap

type GCPolicyMap map[string]GCPolicyInput

func (GCPolicyMap) ElementType

func (GCPolicyMap) ElementType() reflect.Type

func (GCPolicyMap) ToGCPolicyMapOutput

func (i GCPolicyMap) ToGCPolicyMapOutput() GCPolicyMapOutput

func (GCPolicyMap) ToGCPolicyMapOutputWithContext

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

func (GCPolicyMap) ToOutput added in v6.65.1

func (i GCPolicyMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*GCPolicy]

type GCPolicyMapInput

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

type GCPolicyMapOutput struct{ *pulumi.OutputState }

func (GCPolicyMapOutput) ElementType

func (GCPolicyMapOutput) ElementType() reflect.Type

func (GCPolicyMapOutput) MapIndex

func (GCPolicyMapOutput) ToGCPolicyMapOutput

func (o GCPolicyMapOutput) ToGCPolicyMapOutput() GCPolicyMapOutput

func (GCPolicyMapOutput) ToGCPolicyMapOutputWithContext

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

func (GCPolicyMapOutput) ToOutput added in v6.65.1

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

func (i GCPolicyMaxAgeArgs) ToGCPolicyMaxAgePtrOutput() GCPolicyMaxAgePtrOutput

func (GCPolicyMaxAgeArgs) ToGCPolicyMaxAgePtrOutputWithContext

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

func (GCPolicyMaxAgeArgs) ToOutput added in v6.65.1

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

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

func (o GCPolicyMaxAgeOutput) ToGCPolicyMaxAgePtrOutput() GCPolicyMaxAgePtrOutput

func (GCPolicyMaxAgeOutput) ToGCPolicyMaxAgePtrOutputWithContext

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

func (GCPolicyMaxAgeOutput) ToOutput added in v6.65.1

type GCPolicyMaxAgePtrInput

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

type GCPolicyMaxAgePtrOutput

type GCPolicyMaxAgePtrOutput struct{ *pulumi.OutputState }

func (GCPolicyMaxAgePtrOutput) Days deprecated

Number of days before applying GC policy.

Deprecated: Deprecated in favor of duration

func (GCPolicyMaxAgePtrOutput) Duration

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

***

func (GCPolicyMaxAgePtrOutput) Elem

func (GCPolicyMaxAgePtrOutput) ElementType

func (GCPolicyMaxAgePtrOutput) ElementType() reflect.Type

func (GCPolicyMaxAgePtrOutput) ToGCPolicyMaxAgePtrOutput

func (o GCPolicyMaxAgePtrOutput) ToGCPolicyMaxAgePtrOutput() GCPolicyMaxAgePtrOutput

func (GCPolicyMaxAgePtrOutput) ToGCPolicyMaxAgePtrOutputWithContext

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

func (GCPolicyMaxAgePtrOutput) ToOutput added in v6.65.1

type GCPolicyMaxVersion

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

type GCPolicyMaxVersionArgs

type GCPolicyMaxVersionArgs struct {
	// Number of version before applying the GC policy.
	//
	// ***
	// `gcRules` include 2 fields:
	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

func (GCPolicyMaxVersionArgs) ToOutput added in v6.65.1

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

func (GCPolicyMaxVersionArray) ToOutput added in v6.65.1

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

func (GCPolicyMaxVersionArrayOutput) ToOutput added in v6.65.1

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.

*** `gcRules` include 2 fields:

func (GCPolicyMaxVersionOutput) ToGCPolicyMaxVersionOutput

func (o GCPolicyMaxVersionOutput) ToGCPolicyMaxVersionOutput() GCPolicyMaxVersionOutput

func (GCPolicyMaxVersionOutput) ToGCPolicyMaxVersionOutputWithContext

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

func (GCPolicyMaxVersionOutput) ToOutput added in v6.65.1

type GCPolicyOutput

type GCPolicyOutput struct{ *pulumi.OutputState }

func (GCPolicyOutput) ColumnFamily added in v6.23.0

func (o GCPolicyOutput) ColumnFamily() pulumi.StringOutput

The name of the column family.

func (GCPolicyOutput) DeletionPolicy added in v6.45.0

func (o GCPolicyOutput) DeletionPolicy() pulumi.StringPtrOutput

The deletion policy for the GC policy. Setting ABANDON allows the resource to be abandoned rather than deleted. This is useful for GC policy as it cannot be deleted in a replicated instance.

Possible values are: `ABANDON`.

***

func (GCPolicyOutput) ElementType

func (GCPolicyOutput) ElementType() reflect.Type

func (GCPolicyOutput) GcRules added in v6.23.0

Serialized JSON object to represent a more complex GC policy. Conflicts with `mode`, `maxAge` and `maxVersion`. Conflicts with `mode`, `maxAge` and `maxVersion`.

func (GCPolicyOutput) InstanceName added in v6.23.0

func (o GCPolicyOutput) InstanceName() pulumi.StringOutput

The name of the Bigtable instance.

func (GCPolicyOutput) MaxAge added in v6.23.0

GC policy that applies to all cells older than the given age.

func (GCPolicyOutput) MaxVersions added in v6.23.0

GC policy that applies to all versions of a cell except for the most recent.

func (GCPolicyOutput) Mode added in v6.23.0

If multiple policies are set, you should choose between `UNION` OR `INTERSECTION`.

func (GCPolicyOutput) Project added in v6.23.0

func (o GCPolicyOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (GCPolicyOutput) Table added in v6.23.0

The name of the table.

func (GCPolicyOutput) ToGCPolicyOutput

func (o GCPolicyOutput) ToGCPolicyOutput() GCPolicyOutput

func (GCPolicyOutput) ToGCPolicyOutputWithContext

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

func (GCPolicyOutput) ToOutput added in v6.65.1

type GCPolicyState

type GCPolicyState struct {
	// The name of the column family.
	ColumnFamily pulumi.StringPtrInput
	// The deletion policy for the GC policy.
	// Setting ABANDON allows the resource to be abandoned rather than deleted. This is useful for GC policy as it cannot be deleted in a replicated instance.
	//
	// Possible values are: `ABANDON`.
	//
	// ***
	DeletionPolicy pulumi.StringPtrInput
	// Serialized JSON object to represent a more complex GC policy. Conflicts with `mode`, `maxAge` and `maxVersion`. Conflicts with `mode`, `maxAge` and `maxVersion`.
	GcRules 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 as many as possible within 8 cloud regions. Removing the field entirely from the config will cause the provider
	// to default to the backend value. 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. Must be 6-33 characters and must only contain hyphens, lowercase letters and numbers.
	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"`
}

## +---

subcategory: "Cloud Bigtable" description: |-

Creates a Google Bigtable instance.

---

bigtable.Instance

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 ### Simple Instance

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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
	})
}

``` ### Replicated Instance

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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-cluster1"),
					NumNodes:    pulumi.Int(1),
					StorageType: pulumi.String("HDD"),
					Zone:        pulumi.String("us-central1-c"),
				},
				&bigtable.InstanceClusterArgs{
					AutoscalingConfig: &bigtable.InstanceClusterAutoscalingConfigArgs{
						CpuTarget: pulumi.Int(50),
						MaxNodes:  pulumi.Int(3),
						MinNodes:  pulumi.Int(1),
					},
					ClusterId:   pulumi.String("tf-instance-cluster2"),
					StorageType: pulumi.String("HDD"),
					Zone:        pulumi.String("us-central1-b"),
				},
			},
			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

func (*Instance) ElementType() reflect.Type

func (*Instance) ToInstanceOutput

func (i *Instance) ToInstanceOutput() InstanceOutput

func (*Instance) ToInstanceOutputWithContext

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

func (*Instance) ToOutput added in v6.65.1

func (i *Instance) ToOutput(ctx context.Context) pulumix.Output[*Instance]

type InstanceArgs

type InstanceArgs struct {
	// A block of cluster configuration options. This can be specified at least once, and up
	// to as many as possible within 8 cloud regions. Removing the field entirely from the config will cause the provider
	// to default to the backend value. 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. Must be 6-33 characters and must only contain hyphens, lowercase letters and numbers.
	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

type InstanceArray []InstanceInput

func (InstanceArray) ElementType

func (InstanceArray) ElementType() reflect.Type

func (InstanceArray) ToInstanceArrayOutput

func (i InstanceArray) ToInstanceArrayOutput() InstanceArrayOutput

func (InstanceArray) ToInstanceArrayOutputWithContext

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

func (InstanceArray) ToOutput added in v6.65.1

func (i InstanceArray) ToOutput(ctx context.Context) pulumix.Output[[]*Instance]

type InstanceArrayInput

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

type InstanceArrayOutput struct{ *pulumi.OutputState }

func (InstanceArrayOutput) ElementType

func (InstanceArrayOutput) ElementType() reflect.Type

func (InstanceArrayOutput) Index

func (InstanceArrayOutput) ToInstanceArrayOutput

func (o InstanceArrayOutput) ToInstanceArrayOutput() InstanceArrayOutput

func (InstanceArrayOutput) ToInstanceArrayOutputWithContext

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

func (InstanceArrayOutput) ToOutput added in v6.65.1

type InstanceCluster

type InstanceCluster struct {
	// [Autoscaling](https://cloud.google.com/bigtable/docs/autoscaling#parameters) config for the cluster, contains the following arguments:
	AutoscalingConfig *InstanceClusterAutoscalingConfig `pulumi:"autoscalingConfig"`
	// The ID of the Cloud Bigtable cluster. Must be 6-30 characters and must only contain hyphens, lowercase letters and numbers.
	ClusterId string `pulumi:"clusterId"`
	// Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster.
	//
	// > **Note**: Removing the field entirely from the config will cause the provider to default to the backend value.
	//
	// !> **Warning**: Modifying this field will cause the provider to delete/recreate the entire resource.
	//
	// !> **Warning:** Modifying the `storageType`, `zone` or `kmsKeyName` of an existing cluster (by
	// `clusterId`) will cause the provider to delete/recreate the entire
	// `bigtable.Instance` resource. If these values are changing, use a new
	// `clusterId`.
	KmsKeyName *string `pulumi:"kmsKeyName"`
	// The number of nodes in the cluster.
	// If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.
	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 {
	// [Autoscaling](https://cloud.google.com/bigtable/docs/autoscaling#parameters) config for the cluster, contains the following arguments:
	AutoscalingConfig InstanceClusterAutoscalingConfigPtrInput `pulumi:"autoscalingConfig"`
	// The ID of the Cloud Bigtable cluster. Must be 6-30 characters and must only contain hyphens, lowercase letters and numbers.
	ClusterId pulumi.StringInput `pulumi:"clusterId"`
	// Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster.
	//
	// > **Note**: Removing the field entirely from the config will cause the provider to default to the backend value.
	//
	// !> **Warning**: Modifying this field will cause the provider to delete/recreate the entire resource.
	//
	// !> **Warning:** Modifying the `storageType`, `zone` or `kmsKeyName` of an existing cluster (by
	// `clusterId`) will cause the provider to delete/recreate the entire
	// `bigtable.Instance` resource. If these values are changing, use a new
	// `clusterId`.
	KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"`
	// The number of nodes in the cluster.
	// If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.
	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

func (InstanceClusterArgs) ToOutput added in v6.65.1

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

func (InstanceClusterArray) ToOutput added in v6.65.1

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

func (InstanceClusterArrayOutput) ToOutput added in v6.65.1

type InstanceClusterAutoscalingConfig added in v6.18.0

type InstanceClusterAutoscalingConfig struct {
	// The target CPU utilization for autoscaling, in percentage. Must be between 10 and 80.
	CpuTarget int `pulumi:"cpuTarget"`
	// The maximum number of nodes for autoscaling.
	MaxNodes int `pulumi:"maxNodes"`
	// The minimum number of nodes for autoscaling.
	MinNodes int `pulumi:"minNodes"`
	// The target storage utilization for autoscaling, in GB, for each node in a cluster. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB) for an HDD cluster. If not set, whatever is already set for the cluster will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters.
	//
	// !> **Warning**: Only one of `autoscalingConfig` or `numNodes` should be set for a cluster. If both are set, `numNodes` is ignored. If none is set, autoscaling will be disabled and sized to the current node count.
	StorageTarget *int `pulumi:"storageTarget"`
}

type InstanceClusterAutoscalingConfigArgs added in v6.18.0

type InstanceClusterAutoscalingConfigArgs struct {
	// The target CPU utilization for autoscaling, in percentage. Must be between 10 and 80.
	CpuTarget pulumi.IntInput `pulumi:"cpuTarget"`
	// The maximum number of nodes for autoscaling.
	MaxNodes pulumi.IntInput `pulumi:"maxNodes"`
	// The minimum number of nodes for autoscaling.
	MinNodes pulumi.IntInput `pulumi:"minNodes"`
	// The target storage utilization for autoscaling, in GB, for each node in a cluster. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB) for an HDD cluster. If not set, whatever is already set for the cluster will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters.
	//
	// !> **Warning**: Only one of `autoscalingConfig` or `numNodes` should be set for a cluster. If both are set, `numNodes` is ignored. If none is set, autoscaling will be disabled and sized to the current node count.
	StorageTarget pulumi.IntPtrInput `pulumi:"storageTarget"`
}

func (InstanceClusterAutoscalingConfigArgs) ElementType added in v6.18.0

func (InstanceClusterAutoscalingConfigArgs) ToInstanceClusterAutoscalingConfigOutput added in v6.18.0

func (i InstanceClusterAutoscalingConfigArgs) ToInstanceClusterAutoscalingConfigOutput() InstanceClusterAutoscalingConfigOutput

func (InstanceClusterAutoscalingConfigArgs) ToInstanceClusterAutoscalingConfigOutputWithContext added in v6.18.0

func (i InstanceClusterAutoscalingConfigArgs) ToInstanceClusterAutoscalingConfigOutputWithContext(ctx context.Context) InstanceClusterAutoscalingConfigOutput

func (InstanceClusterAutoscalingConfigArgs) ToInstanceClusterAutoscalingConfigPtrOutput added in v6.18.0

func (i InstanceClusterAutoscalingConfigArgs) ToInstanceClusterAutoscalingConfigPtrOutput() InstanceClusterAutoscalingConfigPtrOutput

func (InstanceClusterAutoscalingConfigArgs) ToInstanceClusterAutoscalingConfigPtrOutputWithContext added in v6.18.0

func (i InstanceClusterAutoscalingConfigArgs) ToInstanceClusterAutoscalingConfigPtrOutputWithContext(ctx context.Context) InstanceClusterAutoscalingConfigPtrOutput

func (InstanceClusterAutoscalingConfigArgs) ToOutput added in v6.65.1

type InstanceClusterAutoscalingConfigInput added in v6.18.0

type InstanceClusterAutoscalingConfigInput interface {
	pulumi.Input

	ToInstanceClusterAutoscalingConfigOutput() InstanceClusterAutoscalingConfigOutput
	ToInstanceClusterAutoscalingConfigOutputWithContext(context.Context) InstanceClusterAutoscalingConfigOutput
}

InstanceClusterAutoscalingConfigInput is an input type that accepts InstanceClusterAutoscalingConfigArgs and InstanceClusterAutoscalingConfigOutput values. You can construct a concrete instance of `InstanceClusterAutoscalingConfigInput` via:

InstanceClusterAutoscalingConfigArgs{...}

type InstanceClusterAutoscalingConfigOutput added in v6.18.0

type InstanceClusterAutoscalingConfigOutput struct{ *pulumi.OutputState }

func (InstanceClusterAutoscalingConfigOutput) CpuTarget added in v6.18.0

The target CPU utilization for autoscaling, in percentage. Must be between 10 and 80.

func (InstanceClusterAutoscalingConfigOutput) ElementType added in v6.18.0

func (InstanceClusterAutoscalingConfigOutput) MaxNodes added in v6.18.0

The maximum number of nodes for autoscaling.

func (InstanceClusterAutoscalingConfigOutput) MinNodes added in v6.18.0

The minimum number of nodes for autoscaling.

func (InstanceClusterAutoscalingConfigOutput) StorageTarget added in v6.38.0

The target storage utilization for autoscaling, in GB, for each node in a cluster. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB) for an HDD cluster. If not set, whatever is already set for the cluster will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters.

!> **Warning**: Only one of `autoscalingConfig` or `numNodes` should be set for a cluster. If both are set, `numNodes` is ignored. If none is set, autoscaling will be disabled and sized to the current node count.

func (InstanceClusterAutoscalingConfigOutput) ToInstanceClusterAutoscalingConfigOutput added in v6.18.0

func (o InstanceClusterAutoscalingConfigOutput) ToInstanceClusterAutoscalingConfigOutput() InstanceClusterAutoscalingConfigOutput

func (InstanceClusterAutoscalingConfigOutput) ToInstanceClusterAutoscalingConfigOutputWithContext added in v6.18.0

func (o InstanceClusterAutoscalingConfigOutput) ToInstanceClusterAutoscalingConfigOutputWithContext(ctx context.Context) InstanceClusterAutoscalingConfigOutput

func (InstanceClusterAutoscalingConfigOutput) ToInstanceClusterAutoscalingConfigPtrOutput added in v6.18.0

func (o InstanceClusterAutoscalingConfigOutput) ToInstanceClusterAutoscalingConfigPtrOutput() InstanceClusterAutoscalingConfigPtrOutput

func (InstanceClusterAutoscalingConfigOutput) ToInstanceClusterAutoscalingConfigPtrOutputWithContext added in v6.18.0

func (o InstanceClusterAutoscalingConfigOutput) ToInstanceClusterAutoscalingConfigPtrOutputWithContext(ctx context.Context) InstanceClusterAutoscalingConfigPtrOutput

func (InstanceClusterAutoscalingConfigOutput) ToOutput added in v6.65.1

type InstanceClusterAutoscalingConfigPtrInput added in v6.18.0

type InstanceClusterAutoscalingConfigPtrInput interface {
	pulumi.Input

	ToInstanceClusterAutoscalingConfigPtrOutput() InstanceClusterAutoscalingConfigPtrOutput
	ToInstanceClusterAutoscalingConfigPtrOutputWithContext(context.Context) InstanceClusterAutoscalingConfigPtrOutput
}

InstanceClusterAutoscalingConfigPtrInput is an input type that accepts InstanceClusterAutoscalingConfigArgs, InstanceClusterAutoscalingConfigPtr and InstanceClusterAutoscalingConfigPtrOutput values. You can construct a concrete instance of `InstanceClusterAutoscalingConfigPtrInput` via:

        InstanceClusterAutoscalingConfigArgs{...}

or:

        nil

type InstanceClusterAutoscalingConfigPtrOutput added in v6.18.0

type InstanceClusterAutoscalingConfigPtrOutput struct{ *pulumi.OutputState }

func (InstanceClusterAutoscalingConfigPtrOutput) CpuTarget added in v6.18.0

The target CPU utilization for autoscaling, in percentage. Must be between 10 and 80.

func (InstanceClusterAutoscalingConfigPtrOutput) Elem added in v6.18.0

func (InstanceClusterAutoscalingConfigPtrOutput) ElementType added in v6.18.0

func (InstanceClusterAutoscalingConfigPtrOutput) MaxNodes added in v6.18.0

The maximum number of nodes for autoscaling.

func (InstanceClusterAutoscalingConfigPtrOutput) MinNodes added in v6.18.0

The minimum number of nodes for autoscaling.

func (InstanceClusterAutoscalingConfigPtrOutput) StorageTarget added in v6.38.0

The target storage utilization for autoscaling, in GB, for each node in a cluster. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB) for an HDD cluster. If not set, whatever is already set for the cluster will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters.

!> **Warning**: Only one of `autoscalingConfig` or `numNodes` should be set for a cluster. If both are set, `numNodes` is ignored. If none is set, autoscaling will be disabled and sized to the current node count.

func (InstanceClusterAutoscalingConfigPtrOutput) ToInstanceClusterAutoscalingConfigPtrOutput added in v6.18.0

func (o InstanceClusterAutoscalingConfigPtrOutput) ToInstanceClusterAutoscalingConfigPtrOutput() InstanceClusterAutoscalingConfigPtrOutput

func (InstanceClusterAutoscalingConfigPtrOutput) ToInstanceClusterAutoscalingConfigPtrOutputWithContext added in v6.18.0

func (o InstanceClusterAutoscalingConfigPtrOutput) ToInstanceClusterAutoscalingConfigPtrOutputWithContext(ctx context.Context) InstanceClusterAutoscalingConfigPtrOutput

func (InstanceClusterAutoscalingConfigPtrOutput) ToOutput added in v6.65.1

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) AutoscalingConfig added in v6.18.0

[Autoscaling](https://cloud.google.com/bigtable/docs/autoscaling#parameters) config for the cluster, contains the following arguments:

func (InstanceClusterOutput) ClusterId

The ID of the Cloud Bigtable cluster. Must be 6-30 characters and must only contain hyphens, lowercase letters and numbers.

func (InstanceClusterOutput) ElementType

func (InstanceClusterOutput) ElementType() reflect.Type

func (InstanceClusterOutput) KmsKeyName

Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster.

> **Note**: Removing the field entirely from the config will cause the provider to default to the backend value.

!> **Warning**: Modifying this field will cause the provider to delete/recreate the entire resource.

!> **Warning:** Modifying the `storageType`, `zone` or `kmsKeyName` of an existing cluster (by `clusterId`) will cause the provider to delete/recreate the entire `bigtable.Instance` resource. If these values are changing, use a new `clusterId`.

func (InstanceClusterOutput) NumNodes

The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.

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) ToOutput added in v6.65.1

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.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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).
	//
	// `bigtable.InstanceIamPolicy` only:
	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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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

func (*InstanceIamBinding) ElementType() reflect.Type

func (*InstanceIamBinding) ToInstanceIamBindingOutput

func (i *InstanceIamBinding) ToInstanceIamBindingOutput() InstanceIamBindingOutput

func (*InstanceIamBinding) ToInstanceIamBindingOutputWithContext

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

func (*InstanceIamBinding) ToOutput added in v6.65.1

type InstanceIamBindingArgs

type InstanceIamBindingArgs struct {
	Condition InstanceIamBindingConditionPtrInput
	// The name or relative resource id of the instance to manage IAM policies for.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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).
	//
	// `bigtable.InstanceIamPolicy` only:
	Role pulumi.StringInput
}

The set of arguments for constructing a InstanceIamBinding resource.

func (InstanceIamBindingArgs) ElementType

func (InstanceIamBindingArgs) ElementType() reflect.Type

type InstanceIamBindingArray

type InstanceIamBindingArray []InstanceIamBindingInput

func (InstanceIamBindingArray) ElementType

func (InstanceIamBindingArray) ElementType() reflect.Type

func (InstanceIamBindingArray) ToInstanceIamBindingArrayOutput

func (i InstanceIamBindingArray) ToInstanceIamBindingArrayOutput() InstanceIamBindingArrayOutput

func (InstanceIamBindingArray) ToInstanceIamBindingArrayOutputWithContext

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

func (InstanceIamBindingArray) ToOutput added in v6.65.1

type InstanceIamBindingArrayInput

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

type InstanceIamBindingArrayOutput struct{ *pulumi.OutputState }

func (InstanceIamBindingArrayOutput) ElementType

func (InstanceIamBindingArrayOutput) Index

func (InstanceIamBindingArrayOutput) ToInstanceIamBindingArrayOutput

func (o InstanceIamBindingArrayOutput) ToInstanceIamBindingArrayOutput() InstanceIamBindingArrayOutput

func (InstanceIamBindingArrayOutput) ToInstanceIamBindingArrayOutputWithContext

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

func (InstanceIamBindingArrayOutput) ToOutput added in v6.65.1

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

func (InstanceIamBindingConditionArgs) ToOutput added in v6.65.1

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

func (InstanceIamBindingConditionOutput) ToOutput added in v6.65.1

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

func (InstanceIamBindingConditionPtrOutput) ToOutput added in v6.65.1

type InstanceIamBindingInput

type InstanceIamBindingInput interface {
	pulumi.Input

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

type InstanceIamBindingMap

type InstanceIamBindingMap map[string]InstanceIamBindingInput

func (InstanceIamBindingMap) ElementType

func (InstanceIamBindingMap) ElementType() reflect.Type

func (InstanceIamBindingMap) ToInstanceIamBindingMapOutput

func (i InstanceIamBindingMap) ToInstanceIamBindingMapOutput() InstanceIamBindingMapOutput

func (InstanceIamBindingMap) ToInstanceIamBindingMapOutputWithContext

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

func (InstanceIamBindingMap) ToOutput added in v6.65.1

type InstanceIamBindingMapInput

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

type InstanceIamBindingMapOutput struct{ *pulumi.OutputState }

func (InstanceIamBindingMapOutput) ElementType

func (InstanceIamBindingMapOutput) MapIndex

func (InstanceIamBindingMapOutput) ToInstanceIamBindingMapOutput

func (o InstanceIamBindingMapOutput) ToInstanceIamBindingMapOutput() InstanceIamBindingMapOutput

func (InstanceIamBindingMapOutput) ToInstanceIamBindingMapOutputWithContext

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

func (InstanceIamBindingMapOutput) ToOutput added in v6.65.1

type InstanceIamBindingOutput

type InstanceIamBindingOutput struct{ *pulumi.OutputState }

func (InstanceIamBindingOutput) Condition added in v6.23.0

func (InstanceIamBindingOutput) ElementType

func (InstanceIamBindingOutput) ElementType() reflect.Type

func (InstanceIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the instances's IAM policy.

func (InstanceIamBindingOutput) Instance added in v6.23.0

The name or relative resource id of the instance to manage IAM policies for.

For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:

  • `member/members` - (Required) Identities that will be granted the privilege in `role`. Each entry can have one of the following values:
  • **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
  • **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
  • **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
  • **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
  • **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
  • **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.

func (InstanceIamBindingOutput) Members added in v6.23.0

func (InstanceIamBindingOutput) Project added in v6.23.0

The project in which the instance belongs. If it is not provided, a default will be supplied.

func (InstanceIamBindingOutput) Role added in v6.23.0

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

`bigtable.InstanceIamPolicy` only:

func (InstanceIamBindingOutput) ToInstanceIamBindingOutput

func (o InstanceIamBindingOutput) ToInstanceIamBindingOutput() InstanceIamBindingOutput

func (InstanceIamBindingOutput) ToInstanceIamBindingOutputWithContext

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

func (InstanceIamBindingOutput) ToOutput added in v6.65.1

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.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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).
	//
	// `bigtable.InstanceIamPolicy` only:
	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.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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).
	//
	// `bigtable.InstanceIamPolicy` only:
	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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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

func (*InstanceIamMember) ElementType() reflect.Type

func (*InstanceIamMember) ToInstanceIamMemberOutput

func (i *InstanceIamMember) ToInstanceIamMemberOutput() InstanceIamMemberOutput

func (*InstanceIamMember) ToInstanceIamMemberOutputWithContext

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

func (*InstanceIamMember) ToOutput added in v6.65.1

type InstanceIamMemberArgs

type InstanceIamMemberArgs struct {
	Condition InstanceIamMemberConditionPtrInput
	// The name or relative resource id of the instance to manage IAM policies for.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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).
	//
	// `bigtable.InstanceIamPolicy` only:
	Role pulumi.StringInput
}

The set of arguments for constructing a InstanceIamMember resource.

func (InstanceIamMemberArgs) ElementType

func (InstanceIamMemberArgs) ElementType() reflect.Type

type InstanceIamMemberArray

type InstanceIamMemberArray []InstanceIamMemberInput

func (InstanceIamMemberArray) ElementType

func (InstanceIamMemberArray) ElementType() reflect.Type

func (InstanceIamMemberArray) ToInstanceIamMemberArrayOutput

func (i InstanceIamMemberArray) ToInstanceIamMemberArrayOutput() InstanceIamMemberArrayOutput

func (InstanceIamMemberArray) ToInstanceIamMemberArrayOutputWithContext

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

func (InstanceIamMemberArray) ToOutput added in v6.65.1

type InstanceIamMemberArrayInput

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

type InstanceIamMemberArrayOutput struct{ *pulumi.OutputState }

func (InstanceIamMemberArrayOutput) ElementType

func (InstanceIamMemberArrayOutput) Index

func (InstanceIamMemberArrayOutput) ToInstanceIamMemberArrayOutput

func (o InstanceIamMemberArrayOutput) ToInstanceIamMemberArrayOutput() InstanceIamMemberArrayOutput

func (InstanceIamMemberArrayOutput) ToInstanceIamMemberArrayOutputWithContext

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

func (InstanceIamMemberArrayOutput) ToOutput added in v6.65.1

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

func (InstanceIamMemberConditionArgs) ToOutput added in v6.65.1

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

func (InstanceIamMemberConditionOutput) ToOutput added in v6.65.1

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

func (InstanceIamMemberConditionPtrOutput) ToOutput added in v6.65.1

type InstanceIamMemberInput

type InstanceIamMemberInput interface {
	pulumi.Input

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

type InstanceIamMemberMap

type InstanceIamMemberMap map[string]InstanceIamMemberInput

func (InstanceIamMemberMap) ElementType

func (InstanceIamMemberMap) ElementType() reflect.Type

func (InstanceIamMemberMap) ToInstanceIamMemberMapOutput

func (i InstanceIamMemberMap) ToInstanceIamMemberMapOutput() InstanceIamMemberMapOutput

func (InstanceIamMemberMap) ToInstanceIamMemberMapOutputWithContext

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

func (InstanceIamMemberMap) ToOutput added in v6.65.1

type InstanceIamMemberMapInput

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

type InstanceIamMemberMapOutput struct{ *pulumi.OutputState }

func (InstanceIamMemberMapOutput) ElementType

func (InstanceIamMemberMapOutput) ElementType() reflect.Type

func (InstanceIamMemberMapOutput) MapIndex

func (InstanceIamMemberMapOutput) ToInstanceIamMemberMapOutput

func (o InstanceIamMemberMapOutput) ToInstanceIamMemberMapOutput() InstanceIamMemberMapOutput

func (InstanceIamMemberMapOutput) ToInstanceIamMemberMapOutputWithContext

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

func (InstanceIamMemberMapOutput) ToOutput added in v6.65.1

type InstanceIamMemberOutput

type InstanceIamMemberOutput struct{ *pulumi.OutputState }

func (InstanceIamMemberOutput) Condition added in v6.23.0

func (InstanceIamMemberOutput) ElementType

func (InstanceIamMemberOutput) ElementType() reflect.Type

func (InstanceIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the instances's IAM policy.

func (InstanceIamMemberOutput) Instance added in v6.23.0

The name or relative resource id of the instance to manage IAM policies for.

For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:

  • `member/members` - (Required) Identities that will be granted the privilege in `role`. Each entry can have one of the following values:
  • **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
  • **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
  • **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
  • **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
  • **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
  • **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.

func (InstanceIamMemberOutput) Member added in v6.23.0

func (InstanceIamMemberOutput) Project added in v6.23.0

The project in which the instance belongs. If it is not provided, a default will be supplied.

func (InstanceIamMemberOutput) Role added in v6.23.0

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

`bigtable.InstanceIamPolicy` only:

func (InstanceIamMemberOutput) ToInstanceIamMemberOutput

func (o InstanceIamMemberOutput) ToInstanceIamMemberOutput() InstanceIamMemberOutput

func (InstanceIamMemberOutput) ToInstanceIamMemberOutputWithContext

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

func (InstanceIamMemberOutput) ToOutput added in v6.65.1

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.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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).
	//
	// `bigtable.InstanceIamPolicy` only:
	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.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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

func (*InstanceIamPolicy) ElementType() reflect.Type

func (*InstanceIamPolicy) ToInstanceIamPolicyOutput

func (i *InstanceIamPolicy) ToInstanceIamPolicyOutput() InstanceIamPolicyOutput

func (*InstanceIamPolicy) ToInstanceIamPolicyOutputWithContext

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

func (*InstanceIamPolicy) ToOutput added in v6.65.1

type InstanceIamPolicyArgs

type InstanceIamPolicyArgs struct {
	// The name or relative resource id of the instance to manage IAM policies for.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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

type InstanceIamPolicyArray []InstanceIamPolicyInput

func (InstanceIamPolicyArray) ElementType

func (InstanceIamPolicyArray) ElementType() reflect.Type

func (InstanceIamPolicyArray) ToInstanceIamPolicyArrayOutput

func (i InstanceIamPolicyArray) ToInstanceIamPolicyArrayOutput() InstanceIamPolicyArrayOutput

func (InstanceIamPolicyArray) ToInstanceIamPolicyArrayOutputWithContext

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

func (InstanceIamPolicyArray) ToOutput added in v6.65.1

type InstanceIamPolicyArrayInput

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

type InstanceIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (InstanceIamPolicyArrayOutput) ElementType

func (InstanceIamPolicyArrayOutput) Index

func (InstanceIamPolicyArrayOutput) ToInstanceIamPolicyArrayOutput

func (o InstanceIamPolicyArrayOutput) ToInstanceIamPolicyArrayOutput() InstanceIamPolicyArrayOutput

func (InstanceIamPolicyArrayOutput) ToInstanceIamPolicyArrayOutputWithContext

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

func (InstanceIamPolicyArrayOutput) ToOutput added in v6.65.1

type InstanceIamPolicyInput

type InstanceIamPolicyInput interface {
	pulumi.Input

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

type InstanceIamPolicyMap

type InstanceIamPolicyMap map[string]InstanceIamPolicyInput

func (InstanceIamPolicyMap) ElementType

func (InstanceIamPolicyMap) ElementType() reflect.Type

func (InstanceIamPolicyMap) ToInstanceIamPolicyMapOutput

func (i InstanceIamPolicyMap) ToInstanceIamPolicyMapOutput() InstanceIamPolicyMapOutput

func (InstanceIamPolicyMap) ToInstanceIamPolicyMapOutputWithContext

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

func (InstanceIamPolicyMap) ToOutput added in v6.65.1

type InstanceIamPolicyMapInput

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

type InstanceIamPolicyMapOutput struct{ *pulumi.OutputState }

func (InstanceIamPolicyMapOutput) ElementType

func (InstanceIamPolicyMapOutput) ElementType() reflect.Type

func (InstanceIamPolicyMapOutput) MapIndex

func (InstanceIamPolicyMapOutput) ToInstanceIamPolicyMapOutput

func (o InstanceIamPolicyMapOutput) ToInstanceIamPolicyMapOutput() InstanceIamPolicyMapOutput

func (InstanceIamPolicyMapOutput) ToInstanceIamPolicyMapOutputWithContext

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

func (InstanceIamPolicyMapOutput) ToOutput added in v6.65.1

type InstanceIamPolicyOutput

type InstanceIamPolicyOutput struct{ *pulumi.OutputState }

func (InstanceIamPolicyOutput) ElementType

func (InstanceIamPolicyOutput) ElementType() reflect.Type

func (InstanceIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the instances's IAM policy.

func (InstanceIamPolicyOutput) Instance added in v6.23.0

The name or relative resource id of the instance to manage IAM policies for.

For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:

  • `member/members` - (Required) Identities that will be granted the privilege in `role`. Each entry can have one of the following values:
  • **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
  • **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
  • **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
  • **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
  • **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
  • **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.

func (InstanceIamPolicyOutput) PolicyData added in v6.23.0

The policy data generated by a `organizations.getIAMPolicy` data source.

***

func (InstanceIamPolicyOutput) Project added in v6.23.0

The project in which the instance belongs. If it is not provided, a default will be supplied.

func (InstanceIamPolicyOutput) ToInstanceIamPolicyOutput

func (o InstanceIamPolicyOutput) ToInstanceIamPolicyOutput() InstanceIamPolicyOutput

func (InstanceIamPolicyOutput) ToInstanceIamPolicyOutputWithContext

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

func (InstanceIamPolicyOutput) ToOutput added in v6.65.1

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.
	//
	// For `bigtable.InstanceIamMember` or `bigtable.InstanceIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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

type InstanceInput interface {
	pulumi.Input

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

type InstanceMap

type InstanceMap map[string]InstanceInput

func (InstanceMap) ElementType

func (InstanceMap) ElementType() reflect.Type

func (InstanceMap) ToInstanceMapOutput

func (i InstanceMap) ToInstanceMapOutput() InstanceMapOutput

func (InstanceMap) ToInstanceMapOutputWithContext

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

func (InstanceMap) ToOutput added in v6.65.1

func (i InstanceMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Instance]

type InstanceMapInput

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

type InstanceMapOutput struct{ *pulumi.OutputState }

func (InstanceMapOutput) ElementType

func (InstanceMapOutput) ElementType() reflect.Type

func (InstanceMapOutput) MapIndex

func (InstanceMapOutput) ToInstanceMapOutput

func (o InstanceMapOutput) ToInstanceMapOutput() InstanceMapOutput

func (InstanceMapOutput) ToInstanceMapOutputWithContext

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

func (InstanceMapOutput) ToOutput added in v6.65.1

type InstanceOutput

type InstanceOutput struct{ *pulumi.OutputState }

func (InstanceOutput) Clusters added in v6.23.0

A block of cluster configuration options. This can be specified at least once, and up to as many as possible within 8 cloud regions. Removing the field entirely from the config will cause the provider to default to the backend value. See structure below.

***

func (InstanceOutput) DeletionProtection added in v6.23.0

func (o InstanceOutput) DeletionProtection() pulumi.BoolPtrOutput

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.

func (InstanceOutput) DisplayName added in v6.23.0

func (o InstanceOutput) DisplayName() pulumi.StringOutput

The human-readable display name of the Bigtable instance. Defaults to the instance `name`.

func (InstanceOutput) ElementType

func (InstanceOutput) ElementType() reflect.Type

func (InstanceOutput) InstanceType deprecated added in v6.23.0

func (o InstanceOutput) InstanceType() pulumi.StringPtrOutput

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.

func (InstanceOutput) Labels added in v6.23.0

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.

***

func (InstanceOutput) Name added in v6.23.0

The name (also called Instance Id in the Cloud Console) of the Cloud Bigtable instance. Must be 6-33 characters and must only contain hyphens, lowercase letters and numbers.

func (InstanceOutput) Project added in v6.23.0

func (o InstanceOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (InstanceOutput) ToInstanceOutput

func (o InstanceOutput) ToInstanceOutput() InstanceOutput

func (InstanceOutput) ToInstanceOutputWithContext

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

func (InstanceOutput) ToOutput added in v6.65.1

type InstanceState

type InstanceState struct {
	// A block of cluster configuration options. This can be specified at least once, and up
	// to as many as possible within 8 cloud regions. Removing the field entirely from the config will cause the provider
	// to default to the backend value. 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. Must be 6-33 characters and must only contain hyphens, lowercase letters and numbers.
	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 LookupInstanceIamPolicyArgs added in v6.59.0

type LookupInstanceIamPolicyArgs struct {
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance string  `pulumi:"instance"`
	Project  *string `pulumi:"project"`
}

A collection of arguments for invoking getInstanceIamPolicy.

type LookupInstanceIamPolicyOutputArgs added in v6.59.0

type LookupInstanceIamPolicyOutputArgs struct {
	// The name or relative resource id of the instance to manage IAM policies for.
	Instance pulumi.StringInput    `pulumi:"instance"`
	Project  pulumi.StringPtrInput `pulumi:"project"`
}

A collection of arguments for invoking getInstanceIamPolicy.

func (LookupInstanceIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupInstanceIamPolicyResult added in v6.59.0

type LookupInstanceIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id       string `pulumi:"id"`
	Instance string `pulumi:"instance"`
	// (Computed) The policy data
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
}

A collection of values returned by getInstanceIamPolicy.

func LookupInstanceIamPolicy added in v6.59.0

func LookupInstanceIamPolicy(ctx *pulumi.Context, args *LookupInstanceIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupInstanceIamPolicyResult, error)

Retrieves the current IAM policy data for a Bigtable instance.

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.LookupInstanceIamPolicy(ctx, &bigtable.LookupInstanceIamPolicyArgs{
			Instance: google_bigtable_instance.Instance.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupInstanceIamPolicyResultOutput added in v6.59.0

type LookupInstanceIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getInstanceIamPolicy.

func LookupInstanceIamPolicyOutput added in v6.59.0

func (LookupInstanceIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupInstanceIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupInstanceIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupInstanceIamPolicyResultOutput) Instance added in v6.59.0

func (LookupInstanceIamPolicyResultOutput) PolicyData added in v6.59.0

(Computed) The policy data

func (LookupInstanceIamPolicyResultOutput) Project added in v6.59.0

func (LookupInstanceIamPolicyResultOutput) ToLookupInstanceIamPolicyResultOutput added in v6.59.0

func (o LookupInstanceIamPolicyResultOutput) ToLookupInstanceIamPolicyResultOutput() LookupInstanceIamPolicyResultOutput

func (LookupInstanceIamPolicyResultOutput) ToLookupInstanceIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupInstanceIamPolicyResultOutput) ToLookupInstanceIamPolicyResultOutputWithContext(ctx context.Context) LookupInstanceIamPolicyResultOutput

func (LookupInstanceIamPolicyResultOutput) ToOutput added in v6.65.1

type LookupTableIamPolicyArgs added in v6.59.0

type LookupTableIamPolicyArgs struct {
	// The name or relative resource id of the instance that owns the table.
	Instance string  `pulumi:"instance"`
	Project  *string `pulumi:"project"`
	// The name or relative resource id of the table to manage IAM policies for.
	Table string `pulumi:"table"`
}

A collection of arguments for invoking getTableIamPolicy.

type LookupTableIamPolicyOutputArgs added in v6.59.0

type LookupTableIamPolicyOutputArgs struct {
	// The name or relative resource id of the instance that owns the table.
	Instance pulumi.StringInput    `pulumi:"instance"`
	Project  pulumi.StringPtrInput `pulumi:"project"`
	// The name or relative resource id of the table to manage IAM policies for.
	Table pulumi.StringInput `pulumi:"table"`
}

A collection of arguments for invoking getTableIamPolicy.

func (LookupTableIamPolicyOutputArgs) ElementType added in v6.59.0

type LookupTableIamPolicyResult added in v6.59.0

type LookupTableIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id       string `pulumi:"id"`
	Instance string `pulumi:"instance"`
	// (Computed) The policy data
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
	Table      string `pulumi:"table"`
}

A collection of values returned by getTableIamPolicy.

func LookupTableIamPolicy added in v6.59.0

func LookupTableIamPolicy(ctx *pulumi.Context, args *LookupTableIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupTableIamPolicyResult, error)

Retrieves the current IAM policy data for a Bigtable Table.

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := bigtable.LookupTableIamPolicy(ctx, &bigtable.LookupTableIamPolicyArgs{
			Instance: google_bigtable_instance.Instance.Name,
			Table:    google_bigtable_table.Table.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupTableIamPolicyResultOutput added in v6.59.0

type LookupTableIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTableIamPolicy.

func LookupTableIamPolicyOutput added in v6.59.0

func (LookupTableIamPolicyResultOutput) ElementType added in v6.59.0

func (LookupTableIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (LookupTableIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (LookupTableIamPolicyResultOutput) Instance added in v6.59.0

func (LookupTableIamPolicyResultOutput) PolicyData added in v6.59.0

(Computed) The policy data

func (LookupTableIamPolicyResultOutput) Project added in v6.59.0

func (LookupTableIamPolicyResultOutput) Table added in v6.59.0

func (LookupTableIamPolicyResultOutput) ToLookupTableIamPolicyResultOutput added in v6.59.0

func (o LookupTableIamPolicyResultOutput) ToLookupTableIamPolicyResultOutput() LookupTableIamPolicyResultOutput

func (LookupTableIamPolicyResultOutput) ToLookupTableIamPolicyResultOutputWithContext added in v6.59.0

func (o LookupTableIamPolicyResultOutput) ToLookupTableIamPolicyResultOutputWithContext(ctx context.Context) LookupTableIamPolicyResultOutput

func (LookupTableIamPolicyResultOutput) ToOutput added in v6.65.1

type Table

type Table struct {
	pulumi.CustomResourceState

	// Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.
	//
	// ***
	ChangeStreamRetention pulumi.StringOutput `pulumi:"changeStreamRetention"`
	// 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"`
	// A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED.
	DeletionProtection pulumi.StringOutput `pulumi:"deletionProtection"`
	// The name of the Bigtable instance.
	InstanceName pulumi.StringOutput `pulumi:"instanceName"`
	// The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.
	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/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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"),
			},
			ColumnFamilies: bigtable.TableColumnFamilyArray{
				&bigtable.TableColumnFamilyArgs{
					Family: pulumi.String("family-first"),
				},
				&bigtable.TableColumnFamilyArgs{
					Family: pulumi.String("family-second"),
				},
			},
			ChangeStreamRetention: pulumi.String("24h0m0s"),
		})
		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

func (*Table) ElementType() reflect.Type

func (*Table) ToOutput added in v6.65.1

func (i *Table) ToOutput(ctx context.Context) pulumix.Output[*Table]

func (*Table) ToTableOutput

func (i *Table) ToTableOutput() TableOutput

func (*Table) ToTableOutputWithContext

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

type TableArgs

type TableArgs struct {
	// Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.
	//
	// ***
	ChangeStreamRetention pulumi.StringPtrInput
	// A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below.
	ColumnFamilies TableColumnFamilyArrayInput
	// A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED.
	DeletionProtection pulumi.StringPtrInput
	// The name of the Bigtable instance.
	InstanceName pulumi.StringInput
	// The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.
	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

type TableArray []TableInput

func (TableArray) ElementType

func (TableArray) ElementType() reflect.Type

func (TableArray) ToOutput added in v6.65.1

func (i TableArray) ToOutput(ctx context.Context) pulumix.Output[[]*Table]

func (TableArray) ToTableArrayOutput

func (i TableArray) ToTableArrayOutput() TableArrayOutput

func (TableArray) ToTableArrayOutputWithContext

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

type TableArrayInput

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

type TableArrayOutput struct{ *pulumi.OutputState }

func (TableArrayOutput) ElementType

func (TableArrayOutput) ElementType() reflect.Type

func (TableArrayOutput) Index

func (TableArrayOutput) ToOutput added in v6.65.1

func (o TableArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Table]

func (TableArrayOutput) ToTableArrayOutput

func (o TableArrayOutput) ToTableArrayOutput() TableArrayOutput

func (TableArrayOutput) ToTableArrayOutputWithContext

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) ToOutput added in v6.65.1

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) ToOutput added in v6.65.1

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) ToOutput added in v6.65.1

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) ToOutput added in v6.65.1

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).
	//
	// `bigtable.TableIamPolicy` only:
	Role pulumi.StringOutput `pulumi:"role"`
	// The name or relative resource id of the table to manage IAM policies for.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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\_table\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []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\_table\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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\_table\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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

Table 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

func (*TableIamBinding) ElementType() reflect.Type

func (*TableIamBinding) ToOutput added in v6.65.1

func (*TableIamBinding) ToTableIamBindingOutput

func (i *TableIamBinding) ToTableIamBindingOutput() TableIamBindingOutput

func (*TableIamBinding) ToTableIamBindingOutputWithContext

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

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).
	//
	// `bigtable.TableIamPolicy` only:
	Role pulumi.StringInput
	// The name or relative resource id of the table to manage IAM policies for.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Table pulumi.StringInput
}

The set of arguments for constructing a TableIamBinding resource.

func (TableIamBindingArgs) ElementType

func (TableIamBindingArgs) ElementType() reflect.Type

type TableIamBindingArray

type TableIamBindingArray []TableIamBindingInput

func (TableIamBindingArray) ElementType

func (TableIamBindingArray) ElementType() reflect.Type

func (TableIamBindingArray) ToOutput added in v6.65.1

func (TableIamBindingArray) ToTableIamBindingArrayOutput

func (i TableIamBindingArray) ToTableIamBindingArrayOutput() TableIamBindingArrayOutput

func (TableIamBindingArray) ToTableIamBindingArrayOutputWithContext

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

type TableIamBindingArrayInput

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

type TableIamBindingArrayOutput struct{ *pulumi.OutputState }

func (TableIamBindingArrayOutput) ElementType

func (TableIamBindingArrayOutput) ElementType() reflect.Type

func (TableIamBindingArrayOutput) Index

func (TableIamBindingArrayOutput) ToOutput added in v6.65.1

func (TableIamBindingArrayOutput) ToTableIamBindingArrayOutput

func (o TableIamBindingArrayOutput) ToTableIamBindingArrayOutput() TableIamBindingArrayOutput

func (TableIamBindingArrayOutput) ToTableIamBindingArrayOutputWithContext

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) ToOutput added in v6.65.1

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) ToOutput added in v6.65.1

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) ToOutput added in v6.65.1

func (TableIamBindingConditionPtrOutput) ToTableIamBindingConditionPtrOutput

func (o TableIamBindingConditionPtrOutput) ToTableIamBindingConditionPtrOutput() TableIamBindingConditionPtrOutput

func (TableIamBindingConditionPtrOutput) ToTableIamBindingConditionPtrOutputWithContext

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

type TableIamBindingInput

type TableIamBindingInput interface {
	pulumi.Input

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

type TableIamBindingMap

type TableIamBindingMap map[string]TableIamBindingInput

func (TableIamBindingMap) ElementType

func (TableIamBindingMap) ElementType() reflect.Type

func (TableIamBindingMap) ToOutput added in v6.65.1

func (TableIamBindingMap) ToTableIamBindingMapOutput

func (i TableIamBindingMap) ToTableIamBindingMapOutput() TableIamBindingMapOutput

func (TableIamBindingMap) ToTableIamBindingMapOutputWithContext

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

type TableIamBindingMapInput

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

type TableIamBindingMapOutput struct{ *pulumi.OutputState }

func (TableIamBindingMapOutput) ElementType

func (TableIamBindingMapOutput) ElementType() reflect.Type

func (TableIamBindingMapOutput) MapIndex

func (TableIamBindingMapOutput) ToOutput added in v6.65.1

func (TableIamBindingMapOutput) ToTableIamBindingMapOutput

func (o TableIamBindingMapOutput) ToTableIamBindingMapOutput() TableIamBindingMapOutput

func (TableIamBindingMapOutput) ToTableIamBindingMapOutputWithContext

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

type TableIamBindingOutput

type TableIamBindingOutput struct{ *pulumi.OutputState }

func (TableIamBindingOutput) Condition added in v6.23.0

func (TableIamBindingOutput) ElementType

func (TableIamBindingOutput) ElementType() reflect.Type

func (TableIamBindingOutput) Etag added in v6.23.0

(Computed) The etag of the tables's IAM policy.

func (TableIamBindingOutput) Instance added in v6.23.0

The name or relative resource id of the instance that owns the table.

func (TableIamBindingOutput) Members added in v6.23.0

func (TableIamBindingOutput) Project added in v6.23.0

The project in which the table belongs. If it is not provided, this provider will use the provider default.

func (TableIamBindingOutput) Role added in v6.23.0

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

`bigtable.TableIamPolicy` only:

func (TableIamBindingOutput) Table added in v6.23.0

The name or relative resource id of the table to manage IAM policies for.

For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:

  • `member/members` - (Required) Identities that will be granted the privilege in `role`. Each entry can have one of the following values:
  • **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
  • **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
  • **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
  • **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
  • **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
  • **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.

func (TableIamBindingOutput) ToOutput added in v6.65.1

func (TableIamBindingOutput) ToTableIamBindingOutput

func (o TableIamBindingOutput) ToTableIamBindingOutput() TableIamBindingOutput

func (TableIamBindingOutput) ToTableIamBindingOutputWithContext

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

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).
	//
	// `bigtable.TableIamPolicy` only:
	Role pulumi.StringPtrInput
	// The name or relative resource id of the table to manage IAM policies for.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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).
	//
	// `bigtable.TableIamPolicy` only:
	Role pulumi.StringOutput `pulumi:"role"`
	// The name or relative resource id of the table to manage IAM policies for.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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\_table\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []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\_table\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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\_table\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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

Table 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

func (*TableIamMember) ElementType() reflect.Type

func (*TableIamMember) ToOutput added in v6.65.1

func (*TableIamMember) ToTableIamMemberOutput

func (i *TableIamMember) ToTableIamMemberOutput() TableIamMemberOutput

func (*TableIamMember) ToTableIamMemberOutputWithContext

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

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).
	//
	// `bigtable.TableIamPolicy` only:
	Role pulumi.StringInput
	// The name or relative resource id of the table to manage IAM policies for.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Table pulumi.StringInput
}

The set of arguments for constructing a TableIamMember resource.

func (TableIamMemberArgs) ElementType

func (TableIamMemberArgs) ElementType() reflect.Type

type TableIamMemberArray

type TableIamMemberArray []TableIamMemberInput

func (TableIamMemberArray) ElementType

func (TableIamMemberArray) ElementType() reflect.Type

func (TableIamMemberArray) ToOutput added in v6.65.1

func (TableIamMemberArray) ToTableIamMemberArrayOutput

func (i TableIamMemberArray) ToTableIamMemberArrayOutput() TableIamMemberArrayOutput

func (TableIamMemberArray) ToTableIamMemberArrayOutputWithContext

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

type TableIamMemberArrayInput

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

type TableIamMemberArrayOutput struct{ *pulumi.OutputState }

func (TableIamMemberArrayOutput) ElementType

func (TableIamMemberArrayOutput) ElementType() reflect.Type

func (TableIamMemberArrayOutput) Index

func (TableIamMemberArrayOutput) ToOutput added in v6.65.1

func (TableIamMemberArrayOutput) ToTableIamMemberArrayOutput

func (o TableIamMemberArrayOutput) ToTableIamMemberArrayOutput() TableIamMemberArrayOutput

func (TableIamMemberArrayOutput) ToTableIamMemberArrayOutputWithContext

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) ToOutput added in v6.65.1

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) ToOutput added in v6.65.1

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) ToOutput added in v6.65.1

func (TableIamMemberConditionPtrOutput) ToTableIamMemberConditionPtrOutput

func (o TableIamMemberConditionPtrOutput) ToTableIamMemberConditionPtrOutput() TableIamMemberConditionPtrOutput

func (TableIamMemberConditionPtrOutput) ToTableIamMemberConditionPtrOutputWithContext

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

type TableIamMemberInput

type TableIamMemberInput interface {
	pulumi.Input

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

type TableIamMemberMap

type TableIamMemberMap map[string]TableIamMemberInput

func (TableIamMemberMap) ElementType

func (TableIamMemberMap) ElementType() reflect.Type

func (TableIamMemberMap) ToOutput added in v6.65.1

func (TableIamMemberMap) ToTableIamMemberMapOutput

func (i TableIamMemberMap) ToTableIamMemberMapOutput() TableIamMemberMapOutput

func (TableIamMemberMap) ToTableIamMemberMapOutputWithContext

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

type TableIamMemberMapInput

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

type TableIamMemberMapOutput struct{ *pulumi.OutputState }

func (TableIamMemberMapOutput) ElementType

func (TableIamMemberMapOutput) ElementType() reflect.Type

func (TableIamMemberMapOutput) MapIndex

func (TableIamMemberMapOutput) ToOutput added in v6.65.1

func (TableIamMemberMapOutput) ToTableIamMemberMapOutput

func (o TableIamMemberMapOutput) ToTableIamMemberMapOutput() TableIamMemberMapOutput

func (TableIamMemberMapOutput) ToTableIamMemberMapOutputWithContext

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

type TableIamMemberOutput

type TableIamMemberOutput struct{ *pulumi.OutputState }

func (TableIamMemberOutput) Condition added in v6.23.0

func (TableIamMemberOutput) ElementType

func (TableIamMemberOutput) ElementType() reflect.Type

func (TableIamMemberOutput) Etag added in v6.23.0

(Computed) The etag of the tables's IAM policy.

func (TableIamMemberOutput) Instance added in v6.23.0

The name or relative resource id of the instance that owns the table.

func (TableIamMemberOutput) Member added in v6.23.0

func (TableIamMemberOutput) Project added in v6.23.0

The project in which the table belongs. If it is not provided, this provider will use the provider default.

func (TableIamMemberOutput) Role added in v6.23.0

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

`bigtable.TableIamPolicy` only:

func (TableIamMemberOutput) Table added in v6.23.0

The name or relative resource id of the table to manage IAM policies for.

For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:

  • `member/members` - (Required) Identities that will be granted the privilege in `role`. Each entry can have one of the following values:
  • **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
  • **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
  • **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
  • **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
  • **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
  • **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.

func (TableIamMemberOutput) ToOutput added in v6.65.1

func (TableIamMemberOutput) ToTableIamMemberOutput

func (o TableIamMemberOutput) ToTableIamMemberOutput() TableIamMemberOutput

func (TableIamMemberOutput) ToTableIamMemberOutputWithContext

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

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).
	//
	// `bigtable.TableIamPolicy` only:
	Role pulumi.StringPtrInput
	// The name or relative resource id of the table to manage IAM policies for.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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\_table\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []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\_table\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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\_table\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigtable"
"github.com/pulumi/pulumi/sdk/v3/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

Table 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

func (*TableIamPolicy) ElementType() reflect.Type

func (*TableIamPolicy) ToOutput added in v6.65.1

func (*TableIamPolicy) ToTableIamPolicyOutput

func (i *TableIamPolicy) ToTableIamPolicyOutput() TableIamPolicyOutput

func (*TableIamPolicy) ToTableIamPolicyOutputWithContext

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

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.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Table pulumi.StringInput
}

The set of arguments for constructing a TableIamPolicy resource.

func (TableIamPolicyArgs) ElementType

func (TableIamPolicyArgs) ElementType() reflect.Type

type TableIamPolicyArray

type TableIamPolicyArray []TableIamPolicyInput

func (TableIamPolicyArray) ElementType

func (TableIamPolicyArray) ElementType() reflect.Type

func (TableIamPolicyArray) ToOutput added in v6.65.1

func (TableIamPolicyArray) ToTableIamPolicyArrayOutput

func (i TableIamPolicyArray) ToTableIamPolicyArrayOutput() TableIamPolicyArrayOutput

func (TableIamPolicyArray) ToTableIamPolicyArrayOutputWithContext

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

type TableIamPolicyArrayInput

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

type TableIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (TableIamPolicyArrayOutput) ElementType

func (TableIamPolicyArrayOutput) ElementType() reflect.Type

func (TableIamPolicyArrayOutput) Index

func (TableIamPolicyArrayOutput) ToOutput added in v6.65.1

func (TableIamPolicyArrayOutput) ToTableIamPolicyArrayOutput

func (o TableIamPolicyArrayOutput) ToTableIamPolicyArrayOutput() TableIamPolicyArrayOutput

func (TableIamPolicyArrayOutput) ToTableIamPolicyArrayOutputWithContext

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

type TableIamPolicyInput

type TableIamPolicyInput interface {
	pulumi.Input

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

type TableIamPolicyMap

type TableIamPolicyMap map[string]TableIamPolicyInput

func (TableIamPolicyMap) ElementType

func (TableIamPolicyMap) ElementType() reflect.Type

func (TableIamPolicyMap) ToOutput added in v6.65.1

func (TableIamPolicyMap) ToTableIamPolicyMapOutput

func (i TableIamPolicyMap) ToTableIamPolicyMapOutput() TableIamPolicyMapOutput

func (TableIamPolicyMap) ToTableIamPolicyMapOutputWithContext

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

type TableIamPolicyMapInput

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

type TableIamPolicyMapOutput struct{ *pulumi.OutputState }

func (TableIamPolicyMapOutput) ElementType

func (TableIamPolicyMapOutput) ElementType() reflect.Type

func (TableIamPolicyMapOutput) MapIndex

func (TableIamPolicyMapOutput) ToOutput added in v6.65.1

func (TableIamPolicyMapOutput) ToTableIamPolicyMapOutput

func (o TableIamPolicyMapOutput) ToTableIamPolicyMapOutput() TableIamPolicyMapOutput

func (TableIamPolicyMapOutput) ToTableIamPolicyMapOutputWithContext

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

type TableIamPolicyOutput

type TableIamPolicyOutput struct{ *pulumi.OutputState }

func (TableIamPolicyOutput) ElementType

func (TableIamPolicyOutput) ElementType() reflect.Type

func (TableIamPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the tables's IAM policy.

func (TableIamPolicyOutput) Instance added in v6.23.0

The name or relative resource id of the instance that owns the table.

func (TableIamPolicyOutput) PolicyData added in v6.23.0

func (o TableIamPolicyOutput) PolicyData() pulumi.StringOutput

The policy data generated by a `organizations.getIAMPolicy` data source.

***

func (TableIamPolicyOutput) Project added in v6.23.0

The project in which the table belongs. If it is not provided, this provider will use the provider default.

func (TableIamPolicyOutput) Table added in v6.23.0

The name or relative resource id of the table to manage IAM policies for.

For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:

  • `member/members` - (Required) Identities that will be granted the privilege in `role`. Each entry can have one of the following values:
  • **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
  • **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
  • **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
  • **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
  • **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
  • **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.

func (TableIamPolicyOutput) ToOutput added in v6.65.1

func (TableIamPolicyOutput) ToTableIamPolicyOutput

func (o TableIamPolicyOutput) ToTableIamPolicyOutput() TableIamPolicyOutput

func (TableIamPolicyOutput) ToTableIamPolicyOutputWithContext

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

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.
	//
	// For `bigtable.TableIamMember` or `bigtable.TableIamBinding`:
	//
	// * `member/members` - (Required) Identities that will be granted the privilege in `role`.
	//   Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Table pulumi.StringPtrInput
}

func (TableIamPolicyState) ElementType

func (TableIamPolicyState) ElementType() reflect.Type

type TableInput

type TableInput interface {
	pulumi.Input

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

type TableMap

type TableMap map[string]TableInput

func (TableMap) ElementType

func (TableMap) ElementType() reflect.Type

func (TableMap) ToOutput added in v6.65.1

func (i TableMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Table]

func (TableMap) ToTableMapOutput

func (i TableMap) ToTableMapOutput() TableMapOutput

func (TableMap) ToTableMapOutputWithContext

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

type TableMapInput

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

type TableMapOutput struct{ *pulumi.OutputState }

func (TableMapOutput) ElementType

func (TableMapOutput) ElementType() reflect.Type

func (TableMapOutput) MapIndex

func (TableMapOutput) ToOutput added in v6.65.1

func (o TableMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Table]

func (TableMapOutput) ToTableMapOutput

func (o TableMapOutput) ToTableMapOutput() TableMapOutput

func (TableMapOutput) ToTableMapOutputWithContext

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

type TableOutput

type TableOutput struct{ *pulumi.OutputState }

func (TableOutput) ChangeStreamRetention added in v6.61.0

func (o TableOutput) ChangeStreamRetention() pulumi.StringOutput

Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.

***

func (TableOutput) ColumnFamilies added in v6.23.0

func (o TableOutput) ColumnFamilies() TableColumnFamilyArrayOutput

A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below.

func (TableOutput) DeletionProtection added in v6.46.0

func (o TableOutput) DeletionProtection() pulumi.StringOutput

A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED.

func (TableOutput) ElementType

func (TableOutput) ElementType() reflect.Type

func (TableOutput) InstanceName added in v6.23.0

func (o TableOutput) InstanceName() pulumi.StringOutput

The name of the Bigtable instance.

func (TableOutput) Name added in v6.23.0

func (o TableOutput) Name() pulumi.StringOutput

The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.

func (TableOutput) Project added in v6.23.0

func (o TableOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (TableOutput) SplitKeys added in v6.23.0

func (o TableOutput) SplitKeys() pulumi.StringArrayOutput

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.

func (TableOutput) ToOutput added in v6.65.1

func (o TableOutput) ToOutput(ctx context.Context) pulumix.Output[*Table]

func (TableOutput) ToTableOutput

func (o TableOutput) ToTableOutput() TableOutput

func (TableOutput) ToTableOutputWithContext

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

type TableState

type TableState struct {
	// Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.
	//
	// ***
	ChangeStreamRetention pulumi.StringPtrInput
	// A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below.
	ColumnFamilies TableColumnFamilyArrayInput
	// A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED.
	DeletionProtection pulumi.StringPtrInput
	// The name of the Bigtable instance.
	InstanceName pulumi.StringPtrInput
	// The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.
	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