spanner

package
v7.20.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

type Database struct {
	pulumi.CustomResourceState

	// The dialect of the Cloud Spanner Database.
	// If it is not provided, "GOOGLE_STANDARD_SQL" will be used.
	// Possible values are: `GOOGLE_STANDARD_SQL`, `POSTGRESQL`.
	DatabaseDialect pulumi.StringOutput `pulumi:"databaseDialect"`
	// An optional list of DDL statements to run inside the newly created
	// database. Statements can create tables, indexes, etc. These statements
	// execute atomically with the creation of the database: if there is an
	// error in any statement, the database is not created.
	Ddls pulumi.StringArrayOutput `pulumi:"ddls"`
	// Whether or not to allow the provider to destroy the instance. Unless this field is set to false
	// in state, a `destroy` or `update` that would delete the instance will fail.
	DeletionProtection pulumi.BoolPtrOutput `pulumi:"deletionProtection"`
	// Whether drop protection is enabled for this database. Defaults to false. Drop protection is different from the
	// "deletion_protection" attribute in the following ways: (1) "deletion_protection" only protects the database from
	// deletions in Terraform. whereas setting “enableDropProtection” to true protects the database from deletions in all
	// interfaces. (2) Setting "enableDropProtection" to true also prevents the deletion of the parent instance containing the
	// database. "deletion_protection" attribute does not provide protection against the deletion of the parent instance.
	EnableDropProtection pulumi.BoolPtrOutput `pulumi:"enableDropProtection"`
	// Encryption configuration for the database
	// Structure is documented below.
	EncryptionConfig DatabaseEncryptionConfigPtrOutput `pulumi:"encryptionConfig"`
	// The instance to create the database on.
	//
	// ***
	Instance pulumi.StringOutput `pulumi:"instance"`
	// A unique identifier for the database, which cannot be changed after
	// the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
	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"`
	// An explanation of the status of the database.
	State pulumi.StringOutput `pulumi:"state"`
	// The retention period for the database. The retention period must be between 1 hour
	// and 7 days, and can be specified in days, hours, minutes, or seconds. For example,
	// the values 1d, 24h, 1440m, and 86400s are equivalent. Default value is 1h.
	// If this property is used, you must avoid adding new DDL statements to `ddl` that
	// update the database's version_retention_period.
	VersionRetentionPeriod pulumi.StringOutput `pulumi:"versionRetentionPeriod"`
}

A Cloud Spanner Database which is hosted on a Spanner instance.

To get more information about Database, see:

* [API documentation](https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instances.databases) * How-to Guides

> **Warning:** On newer versions of the provider, you must explicitly set `deletion_protection=false` (and run `pulumi up` to write the field to state) in order to destroy an instance. It is recommended to not set this field (or set it to true) until you're ready to destroy. On older versions, it is strongly recommended to set `lifecycle { preventDestroy = true }` on databases in order to prevent accidental data loss.

## Example Usage

### Spanner Database Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		main, err := spanner.NewInstance(ctx, "main", &spanner.InstanceArgs{
			Config:      pulumi.String("regional-europe-west1"),
			DisplayName: pulumi.String("main-instance"),
			NumNodes:    pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabase(ctx, "database", &spanner.DatabaseArgs{
			Instance:               main.Name,
			Name:                   pulumi.String("my-database"),
			VersionRetentionPeriod: pulumi.String("3d"),
			Ddls: pulumi.StringArray{
				pulumi.String("CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)"),
				pulumi.String("CREATE TABLE t2 (t2 INT64 NOT NULL,) PRIMARY KEY(t2)"),
			},
			DeletionProtection: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Database can be imported using any of these accepted formats:

* `projects/{{project}}/instances/{{instance}}/databases/{{name}}`

* `instances/{{instance}}/databases/{{name}}`

* `{{project}}/{{instance}}/{{name}}`

* `{{instance}}/{{name}}`

When using the `pulumi import` command, Database can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:spanner/database:Database default projects/{{project}}/instances/{{instance}}/databases/{{name}} ```

```sh $ pulumi import gcp:spanner/database:Database default instances/{{instance}}/databases/{{name}} ```

```sh $ pulumi import gcp:spanner/database:Database default {{project}}/{{instance}}/{{name}} ```

```sh $ pulumi import gcp:spanner/database:Database default {{instance}}/{{name}} ```

func GetDatabase

func GetDatabase(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DatabaseState, opts ...pulumi.ResourceOption) (*Database, error)

GetDatabase gets an existing Database 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 NewDatabase

func NewDatabase(ctx *pulumi.Context,
	name string, args *DatabaseArgs, opts ...pulumi.ResourceOption) (*Database, error)

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

func (*Database) ElementType

func (*Database) ElementType() reflect.Type

func (*Database) ToDatabaseOutput

func (i *Database) ToDatabaseOutput() DatabaseOutput

func (*Database) ToDatabaseOutputWithContext

func (i *Database) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput

type DatabaseArgs

type DatabaseArgs struct {
	// The dialect of the Cloud Spanner Database.
	// If it is not provided, "GOOGLE_STANDARD_SQL" will be used.
	// Possible values are: `GOOGLE_STANDARD_SQL`, `POSTGRESQL`.
	DatabaseDialect pulumi.StringPtrInput
	// An optional list of DDL statements to run inside the newly created
	// database. Statements can create tables, indexes, etc. These statements
	// execute atomically with the creation of the database: if there is an
	// error in any statement, the database is not created.
	Ddls pulumi.StringArrayInput
	// Whether or not to allow the provider to destroy the instance. Unless this field is set to false
	// in state, a `destroy` or `update` that would delete the instance will fail.
	DeletionProtection pulumi.BoolPtrInput
	// Whether drop protection is enabled for this database. Defaults to false. Drop protection is different from the
	// "deletion_protection" attribute in the following ways: (1) "deletion_protection" only protects the database from
	// deletions in Terraform. whereas setting “enableDropProtection” to true protects the database from deletions in all
	// interfaces. (2) Setting "enableDropProtection" to true also prevents the deletion of the parent instance containing the
	// database. "deletion_protection" attribute does not provide protection against the deletion of the parent instance.
	EnableDropProtection pulumi.BoolPtrInput
	// Encryption configuration for the database
	// Structure is documented below.
	EncryptionConfig DatabaseEncryptionConfigPtrInput
	// The instance to create the database on.
	//
	// ***
	Instance pulumi.StringInput
	// A unique identifier for the database, which cannot be changed after
	// the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
	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 retention period for the database. The retention period must be between 1 hour
	// and 7 days, and can be specified in days, hours, minutes, or seconds. For example,
	// the values 1d, 24h, 1440m, and 86400s are equivalent. Default value is 1h.
	// If this property is used, you must avoid adding new DDL statements to `ddl` that
	// update the database's version_retention_period.
	VersionRetentionPeriod pulumi.StringPtrInput
}

The set of arguments for constructing a Database resource.

func (DatabaseArgs) ElementType

func (DatabaseArgs) ElementType() reflect.Type

type DatabaseArray

type DatabaseArray []DatabaseInput

func (DatabaseArray) ElementType

func (DatabaseArray) ElementType() reflect.Type

func (DatabaseArray) ToDatabaseArrayOutput

func (i DatabaseArray) ToDatabaseArrayOutput() DatabaseArrayOutput

func (DatabaseArray) ToDatabaseArrayOutputWithContext

func (i DatabaseArray) ToDatabaseArrayOutputWithContext(ctx context.Context) DatabaseArrayOutput

type DatabaseArrayInput

type DatabaseArrayInput interface {
	pulumi.Input

	ToDatabaseArrayOutput() DatabaseArrayOutput
	ToDatabaseArrayOutputWithContext(context.Context) DatabaseArrayOutput
}

DatabaseArrayInput is an input type that accepts DatabaseArray and DatabaseArrayOutput values. You can construct a concrete instance of `DatabaseArrayInput` via:

DatabaseArray{ DatabaseArgs{...} }

type DatabaseArrayOutput

type DatabaseArrayOutput struct{ *pulumi.OutputState }

func (DatabaseArrayOutput) ElementType

func (DatabaseArrayOutput) ElementType() reflect.Type

func (DatabaseArrayOutput) Index

func (DatabaseArrayOutput) ToDatabaseArrayOutput

func (o DatabaseArrayOutput) ToDatabaseArrayOutput() DatabaseArrayOutput

func (DatabaseArrayOutput) ToDatabaseArrayOutputWithContext

func (o DatabaseArrayOutput) ToDatabaseArrayOutputWithContext(ctx context.Context) DatabaseArrayOutput

type DatabaseEncryptionConfig

type DatabaseEncryptionConfig struct {
	// Fully qualified name of the KMS key to use to encrypt this database. This key must exist
	// in the same location as the Spanner Database.
	KmsKeyName string `pulumi:"kmsKeyName"`
}

type DatabaseEncryptionConfigArgs

type DatabaseEncryptionConfigArgs struct {
	// Fully qualified name of the KMS key to use to encrypt this database. This key must exist
	// in the same location as the Spanner Database.
	KmsKeyName pulumi.StringInput `pulumi:"kmsKeyName"`
}

func (DatabaseEncryptionConfigArgs) ElementType

func (DatabaseEncryptionConfigArgs) ToDatabaseEncryptionConfigOutput

func (i DatabaseEncryptionConfigArgs) ToDatabaseEncryptionConfigOutput() DatabaseEncryptionConfigOutput

func (DatabaseEncryptionConfigArgs) ToDatabaseEncryptionConfigOutputWithContext

func (i DatabaseEncryptionConfigArgs) ToDatabaseEncryptionConfigOutputWithContext(ctx context.Context) DatabaseEncryptionConfigOutput

func (DatabaseEncryptionConfigArgs) ToDatabaseEncryptionConfigPtrOutput

func (i DatabaseEncryptionConfigArgs) ToDatabaseEncryptionConfigPtrOutput() DatabaseEncryptionConfigPtrOutput

func (DatabaseEncryptionConfigArgs) ToDatabaseEncryptionConfigPtrOutputWithContext

func (i DatabaseEncryptionConfigArgs) ToDatabaseEncryptionConfigPtrOutputWithContext(ctx context.Context) DatabaseEncryptionConfigPtrOutput

type DatabaseEncryptionConfigInput

type DatabaseEncryptionConfigInput interface {
	pulumi.Input

	ToDatabaseEncryptionConfigOutput() DatabaseEncryptionConfigOutput
	ToDatabaseEncryptionConfigOutputWithContext(context.Context) DatabaseEncryptionConfigOutput
}

DatabaseEncryptionConfigInput is an input type that accepts DatabaseEncryptionConfigArgs and DatabaseEncryptionConfigOutput values. You can construct a concrete instance of `DatabaseEncryptionConfigInput` via:

DatabaseEncryptionConfigArgs{...}

type DatabaseEncryptionConfigOutput

type DatabaseEncryptionConfigOutput struct{ *pulumi.OutputState }

func (DatabaseEncryptionConfigOutput) ElementType

func (DatabaseEncryptionConfigOutput) KmsKeyName

Fully qualified name of the KMS key to use to encrypt this database. This key must exist in the same location as the Spanner Database.

func (DatabaseEncryptionConfigOutput) ToDatabaseEncryptionConfigOutput

func (o DatabaseEncryptionConfigOutput) ToDatabaseEncryptionConfigOutput() DatabaseEncryptionConfigOutput

func (DatabaseEncryptionConfigOutput) ToDatabaseEncryptionConfigOutputWithContext

func (o DatabaseEncryptionConfigOutput) ToDatabaseEncryptionConfigOutputWithContext(ctx context.Context) DatabaseEncryptionConfigOutput

func (DatabaseEncryptionConfigOutput) ToDatabaseEncryptionConfigPtrOutput

func (o DatabaseEncryptionConfigOutput) ToDatabaseEncryptionConfigPtrOutput() DatabaseEncryptionConfigPtrOutput

func (DatabaseEncryptionConfigOutput) ToDatabaseEncryptionConfigPtrOutputWithContext

func (o DatabaseEncryptionConfigOutput) ToDatabaseEncryptionConfigPtrOutputWithContext(ctx context.Context) DatabaseEncryptionConfigPtrOutput

type DatabaseEncryptionConfigPtrInput

type DatabaseEncryptionConfigPtrInput interface {
	pulumi.Input

	ToDatabaseEncryptionConfigPtrOutput() DatabaseEncryptionConfigPtrOutput
	ToDatabaseEncryptionConfigPtrOutputWithContext(context.Context) DatabaseEncryptionConfigPtrOutput
}

DatabaseEncryptionConfigPtrInput is an input type that accepts DatabaseEncryptionConfigArgs, DatabaseEncryptionConfigPtr and DatabaseEncryptionConfigPtrOutput values. You can construct a concrete instance of `DatabaseEncryptionConfigPtrInput` via:

        DatabaseEncryptionConfigArgs{...}

or:

        nil

type DatabaseEncryptionConfigPtrOutput

type DatabaseEncryptionConfigPtrOutput struct{ *pulumi.OutputState }

func (DatabaseEncryptionConfigPtrOutput) Elem

func (DatabaseEncryptionConfigPtrOutput) ElementType

func (DatabaseEncryptionConfigPtrOutput) KmsKeyName

Fully qualified name of the KMS key to use to encrypt this database. This key must exist in the same location as the Spanner Database.

func (DatabaseEncryptionConfigPtrOutput) ToDatabaseEncryptionConfigPtrOutput

func (o DatabaseEncryptionConfigPtrOutput) ToDatabaseEncryptionConfigPtrOutput() DatabaseEncryptionConfigPtrOutput

func (DatabaseEncryptionConfigPtrOutput) ToDatabaseEncryptionConfigPtrOutputWithContext

func (o DatabaseEncryptionConfigPtrOutput) ToDatabaseEncryptionConfigPtrOutputWithContext(ctx context.Context) DatabaseEncryptionConfigPtrOutput

type DatabaseIAMBinding

type DatabaseIAMBinding struct {
	pulumi.CustomResourceState

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

Three different resources help you manage your IAM policy for a Spanner database. Each of these resources serves a different use case:

* `spanner.DatabaseIAMPolicy`: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.

> **Warning:** It's entirely possibly to lock yourself out of your database using `spanner.DatabaseIAMPolicy`. Any permissions granted by default will be removed unless you include them in your config.

* `spanner.DatabaseIAMBinding`: 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 database are preserved. * `spanner.DatabaseIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.

> **Note:** `spanner.DatabaseIAMPolicy` **cannot** be used in conjunction with `spanner.DatabaseIAMBinding` and `spanner.DatabaseIAMMember` or they will fight over what your policy should be.

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

## google\_spanner\_database\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "My Role",
						Description: pulumi.StringRef("Grant permissions on my_role"),
						Expression:  "(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &spanner.DatabaseIAMBindingConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &spanner.DatabaseIAMMemberConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "My Role",
						Description: pulumi.StringRef("Grant permissions on my_role"),
						Expression:  "(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &spanner.DatabaseIAMBindingConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &spanner.DatabaseIAMMemberConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Spanner Database resource in question. For example:

* `{{project}}/{{instance}}/{{database}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{project}}/{{instance}}/{{database}}

to = google_spanner_database_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:spanner/databaseIAMBinding:DatabaseIAMBinding default {{project}}/{{instance}}/{{database}} ```

func GetDatabaseIAMBinding

func GetDatabaseIAMBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DatabaseIAMBindingState, opts ...pulumi.ResourceOption) (*DatabaseIAMBinding, error)

GetDatabaseIAMBinding gets an existing DatabaseIAMBinding 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 NewDatabaseIAMBinding

func NewDatabaseIAMBinding(ctx *pulumi.Context,
	name string, args *DatabaseIAMBindingArgs, opts ...pulumi.ResourceOption) (*DatabaseIAMBinding, error)

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

func (*DatabaseIAMBinding) ElementType

func (*DatabaseIAMBinding) ElementType() reflect.Type

func (*DatabaseIAMBinding) ToDatabaseIAMBindingOutput

func (i *DatabaseIAMBinding) ToDatabaseIAMBindingOutput() DatabaseIAMBindingOutput

func (*DatabaseIAMBinding) ToDatabaseIAMBindingOutputWithContext

func (i *DatabaseIAMBinding) ToDatabaseIAMBindingOutputWithContext(ctx context.Context) DatabaseIAMBindingOutput

type DatabaseIAMBindingArgs

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

The set of arguments for constructing a DatabaseIAMBinding resource.

func (DatabaseIAMBindingArgs) ElementType

func (DatabaseIAMBindingArgs) ElementType() reflect.Type

type DatabaseIAMBindingArray

type DatabaseIAMBindingArray []DatabaseIAMBindingInput

func (DatabaseIAMBindingArray) ElementType

func (DatabaseIAMBindingArray) ElementType() reflect.Type

func (DatabaseIAMBindingArray) ToDatabaseIAMBindingArrayOutput

func (i DatabaseIAMBindingArray) ToDatabaseIAMBindingArrayOutput() DatabaseIAMBindingArrayOutput

func (DatabaseIAMBindingArray) ToDatabaseIAMBindingArrayOutputWithContext

func (i DatabaseIAMBindingArray) ToDatabaseIAMBindingArrayOutputWithContext(ctx context.Context) DatabaseIAMBindingArrayOutput

type DatabaseIAMBindingArrayInput

type DatabaseIAMBindingArrayInput interface {
	pulumi.Input

	ToDatabaseIAMBindingArrayOutput() DatabaseIAMBindingArrayOutput
	ToDatabaseIAMBindingArrayOutputWithContext(context.Context) DatabaseIAMBindingArrayOutput
}

DatabaseIAMBindingArrayInput is an input type that accepts DatabaseIAMBindingArray and DatabaseIAMBindingArrayOutput values. You can construct a concrete instance of `DatabaseIAMBindingArrayInput` via:

DatabaseIAMBindingArray{ DatabaseIAMBindingArgs{...} }

type DatabaseIAMBindingArrayOutput

type DatabaseIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (DatabaseIAMBindingArrayOutput) ElementType

func (DatabaseIAMBindingArrayOutput) Index

func (DatabaseIAMBindingArrayOutput) ToDatabaseIAMBindingArrayOutput

func (o DatabaseIAMBindingArrayOutput) ToDatabaseIAMBindingArrayOutput() DatabaseIAMBindingArrayOutput

func (DatabaseIAMBindingArrayOutput) ToDatabaseIAMBindingArrayOutputWithContext

func (o DatabaseIAMBindingArrayOutput) ToDatabaseIAMBindingArrayOutputWithContext(ctx context.Context) DatabaseIAMBindingArrayOutput

type DatabaseIAMBindingCondition

type DatabaseIAMBindingCondition struct {
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type DatabaseIAMBindingConditionArgs

type DatabaseIAMBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (DatabaseIAMBindingConditionArgs) ElementType

func (DatabaseIAMBindingConditionArgs) ToDatabaseIAMBindingConditionOutput

func (i DatabaseIAMBindingConditionArgs) ToDatabaseIAMBindingConditionOutput() DatabaseIAMBindingConditionOutput

func (DatabaseIAMBindingConditionArgs) ToDatabaseIAMBindingConditionOutputWithContext

func (i DatabaseIAMBindingConditionArgs) ToDatabaseIAMBindingConditionOutputWithContext(ctx context.Context) DatabaseIAMBindingConditionOutput

func (DatabaseIAMBindingConditionArgs) ToDatabaseIAMBindingConditionPtrOutput

func (i DatabaseIAMBindingConditionArgs) ToDatabaseIAMBindingConditionPtrOutput() DatabaseIAMBindingConditionPtrOutput

func (DatabaseIAMBindingConditionArgs) ToDatabaseIAMBindingConditionPtrOutputWithContext

func (i DatabaseIAMBindingConditionArgs) ToDatabaseIAMBindingConditionPtrOutputWithContext(ctx context.Context) DatabaseIAMBindingConditionPtrOutput

type DatabaseIAMBindingConditionInput

type DatabaseIAMBindingConditionInput interface {
	pulumi.Input

	ToDatabaseIAMBindingConditionOutput() DatabaseIAMBindingConditionOutput
	ToDatabaseIAMBindingConditionOutputWithContext(context.Context) DatabaseIAMBindingConditionOutput
}

DatabaseIAMBindingConditionInput is an input type that accepts DatabaseIAMBindingConditionArgs and DatabaseIAMBindingConditionOutput values. You can construct a concrete instance of `DatabaseIAMBindingConditionInput` via:

DatabaseIAMBindingConditionArgs{...}

type DatabaseIAMBindingConditionOutput

type DatabaseIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (DatabaseIAMBindingConditionOutput) Description

func (DatabaseIAMBindingConditionOutput) ElementType

func (DatabaseIAMBindingConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (DatabaseIAMBindingConditionOutput) Title

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

func (DatabaseIAMBindingConditionOutput) ToDatabaseIAMBindingConditionOutput

func (o DatabaseIAMBindingConditionOutput) ToDatabaseIAMBindingConditionOutput() DatabaseIAMBindingConditionOutput

func (DatabaseIAMBindingConditionOutput) ToDatabaseIAMBindingConditionOutputWithContext

func (o DatabaseIAMBindingConditionOutput) ToDatabaseIAMBindingConditionOutputWithContext(ctx context.Context) DatabaseIAMBindingConditionOutput

func (DatabaseIAMBindingConditionOutput) ToDatabaseIAMBindingConditionPtrOutput

func (o DatabaseIAMBindingConditionOutput) ToDatabaseIAMBindingConditionPtrOutput() DatabaseIAMBindingConditionPtrOutput

func (DatabaseIAMBindingConditionOutput) ToDatabaseIAMBindingConditionPtrOutputWithContext

func (o DatabaseIAMBindingConditionOutput) ToDatabaseIAMBindingConditionPtrOutputWithContext(ctx context.Context) DatabaseIAMBindingConditionPtrOutput

type DatabaseIAMBindingConditionPtrInput

type DatabaseIAMBindingConditionPtrInput interface {
	pulumi.Input

	ToDatabaseIAMBindingConditionPtrOutput() DatabaseIAMBindingConditionPtrOutput
	ToDatabaseIAMBindingConditionPtrOutputWithContext(context.Context) DatabaseIAMBindingConditionPtrOutput
}

DatabaseIAMBindingConditionPtrInput is an input type that accepts DatabaseIAMBindingConditionArgs, DatabaseIAMBindingConditionPtr and DatabaseIAMBindingConditionPtrOutput values. You can construct a concrete instance of `DatabaseIAMBindingConditionPtrInput` via:

        DatabaseIAMBindingConditionArgs{...}

or:

        nil

type DatabaseIAMBindingConditionPtrOutput

type DatabaseIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (DatabaseIAMBindingConditionPtrOutput) Description

func (DatabaseIAMBindingConditionPtrOutput) Elem

func (DatabaseIAMBindingConditionPtrOutput) ElementType

func (DatabaseIAMBindingConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (DatabaseIAMBindingConditionPtrOutput) Title

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

func (DatabaseIAMBindingConditionPtrOutput) ToDatabaseIAMBindingConditionPtrOutput

func (o DatabaseIAMBindingConditionPtrOutput) ToDatabaseIAMBindingConditionPtrOutput() DatabaseIAMBindingConditionPtrOutput

func (DatabaseIAMBindingConditionPtrOutput) ToDatabaseIAMBindingConditionPtrOutputWithContext

func (o DatabaseIAMBindingConditionPtrOutput) ToDatabaseIAMBindingConditionPtrOutputWithContext(ctx context.Context) DatabaseIAMBindingConditionPtrOutput

type DatabaseIAMBindingInput

type DatabaseIAMBindingInput interface {
	pulumi.Input

	ToDatabaseIAMBindingOutput() DatabaseIAMBindingOutput
	ToDatabaseIAMBindingOutputWithContext(ctx context.Context) DatabaseIAMBindingOutput
}

type DatabaseIAMBindingMap

type DatabaseIAMBindingMap map[string]DatabaseIAMBindingInput

func (DatabaseIAMBindingMap) ElementType

func (DatabaseIAMBindingMap) ElementType() reflect.Type

func (DatabaseIAMBindingMap) ToDatabaseIAMBindingMapOutput

func (i DatabaseIAMBindingMap) ToDatabaseIAMBindingMapOutput() DatabaseIAMBindingMapOutput

func (DatabaseIAMBindingMap) ToDatabaseIAMBindingMapOutputWithContext

func (i DatabaseIAMBindingMap) ToDatabaseIAMBindingMapOutputWithContext(ctx context.Context) DatabaseIAMBindingMapOutput

type DatabaseIAMBindingMapInput

type DatabaseIAMBindingMapInput interface {
	pulumi.Input

	ToDatabaseIAMBindingMapOutput() DatabaseIAMBindingMapOutput
	ToDatabaseIAMBindingMapOutputWithContext(context.Context) DatabaseIAMBindingMapOutput
}

DatabaseIAMBindingMapInput is an input type that accepts DatabaseIAMBindingMap and DatabaseIAMBindingMapOutput values. You can construct a concrete instance of `DatabaseIAMBindingMapInput` via:

DatabaseIAMBindingMap{ "key": DatabaseIAMBindingArgs{...} }

type DatabaseIAMBindingMapOutput

type DatabaseIAMBindingMapOutput struct{ *pulumi.OutputState }

func (DatabaseIAMBindingMapOutput) ElementType

func (DatabaseIAMBindingMapOutput) MapIndex

func (DatabaseIAMBindingMapOutput) ToDatabaseIAMBindingMapOutput

func (o DatabaseIAMBindingMapOutput) ToDatabaseIAMBindingMapOutput() DatabaseIAMBindingMapOutput

func (DatabaseIAMBindingMapOutput) ToDatabaseIAMBindingMapOutputWithContext

func (o DatabaseIAMBindingMapOutput) ToDatabaseIAMBindingMapOutputWithContext(ctx context.Context) DatabaseIAMBindingMapOutput

type DatabaseIAMBindingOutput

type DatabaseIAMBindingOutput struct{ *pulumi.OutputState }

func (DatabaseIAMBindingOutput) Condition

An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding. Structure is documented below.

func (DatabaseIAMBindingOutput) Database

The name of the Spanner database.

func (DatabaseIAMBindingOutput) ElementType

func (DatabaseIAMBindingOutput) ElementType() reflect.Type

func (DatabaseIAMBindingOutput) Etag

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

func (DatabaseIAMBindingOutput) Instance

The name of the Spanner instance the database belongs to.

func (DatabaseIAMBindingOutput) Members

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 (DatabaseIAMBindingOutput) Project

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

func (DatabaseIAMBindingOutput) Role

The role that should be applied. Only one `spanner.DatabaseIAMBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (DatabaseIAMBindingOutput) ToDatabaseIAMBindingOutput

func (o DatabaseIAMBindingOutput) ToDatabaseIAMBindingOutput() DatabaseIAMBindingOutput

func (DatabaseIAMBindingOutput) ToDatabaseIAMBindingOutputWithContext

func (o DatabaseIAMBindingOutput) ToDatabaseIAMBindingOutputWithContext(ctx context.Context) DatabaseIAMBindingOutput

type DatabaseIAMBindingState

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

func (DatabaseIAMBindingState) ElementType

func (DatabaseIAMBindingState) ElementType() reflect.Type

type DatabaseIAMMember

type DatabaseIAMMember struct {
	pulumi.CustomResourceState

	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition DatabaseIAMMemberConditionPtrOutput `pulumi:"condition"`
	// The name of the Spanner database.
	Database pulumi.StringOutput `pulumi:"database"`
	// (Computed) The etag of the database's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name of the Spanner instance the database belongs to.
	Instance pulumi.StringOutput `pulumi:"instance"`
	// 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.
	Member pulumi.StringOutput `pulumi:"member"`
	// 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 role that should be applied. Only one
	// `spanner.DatabaseIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage your IAM policy for a Spanner database. Each of these resources serves a different use case:

* `spanner.DatabaseIAMPolicy`: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.

> **Warning:** It's entirely possibly to lock yourself out of your database using `spanner.DatabaseIAMPolicy`. Any permissions granted by default will be removed unless you include them in your config.

* `spanner.DatabaseIAMBinding`: 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 database are preserved. * `spanner.DatabaseIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.

> **Note:** `spanner.DatabaseIAMPolicy` **cannot** be used in conjunction with `spanner.DatabaseIAMBinding` and `spanner.DatabaseIAMMember` or they will fight over what your policy should be.

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

## google\_spanner\_database\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "My Role",
						Description: pulumi.StringRef("Grant permissions on my_role"),
						Expression:  "(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &spanner.DatabaseIAMBindingConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &spanner.DatabaseIAMMemberConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "My Role",
						Description: pulumi.StringRef("Grant permissions on my_role"),
						Expression:  "(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &spanner.DatabaseIAMBindingConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &spanner.DatabaseIAMMemberConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Spanner Database resource in question. For example:

* `{{project}}/{{instance}}/{{database}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{project}}/{{instance}}/{{database}}

to = google_spanner_database_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:spanner/databaseIAMMember:DatabaseIAMMember default {{project}}/{{instance}}/{{database}} ```

func GetDatabaseIAMMember

func GetDatabaseIAMMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DatabaseIAMMemberState, opts ...pulumi.ResourceOption) (*DatabaseIAMMember, error)

GetDatabaseIAMMember gets an existing DatabaseIAMMember 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 NewDatabaseIAMMember

func NewDatabaseIAMMember(ctx *pulumi.Context,
	name string, args *DatabaseIAMMemberArgs, opts ...pulumi.ResourceOption) (*DatabaseIAMMember, error)

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

func (*DatabaseIAMMember) ElementType

func (*DatabaseIAMMember) ElementType() reflect.Type

func (*DatabaseIAMMember) ToDatabaseIAMMemberOutput

func (i *DatabaseIAMMember) ToDatabaseIAMMemberOutput() DatabaseIAMMemberOutput

func (*DatabaseIAMMember) ToDatabaseIAMMemberOutputWithContext

func (i *DatabaseIAMMember) ToDatabaseIAMMemberOutputWithContext(ctx context.Context) DatabaseIAMMemberOutput

type DatabaseIAMMemberArgs

type DatabaseIAMMemberArgs struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition DatabaseIAMMemberConditionPtrInput
	// The name of the Spanner database.
	Database pulumi.StringInput
	// The name of the Spanner instance the database belongs to.
	Instance pulumi.StringInput
	// 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.
	Member pulumi.StringInput
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `spanner.DatabaseIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a DatabaseIAMMember resource.

func (DatabaseIAMMemberArgs) ElementType

func (DatabaseIAMMemberArgs) ElementType() reflect.Type

type DatabaseIAMMemberArray

type DatabaseIAMMemberArray []DatabaseIAMMemberInput

func (DatabaseIAMMemberArray) ElementType

func (DatabaseIAMMemberArray) ElementType() reflect.Type

func (DatabaseIAMMemberArray) ToDatabaseIAMMemberArrayOutput

func (i DatabaseIAMMemberArray) ToDatabaseIAMMemberArrayOutput() DatabaseIAMMemberArrayOutput

func (DatabaseIAMMemberArray) ToDatabaseIAMMemberArrayOutputWithContext

func (i DatabaseIAMMemberArray) ToDatabaseIAMMemberArrayOutputWithContext(ctx context.Context) DatabaseIAMMemberArrayOutput

type DatabaseIAMMemberArrayInput

type DatabaseIAMMemberArrayInput interface {
	pulumi.Input

	ToDatabaseIAMMemberArrayOutput() DatabaseIAMMemberArrayOutput
	ToDatabaseIAMMemberArrayOutputWithContext(context.Context) DatabaseIAMMemberArrayOutput
}

DatabaseIAMMemberArrayInput is an input type that accepts DatabaseIAMMemberArray and DatabaseIAMMemberArrayOutput values. You can construct a concrete instance of `DatabaseIAMMemberArrayInput` via:

DatabaseIAMMemberArray{ DatabaseIAMMemberArgs{...} }

type DatabaseIAMMemberArrayOutput

type DatabaseIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (DatabaseIAMMemberArrayOutput) ElementType

func (DatabaseIAMMemberArrayOutput) Index

func (DatabaseIAMMemberArrayOutput) ToDatabaseIAMMemberArrayOutput

func (o DatabaseIAMMemberArrayOutput) ToDatabaseIAMMemberArrayOutput() DatabaseIAMMemberArrayOutput

func (DatabaseIAMMemberArrayOutput) ToDatabaseIAMMemberArrayOutputWithContext

func (o DatabaseIAMMemberArrayOutput) ToDatabaseIAMMemberArrayOutputWithContext(ctx context.Context) DatabaseIAMMemberArrayOutput

type DatabaseIAMMemberCondition

type DatabaseIAMMemberCondition struct {
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type DatabaseIAMMemberConditionArgs

type DatabaseIAMMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (DatabaseIAMMemberConditionArgs) ElementType

func (DatabaseIAMMemberConditionArgs) ToDatabaseIAMMemberConditionOutput

func (i DatabaseIAMMemberConditionArgs) ToDatabaseIAMMemberConditionOutput() DatabaseIAMMemberConditionOutput

func (DatabaseIAMMemberConditionArgs) ToDatabaseIAMMemberConditionOutputWithContext

func (i DatabaseIAMMemberConditionArgs) ToDatabaseIAMMemberConditionOutputWithContext(ctx context.Context) DatabaseIAMMemberConditionOutput

func (DatabaseIAMMemberConditionArgs) ToDatabaseIAMMemberConditionPtrOutput

func (i DatabaseIAMMemberConditionArgs) ToDatabaseIAMMemberConditionPtrOutput() DatabaseIAMMemberConditionPtrOutput

func (DatabaseIAMMemberConditionArgs) ToDatabaseIAMMemberConditionPtrOutputWithContext

func (i DatabaseIAMMemberConditionArgs) ToDatabaseIAMMemberConditionPtrOutputWithContext(ctx context.Context) DatabaseIAMMemberConditionPtrOutput

type DatabaseIAMMemberConditionInput

type DatabaseIAMMemberConditionInput interface {
	pulumi.Input

	ToDatabaseIAMMemberConditionOutput() DatabaseIAMMemberConditionOutput
	ToDatabaseIAMMemberConditionOutputWithContext(context.Context) DatabaseIAMMemberConditionOutput
}

DatabaseIAMMemberConditionInput is an input type that accepts DatabaseIAMMemberConditionArgs and DatabaseIAMMemberConditionOutput values. You can construct a concrete instance of `DatabaseIAMMemberConditionInput` via:

DatabaseIAMMemberConditionArgs{...}

type DatabaseIAMMemberConditionOutput

type DatabaseIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (DatabaseIAMMemberConditionOutput) Description

func (DatabaseIAMMemberConditionOutput) ElementType

func (DatabaseIAMMemberConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (DatabaseIAMMemberConditionOutput) Title

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

func (DatabaseIAMMemberConditionOutput) ToDatabaseIAMMemberConditionOutput

func (o DatabaseIAMMemberConditionOutput) ToDatabaseIAMMemberConditionOutput() DatabaseIAMMemberConditionOutput

func (DatabaseIAMMemberConditionOutput) ToDatabaseIAMMemberConditionOutputWithContext

func (o DatabaseIAMMemberConditionOutput) ToDatabaseIAMMemberConditionOutputWithContext(ctx context.Context) DatabaseIAMMemberConditionOutput

func (DatabaseIAMMemberConditionOutput) ToDatabaseIAMMemberConditionPtrOutput

func (o DatabaseIAMMemberConditionOutput) ToDatabaseIAMMemberConditionPtrOutput() DatabaseIAMMemberConditionPtrOutput

func (DatabaseIAMMemberConditionOutput) ToDatabaseIAMMemberConditionPtrOutputWithContext

func (o DatabaseIAMMemberConditionOutput) ToDatabaseIAMMemberConditionPtrOutputWithContext(ctx context.Context) DatabaseIAMMemberConditionPtrOutput

type DatabaseIAMMemberConditionPtrInput

type DatabaseIAMMemberConditionPtrInput interface {
	pulumi.Input

	ToDatabaseIAMMemberConditionPtrOutput() DatabaseIAMMemberConditionPtrOutput
	ToDatabaseIAMMemberConditionPtrOutputWithContext(context.Context) DatabaseIAMMemberConditionPtrOutput
}

DatabaseIAMMemberConditionPtrInput is an input type that accepts DatabaseIAMMemberConditionArgs, DatabaseIAMMemberConditionPtr and DatabaseIAMMemberConditionPtrOutput values. You can construct a concrete instance of `DatabaseIAMMemberConditionPtrInput` via:

        DatabaseIAMMemberConditionArgs{...}

or:

        nil

type DatabaseIAMMemberConditionPtrOutput

type DatabaseIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (DatabaseIAMMemberConditionPtrOutput) Description

func (DatabaseIAMMemberConditionPtrOutput) Elem

func (DatabaseIAMMemberConditionPtrOutput) ElementType

func (DatabaseIAMMemberConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (DatabaseIAMMemberConditionPtrOutput) Title

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

func (DatabaseIAMMemberConditionPtrOutput) ToDatabaseIAMMemberConditionPtrOutput

func (o DatabaseIAMMemberConditionPtrOutput) ToDatabaseIAMMemberConditionPtrOutput() DatabaseIAMMemberConditionPtrOutput

func (DatabaseIAMMemberConditionPtrOutput) ToDatabaseIAMMemberConditionPtrOutputWithContext

func (o DatabaseIAMMemberConditionPtrOutput) ToDatabaseIAMMemberConditionPtrOutputWithContext(ctx context.Context) DatabaseIAMMemberConditionPtrOutput

type DatabaseIAMMemberInput

type DatabaseIAMMemberInput interface {
	pulumi.Input

	ToDatabaseIAMMemberOutput() DatabaseIAMMemberOutput
	ToDatabaseIAMMemberOutputWithContext(ctx context.Context) DatabaseIAMMemberOutput
}

type DatabaseIAMMemberMap

type DatabaseIAMMemberMap map[string]DatabaseIAMMemberInput

func (DatabaseIAMMemberMap) ElementType

func (DatabaseIAMMemberMap) ElementType() reflect.Type

func (DatabaseIAMMemberMap) ToDatabaseIAMMemberMapOutput

func (i DatabaseIAMMemberMap) ToDatabaseIAMMemberMapOutput() DatabaseIAMMemberMapOutput

func (DatabaseIAMMemberMap) ToDatabaseIAMMemberMapOutputWithContext

func (i DatabaseIAMMemberMap) ToDatabaseIAMMemberMapOutputWithContext(ctx context.Context) DatabaseIAMMemberMapOutput

type DatabaseIAMMemberMapInput

type DatabaseIAMMemberMapInput interface {
	pulumi.Input

	ToDatabaseIAMMemberMapOutput() DatabaseIAMMemberMapOutput
	ToDatabaseIAMMemberMapOutputWithContext(context.Context) DatabaseIAMMemberMapOutput
}

DatabaseIAMMemberMapInput is an input type that accepts DatabaseIAMMemberMap and DatabaseIAMMemberMapOutput values. You can construct a concrete instance of `DatabaseIAMMemberMapInput` via:

DatabaseIAMMemberMap{ "key": DatabaseIAMMemberArgs{...} }

type DatabaseIAMMemberMapOutput

type DatabaseIAMMemberMapOutput struct{ *pulumi.OutputState }

func (DatabaseIAMMemberMapOutput) ElementType

func (DatabaseIAMMemberMapOutput) ElementType() reflect.Type

func (DatabaseIAMMemberMapOutput) MapIndex

func (DatabaseIAMMemberMapOutput) ToDatabaseIAMMemberMapOutput

func (o DatabaseIAMMemberMapOutput) ToDatabaseIAMMemberMapOutput() DatabaseIAMMemberMapOutput

func (DatabaseIAMMemberMapOutput) ToDatabaseIAMMemberMapOutputWithContext

func (o DatabaseIAMMemberMapOutput) ToDatabaseIAMMemberMapOutputWithContext(ctx context.Context) DatabaseIAMMemberMapOutput

type DatabaseIAMMemberOutput

type DatabaseIAMMemberOutput struct{ *pulumi.OutputState }

func (DatabaseIAMMemberOutput) Condition

An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding. Structure is documented below.

func (DatabaseIAMMemberOutput) Database

The name of the Spanner database.

func (DatabaseIAMMemberOutput) ElementType

func (DatabaseIAMMemberOutput) ElementType() reflect.Type

func (DatabaseIAMMemberOutput) Etag

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

func (DatabaseIAMMemberOutput) Instance

The name of the Spanner instance the database belongs to.

func (DatabaseIAMMemberOutput) Member

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 (DatabaseIAMMemberOutput) Project

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

func (DatabaseIAMMemberOutput) Role

The role that should be applied. Only one `spanner.DatabaseIAMBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (DatabaseIAMMemberOutput) ToDatabaseIAMMemberOutput

func (o DatabaseIAMMemberOutput) ToDatabaseIAMMemberOutput() DatabaseIAMMemberOutput

func (DatabaseIAMMemberOutput) ToDatabaseIAMMemberOutputWithContext

func (o DatabaseIAMMemberOutput) ToDatabaseIAMMemberOutputWithContext(ctx context.Context) DatabaseIAMMemberOutput

type DatabaseIAMMemberState

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

func (DatabaseIAMMemberState) ElementType

func (DatabaseIAMMemberState) ElementType() reflect.Type

type DatabaseIAMPolicy

type DatabaseIAMPolicy struct {
	pulumi.CustomResourceState

	// The name of the Spanner database.
	Database pulumi.StringOutput `pulumi:"database"`
	// (Computed) The etag of the database's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name of the Spanner instance the database belongs to.
	Instance pulumi.StringOutput `pulumi:"instance"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// 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"`
}

Three different resources help you manage your IAM policy for a Spanner database. Each of these resources serves a different use case:

* `spanner.DatabaseIAMPolicy`: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.

> **Warning:** It's entirely possibly to lock yourself out of your database using `spanner.DatabaseIAMPolicy`. Any permissions granted by default will be removed unless you include them in your config.

* `spanner.DatabaseIAMBinding`: 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 database are preserved. * `spanner.DatabaseIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.

> **Note:** `spanner.DatabaseIAMPolicy` **cannot** be used in conjunction with `spanner.DatabaseIAMBinding` and `spanner.DatabaseIAMMember` or they will fight over what your policy should be.

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

## google\_spanner\_database\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "My Role",
						Description: pulumi.StringRef("Grant permissions on my_role"),
						Expression:  "(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &spanner.DatabaseIAMBindingConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &spanner.DatabaseIAMMemberConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "My Role",
						Description: pulumi.StringRef("Grant permissions on my_role"),
						Expression:  "(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = spanner.NewDatabaseIAMPolicy(ctx, "database", &spanner.DatabaseIAMPolicyArgs{
			Instance:   pulumi.String("your-instance-name"),
			Database:   pulumi.String("your-database-name"),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMBinding(ctx, "database", &spanner.DatabaseIAMBindingArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &spanner.DatabaseIAMBindingConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_spanner\_database\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewDatabaseIAMMember(ctx, "database", &spanner.DatabaseIAMMemberArgs{
			Instance: pulumi.String("your-instance-name"),
			Database: pulumi.String("your-database-name"),
			Role:     pulumi.String("roles/compute.networkUser"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &spanner.DatabaseIAMMemberConditionArgs{
				Title:       pulumi.String("My Role"),
				Description: pulumi.String("Grant permissions on my_role"),
				Expression:  pulumi.String("(resource.type == \"spanner.googleapis.com/DatabaseRole\" && (resource.name.endsWith(\"/myrole\")))"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Spanner Database resource in question. For example:

* `{{project}}/{{instance}}/{{database}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{project}}/{{instance}}/{{database}}

to = google_spanner_database_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:spanner/databaseIAMPolicy:DatabaseIAMPolicy default {{project}}/{{instance}}/{{database}} ```

func GetDatabaseIAMPolicy

func GetDatabaseIAMPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DatabaseIAMPolicyState, opts ...pulumi.ResourceOption) (*DatabaseIAMPolicy, error)

GetDatabaseIAMPolicy gets an existing DatabaseIAMPolicy 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 NewDatabaseIAMPolicy

func NewDatabaseIAMPolicy(ctx *pulumi.Context,
	name string, args *DatabaseIAMPolicyArgs, opts ...pulumi.ResourceOption) (*DatabaseIAMPolicy, error)

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

func (*DatabaseIAMPolicy) ElementType

func (*DatabaseIAMPolicy) ElementType() reflect.Type

func (*DatabaseIAMPolicy) ToDatabaseIAMPolicyOutput

func (i *DatabaseIAMPolicy) ToDatabaseIAMPolicyOutput() DatabaseIAMPolicyOutput

func (*DatabaseIAMPolicy) ToDatabaseIAMPolicyOutputWithContext

func (i *DatabaseIAMPolicy) ToDatabaseIAMPolicyOutputWithContext(ctx context.Context) DatabaseIAMPolicyOutput

type DatabaseIAMPolicyArgs

type DatabaseIAMPolicyArgs struct {
	// The name of the Spanner database.
	Database pulumi.StringInput
	// The name of the Spanner instance the database belongs to.
	Instance pulumi.StringInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// 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 DatabaseIAMPolicy resource.

func (DatabaseIAMPolicyArgs) ElementType

func (DatabaseIAMPolicyArgs) ElementType() reflect.Type

type DatabaseIAMPolicyArray

type DatabaseIAMPolicyArray []DatabaseIAMPolicyInput

func (DatabaseIAMPolicyArray) ElementType

func (DatabaseIAMPolicyArray) ElementType() reflect.Type

func (DatabaseIAMPolicyArray) ToDatabaseIAMPolicyArrayOutput

func (i DatabaseIAMPolicyArray) ToDatabaseIAMPolicyArrayOutput() DatabaseIAMPolicyArrayOutput

func (DatabaseIAMPolicyArray) ToDatabaseIAMPolicyArrayOutputWithContext

func (i DatabaseIAMPolicyArray) ToDatabaseIAMPolicyArrayOutputWithContext(ctx context.Context) DatabaseIAMPolicyArrayOutput

type DatabaseIAMPolicyArrayInput

type DatabaseIAMPolicyArrayInput interface {
	pulumi.Input

	ToDatabaseIAMPolicyArrayOutput() DatabaseIAMPolicyArrayOutput
	ToDatabaseIAMPolicyArrayOutputWithContext(context.Context) DatabaseIAMPolicyArrayOutput
}

DatabaseIAMPolicyArrayInput is an input type that accepts DatabaseIAMPolicyArray and DatabaseIAMPolicyArrayOutput values. You can construct a concrete instance of `DatabaseIAMPolicyArrayInput` via:

DatabaseIAMPolicyArray{ DatabaseIAMPolicyArgs{...} }

type DatabaseIAMPolicyArrayOutput

type DatabaseIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (DatabaseIAMPolicyArrayOutput) ElementType

func (DatabaseIAMPolicyArrayOutput) Index

func (DatabaseIAMPolicyArrayOutput) ToDatabaseIAMPolicyArrayOutput

func (o DatabaseIAMPolicyArrayOutput) ToDatabaseIAMPolicyArrayOutput() DatabaseIAMPolicyArrayOutput

func (DatabaseIAMPolicyArrayOutput) ToDatabaseIAMPolicyArrayOutputWithContext

func (o DatabaseIAMPolicyArrayOutput) ToDatabaseIAMPolicyArrayOutputWithContext(ctx context.Context) DatabaseIAMPolicyArrayOutput

type DatabaseIAMPolicyInput

type DatabaseIAMPolicyInput interface {
	pulumi.Input

	ToDatabaseIAMPolicyOutput() DatabaseIAMPolicyOutput
	ToDatabaseIAMPolicyOutputWithContext(ctx context.Context) DatabaseIAMPolicyOutput
}

type DatabaseIAMPolicyMap

type DatabaseIAMPolicyMap map[string]DatabaseIAMPolicyInput

func (DatabaseIAMPolicyMap) ElementType

func (DatabaseIAMPolicyMap) ElementType() reflect.Type

func (DatabaseIAMPolicyMap) ToDatabaseIAMPolicyMapOutput

func (i DatabaseIAMPolicyMap) ToDatabaseIAMPolicyMapOutput() DatabaseIAMPolicyMapOutput

func (DatabaseIAMPolicyMap) ToDatabaseIAMPolicyMapOutputWithContext

func (i DatabaseIAMPolicyMap) ToDatabaseIAMPolicyMapOutputWithContext(ctx context.Context) DatabaseIAMPolicyMapOutput

type DatabaseIAMPolicyMapInput

type DatabaseIAMPolicyMapInput interface {
	pulumi.Input

	ToDatabaseIAMPolicyMapOutput() DatabaseIAMPolicyMapOutput
	ToDatabaseIAMPolicyMapOutputWithContext(context.Context) DatabaseIAMPolicyMapOutput
}

DatabaseIAMPolicyMapInput is an input type that accepts DatabaseIAMPolicyMap and DatabaseIAMPolicyMapOutput values. You can construct a concrete instance of `DatabaseIAMPolicyMapInput` via:

DatabaseIAMPolicyMap{ "key": DatabaseIAMPolicyArgs{...} }

type DatabaseIAMPolicyMapOutput

type DatabaseIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (DatabaseIAMPolicyMapOutput) ElementType

func (DatabaseIAMPolicyMapOutput) ElementType() reflect.Type

func (DatabaseIAMPolicyMapOutput) MapIndex

func (DatabaseIAMPolicyMapOutput) ToDatabaseIAMPolicyMapOutput

func (o DatabaseIAMPolicyMapOutput) ToDatabaseIAMPolicyMapOutput() DatabaseIAMPolicyMapOutput

func (DatabaseIAMPolicyMapOutput) ToDatabaseIAMPolicyMapOutputWithContext

func (o DatabaseIAMPolicyMapOutput) ToDatabaseIAMPolicyMapOutputWithContext(ctx context.Context) DatabaseIAMPolicyMapOutput

type DatabaseIAMPolicyOutput

type DatabaseIAMPolicyOutput struct{ *pulumi.OutputState }

func (DatabaseIAMPolicyOutput) Database

The name of the Spanner database.

func (DatabaseIAMPolicyOutput) ElementType

func (DatabaseIAMPolicyOutput) ElementType() reflect.Type

func (DatabaseIAMPolicyOutput) Etag

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

func (DatabaseIAMPolicyOutput) Instance

The name of the Spanner instance the database belongs to.

func (DatabaseIAMPolicyOutput) PolicyData

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

func (DatabaseIAMPolicyOutput) Project

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

func (DatabaseIAMPolicyOutput) ToDatabaseIAMPolicyOutput

func (o DatabaseIAMPolicyOutput) ToDatabaseIAMPolicyOutput() DatabaseIAMPolicyOutput

func (DatabaseIAMPolicyOutput) ToDatabaseIAMPolicyOutputWithContext

func (o DatabaseIAMPolicyOutput) ToDatabaseIAMPolicyOutputWithContext(ctx context.Context) DatabaseIAMPolicyOutput

type DatabaseIAMPolicyState

type DatabaseIAMPolicyState struct {
	// The name of the Spanner database.
	Database pulumi.StringPtrInput
	// (Computed) The etag of the database's IAM policy.
	Etag pulumi.StringPtrInput
	// The name of the Spanner instance the database belongs to.
	Instance pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData 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 (DatabaseIAMPolicyState) ElementType

func (DatabaseIAMPolicyState) ElementType() reflect.Type

type DatabaseInput

type DatabaseInput interface {
	pulumi.Input

	ToDatabaseOutput() DatabaseOutput
	ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput
}

type DatabaseMap

type DatabaseMap map[string]DatabaseInput

func (DatabaseMap) ElementType

func (DatabaseMap) ElementType() reflect.Type

func (DatabaseMap) ToDatabaseMapOutput

func (i DatabaseMap) ToDatabaseMapOutput() DatabaseMapOutput

func (DatabaseMap) ToDatabaseMapOutputWithContext

func (i DatabaseMap) ToDatabaseMapOutputWithContext(ctx context.Context) DatabaseMapOutput

type DatabaseMapInput

type DatabaseMapInput interface {
	pulumi.Input

	ToDatabaseMapOutput() DatabaseMapOutput
	ToDatabaseMapOutputWithContext(context.Context) DatabaseMapOutput
}

DatabaseMapInput is an input type that accepts DatabaseMap and DatabaseMapOutput values. You can construct a concrete instance of `DatabaseMapInput` via:

DatabaseMap{ "key": DatabaseArgs{...} }

type DatabaseMapOutput

type DatabaseMapOutput struct{ *pulumi.OutputState }

func (DatabaseMapOutput) ElementType

func (DatabaseMapOutput) ElementType() reflect.Type

func (DatabaseMapOutput) MapIndex

func (DatabaseMapOutput) ToDatabaseMapOutput

func (o DatabaseMapOutput) ToDatabaseMapOutput() DatabaseMapOutput

func (DatabaseMapOutput) ToDatabaseMapOutputWithContext

func (o DatabaseMapOutput) ToDatabaseMapOutputWithContext(ctx context.Context) DatabaseMapOutput

type DatabaseOutput

type DatabaseOutput struct{ *pulumi.OutputState }

func (DatabaseOutput) DatabaseDialect

func (o DatabaseOutput) DatabaseDialect() pulumi.StringOutput

The dialect of the Cloud Spanner Database. If it is not provided, "GOOGLE_STANDARD_SQL" will be used. Possible values are: `GOOGLE_STANDARD_SQL`, `POSTGRESQL`.

func (DatabaseOutput) Ddls

An optional list of DDL statements to run inside the newly created database. Statements can create tables, indexes, etc. These statements execute atomically with the creation of the database: if there is an error in any statement, the database is not created.

func (DatabaseOutput) DeletionProtection

func (o DatabaseOutput) DeletionProtection() pulumi.BoolPtrOutput

Whether or not to allow the provider to destroy the instance. Unless this field is set to false in state, a `destroy` or `update` that would delete the instance will fail.

func (DatabaseOutput) ElementType

func (DatabaseOutput) ElementType() reflect.Type

func (DatabaseOutput) EnableDropProtection

func (o DatabaseOutput) EnableDropProtection() pulumi.BoolPtrOutput

Whether drop protection is enabled for this database. Defaults to false. Drop protection is different from the "deletion_protection" attribute in the following ways: (1) "deletion_protection" only protects the database from deletions in Terraform. whereas setting “enableDropProtection” to true protects the database from deletions in all interfaces. (2) Setting "enableDropProtection" to true also prevents the deletion of the parent instance containing the database. "deletion_protection" attribute does not provide protection against the deletion of the parent instance.

func (DatabaseOutput) EncryptionConfig

Encryption configuration for the database Structure is documented below.

func (DatabaseOutput) Instance

func (o DatabaseOutput) Instance() pulumi.StringOutput

The instance to create the database on.

***

func (DatabaseOutput) Name

A unique identifier for the database, which cannot be changed after the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].

func (DatabaseOutput) Project

func (o DatabaseOutput) Project() pulumi.StringOutput

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

func (DatabaseOutput) State

An explanation of the status of the database.

func (DatabaseOutput) ToDatabaseOutput

func (o DatabaseOutput) ToDatabaseOutput() DatabaseOutput

func (DatabaseOutput) ToDatabaseOutputWithContext

func (o DatabaseOutput) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput

func (DatabaseOutput) VersionRetentionPeriod

func (o DatabaseOutput) VersionRetentionPeriod() pulumi.StringOutput

The retention period for the database. The retention period must be between 1 hour and 7 days, and can be specified in days, hours, minutes, or seconds. For example, the values 1d, 24h, 1440m, and 86400s are equivalent. Default value is 1h. If this property is used, you must avoid adding new DDL statements to `ddl` that update the database's version_retention_period.

type DatabaseState

type DatabaseState struct {
	// The dialect of the Cloud Spanner Database.
	// If it is not provided, "GOOGLE_STANDARD_SQL" will be used.
	// Possible values are: `GOOGLE_STANDARD_SQL`, `POSTGRESQL`.
	DatabaseDialect pulumi.StringPtrInput
	// An optional list of DDL statements to run inside the newly created
	// database. Statements can create tables, indexes, etc. These statements
	// execute atomically with the creation of the database: if there is an
	// error in any statement, the database is not created.
	Ddls pulumi.StringArrayInput
	// Whether or not to allow the provider to destroy the instance. Unless this field is set to false
	// in state, a `destroy` or `update` that would delete the instance will fail.
	DeletionProtection pulumi.BoolPtrInput
	// Whether drop protection is enabled for this database. Defaults to false. Drop protection is different from the
	// "deletion_protection" attribute in the following ways: (1) "deletion_protection" only protects the database from
	// deletions in Terraform. whereas setting “enableDropProtection” to true protects the database from deletions in all
	// interfaces. (2) Setting "enableDropProtection" to true also prevents the deletion of the parent instance containing the
	// database. "deletion_protection" attribute does not provide protection against the deletion of the parent instance.
	EnableDropProtection pulumi.BoolPtrInput
	// Encryption configuration for the database
	// Structure is documented below.
	EncryptionConfig DatabaseEncryptionConfigPtrInput
	// The instance to create the database on.
	//
	// ***
	Instance pulumi.StringPtrInput
	// A unique identifier for the database, which cannot be changed after
	// the instance is created. Values are of the form [a-z][-a-z0-9]*[a-z0-9].
	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
	// An explanation of the status of the database.
	State pulumi.StringPtrInput
	// The retention period for the database. The retention period must be between 1 hour
	// and 7 days, and can be specified in days, hours, minutes, or seconds. For example,
	// the values 1d, 24h, 1440m, and 86400s are equivalent. Default value is 1h.
	// If this property is used, you must avoid adding new DDL statements to `ddl` that
	// update the database's version_retention_period.
	VersionRetentionPeriod pulumi.StringPtrInput
}

func (DatabaseState) ElementType

func (DatabaseState) ElementType() reflect.Type

type GetDatabaseIamPolicyArgs

type GetDatabaseIamPolicyArgs struct {
	// The name of the Spanner database.
	Database string `pulumi:"database"`
	// The name of the Spanner instance the database belongs to.
	Instance string `pulumi:"instance"`
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
}

A collection of arguments for invoking getDatabaseIamPolicy.

type GetDatabaseIamPolicyOutputArgs

type GetDatabaseIamPolicyOutputArgs struct {
	// The name of the Spanner database.
	Database pulumi.StringInput `pulumi:"database"`
	// The name of the Spanner instance the database belongs to.
	Instance pulumi.StringInput `pulumi:"instance"`
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
}

A collection of arguments for invoking getDatabaseIamPolicy.

func (GetDatabaseIamPolicyOutputArgs) ElementType

type GetDatabaseIamPolicyResult

type GetDatabaseIamPolicyResult struct {
	Database string `pulumi:"database"`
	// (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 getDatabaseIamPolicy.

func GetDatabaseIamPolicy

func GetDatabaseIamPolicy(ctx *pulumi.Context, args *GetDatabaseIamPolicyArgs, opts ...pulumi.InvokeOption) (*GetDatabaseIamPolicyResult, error)

Retrieves the current IAM policy data for a Spanner database.

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.GetDatabaseIamPolicy(ctx, &spanner.GetDatabaseIamPolicyArgs{
			Project:  pulumi.StringRef(database.Project),
			Database: database.Name,
			Instance: database.Instance,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetDatabaseIamPolicyResultOutput

type GetDatabaseIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getDatabaseIamPolicy.

func (GetDatabaseIamPolicyResultOutput) Database

func (GetDatabaseIamPolicyResultOutput) ElementType

func (GetDatabaseIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (GetDatabaseIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetDatabaseIamPolicyResultOutput) Instance

func (GetDatabaseIamPolicyResultOutput) PolicyData

(Computed) The policy data

func (GetDatabaseIamPolicyResultOutput) Project

func (GetDatabaseIamPolicyResultOutput) ToGetDatabaseIamPolicyResultOutput

func (o GetDatabaseIamPolicyResultOutput) ToGetDatabaseIamPolicyResultOutput() GetDatabaseIamPolicyResultOutput

func (GetDatabaseIamPolicyResultOutput) ToGetDatabaseIamPolicyResultOutputWithContext

func (o GetDatabaseIamPolicyResultOutput) ToGetDatabaseIamPolicyResultOutputWithContext(ctx context.Context) GetDatabaseIamPolicyResultOutput

type GetInstanceAutoscalingConfig added in v7.1.0

type GetInstanceAutoscalingConfig struct {
	// Defines scale in controls to reduce the risk of response latency
	// and outages due to abrupt scale-in events. Users can define the minimum and
	// maximum compute capacity allocated to the instance, and the autoscaler will
	// only scale within that range. Users can either use nodes or processing
	// units to specify the limits, but should use the same unit to set both the
	// minLimit and max_limit.
	AutoscalingLimits []GetInstanceAutoscalingConfigAutoscalingLimit `pulumi:"autoscalingLimits"`
	// Defines scale in controls to reduce the risk of response latency
	// and outages due to abrupt scale-in events
	AutoscalingTargets []GetInstanceAutoscalingConfigAutoscalingTarget `pulumi:"autoscalingTargets"`
}

type GetInstanceAutoscalingConfigArgs added in v7.1.0

type GetInstanceAutoscalingConfigArgs struct {
	// Defines scale in controls to reduce the risk of response latency
	// and outages due to abrupt scale-in events. Users can define the minimum and
	// maximum compute capacity allocated to the instance, and the autoscaler will
	// only scale within that range. Users can either use nodes or processing
	// units to specify the limits, but should use the same unit to set both the
	// minLimit and max_limit.
	AutoscalingLimits GetInstanceAutoscalingConfigAutoscalingLimitArrayInput `pulumi:"autoscalingLimits"`
	// Defines scale in controls to reduce the risk of response latency
	// and outages due to abrupt scale-in events
	AutoscalingTargets GetInstanceAutoscalingConfigAutoscalingTargetArrayInput `pulumi:"autoscalingTargets"`
}

func (GetInstanceAutoscalingConfigArgs) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigArgs) ToGetInstanceAutoscalingConfigOutput added in v7.1.0

func (i GetInstanceAutoscalingConfigArgs) ToGetInstanceAutoscalingConfigOutput() GetInstanceAutoscalingConfigOutput

func (GetInstanceAutoscalingConfigArgs) ToGetInstanceAutoscalingConfigOutputWithContext added in v7.1.0

func (i GetInstanceAutoscalingConfigArgs) ToGetInstanceAutoscalingConfigOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigOutput

type GetInstanceAutoscalingConfigArray added in v7.1.0

type GetInstanceAutoscalingConfigArray []GetInstanceAutoscalingConfigInput

func (GetInstanceAutoscalingConfigArray) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigArray) ToGetInstanceAutoscalingConfigArrayOutput added in v7.1.0

func (i GetInstanceAutoscalingConfigArray) ToGetInstanceAutoscalingConfigArrayOutput() GetInstanceAutoscalingConfigArrayOutput

func (GetInstanceAutoscalingConfigArray) ToGetInstanceAutoscalingConfigArrayOutputWithContext added in v7.1.0

func (i GetInstanceAutoscalingConfigArray) ToGetInstanceAutoscalingConfigArrayOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigArrayOutput

type GetInstanceAutoscalingConfigArrayInput added in v7.1.0

type GetInstanceAutoscalingConfigArrayInput interface {
	pulumi.Input

	ToGetInstanceAutoscalingConfigArrayOutput() GetInstanceAutoscalingConfigArrayOutput
	ToGetInstanceAutoscalingConfigArrayOutputWithContext(context.Context) GetInstanceAutoscalingConfigArrayOutput
}

GetInstanceAutoscalingConfigArrayInput is an input type that accepts GetInstanceAutoscalingConfigArray and GetInstanceAutoscalingConfigArrayOutput values. You can construct a concrete instance of `GetInstanceAutoscalingConfigArrayInput` via:

GetInstanceAutoscalingConfigArray{ GetInstanceAutoscalingConfigArgs{...} }

type GetInstanceAutoscalingConfigArrayOutput added in v7.1.0

type GetInstanceAutoscalingConfigArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceAutoscalingConfigArrayOutput) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigArrayOutput) Index added in v7.1.0

func (GetInstanceAutoscalingConfigArrayOutput) ToGetInstanceAutoscalingConfigArrayOutput added in v7.1.0

func (o GetInstanceAutoscalingConfigArrayOutput) ToGetInstanceAutoscalingConfigArrayOutput() GetInstanceAutoscalingConfigArrayOutput

func (GetInstanceAutoscalingConfigArrayOutput) ToGetInstanceAutoscalingConfigArrayOutputWithContext added in v7.1.0

func (o GetInstanceAutoscalingConfigArrayOutput) ToGetInstanceAutoscalingConfigArrayOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigArrayOutput

type GetInstanceAutoscalingConfigAutoscalingLimit added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingLimit struct {
	// Specifies maximum number of nodes allocated to the instance. If set, this number
	// should be greater than or equal to min_nodes.
	MaxNodes int `pulumi:"maxNodes"`
	// Specifies maximum number of processing units allocated to the instance.
	// If set, this number should be multiples of 1000 and be greater than or equal to
	// min_processing_units.
	MaxProcessingUnits int `pulumi:"maxProcessingUnits"`
	// Specifies number of nodes allocated to the instance. If set, this number
	// should be greater than or equal to 1.
	MinNodes int `pulumi:"minNodes"`
	// Specifies minimum number of processing units allocated to the instance.
	// If set, this number should be multiples of 1000.
	MinProcessingUnits int `pulumi:"minProcessingUnits"`
}

type GetInstanceAutoscalingConfigAutoscalingLimitArgs added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingLimitArgs struct {
	// Specifies maximum number of nodes allocated to the instance. If set, this number
	// should be greater than or equal to min_nodes.
	MaxNodes pulumi.IntInput `pulumi:"maxNodes"`
	// Specifies maximum number of processing units allocated to the instance.
	// If set, this number should be multiples of 1000 and be greater than or equal to
	// min_processing_units.
	MaxProcessingUnits pulumi.IntInput `pulumi:"maxProcessingUnits"`
	// Specifies number of nodes allocated to the instance. If set, this number
	// should be greater than or equal to 1.
	MinNodes pulumi.IntInput `pulumi:"minNodes"`
	// Specifies minimum number of processing units allocated to the instance.
	// If set, this number should be multiples of 1000.
	MinProcessingUnits pulumi.IntInput `pulumi:"minProcessingUnits"`
}

func (GetInstanceAutoscalingConfigAutoscalingLimitArgs) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingLimitArgs) ToGetInstanceAutoscalingConfigAutoscalingLimitOutput added in v7.1.0

func (i GetInstanceAutoscalingConfigAutoscalingLimitArgs) ToGetInstanceAutoscalingConfigAutoscalingLimitOutput() GetInstanceAutoscalingConfigAutoscalingLimitOutput

func (GetInstanceAutoscalingConfigAutoscalingLimitArgs) ToGetInstanceAutoscalingConfigAutoscalingLimitOutputWithContext added in v7.1.0

func (i GetInstanceAutoscalingConfigAutoscalingLimitArgs) ToGetInstanceAutoscalingConfigAutoscalingLimitOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigAutoscalingLimitOutput

type GetInstanceAutoscalingConfigAutoscalingLimitArray added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingLimitArray []GetInstanceAutoscalingConfigAutoscalingLimitInput

func (GetInstanceAutoscalingConfigAutoscalingLimitArray) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingLimitArray) ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutput added in v7.1.0

func (i GetInstanceAutoscalingConfigAutoscalingLimitArray) ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutput() GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput

func (GetInstanceAutoscalingConfigAutoscalingLimitArray) ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutputWithContext added in v7.1.0

func (i GetInstanceAutoscalingConfigAutoscalingLimitArray) ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput

type GetInstanceAutoscalingConfigAutoscalingLimitArrayInput added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingLimitArrayInput interface {
	pulumi.Input

	ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutput() GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput
	ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutputWithContext(context.Context) GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput
}

GetInstanceAutoscalingConfigAutoscalingLimitArrayInput is an input type that accepts GetInstanceAutoscalingConfigAutoscalingLimitArray and GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput values. You can construct a concrete instance of `GetInstanceAutoscalingConfigAutoscalingLimitArrayInput` via:

GetInstanceAutoscalingConfigAutoscalingLimitArray{ GetInstanceAutoscalingConfigAutoscalingLimitArgs{...} }

type GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput) Index added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput) ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutput added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput) ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutputWithContext added in v7.1.0

func (o GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput) ToGetInstanceAutoscalingConfigAutoscalingLimitArrayOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigAutoscalingLimitArrayOutput

type GetInstanceAutoscalingConfigAutoscalingLimitInput added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingLimitInput interface {
	pulumi.Input

	ToGetInstanceAutoscalingConfigAutoscalingLimitOutput() GetInstanceAutoscalingConfigAutoscalingLimitOutput
	ToGetInstanceAutoscalingConfigAutoscalingLimitOutputWithContext(context.Context) GetInstanceAutoscalingConfigAutoscalingLimitOutput
}

GetInstanceAutoscalingConfigAutoscalingLimitInput is an input type that accepts GetInstanceAutoscalingConfigAutoscalingLimitArgs and GetInstanceAutoscalingConfigAutoscalingLimitOutput values. You can construct a concrete instance of `GetInstanceAutoscalingConfigAutoscalingLimitInput` via:

GetInstanceAutoscalingConfigAutoscalingLimitArgs{...}

type GetInstanceAutoscalingConfigAutoscalingLimitOutput added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingLimitOutput struct{ *pulumi.OutputState }

func (GetInstanceAutoscalingConfigAutoscalingLimitOutput) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingLimitOutput) MaxNodes added in v7.4.0

Specifies maximum number of nodes allocated to the instance. If set, this number should be greater than or equal to min_nodes.

func (GetInstanceAutoscalingConfigAutoscalingLimitOutput) MaxProcessingUnits added in v7.1.0

Specifies maximum number of processing units allocated to the instance. If set, this number should be multiples of 1000 and be greater than or equal to min_processing_units.

func (GetInstanceAutoscalingConfigAutoscalingLimitOutput) MinNodes added in v7.4.0

Specifies number of nodes allocated to the instance. If set, this number should be greater than or equal to 1.

func (GetInstanceAutoscalingConfigAutoscalingLimitOutput) MinProcessingUnits added in v7.1.0

Specifies minimum number of processing units allocated to the instance. If set, this number should be multiples of 1000.

func (GetInstanceAutoscalingConfigAutoscalingLimitOutput) ToGetInstanceAutoscalingConfigAutoscalingLimitOutput added in v7.1.0

func (o GetInstanceAutoscalingConfigAutoscalingLimitOutput) ToGetInstanceAutoscalingConfigAutoscalingLimitOutput() GetInstanceAutoscalingConfigAutoscalingLimitOutput

func (GetInstanceAutoscalingConfigAutoscalingLimitOutput) ToGetInstanceAutoscalingConfigAutoscalingLimitOutputWithContext added in v7.1.0

func (o GetInstanceAutoscalingConfigAutoscalingLimitOutput) ToGetInstanceAutoscalingConfigAutoscalingLimitOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigAutoscalingLimitOutput

type GetInstanceAutoscalingConfigAutoscalingTarget added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingTarget struct {
	// Specifies the target high priority cpu utilization percentage that the autoscaler
	// should be trying to achieve for the instance.
	// This number is on a scale from 0 (no utilization) to 100 (full utilization)..
	HighPriorityCpuUtilizationPercent int `pulumi:"highPriorityCpuUtilizationPercent"`
	// Specifies the target storage utilization percentage that the autoscaler
	// should be trying to achieve for the instance.
	// This number is on a scale from 0 (no utilization) to 100 (full utilization).
	StorageUtilizationPercent int `pulumi:"storageUtilizationPercent"`
}

type GetInstanceAutoscalingConfigAutoscalingTargetArgs added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingTargetArgs struct {
	// Specifies the target high priority cpu utilization percentage that the autoscaler
	// should be trying to achieve for the instance.
	// This number is on a scale from 0 (no utilization) to 100 (full utilization)..
	HighPriorityCpuUtilizationPercent pulumi.IntInput `pulumi:"highPriorityCpuUtilizationPercent"`
	// Specifies the target storage utilization percentage that the autoscaler
	// should be trying to achieve for the instance.
	// This number is on a scale from 0 (no utilization) to 100 (full utilization).
	StorageUtilizationPercent pulumi.IntInput `pulumi:"storageUtilizationPercent"`
}

func (GetInstanceAutoscalingConfigAutoscalingTargetArgs) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingTargetArgs) ToGetInstanceAutoscalingConfigAutoscalingTargetOutput added in v7.1.0

func (i GetInstanceAutoscalingConfigAutoscalingTargetArgs) ToGetInstanceAutoscalingConfigAutoscalingTargetOutput() GetInstanceAutoscalingConfigAutoscalingTargetOutput

func (GetInstanceAutoscalingConfigAutoscalingTargetArgs) ToGetInstanceAutoscalingConfigAutoscalingTargetOutputWithContext added in v7.1.0

func (i GetInstanceAutoscalingConfigAutoscalingTargetArgs) ToGetInstanceAutoscalingConfigAutoscalingTargetOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigAutoscalingTargetOutput

type GetInstanceAutoscalingConfigAutoscalingTargetArray added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingTargetArray []GetInstanceAutoscalingConfigAutoscalingTargetInput

func (GetInstanceAutoscalingConfigAutoscalingTargetArray) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingTargetArray) ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutput added in v7.1.0

func (i GetInstanceAutoscalingConfigAutoscalingTargetArray) ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutput() GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput

func (GetInstanceAutoscalingConfigAutoscalingTargetArray) ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutputWithContext added in v7.1.0

func (i GetInstanceAutoscalingConfigAutoscalingTargetArray) ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput

type GetInstanceAutoscalingConfigAutoscalingTargetArrayInput added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingTargetArrayInput interface {
	pulumi.Input

	ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutput() GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput
	ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutputWithContext(context.Context) GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput
}

GetInstanceAutoscalingConfigAutoscalingTargetArrayInput is an input type that accepts GetInstanceAutoscalingConfigAutoscalingTargetArray and GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput values. You can construct a concrete instance of `GetInstanceAutoscalingConfigAutoscalingTargetArrayInput` via:

GetInstanceAutoscalingConfigAutoscalingTargetArray{ GetInstanceAutoscalingConfigAutoscalingTargetArgs{...} }

type GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput struct{ *pulumi.OutputState }

func (GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput) Index added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput) ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutput added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput) ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutputWithContext added in v7.1.0

func (o GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput) ToGetInstanceAutoscalingConfigAutoscalingTargetArrayOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigAutoscalingTargetArrayOutput

type GetInstanceAutoscalingConfigAutoscalingTargetInput added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingTargetInput interface {
	pulumi.Input

	ToGetInstanceAutoscalingConfigAutoscalingTargetOutput() GetInstanceAutoscalingConfigAutoscalingTargetOutput
	ToGetInstanceAutoscalingConfigAutoscalingTargetOutputWithContext(context.Context) GetInstanceAutoscalingConfigAutoscalingTargetOutput
}

GetInstanceAutoscalingConfigAutoscalingTargetInput is an input type that accepts GetInstanceAutoscalingConfigAutoscalingTargetArgs and GetInstanceAutoscalingConfigAutoscalingTargetOutput values. You can construct a concrete instance of `GetInstanceAutoscalingConfigAutoscalingTargetInput` via:

GetInstanceAutoscalingConfigAutoscalingTargetArgs{...}

type GetInstanceAutoscalingConfigAutoscalingTargetOutput added in v7.1.0

type GetInstanceAutoscalingConfigAutoscalingTargetOutput struct{ *pulumi.OutputState }

func (GetInstanceAutoscalingConfigAutoscalingTargetOutput) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigAutoscalingTargetOutput) HighPriorityCpuUtilizationPercent added in v7.1.0

func (o GetInstanceAutoscalingConfigAutoscalingTargetOutput) HighPriorityCpuUtilizationPercent() pulumi.IntOutput

Specifies the target high priority cpu utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization)..

func (GetInstanceAutoscalingConfigAutoscalingTargetOutput) StorageUtilizationPercent added in v7.1.0

Specifies the target storage utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization).

func (GetInstanceAutoscalingConfigAutoscalingTargetOutput) ToGetInstanceAutoscalingConfigAutoscalingTargetOutput added in v7.1.0

func (o GetInstanceAutoscalingConfigAutoscalingTargetOutput) ToGetInstanceAutoscalingConfigAutoscalingTargetOutput() GetInstanceAutoscalingConfigAutoscalingTargetOutput

func (GetInstanceAutoscalingConfigAutoscalingTargetOutput) ToGetInstanceAutoscalingConfigAutoscalingTargetOutputWithContext added in v7.1.0

func (o GetInstanceAutoscalingConfigAutoscalingTargetOutput) ToGetInstanceAutoscalingConfigAutoscalingTargetOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigAutoscalingTargetOutput

type GetInstanceAutoscalingConfigInput added in v7.1.0

type GetInstanceAutoscalingConfigInput interface {
	pulumi.Input

	ToGetInstanceAutoscalingConfigOutput() GetInstanceAutoscalingConfigOutput
	ToGetInstanceAutoscalingConfigOutputWithContext(context.Context) GetInstanceAutoscalingConfigOutput
}

GetInstanceAutoscalingConfigInput is an input type that accepts GetInstanceAutoscalingConfigArgs and GetInstanceAutoscalingConfigOutput values. You can construct a concrete instance of `GetInstanceAutoscalingConfigInput` via:

GetInstanceAutoscalingConfigArgs{...}

type GetInstanceAutoscalingConfigOutput added in v7.1.0

type GetInstanceAutoscalingConfigOutput struct{ *pulumi.OutputState }

func (GetInstanceAutoscalingConfigOutput) AutoscalingLimits added in v7.1.0

Defines scale in controls to reduce the risk of response latency and outages due to abrupt scale-in events. Users can define the minimum and maximum compute capacity allocated to the instance, and the autoscaler will only scale within that range. Users can either use nodes or processing units to specify the limits, but should use the same unit to set both the minLimit and max_limit.

func (GetInstanceAutoscalingConfigOutput) AutoscalingTargets added in v7.1.0

Defines scale in controls to reduce the risk of response latency and outages due to abrupt scale-in events

func (GetInstanceAutoscalingConfigOutput) ElementType added in v7.1.0

func (GetInstanceAutoscalingConfigOutput) ToGetInstanceAutoscalingConfigOutput added in v7.1.0

func (o GetInstanceAutoscalingConfigOutput) ToGetInstanceAutoscalingConfigOutput() GetInstanceAutoscalingConfigOutput

func (GetInstanceAutoscalingConfigOutput) ToGetInstanceAutoscalingConfigOutputWithContext added in v7.1.0

func (o GetInstanceAutoscalingConfigOutput) ToGetInstanceAutoscalingConfigOutputWithContext(ctx context.Context) GetInstanceAutoscalingConfigOutput

type GetInstanceIamPolicyArgs

type GetInstanceIamPolicyArgs struct {
	// The name of the instance.
	Instance string `pulumi:"instance"`
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
}

A collection of arguments for invoking getInstanceIamPolicy.

type GetInstanceIamPolicyOutputArgs

type GetInstanceIamPolicyOutputArgs struct {
	// The name of the instance.
	Instance pulumi.StringInput `pulumi:"instance"`
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
}

A collection of arguments for invoking getInstanceIamPolicy.

func (GetInstanceIamPolicyOutputArgs) ElementType

type GetInstanceIamPolicyResult

type GetInstanceIamPolicyResult 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 GetInstanceIamPolicy

func GetInstanceIamPolicy(ctx *pulumi.Context, args *GetInstanceIamPolicyArgs, opts ...pulumi.InvokeOption) (*GetInstanceIamPolicyResult, error)

Retrieves the current IAM policy data for a Spanner instance.

## example

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.GetInstanceIamPolicy(ctx, &spanner.GetInstanceIamPolicyArgs{
			Project:  pulumi.StringRef(instance.Project),
			Instance: instance.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetInstanceIamPolicyResultOutput

type GetInstanceIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getInstanceIamPolicy.

func (GetInstanceIamPolicyResultOutput) ElementType

func (GetInstanceIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (GetInstanceIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetInstanceIamPolicyResultOutput) Instance

func (GetInstanceIamPolicyResultOutput) PolicyData

(Computed) The policy data

func (GetInstanceIamPolicyResultOutput) Project

func (GetInstanceIamPolicyResultOutput) ToGetInstanceIamPolicyResultOutput

func (o GetInstanceIamPolicyResultOutput) ToGetInstanceIamPolicyResultOutput() GetInstanceIamPolicyResultOutput

func (GetInstanceIamPolicyResultOutput) ToGetInstanceIamPolicyResultOutputWithContext

func (o GetInstanceIamPolicyResultOutput) ToGetInstanceIamPolicyResultOutputWithContext(ctx context.Context) GetInstanceIamPolicyResultOutput

type Instance

type Instance struct {
	pulumi.CustomResourceState

	// The autoscaling configuration. Autoscaling is enabled if this field is set.
	// When autoscaling is enabled, numNodes and processingUnits are treated as,
	// OUTPUT_ONLY fields and reflect the current compute capacity allocated to
	// the instance.
	// Structure is documented below.
	AutoscalingConfig InstanceAutoscalingConfigPtrOutput `pulumi:"autoscalingConfig"`
	// The name of the instance's configuration (similar but not
	// quite the same as a region) which defines the geographic placement and
	// replication of your databases in this instance. It determines where your data
	// is stored. Values are typically of the form `regional-europe-west1` , `us-central` etc.
	// In order to obtain a valid list please consult the
	// [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances).
	Config pulumi.StringOutput `pulumi:"config"`
	// The descriptive name for this instance as it appears in UIs. Must be
	// unique per project and between 4 and 30 characters in length.
	//
	// ***
	DisplayName pulumi.StringOutput `pulumi:"displayName"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// When deleting a spanner instance, this boolean option will delete all backups of this instance.
	// This must be set to true if you created a backup manually in the console.
	ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"`
	// An object containing a list of "key": value pairs.
	// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// A unique identifier for the instance, which cannot be changed after
	// the instance is created. The name must be between 6 and 30 characters
	// in length.
	//
	// If not provided, a random string starting with `tf-` will be selected.
	Name pulumi.StringOutput `pulumi:"name"`
	// The number of nodes allocated to this instance. Exactly one of either node_count or processing_units must be present in
	// terraform.
	NumNodes pulumi.IntOutput `pulumi:"numNodes"`
	// The number of processing units allocated to this instance. Exactly one of processing_units or node_count must be present
	// in terraform.
	ProcessingUnits pulumi.IntOutput `pulumi:"processingUnits"`
	// 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 combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// Instance status: `CREATING` or `READY`.
	State pulumi.StringOutput `pulumi:"state"`
}

An isolated set of Cloud Spanner resources on which databases can be hosted.

To get more information about Instance, see:

* [API documentation](https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instances) * How-to Guides

## Example Usage

### Spanner Instance Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{
			Config:      pulumi.String("regional-us-central1"),
			DisplayName: pulumi.String("Test Spanner Instance"),
			NumNodes:    pulumi.Int(2),
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Spanner Instance Processing Units

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{
			Config:          pulumi.String("regional-us-central1"),
			DisplayName:     pulumi.String("Test Spanner Instance"),
			ProcessingUnits: pulumi.Int(200),
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Spanner Instance With Autoscaling

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{
			Config:      pulumi.String("regional-us-central1"),
			DisplayName: pulumi.String("Test Spanner Instance"),
			AutoscalingConfig: &spanner.InstanceAutoscalingConfigArgs{
				AutoscalingLimits: &spanner.InstanceAutoscalingConfigAutoscalingLimitsArgs{
					MaxProcessingUnits: pulumi.Int(3000),
					MinProcessingUnits: pulumi.Int(2000),
				},
				AutoscalingTargets: &spanner.InstanceAutoscalingConfigAutoscalingTargetsArgs{
					HighPriorityCpuUtilizationPercent: pulumi.Int(75),
					StorageUtilizationPercent:         pulumi.Int(90),
				},
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Spanner Instance Multi Regional

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := spanner.NewInstance(ctx, "example", &spanner.InstanceArgs{
			Config:      pulumi.String("nam-eur-asia1"),
			DisplayName: pulumi.String("Multi Regional Instance"),
			NumNodes:    pulumi.Int(2),
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Instance can be imported using any of these accepted formats:

* `projects/{{project}}/instances/{{name}}`

* `{{project}}/{{name}}`

* `{{name}}`

When using the `pulumi import` command, Instance can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:spanner/instance:Instance default projects/{{project}}/instances/{{name}} ```

```sh $ pulumi import gcp:spanner/instance:Instance default {{project}}/{{name}} ```

```sh $ pulumi import gcp:spanner/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

type InstanceArgs

type InstanceArgs struct {
	// The autoscaling configuration. Autoscaling is enabled if this field is set.
	// When autoscaling is enabled, numNodes and processingUnits are treated as,
	// OUTPUT_ONLY fields and reflect the current compute capacity allocated to
	// the instance.
	// Structure is documented below.
	AutoscalingConfig InstanceAutoscalingConfigPtrInput
	// The name of the instance's configuration (similar but not
	// quite the same as a region) which defines the geographic placement and
	// replication of your databases in this instance. It determines where your data
	// is stored. Values are typically of the form `regional-europe-west1` , `us-central` etc.
	// In order to obtain a valid list please consult the
	// [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances).
	Config pulumi.StringInput
	// The descriptive name for this instance as it appears in UIs. Must be
	// unique per project and between 4 and 30 characters in length.
	//
	// ***
	DisplayName pulumi.StringInput
	// When deleting a spanner instance, this boolean option will delete all backups of this instance.
	// This must be set to true if you created a backup manually in the console.
	ForceDestroy pulumi.BoolPtrInput
	// An object containing a list of "key": value pairs.
	// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// A unique identifier for the instance, which cannot be changed after
	// the instance is created. The name must be between 6 and 30 characters
	// in length.
	//
	// If not provided, a random string starting with `tf-` will be selected.
	Name pulumi.StringPtrInput
	// The number of nodes allocated to this instance. Exactly one of either node_count or processing_units must be present in
	// terraform.
	NumNodes pulumi.IntPtrInput
	// The number of processing units allocated to this instance. Exactly one of processing_units or node_count must be present
	// in terraform.
	ProcessingUnits pulumi.IntPtrInput
	// 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

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

type InstanceAutoscalingConfig added in v7.1.0

type InstanceAutoscalingConfig struct {
	// Defines scale in controls to reduce the risk of response latency
	// and outages due to abrupt scale-in events. Users can define the minimum and
	// maximum compute capacity allocated to the instance, and the autoscaler will
	// only scale within that range. Users can either use nodes or processing
	// units to specify the limits, but should use the same unit to set both the
	// minLimit and max_limit.
	// Structure is documented below.
	AutoscalingLimits *InstanceAutoscalingConfigAutoscalingLimits `pulumi:"autoscalingLimits"`
	// Defines scale in controls to reduce the risk of response latency
	// and outages due to abrupt scale-in events
	// Structure is documented below.
	AutoscalingTargets *InstanceAutoscalingConfigAutoscalingTargets `pulumi:"autoscalingTargets"`
}

type InstanceAutoscalingConfigArgs added in v7.1.0

type InstanceAutoscalingConfigArgs struct {
	// Defines scale in controls to reduce the risk of response latency
	// and outages due to abrupt scale-in events. Users can define the minimum and
	// maximum compute capacity allocated to the instance, and the autoscaler will
	// only scale within that range. Users can either use nodes or processing
	// units to specify the limits, but should use the same unit to set both the
	// minLimit and max_limit.
	// Structure is documented below.
	AutoscalingLimits InstanceAutoscalingConfigAutoscalingLimitsPtrInput `pulumi:"autoscalingLimits"`
	// Defines scale in controls to reduce the risk of response latency
	// and outages due to abrupt scale-in events
	// Structure is documented below.
	AutoscalingTargets InstanceAutoscalingConfigAutoscalingTargetsPtrInput `pulumi:"autoscalingTargets"`
}

func (InstanceAutoscalingConfigArgs) ElementType added in v7.1.0

func (InstanceAutoscalingConfigArgs) ToInstanceAutoscalingConfigOutput added in v7.1.0

func (i InstanceAutoscalingConfigArgs) ToInstanceAutoscalingConfigOutput() InstanceAutoscalingConfigOutput

func (InstanceAutoscalingConfigArgs) ToInstanceAutoscalingConfigOutputWithContext added in v7.1.0

func (i InstanceAutoscalingConfigArgs) ToInstanceAutoscalingConfigOutputWithContext(ctx context.Context) InstanceAutoscalingConfigOutput

func (InstanceAutoscalingConfigArgs) ToInstanceAutoscalingConfigPtrOutput added in v7.1.0

func (i InstanceAutoscalingConfigArgs) ToInstanceAutoscalingConfigPtrOutput() InstanceAutoscalingConfigPtrOutput

func (InstanceAutoscalingConfigArgs) ToInstanceAutoscalingConfigPtrOutputWithContext added in v7.1.0

func (i InstanceAutoscalingConfigArgs) ToInstanceAutoscalingConfigPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigPtrOutput

type InstanceAutoscalingConfigAutoscalingLimits added in v7.1.0

type InstanceAutoscalingConfigAutoscalingLimits struct {
	// Specifies maximum number of nodes allocated to the instance. If set, this number
	// should be greater than or equal to min_nodes.
	MaxNodes *int `pulumi:"maxNodes"`
	// Specifies maximum number of processing units allocated to the instance.
	// If set, this number should be multiples of 1000 and be greater than or equal to
	// min_processing_units.
	MaxProcessingUnits *int `pulumi:"maxProcessingUnits"`
	// Specifies number of nodes allocated to the instance. If set, this number
	// should be greater than or equal to 1.
	MinNodes *int `pulumi:"minNodes"`
	// Specifies minimum number of processing units allocated to the instance.
	// If set, this number should be multiples of 1000.
	MinProcessingUnits *int `pulumi:"minProcessingUnits"`
}

type InstanceAutoscalingConfigAutoscalingLimitsArgs added in v7.1.0

type InstanceAutoscalingConfigAutoscalingLimitsArgs struct {
	// Specifies maximum number of nodes allocated to the instance. If set, this number
	// should be greater than or equal to min_nodes.
	MaxNodes pulumi.IntPtrInput `pulumi:"maxNodes"`
	// Specifies maximum number of processing units allocated to the instance.
	// If set, this number should be multiples of 1000 and be greater than or equal to
	// min_processing_units.
	MaxProcessingUnits pulumi.IntPtrInput `pulumi:"maxProcessingUnits"`
	// Specifies number of nodes allocated to the instance. If set, this number
	// should be greater than or equal to 1.
	MinNodes pulumi.IntPtrInput `pulumi:"minNodes"`
	// Specifies minimum number of processing units allocated to the instance.
	// If set, this number should be multiples of 1000.
	MinProcessingUnits pulumi.IntPtrInput `pulumi:"minProcessingUnits"`
}

func (InstanceAutoscalingConfigAutoscalingLimitsArgs) ElementType added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingLimitsArgs) ToInstanceAutoscalingConfigAutoscalingLimitsOutput added in v7.1.0

func (i InstanceAutoscalingConfigAutoscalingLimitsArgs) ToInstanceAutoscalingConfigAutoscalingLimitsOutput() InstanceAutoscalingConfigAutoscalingLimitsOutput

func (InstanceAutoscalingConfigAutoscalingLimitsArgs) ToInstanceAutoscalingConfigAutoscalingLimitsOutputWithContext added in v7.1.0

func (i InstanceAutoscalingConfigAutoscalingLimitsArgs) ToInstanceAutoscalingConfigAutoscalingLimitsOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingLimitsOutput

func (InstanceAutoscalingConfigAutoscalingLimitsArgs) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutput added in v7.1.0

func (i InstanceAutoscalingConfigAutoscalingLimitsArgs) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutput() InstanceAutoscalingConfigAutoscalingLimitsPtrOutput

func (InstanceAutoscalingConfigAutoscalingLimitsArgs) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutputWithContext added in v7.1.0

func (i InstanceAutoscalingConfigAutoscalingLimitsArgs) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingLimitsPtrOutput

type InstanceAutoscalingConfigAutoscalingLimitsInput added in v7.1.0

type InstanceAutoscalingConfigAutoscalingLimitsInput interface {
	pulumi.Input

	ToInstanceAutoscalingConfigAutoscalingLimitsOutput() InstanceAutoscalingConfigAutoscalingLimitsOutput
	ToInstanceAutoscalingConfigAutoscalingLimitsOutputWithContext(context.Context) InstanceAutoscalingConfigAutoscalingLimitsOutput
}

InstanceAutoscalingConfigAutoscalingLimitsInput is an input type that accepts InstanceAutoscalingConfigAutoscalingLimitsArgs and InstanceAutoscalingConfigAutoscalingLimitsOutput values. You can construct a concrete instance of `InstanceAutoscalingConfigAutoscalingLimitsInput` via:

InstanceAutoscalingConfigAutoscalingLimitsArgs{...}

type InstanceAutoscalingConfigAutoscalingLimitsOutput added in v7.1.0

type InstanceAutoscalingConfigAutoscalingLimitsOutput struct{ *pulumi.OutputState }

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) ElementType added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) MaxNodes added in v7.4.0

Specifies maximum number of nodes allocated to the instance. If set, this number should be greater than or equal to min_nodes.

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) MaxProcessingUnits added in v7.1.0

Specifies maximum number of processing units allocated to the instance. If set, this number should be multiples of 1000 and be greater than or equal to min_processing_units.

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) MinNodes added in v7.4.0

Specifies number of nodes allocated to the instance. If set, this number should be greater than or equal to 1.

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) MinProcessingUnits added in v7.1.0

Specifies minimum number of processing units allocated to the instance. If set, this number should be multiples of 1000.

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) ToInstanceAutoscalingConfigAutoscalingLimitsOutput added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingLimitsOutput) ToInstanceAutoscalingConfigAutoscalingLimitsOutput() InstanceAutoscalingConfigAutoscalingLimitsOutput

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) ToInstanceAutoscalingConfigAutoscalingLimitsOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingLimitsOutput) ToInstanceAutoscalingConfigAutoscalingLimitsOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingLimitsOutput

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutput added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingLimitsOutput) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutput() InstanceAutoscalingConfigAutoscalingLimitsPtrOutput

func (InstanceAutoscalingConfigAutoscalingLimitsOutput) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingLimitsOutput) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingLimitsPtrOutput

type InstanceAutoscalingConfigAutoscalingLimitsPtrInput added in v7.1.0

type InstanceAutoscalingConfigAutoscalingLimitsPtrInput interface {
	pulumi.Input

	ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutput() InstanceAutoscalingConfigAutoscalingLimitsPtrOutput
	ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutputWithContext(context.Context) InstanceAutoscalingConfigAutoscalingLimitsPtrOutput
}

InstanceAutoscalingConfigAutoscalingLimitsPtrInput is an input type that accepts InstanceAutoscalingConfigAutoscalingLimitsArgs, InstanceAutoscalingConfigAutoscalingLimitsPtr and InstanceAutoscalingConfigAutoscalingLimitsPtrOutput values. You can construct a concrete instance of `InstanceAutoscalingConfigAutoscalingLimitsPtrInput` via:

        InstanceAutoscalingConfigAutoscalingLimitsArgs{...}

or:

        nil

type InstanceAutoscalingConfigAutoscalingLimitsPtrOutput added in v7.1.0

type InstanceAutoscalingConfigAutoscalingLimitsPtrOutput struct{ *pulumi.OutputState }

func (InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) Elem added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) ElementType added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) MaxNodes added in v7.4.0

Specifies maximum number of nodes allocated to the instance. If set, this number should be greater than or equal to min_nodes.

func (InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) MaxProcessingUnits added in v7.1.0

Specifies maximum number of processing units allocated to the instance. If set, this number should be multiples of 1000 and be greater than or equal to min_processing_units.

func (InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) MinNodes added in v7.4.0

Specifies number of nodes allocated to the instance. If set, this number should be greater than or equal to 1.

func (InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) MinProcessingUnits added in v7.1.0

Specifies minimum number of processing units allocated to the instance. If set, this number should be multiples of 1000.

func (InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutput added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutput() InstanceAutoscalingConfigAutoscalingLimitsPtrOutput

func (InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingLimitsPtrOutput) ToInstanceAutoscalingConfigAutoscalingLimitsPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingLimitsPtrOutput

type InstanceAutoscalingConfigAutoscalingTargets added in v7.1.0

type InstanceAutoscalingConfigAutoscalingTargets struct {
	// Specifies the target high priority cpu utilization percentage that the autoscaler
	// should be trying to achieve for the instance.
	// This number is on a scale from 0 (no utilization) to 100 (full utilization)..
	HighPriorityCpuUtilizationPercent *int `pulumi:"highPriorityCpuUtilizationPercent"`
	// Specifies the target storage utilization percentage that the autoscaler
	// should be trying to achieve for the instance.
	// This number is on a scale from 0 (no utilization) to 100 (full utilization).
	StorageUtilizationPercent *int `pulumi:"storageUtilizationPercent"`
}

type InstanceAutoscalingConfigAutoscalingTargetsArgs added in v7.1.0

type InstanceAutoscalingConfigAutoscalingTargetsArgs struct {
	// Specifies the target high priority cpu utilization percentage that the autoscaler
	// should be trying to achieve for the instance.
	// This number is on a scale from 0 (no utilization) to 100 (full utilization)..
	HighPriorityCpuUtilizationPercent pulumi.IntPtrInput `pulumi:"highPriorityCpuUtilizationPercent"`
	// Specifies the target storage utilization percentage that the autoscaler
	// should be trying to achieve for the instance.
	// This number is on a scale from 0 (no utilization) to 100 (full utilization).
	StorageUtilizationPercent pulumi.IntPtrInput `pulumi:"storageUtilizationPercent"`
}

func (InstanceAutoscalingConfigAutoscalingTargetsArgs) ElementType added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingTargetsArgs) ToInstanceAutoscalingConfigAutoscalingTargetsOutput added in v7.1.0

func (i InstanceAutoscalingConfigAutoscalingTargetsArgs) ToInstanceAutoscalingConfigAutoscalingTargetsOutput() InstanceAutoscalingConfigAutoscalingTargetsOutput

func (InstanceAutoscalingConfigAutoscalingTargetsArgs) ToInstanceAutoscalingConfigAutoscalingTargetsOutputWithContext added in v7.1.0

func (i InstanceAutoscalingConfigAutoscalingTargetsArgs) ToInstanceAutoscalingConfigAutoscalingTargetsOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingTargetsOutput

func (InstanceAutoscalingConfigAutoscalingTargetsArgs) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutput added in v7.1.0

func (i InstanceAutoscalingConfigAutoscalingTargetsArgs) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutput() InstanceAutoscalingConfigAutoscalingTargetsPtrOutput

func (InstanceAutoscalingConfigAutoscalingTargetsArgs) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutputWithContext added in v7.1.0

func (i InstanceAutoscalingConfigAutoscalingTargetsArgs) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingTargetsPtrOutput

type InstanceAutoscalingConfigAutoscalingTargetsInput added in v7.1.0

type InstanceAutoscalingConfigAutoscalingTargetsInput interface {
	pulumi.Input

	ToInstanceAutoscalingConfigAutoscalingTargetsOutput() InstanceAutoscalingConfigAutoscalingTargetsOutput
	ToInstanceAutoscalingConfigAutoscalingTargetsOutputWithContext(context.Context) InstanceAutoscalingConfigAutoscalingTargetsOutput
}

InstanceAutoscalingConfigAutoscalingTargetsInput is an input type that accepts InstanceAutoscalingConfigAutoscalingTargetsArgs and InstanceAutoscalingConfigAutoscalingTargetsOutput values. You can construct a concrete instance of `InstanceAutoscalingConfigAutoscalingTargetsInput` via:

InstanceAutoscalingConfigAutoscalingTargetsArgs{...}

type InstanceAutoscalingConfigAutoscalingTargetsOutput added in v7.1.0

type InstanceAutoscalingConfigAutoscalingTargetsOutput struct{ *pulumi.OutputState }

func (InstanceAutoscalingConfigAutoscalingTargetsOutput) ElementType added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingTargetsOutput) HighPriorityCpuUtilizationPercent added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingTargetsOutput) HighPriorityCpuUtilizationPercent() pulumi.IntPtrOutput

Specifies the target high priority cpu utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization)..

func (InstanceAutoscalingConfigAutoscalingTargetsOutput) StorageUtilizationPercent added in v7.1.0

Specifies the target storage utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization).

func (InstanceAutoscalingConfigAutoscalingTargetsOutput) ToInstanceAutoscalingConfigAutoscalingTargetsOutput added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingTargetsOutput) ToInstanceAutoscalingConfigAutoscalingTargetsOutput() InstanceAutoscalingConfigAutoscalingTargetsOutput

func (InstanceAutoscalingConfigAutoscalingTargetsOutput) ToInstanceAutoscalingConfigAutoscalingTargetsOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingTargetsOutput) ToInstanceAutoscalingConfigAutoscalingTargetsOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingTargetsOutput

func (InstanceAutoscalingConfigAutoscalingTargetsOutput) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutput added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingTargetsOutput) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutput() InstanceAutoscalingConfigAutoscalingTargetsPtrOutput

func (InstanceAutoscalingConfigAutoscalingTargetsOutput) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingTargetsOutput) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingTargetsPtrOutput

type InstanceAutoscalingConfigAutoscalingTargetsPtrInput added in v7.1.0

type InstanceAutoscalingConfigAutoscalingTargetsPtrInput interface {
	pulumi.Input

	ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutput() InstanceAutoscalingConfigAutoscalingTargetsPtrOutput
	ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutputWithContext(context.Context) InstanceAutoscalingConfigAutoscalingTargetsPtrOutput
}

InstanceAutoscalingConfigAutoscalingTargetsPtrInput is an input type that accepts InstanceAutoscalingConfigAutoscalingTargetsArgs, InstanceAutoscalingConfigAutoscalingTargetsPtr and InstanceAutoscalingConfigAutoscalingTargetsPtrOutput values. You can construct a concrete instance of `InstanceAutoscalingConfigAutoscalingTargetsPtrInput` via:

        InstanceAutoscalingConfigAutoscalingTargetsArgs{...}

or:

        nil

type InstanceAutoscalingConfigAutoscalingTargetsPtrOutput added in v7.1.0

type InstanceAutoscalingConfigAutoscalingTargetsPtrOutput struct{ *pulumi.OutputState }

func (InstanceAutoscalingConfigAutoscalingTargetsPtrOutput) Elem added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingTargetsPtrOutput) ElementType added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingTargetsPtrOutput) HighPriorityCpuUtilizationPercent added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingTargetsPtrOutput) HighPriorityCpuUtilizationPercent() pulumi.IntPtrOutput

Specifies the target high priority cpu utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization)..

func (InstanceAutoscalingConfigAutoscalingTargetsPtrOutput) StorageUtilizationPercent added in v7.1.0

Specifies the target storage utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization).

func (InstanceAutoscalingConfigAutoscalingTargetsPtrOutput) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutput added in v7.1.0

func (InstanceAutoscalingConfigAutoscalingTargetsPtrOutput) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigAutoscalingTargetsPtrOutput) ToInstanceAutoscalingConfigAutoscalingTargetsPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigAutoscalingTargetsPtrOutput

type InstanceAutoscalingConfigInput added in v7.1.0

type InstanceAutoscalingConfigInput interface {
	pulumi.Input

	ToInstanceAutoscalingConfigOutput() InstanceAutoscalingConfigOutput
	ToInstanceAutoscalingConfigOutputWithContext(context.Context) InstanceAutoscalingConfigOutput
}

InstanceAutoscalingConfigInput is an input type that accepts InstanceAutoscalingConfigArgs and InstanceAutoscalingConfigOutput values. You can construct a concrete instance of `InstanceAutoscalingConfigInput` via:

InstanceAutoscalingConfigArgs{...}

type InstanceAutoscalingConfigOutput added in v7.1.0

type InstanceAutoscalingConfigOutput struct{ *pulumi.OutputState }

func (InstanceAutoscalingConfigOutput) AutoscalingLimits added in v7.1.0

Defines scale in controls to reduce the risk of response latency and outages due to abrupt scale-in events. Users can define the minimum and maximum compute capacity allocated to the instance, and the autoscaler will only scale within that range. Users can either use nodes or processing units to specify the limits, but should use the same unit to set both the minLimit and max_limit. Structure is documented below.

func (InstanceAutoscalingConfigOutput) AutoscalingTargets added in v7.1.0

Defines scale in controls to reduce the risk of response latency and outages due to abrupt scale-in events Structure is documented below.

func (InstanceAutoscalingConfigOutput) ElementType added in v7.1.0

func (InstanceAutoscalingConfigOutput) ToInstanceAutoscalingConfigOutput added in v7.1.0

func (o InstanceAutoscalingConfigOutput) ToInstanceAutoscalingConfigOutput() InstanceAutoscalingConfigOutput

func (InstanceAutoscalingConfigOutput) ToInstanceAutoscalingConfigOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigOutput) ToInstanceAutoscalingConfigOutputWithContext(ctx context.Context) InstanceAutoscalingConfigOutput

func (InstanceAutoscalingConfigOutput) ToInstanceAutoscalingConfigPtrOutput added in v7.1.0

func (o InstanceAutoscalingConfigOutput) ToInstanceAutoscalingConfigPtrOutput() InstanceAutoscalingConfigPtrOutput

func (InstanceAutoscalingConfigOutput) ToInstanceAutoscalingConfigPtrOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigOutput) ToInstanceAutoscalingConfigPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigPtrOutput

type InstanceAutoscalingConfigPtrInput added in v7.1.0

type InstanceAutoscalingConfigPtrInput interface {
	pulumi.Input

	ToInstanceAutoscalingConfigPtrOutput() InstanceAutoscalingConfigPtrOutput
	ToInstanceAutoscalingConfigPtrOutputWithContext(context.Context) InstanceAutoscalingConfigPtrOutput
}

InstanceAutoscalingConfigPtrInput is an input type that accepts InstanceAutoscalingConfigArgs, InstanceAutoscalingConfigPtr and InstanceAutoscalingConfigPtrOutput values. You can construct a concrete instance of `InstanceAutoscalingConfigPtrInput` via:

        InstanceAutoscalingConfigArgs{...}

or:

        nil

func InstanceAutoscalingConfigPtr added in v7.1.0

type InstanceAutoscalingConfigPtrOutput added in v7.1.0

type InstanceAutoscalingConfigPtrOutput struct{ *pulumi.OutputState }

func (InstanceAutoscalingConfigPtrOutput) AutoscalingLimits added in v7.1.0

Defines scale in controls to reduce the risk of response latency and outages due to abrupt scale-in events. Users can define the minimum and maximum compute capacity allocated to the instance, and the autoscaler will only scale within that range. Users can either use nodes or processing units to specify the limits, but should use the same unit to set both the minLimit and max_limit. Structure is documented below.

func (InstanceAutoscalingConfigPtrOutput) AutoscalingTargets added in v7.1.0

Defines scale in controls to reduce the risk of response latency and outages due to abrupt scale-in events Structure is documented below.

func (InstanceAutoscalingConfigPtrOutput) Elem added in v7.1.0

func (InstanceAutoscalingConfigPtrOutput) ElementType added in v7.1.0

func (InstanceAutoscalingConfigPtrOutput) ToInstanceAutoscalingConfigPtrOutput added in v7.1.0

func (o InstanceAutoscalingConfigPtrOutput) ToInstanceAutoscalingConfigPtrOutput() InstanceAutoscalingConfigPtrOutput

func (InstanceAutoscalingConfigPtrOutput) ToInstanceAutoscalingConfigPtrOutputWithContext added in v7.1.0

func (o InstanceAutoscalingConfigPtrOutput) ToInstanceAutoscalingConfigPtrOutputWithContext(ctx context.Context) InstanceAutoscalingConfigPtrOutput

type InstanceIAMBinding

type InstanceIAMBinding struct {
	pulumi.CustomResourceState

	Condition InstanceIAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the instance's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name of the instance.
	Instance pulumi.StringOutput `pulumi:"instance"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The 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 role that should be applied. Only one
	// `spanner.InstanceIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage your IAM policy for a Spanner instance. Each of these resources serves a different use case:

* `spanner.InstanceIAMPolicy`: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached.

> **Warning:** It's entirely possibly to lock yourself out of your instance using `spanner.InstanceIAMPolicy`. Any permissions granted by default will be removed unless you include them in your config.

* `spanner.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. * `spanner.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:** `spanner.InstanceIAMPolicy` **cannot** be used in conjunction with `spanner.InstanceIAMBinding` and `spanner.InstanceIAMMember` or they will fight over what your policy should be.

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

## google\_spanner\_instance\_iam\_policy

```go package main

import (

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

```

## google\_spanner\_instance\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_policy

```go package main

import (

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

```

## google\_spanner\_instance\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Spanner Instances resource . For example:

* `{{project}}/{{instance}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{project}}/{{instance}}

to = google_spanner_instance_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:spanner/instanceIAMBinding:InstanceIAMBinding default {{project}}/{{instance}} ```

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

type InstanceIAMBindingArgs

type InstanceIAMBindingArgs struct {
	Condition InstanceIAMBindingConditionPtrInput
	// The name of the instance.
	Instance pulumi.StringInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `spanner.InstanceIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a 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

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

type InstanceIAMBindingCondition

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

type InstanceIAMBindingConditionArgs

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

func (InstanceIAMBindingConditionArgs) ElementType

func (InstanceIAMBindingConditionArgs) ToInstanceIAMBindingConditionOutput

func (i InstanceIAMBindingConditionArgs) ToInstanceIAMBindingConditionOutput() InstanceIAMBindingConditionOutput

func (InstanceIAMBindingConditionArgs) ToInstanceIAMBindingConditionOutputWithContext

func (i InstanceIAMBindingConditionArgs) ToInstanceIAMBindingConditionOutputWithContext(ctx context.Context) InstanceIAMBindingConditionOutput

func (InstanceIAMBindingConditionArgs) ToInstanceIAMBindingConditionPtrOutput

func (i InstanceIAMBindingConditionArgs) ToInstanceIAMBindingConditionPtrOutput() InstanceIAMBindingConditionPtrOutput

func (InstanceIAMBindingConditionArgs) ToInstanceIAMBindingConditionPtrOutputWithContext

func (i InstanceIAMBindingConditionArgs) ToInstanceIAMBindingConditionPtrOutputWithContext(ctx context.Context) InstanceIAMBindingConditionPtrOutput

type InstanceIAMBindingConditionInput

type InstanceIAMBindingConditionInput interface {
	pulumi.Input

	ToInstanceIAMBindingConditionOutput() InstanceIAMBindingConditionOutput
	ToInstanceIAMBindingConditionOutputWithContext(context.Context) InstanceIAMBindingConditionOutput
}

InstanceIAMBindingConditionInput is an input type that accepts InstanceIAMBindingConditionArgs and InstanceIAMBindingConditionOutput values. You can construct a concrete instance of `InstanceIAMBindingConditionInput` via:

InstanceIAMBindingConditionArgs{...}

type InstanceIAMBindingConditionOutput

type InstanceIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (InstanceIAMBindingConditionOutput) Description

func (InstanceIAMBindingConditionOutput) ElementType

func (InstanceIAMBindingConditionOutput) Expression

func (InstanceIAMBindingConditionOutput) Title

func (InstanceIAMBindingConditionOutput) ToInstanceIAMBindingConditionOutput

func (o InstanceIAMBindingConditionOutput) ToInstanceIAMBindingConditionOutput() InstanceIAMBindingConditionOutput

func (InstanceIAMBindingConditionOutput) ToInstanceIAMBindingConditionOutputWithContext

func (o InstanceIAMBindingConditionOutput) ToInstanceIAMBindingConditionOutputWithContext(ctx context.Context) InstanceIAMBindingConditionOutput

func (InstanceIAMBindingConditionOutput) ToInstanceIAMBindingConditionPtrOutput

func (o InstanceIAMBindingConditionOutput) ToInstanceIAMBindingConditionPtrOutput() InstanceIAMBindingConditionPtrOutput

func (InstanceIAMBindingConditionOutput) ToInstanceIAMBindingConditionPtrOutputWithContext

func (o InstanceIAMBindingConditionOutput) ToInstanceIAMBindingConditionPtrOutputWithContext(ctx context.Context) InstanceIAMBindingConditionPtrOutput

type InstanceIAMBindingConditionPtrInput

type InstanceIAMBindingConditionPtrInput interface {
	pulumi.Input

	ToInstanceIAMBindingConditionPtrOutput() InstanceIAMBindingConditionPtrOutput
	ToInstanceIAMBindingConditionPtrOutputWithContext(context.Context) InstanceIAMBindingConditionPtrOutput
}

InstanceIAMBindingConditionPtrInput is an input type that accepts InstanceIAMBindingConditionArgs, InstanceIAMBindingConditionPtr and InstanceIAMBindingConditionPtrOutput values. You can construct a concrete instance of `InstanceIAMBindingConditionPtrInput` via:

        InstanceIAMBindingConditionArgs{...}

or:

        nil

type InstanceIAMBindingConditionPtrOutput

type InstanceIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (InstanceIAMBindingConditionPtrOutput) Description

func (InstanceIAMBindingConditionPtrOutput) Elem

func (InstanceIAMBindingConditionPtrOutput) ElementType

func (InstanceIAMBindingConditionPtrOutput) Expression

func (InstanceIAMBindingConditionPtrOutput) Title

func (InstanceIAMBindingConditionPtrOutput) ToInstanceIAMBindingConditionPtrOutput

func (o InstanceIAMBindingConditionPtrOutput) ToInstanceIAMBindingConditionPtrOutput() InstanceIAMBindingConditionPtrOutput

func (InstanceIAMBindingConditionPtrOutput) ToInstanceIAMBindingConditionPtrOutputWithContext

func (o InstanceIAMBindingConditionPtrOutput) ToInstanceIAMBindingConditionPtrOutputWithContext(ctx context.Context) InstanceIAMBindingConditionPtrOutput

type InstanceIAMBindingInput

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

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

type InstanceIAMBindingOutput

type InstanceIAMBindingOutput struct{ *pulumi.OutputState }

func (InstanceIAMBindingOutput) Condition

func (InstanceIAMBindingOutput) ElementType

func (InstanceIAMBindingOutput) ElementType() reflect.Type

func (InstanceIAMBindingOutput) Etag

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

func (InstanceIAMBindingOutput) Instance

The name of the instance.

func (InstanceIAMBindingOutput) Members

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

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

func (InstanceIAMBindingOutput) Role

The role that should be applied. Only one `spanner.InstanceIAMBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (InstanceIAMBindingOutput) ToInstanceIAMBindingOutput

func (o InstanceIAMBindingOutput) ToInstanceIAMBindingOutput() InstanceIAMBindingOutput

func (InstanceIAMBindingOutput) ToInstanceIAMBindingOutputWithContext

func (o InstanceIAMBindingOutput) ToInstanceIAMBindingOutputWithContext(ctx context.Context) InstanceIAMBindingOutput

type InstanceIAMBindingState

type InstanceIAMBindingState struct {
	Condition InstanceIAMBindingConditionPtrInput
	// (Computed) The etag of the instance's IAM policy.
	Etag pulumi.StringPtrInput
	// The name of the instance.
	Instance pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `spanner.InstanceIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (InstanceIAMBindingState) ElementType

func (InstanceIAMBindingState) ElementType() reflect.Type

type InstanceIAMMember

type InstanceIAMMember struct {
	pulumi.CustomResourceState

	Condition InstanceIAMMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the instance's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name of the instance.
	Instance pulumi.StringOutput `pulumi:"instance"`
	// 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.
	Member pulumi.StringOutput `pulumi:"member"`
	// 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 role that should be applied. Only one
	// `spanner.InstanceIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage your IAM policy for a Spanner instance. Each of these resources serves a different use case:

* `spanner.InstanceIAMPolicy`: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached.

> **Warning:** It's entirely possibly to lock yourself out of your instance using `spanner.InstanceIAMPolicy`. Any permissions granted by default will be removed unless you include them in your config.

* `spanner.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. * `spanner.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:** `spanner.InstanceIAMPolicy` **cannot** be used in conjunction with `spanner.InstanceIAMBinding` and `spanner.InstanceIAMMember` or they will fight over what your policy should be.

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

## google\_spanner\_instance\_iam\_policy

```go package main

import (

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

```

## google\_spanner\_instance\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_policy

```go package main

import (

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

```

## google\_spanner\_instance\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Spanner Instances resource . For example:

* `{{project}}/{{instance}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{project}}/{{instance}}

to = google_spanner_instance_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:spanner/instanceIAMMember:InstanceIAMMember default {{project}}/{{instance}} ```

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

type InstanceIAMMemberArgs

type InstanceIAMMemberArgs struct {
	Condition InstanceIAMMemberConditionPtrInput
	// The name of the instance.
	Instance pulumi.StringInput
	// 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.
	Member pulumi.StringInput
	// The ID of the project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `spanner.InstanceIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a 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

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

type InstanceIAMMemberCondition

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

type InstanceIAMMemberConditionArgs

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

func (InstanceIAMMemberConditionArgs) ElementType

func (InstanceIAMMemberConditionArgs) ToInstanceIAMMemberConditionOutput

func (i InstanceIAMMemberConditionArgs) ToInstanceIAMMemberConditionOutput() InstanceIAMMemberConditionOutput

func (InstanceIAMMemberConditionArgs) ToInstanceIAMMemberConditionOutputWithContext

func (i InstanceIAMMemberConditionArgs) ToInstanceIAMMemberConditionOutputWithContext(ctx context.Context) InstanceIAMMemberConditionOutput

func (InstanceIAMMemberConditionArgs) ToInstanceIAMMemberConditionPtrOutput

func (i InstanceIAMMemberConditionArgs) ToInstanceIAMMemberConditionPtrOutput() InstanceIAMMemberConditionPtrOutput

func (InstanceIAMMemberConditionArgs) ToInstanceIAMMemberConditionPtrOutputWithContext

func (i InstanceIAMMemberConditionArgs) ToInstanceIAMMemberConditionPtrOutputWithContext(ctx context.Context) InstanceIAMMemberConditionPtrOutput

type InstanceIAMMemberConditionInput

type InstanceIAMMemberConditionInput interface {
	pulumi.Input

	ToInstanceIAMMemberConditionOutput() InstanceIAMMemberConditionOutput
	ToInstanceIAMMemberConditionOutputWithContext(context.Context) InstanceIAMMemberConditionOutput
}

InstanceIAMMemberConditionInput is an input type that accepts InstanceIAMMemberConditionArgs and InstanceIAMMemberConditionOutput values. You can construct a concrete instance of `InstanceIAMMemberConditionInput` via:

InstanceIAMMemberConditionArgs{...}

type InstanceIAMMemberConditionOutput

type InstanceIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (InstanceIAMMemberConditionOutput) Description

func (InstanceIAMMemberConditionOutput) ElementType

func (InstanceIAMMemberConditionOutput) Expression

func (InstanceIAMMemberConditionOutput) Title

func (InstanceIAMMemberConditionOutput) ToInstanceIAMMemberConditionOutput

func (o InstanceIAMMemberConditionOutput) ToInstanceIAMMemberConditionOutput() InstanceIAMMemberConditionOutput

func (InstanceIAMMemberConditionOutput) ToInstanceIAMMemberConditionOutputWithContext

func (o InstanceIAMMemberConditionOutput) ToInstanceIAMMemberConditionOutputWithContext(ctx context.Context) InstanceIAMMemberConditionOutput

func (InstanceIAMMemberConditionOutput) ToInstanceIAMMemberConditionPtrOutput

func (o InstanceIAMMemberConditionOutput) ToInstanceIAMMemberConditionPtrOutput() InstanceIAMMemberConditionPtrOutput

func (InstanceIAMMemberConditionOutput) ToInstanceIAMMemberConditionPtrOutputWithContext

func (o InstanceIAMMemberConditionOutput) ToInstanceIAMMemberConditionPtrOutputWithContext(ctx context.Context) InstanceIAMMemberConditionPtrOutput

type InstanceIAMMemberConditionPtrInput

type InstanceIAMMemberConditionPtrInput interface {
	pulumi.Input

	ToInstanceIAMMemberConditionPtrOutput() InstanceIAMMemberConditionPtrOutput
	ToInstanceIAMMemberConditionPtrOutputWithContext(context.Context) InstanceIAMMemberConditionPtrOutput
}

InstanceIAMMemberConditionPtrInput is an input type that accepts InstanceIAMMemberConditionArgs, InstanceIAMMemberConditionPtr and InstanceIAMMemberConditionPtrOutput values. You can construct a concrete instance of `InstanceIAMMemberConditionPtrInput` via:

        InstanceIAMMemberConditionArgs{...}

or:

        nil

type InstanceIAMMemberConditionPtrOutput

type InstanceIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (InstanceIAMMemberConditionPtrOutput) Description

func (InstanceIAMMemberConditionPtrOutput) Elem

func (InstanceIAMMemberConditionPtrOutput) ElementType

func (InstanceIAMMemberConditionPtrOutput) Expression

func (InstanceIAMMemberConditionPtrOutput) Title

func (InstanceIAMMemberConditionPtrOutput) ToInstanceIAMMemberConditionPtrOutput

func (o InstanceIAMMemberConditionPtrOutput) ToInstanceIAMMemberConditionPtrOutput() InstanceIAMMemberConditionPtrOutput

func (InstanceIAMMemberConditionPtrOutput) ToInstanceIAMMemberConditionPtrOutputWithContext

func (o InstanceIAMMemberConditionPtrOutput) ToInstanceIAMMemberConditionPtrOutputWithContext(ctx context.Context) InstanceIAMMemberConditionPtrOutput

type InstanceIAMMemberInput

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

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

type InstanceIAMMemberOutput

type InstanceIAMMemberOutput struct{ *pulumi.OutputState }

func (InstanceIAMMemberOutput) Condition

func (InstanceIAMMemberOutput) ElementType

func (InstanceIAMMemberOutput) ElementType() reflect.Type

func (InstanceIAMMemberOutput) Etag

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

func (InstanceIAMMemberOutput) Instance

The name of the instance.

func (InstanceIAMMemberOutput) Member

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

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

func (InstanceIAMMemberOutput) Role

The role that should be applied. Only one `spanner.InstanceIAMBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (InstanceIAMMemberOutput) ToInstanceIAMMemberOutput

func (o InstanceIAMMemberOutput) ToInstanceIAMMemberOutput() InstanceIAMMemberOutput

func (InstanceIAMMemberOutput) ToInstanceIAMMemberOutputWithContext

func (o InstanceIAMMemberOutput) ToInstanceIAMMemberOutputWithContext(ctx context.Context) InstanceIAMMemberOutput

type InstanceIAMMemberState

type InstanceIAMMemberState struct {
	Condition InstanceIAMMemberConditionPtrInput
	// (Computed) The etag of the instance's IAM policy.
	Etag pulumi.StringPtrInput
	// The name of the instance.
	Instance pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Member 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 role that should be applied. Only one
	// `spanner.InstanceIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (InstanceIAMMemberState) ElementType

func (InstanceIAMMemberState) ElementType() reflect.Type

type InstanceIAMPolicy

type InstanceIAMPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the instance's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The name of the instance.
	Instance pulumi.StringOutput `pulumi:"instance"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// 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"`
}

Three different resources help you manage your IAM policy for a Spanner instance. Each of these resources serves a different use case:

* `spanner.InstanceIAMPolicy`: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached.

> **Warning:** It's entirely possibly to lock yourself out of your instance using `spanner.InstanceIAMPolicy`. Any permissions granted by default will be removed unless you include them in your config.

* `spanner.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. * `spanner.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:** `spanner.InstanceIAMPolicy` **cannot** be used in conjunction with `spanner.InstanceIAMBinding` and `spanner.InstanceIAMMember` or they will fight over what your policy should be.

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

## google\_spanner\_instance\_iam\_policy

```go package main

import (

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

```

## google\_spanner\_instance\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_policy

```go package main

import (

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

```

## google\_spanner\_instance\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_spanner\_instance\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/spanner"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Spanner Instances resource . For example:

* `{{project}}/{{instance}}`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = {{project}}/{{instance}}

to = google_spanner_instance_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:spanner/instanceIAMPolicy:InstanceIAMPolicy default {{project}}/{{instance}} ```

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

type InstanceIAMPolicyArgs

type InstanceIAMPolicyArgs struct {
	// The name of the instance.
	Instance pulumi.StringInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// 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 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

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

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

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

type InstanceIAMPolicyOutput

type InstanceIAMPolicyOutput struct{ *pulumi.OutputState }

func (InstanceIAMPolicyOutput) ElementType

func (InstanceIAMPolicyOutput) ElementType() reflect.Type

func (InstanceIAMPolicyOutput) Etag

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

func (InstanceIAMPolicyOutput) Instance

The name of the instance.

func (InstanceIAMPolicyOutput) PolicyData

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

func (InstanceIAMPolicyOutput) Project

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

func (InstanceIAMPolicyOutput) ToInstanceIAMPolicyOutput

func (o InstanceIAMPolicyOutput) ToInstanceIAMPolicyOutput() InstanceIAMPolicyOutput

func (InstanceIAMPolicyOutput) ToInstanceIAMPolicyOutputWithContext

func (o InstanceIAMPolicyOutput) ToInstanceIAMPolicyOutputWithContext(ctx context.Context) InstanceIAMPolicyOutput

type InstanceIAMPolicyState

type InstanceIAMPolicyState struct {
	// (Computed) The etag of the instance's IAM policy.
	Etag pulumi.StringPtrInput
	// The name of the instance.
	Instance pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData 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 (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

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

type InstanceOutput

type InstanceOutput struct{ *pulumi.OutputState }

func (InstanceOutput) AutoscalingConfig added in v7.1.0

func (o InstanceOutput) AutoscalingConfig() InstanceAutoscalingConfigPtrOutput

The autoscaling configuration. Autoscaling is enabled if this field is set. When autoscaling is enabled, numNodes and processingUnits are treated as, OUTPUT_ONLY fields and reflect the current compute capacity allocated to the instance. Structure is documented below.

func (InstanceOutput) Config

func (o InstanceOutput) Config() pulumi.StringOutput

The name of the instance's configuration (similar but not quite the same as a region) which defines the geographic placement and replication of your databases in this instance. It determines where your data is stored. Values are typically of the form `regional-europe-west1` , `us-central` etc. In order to obtain a valid list please consult the [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances).

func (InstanceOutput) DisplayName

func (o InstanceOutput) DisplayName() pulumi.StringOutput

The descriptive name for this instance as it appears in UIs. Must be unique per project and between 4 and 30 characters in length.

***

func (InstanceOutput) EffectiveLabels

func (o InstanceOutput) EffectiveLabels() pulumi.StringMapOutput

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

func (InstanceOutput) ElementType

func (InstanceOutput) ElementType() reflect.Type

func (InstanceOutput) ForceDestroy

func (o InstanceOutput) ForceDestroy() pulumi.BoolPtrOutput

When deleting a spanner instance, this boolean option will delete all backups of this instance. This must be set to true if you created a backup manually in the console.

func (InstanceOutput) Labels

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effectiveLabels` for all of the labels present on the resource.

func (InstanceOutput) Name

A unique identifier for the instance, which cannot be changed after the instance is created. The name must be between 6 and 30 characters in length.

If not provided, a random string starting with `tf-` will be selected.

func (InstanceOutput) NumNodes

func (o InstanceOutput) NumNodes() pulumi.IntOutput

The number of nodes allocated to this instance. Exactly one of either node_count or processing_units must be present in terraform.

func (InstanceOutput) ProcessingUnits

func (o InstanceOutput) ProcessingUnits() pulumi.IntOutput

The number of processing units allocated to this instance. Exactly one of processing_units or node_count must be present in terraform.

func (InstanceOutput) Project

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

func (o InstanceOutput) PulumiLabels() pulumi.StringMapOutput

The combination of labels configured directly on the resource and default labels configured on the provider.

func (InstanceOutput) State

Instance status: `CREATING` or `READY`.

func (InstanceOutput) ToInstanceOutput

func (o InstanceOutput) ToInstanceOutput() InstanceOutput

func (InstanceOutput) ToInstanceOutputWithContext

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

type InstanceState

type InstanceState struct {
	// The autoscaling configuration. Autoscaling is enabled if this field is set.
	// When autoscaling is enabled, numNodes and processingUnits are treated as,
	// OUTPUT_ONLY fields and reflect the current compute capacity allocated to
	// the instance.
	// Structure is documented below.
	AutoscalingConfig InstanceAutoscalingConfigPtrInput
	// The name of the instance's configuration (similar but not
	// quite the same as a region) which defines the geographic placement and
	// replication of your databases in this instance. It determines where your data
	// is stored. Values are typically of the form `regional-europe-west1` , `us-central` etc.
	// In order to obtain a valid list please consult the
	// [Configuration section of the docs](https://cloud.google.com/spanner/docs/instances).
	Config pulumi.StringPtrInput
	// The descriptive name for this instance as it appears in UIs. Must be
	// unique per project and between 4 and 30 characters in length.
	//
	// ***
	DisplayName pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// When deleting a spanner instance, this boolean option will delete all backups of this instance.
	// This must be set to true if you created a backup manually in the console.
	ForceDestroy pulumi.BoolPtrInput
	// An object containing a list of "key": value pairs.
	// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// A unique identifier for the instance, which cannot be changed after
	// the instance is created. The name must be between 6 and 30 characters
	// in length.
	//
	// If not provided, a random string starting with `tf-` will be selected.
	Name pulumi.StringPtrInput
	// The number of nodes allocated to this instance. Exactly one of either node_count or processing_units must be present in
	// terraform.
	NumNodes pulumi.IntPtrInput
	// The number of processing units allocated to this instance. Exactly one of processing_units or node_count must be present
	// in terraform.
	ProcessingUnits pulumi.IntPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// Instance status: `CREATING` or `READY`.
	State pulumi.StringPtrInput
}

func (InstanceState) ElementType

func (InstanceState) ElementType() reflect.Type

type LookupInstanceArgs

type LookupInstanceArgs struct {
	Config      *string `pulumi:"config"`
	DisplayName *string `pulumi:"displayName"`
	// The name of the spanner instance.
	//
	// ***
	Name string `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
}

A collection of arguments for invoking getInstance.

type LookupInstanceOutputArgs

type LookupInstanceOutputArgs struct {
	Config      pulumi.StringPtrInput `pulumi:"config"`
	DisplayName pulumi.StringPtrInput `pulumi:"displayName"`
	// The name of the spanner instance.
	//
	// ***
	Name pulumi.StringInput `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
}

A collection of arguments for invoking getInstance.

func (LookupInstanceOutputArgs) ElementType

func (LookupInstanceOutputArgs) ElementType() reflect.Type

type LookupInstanceResult

type LookupInstanceResult struct {
	AutoscalingConfigs []GetInstanceAutoscalingConfig `pulumi:"autoscalingConfigs"`
	Config             *string                        `pulumi:"config"`
	DisplayName        *string                        `pulumi:"displayName"`
	EffectiveLabels    map[string]string              `pulumi:"effectiveLabels"`
	ForceDestroy       bool                           `pulumi:"forceDestroy"`
	// The provider-assigned unique ID for this managed resource.
	Id              string            `pulumi:"id"`
	Labels          map[string]string `pulumi:"labels"`
	Name            string            `pulumi:"name"`
	NumNodes        int               `pulumi:"numNodes"`
	ProcessingUnits int               `pulumi:"processingUnits"`
	Project         *string           `pulumi:"project"`
	PulumiLabels    map[string]string `pulumi:"pulumiLabels"`
	State           string            `pulumi:"state"`
}

A collection of values returned by getInstance.

func LookupInstance

func LookupInstance(ctx *pulumi.Context, args *LookupInstanceArgs, opts ...pulumi.InvokeOption) (*LookupInstanceResult, error)

Get a spanner instance from Google Cloud by its name.

## Example Usage

type LookupInstanceResultOutput

type LookupInstanceResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getInstance.

func (LookupInstanceResultOutput) AutoscalingConfigs added in v7.1.0

func (LookupInstanceResultOutput) Config

func (LookupInstanceResultOutput) DisplayName

func (LookupInstanceResultOutput) EffectiveLabels

func (LookupInstanceResultOutput) ElementType

func (LookupInstanceResultOutput) ElementType() reflect.Type

func (LookupInstanceResultOutput) ForceDestroy

func (o LookupInstanceResultOutput) ForceDestroy() pulumi.BoolOutput

func (LookupInstanceResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupInstanceResultOutput) Labels

func (LookupInstanceResultOutput) Name

func (LookupInstanceResultOutput) NumNodes

func (LookupInstanceResultOutput) ProcessingUnits

func (o LookupInstanceResultOutput) ProcessingUnits() pulumi.IntOutput

func (LookupInstanceResultOutput) Project

func (LookupInstanceResultOutput) PulumiLabels

func (LookupInstanceResultOutput) State

func (LookupInstanceResultOutput) ToLookupInstanceResultOutput

func (o LookupInstanceResultOutput) ToLookupInstanceResultOutput() LookupInstanceResultOutput

func (LookupInstanceResultOutput) ToLookupInstanceResultOutputWithContext

func (o LookupInstanceResultOutput) ToLookupInstanceResultOutputWithContext(ctx context.Context) LookupInstanceResultOutput

Jump to

Keyboard shortcuts

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