kms

package
v5.26.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CryptoKey

type CryptoKey struct {
	pulumi.CustomResourceState

	// The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
	// If not specified at creation time, the default duration is 24 hours.
	DestroyScheduledDuration pulumi.StringOutput `pulumi:"destroyScheduledDuration"`
	// Whether this key may contain imported versions only.
	ImportOnly pulumi.BoolOutput `pulumi:"importOnly"`
	// The KeyRing that this key belongs to.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
	KeyRing pulumi.StringOutput `pulumi:"keyRing"`
	// Labels with user-defined metadata to apply to this resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// The resource name for the CryptoKey.
	Name pulumi.StringOutput `pulumi:"name"`
	// The immutable purpose of this CryptoKey. See the
	// [purpose reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys#CryptoKeyPurpose)
	// for possible inputs.
	// Default value is `ENCRYPT_DECRYPT`.
	// Possible values are `ENCRYPT_DECRYPT`, `ASYMMETRIC_SIGN`, and `ASYMMETRIC_DECRYPT`.
	Purpose pulumi.StringPtrOutput `pulumi:"purpose"`
	// Every time this period passes, generate a new CryptoKeyVersion and set it as the primary.
	// The first rotation will take place after the specified period. The rotation period has
	// the format of a decimal number with up to 9 fractional digits, followed by the
	// letter `s` (seconds). It must be greater than a day (ie, 86400).
	RotationPeriod pulumi.StringPtrOutput `pulumi:"rotationPeriod"`
	// The self link of the created KeyRing in the format projects/{project}/locations/{location}/keyRings/{name}.
	//
	// Deprecated: Deprecated in favor of id, which contains an identical value. This field will be removed in the next major release of the provider.
	SelfLink pulumi.StringOutput `pulumi:"selfLink"`
	// If set to true, the request will create a CryptoKey without any CryptoKeyVersions.
	// You must use the `kms.KeyRingImportJob` resource to import the CryptoKeyVersion.
	SkipInitialVersionCreation pulumi.BoolPtrOutput `pulumi:"skipInitialVersionCreation"`
	// A template describing settings for new crypto key versions.
	// Structure is documented below.
	VersionTemplate CryptoKeyVersionTemplateOutput `pulumi:"versionTemplate"`
}

A `CryptoKey` represents a logical key that can be used for cryptographic operations.

> **Note:** CryptoKeys cannot be deleted from Google Cloud Platform. Destroying a provider-managed CryptoKey will remove it from state and delete all CryptoKeyVersions, rendering the key unusable, but *will not delete the resource from the project.* When the provider destroys these keys, any data previously encrypted with these keys will be irrecoverable. For this reason, it is strongly recommended that you add lifecycle hooks to the resource to prevent accidental destruction.

To get more information about CryptoKey, see:

* [API documentation](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys) * How-to Guides

## Example Usage ### Kms Crypto Key Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		_, err = kms.NewCryptoKey(ctx, "example_key", &kms.CryptoKeyArgs{
			KeyRing:        keyring.ID(),
			RotationPeriod: pulumi.String("100000s"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Kms Crypto Key Asymmetric Sign

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		_, err = kms.NewCryptoKey(ctx, "example_asymmetric_sign_key", &kms.CryptoKeyArgs{
			KeyRing: keyring.ID(),
			Purpose: pulumi.String("ASYMMETRIC_SIGN"),
			VersionTemplate: &kms.CryptoKeyVersionTemplateArgs{
				Algorithm: pulumi.String("EC_SIGN_P384_SHA384"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

CryptoKey can be imported using any of these accepted formats

```sh

$ pulumi import gcp:kms/cryptoKey:CryptoKey default {{key_ring}}/cryptoKeys/{{name}}

```

```sh

$ pulumi import gcp:kms/cryptoKey:CryptoKey default {{key_ring}}/{{name}}

```

func GetCryptoKey

func GetCryptoKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *CryptoKeyState, opts ...pulumi.ResourceOption) (*CryptoKey, error)

GetCryptoKey gets an existing CryptoKey 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 NewCryptoKey

func NewCryptoKey(ctx *pulumi.Context,
	name string, args *CryptoKeyArgs, opts ...pulumi.ResourceOption) (*CryptoKey, error)

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

func (*CryptoKey) ElementType

func (*CryptoKey) ElementType() reflect.Type

func (*CryptoKey) ToCryptoKeyOutput

func (i *CryptoKey) ToCryptoKeyOutput() CryptoKeyOutput

func (*CryptoKey) ToCryptoKeyOutputWithContext

func (i *CryptoKey) ToCryptoKeyOutputWithContext(ctx context.Context) CryptoKeyOutput

func (*CryptoKey) ToCryptoKeyPtrOutput

func (i *CryptoKey) ToCryptoKeyPtrOutput() CryptoKeyPtrOutput

func (*CryptoKey) ToCryptoKeyPtrOutputWithContext

func (i *CryptoKey) ToCryptoKeyPtrOutputWithContext(ctx context.Context) CryptoKeyPtrOutput

type CryptoKeyArgs

type CryptoKeyArgs struct {
	// The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
	// If not specified at creation time, the default duration is 24 hours.
	DestroyScheduledDuration pulumi.StringPtrInput
	// Whether this key may contain imported versions only.
	ImportOnly pulumi.BoolPtrInput
	// The KeyRing that this key belongs to.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
	KeyRing pulumi.StringInput
	// Labels with user-defined metadata to apply to this resource.
	Labels pulumi.StringMapInput
	// The resource name for the CryptoKey.
	Name pulumi.StringPtrInput
	// The immutable purpose of this CryptoKey. See the
	// [purpose reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys#CryptoKeyPurpose)
	// for possible inputs.
	// Default value is `ENCRYPT_DECRYPT`.
	// Possible values are `ENCRYPT_DECRYPT`, `ASYMMETRIC_SIGN`, and `ASYMMETRIC_DECRYPT`.
	Purpose pulumi.StringPtrInput
	// Every time this period passes, generate a new CryptoKeyVersion and set it as the primary.
	// The first rotation will take place after the specified period. The rotation period has
	// the format of a decimal number with up to 9 fractional digits, followed by the
	// letter `s` (seconds). It must be greater than a day (ie, 86400).
	RotationPeriod pulumi.StringPtrInput
	// If set to true, the request will create a CryptoKey without any CryptoKeyVersions.
	// You must use the `kms.KeyRingImportJob` resource to import the CryptoKeyVersion.
	SkipInitialVersionCreation pulumi.BoolPtrInput
	// A template describing settings for new crypto key versions.
	// Structure is documented below.
	VersionTemplate CryptoKeyVersionTemplatePtrInput
}

The set of arguments for constructing a CryptoKey resource.

func (CryptoKeyArgs) ElementType

func (CryptoKeyArgs) ElementType() reflect.Type

type CryptoKeyArray

type CryptoKeyArray []CryptoKeyInput

func (CryptoKeyArray) ElementType

func (CryptoKeyArray) ElementType() reflect.Type

func (CryptoKeyArray) ToCryptoKeyArrayOutput

func (i CryptoKeyArray) ToCryptoKeyArrayOutput() CryptoKeyArrayOutput

func (CryptoKeyArray) ToCryptoKeyArrayOutputWithContext

func (i CryptoKeyArray) ToCryptoKeyArrayOutputWithContext(ctx context.Context) CryptoKeyArrayOutput

type CryptoKeyArrayInput

type CryptoKeyArrayInput interface {
	pulumi.Input

	ToCryptoKeyArrayOutput() CryptoKeyArrayOutput
	ToCryptoKeyArrayOutputWithContext(context.Context) CryptoKeyArrayOutput
}

CryptoKeyArrayInput is an input type that accepts CryptoKeyArray and CryptoKeyArrayOutput values. You can construct a concrete instance of `CryptoKeyArrayInput` via:

CryptoKeyArray{ CryptoKeyArgs{...} }

type CryptoKeyArrayOutput

type CryptoKeyArrayOutput struct{ *pulumi.OutputState }

func (CryptoKeyArrayOutput) ElementType

func (CryptoKeyArrayOutput) ElementType() reflect.Type

func (CryptoKeyArrayOutput) Index

func (CryptoKeyArrayOutput) ToCryptoKeyArrayOutput

func (o CryptoKeyArrayOutput) ToCryptoKeyArrayOutput() CryptoKeyArrayOutput

func (CryptoKeyArrayOutput) ToCryptoKeyArrayOutputWithContext

func (o CryptoKeyArrayOutput) ToCryptoKeyArrayOutputWithContext(ctx context.Context) CryptoKeyArrayOutput

type CryptoKeyIAMBinding

type CryptoKeyIAMBinding struct {
	pulumi.CustomResourceState

	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition CryptoKeyIAMBindingConditionPtrOutput `pulumi:"condition"`
	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringOutput `pulumi:"cryptoKeyId"`
	// (Computed) The etag of the project's IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The role that should be applied. 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 KMS crypto key. Each of these resources serves a different use case:

* `kms.CryptoKeyIAMPolicy`: Authoritative. Sets the IAM policy for the crypto key and replaces any existing policy already attached. * `kms.CryptoKeyIAMBinding`: 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 crypto key are preserved. * `kms.CryptoKeyIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the crypto key are preserved.

> **Note:** `kms.CryptoKeyIAMPolicy` **cannot** be used in conjunction with `kms.CryptoKeyIAMBinding` and `kms.CryptoKeyIAMMember` or they will fight over what your policy should be.

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

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		key, err := kms.NewCryptoKey(ctx, "key", &kms.CryptoKeyArgs{
			KeyRing:        keyring.ID(),
			RotationPeriod: pulumi.String("100000s"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/cloudkms.cryptoKeyEncrypter",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewCryptoKeyIAMPolicy(ctx, "cryptoKey", &kms.CryptoKeyIAMPolicyArgs{
			CryptoKeyId: key.ID(),
			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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMBinding(ctx, "cryptoKey", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMBinding(ctx, "cryptoKey", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &kms.CryptoKeyIAMBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMMember(ctx, "cryptoKey", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMMember(ctx, "cryptoKey", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			Member:      pulumi.String("user:jane@example.com"),
			Condition: &kms.CryptoKeyIAMMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `crypto_key_id`, role, and member identity e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMBinding:CryptoKeyIAMBinding crypto_key "your-project-id/location-name/key-ring-name/key-name roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; first the resource in question and then the role.

These bindings can be imported using the `crypto_key_id` and role, e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMBinding:CryptoKeyIAMBinding crypto_key "your-project-id/location-name/key-ring-name/key-name roles/editor"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `crypto_key_id`, e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMBinding:CryptoKeyIAMBinding crypto_key your-project-id/location-name/key-ring-name/key-name

```

func GetCryptoKeyIAMBinding

func GetCryptoKeyIAMBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *CryptoKeyIAMBindingState, opts ...pulumi.ResourceOption) (*CryptoKeyIAMBinding, error)

GetCryptoKeyIAMBinding gets an existing CryptoKeyIAMBinding 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 NewCryptoKeyIAMBinding

func NewCryptoKeyIAMBinding(ctx *pulumi.Context,
	name string, args *CryptoKeyIAMBindingArgs, opts ...pulumi.ResourceOption) (*CryptoKeyIAMBinding, error)

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

func (*CryptoKeyIAMBinding) ElementType

func (*CryptoKeyIAMBinding) ElementType() reflect.Type

func (*CryptoKeyIAMBinding) ToCryptoKeyIAMBindingOutput

func (i *CryptoKeyIAMBinding) ToCryptoKeyIAMBindingOutput() CryptoKeyIAMBindingOutput

func (*CryptoKeyIAMBinding) ToCryptoKeyIAMBindingOutputWithContext

func (i *CryptoKeyIAMBinding) ToCryptoKeyIAMBindingOutputWithContext(ctx context.Context) CryptoKeyIAMBindingOutput

func (*CryptoKeyIAMBinding) ToCryptoKeyIAMBindingPtrOutput

func (i *CryptoKeyIAMBinding) ToCryptoKeyIAMBindingPtrOutput() CryptoKeyIAMBindingPtrOutput

func (*CryptoKeyIAMBinding) ToCryptoKeyIAMBindingPtrOutputWithContext

func (i *CryptoKeyIAMBinding) ToCryptoKeyIAMBindingPtrOutputWithContext(ctx context.Context) CryptoKeyIAMBindingPtrOutput

type CryptoKeyIAMBindingArgs

type CryptoKeyIAMBindingArgs struct {
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition CryptoKeyIAMBindingConditionPtrInput
	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringInput
	Members     pulumi.StringArrayInput
	// The role that should be applied. 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 CryptoKeyIAMBinding resource.

func (CryptoKeyIAMBindingArgs) ElementType

func (CryptoKeyIAMBindingArgs) ElementType() reflect.Type

type CryptoKeyIAMBindingArray

type CryptoKeyIAMBindingArray []CryptoKeyIAMBindingInput

func (CryptoKeyIAMBindingArray) ElementType

func (CryptoKeyIAMBindingArray) ElementType() reflect.Type

func (CryptoKeyIAMBindingArray) ToCryptoKeyIAMBindingArrayOutput

func (i CryptoKeyIAMBindingArray) ToCryptoKeyIAMBindingArrayOutput() CryptoKeyIAMBindingArrayOutput

func (CryptoKeyIAMBindingArray) ToCryptoKeyIAMBindingArrayOutputWithContext

func (i CryptoKeyIAMBindingArray) ToCryptoKeyIAMBindingArrayOutputWithContext(ctx context.Context) CryptoKeyIAMBindingArrayOutput

type CryptoKeyIAMBindingArrayInput

type CryptoKeyIAMBindingArrayInput interface {
	pulumi.Input

	ToCryptoKeyIAMBindingArrayOutput() CryptoKeyIAMBindingArrayOutput
	ToCryptoKeyIAMBindingArrayOutputWithContext(context.Context) CryptoKeyIAMBindingArrayOutput
}

CryptoKeyIAMBindingArrayInput is an input type that accepts CryptoKeyIAMBindingArray and CryptoKeyIAMBindingArrayOutput values. You can construct a concrete instance of `CryptoKeyIAMBindingArrayInput` via:

CryptoKeyIAMBindingArray{ CryptoKeyIAMBindingArgs{...} }

type CryptoKeyIAMBindingArrayOutput

type CryptoKeyIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMBindingArrayOutput) ElementType

func (CryptoKeyIAMBindingArrayOutput) Index

func (CryptoKeyIAMBindingArrayOutput) ToCryptoKeyIAMBindingArrayOutput

func (o CryptoKeyIAMBindingArrayOutput) ToCryptoKeyIAMBindingArrayOutput() CryptoKeyIAMBindingArrayOutput

func (CryptoKeyIAMBindingArrayOutput) ToCryptoKeyIAMBindingArrayOutputWithContext

func (o CryptoKeyIAMBindingArrayOutput) ToCryptoKeyIAMBindingArrayOutputWithContext(ctx context.Context) CryptoKeyIAMBindingArrayOutput

type CryptoKeyIAMBindingCondition

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

type CryptoKeyIAMBindingConditionArgs

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

func (CryptoKeyIAMBindingConditionArgs) ElementType

func (CryptoKeyIAMBindingConditionArgs) ToCryptoKeyIAMBindingConditionOutput

func (i CryptoKeyIAMBindingConditionArgs) ToCryptoKeyIAMBindingConditionOutput() CryptoKeyIAMBindingConditionOutput

func (CryptoKeyIAMBindingConditionArgs) ToCryptoKeyIAMBindingConditionOutputWithContext

func (i CryptoKeyIAMBindingConditionArgs) ToCryptoKeyIAMBindingConditionOutputWithContext(ctx context.Context) CryptoKeyIAMBindingConditionOutput

func (CryptoKeyIAMBindingConditionArgs) ToCryptoKeyIAMBindingConditionPtrOutput

func (i CryptoKeyIAMBindingConditionArgs) ToCryptoKeyIAMBindingConditionPtrOutput() CryptoKeyIAMBindingConditionPtrOutput

func (CryptoKeyIAMBindingConditionArgs) ToCryptoKeyIAMBindingConditionPtrOutputWithContext

func (i CryptoKeyIAMBindingConditionArgs) ToCryptoKeyIAMBindingConditionPtrOutputWithContext(ctx context.Context) CryptoKeyIAMBindingConditionPtrOutput

type CryptoKeyIAMBindingConditionInput

type CryptoKeyIAMBindingConditionInput interface {
	pulumi.Input

	ToCryptoKeyIAMBindingConditionOutput() CryptoKeyIAMBindingConditionOutput
	ToCryptoKeyIAMBindingConditionOutputWithContext(context.Context) CryptoKeyIAMBindingConditionOutput
}

CryptoKeyIAMBindingConditionInput is an input type that accepts CryptoKeyIAMBindingConditionArgs and CryptoKeyIAMBindingConditionOutput values. You can construct a concrete instance of `CryptoKeyIAMBindingConditionInput` via:

CryptoKeyIAMBindingConditionArgs{...}

type CryptoKeyIAMBindingConditionOutput

type CryptoKeyIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMBindingConditionOutput) Description

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

func (CryptoKeyIAMBindingConditionOutput) ElementType

func (CryptoKeyIAMBindingConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (CryptoKeyIAMBindingConditionOutput) Title

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

func (CryptoKeyIAMBindingConditionOutput) ToCryptoKeyIAMBindingConditionOutput

func (o CryptoKeyIAMBindingConditionOutput) ToCryptoKeyIAMBindingConditionOutput() CryptoKeyIAMBindingConditionOutput

func (CryptoKeyIAMBindingConditionOutput) ToCryptoKeyIAMBindingConditionOutputWithContext

func (o CryptoKeyIAMBindingConditionOutput) ToCryptoKeyIAMBindingConditionOutputWithContext(ctx context.Context) CryptoKeyIAMBindingConditionOutput

func (CryptoKeyIAMBindingConditionOutput) ToCryptoKeyIAMBindingConditionPtrOutput

func (o CryptoKeyIAMBindingConditionOutput) ToCryptoKeyIAMBindingConditionPtrOutput() CryptoKeyIAMBindingConditionPtrOutput

func (CryptoKeyIAMBindingConditionOutput) ToCryptoKeyIAMBindingConditionPtrOutputWithContext

func (o CryptoKeyIAMBindingConditionOutput) ToCryptoKeyIAMBindingConditionPtrOutputWithContext(ctx context.Context) CryptoKeyIAMBindingConditionPtrOutput

type CryptoKeyIAMBindingConditionPtrInput

type CryptoKeyIAMBindingConditionPtrInput interface {
	pulumi.Input

	ToCryptoKeyIAMBindingConditionPtrOutput() CryptoKeyIAMBindingConditionPtrOutput
	ToCryptoKeyIAMBindingConditionPtrOutputWithContext(context.Context) CryptoKeyIAMBindingConditionPtrOutput
}

CryptoKeyIAMBindingConditionPtrInput is an input type that accepts CryptoKeyIAMBindingConditionArgs, CryptoKeyIAMBindingConditionPtr and CryptoKeyIAMBindingConditionPtrOutput values. You can construct a concrete instance of `CryptoKeyIAMBindingConditionPtrInput` via:

        CryptoKeyIAMBindingConditionArgs{...}

or:

        nil

type CryptoKeyIAMBindingConditionPtrOutput

type CryptoKeyIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMBindingConditionPtrOutput) Description

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

func (CryptoKeyIAMBindingConditionPtrOutput) Elem

func (CryptoKeyIAMBindingConditionPtrOutput) ElementType

func (CryptoKeyIAMBindingConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (CryptoKeyIAMBindingConditionPtrOutput) Title

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

func (CryptoKeyIAMBindingConditionPtrOutput) ToCryptoKeyIAMBindingConditionPtrOutput

func (o CryptoKeyIAMBindingConditionPtrOutput) ToCryptoKeyIAMBindingConditionPtrOutput() CryptoKeyIAMBindingConditionPtrOutput

func (CryptoKeyIAMBindingConditionPtrOutput) ToCryptoKeyIAMBindingConditionPtrOutputWithContext

func (o CryptoKeyIAMBindingConditionPtrOutput) ToCryptoKeyIAMBindingConditionPtrOutputWithContext(ctx context.Context) CryptoKeyIAMBindingConditionPtrOutput

type CryptoKeyIAMBindingInput

type CryptoKeyIAMBindingInput interface {
	pulumi.Input

	ToCryptoKeyIAMBindingOutput() CryptoKeyIAMBindingOutput
	ToCryptoKeyIAMBindingOutputWithContext(ctx context.Context) CryptoKeyIAMBindingOutput
}

type CryptoKeyIAMBindingMap

type CryptoKeyIAMBindingMap map[string]CryptoKeyIAMBindingInput

func (CryptoKeyIAMBindingMap) ElementType

func (CryptoKeyIAMBindingMap) ElementType() reflect.Type

func (CryptoKeyIAMBindingMap) ToCryptoKeyIAMBindingMapOutput

func (i CryptoKeyIAMBindingMap) ToCryptoKeyIAMBindingMapOutput() CryptoKeyIAMBindingMapOutput

func (CryptoKeyIAMBindingMap) ToCryptoKeyIAMBindingMapOutputWithContext

func (i CryptoKeyIAMBindingMap) ToCryptoKeyIAMBindingMapOutputWithContext(ctx context.Context) CryptoKeyIAMBindingMapOutput

type CryptoKeyIAMBindingMapInput

type CryptoKeyIAMBindingMapInput interface {
	pulumi.Input

	ToCryptoKeyIAMBindingMapOutput() CryptoKeyIAMBindingMapOutput
	ToCryptoKeyIAMBindingMapOutputWithContext(context.Context) CryptoKeyIAMBindingMapOutput
}

CryptoKeyIAMBindingMapInput is an input type that accepts CryptoKeyIAMBindingMap and CryptoKeyIAMBindingMapOutput values. You can construct a concrete instance of `CryptoKeyIAMBindingMapInput` via:

CryptoKeyIAMBindingMap{ "key": CryptoKeyIAMBindingArgs{...} }

type CryptoKeyIAMBindingMapOutput

type CryptoKeyIAMBindingMapOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMBindingMapOutput) ElementType

func (CryptoKeyIAMBindingMapOutput) MapIndex

func (CryptoKeyIAMBindingMapOutput) ToCryptoKeyIAMBindingMapOutput

func (o CryptoKeyIAMBindingMapOutput) ToCryptoKeyIAMBindingMapOutput() CryptoKeyIAMBindingMapOutput

func (CryptoKeyIAMBindingMapOutput) ToCryptoKeyIAMBindingMapOutputWithContext

func (o CryptoKeyIAMBindingMapOutput) ToCryptoKeyIAMBindingMapOutputWithContext(ctx context.Context) CryptoKeyIAMBindingMapOutput

type CryptoKeyIAMBindingOutput

type CryptoKeyIAMBindingOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMBindingOutput) ElementType

func (CryptoKeyIAMBindingOutput) ElementType() reflect.Type

func (CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingOutput

func (o CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingOutput() CryptoKeyIAMBindingOutput

func (CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingOutputWithContext

func (o CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingOutputWithContext(ctx context.Context) CryptoKeyIAMBindingOutput

func (CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingPtrOutput

func (o CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingPtrOutput() CryptoKeyIAMBindingPtrOutput

func (CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingPtrOutputWithContext

func (o CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingPtrOutputWithContext(ctx context.Context) CryptoKeyIAMBindingPtrOutput

type CryptoKeyIAMBindingPtrInput

type CryptoKeyIAMBindingPtrInput interface {
	pulumi.Input

	ToCryptoKeyIAMBindingPtrOutput() CryptoKeyIAMBindingPtrOutput
	ToCryptoKeyIAMBindingPtrOutputWithContext(ctx context.Context) CryptoKeyIAMBindingPtrOutput
}

type CryptoKeyIAMBindingPtrOutput

type CryptoKeyIAMBindingPtrOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMBindingPtrOutput) Elem added in v5.21.0

func (CryptoKeyIAMBindingPtrOutput) ElementType

func (CryptoKeyIAMBindingPtrOutput) ToCryptoKeyIAMBindingPtrOutput

func (o CryptoKeyIAMBindingPtrOutput) ToCryptoKeyIAMBindingPtrOutput() CryptoKeyIAMBindingPtrOutput

func (CryptoKeyIAMBindingPtrOutput) ToCryptoKeyIAMBindingPtrOutputWithContext

func (o CryptoKeyIAMBindingPtrOutput) ToCryptoKeyIAMBindingPtrOutputWithContext(ctx context.Context) CryptoKeyIAMBindingPtrOutput

type CryptoKeyIAMBindingState

type CryptoKeyIAMBindingState struct {
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition CryptoKeyIAMBindingConditionPtrInput
	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringPtrInput
	// (Computed) The etag of the project's IAM policy.
	Etag    pulumi.StringPtrInput
	Members pulumi.StringArrayInput
	// The role that should be applied. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (CryptoKeyIAMBindingState) ElementType

func (CryptoKeyIAMBindingState) ElementType() reflect.Type

type CryptoKeyIAMMember

type CryptoKeyIAMMember struct {
	pulumi.CustomResourceState

	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition CryptoKeyIAMMemberConditionPtrOutput `pulumi:"condition"`
	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringOutput `pulumi:"cryptoKeyId"`
	// (Computed) The etag of the project's IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The role that should be applied. 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 KMS crypto key. Each of these resources serves a different use case:

* `kms.CryptoKeyIAMPolicy`: Authoritative. Sets the IAM policy for the crypto key and replaces any existing policy already attached. * `kms.CryptoKeyIAMBinding`: 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 crypto key are preserved. * `kms.CryptoKeyIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the crypto key are preserved.

> **Note:** `kms.CryptoKeyIAMPolicy` **cannot** be used in conjunction with `kms.CryptoKeyIAMBinding` and `kms.CryptoKeyIAMMember` or they will fight over what your policy should be.

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

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		key, err := kms.NewCryptoKey(ctx, "key", &kms.CryptoKeyArgs{
			KeyRing:        keyring.ID(),
			RotationPeriod: pulumi.String("100000s"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/cloudkms.cryptoKeyEncrypter",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewCryptoKeyIAMPolicy(ctx, "cryptoKey", &kms.CryptoKeyIAMPolicyArgs{
			CryptoKeyId: key.ID(),
			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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMBinding(ctx, "cryptoKey", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMBinding(ctx, "cryptoKey", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &kms.CryptoKeyIAMBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMMember(ctx, "cryptoKey", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMMember(ctx, "cryptoKey", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			Member:      pulumi.String("user:jane@example.com"),
			Condition: &kms.CryptoKeyIAMMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `crypto_key_id`, role, and member identity e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMMember:CryptoKeyIAMMember crypto_key "your-project-id/location-name/key-ring-name/key-name roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; first the resource in question and then the role.

These bindings can be imported using the `crypto_key_id` and role, e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMMember:CryptoKeyIAMMember crypto_key "your-project-id/location-name/key-ring-name/key-name roles/editor"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `crypto_key_id`, e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMMember:CryptoKeyIAMMember crypto_key your-project-id/location-name/key-ring-name/key-name

```

func GetCryptoKeyIAMMember

func GetCryptoKeyIAMMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *CryptoKeyIAMMemberState, opts ...pulumi.ResourceOption) (*CryptoKeyIAMMember, error)

GetCryptoKeyIAMMember gets an existing CryptoKeyIAMMember 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 NewCryptoKeyIAMMember

func NewCryptoKeyIAMMember(ctx *pulumi.Context,
	name string, args *CryptoKeyIAMMemberArgs, opts ...pulumi.ResourceOption) (*CryptoKeyIAMMember, error)

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

func (*CryptoKeyIAMMember) ElementType

func (*CryptoKeyIAMMember) ElementType() reflect.Type

func (*CryptoKeyIAMMember) ToCryptoKeyIAMMemberOutput

func (i *CryptoKeyIAMMember) ToCryptoKeyIAMMemberOutput() CryptoKeyIAMMemberOutput

func (*CryptoKeyIAMMember) ToCryptoKeyIAMMemberOutputWithContext

func (i *CryptoKeyIAMMember) ToCryptoKeyIAMMemberOutputWithContext(ctx context.Context) CryptoKeyIAMMemberOutput

func (*CryptoKeyIAMMember) ToCryptoKeyIAMMemberPtrOutput

func (i *CryptoKeyIAMMember) ToCryptoKeyIAMMemberPtrOutput() CryptoKeyIAMMemberPtrOutput

func (*CryptoKeyIAMMember) ToCryptoKeyIAMMemberPtrOutputWithContext

func (i *CryptoKeyIAMMember) ToCryptoKeyIAMMemberPtrOutputWithContext(ctx context.Context) CryptoKeyIAMMemberPtrOutput

type CryptoKeyIAMMemberArgs

type CryptoKeyIAMMemberArgs struct {
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition CryptoKeyIAMMemberConditionPtrInput
	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringInput
	Member      pulumi.StringInput
	// The role that should be applied. 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 CryptoKeyIAMMember resource.

func (CryptoKeyIAMMemberArgs) ElementType

func (CryptoKeyIAMMemberArgs) ElementType() reflect.Type

type CryptoKeyIAMMemberArray

type CryptoKeyIAMMemberArray []CryptoKeyIAMMemberInput

func (CryptoKeyIAMMemberArray) ElementType

func (CryptoKeyIAMMemberArray) ElementType() reflect.Type

func (CryptoKeyIAMMemberArray) ToCryptoKeyIAMMemberArrayOutput

func (i CryptoKeyIAMMemberArray) ToCryptoKeyIAMMemberArrayOutput() CryptoKeyIAMMemberArrayOutput

func (CryptoKeyIAMMemberArray) ToCryptoKeyIAMMemberArrayOutputWithContext

func (i CryptoKeyIAMMemberArray) ToCryptoKeyIAMMemberArrayOutputWithContext(ctx context.Context) CryptoKeyIAMMemberArrayOutput

type CryptoKeyIAMMemberArrayInput

type CryptoKeyIAMMemberArrayInput interface {
	pulumi.Input

	ToCryptoKeyIAMMemberArrayOutput() CryptoKeyIAMMemberArrayOutput
	ToCryptoKeyIAMMemberArrayOutputWithContext(context.Context) CryptoKeyIAMMemberArrayOutput
}

CryptoKeyIAMMemberArrayInput is an input type that accepts CryptoKeyIAMMemberArray and CryptoKeyIAMMemberArrayOutput values. You can construct a concrete instance of `CryptoKeyIAMMemberArrayInput` via:

CryptoKeyIAMMemberArray{ CryptoKeyIAMMemberArgs{...} }

type CryptoKeyIAMMemberArrayOutput

type CryptoKeyIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMMemberArrayOutput) ElementType

func (CryptoKeyIAMMemberArrayOutput) Index

func (CryptoKeyIAMMemberArrayOutput) ToCryptoKeyIAMMemberArrayOutput

func (o CryptoKeyIAMMemberArrayOutput) ToCryptoKeyIAMMemberArrayOutput() CryptoKeyIAMMemberArrayOutput

func (CryptoKeyIAMMemberArrayOutput) ToCryptoKeyIAMMemberArrayOutputWithContext

func (o CryptoKeyIAMMemberArrayOutput) ToCryptoKeyIAMMemberArrayOutputWithContext(ctx context.Context) CryptoKeyIAMMemberArrayOutput

type CryptoKeyIAMMemberCondition

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

type CryptoKeyIAMMemberConditionArgs

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

func (CryptoKeyIAMMemberConditionArgs) ElementType

func (CryptoKeyIAMMemberConditionArgs) ToCryptoKeyIAMMemberConditionOutput

func (i CryptoKeyIAMMemberConditionArgs) ToCryptoKeyIAMMemberConditionOutput() CryptoKeyIAMMemberConditionOutput

func (CryptoKeyIAMMemberConditionArgs) ToCryptoKeyIAMMemberConditionOutputWithContext

func (i CryptoKeyIAMMemberConditionArgs) ToCryptoKeyIAMMemberConditionOutputWithContext(ctx context.Context) CryptoKeyIAMMemberConditionOutput

func (CryptoKeyIAMMemberConditionArgs) ToCryptoKeyIAMMemberConditionPtrOutput

func (i CryptoKeyIAMMemberConditionArgs) ToCryptoKeyIAMMemberConditionPtrOutput() CryptoKeyIAMMemberConditionPtrOutput

func (CryptoKeyIAMMemberConditionArgs) ToCryptoKeyIAMMemberConditionPtrOutputWithContext

func (i CryptoKeyIAMMemberConditionArgs) ToCryptoKeyIAMMemberConditionPtrOutputWithContext(ctx context.Context) CryptoKeyIAMMemberConditionPtrOutput

type CryptoKeyIAMMemberConditionInput

type CryptoKeyIAMMemberConditionInput interface {
	pulumi.Input

	ToCryptoKeyIAMMemberConditionOutput() CryptoKeyIAMMemberConditionOutput
	ToCryptoKeyIAMMemberConditionOutputWithContext(context.Context) CryptoKeyIAMMemberConditionOutput
}

CryptoKeyIAMMemberConditionInput is an input type that accepts CryptoKeyIAMMemberConditionArgs and CryptoKeyIAMMemberConditionOutput values. You can construct a concrete instance of `CryptoKeyIAMMemberConditionInput` via:

CryptoKeyIAMMemberConditionArgs{...}

type CryptoKeyIAMMemberConditionOutput

type CryptoKeyIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMMemberConditionOutput) Description

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

func (CryptoKeyIAMMemberConditionOutput) ElementType

func (CryptoKeyIAMMemberConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (CryptoKeyIAMMemberConditionOutput) Title

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

func (CryptoKeyIAMMemberConditionOutput) ToCryptoKeyIAMMemberConditionOutput

func (o CryptoKeyIAMMemberConditionOutput) ToCryptoKeyIAMMemberConditionOutput() CryptoKeyIAMMemberConditionOutput

func (CryptoKeyIAMMemberConditionOutput) ToCryptoKeyIAMMemberConditionOutputWithContext

func (o CryptoKeyIAMMemberConditionOutput) ToCryptoKeyIAMMemberConditionOutputWithContext(ctx context.Context) CryptoKeyIAMMemberConditionOutput

func (CryptoKeyIAMMemberConditionOutput) ToCryptoKeyIAMMemberConditionPtrOutput

func (o CryptoKeyIAMMemberConditionOutput) ToCryptoKeyIAMMemberConditionPtrOutput() CryptoKeyIAMMemberConditionPtrOutput

func (CryptoKeyIAMMemberConditionOutput) ToCryptoKeyIAMMemberConditionPtrOutputWithContext

func (o CryptoKeyIAMMemberConditionOutput) ToCryptoKeyIAMMemberConditionPtrOutputWithContext(ctx context.Context) CryptoKeyIAMMemberConditionPtrOutput

type CryptoKeyIAMMemberConditionPtrInput

type CryptoKeyIAMMemberConditionPtrInput interface {
	pulumi.Input

	ToCryptoKeyIAMMemberConditionPtrOutput() CryptoKeyIAMMemberConditionPtrOutput
	ToCryptoKeyIAMMemberConditionPtrOutputWithContext(context.Context) CryptoKeyIAMMemberConditionPtrOutput
}

CryptoKeyIAMMemberConditionPtrInput is an input type that accepts CryptoKeyIAMMemberConditionArgs, CryptoKeyIAMMemberConditionPtr and CryptoKeyIAMMemberConditionPtrOutput values. You can construct a concrete instance of `CryptoKeyIAMMemberConditionPtrInput` via:

        CryptoKeyIAMMemberConditionArgs{...}

or:

        nil

type CryptoKeyIAMMemberConditionPtrOutput

type CryptoKeyIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMMemberConditionPtrOutput) Description

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

func (CryptoKeyIAMMemberConditionPtrOutput) Elem

func (CryptoKeyIAMMemberConditionPtrOutput) ElementType

func (CryptoKeyIAMMemberConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (CryptoKeyIAMMemberConditionPtrOutput) Title

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

func (CryptoKeyIAMMemberConditionPtrOutput) ToCryptoKeyIAMMemberConditionPtrOutput

func (o CryptoKeyIAMMemberConditionPtrOutput) ToCryptoKeyIAMMemberConditionPtrOutput() CryptoKeyIAMMemberConditionPtrOutput

func (CryptoKeyIAMMemberConditionPtrOutput) ToCryptoKeyIAMMemberConditionPtrOutputWithContext

func (o CryptoKeyIAMMemberConditionPtrOutput) ToCryptoKeyIAMMemberConditionPtrOutputWithContext(ctx context.Context) CryptoKeyIAMMemberConditionPtrOutput

type CryptoKeyIAMMemberInput

type CryptoKeyIAMMemberInput interface {
	pulumi.Input

	ToCryptoKeyIAMMemberOutput() CryptoKeyIAMMemberOutput
	ToCryptoKeyIAMMemberOutputWithContext(ctx context.Context) CryptoKeyIAMMemberOutput
}

type CryptoKeyIAMMemberMap

type CryptoKeyIAMMemberMap map[string]CryptoKeyIAMMemberInput

func (CryptoKeyIAMMemberMap) ElementType

func (CryptoKeyIAMMemberMap) ElementType() reflect.Type

func (CryptoKeyIAMMemberMap) ToCryptoKeyIAMMemberMapOutput

func (i CryptoKeyIAMMemberMap) ToCryptoKeyIAMMemberMapOutput() CryptoKeyIAMMemberMapOutput

func (CryptoKeyIAMMemberMap) ToCryptoKeyIAMMemberMapOutputWithContext

func (i CryptoKeyIAMMemberMap) ToCryptoKeyIAMMemberMapOutputWithContext(ctx context.Context) CryptoKeyIAMMemberMapOutput

type CryptoKeyIAMMemberMapInput

type CryptoKeyIAMMemberMapInput interface {
	pulumi.Input

	ToCryptoKeyIAMMemberMapOutput() CryptoKeyIAMMemberMapOutput
	ToCryptoKeyIAMMemberMapOutputWithContext(context.Context) CryptoKeyIAMMemberMapOutput
}

CryptoKeyIAMMemberMapInput is an input type that accepts CryptoKeyIAMMemberMap and CryptoKeyIAMMemberMapOutput values. You can construct a concrete instance of `CryptoKeyIAMMemberMapInput` via:

CryptoKeyIAMMemberMap{ "key": CryptoKeyIAMMemberArgs{...} }

type CryptoKeyIAMMemberMapOutput

type CryptoKeyIAMMemberMapOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMMemberMapOutput) ElementType

func (CryptoKeyIAMMemberMapOutput) MapIndex

func (CryptoKeyIAMMemberMapOutput) ToCryptoKeyIAMMemberMapOutput

func (o CryptoKeyIAMMemberMapOutput) ToCryptoKeyIAMMemberMapOutput() CryptoKeyIAMMemberMapOutput

func (CryptoKeyIAMMemberMapOutput) ToCryptoKeyIAMMemberMapOutputWithContext

func (o CryptoKeyIAMMemberMapOutput) ToCryptoKeyIAMMemberMapOutputWithContext(ctx context.Context) CryptoKeyIAMMemberMapOutput

type CryptoKeyIAMMemberOutput

type CryptoKeyIAMMemberOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMMemberOutput) ElementType

func (CryptoKeyIAMMemberOutput) ElementType() reflect.Type

func (CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberOutput

func (o CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberOutput() CryptoKeyIAMMemberOutput

func (CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberOutputWithContext

func (o CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberOutputWithContext(ctx context.Context) CryptoKeyIAMMemberOutput

func (CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberPtrOutput

func (o CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberPtrOutput() CryptoKeyIAMMemberPtrOutput

func (CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberPtrOutputWithContext

func (o CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberPtrOutputWithContext(ctx context.Context) CryptoKeyIAMMemberPtrOutput

type CryptoKeyIAMMemberPtrInput

type CryptoKeyIAMMemberPtrInput interface {
	pulumi.Input

	ToCryptoKeyIAMMemberPtrOutput() CryptoKeyIAMMemberPtrOutput
	ToCryptoKeyIAMMemberPtrOutputWithContext(ctx context.Context) CryptoKeyIAMMemberPtrOutput
}

type CryptoKeyIAMMemberPtrOutput

type CryptoKeyIAMMemberPtrOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMMemberPtrOutput) Elem added in v5.21.0

func (CryptoKeyIAMMemberPtrOutput) ElementType

func (CryptoKeyIAMMemberPtrOutput) ToCryptoKeyIAMMemberPtrOutput

func (o CryptoKeyIAMMemberPtrOutput) ToCryptoKeyIAMMemberPtrOutput() CryptoKeyIAMMemberPtrOutput

func (CryptoKeyIAMMemberPtrOutput) ToCryptoKeyIAMMemberPtrOutputWithContext

func (o CryptoKeyIAMMemberPtrOutput) ToCryptoKeyIAMMemberPtrOutputWithContext(ctx context.Context) CryptoKeyIAMMemberPtrOutput

type CryptoKeyIAMMemberState

type CryptoKeyIAMMemberState struct {
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition CryptoKeyIAMMemberConditionPtrInput
	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringPtrInput
	// (Computed) The etag of the project's IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// The role that should be applied. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (CryptoKeyIAMMemberState) ElementType

func (CryptoKeyIAMMemberState) ElementType() reflect.Type

type CryptoKeyIAMPolicy

type CryptoKeyIAMPolicy struct {
	pulumi.CustomResourceState

	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringOutput `pulumi:"cryptoKeyId"`
	// (Computed) The etag of the project's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
}

Three different resources help you manage your IAM policy for KMS crypto key. Each of these resources serves a different use case:

* `kms.CryptoKeyIAMPolicy`: Authoritative. Sets the IAM policy for the crypto key and replaces any existing policy already attached. * `kms.CryptoKeyIAMBinding`: 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 crypto key are preserved. * `kms.CryptoKeyIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the crypto key are preserved.

> **Note:** `kms.CryptoKeyIAMPolicy` **cannot** be used in conjunction with `kms.CryptoKeyIAMBinding` and `kms.CryptoKeyIAMMember` or they will fight over what your policy should be.

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

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		key, err := kms.NewCryptoKey(ctx, "key", &kms.CryptoKeyArgs{
			KeyRing:        keyring.ID(),
			RotationPeriod: pulumi.String("100000s"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/cloudkms.cryptoKeyEncrypter",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewCryptoKeyIAMPolicy(ctx, "cryptoKey", &kms.CryptoKeyIAMPolicyArgs{
			CryptoKeyId: key.ID(),
			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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMBinding(ctx, "cryptoKey", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMBinding(ctx, "cryptoKey", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &kms.CryptoKeyIAMBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMMember(ctx, "cryptoKey", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewCryptoKeyIAMMember(ctx, "cryptoKey", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: pulumi.Any(google_kms_crypto_key.Key.Id),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypter"),
			Member:      pulumi.String("user:jane@example.com"),
			Condition: &kms.CryptoKeyIAMMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `crypto_key_id`, role, and member identity e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMPolicy:CryptoKeyIAMPolicy crypto_key "your-project-id/location-name/key-ring-name/key-name roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; first the resource in question and then the role.

These bindings can be imported using the `crypto_key_id` and role, e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMPolicy:CryptoKeyIAMPolicy crypto_key "your-project-id/location-name/key-ring-name/key-name roles/editor"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `crypto_key_id`, e.g.

```sh

$ pulumi import gcp:kms/cryptoKeyIAMPolicy:CryptoKeyIAMPolicy crypto_key your-project-id/location-name/key-ring-name/key-name

```

func GetCryptoKeyIAMPolicy

func GetCryptoKeyIAMPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *CryptoKeyIAMPolicyState, opts ...pulumi.ResourceOption) (*CryptoKeyIAMPolicy, error)

GetCryptoKeyIAMPolicy gets an existing CryptoKeyIAMPolicy 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 NewCryptoKeyIAMPolicy

func NewCryptoKeyIAMPolicy(ctx *pulumi.Context,
	name string, args *CryptoKeyIAMPolicyArgs, opts ...pulumi.ResourceOption) (*CryptoKeyIAMPolicy, error)

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

func (*CryptoKeyIAMPolicy) ElementType

func (*CryptoKeyIAMPolicy) ElementType() reflect.Type

func (*CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyOutput

func (i *CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyOutput() CryptoKeyIAMPolicyOutput

func (*CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyOutputWithContext

func (i *CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyOutput

func (*CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyPtrOutput

func (i *CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyPtrOutput() CryptoKeyIAMPolicyPtrOutput

func (*CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyPtrOutputWithContext

func (i *CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyPtrOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyPtrOutput

type CryptoKeyIAMPolicyArgs

type CryptoKeyIAMPolicyArgs struct {
	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
}

The set of arguments for constructing a CryptoKeyIAMPolicy resource.

func (CryptoKeyIAMPolicyArgs) ElementType

func (CryptoKeyIAMPolicyArgs) ElementType() reflect.Type

type CryptoKeyIAMPolicyArray

type CryptoKeyIAMPolicyArray []CryptoKeyIAMPolicyInput

func (CryptoKeyIAMPolicyArray) ElementType

func (CryptoKeyIAMPolicyArray) ElementType() reflect.Type

func (CryptoKeyIAMPolicyArray) ToCryptoKeyIAMPolicyArrayOutput

func (i CryptoKeyIAMPolicyArray) ToCryptoKeyIAMPolicyArrayOutput() CryptoKeyIAMPolicyArrayOutput

func (CryptoKeyIAMPolicyArray) ToCryptoKeyIAMPolicyArrayOutputWithContext

func (i CryptoKeyIAMPolicyArray) ToCryptoKeyIAMPolicyArrayOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyArrayOutput

type CryptoKeyIAMPolicyArrayInput

type CryptoKeyIAMPolicyArrayInput interface {
	pulumi.Input

	ToCryptoKeyIAMPolicyArrayOutput() CryptoKeyIAMPolicyArrayOutput
	ToCryptoKeyIAMPolicyArrayOutputWithContext(context.Context) CryptoKeyIAMPolicyArrayOutput
}

CryptoKeyIAMPolicyArrayInput is an input type that accepts CryptoKeyIAMPolicyArray and CryptoKeyIAMPolicyArrayOutput values. You can construct a concrete instance of `CryptoKeyIAMPolicyArrayInput` via:

CryptoKeyIAMPolicyArray{ CryptoKeyIAMPolicyArgs{...} }

type CryptoKeyIAMPolicyArrayOutput

type CryptoKeyIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMPolicyArrayOutput) ElementType

func (CryptoKeyIAMPolicyArrayOutput) Index

func (CryptoKeyIAMPolicyArrayOutput) ToCryptoKeyIAMPolicyArrayOutput

func (o CryptoKeyIAMPolicyArrayOutput) ToCryptoKeyIAMPolicyArrayOutput() CryptoKeyIAMPolicyArrayOutput

func (CryptoKeyIAMPolicyArrayOutput) ToCryptoKeyIAMPolicyArrayOutputWithContext

func (o CryptoKeyIAMPolicyArrayOutput) ToCryptoKeyIAMPolicyArrayOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyArrayOutput

type CryptoKeyIAMPolicyInput

type CryptoKeyIAMPolicyInput interface {
	pulumi.Input

	ToCryptoKeyIAMPolicyOutput() CryptoKeyIAMPolicyOutput
	ToCryptoKeyIAMPolicyOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyOutput
}

type CryptoKeyIAMPolicyMap

type CryptoKeyIAMPolicyMap map[string]CryptoKeyIAMPolicyInput

func (CryptoKeyIAMPolicyMap) ElementType

func (CryptoKeyIAMPolicyMap) ElementType() reflect.Type

func (CryptoKeyIAMPolicyMap) ToCryptoKeyIAMPolicyMapOutput

func (i CryptoKeyIAMPolicyMap) ToCryptoKeyIAMPolicyMapOutput() CryptoKeyIAMPolicyMapOutput

func (CryptoKeyIAMPolicyMap) ToCryptoKeyIAMPolicyMapOutputWithContext

func (i CryptoKeyIAMPolicyMap) ToCryptoKeyIAMPolicyMapOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyMapOutput

type CryptoKeyIAMPolicyMapInput

type CryptoKeyIAMPolicyMapInput interface {
	pulumi.Input

	ToCryptoKeyIAMPolicyMapOutput() CryptoKeyIAMPolicyMapOutput
	ToCryptoKeyIAMPolicyMapOutputWithContext(context.Context) CryptoKeyIAMPolicyMapOutput
}

CryptoKeyIAMPolicyMapInput is an input type that accepts CryptoKeyIAMPolicyMap and CryptoKeyIAMPolicyMapOutput values. You can construct a concrete instance of `CryptoKeyIAMPolicyMapInput` via:

CryptoKeyIAMPolicyMap{ "key": CryptoKeyIAMPolicyArgs{...} }

type CryptoKeyIAMPolicyMapOutput

type CryptoKeyIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMPolicyMapOutput) ElementType

func (CryptoKeyIAMPolicyMapOutput) MapIndex

func (CryptoKeyIAMPolicyMapOutput) ToCryptoKeyIAMPolicyMapOutput

func (o CryptoKeyIAMPolicyMapOutput) ToCryptoKeyIAMPolicyMapOutput() CryptoKeyIAMPolicyMapOutput

func (CryptoKeyIAMPolicyMapOutput) ToCryptoKeyIAMPolicyMapOutputWithContext

func (o CryptoKeyIAMPolicyMapOutput) ToCryptoKeyIAMPolicyMapOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyMapOutput

type CryptoKeyIAMPolicyOutput

type CryptoKeyIAMPolicyOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMPolicyOutput) ElementType

func (CryptoKeyIAMPolicyOutput) ElementType() reflect.Type

func (CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyOutput

func (o CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyOutput() CryptoKeyIAMPolicyOutput

func (CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyOutputWithContext

func (o CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyOutput

func (CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyPtrOutput

func (o CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyPtrOutput() CryptoKeyIAMPolicyPtrOutput

func (CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyPtrOutputWithContext

func (o CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyPtrOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyPtrOutput

type CryptoKeyIAMPolicyPtrInput

type CryptoKeyIAMPolicyPtrInput interface {
	pulumi.Input

	ToCryptoKeyIAMPolicyPtrOutput() CryptoKeyIAMPolicyPtrOutput
	ToCryptoKeyIAMPolicyPtrOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyPtrOutput
}

type CryptoKeyIAMPolicyPtrOutput

type CryptoKeyIAMPolicyPtrOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMPolicyPtrOutput) Elem added in v5.21.0

func (CryptoKeyIAMPolicyPtrOutput) ElementType

func (CryptoKeyIAMPolicyPtrOutput) ToCryptoKeyIAMPolicyPtrOutput

func (o CryptoKeyIAMPolicyPtrOutput) ToCryptoKeyIAMPolicyPtrOutput() CryptoKeyIAMPolicyPtrOutput

func (CryptoKeyIAMPolicyPtrOutput) ToCryptoKeyIAMPolicyPtrOutputWithContext

func (o CryptoKeyIAMPolicyPtrOutput) ToCryptoKeyIAMPolicyPtrOutputWithContext(ctx context.Context) CryptoKeyIAMPolicyPtrOutput

type CryptoKeyIAMPolicyState

type CryptoKeyIAMPolicyState struct {
	// The crypto key ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}/{crypto_key_name}` or
	// `{location_name}/{key_ring_name}/{crypto_key_name}`. In the second form,
	// the provider's project setting will be used as a fallback.
	CryptoKeyId pulumi.StringPtrInput
	// (Computed) The etag of the project's IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
}

func (CryptoKeyIAMPolicyState) ElementType

func (CryptoKeyIAMPolicyState) ElementType() reflect.Type

type CryptoKeyInput

type CryptoKeyInput interface {
	pulumi.Input

	ToCryptoKeyOutput() CryptoKeyOutput
	ToCryptoKeyOutputWithContext(ctx context.Context) CryptoKeyOutput
}

type CryptoKeyMap

type CryptoKeyMap map[string]CryptoKeyInput

func (CryptoKeyMap) ElementType

func (CryptoKeyMap) ElementType() reflect.Type

func (CryptoKeyMap) ToCryptoKeyMapOutput

func (i CryptoKeyMap) ToCryptoKeyMapOutput() CryptoKeyMapOutput

func (CryptoKeyMap) ToCryptoKeyMapOutputWithContext

func (i CryptoKeyMap) ToCryptoKeyMapOutputWithContext(ctx context.Context) CryptoKeyMapOutput

type CryptoKeyMapInput

type CryptoKeyMapInput interface {
	pulumi.Input

	ToCryptoKeyMapOutput() CryptoKeyMapOutput
	ToCryptoKeyMapOutputWithContext(context.Context) CryptoKeyMapOutput
}

CryptoKeyMapInput is an input type that accepts CryptoKeyMap and CryptoKeyMapOutput values. You can construct a concrete instance of `CryptoKeyMapInput` via:

CryptoKeyMap{ "key": CryptoKeyArgs{...} }

type CryptoKeyMapOutput

type CryptoKeyMapOutput struct{ *pulumi.OutputState }

func (CryptoKeyMapOutput) ElementType

func (CryptoKeyMapOutput) ElementType() reflect.Type

func (CryptoKeyMapOutput) MapIndex

func (CryptoKeyMapOutput) ToCryptoKeyMapOutput

func (o CryptoKeyMapOutput) ToCryptoKeyMapOutput() CryptoKeyMapOutput

func (CryptoKeyMapOutput) ToCryptoKeyMapOutputWithContext

func (o CryptoKeyMapOutput) ToCryptoKeyMapOutputWithContext(ctx context.Context) CryptoKeyMapOutput

type CryptoKeyOutput

type CryptoKeyOutput struct{ *pulumi.OutputState }

func (CryptoKeyOutput) ElementType

func (CryptoKeyOutput) ElementType() reflect.Type

func (CryptoKeyOutput) ToCryptoKeyOutput

func (o CryptoKeyOutput) ToCryptoKeyOutput() CryptoKeyOutput

func (CryptoKeyOutput) ToCryptoKeyOutputWithContext

func (o CryptoKeyOutput) ToCryptoKeyOutputWithContext(ctx context.Context) CryptoKeyOutput

func (CryptoKeyOutput) ToCryptoKeyPtrOutput

func (o CryptoKeyOutput) ToCryptoKeyPtrOutput() CryptoKeyPtrOutput

func (CryptoKeyOutput) ToCryptoKeyPtrOutputWithContext

func (o CryptoKeyOutput) ToCryptoKeyPtrOutputWithContext(ctx context.Context) CryptoKeyPtrOutput

type CryptoKeyPtrInput

type CryptoKeyPtrInput interface {
	pulumi.Input

	ToCryptoKeyPtrOutput() CryptoKeyPtrOutput
	ToCryptoKeyPtrOutputWithContext(ctx context.Context) CryptoKeyPtrOutput
}

type CryptoKeyPtrOutput

type CryptoKeyPtrOutput struct{ *pulumi.OutputState }

func (CryptoKeyPtrOutput) Elem added in v5.21.0

func (CryptoKeyPtrOutput) ElementType

func (CryptoKeyPtrOutput) ElementType() reflect.Type

func (CryptoKeyPtrOutput) ToCryptoKeyPtrOutput

func (o CryptoKeyPtrOutput) ToCryptoKeyPtrOutput() CryptoKeyPtrOutput

func (CryptoKeyPtrOutput) ToCryptoKeyPtrOutputWithContext

func (o CryptoKeyPtrOutput) ToCryptoKeyPtrOutputWithContext(ctx context.Context) CryptoKeyPtrOutput

type CryptoKeyState

type CryptoKeyState struct {
	// The period of time that versions of this key spend in the DESTROY_SCHEDULED state before transitioning to DESTROYED.
	// If not specified at creation time, the default duration is 24 hours.
	DestroyScheduledDuration pulumi.StringPtrInput
	// Whether this key may contain imported versions only.
	ImportOnly pulumi.BoolPtrInput
	// The KeyRing that this key belongs to.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
	KeyRing pulumi.StringPtrInput
	// Labels with user-defined metadata to apply to this resource.
	Labels pulumi.StringMapInput
	// The resource name for the CryptoKey.
	Name pulumi.StringPtrInput
	// The immutable purpose of this CryptoKey. See the
	// [purpose reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys#CryptoKeyPurpose)
	// for possible inputs.
	// Default value is `ENCRYPT_DECRYPT`.
	// Possible values are `ENCRYPT_DECRYPT`, `ASYMMETRIC_SIGN`, and `ASYMMETRIC_DECRYPT`.
	Purpose pulumi.StringPtrInput
	// Every time this period passes, generate a new CryptoKeyVersion and set it as the primary.
	// The first rotation will take place after the specified period. The rotation period has
	// the format of a decimal number with up to 9 fractional digits, followed by the
	// letter `s` (seconds). It must be greater than a day (ie, 86400).
	RotationPeriod pulumi.StringPtrInput
	// The self link of the created KeyRing in the format projects/{project}/locations/{location}/keyRings/{name}.
	//
	// Deprecated: Deprecated in favor of id, which contains an identical value. This field will be removed in the next major release of the provider.
	SelfLink pulumi.StringPtrInput
	// If set to true, the request will create a CryptoKey without any CryptoKeyVersions.
	// You must use the `kms.KeyRingImportJob` resource to import the CryptoKeyVersion.
	SkipInitialVersionCreation pulumi.BoolPtrInput
	// A template describing settings for new crypto key versions.
	// Structure is documented below.
	VersionTemplate CryptoKeyVersionTemplatePtrInput
}

func (CryptoKeyState) ElementType

func (CryptoKeyState) ElementType() reflect.Type

type CryptoKeyVersionTemplate

type CryptoKeyVersionTemplate struct {
	// The algorithm to use when creating a version based on this template.
	// See the [algorithm reference](https://cloud.google.com/kms/docs/reference/rest/v1/CryptoKeyVersionAlgorithm) for possible inputs.
	Algorithm string `pulumi:"algorithm"`
	// The protection level to use when creating a version based on this template.
	// Default value is `SOFTWARE`.
	// Possible values are `SOFTWARE` and `HSM`.
	ProtectionLevel *string `pulumi:"protectionLevel"`
}

type CryptoKeyVersionTemplateArgs

type CryptoKeyVersionTemplateArgs struct {
	// The algorithm to use when creating a version based on this template.
	// See the [algorithm reference](https://cloud.google.com/kms/docs/reference/rest/v1/CryptoKeyVersionAlgorithm) for possible inputs.
	Algorithm pulumi.StringInput `pulumi:"algorithm"`
	// The protection level to use when creating a version based on this template.
	// Default value is `SOFTWARE`.
	// Possible values are `SOFTWARE` and `HSM`.
	ProtectionLevel pulumi.StringPtrInput `pulumi:"protectionLevel"`
}

func (CryptoKeyVersionTemplateArgs) ElementType

func (CryptoKeyVersionTemplateArgs) ToCryptoKeyVersionTemplateOutput

func (i CryptoKeyVersionTemplateArgs) ToCryptoKeyVersionTemplateOutput() CryptoKeyVersionTemplateOutput

func (CryptoKeyVersionTemplateArgs) ToCryptoKeyVersionTemplateOutputWithContext

func (i CryptoKeyVersionTemplateArgs) ToCryptoKeyVersionTemplateOutputWithContext(ctx context.Context) CryptoKeyVersionTemplateOutput

func (CryptoKeyVersionTemplateArgs) ToCryptoKeyVersionTemplatePtrOutput

func (i CryptoKeyVersionTemplateArgs) ToCryptoKeyVersionTemplatePtrOutput() CryptoKeyVersionTemplatePtrOutput

func (CryptoKeyVersionTemplateArgs) ToCryptoKeyVersionTemplatePtrOutputWithContext

func (i CryptoKeyVersionTemplateArgs) ToCryptoKeyVersionTemplatePtrOutputWithContext(ctx context.Context) CryptoKeyVersionTemplatePtrOutput

type CryptoKeyVersionTemplateInput

type CryptoKeyVersionTemplateInput interface {
	pulumi.Input

	ToCryptoKeyVersionTemplateOutput() CryptoKeyVersionTemplateOutput
	ToCryptoKeyVersionTemplateOutputWithContext(context.Context) CryptoKeyVersionTemplateOutput
}

CryptoKeyVersionTemplateInput is an input type that accepts CryptoKeyVersionTemplateArgs and CryptoKeyVersionTemplateOutput values. You can construct a concrete instance of `CryptoKeyVersionTemplateInput` via:

CryptoKeyVersionTemplateArgs{...}

type CryptoKeyVersionTemplateOutput

type CryptoKeyVersionTemplateOutput struct{ *pulumi.OutputState }

func (CryptoKeyVersionTemplateOutput) Algorithm

The algorithm to use when creating a version based on this template. See the [algorithm reference](https://cloud.google.com/kms/docs/reference/rest/v1/CryptoKeyVersionAlgorithm) for possible inputs.

func (CryptoKeyVersionTemplateOutput) ElementType

func (CryptoKeyVersionTemplateOutput) ProtectionLevel

The protection level to use when creating a version based on this template. Default value is `SOFTWARE`. Possible values are `SOFTWARE` and `HSM`.

func (CryptoKeyVersionTemplateOutput) ToCryptoKeyVersionTemplateOutput

func (o CryptoKeyVersionTemplateOutput) ToCryptoKeyVersionTemplateOutput() CryptoKeyVersionTemplateOutput

func (CryptoKeyVersionTemplateOutput) ToCryptoKeyVersionTemplateOutputWithContext

func (o CryptoKeyVersionTemplateOutput) ToCryptoKeyVersionTemplateOutputWithContext(ctx context.Context) CryptoKeyVersionTemplateOutput

func (CryptoKeyVersionTemplateOutput) ToCryptoKeyVersionTemplatePtrOutput

func (o CryptoKeyVersionTemplateOutput) ToCryptoKeyVersionTemplatePtrOutput() CryptoKeyVersionTemplatePtrOutput

func (CryptoKeyVersionTemplateOutput) ToCryptoKeyVersionTemplatePtrOutputWithContext

func (o CryptoKeyVersionTemplateOutput) ToCryptoKeyVersionTemplatePtrOutputWithContext(ctx context.Context) CryptoKeyVersionTemplatePtrOutput

type CryptoKeyVersionTemplatePtrInput

type CryptoKeyVersionTemplatePtrInput interface {
	pulumi.Input

	ToCryptoKeyVersionTemplatePtrOutput() CryptoKeyVersionTemplatePtrOutput
	ToCryptoKeyVersionTemplatePtrOutputWithContext(context.Context) CryptoKeyVersionTemplatePtrOutput
}

CryptoKeyVersionTemplatePtrInput is an input type that accepts CryptoKeyVersionTemplateArgs, CryptoKeyVersionTemplatePtr and CryptoKeyVersionTemplatePtrOutput values. You can construct a concrete instance of `CryptoKeyVersionTemplatePtrInput` via:

        CryptoKeyVersionTemplateArgs{...}

or:

        nil

type CryptoKeyVersionTemplatePtrOutput

type CryptoKeyVersionTemplatePtrOutput struct{ *pulumi.OutputState }

func (CryptoKeyVersionTemplatePtrOutput) Algorithm

The algorithm to use when creating a version based on this template. See the [algorithm reference](https://cloud.google.com/kms/docs/reference/rest/v1/CryptoKeyVersionAlgorithm) for possible inputs.

func (CryptoKeyVersionTemplatePtrOutput) Elem

func (CryptoKeyVersionTemplatePtrOutput) ElementType

func (CryptoKeyVersionTemplatePtrOutput) ProtectionLevel

The protection level to use when creating a version based on this template. Default value is `SOFTWARE`. Possible values are `SOFTWARE` and `HSM`.

func (CryptoKeyVersionTemplatePtrOutput) ToCryptoKeyVersionTemplatePtrOutput

func (o CryptoKeyVersionTemplatePtrOutput) ToCryptoKeyVersionTemplatePtrOutput() CryptoKeyVersionTemplatePtrOutput

func (CryptoKeyVersionTemplatePtrOutput) ToCryptoKeyVersionTemplatePtrOutputWithContext

func (o CryptoKeyVersionTemplatePtrOutput) ToCryptoKeyVersionTemplatePtrOutputWithContext(ctx context.Context) CryptoKeyVersionTemplatePtrOutput

type GetKMSCryptoKeyArgs

type GetKMSCryptoKeyArgs struct {
	// The `selfLink` of the Google Cloud Platform KeyRing to which the key belongs.
	KeyRing string `pulumi:"keyRing"`
	// The CryptoKey's name.
	// A CryptoKey’s name belonging to the specified Google Cloud Platform KeyRing and match the regular expression `[a-zA-Z0-9_-]{1,63}`
	Name string `pulumi:"name"`
}

A collection of arguments for invoking getKMSCryptoKey.

type GetKMSCryptoKeyOutputArgs added in v5.21.0

type GetKMSCryptoKeyOutputArgs struct {
	// The `selfLink` of the Google Cloud Platform KeyRing to which the key belongs.
	KeyRing pulumi.StringInput `pulumi:"keyRing"`
	// The CryptoKey's name.
	// A CryptoKey’s name belonging to the specified Google Cloud Platform KeyRing and match the regular expression `[a-zA-Z0-9_-]{1,63}`
	Name pulumi.StringInput `pulumi:"name"`
}

A collection of arguments for invoking getKMSCryptoKey.

func (GetKMSCryptoKeyOutputArgs) ElementType added in v5.21.0

func (GetKMSCryptoKeyOutputArgs) ElementType() reflect.Type

type GetKMSCryptoKeyResult

type GetKMSCryptoKeyResult struct {
	DestroyScheduledDuration string `pulumi:"destroyScheduledDuration"`
	// The provider-assigned unique ID for this managed resource.
	Id         string            `pulumi:"id"`
	ImportOnly bool              `pulumi:"importOnly"`
	KeyRing    string            `pulumi:"keyRing"`
	Labels     map[string]string `pulumi:"labels"`
	Name       string            `pulumi:"name"`
	// Defines the cryptographic capabilities of the key.
	Purpose string `pulumi:"purpose"`
	// Every time this period passes, generate a new CryptoKeyVersion and set it as
	// the primary. The first rotation will take place after the specified period. The rotation period has the format
	// of a decimal number with up to 9 fractional digits, followed by the letter s (seconds).
	RotationPeriod string `pulumi:"rotationPeriod"`
	// The self link of the created CryptoKey. Its format is `projects/{projectId}/locations/{location}/keyRings/{keyRingName}/cryptoKeys/{cryptoKeyName}`.
	SelfLink                   string                           `pulumi:"selfLink"`
	SkipInitialVersionCreation bool                             `pulumi:"skipInitialVersionCreation"`
	VersionTemplates           []GetKMSCryptoKeyVersionTemplate `pulumi:"versionTemplates"`
}

A collection of values returned by getKMSCryptoKey.

func GetKMSCryptoKey

func GetKMSCryptoKey(ctx *pulumi.Context, args *GetKMSCryptoKeyArgs, opts ...pulumi.InvokeOption) (*GetKMSCryptoKeyResult, error)

Provides access to a Google Cloud Platform KMS CryptoKey. For more information see [the official documentation](https://cloud.google.com/kms/docs/object-hierarchy#key) and [API](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys).

A CryptoKey is an interface to key material which can be used to encrypt and decrypt data. A CryptoKey belongs to a Google Cloud KMS KeyRing.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myKeyRing, err := kms.GetKMSKeyRing(ctx, &kms.GetKMSKeyRingArgs{
			Name:     "my-key-ring",
			Location: "us-central1",
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.GetKMSCryptoKey(ctx, &kms.GetKMSCryptoKeyArgs{
			Name:    "my-crypto-key",
			KeyRing: myKeyRing.SelfLink,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetKMSCryptoKeyResultOutput added in v5.21.0

type GetKMSCryptoKeyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getKMSCryptoKey.

func GetKMSCryptoKeyOutput added in v5.21.0

func (GetKMSCryptoKeyResultOutput) DestroyScheduledDuration added in v5.21.0

func (o GetKMSCryptoKeyResultOutput) DestroyScheduledDuration() pulumi.StringOutput

func (GetKMSCryptoKeyResultOutput) ElementType added in v5.21.0

func (GetKMSCryptoKeyResultOutput) Id added in v5.21.0

The provider-assigned unique ID for this managed resource.

func (GetKMSCryptoKeyResultOutput) ImportOnly added in v5.22.0

func (GetKMSCryptoKeyResultOutput) KeyRing added in v5.21.0

func (GetKMSCryptoKeyResultOutput) Labels added in v5.21.0

func (GetKMSCryptoKeyResultOutput) Name added in v5.21.0

func (GetKMSCryptoKeyResultOutput) Purpose added in v5.21.0

Defines the cryptographic capabilities of the key.

func (GetKMSCryptoKeyResultOutput) RotationPeriod added in v5.21.0

func (o GetKMSCryptoKeyResultOutput) RotationPeriod() pulumi.StringOutput

Every time this period passes, generate a new CryptoKeyVersion and set it as the primary. The first rotation will take place after the specified period. The rotation period has the format of a decimal number with up to 9 fractional digits, followed by the letter s (seconds).

The self link of the created CryptoKey. Its format is `projects/{projectId}/locations/{location}/keyRings/{keyRingName}/cryptoKeys/{cryptoKeyName}`.

func (GetKMSCryptoKeyResultOutput) SkipInitialVersionCreation added in v5.21.0

func (o GetKMSCryptoKeyResultOutput) SkipInitialVersionCreation() pulumi.BoolOutput

func (GetKMSCryptoKeyResultOutput) ToGetKMSCryptoKeyResultOutput added in v5.21.0

func (o GetKMSCryptoKeyResultOutput) ToGetKMSCryptoKeyResultOutput() GetKMSCryptoKeyResultOutput

func (GetKMSCryptoKeyResultOutput) ToGetKMSCryptoKeyResultOutputWithContext added in v5.21.0

func (o GetKMSCryptoKeyResultOutput) ToGetKMSCryptoKeyResultOutputWithContext(ctx context.Context) GetKMSCryptoKeyResultOutput

func (GetKMSCryptoKeyResultOutput) VersionTemplates added in v5.21.0

type GetKMSCryptoKeyVersionArgs

type GetKMSCryptoKeyVersionArgs struct {
	// The `selfLink` of the Google Cloud Platform CryptoKey to which the key version belongs. This is also the `id` field of the
	// `kms.CryptoKey` resource/datasource.
	CryptoKey string `pulumi:"cryptoKey"`
	// The version number for this CryptoKeyVersion. Defaults to `1`.
	Version *int `pulumi:"version"`
}

A collection of arguments for invoking getKMSCryptoKeyVersion.

type GetKMSCryptoKeyVersionOutputArgs added in v5.21.0

type GetKMSCryptoKeyVersionOutputArgs struct {
	// The `selfLink` of the Google Cloud Platform CryptoKey to which the key version belongs. This is also the `id` field of the
	// `kms.CryptoKey` resource/datasource.
	CryptoKey pulumi.StringInput `pulumi:"cryptoKey"`
	// The version number for this CryptoKeyVersion. Defaults to `1`.
	Version pulumi.IntPtrInput `pulumi:"version"`
}

A collection of arguments for invoking getKMSCryptoKeyVersion.

func (GetKMSCryptoKeyVersionOutputArgs) ElementType added in v5.21.0

type GetKMSCryptoKeyVersionPublicKey

type GetKMSCryptoKeyVersionPublicKey struct {
	// The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports.
	Algorithm string `pulumi:"algorithm"`
	// The public key, encoded in PEM format. For more information, see the RFC 7468 sections for General Considerations and Textual Encoding of Subject Public Key Info.
	Pem string `pulumi:"pem"`
}

type GetKMSCryptoKeyVersionPublicKeyArgs

type GetKMSCryptoKeyVersionPublicKeyArgs struct {
	// The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports.
	Algorithm pulumi.StringInput `pulumi:"algorithm"`
	// The public key, encoded in PEM format. For more information, see the RFC 7468 sections for General Considerations and Textual Encoding of Subject Public Key Info.
	Pem pulumi.StringInput `pulumi:"pem"`
}

func (GetKMSCryptoKeyVersionPublicKeyArgs) ElementType

func (GetKMSCryptoKeyVersionPublicKeyArgs) ToGetKMSCryptoKeyVersionPublicKeyOutput

func (i GetKMSCryptoKeyVersionPublicKeyArgs) ToGetKMSCryptoKeyVersionPublicKeyOutput() GetKMSCryptoKeyVersionPublicKeyOutput

func (GetKMSCryptoKeyVersionPublicKeyArgs) ToGetKMSCryptoKeyVersionPublicKeyOutputWithContext

func (i GetKMSCryptoKeyVersionPublicKeyArgs) ToGetKMSCryptoKeyVersionPublicKeyOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionPublicKeyOutput

type GetKMSCryptoKeyVersionPublicKeyArray

type GetKMSCryptoKeyVersionPublicKeyArray []GetKMSCryptoKeyVersionPublicKeyInput

func (GetKMSCryptoKeyVersionPublicKeyArray) ElementType

func (GetKMSCryptoKeyVersionPublicKeyArray) ToGetKMSCryptoKeyVersionPublicKeyArrayOutput

func (i GetKMSCryptoKeyVersionPublicKeyArray) ToGetKMSCryptoKeyVersionPublicKeyArrayOutput() GetKMSCryptoKeyVersionPublicKeyArrayOutput

func (GetKMSCryptoKeyVersionPublicKeyArray) ToGetKMSCryptoKeyVersionPublicKeyArrayOutputWithContext

func (i GetKMSCryptoKeyVersionPublicKeyArray) ToGetKMSCryptoKeyVersionPublicKeyArrayOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionPublicKeyArrayOutput

type GetKMSCryptoKeyVersionPublicKeyArrayInput

type GetKMSCryptoKeyVersionPublicKeyArrayInput interface {
	pulumi.Input

	ToGetKMSCryptoKeyVersionPublicKeyArrayOutput() GetKMSCryptoKeyVersionPublicKeyArrayOutput
	ToGetKMSCryptoKeyVersionPublicKeyArrayOutputWithContext(context.Context) GetKMSCryptoKeyVersionPublicKeyArrayOutput
}

GetKMSCryptoKeyVersionPublicKeyArrayInput is an input type that accepts GetKMSCryptoKeyVersionPublicKeyArray and GetKMSCryptoKeyVersionPublicKeyArrayOutput values. You can construct a concrete instance of `GetKMSCryptoKeyVersionPublicKeyArrayInput` via:

GetKMSCryptoKeyVersionPublicKeyArray{ GetKMSCryptoKeyVersionPublicKeyArgs{...} }

type GetKMSCryptoKeyVersionPublicKeyArrayOutput

type GetKMSCryptoKeyVersionPublicKeyArrayOutput struct{ *pulumi.OutputState }

func (GetKMSCryptoKeyVersionPublicKeyArrayOutput) ElementType

func (GetKMSCryptoKeyVersionPublicKeyArrayOutput) Index

func (GetKMSCryptoKeyVersionPublicKeyArrayOutput) ToGetKMSCryptoKeyVersionPublicKeyArrayOutput

func (o GetKMSCryptoKeyVersionPublicKeyArrayOutput) ToGetKMSCryptoKeyVersionPublicKeyArrayOutput() GetKMSCryptoKeyVersionPublicKeyArrayOutput

func (GetKMSCryptoKeyVersionPublicKeyArrayOutput) ToGetKMSCryptoKeyVersionPublicKeyArrayOutputWithContext

func (o GetKMSCryptoKeyVersionPublicKeyArrayOutput) ToGetKMSCryptoKeyVersionPublicKeyArrayOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionPublicKeyArrayOutput

type GetKMSCryptoKeyVersionPublicKeyInput

type GetKMSCryptoKeyVersionPublicKeyInput interface {
	pulumi.Input

	ToGetKMSCryptoKeyVersionPublicKeyOutput() GetKMSCryptoKeyVersionPublicKeyOutput
	ToGetKMSCryptoKeyVersionPublicKeyOutputWithContext(context.Context) GetKMSCryptoKeyVersionPublicKeyOutput
}

GetKMSCryptoKeyVersionPublicKeyInput is an input type that accepts GetKMSCryptoKeyVersionPublicKeyArgs and GetKMSCryptoKeyVersionPublicKeyOutput values. You can construct a concrete instance of `GetKMSCryptoKeyVersionPublicKeyInput` via:

GetKMSCryptoKeyVersionPublicKeyArgs{...}

type GetKMSCryptoKeyVersionPublicKeyOutput

type GetKMSCryptoKeyVersionPublicKeyOutput struct{ *pulumi.OutputState }

func (GetKMSCryptoKeyVersionPublicKeyOutput) Algorithm

The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports.

func (GetKMSCryptoKeyVersionPublicKeyOutput) ElementType

func (GetKMSCryptoKeyVersionPublicKeyOutput) Pem

The public key, encoded in PEM format. For more information, see the RFC 7468 sections for General Considerations and Textual Encoding of Subject Public Key Info.

func (GetKMSCryptoKeyVersionPublicKeyOutput) ToGetKMSCryptoKeyVersionPublicKeyOutput

func (o GetKMSCryptoKeyVersionPublicKeyOutput) ToGetKMSCryptoKeyVersionPublicKeyOutput() GetKMSCryptoKeyVersionPublicKeyOutput

func (GetKMSCryptoKeyVersionPublicKeyOutput) ToGetKMSCryptoKeyVersionPublicKeyOutputWithContext

func (o GetKMSCryptoKeyVersionPublicKeyOutput) ToGetKMSCryptoKeyVersionPublicKeyOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionPublicKeyOutput

type GetKMSCryptoKeyVersionResult

type GetKMSCryptoKeyVersionResult struct {
	// The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports.
	Algorithm string `pulumi:"algorithm"`
	CryptoKey string `pulumi:"cryptoKey"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The resource name for this CryptoKeyVersion in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`
	Name string `pulumi:"name"`
	// The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion. See the [protectionLevel reference](https://cloud.google.com/kms/docs/reference/rest/v1/ProtectionLevel) for possible outputs.
	ProtectionLevel string `pulumi:"protectionLevel"`
	// If the enclosing CryptoKey has purpose `ASYMMETRIC_SIGN` or `ASYMMETRIC_DECRYPT`, this block contains details about the public key associated to this CryptoKeyVersion. Structure is documented below.
	PublicKeys []GetKMSCryptoKeyVersionPublicKey `pulumi:"publicKeys"`
	// The current state of the CryptoKeyVersion. See the [state reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions#CryptoKeyVersion.CryptoKeyVersionState) for possible outputs.
	State   string `pulumi:"state"`
	Version *int   `pulumi:"version"`
}

A collection of values returned by getKMSCryptoKeyVersion.

func GetKMSCryptoKeyVersion

func GetKMSCryptoKeyVersion(ctx *pulumi.Context, args *GetKMSCryptoKeyVersionArgs, opts ...pulumi.InvokeOption) (*GetKMSCryptoKeyVersionResult, error)

Provides access to a Google Cloud Platform KMS CryptoKeyVersion. For more information see [the official documentation](https://cloud.google.com/kms/docs/object-hierarchy#key_version) and [API](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions).

A CryptoKeyVersion represents an individual cryptographic key, and the associated key material.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myKeyRing, err := kms.GetKMSKeyRing(ctx, &kms.GetKMSKeyRingArgs{
			Name:     "my-key-ring",
			Location: "us-central1",
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.GetKMSCryptoKey(ctx, &kms.GetKMSCryptoKeyArgs{
			Name:    "my-crypto-key",
			KeyRing: myKeyRing.Id,
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.GetKMSCryptoKeyVersion(ctx, &kms.GetKMSCryptoKeyVersionArgs{
			CryptoKey: data.Google_kms_key.My_key.Id,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetKMSCryptoKeyVersionResultOutput added in v5.21.0

type GetKMSCryptoKeyVersionResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getKMSCryptoKeyVersion.

func GetKMSCryptoKeyVersionOutput added in v5.21.0

func (GetKMSCryptoKeyVersionResultOutput) Algorithm added in v5.21.0

The CryptoKeyVersionAlgorithm that this CryptoKeyVersion supports.

func (GetKMSCryptoKeyVersionResultOutput) CryptoKey added in v5.21.0

func (GetKMSCryptoKeyVersionResultOutput) ElementType added in v5.21.0

func (GetKMSCryptoKeyVersionResultOutput) Id added in v5.21.0

The provider-assigned unique ID for this managed resource.

func (GetKMSCryptoKeyVersionResultOutput) Name added in v5.21.0

The resource name for this CryptoKeyVersion in the format `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`

func (GetKMSCryptoKeyVersionResultOutput) ProtectionLevel added in v5.21.0

The ProtectionLevel describing how crypto operations are performed with this CryptoKeyVersion. See the [protectionLevel reference](https://cloud.google.com/kms/docs/reference/rest/v1/ProtectionLevel) for possible outputs.

func (GetKMSCryptoKeyVersionResultOutput) PublicKeys added in v5.21.0

If the enclosing CryptoKey has purpose `ASYMMETRIC_SIGN` or `ASYMMETRIC_DECRYPT`, this block contains details about the public key associated to this CryptoKeyVersion. Structure is documented below.

func (GetKMSCryptoKeyVersionResultOutput) State added in v5.21.0

The current state of the CryptoKeyVersion. See the [state reference](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions#CryptoKeyVersion.CryptoKeyVersionState) for possible outputs.

func (GetKMSCryptoKeyVersionResultOutput) ToGetKMSCryptoKeyVersionResultOutput added in v5.21.0

func (o GetKMSCryptoKeyVersionResultOutput) ToGetKMSCryptoKeyVersionResultOutput() GetKMSCryptoKeyVersionResultOutput

func (GetKMSCryptoKeyVersionResultOutput) ToGetKMSCryptoKeyVersionResultOutputWithContext added in v5.21.0

func (o GetKMSCryptoKeyVersionResultOutput) ToGetKMSCryptoKeyVersionResultOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionResultOutput

func (GetKMSCryptoKeyVersionResultOutput) Version added in v5.21.0

type GetKMSCryptoKeyVersionTemplate

type GetKMSCryptoKeyVersionTemplate struct {
	Algorithm       string `pulumi:"algorithm"`
	ProtectionLevel string `pulumi:"protectionLevel"`
}

type GetKMSCryptoKeyVersionTemplateArgs

type GetKMSCryptoKeyVersionTemplateArgs struct {
	Algorithm       pulumi.StringInput `pulumi:"algorithm"`
	ProtectionLevel pulumi.StringInput `pulumi:"protectionLevel"`
}

func (GetKMSCryptoKeyVersionTemplateArgs) ElementType

func (GetKMSCryptoKeyVersionTemplateArgs) ToGetKMSCryptoKeyVersionTemplateOutput

func (i GetKMSCryptoKeyVersionTemplateArgs) ToGetKMSCryptoKeyVersionTemplateOutput() GetKMSCryptoKeyVersionTemplateOutput

func (GetKMSCryptoKeyVersionTemplateArgs) ToGetKMSCryptoKeyVersionTemplateOutputWithContext

func (i GetKMSCryptoKeyVersionTemplateArgs) ToGetKMSCryptoKeyVersionTemplateOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionTemplateOutput

type GetKMSCryptoKeyVersionTemplateArray

type GetKMSCryptoKeyVersionTemplateArray []GetKMSCryptoKeyVersionTemplateInput

func (GetKMSCryptoKeyVersionTemplateArray) ElementType

func (GetKMSCryptoKeyVersionTemplateArray) ToGetKMSCryptoKeyVersionTemplateArrayOutput

func (i GetKMSCryptoKeyVersionTemplateArray) ToGetKMSCryptoKeyVersionTemplateArrayOutput() GetKMSCryptoKeyVersionTemplateArrayOutput

func (GetKMSCryptoKeyVersionTemplateArray) ToGetKMSCryptoKeyVersionTemplateArrayOutputWithContext

func (i GetKMSCryptoKeyVersionTemplateArray) ToGetKMSCryptoKeyVersionTemplateArrayOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionTemplateArrayOutput

type GetKMSCryptoKeyVersionTemplateArrayInput

type GetKMSCryptoKeyVersionTemplateArrayInput interface {
	pulumi.Input

	ToGetKMSCryptoKeyVersionTemplateArrayOutput() GetKMSCryptoKeyVersionTemplateArrayOutput
	ToGetKMSCryptoKeyVersionTemplateArrayOutputWithContext(context.Context) GetKMSCryptoKeyVersionTemplateArrayOutput
}

GetKMSCryptoKeyVersionTemplateArrayInput is an input type that accepts GetKMSCryptoKeyVersionTemplateArray and GetKMSCryptoKeyVersionTemplateArrayOutput values. You can construct a concrete instance of `GetKMSCryptoKeyVersionTemplateArrayInput` via:

GetKMSCryptoKeyVersionTemplateArray{ GetKMSCryptoKeyVersionTemplateArgs{...} }

type GetKMSCryptoKeyVersionTemplateArrayOutput

type GetKMSCryptoKeyVersionTemplateArrayOutput struct{ *pulumi.OutputState }

func (GetKMSCryptoKeyVersionTemplateArrayOutput) ElementType

func (GetKMSCryptoKeyVersionTemplateArrayOutput) Index

func (GetKMSCryptoKeyVersionTemplateArrayOutput) ToGetKMSCryptoKeyVersionTemplateArrayOutput

func (o GetKMSCryptoKeyVersionTemplateArrayOutput) ToGetKMSCryptoKeyVersionTemplateArrayOutput() GetKMSCryptoKeyVersionTemplateArrayOutput

func (GetKMSCryptoKeyVersionTemplateArrayOutput) ToGetKMSCryptoKeyVersionTemplateArrayOutputWithContext

func (o GetKMSCryptoKeyVersionTemplateArrayOutput) ToGetKMSCryptoKeyVersionTemplateArrayOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionTemplateArrayOutput

type GetKMSCryptoKeyVersionTemplateInput

type GetKMSCryptoKeyVersionTemplateInput interface {
	pulumi.Input

	ToGetKMSCryptoKeyVersionTemplateOutput() GetKMSCryptoKeyVersionTemplateOutput
	ToGetKMSCryptoKeyVersionTemplateOutputWithContext(context.Context) GetKMSCryptoKeyVersionTemplateOutput
}

GetKMSCryptoKeyVersionTemplateInput is an input type that accepts GetKMSCryptoKeyVersionTemplateArgs and GetKMSCryptoKeyVersionTemplateOutput values. You can construct a concrete instance of `GetKMSCryptoKeyVersionTemplateInput` via:

GetKMSCryptoKeyVersionTemplateArgs{...}

type GetKMSCryptoKeyVersionTemplateOutput

type GetKMSCryptoKeyVersionTemplateOutput struct{ *pulumi.OutputState }

func (GetKMSCryptoKeyVersionTemplateOutput) Algorithm

func (GetKMSCryptoKeyVersionTemplateOutput) ElementType

func (GetKMSCryptoKeyVersionTemplateOutput) ProtectionLevel

func (GetKMSCryptoKeyVersionTemplateOutput) ToGetKMSCryptoKeyVersionTemplateOutput

func (o GetKMSCryptoKeyVersionTemplateOutput) ToGetKMSCryptoKeyVersionTemplateOutput() GetKMSCryptoKeyVersionTemplateOutput

func (GetKMSCryptoKeyVersionTemplateOutput) ToGetKMSCryptoKeyVersionTemplateOutputWithContext

func (o GetKMSCryptoKeyVersionTemplateOutput) ToGetKMSCryptoKeyVersionTemplateOutputWithContext(ctx context.Context) GetKMSCryptoKeyVersionTemplateOutput

type GetKMSKeyRingArgs

type GetKMSKeyRingArgs struct {
	// The Google Cloud Platform location for the KeyRing.
	// A full list of valid locations can be found by running `gcloud kms locations list`.
	Location string `pulumi:"location"`
	// The KeyRing's name.
	// A KeyRing name must exist within the provided location and match the regular expression `[a-zA-Z0-9_-]{1,63}`
	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 getKMSKeyRing.

type GetKMSKeyRingOutputArgs added in v5.21.0

type GetKMSKeyRingOutputArgs struct {
	// The Google Cloud Platform location for the KeyRing.
	// A full list of valid locations can be found by running `gcloud kms locations list`.
	Location pulumi.StringInput `pulumi:"location"`
	// The KeyRing's name.
	// A KeyRing name must exist within the provided location and match the regular expression `[a-zA-Z0-9_-]{1,63}`
	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 getKMSKeyRing.

func (GetKMSKeyRingOutputArgs) ElementType added in v5.21.0

func (GetKMSKeyRingOutputArgs) ElementType() reflect.Type

type GetKMSKeyRingResult

type GetKMSKeyRingResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id       string  `pulumi:"id"`
	Location string  `pulumi:"location"`
	Name     string  `pulumi:"name"`
	Project  *string `pulumi:"project"`
	// The self link of the created KeyRing. Its format is `projects/{projectId}/locations/{location}/keyRings/{keyRingName}`.
	SelfLink string `pulumi:"selfLink"`
}

A collection of values returned by getKMSKeyRing.

func GetKMSKeyRing

func GetKMSKeyRing(ctx *pulumi.Context, args *GetKMSKeyRingArgs, opts ...pulumi.InvokeOption) (*GetKMSKeyRingResult, error)

Provides access to Google Cloud Platform KMS KeyRing. For more information see [the official documentation](https://cloud.google.com/kms/docs/object-hierarchy#key_ring) and [API](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings).

A KeyRing is a grouping of CryptoKeys for organizational purposes. A KeyRing belongs to a Google Cloud Platform Project and resides in a specific location.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.GetKMSKeyRing(ctx, &kms.GetKMSKeyRingArgs{
			Location: "us-central1",
			Name:     "my-key-ring",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetKMSKeyRingResultOutput added in v5.21.0

type GetKMSKeyRingResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getKMSKeyRing.

func GetKMSKeyRingOutput added in v5.21.0

func GetKMSKeyRingOutput(ctx *pulumi.Context, args GetKMSKeyRingOutputArgs, opts ...pulumi.InvokeOption) GetKMSKeyRingResultOutput

func (GetKMSKeyRingResultOutput) ElementType added in v5.21.0

func (GetKMSKeyRingResultOutput) ElementType() reflect.Type

func (GetKMSKeyRingResultOutput) Id added in v5.21.0

The provider-assigned unique ID for this managed resource.

func (GetKMSKeyRingResultOutput) Location added in v5.21.0

func (GetKMSKeyRingResultOutput) Name added in v5.21.0

func (GetKMSKeyRingResultOutput) Project added in v5.21.0

The self link of the created KeyRing. Its format is `projects/{projectId}/locations/{location}/keyRings/{keyRingName}`.

func (GetKMSKeyRingResultOutput) ToGetKMSKeyRingResultOutput added in v5.21.0

func (o GetKMSKeyRingResultOutput) ToGetKMSKeyRingResultOutput() GetKMSKeyRingResultOutput

func (GetKMSKeyRingResultOutput) ToGetKMSKeyRingResultOutputWithContext added in v5.21.0

func (o GetKMSKeyRingResultOutput) ToGetKMSKeyRingResultOutputWithContext(ctx context.Context) GetKMSKeyRingResultOutput

type GetKMSSecretArgs

type GetKMSSecretArgs struct {
	// The [additional authenticated data](https://cloud.google.com/kms/docs/additional-authenticated-data) used for integrity checks during encryption and decryption.
	AdditionalAuthenticatedData *string `pulumi:"additionalAuthenticatedData"`
	// The ciphertext to be decrypted, encoded in base64
	Ciphertext string `pulumi:"ciphertext"`
	// The id of the CryptoKey that will be used to
	// decrypt the provided ciphertext. This is represented by the format
	// `{projectId}/{location}/{keyRingName}/{cryptoKeyName}`.
	CryptoKey string `pulumi:"cryptoKey"`
}

A collection of arguments for invoking getKMSSecret.

type GetKMSSecretAsymmetricArgs

type GetKMSSecretAsymmetricArgs struct {
	// The ciphertext to be decrypted, encoded in base64
	Ciphertext string `pulumi:"ciphertext"`
	// The crc32 checksum of the `ciphertext` in hexadecimal notation. If not specified, it will be computed.
	Crc32 *string `pulumi:"crc32"`
	// The id of the CryptoKey version that will be used to
	// decrypt the provided ciphertext. This is represented by the format
	// `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`.
	CryptoKeyVersion string `pulumi:"cryptoKeyVersion"`
}

A collection of arguments for invoking getKMSSecretAsymmetric.

type GetKMSSecretAsymmetricOutputArgs added in v5.21.0

type GetKMSSecretAsymmetricOutputArgs struct {
	// The ciphertext to be decrypted, encoded in base64
	Ciphertext pulumi.StringInput `pulumi:"ciphertext"`
	// The crc32 checksum of the `ciphertext` in hexadecimal notation. If not specified, it will be computed.
	Crc32 pulumi.StringPtrInput `pulumi:"crc32"`
	// The id of the CryptoKey version that will be used to
	// decrypt the provided ciphertext. This is represented by the format
	// `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`.
	CryptoKeyVersion pulumi.StringInput `pulumi:"cryptoKeyVersion"`
}

A collection of arguments for invoking getKMSSecretAsymmetric.

func (GetKMSSecretAsymmetricOutputArgs) ElementType added in v5.21.0

type GetKMSSecretAsymmetricResult

type GetKMSSecretAsymmetricResult struct {
	Ciphertext string `pulumi:"ciphertext"`
	// Contains the crc32 checksum of the provided ciphertext.
	Crc32            *string `pulumi:"crc32"`
	CryptoKeyVersion string  `pulumi:"cryptoKeyVersion"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Contains the result of decrypting the provided ciphertext.
	Plaintext string `pulumi:"plaintext"`
}

A collection of values returned by getKMSSecretAsymmetric.

type GetKMSSecretAsymmetricResultOutput added in v5.21.0

type GetKMSSecretAsymmetricResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getKMSSecretAsymmetric.

func GetKMSSecretAsymmetricOutput added in v5.21.0

func (GetKMSSecretAsymmetricResultOutput) Ciphertext added in v5.21.0

func (GetKMSSecretAsymmetricResultOutput) Crc32 added in v5.21.0

Contains the crc32 checksum of the provided ciphertext.

func (GetKMSSecretAsymmetricResultOutput) CryptoKeyVersion added in v5.21.0

func (GetKMSSecretAsymmetricResultOutput) ElementType added in v5.21.0

func (GetKMSSecretAsymmetricResultOutput) Id added in v5.21.0

The provider-assigned unique ID for this managed resource.

func (GetKMSSecretAsymmetricResultOutput) Plaintext added in v5.21.0

Contains the result of decrypting the provided ciphertext.

func (GetKMSSecretAsymmetricResultOutput) ToGetKMSSecretAsymmetricResultOutput added in v5.21.0

func (o GetKMSSecretAsymmetricResultOutput) ToGetKMSSecretAsymmetricResultOutput() GetKMSSecretAsymmetricResultOutput

func (GetKMSSecretAsymmetricResultOutput) ToGetKMSSecretAsymmetricResultOutputWithContext added in v5.21.0

func (o GetKMSSecretAsymmetricResultOutput) ToGetKMSSecretAsymmetricResultOutputWithContext(ctx context.Context) GetKMSSecretAsymmetricResultOutput

type GetKMSSecretCiphertextArgs

type GetKMSSecretCiphertextArgs struct {
	// The id of the CryptoKey that will be used to
	// encrypt the provided plaintext. This is represented by the format
	// `{projectId}/{location}/{keyRingName}/{cryptoKeyName}`.
	CryptoKey string `pulumi:"cryptoKey"`
	// The plaintext to be encrypted
	Plaintext string `pulumi:"plaintext"`
}

A collection of arguments for invoking getKMSSecretCiphertext.

type GetKMSSecretCiphertextOutputArgs added in v5.21.0

type GetKMSSecretCiphertextOutputArgs struct {
	// The id of the CryptoKey that will be used to
	// encrypt the provided plaintext. This is represented by the format
	// `{projectId}/{location}/{keyRingName}/{cryptoKeyName}`.
	CryptoKey pulumi.StringInput `pulumi:"cryptoKey"`
	// The plaintext to be encrypted
	Plaintext pulumi.StringInput `pulumi:"plaintext"`
}

A collection of arguments for invoking getKMSSecretCiphertext.

func (GetKMSSecretCiphertextOutputArgs) ElementType added in v5.21.0

type GetKMSSecretCiphertextResult

type GetKMSSecretCiphertextResult struct {
	// Contains the result of encrypting the provided plaintext, encoded in base64.
	Ciphertext string `pulumi:"ciphertext"`
	CryptoKey  string `pulumi:"cryptoKey"`
	// The provider-assigned unique ID for this managed resource.
	Id        string `pulumi:"id"`
	Plaintext string `pulumi:"plaintext"`
}

A collection of values returned by getKMSSecretCiphertext.

func GetKMSSecretCiphertext

func GetKMSSecretCiphertext(ctx *pulumi.Context, args *GetKMSSecretCiphertextArgs, opts ...pulumi.InvokeOption) (*GetKMSSecretCiphertextResult, error)

!> **Warning:** This data source is deprecated. Use the `kms.SecretCiphertext` **resource** instead.

This data source allows you to encrypt data with Google Cloud KMS and use the ciphertext within your resource definitions.

For more information see [the official documentation](https://cloud.google.com/kms/docs/encrypt-decrypt).

> **NOTE:** Using this data source will allow you to conceal secret data within your resource definitions, but it does not take care of protecting that data in the logging output, plan output, or state output. Please take care to secure your secret data outside of resource definitions.

type GetKMSSecretCiphertextResultOutput added in v5.21.0

type GetKMSSecretCiphertextResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getKMSSecretCiphertext.

func GetKMSSecretCiphertextOutput added in v5.21.0

func (GetKMSSecretCiphertextResultOutput) Ciphertext added in v5.21.0

Contains the result of encrypting the provided plaintext, encoded in base64.

func (GetKMSSecretCiphertextResultOutput) CryptoKey added in v5.21.0

func (GetKMSSecretCiphertextResultOutput) ElementType added in v5.21.0

func (GetKMSSecretCiphertextResultOutput) Id added in v5.21.0

The provider-assigned unique ID for this managed resource.

func (GetKMSSecretCiphertextResultOutput) Plaintext added in v5.21.0

func (GetKMSSecretCiphertextResultOutput) ToGetKMSSecretCiphertextResultOutput added in v5.21.0

func (o GetKMSSecretCiphertextResultOutput) ToGetKMSSecretCiphertextResultOutput() GetKMSSecretCiphertextResultOutput

func (GetKMSSecretCiphertextResultOutput) ToGetKMSSecretCiphertextResultOutputWithContext added in v5.21.0

func (o GetKMSSecretCiphertextResultOutput) ToGetKMSSecretCiphertextResultOutputWithContext(ctx context.Context) GetKMSSecretCiphertextResultOutput

type GetKMSSecretOutputArgs added in v5.21.0

type GetKMSSecretOutputArgs struct {
	// The [additional authenticated data](https://cloud.google.com/kms/docs/additional-authenticated-data) used for integrity checks during encryption and decryption.
	AdditionalAuthenticatedData pulumi.StringPtrInput `pulumi:"additionalAuthenticatedData"`
	// The ciphertext to be decrypted, encoded in base64
	Ciphertext pulumi.StringInput `pulumi:"ciphertext"`
	// The id of the CryptoKey that will be used to
	// decrypt the provided ciphertext. This is represented by the format
	// `{projectId}/{location}/{keyRingName}/{cryptoKeyName}`.
	CryptoKey pulumi.StringInput `pulumi:"cryptoKey"`
}

A collection of arguments for invoking getKMSSecret.

func (GetKMSSecretOutputArgs) ElementType added in v5.21.0

func (GetKMSSecretOutputArgs) ElementType() reflect.Type

type GetKMSSecretResult

type GetKMSSecretResult struct {
	AdditionalAuthenticatedData *string `pulumi:"additionalAuthenticatedData"`
	Ciphertext                  string  `pulumi:"ciphertext"`
	CryptoKey                   string  `pulumi:"cryptoKey"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Contains the result of decrypting the provided ciphertext.
	Plaintext string `pulumi:"plaintext"`
}

A collection of values returned by getKMSSecret.

func GetKMSSecret

func GetKMSSecret(ctx *pulumi.Context, args *GetKMSSecretArgs, opts ...pulumi.InvokeOption) (*GetKMSSecretResult, error)

This data source allows you to use data encrypted with Google Cloud KMS within your resource definitions.

For more information see [the official documentation](https://cloud.google.com/kms/docs/encrypt-decrypt).

> **NOTE:** Using this data provider will allow you to conceal secret data within your resource definitions, but it does not take care of protecting that data in the logging output, plan output, or state output. Please take care to secure your secret data outside of resource definitions.

type GetKMSSecretResultOutput added in v5.21.0

type GetKMSSecretResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getKMSSecret.

func GetKMSSecretOutput added in v5.21.0

func GetKMSSecretOutput(ctx *pulumi.Context, args GetKMSSecretOutputArgs, opts ...pulumi.InvokeOption) GetKMSSecretResultOutput

func (GetKMSSecretResultOutput) AdditionalAuthenticatedData added in v5.21.0

func (o GetKMSSecretResultOutput) AdditionalAuthenticatedData() pulumi.StringPtrOutput

func (GetKMSSecretResultOutput) Ciphertext added in v5.21.0

func (GetKMSSecretResultOutput) CryptoKey added in v5.21.0

func (GetKMSSecretResultOutput) ElementType added in v5.21.0

func (GetKMSSecretResultOutput) ElementType() reflect.Type

func (GetKMSSecretResultOutput) Id added in v5.21.0

The provider-assigned unique ID for this managed resource.

func (GetKMSSecretResultOutput) Plaintext added in v5.21.0

Contains the result of decrypting the provided ciphertext.

func (GetKMSSecretResultOutput) ToGetKMSSecretResultOutput added in v5.21.0

func (o GetKMSSecretResultOutput) ToGetKMSSecretResultOutput() GetKMSSecretResultOutput

func (GetKMSSecretResultOutput) ToGetKMSSecretResultOutputWithContext added in v5.21.0

func (o GetKMSSecretResultOutput) ToGetKMSSecretResultOutputWithContext(ctx context.Context) GetKMSSecretResultOutput

type KeyRing

type KeyRing struct {
	pulumi.CustomResourceState

	// The location for the KeyRing.
	// A full list of valid locations can be found by running `gcloud kms locations list`.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name for the KeyRing.
	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"`
	// The self link of the created KeyRing in the format projects/{project}/locations/{location}/keyRings/{name}.
	//
	// Deprecated: Deprecated in favor of id, which contains an identical value. This field will be removed in the next major release of the provider.
	SelfLink pulumi.StringOutput `pulumi:"selfLink"`
}

A `KeyRing` is a toplevel logical grouping of `CryptoKeys`.

> **Note:** KeyRings cannot be deleted from Google Cloud Platform. Destroying a provider-managed KeyRing will remove it from state but *will not delete the resource from the project.*

To get more information about KeyRing, see:

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

## Example Usage ### Kms Key Ring Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRing(ctx, "example_keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

KeyRing can be imported using any of these accepted formats

```sh

$ pulumi import gcp:kms/keyRing:KeyRing default projects/{{project}}/locations/{{location}}/keyRings/{{name}}

```

```sh

$ pulumi import gcp:kms/keyRing:KeyRing default {{project}}/{{location}}/{{name}}

```

```sh

$ pulumi import gcp:kms/keyRing:KeyRing default {{location}}/{{name}}

```

func GetKeyRing

func GetKeyRing(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *KeyRingState, opts ...pulumi.ResourceOption) (*KeyRing, error)

GetKeyRing gets an existing KeyRing 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 NewKeyRing

func NewKeyRing(ctx *pulumi.Context,
	name string, args *KeyRingArgs, opts ...pulumi.ResourceOption) (*KeyRing, error)

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

func (*KeyRing) ElementType

func (*KeyRing) ElementType() reflect.Type

func (*KeyRing) ToKeyRingOutput

func (i *KeyRing) ToKeyRingOutput() KeyRingOutput

func (*KeyRing) ToKeyRingOutputWithContext

func (i *KeyRing) ToKeyRingOutputWithContext(ctx context.Context) KeyRingOutput

func (*KeyRing) ToKeyRingPtrOutput

func (i *KeyRing) ToKeyRingPtrOutput() KeyRingPtrOutput

func (*KeyRing) ToKeyRingPtrOutputWithContext

func (i *KeyRing) ToKeyRingPtrOutputWithContext(ctx context.Context) KeyRingPtrOutput

type KeyRingArgs

type KeyRingArgs struct {
	// The location for the KeyRing.
	// A full list of valid locations can be found by running `gcloud kms locations list`.
	Location pulumi.StringInput
	// The resource name for the KeyRing.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a KeyRing resource.

func (KeyRingArgs) ElementType

func (KeyRingArgs) ElementType() reflect.Type

type KeyRingArray

type KeyRingArray []KeyRingInput

func (KeyRingArray) ElementType

func (KeyRingArray) ElementType() reflect.Type

func (KeyRingArray) ToKeyRingArrayOutput

func (i KeyRingArray) ToKeyRingArrayOutput() KeyRingArrayOutput

func (KeyRingArray) ToKeyRingArrayOutputWithContext

func (i KeyRingArray) ToKeyRingArrayOutputWithContext(ctx context.Context) KeyRingArrayOutput

type KeyRingArrayInput

type KeyRingArrayInput interface {
	pulumi.Input

	ToKeyRingArrayOutput() KeyRingArrayOutput
	ToKeyRingArrayOutputWithContext(context.Context) KeyRingArrayOutput
}

KeyRingArrayInput is an input type that accepts KeyRingArray and KeyRingArrayOutput values. You can construct a concrete instance of `KeyRingArrayInput` via:

KeyRingArray{ KeyRingArgs{...} }

type KeyRingArrayOutput

type KeyRingArrayOutput struct{ *pulumi.OutputState }

func (KeyRingArrayOutput) ElementType

func (KeyRingArrayOutput) ElementType() reflect.Type

func (KeyRingArrayOutput) Index

func (KeyRingArrayOutput) ToKeyRingArrayOutput

func (o KeyRingArrayOutput) ToKeyRingArrayOutput() KeyRingArrayOutput

func (KeyRingArrayOutput) ToKeyRingArrayOutputWithContext

func (o KeyRingArrayOutput) ToKeyRingArrayOutputWithContext(ctx context.Context) KeyRingArrayOutput

type KeyRingIAMBinding

type KeyRingIAMBinding struct {
	pulumi.CustomResourceState

	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition KeyRingIAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the key ring's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringOutput      `pulumi:"keyRingId"`
	Members   pulumi.StringArrayOutput `pulumi:"members"`
	// The role that should be applied. Only one
	// `kms.KeyRingIAMBinding` 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 KMS key ring. Each of these resources serves a different use case:

* `kms.KeyRingIAMPolicy`: Authoritative. Sets the IAM policy for the key ring and replaces any existing policy already attached. * `kms.KeyRingIAMBinding`: 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 key ring are preserved. * `kms.KeyRingIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the key ring are preserved.

> **Note:** `kms.KeyRingIAMPolicy` **cannot** be used in conjunction with `kms.KeyRingIAMBinding` and `kms.KeyRingIAMMember` or they will fight over what your policy should be.

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

## google\_kms\_key\_ring\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewKeyRingIAMPolicy(ctx, "keyRing", &kms.KeyRingIAMPolicyArgs{
			KeyRingId:  keyring.ID(),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: organizations.GetIAMPolicyBindingCondition{
						Title:       "expires_after_2019_12_31",
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewKeyRingIAMPolicy(ctx, "keyRing", &kms.KeyRingIAMPolicyArgs{
			KeyRingId:  keyring.ID(),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_kms\_key\_ring\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMBinding(ctx, "keyRing", &kms.KeyRingIAMBindingArgs{
			KeyRingId: pulumi.String("your-key-ring-id"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMBinding(ctx, "keyRing", &kms.KeyRingIAMBindingArgs{
			Condition: &kms.KeyRingIAMBindingConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			KeyRingId: pulumi.String("your-key-ring-id"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_kms\_key\_ring\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMMember(ctx, "keyRing", &kms.KeyRingIAMMemberArgs{
			KeyRingId: pulumi.String("your-key-ring-id"),
			Member:    pulumi.String("user:jane@example.com"),
			Role:      pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMMember(ctx, "keyRing", &kms.KeyRingIAMMemberArgs{
			Condition: &kms.KeyRingIAMMemberConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			KeyRingId: pulumi.String("your-key-ring-id"),
			Member:    pulumi.String("user:jane@example.com"),
			Role:      pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `key_ring_id`, role, and account e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMBinding:KeyRingIAMBinding key_ring_iam "your-project-id/location-name/key-ring-name roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; the resource in question and the role.

This binding resource can be imported using the `key_ring_id` and role, e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMBinding:KeyRingIAMBinding key_ring_iam "your-project-id/location-name/key-ring-name roles/viewer"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `key_ring_id`, e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMBinding:KeyRingIAMBinding key_ring_iam your-project-id/location-name/key-ring-name

```

func GetKeyRingIAMBinding

func GetKeyRingIAMBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *KeyRingIAMBindingState, opts ...pulumi.ResourceOption) (*KeyRingIAMBinding, error)

GetKeyRingIAMBinding gets an existing KeyRingIAMBinding 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 NewKeyRingIAMBinding

func NewKeyRingIAMBinding(ctx *pulumi.Context,
	name string, args *KeyRingIAMBindingArgs, opts ...pulumi.ResourceOption) (*KeyRingIAMBinding, error)

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

func (*KeyRingIAMBinding) ElementType

func (*KeyRingIAMBinding) ElementType() reflect.Type

func (*KeyRingIAMBinding) ToKeyRingIAMBindingOutput

func (i *KeyRingIAMBinding) ToKeyRingIAMBindingOutput() KeyRingIAMBindingOutput

func (*KeyRingIAMBinding) ToKeyRingIAMBindingOutputWithContext

func (i *KeyRingIAMBinding) ToKeyRingIAMBindingOutputWithContext(ctx context.Context) KeyRingIAMBindingOutput

func (*KeyRingIAMBinding) ToKeyRingIAMBindingPtrOutput

func (i *KeyRingIAMBinding) ToKeyRingIAMBindingPtrOutput() KeyRingIAMBindingPtrOutput

func (*KeyRingIAMBinding) ToKeyRingIAMBindingPtrOutputWithContext

func (i *KeyRingIAMBinding) ToKeyRingIAMBindingPtrOutputWithContext(ctx context.Context) KeyRingIAMBindingPtrOutput

type KeyRingIAMBindingArgs

type KeyRingIAMBindingArgs struct {
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition KeyRingIAMBindingConditionPtrInput
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringInput
	Members   pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `kms.KeyRingIAMBinding` 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 KeyRingIAMBinding resource.

func (KeyRingIAMBindingArgs) ElementType

func (KeyRingIAMBindingArgs) ElementType() reflect.Type

type KeyRingIAMBindingArray

type KeyRingIAMBindingArray []KeyRingIAMBindingInput

func (KeyRingIAMBindingArray) ElementType

func (KeyRingIAMBindingArray) ElementType() reflect.Type

func (KeyRingIAMBindingArray) ToKeyRingIAMBindingArrayOutput

func (i KeyRingIAMBindingArray) ToKeyRingIAMBindingArrayOutput() KeyRingIAMBindingArrayOutput

func (KeyRingIAMBindingArray) ToKeyRingIAMBindingArrayOutputWithContext

func (i KeyRingIAMBindingArray) ToKeyRingIAMBindingArrayOutputWithContext(ctx context.Context) KeyRingIAMBindingArrayOutput

type KeyRingIAMBindingArrayInput

type KeyRingIAMBindingArrayInput interface {
	pulumi.Input

	ToKeyRingIAMBindingArrayOutput() KeyRingIAMBindingArrayOutput
	ToKeyRingIAMBindingArrayOutputWithContext(context.Context) KeyRingIAMBindingArrayOutput
}

KeyRingIAMBindingArrayInput is an input type that accepts KeyRingIAMBindingArray and KeyRingIAMBindingArrayOutput values. You can construct a concrete instance of `KeyRingIAMBindingArrayInput` via:

KeyRingIAMBindingArray{ KeyRingIAMBindingArgs{...} }

type KeyRingIAMBindingArrayOutput

type KeyRingIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (KeyRingIAMBindingArrayOutput) ElementType

func (KeyRingIAMBindingArrayOutput) Index

func (KeyRingIAMBindingArrayOutput) ToKeyRingIAMBindingArrayOutput

func (o KeyRingIAMBindingArrayOutput) ToKeyRingIAMBindingArrayOutput() KeyRingIAMBindingArrayOutput

func (KeyRingIAMBindingArrayOutput) ToKeyRingIAMBindingArrayOutputWithContext

func (o KeyRingIAMBindingArrayOutput) ToKeyRingIAMBindingArrayOutputWithContext(ctx context.Context) KeyRingIAMBindingArrayOutput

type KeyRingIAMBindingCondition

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

type KeyRingIAMBindingConditionArgs

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

func (KeyRingIAMBindingConditionArgs) ElementType

func (KeyRingIAMBindingConditionArgs) ToKeyRingIAMBindingConditionOutput

func (i KeyRingIAMBindingConditionArgs) ToKeyRingIAMBindingConditionOutput() KeyRingIAMBindingConditionOutput

func (KeyRingIAMBindingConditionArgs) ToKeyRingIAMBindingConditionOutputWithContext

func (i KeyRingIAMBindingConditionArgs) ToKeyRingIAMBindingConditionOutputWithContext(ctx context.Context) KeyRingIAMBindingConditionOutput

func (KeyRingIAMBindingConditionArgs) ToKeyRingIAMBindingConditionPtrOutput

func (i KeyRingIAMBindingConditionArgs) ToKeyRingIAMBindingConditionPtrOutput() KeyRingIAMBindingConditionPtrOutput

func (KeyRingIAMBindingConditionArgs) ToKeyRingIAMBindingConditionPtrOutputWithContext

func (i KeyRingIAMBindingConditionArgs) ToKeyRingIAMBindingConditionPtrOutputWithContext(ctx context.Context) KeyRingIAMBindingConditionPtrOutput

type KeyRingIAMBindingConditionInput

type KeyRingIAMBindingConditionInput interface {
	pulumi.Input

	ToKeyRingIAMBindingConditionOutput() KeyRingIAMBindingConditionOutput
	ToKeyRingIAMBindingConditionOutputWithContext(context.Context) KeyRingIAMBindingConditionOutput
}

KeyRingIAMBindingConditionInput is an input type that accepts KeyRingIAMBindingConditionArgs and KeyRingIAMBindingConditionOutput values. You can construct a concrete instance of `KeyRingIAMBindingConditionInput` via:

KeyRingIAMBindingConditionArgs{...}

type KeyRingIAMBindingConditionOutput

type KeyRingIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (KeyRingIAMBindingConditionOutput) Description

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

func (KeyRingIAMBindingConditionOutput) ElementType

func (KeyRingIAMBindingConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (KeyRingIAMBindingConditionOutput) Title

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

func (KeyRingIAMBindingConditionOutput) ToKeyRingIAMBindingConditionOutput

func (o KeyRingIAMBindingConditionOutput) ToKeyRingIAMBindingConditionOutput() KeyRingIAMBindingConditionOutput

func (KeyRingIAMBindingConditionOutput) ToKeyRingIAMBindingConditionOutputWithContext

func (o KeyRingIAMBindingConditionOutput) ToKeyRingIAMBindingConditionOutputWithContext(ctx context.Context) KeyRingIAMBindingConditionOutput

func (KeyRingIAMBindingConditionOutput) ToKeyRingIAMBindingConditionPtrOutput

func (o KeyRingIAMBindingConditionOutput) ToKeyRingIAMBindingConditionPtrOutput() KeyRingIAMBindingConditionPtrOutput

func (KeyRingIAMBindingConditionOutput) ToKeyRingIAMBindingConditionPtrOutputWithContext

func (o KeyRingIAMBindingConditionOutput) ToKeyRingIAMBindingConditionPtrOutputWithContext(ctx context.Context) KeyRingIAMBindingConditionPtrOutput

type KeyRingIAMBindingConditionPtrInput

type KeyRingIAMBindingConditionPtrInput interface {
	pulumi.Input

	ToKeyRingIAMBindingConditionPtrOutput() KeyRingIAMBindingConditionPtrOutput
	ToKeyRingIAMBindingConditionPtrOutputWithContext(context.Context) KeyRingIAMBindingConditionPtrOutput
}

KeyRingIAMBindingConditionPtrInput is an input type that accepts KeyRingIAMBindingConditionArgs, KeyRingIAMBindingConditionPtr and KeyRingIAMBindingConditionPtrOutput values. You can construct a concrete instance of `KeyRingIAMBindingConditionPtrInput` via:

        KeyRingIAMBindingConditionArgs{...}

or:

        nil

type KeyRingIAMBindingConditionPtrOutput

type KeyRingIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (KeyRingIAMBindingConditionPtrOutput) Description

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

func (KeyRingIAMBindingConditionPtrOutput) Elem

func (KeyRingIAMBindingConditionPtrOutput) ElementType

func (KeyRingIAMBindingConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (KeyRingIAMBindingConditionPtrOutput) Title

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

func (KeyRingIAMBindingConditionPtrOutput) ToKeyRingIAMBindingConditionPtrOutput

func (o KeyRingIAMBindingConditionPtrOutput) ToKeyRingIAMBindingConditionPtrOutput() KeyRingIAMBindingConditionPtrOutput

func (KeyRingIAMBindingConditionPtrOutput) ToKeyRingIAMBindingConditionPtrOutputWithContext

func (o KeyRingIAMBindingConditionPtrOutput) ToKeyRingIAMBindingConditionPtrOutputWithContext(ctx context.Context) KeyRingIAMBindingConditionPtrOutput

type KeyRingIAMBindingInput

type KeyRingIAMBindingInput interface {
	pulumi.Input

	ToKeyRingIAMBindingOutput() KeyRingIAMBindingOutput
	ToKeyRingIAMBindingOutputWithContext(ctx context.Context) KeyRingIAMBindingOutput
}

type KeyRingIAMBindingMap

type KeyRingIAMBindingMap map[string]KeyRingIAMBindingInput

func (KeyRingIAMBindingMap) ElementType

func (KeyRingIAMBindingMap) ElementType() reflect.Type

func (KeyRingIAMBindingMap) ToKeyRingIAMBindingMapOutput

func (i KeyRingIAMBindingMap) ToKeyRingIAMBindingMapOutput() KeyRingIAMBindingMapOutput

func (KeyRingIAMBindingMap) ToKeyRingIAMBindingMapOutputWithContext

func (i KeyRingIAMBindingMap) ToKeyRingIAMBindingMapOutputWithContext(ctx context.Context) KeyRingIAMBindingMapOutput

type KeyRingIAMBindingMapInput

type KeyRingIAMBindingMapInput interface {
	pulumi.Input

	ToKeyRingIAMBindingMapOutput() KeyRingIAMBindingMapOutput
	ToKeyRingIAMBindingMapOutputWithContext(context.Context) KeyRingIAMBindingMapOutput
}

KeyRingIAMBindingMapInput is an input type that accepts KeyRingIAMBindingMap and KeyRingIAMBindingMapOutput values. You can construct a concrete instance of `KeyRingIAMBindingMapInput` via:

KeyRingIAMBindingMap{ "key": KeyRingIAMBindingArgs{...} }

type KeyRingIAMBindingMapOutput

type KeyRingIAMBindingMapOutput struct{ *pulumi.OutputState }

func (KeyRingIAMBindingMapOutput) ElementType

func (KeyRingIAMBindingMapOutput) ElementType() reflect.Type

func (KeyRingIAMBindingMapOutput) MapIndex

func (KeyRingIAMBindingMapOutput) ToKeyRingIAMBindingMapOutput

func (o KeyRingIAMBindingMapOutput) ToKeyRingIAMBindingMapOutput() KeyRingIAMBindingMapOutput

func (KeyRingIAMBindingMapOutput) ToKeyRingIAMBindingMapOutputWithContext

func (o KeyRingIAMBindingMapOutput) ToKeyRingIAMBindingMapOutputWithContext(ctx context.Context) KeyRingIAMBindingMapOutput

type KeyRingIAMBindingOutput

type KeyRingIAMBindingOutput struct{ *pulumi.OutputState }

func (KeyRingIAMBindingOutput) ElementType

func (KeyRingIAMBindingOutput) ElementType() reflect.Type

func (KeyRingIAMBindingOutput) ToKeyRingIAMBindingOutput

func (o KeyRingIAMBindingOutput) ToKeyRingIAMBindingOutput() KeyRingIAMBindingOutput

func (KeyRingIAMBindingOutput) ToKeyRingIAMBindingOutputWithContext

func (o KeyRingIAMBindingOutput) ToKeyRingIAMBindingOutputWithContext(ctx context.Context) KeyRingIAMBindingOutput

func (KeyRingIAMBindingOutput) ToKeyRingIAMBindingPtrOutput

func (o KeyRingIAMBindingOutput) ToKeyRingIAMBindingPtrOutput() KeyRingIAMBindingPtrOutput

func (KeyRingIAMBindingOutput) ToKeyRingIAMBindingPtrOutputWithContext

func (o KeyRingIAMBindingOutput) ToKeyRingIAMBindingPtrOutputWithContext(ctx context.Context) KeyRingIAMBindingPtrOutput

type KeyRingIAMBindingPtrInput

type KeyRingIAMBindingPtrInput interface {
	pulumi.Input

	ToKeyRingIAMBindingPtrOutput() KeyRingIAMBindingPtrOutput
	ToKeyRingIAMBindingPtrOutputWithContext(ctx context.Context) KeyRingIAMBindingPtrOutput
}

type KeyRingIAMBindingPtrOutput

type KeyRingIAMBindingPtrOutput struct{ *pulumi.OutputState }

func (KeyRingIAMBindingPtrOutput) Elem added in v5.21.0

func (KeyRingIAMBindingPtrOutput) ElementType

func (KeyRingIAMBindingPtrOutput) ElementType() reflect.Type

func (KeyRingIAMBindingPtrOutput) ToKeyRingIAMBindingPtrOutput

func (o KeyRingIAMBindingPtrOutput) ToKeyRingIAMBindingPtrOutput() KeyRingIAMBindingPtrOutput

func (KeyRingIAMBindingPtrOutput) ToKeyRingIAMBindingPtrOutputWithContext

func (o KeyRingIAMBindingPtrOutput) ToKeyRingIAMBindingPtrOutputWithContext(ctx context.Context) KeyRingIAMBindingPtrOutput

type KeyRingIAMBindingState

type KeyRingIAMBindingState struct {
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition KeyRingIAMBindingConditionPtrInput
	// (Computed) The etag of the key ring's IAM policy.
	Etag pulumi.StringPtrInput
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringPtrInput
	Members   pulumi.StringArrayInput
	// The role that should be applied. Only one
	// `kms.KeyRingIAMBinding` 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 (KeyRingIAMBindingState) ElementType

func (KeyRingIAMBindingState) ElementType() reflect.Type

type KeyRingIAMMember

type KeyRingIAMMember struct {
	pulumi.CustomResourceState

	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition KeyRingIAMMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the key ring's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringOutput `pulumi:"keyRingId"`
	Member    pulumi.StringOutput `pulumi:"member"`
	// The role that should be applied. Only one
	// `kms.KeyRingIAMBinding` 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 KMS key ring. Each of these resources serves a different use case:

* `kms.KeyRingIAMPolicy`: Authoritative. Sets the IAM policy for the key ring and replaces any existing policy already attached. * `kms.KeyRingIAMBinding`: 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 key ring are preserved. * `kms.KeyRingIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the key ring are preserved.

> **Note:** `kms.KeyRingIAMPolicy` **cannot** be used in conjunction with `kms.KeyRingIAMBinding` and `kms.KeyRingIAMMember` or they will fight over what your policy should be.

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

## google\_kms\_key\_ring\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewKeyRingIAMPolicy(ctx, "keyRing", &kms.KeyRingIAMPolicyArgs{
			KeyRingId:  keyring.ID(),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: organizations.GetIAMPolicyBindingCondition{
						Title:       "expires_after_2019_12_31",
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewKeyRingIAMPolicy(ctx, "keyRing", &kms.KeyRingIAMPolicyArgs{
			KeyRingId:  keyring.ID(),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_kms\_key\_ring\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMBinding(ctx, "keyRing", &kms.KeyRingIAMBindingArgs{
			KeyRingId: pulumi.String("your-key-ring-id"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMBinding(ctx, "keyRing", &kms.KeyRingIAMBindingArgs{
			Condition: &kms.KeyRingIAMBindingConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			KeyRingId: pulumi.String("your-key-ring-id"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_kms\_key\_ring\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMMember(ctx, "keyRing", &kms.KeyRingIAMMemberArgs{
			KeyRingId: pulumi.String("your-key-ring-id"),
			Member:    pulumi.String("user:jane@example.com"),
			Role:      pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMMember(ctx, "keyRing", &kms.KeyRingIAMMemberArgs{
			Condition: &kms.KeyRingIAMMemberConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			KeyRingId: pulumi.String("your-key-ring-id"),
			Member:    pulumi.String("user:jane@example.com"),
			Role:      pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `key_ring_id`, role, and account e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMMember:KeyRingIAMMember key_ring_iam "your-project-id/location-name/key-ring-name roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; the resource in question and the role.

This binding resource can be imported using the `key_ring_id` and role, e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMMember:KeyRingIAMMember key_ring_iam "your-project-id/location-name/key-ring-name roles/viewer"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `key_ring_id`, e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMMember:KeyRingIAMMember key_ring_iam your-project-id/location-name/key-ring-name

```

func GetKeyRingIAMMember

func GetKeyRingIAMMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *KeyRingIAMMemberState, opts ...pulumi.ResourceOption) (*KeyRingIAMMember, error)

GetKeyRingIAMMember gets an existing KeyRingIAMMember 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 NewKeyRingIAMMember

func NewKeyRingIAMMember(ctx *pulumi.Context,
	name string, args *KeyRingIAMMemberArgs, opts ...pulumi.ResourceOption) (*KeyRingIAMMember, error)

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

func (*KeyRingIAMMember) ElementType

func (*KeyRingIAMMember) ElementType() reflect.Type

func (*KeyRingIAMMember) ToKeyRingIAMMemberOutput

func (i *KeyRingIAMMember) ToKeyRingIAMMemberOutput() KeyRingIAMMemberOutput

func (*KeyRingIAMMember) ToKeyRingIAMMemberOutputWithContext

func (i *KeyRingIAMMember) ToKeyRingIAMMemberOutputWithContext(ctx context.Context) KeyRingIAMMemberOutput

func (*KeyRingIAMMember) ToKeyRingIAMMemberPtrOutput

func (i *KeyRingIAMMember) ToKeyRingIAMMemberPtrOutput() KeyRingIAMMemberPtrOutput

func (*KeyRingIAMMember) ToKeyRingIAMMemberPtrOutputWithContext

func (i *KeyRingIAMMember) ToKeyRingIAMMemberPtrOutputWithContext(ctx context.Context) KeyRingIAMMemberPtrOutput

type KeyRingIAMMemberArgs

type KeyRingIAMMemberArgs struct {
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition KeyRingIAMMemberConditionPtrInput
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringInput
	Member    pulumi.StringInput
	// The role that should be applied. Only one
	// `kms.KeyRingIAMBinding` 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 KeyRingIAMMember resource.

func (KeyRingIAMMemberArgs) ElementType

func (KeyRingIAMMemberArgs) ElementType() reflect.Type

type KeyRingIAMMemberArray

type KeyRingIAMMemberArray []KeyRingIAMMemberInput

func (KeyRingIAMMemberArray) ElementType

func (KeyRingIAMMemberArray) ElementType() reflect.Type

func (KeyRingIAMMemberArray) ToKeyRingIAMMemberArrayOutput

func (i KeyRingIAMMemberArray) ToKeyRingIAMMemberArrayOutput() KeyRingIAMMemberArrayOutput

func (KeyRingIAMMemberArray) ToKeyRingIAMMemberArrayOutputWithContext

func (i KeyRingIAMMemberArray) ToKeyRingIAMMemberArrayOutputWithContext(ctx context.Context) KeyRingIAMMemberArrayOutput

type KeyRingIAMMemberArrayInput

type KeyRingIAMMemberArrayInput interface {
	pulumi.Input

	ToKeyRingIAMMemberArrayOutput() KeyRingIAMMemberArrayOutput
	ToKeyRingIAMMemberArrayOutputWithContext(context.Context) KeyRingIAMMemberArrayOutput
}

KeyRingIAMMemberArrayInput is an input type that accepts KeyRingIAMMemberArray and KeyRingIAMMemberArrayOutput values. You can construct a concrete instance of `KeyRingIAMMemberArrayInput` via:

KeyRingIAMMemberArray{ KeyRingIAMMemberArgs{...} }

type KeyRingIAMMemberArrayOutput

type KeyRingIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (KeyRingIAMMemberArrayOutput) ElementType

func (KeyRingIAMMemberArrayOutput) Index

func (KeyRingIAMMemberArrayOutput) ToKeyRingIAMMemberArrayOutput

func (o KeyRingIAMMemberArrayOutput) ToKeyRingIAMMemberArrayOutput() KeyRingIAMMemberArrayOutput

func (KeyRingIAMMemberArrayOutput) ToKeyRingIAMMemberArrayOutputWithContext

func (o KeyRingIAMMemberArrayOutput) ToKeyRingIAMMemberArrayOutputWithContext(ctx context.Context) KeyRingIAMMemberArrayOutput

type KeyRingIAMMemberCondition

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

type KeyRingIAMMemberConditionArgs

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

func (KeyRingIAMMemberConditionArgs) ElementType

func (KeyRingIAMMemberConditionArgs) ToKeyRingIAMMemberConditionOutput

func (i KeyRingIAMMemberConditionArgs) ToKeyRingIAMMemberConditionOutput() KeyRingIAMMemberConditionOutput

func (KeyRingIAMMemberConditionArgs) ToKeyRingIAMMemberConditionOutputWithContext

func (i KeyRingIAMMemberConditionArgs) ToKeyRingIAMMemberConditionOutputWithContext(ctx context.Context) KeyRingIAMMemberConditionOutput

func (KeyRingIAMMemberConditionArgs) ToKeyRingIAMMemberConditionPtrOutput

func (i KeyRingIAMMemberConditionArgs) ToKeyRingIAMMemberConditionPtrOutput() KeyRingIAMMemberConditionPtrOutput

func (KeyRingIAMMemberConditionArgs) ToKeyRingIAMMemberConditionPtrOutputWithContext

func (i KeyRingIAMMemberConditionArgs) ToKeyRingIAMMemberConditionPtrOutputWithContext(ctx context.Context) KeyRingIAMMemberConditionPtrOutput

type KeyRingIAMMemberConditionInput

type KeyRingIAMMemberConditionInput interface {
	pulumi.Input

	ToKeyRingIAMMemberConditionOutput() KeyRingIAMMemberConditionOutput
	ToKeyRingIAMMemberConditionOutputWithContext(context.Context) KeyRingIAMMemberConditionOutput
}

KeyRingIAMMemberConditionInput is an input type that accepts KeyRingIAMMemberConditionArgs and KeyRingIAMMemberConditionOutput values. You can construct a concrete instance of `KeyRingIAMMemberConditionInput` via:

KeyRingIAMMemberConditionArgs{...}

type KeyRingIAMMemberConditionOutput

type KeyRingIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (KeyRingIAMMemberConditionOutput) Description

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

func (KeyRingIAMMemberConditionOutput) ElementType

func (KeyRingIAMMemberConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (KeyRingIAMMemberConditionOutput) Title

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

func (KeyRingIAMMemberConditionOutput) ToKeyRingIAMMemberConditionOutput

func (o KeyRingIAMMemberConditionOutput) ToKeyRingIAMMemberConditionOutput() KeyRingIAMMemberConditionOutput

func (KeyRingIAMMemberConditionOutput) ToKeyRingIAMMemberConditionOutputWithContext

func (o KeyRingIAMMemberConditionOutput) ToKeyRingIAMMemberConditionOutputWithContext(ctx context.Context) KeyRingIAMMemberConditionOutput

func (KeyRingIAMMemberConditionOutput) ToKeyRingIAMMemberConditionPtrOutput

func (o KeyRingIAMMemberConditionOutput) ToKeyRingIAMMemberConditionPtrOutput() KeyRingIAMMemberConditionPtrOutput

func (KeyRingIAMMemberConditionOutput) ToKeyRingIAMMemberConditionPtrOutputWithContext

func (o KeyRingIAMMemberConditionOutput) ToKeyRingIAMMemberConditionPtrOutputWithContext(ctx context.Context) KeyRingIAMMemberConditionPtrOutput

type KeyRingIAMMemberConditionPtrInput

type KeyRingIAMMemberConditionPtrInput interface {
	pulumi.Input

	ToKeyRingIAMMemberConditionPtrOutput() KeyRingIAMMemberConditionPtrOutput
	ToKeyRingIAMMemberConditionPtrOutputWithContext(context.Context) KeyRingIAMMemberConditionPtrOutput
}

KeyRingIAMMemberConditionPtrInput is an input type that accepts KeyRingIAMMemberConditionArgs, KeyRingIAMMemberConditionPtr and KeyRingIAMMemberConditionPtrOutput values. You can construct a concrete instance of `KeyRingIAMMemberConditionPtrInput` via:

        KeyRingIAMMemberConditionArgs{...}

or:

        nil

type KeyRingIAMMemberConditionPtrOutput

type KeyRingIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (KeyRingIAMMemberConditionPtrOutput) Description

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

func (KeyRingIAMMemberConditionPtrOutput) Elem

func (KeyRingIAMMemberConditionPtrOutput) ElementType

func (KeyRingIAMMemberConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (KeyRingIAMMemberConditionPtrOutput) Title

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

func (KeyRingIAMMemberConditionPtrOutput) ToKeyRingIAMMemberConditionPtrOutput

func (o KeyRingIAMMemberConditionPtrOutput) ToKeyRingIAMMemberConditionPtrOutput() KeyRingIAMMemberConditionPtrOutput

func (KeyRingIAMMemberConditionPtrOutput) ToKeyRingIAMMemberConditionPtrOutputWithContext

func (o KeyRingIAMMemberConditionPtrOutput) ToKeyRingIAMMemberConditionPtrOutputWithContext(ctx context.Context) KeyRingIAMMemberConditionPtrOutput

type KeyRingIAMMemberInput

type KeyRingIAMMemberInput interface {
	pulumi.Input

	ToKeyRingIAMMemberOutput() KeyRingIAMMemberOutput
	ToKeyRingIAMMemberOutputWithContext(ctx context.Context) KeyRingIAMMemberOutput
}

type KeyRingIAMMemberMap

type KeyRingIAMMemberMap map[string]KeyRingIAMMemberInput

func (KeyRingIAMMemberMap) ElementType

func (KeyRingIAMMemberMap) ElementType() reflect.Type

func (KeyRingIAMMemberMap) ToKeyRingIAMMemberMapOutput

func (i KeyRingIAMMemberMap) ToKeyRingIAMMemberMapOutput() KeyRingIAMMemberMapOutput

func (KeyRingIAMMemberMap) ToKeyRingIAMMemberMapOutputWithContext

func (i KeyRingIAMMemberMap) ToKeyRingIAMMemberMapOutputWithContext(ctx context.Context) KeyRingIAMMemberMapOutput

type KeyRingIAMMemberMapInput

type KeyRingIAMMemberMapInput interface {
	pulumi.Input

	ToKeyRingIAMMemberMapOutput() KeyRingIAMMemberMapOutput
	ToKeyRingIAMMemberMapOutputWithContext(context.Context) KeyRingIAMMemberMapOutput
}

KeyRingIAMMemberMapInput is an input type that accepts KeyRingIAMMemberMap and KeyRingIAMMemberMapOutput values. You can construct a concrete instance of `KeyRingIAMMemberMapInput` via:

KeyRingIAMMemberMap{ "key": KeyRingIAMMemberArgs{...} }

type KeyRingIAMMemberMapOutput

type KeyRingIAMMemberMapOutput struct{ *pulumi.OutputState }

func (KeyRingIAMMemberMapOutput) ElementType

func (KeyRingIAMMemberMapOutput) ElementType() reflect.Type

func (KeyRingIAMMemberMapOutput) MapIndex

func (KeyRingIAMMemberMapOutput) ToKeyRingIAMMemberMapOutput

func (o KeyRingIAMMemberMapOutput) ToKeyRingIAMMemberMapOutput() KeyRingIAMMemberMapOutput

func (KeyRingIAMMemberMapOutput) ToKeyRingIAMMemberMapOutputWithContext

func (o KeyRingIAMMemberMapOutput) ToKeyRingIAMMemberMapOutputWithContext(ctx context.Context) KeyRingIAMMemberMapOutput

type KeyRingIAMMemberOutput

type KeyRingIAMMemberOutput struct{ *pulumi.OutputState }

func (KeyRingIAMMemberOutput) ElementType

func (KeyRingIAMMemberOutput) ElementType() reflect.Type

func (KeyRingIAMMemberOutput) ToKeyRingIAMMemberOutput

func (o KeyRingIAMMemberOutput) ToKeyRingIAMMemberOutput() KeyRingIAMMemberOutput

func (KeyRingIAMMemberOutput) ToKeyRingIAMMemberOutputWithContext

func (o KeyRingIAMMemberOutput) ToKeyRingIAMMemberOutputWithContext(ctx context.Context) KeyRingIAMMemberOutput

func (KeyRingIAMMemberOutput) ToKeyRingIAMMemberPtrOutput

func (o KeyRingIAMMemberOutput) ToKeyRingIAMMemberPtrOutput() KeyRingIAMMemberPtrOutput

func (KeyRingIAMMemberOutput) ToKeyRingIAMMemberPtrOutputWithContext

func (o KeyRingIAMMemberOutput) ToKeyRingIAMMemberPtrOutputWithContext(ctx context.Context) KeyRingIAMMemberPtrOutput

type KeyRingIAMMemberPtrInput

type KeyRingIAMMemberPtrInput interface {
	pulumi.Input

	ToKeyRingIAMMemberPtrOutput() KeyRingIAMMemberPtrOutput
	ToKeyRingIAMMemberPtrOutputWithContext(ctx context.Context) KeyRingIAMMemberPtrOutput
}

type KeyRingIAMMemberPtrOutput

type KeyRingIAMMemberPtrOutput struct{ *pulumi.OutputState }

func (KeyRingIAMMemberPtrOutput) Elem added in v5.21.0

func (KeyRingIAMMemberPtrOutput) ElementType

func (KeyRingIAMMemberPtrOutput) ElementType() reflect.Type

func (KeyRingIAMMemberPtrOutput) ToKeyRingIAMMemberPtrOutput

func (o KeyRingIAMMemberPtrOutput) ToKeyRingIAMMemberPtrOutput() KeyRingIAMMemberPtrOutput

func (KeyRingIAMMemberPtrOutput) ToKeyRingIAMMemberPtrOutputWithContext

func (o KeyRingIAMMemberPtrOutput) ToKeyRingIAMMemberPtrOutputWithContext(ctx context.Context) KeyRingIAMMemberPtrOutput

type KeyRingIAMMemberState

type KeyRingIAMMemberState struct {
	// ) An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition KeyRingIAMMemberConditionPtrInput
	// (Computed) The etag of the key ring's IAM policy.
	Etag pulumi.StringPtrInput
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringPtrInput
	Member    pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `kms.KeyRingIAMBinding` 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 (KeyRingIAMMemberState) ElementType

func (KeyRingIAMMemberState) ElementType() reflect.Type

type KeyRingIAMPolicy

type KeyRingIAMPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the key ring's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringOutput `pulumi:"keyRingId"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
}

Three different resources help you manage your IAM policy for KMS key ring. Each of these resources serves a different use case:

* `kms.KeyRingIAMPolicy`: Authoritative. Sets the IAM policy for the key ring and replaces any existing policy already attached. * `kms.KeyRingIAMBinding`: 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 key ring are preserved. * `kms.KeyRingIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the key ring are preserved.

> **Note:** `kms.KeyRingIAMPolicy` **cannot** be used in conjunction with `kms.KeyRingIAMBinding` and `kms.KeyRingIAMMember` or they will fight over what your policy should be.

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

## google\_kms\_key\_ring\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewKeyRingIAMPolicy(ctx, "keyRing", &kms.KeyRingIAMPolicyArgs{
			KeyRingId:  keyring.ID(),
			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/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: organizations.GetIAMPolicyBindingCondition{
						Title:       "expires_after_2019_12_31",
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = kms.NewKeyRingIAMPolicy(ctx, "keyRing", &kms.KeyRingIAMPolicyArgs{
			KeyRingId:  keyring.ID(),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_kms\_key\_ring\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMBinding(ctx, "keyRing", &kms.KeyRingIAMBindingArgs{
			KeyRingId: pulumi.String("your-key-ring-id"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMBinding(ctx, "keyRing", &kms.KeyRingIAMBindingArgs{
			Condition: &kms.KeyRingIAMBindingConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			KeyRingId: pulumi.String("your-key-ring-id"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role: pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_kms\_key\_ring\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMMember(ctx, "keyRing", &kms.KeyRingIAMMemberArgs{
			KeyRingId: pulumi.String("your-key-ring-id"),
			Member:    pulumi.String("user:jane@example.com"),
			Role:      pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := kms.NewKeyRingIAMMember(ctx, "keyRing", &kms.KeyRingIAMMemberArgs{
			Condition: &kms.KeyRingIAMMemberConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			KeyRingId: pulumi.String("your-key-ring-id"),
			Member:    pulumi.String("user:jane@example.com"),
			Role:      pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `key_ring_id`, role, and account e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMPolicy:KeyRingIAMPolicy key_ring_iam "your-project-id/location-name/key-ring-name roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; the resource in question and the role.

This binding resource can be imported using the `key_ring_id` and role, e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMPolicy:KeyRingIAMPolicy key_ring_iam "your-project-id/location-name/key-ring-name roles/viewer"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `key_ring_id`, e.g.

```sh

$ pulumi import gcp:kms/keyRingIAMPolicy:KeyRingIAMPolicy key_ring_iam your-project-id/location-name/key-ring-name

```

func GetKeyRingIAMPolicy

func GetKeyRingIAMPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *KeyRingIAMPolicyState, opts ...pulumi.ResourceOption) (*KeyRingIAMPolicy, error)

GetKeyRingIAMPolicy gets an existing KeyRingIAMPolicy 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 NewKeyRingIAMPolicy

func NewKeyRingIAMPolicy(ctx *pulumi.Context,
	name string, args *KeyRingIAMPolicyArgs, opts ...pulumi.ResourceOption) (*KeyRingIAMPolicy, error)

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

func (*KeyRingIAMPolicy) ElementType

func (*KeyRingIAMPolicy) ElementType() reflect.Type

func (*KeyRingIAMPolicy) ToKeyRingIAMPolicyOutput

func (i *KeyRingIAMPolicy) ToKeyRingIAMPolicyOutput() KeyRingIAMPolicyOutput

func (*KeyRingIAMPolicy) ToKeyRingIAMPolicyOutputWithContext

func (i *KeyRingIAMPolicy) ToKeyRingIAMPolicyOutputWithContext(ctx context.Context) KeyRingIAMPolicyOutput

func (*KeyRingIAMPolicy) ToKeyRingIAMPolicyPtrOutput

func (i *KeyRingIAMPolicy) ToKeyRingIAMPolicyPtrOutput() KeyRingIAMPolicyPtrOutput

func (*KeyRingIAMPolicy) ToKeyRingIAMPolicyPtrOutputWithContext

func (i *KeyRingIAMPolicy) ToKeyRingIAMPolicyPtrOutputWithContext(ctx context.Context) KeyRingIAMPolicyPtrOutput

type KeyRingIAMPolicyArgs

type KeyRingIAMPolicyArgs struct {
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
}

The set of arguments for constructing a KeyRingIAMPolicy resource.

func (KeyRingIAMPolicyArgs) ElementType

func (KeyRingIAMPolicyArgs) ElementType() reflect.Type

type KeyRingIAMPolicyArray

type KeyRingIAMPolicyArray []KeyRingIAMPolicyInput

func (KeyRingIAMPolicyArray) ElementType

func (KeyRingIAMPolicyArray) ElementType() reflect.Type

func (KeyRingIAMPolicyArray) ToKeyRingIAMPolicyArrayOutput

func (i KeyRingIAMPolicyArray) ToKeyRingIAMPolicyArrayOutput() KeyRingIAMPolicyArrayOutput

func (KeyRingIAMPolicyArray) ToKeyRingIAMPolicyArrayOutputWithContext

func (i KeyRingIAMPolicyArray) ToKeyRingIAMPolicyArrayOutputWithContext(ctx context.Context) KeyRingIAMPolicyArrayOutput

type KeyRingIAMPolicyArrayInput

type KeyRingIAMPolicyArrayInput interface {
	pulumi.Input

	ToKeyRingIAMPolicyArrayOutput() KeyRingIAMPolicyArrayOutput
	ToKeyRingIAMPolicyArrayOutputWithContext(context.Context) KeyRingIAMPolicyArrayOutput
}

KeyRingIAMPolicyArrayInput is an input type that accepts KeyRingIAMPolicyArray and KeyRingIAMPolicyArrayOutput values. You can construct a concrete instance of `KeyRingIAMPolicyArrayInput` via:

KeyRingIAMPolicyArray{ KeyRingIAMPolicyArgs{...} }

type KeyRingIAMPolicyArrayOutput

type KeyRingIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (KeyRingIAMPolicyArrayOutput) ElementType

func (KeyRingIAMPolicyArrayOutput) Index

func (KeyRingIAMPolicyArrayOutput) ToKeyRingIAMPolicyArrayOutput

func (o KeyRingIAMPolicyArrayOutput) ToKeyRingIAMPolicyArrayOutput() KeyRingIAMPolicyArrayOutput

func (KeyRingIAMPolicyArrayOutput) ToKeyRingIAMPolicyArrayOutputWithContext

func (o KeyRingIAMPolicyArrayOutput) ToKeyRingIAMPolicyArrayOutputWithContext(ctx context.Context) KeyRingIAMPolicyArrayOutput

type KeyRingIAMPolicyInput

type KeyRingIAMPolicyInput interface {
	pulumi.Input

	ToKeyRingIAMPolicyOutput() KeyRingIAMPolicyOutput
	ToKeyRingIAMPolicyOutputWithContext(ctx context.Context) KeyRingIAMPolicyOutput
}

type KeyRingIAMPolicyMap

type KeyRingIAMPolicyMap map[string]KeyRingIAMPolicyInput

func (KeyRingIAMPolicyMap) ElementType

func (KeyRingIAMPolicyMap) ElementType() reflect.Type

func (KeyRingIAMPolicyMap) ToKeyRingIAMPolicyMapOutput

func (i KeyRingIAMPolicyMap) ToKeyRingIAMPolicyMapOutput() KeyRingIAMPolicyMapOutput

func (KeyRingIAMPolicyMap) ToKeyRingIAMPolicyMapOutputWithContext

func (i KeyRingIAMPolicyMap) ToKeyRingIAMPolicyMapOutputWithContext(ctx context.Context) KeyRingIAMPolicyMapOutput

type KeyRingIAMPolicyMapInput

type KeyRingIAMPolicyMapInput interface {
	pulumi.Input

	ToKeyRingIAMPolicyMapOutput() KeyRingIAMPolicyMapOutput
	ToKeyRingIAMPolicyMapOutputWithContext(context.Context) KeyRingIAMPolicyMapOutput
}

KeyRingIAMPolicyMapInput is an input type that accepts KeyRingIAMPolicyMap and KeyRingIAMPolicyMapOutput values. You can construct a concrete instance of `KeyRingIAMPolicyMapInput` via:

KeyRingIAMPolicyMap{ "key": KeyRingIAMPolicyArgs{...} }

type KeyRingIAMPolicyMapOutput

type KeyRingIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (KeyRingIAMPolicyMapOutput) ElementType

func (KeyRingIAMPolicyMapOutput) ElementType() reflect.Type

func (KeyRingIAMPolicyMapOutput) MapIndex

func (KeyRingIAMPolicyMapOutput) ToKeyRingIAMPolicyMapOutput

func (o KeyRingIAMPolicyMapOutput) ToKeyRingIAMPolicyMapOutput() KeyRingIAMPolicyMapOutput

func (KeyRingIAMPolicyMapOutput) ToKeyRingIAMPolicyMapOutputWithContext

func (o KeyRingIAMPolicyMapOutput) ToKeyRingIAMPolicyMapOutputWithContext(ctx context.Context) KeyRingIAMPolicyMapOutput

type KeyRingIAMPolicyOutput

type KeyRingIAMPolicyOutput struct{ *pulumi.OutputState }

func (KeyRingIAMPolicyOutput) ElementType

func (KeyRingIAMPolicyOutput) ElementType() reflect.Type

func (KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyOutput

func (o KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyOutput() KeyRingIAMPolicyOutput

func (KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyOutputWithContext

func (o KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyOutputWithContext(ctx context.Context) KeyRingIAMPolicyOutput

func (KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyPtrOutput

func (o KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyPtrOutput() KeyRingIAMPolicyPtrOutput

func (KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyPtrOutputWithContext

func (o KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyPtrOutputWithContext(ctx context.Context) KeyRingIAMPolicyPtrOutput

type KeyRingIAMPolicyPtrInput

type KeyRingIAMPolicyPtrInput interface {
	pulumi.Input

	ToKeyRingIAMPolicyPtrOutput() KeyRingIAMPolicyPtrOutput
	ToKeyRingIAMPolicyPtrOutputWithContext(ctx context.Context) KeyRingIAMPolicyPtrOutput
}

type KeyRingIAMPolicyPtrOutput

type KeyRingIAMPolicyPtrOutput struct{ *pulumi.OutputState }

func (KeyRingIAMPolicyPtrOutput) Elem added in v5.21.0

func (KeyRingIAMPolicyPtrOutput) ElementType

func (KeyRingIAMPolicyPtrOutput) ElementType() reflect.Type

func (KeyRingIAMPolicyPtrOutput) ToKeyRingIAMPolicyPtrOutput

func (o KeyRingIAMPolicyPtrOutput) ToKeyRingIAMPolicyPtrOutput() KeyRingIAMPolicyPtrOutput

func (KeyRingIAMPolicyPtrOutput) ToKeyRingIAMPolicyPtrOutputWithContext

func (o KeyRingIAMPolicyPtrOutput) ToKeyRingIAMPolicyPtrOutputWithContext(ctx context.Context) KeyRingIAMPolicyPtrOutput

type KeyRingIAMPolicyState

type KeyRingIAMPolicyState struct {
	// (Computed) The etag of the key ring's IAM policy.
	Etag pulumi.StringPtrInput
	// The key ring ID, in the form
	// `{project_id}/{location_name}/{key_ring_name}` or
	// `{location_name}/{key_ring_name}`. In the second form, the provider's
	// project setting will be used as a fallback.
	KeyRingId pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
}

func (KeyRingIAMPolicyState) ElementType

func (KeyRingIAMPolicyState) ElementType() reflect.Type

type KeyRingImportJob

type KeyRingImportJob struct {
	pulumi.CustomResourceState

	// Statement that was generated and signed by the key creator (for example, an HSM) at key creation time. Use this
	// statement to verify attributes of the key as stored on the HSM, independently of Google. Only present if the chosen
	// ImportMethod is one with a protection level of HSM.
	Attestations KeyRingImportJobAttestationArrayOutput `pulumi:"attestations"`
	// The time at which this resource is scheduled for expiration and can no longer be used. This is in RFC3339 text format.
	ExpireTime pulumi.StringOutput `pulumi:"expireTime"`
	// It must be unique within a KeyRing and match the regular expression [a-zA-Z0-9_-]{1,63}
	ImportJobId pulumi.StringOutput `pulumi:"importJobId"`
	// The wrapping method to be used for incoming key material.
	// Possible values are `RSA_OAEP_3072_SHA1_AES_256` and `RSA_OAEP_4096_SHA1_AES_256`.
	ImportMethod pulumi.StringOutput `pulumi:"importMethod"`
	// The KeyRing that this import job belongs to.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
	KeyRing pulumi.StringOutput `pulumi:"keyRing"`
	// The resource name for this ImportJob in the format projects/*/locations/*/keyRings/*/importJobs/*.
	Name pulumi.StringOutput `pulumi:"name"`
	// The protection level of the ImportJob. This must match the protectionLevel of the
	// versionTemplate on the CryptoKey you attempt to import into.
	// Possible values are `SOFTWARE`, `HSM`, and `EXTERNAL`.
	ProtectionLevel pulumi.StringOutput `pulumi:"protectionLevel"`
	// The public key with which to wrap key material prior to import. Only returned if state is 'ACTIVE'.
	PublicKeys KeyRingImportJobPublicKeyArrayOutput `pulumi:"publicKeys"`
	// The current state of the ImportJob, indicating if it can be used.
	State pulumi.StringOutput `pulumi:"state"`
}

A `KeyRingImportJob` can be used to create `CryptoKeys` and `CryptoKeyVersions` using pre-existing key material, generated outside of Cloud KMS. A `KeyRingImportJob` expires 3 days after it is created. Once expired, Cloud KMS will no longer be able to import or unwrap any key material that was wrapped with the `KeyRingImportJob`'s public key.

> **Note:** KeyRingImportJobs cannot be deleted from Google Cloud Platform. Destroying a provider-managed KeyRingImportJob will remove it from state but *will not delete the resource from the project.*

To get more information about KeyRingImportJob, see:

* [API documentation](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.importJobs) * How-to Guides

## Example Usage

## Import

KeyRingImportJob can be imported using any of these accepted formats

```sh

$ pulumi import gcp:kms/keyRingImportJob:KeyRingImportJob default {{name}}

```

func GetKeyRingImportJob

func GetKeyRingImportJob(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *KeyRingImportJobState, opts ...pulumi.ResourceOption) (*KeyRingImportJob, error)

GetKeyRingImportJob gets an existing KeyRingImportJob 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 NewKeyRingImportJob

func NewKeyRingImportJob(ctx *pulumi.Context,
	name string, args *KeyRingImportJobArgs, opts ...pulumi.ResourceOption) (*KeyRingImportJob, error)

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

func (*KeyRingImportJob) ElementType

func (*KeyRingImportJob) ElementType() reflect.Type

func (*KeyRingImportJob) ToKeyRingImportJobOutput

func (i *KeyRingImportJob) ToKeyRingImportJobOutput() KeyRingImportJobOutput

func (*KeyRingImportJob) ToKeyRingImportJobOutputWithContext

func (i *KeyRingImportJob) ToKeyRingImportJobOutputWithContext(ctx context.Context) KeyRingImportJobOutput

func (*KeyRingImportJob) ToKeyRingImportJobPtrOutput

func (i *KeyRingImportJob) ToKeyRingImportJobPtrOutput() KeyRingImportJobPtrOutput

func (*KeyRingImportJob) ToKeyRingImportJobPtrOutputWithContext

func (i *KeyRingImportJob) ToKeyRingImportJobPtrOutputWithContext(ctx context.Context) KeyRingImportJobPtrOutput

type KeyRingImportJobArgs

type KeyRingImportJobArgs struct {
	// It must be unique within a KeyRing and match the regular expression [a-zA-Z0-9_-]{1,63}
	ImportJobId pulumi.StringInput
	// The wrapping method to be used for incoming key material.
	// Possible values are `RSA_OAEP_3072_SHA1_AES_256` and `RSA_OAEP_4096_SHA1_AES_256`.
	ImportMethod pulumi.StringInput
	// The KeyRing that this import job belongs to.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
	KeyRing pulumi.StringInput
	// The protection level of the ImportJob. This must match the protectionLevel of the
	// versionTemplate on the CryptoKey you attempt to import into.
	// Possible values are `SOFTWARE`, `HSM`, and `EXTERNAL`.
	ProtectionLevel pulumi.StringInput
}

The set of arguments for constructing a KeyRingImportJob resource.

func (KeyRingImportJobArgs) ElementType

func (KeyRingImportJobArgs) ElementType() reflect.Type

type KeyRingImportJobArray

type KeyRingImportJobArray []KeyRingImportJobInput

func (KeyRingImportJobArray) ElementType

func (KeyRingImportJobArray) ElementType() reflect.Type

func (KeyRingImportJobArray) ToKeyRingImportJobArrayOutput

func (i KeyRingImportJobArray) ToKeyRingImportJobArrayOutput() KeyRingImportJobArrayOutput

func (KeyRingImportJobArray) ToKeyRingImportJobArrayOutputWithContext

func (i KeyRingImportJobArray) ToKeyRingImportJobArrayOutputWithContext(ctx context.Context) KeyRingImportJobArrayOutput

type KeyRingImportJobArrayInput

type KeyRingImportJobArrayInput interface {
	pulumi.Input

	ToKeyRingImportJobArrayOutput() KeyRingImportJobArrayOutput
	ToKeyRingImportJobArrayOutputWithContext(context.Context) KeyRingImportJobArrayOutput
}

KeyRingImportJobArrayInput is an input type that accepts KeyRingImportJobArray and KeyRingImportJobArrayOutput values. You can construct a concrete instance of `KeyRingImportJobArrayInput` via:

KeyRingImportJobArray{ KeyRingImportJobArgs{...} }

type KeyRingImportJobArrayOutput

type KeyRingImportJobArrayOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobArrayOutput) ElementType

func (KeyRingImportJobArrayOutput) Index

func (KeyRingImportJobArrayOutput) ToKeyRingImportJobArrayOutput

func (o KeyRingImportJobArrayOutput) ToKeyRingImportJobArrayOutput() KeyRingImportJobArrayOutput

func (KeyRingImportJobArrayOutput) ToKeyRingImportJobArrayOutputWithContext

func (o KeyRingImportJobArrayOutput) ToKeyRingImportJobArrayOutputWithContext(ctx context.Context) KeyRingImportJobArrayOutput

type KeyRingImportJobAttestation

type KeyRingImportJobAttestation struct {
	Content *string `pulumi:"content"`
	Format  *string `pulumi:"format"`
}

type KeyRingImportJobAttestationArgs

type KeyRingImportJobAttestationArgs struct {
	Content pulumi.StringPtrInput `pulumi:"content"`
	Format  pulumi.StringPtrInput `pulumi:"format"`
}

func (KeyRingImportJobAttestationArgs) ElementType

func (KeyRingImportJobAttestationArgs) ToKeyRingImportJobAttestationOutput

func (i KeyRingImportJobAttestationArgs) ToKeyRingImportJobAttestationOutput() KeyRingImportJobAttestationOutput

func (KeyRingImportJobAttestationArgs) ToKeyRingImportJobAttestationOutputWithContext

func (i KeyRingImportJobAttestationArgs) ToKeyRingImportJobAttestationOutputWithContext(ctx context.Context) KeyRingImportJobAttestationOutput

type KeyRingImportJobAttestationArray

type KeyRingImportJobAttestationArray []KeyRingImportJobAttestationInput

func (KeyRingImportJobAttestationArray) ElementType

func (KeyRingImportJobAttestationArray) ToKeyRingImportJobAttestationArrayOutput

func (i KeyRingImportJobAttestationArray) ToKeyRingImportJobAttestationArrayOutput() KeyRingImportJobAttestationArrayOutput

func (KeyRingImportJobAttestationArray) ToKeyRingImportJobAttestationArrayOutputWithContext

func (i KeyRingImportJobAttestationArray) ToKeyRingImportJobAttestationArrayOutputWithContext(ctx context.Context) KeyRingImportJobAttestationArrayOutput

type KeyRingImportJobAttestationArrayInput

type KeyRingImportJobAttestationArrayInput interface {
	pulumi.Input

	ToKeyRingImportJobAttestationArrayOutput() KeyRingImportJobAttestationArrayOutput
	ToKeyRingImportJobAttestationArrayOutputWithContext(context.Context) KeyRingImportJobAttestationArrayOutput
}

KeyRingImportJobAttestationArrayInput is an input type that accepts KeyRingImportJobAttestationArray and KeyRingImportJobAttestationArrayOutput values. You can construct a concrete instance of `KeyRingImportJobAttestationArrayInput` via:

KeyRingImportJobAttestationArray{ KeyRingImportJobAttestationArgs{...} }

type KeyRingImportJobAttestationArrayOutput

type KeyRingImportJobAttestationArrayOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobAttestationArrayOutput) ElementType

func (KeyRingImportJobAttestationArrayOutput) Index

func (KeyRingImportJobAttestationArrayOutput) ToKeyRingImportJobAttestationArrayOutput

func (o KeyRingImportJobAttestationArrayOutput) ToKeyRingImportJobAttestationArrayOutput() KeyRingImportJobAttestationArrayOutput

func (KeyRingImportJobAttestationArrayOutput) ToKeyRingImportJobAttestationArrayOutputWithContext

func (o KeyRingImportJobAttestationArrayOutput) ToKeyRingImportJobAttestationArrayOutputWithContext(ctx context.Context) KeyRingImportJobAttestationArrayOutput

type KeyRingImportJobAttestationInput

type KeyRingImportJobAttestationInput interface {
	pulumi.Input

	ToKeyRingImportJobAttestationOutput() KeyRingImportJobAttestationOutput
	ToKeyRingImportJobAttestationOutputWithContext(context.Context) KeyRingImportJobAttestationOutput
}

KeyRingImportJobAttestationInput is an input type that accepts KeyRingImportJobAttestationArgs and KeyRingImportJobAttestationOutput values. You can construct a concrete instance of `KeyRingImportJobAttestationInput` via:

KeyRingImportJobAttestationArgs{...}

type KeyRingImportJobAttestationOutput

type KeyRingImportJobAttestationOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobAttestationOutput) Content

func (KeyRingImportJobAttestationOutput) ElementType

func (KeyRingImportJobAttestationOutput) Format

func (KeyRingImportJobAttestationOutput) ToKeyRingImportJobAttestationOutput

func (o KeyRingImportJobAttestationOutput) ToKeyRingImportJobAttestationOutput() KeyRingImportJobAttestationOutput

func (KeyRingImportJobAttestationOutput) ToKeyRingImportJobAttestationOutputWithContext

func (o KeyRingImportJobAttestationOutput) ToKeyRingImportJobAttestationOutputWithContext(ctx context.Context) KeyRingImportJobAttestationOutput

type KeyRingImportJobInput

type KeyRingImportJobInput interface {
	pulumi.Input

	ToKeyRingImportJobOutput() KeyRingImportJobOutput
	ToKeyRingImportJobOutputWithContext(ctx context.Context) KeyRingImportJobOutput
}

type KeyRingImportJobMap

type KeyRingImportJobMap map[string]KeyRingImportJobInput

func (KeyRingImportJobMap) ElementType

func (KeyRingImportJobMap) ElementType() reflect.Type

func (KeyRingImportJobMap) ToKeyRingImportJobMapOutput

func (i KeyRingImportJobMap) ToKeyRingImportJobMapOutput() KeyRingImportJobMapOutput

func (KeyRingImportJobMap) ToKeyRingImportJobMapOutputWithContext

func (i KeyRingImportJobMap) ToKeyRingImportJobMapOutputWithContext(ctx context.Context) KeyRingImportJobMapOutput

type KeyRingImportJobMapInput

type KeyRingImportJobMapInput interface {
	pulumi.Input

	ToKeyRingImportJobMapOutput() KeyRingImportJobMapOutput
	ToKeyRingImportJobMapOutputWithContext(context.Context) KeyRingImportJobMapOutput
}

KeyRingImportJobMapInput is an input type that accepts KeyRingImportJobMap and KeyRingImportJobMapOutput values. You can construct a concrete instance of `KeyRingImportJobMapInput` via:

KeyRingImportJobMap{ "key": KeyRingImportJobArgs{...} }

type KeyRingImportJobMapOutput

type KeyRingImportJobMapOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobMapOutput) ElementType

func (KeyRingImportJobMapOutput) ElementType() reflect.Type

func (KeyRingImportJobMapOutput) MapIndex

func (KeyRingImportJobMapOutput) ToKeyRingImportJobMapOutput

func (o KeyRingImportJobMapOutput) ToKeyRingImportJobMapOutput() KeyRingImportJobMapOutput

func (KeyRingImportJobMapOutput) ToKeyRingImportJobMapOutputWithContext

func (o KeyRingImportJobMapOutput) ToKeyRingImportJobMapOutputWithContext(ctx context.Context) KeyRingImportJobMapOutput

type KeyRingImportJobOutput

type KeyRingImportJobOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobOutput) ElementType

func (KeyRingImportJobOutput) ElementType() reflect.Type

func (KeyRingImportJobOutput) ToKeyRingImportJobOutput

func (o KeyRingImportJobOutput) ToKeyRingImportJobOutput() KeyRingImportJobOutput

func (KeyRingImportJobOutput) ToKeyRingImportJobOutputWithContext

func (o KeyRingImportJobOutput) ToKeyRingImportJobOutputWithContext(ctx context.Context) KeyRingImportJobOutput

func (KeyRingImportJobOutput) ToKeyRingImportJobPtrOutput

func (o KeyRingImportJobOutput) ToKeyRingImportJobPtrOutput() KeyRingImportJobPtrOutput

func (KeyRingImportJobOutput) ToKeyRingImportJobPtrOutputWithContext

func (o KeyRingImportJobOutput) ToKeyRingImportJobPtrOutputWithContext(ctx context.Context) KeyRingImportJobPtrOutput

type KeyRingImportJobPtrInput

type KeyRingImportJobPtrInput interface {
	pulumi.Input

	ToKeyRingImportJobPtrOutput() KeyRingImportJobPtrOutput
	ToKeyRingImportJobPtrOutputWithContext(ctx context.Context) KeyRingImportJobPtrOutput
}

type KeyRingImportJobPtrOutput

type KeyRingImportJobPtrOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobPtrOutput) Elem added in v5.21.0

func (KeyRingImportJobPtrOutput) ElementType

func (KeyRingImportJobPtrOutput) ElementType() reflect.Type

func (KeyRingImportJobPtrOutput) ToKeyRingImportJobPtrOutput

func (o KeyRingImportJobPtrOutput) ToKeyRingImportJobPtrOutput() KeyRingImportJobPtrOutput

func (KeyRingImportJobPtrOutput) ToKeyRingImportJobPtrOutputWithContext

func (o KeyRingImportJobPtrOutput) ToKeyRingImportJobPtrOutputWithContext(ctx context.Context) KeyRingImportJobPtrOutput

type KeyRingImportJobPublicKey

type KeyRingImportJobPublicKey struct {
	Pem *string `pulumi:"pem"`
}

type KeyRingImportJobPublicKeyArgs

type KeyRingImportJobPublicKeyArgs struct {
	Pem pulumi.StringPtrInput `pulumi:"pem"`
}

func (KeyRingImportJobPublicKeyArgs) ElementType

func (KeyRingImportJobPublicKeyArgs) ToKeyRingImportJobPublicKeyOutput

func (i KeyRingImportJobPublicKeyArgs) ToKeyRingImportJobPublicKeyOutput() KeyRingImportJobPublicKeyOutput

func (KeyRingImportJobPublicKeyArgs) ToKeyRingImportJobPublicKeyOutputWithContext

func (i KeyRingImportJobPublicKeyArgs) ToKeyRingImportJobPublicKeyOutputWithContext(ctx context.Context) KeyRingImportJobPublicKeyOutput

type KeyRingImportJobPublicKeyArray

type KeyRingImportJobPublicKeyArray []KeyRingImportJobPublicKeyInput

func (KeyRingImportJobPublicKeyArray) ElementType

func (KeyRingImportJobPublicKeyArray) ToKeyRingImportJobPublicKeyArrayOutput

func (i KeyRingImportJobPublicKeyArray) ToKeyRingImportJobPublicKeyArrayOutput() KeyRingImportJobPublicKeyArrayOutput

func (KeyRingImportJobPublicKeyArray) ToKeyRingImportJobPublicKeyArrayOutputWithContext

func (i KeyRingImportJobPublicKeyArray) ToKeyRingImportJobPublicKeyArrayOutputWithContext(ctx context.Context) KeyRingImportJobPublicKeyArrayOutput

type KeyRingImportJobPublicKeyArrayInput

type KeyRingImportJobPublicKeyArrayInput interface {
	pulumi.Input

	ToKeyRingImportJobPublicKeyArrayOutput() KeyRingImportJobPublicKeyArrayOutput
	ToKeyRingImportJobPublicKeyArrayOutputWithContext(context.Context) KeyRingImportJobPublicKeyArrayOutput
}

KeyRingImportJobPublicKeyArrayInput is an input type that accepts KeyRingImportJobPublicKeyArray and KeyRingImportJobPublicKeyArrayOutput values. You can construct a concrete instance of `KeyRingImportJobPublicKeyArrayInput` via:

KeyRingImportJobPublicKeyArray{ KeyRingImportJobPublicKeyArgs{...} }

type KeyRingImportJobPublicKeyArrayOutput

type KeyRingImportJobPublicKeyArrayOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobPublicKeyArrayOutput) ElementType

func (KeyRingImportJobPublicKeyArrayOutput) Index

func (KeyRingImportJobPublicKeyArrayOutput) ToKeyRingImportJobPublicKeyArrayOutput

func (o KeyRingImportJobPublicKeyArrayOutput) ToKeyRingImportJobPublicKeyArrayOutput() KeyRingImportJobPublicKeyArrayOutput

func (KeyRingImportJobPublicKeyArrayOutput) ToKeyRingImportJobPublicKeyArrayOutputWithContext

func (o KeyRingImportJobPublicKeyArrayOutput) ToKeyRingImportJobPublicKeyArrayOutputWithContext(ctx context.Context) KeyRingImportJobPublicKeyArrayOutput

type KeyRingImportJobPublicKeyInput

type KeyRingImportJobPublicKeyInput interface {
	pulumi.Input

	ToKeyRingImportJobPublicKeyOutput() KeyRingImportJobPublicKeyOutput
	ToKeyRingImportJobPublicKeyOutputWithContext(context.Context) KeyRingImportJobPublicKeyOutput
}

KeyRingImportJobPublicKeyInput is an input type that accepts KeyRingImportJobPublicKeyArgs and KeyRingImportJobPublicKeyOutput values. You can construct a concrete instance of `KeyRingImportJobPublicKeyInput` via:

KeyRingImportJobPublicKeyArgs{...}

type KeyRingImportJobPublicKeyOutput

type KeyRingImportJobPublicKeyOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobPublicKeyOutput) ElementType

func (KeyRingImportJobPublicKeyOutput) Pem

func (KeyRingImportJobPublicKeyOutput) ToKeyRingImportJobPublicKeyOutput

func (o KeyRingImportJobPublicKeyOutput) ToKeyRingImportJobPublicKeyOutput() KeyRingImportJobPublicKeyOutput

func (KeyRingImportJobPublicKeyOutput) ToKeyRingImportJobPublicKeyOutputWithContext

func (o KeyRingImportJobPublicKeyOutput) ToKeyRingImportJobPublicKeyOutputWithContext(ctx context.Context) KeyRingImportJobPublicKeyOutput

type KeyRingImportJobState

type KeyRingImportJobState struct {
	// Statement that was generated and signed by the key creator (for example, an HSM) at key creation time. Use this
	// statement to verify attributes of the key as stored on the HSM, independently of Google. Only present if the chosen
	// ImportMethod is one with a protection level of HSM.
	Attestations KeyRingImportJobAttestationArrayInput
	// The time at which this resource is scheduled for expiration and can no longer be used. This is in RFC3339 text format.
	ExpireTime pulumi.StringPtrInput
	// It must be unique within a KeyRing and match the regular expression [a-zA-Z0-9_-]{1,63}
	ImportJobId pulumi.StringPtrInput
	// The wrapping method to be used for incoming key material.
	// Possible values are `RSA_OAEP_3072_SHA1_AES_256` and `RSA_OAEP_4096_SHA1_AES_256`.
	ImportMethod pulumi.StringPtrInput
	// The KeyRing that this import job belongs to.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}'`.
	KeyRing pulumi.StringPtrInput
	// The resource name for this ImportJob in the format projects/*/locations/*/keyRings/*/importJobs/*.
	Name pulumi.StringPtrInput
	// The protection level of the ImportJob. This must match the protectionLevel of the
	// versionTemplate on the CryptoKey you attempt to import into.
	// Possible values are `SOFTWARE`, `HSM`, and `EXTERNAL`.
	ProtectionLevel pulumi.StringPtrInput
	// The public key with which to wrap key material prior to import. Only returned if state is 'ACTIVE'.
	PublicKeys KeyRingImportJobPublicKeyArrayInput
	// The current state of the ImportJob, indicating if it can be used.
	State pulumi.StringPtrInput
}

func (KeyRingImportJobState) ElementType

func (KeyRingImportJobState) ElementType() reflect.Type

type KeyRingInput

type KeyRingInput interface {
	pulumi.Input

	ToKeyRingOutput() KeyRingOutput
	ToKeyRingOutputWithContext(ctx context.Context) KeyRingOutput
}

type KeyRingMap

type KeyRingMap map[string]KeyRingInput

func (KeyRingMap) ElementType

func (KeyRingMap) ElementType() reflect.Type

func (KeyRingMap) ToKeyRingMapOutput

func (i KeyRingMap) ToKeyRingMapOutput() KeyRingMapOutput

func (KeyRingMap) ToKeyRingMapOutputWithContext

func (i KeyRingMap) ToKeyRingMapOutputWithContext(ctx context.Context) KeyRingMapOutput

type KeyRingMapInput

type KeyRingMapInput interface {
	pulumi.Input

	ToKeyRingMapOutput() KeyRingMapOutput
	ToKeyRingMapOutputWithContext(context.Context) KeyRingMapOutput
}

KeyRingMapInput is an input type that accepts KeyRingMap and KeyRingMapOutput values. You can construct a concrete instance of `KeyRingMapInput` via:

KeyRingMap{ "key": KeyRingArgs{...} }

type KeyRingMapOutput

type KeyRingMapOutput struct{ *pulumi.OutputState }

func (KeyRingMapOutput) ElementType

func (KeyRingMapOutput) ElementType() reflect.Type

func (KeyRingMapOutput) MapIndex

func (KeyRingMapOutput) ToKeyRingMapOutput

func (o KeyRingMapOutput) ToKeyRingMapOutput() KeyRingMapOutput

func (KeyRingMapOutput) ToKeyRingMapOutputWithContext

func (o KeyRingMapOutput) ToKeyRingMapOutputWithContext(ctx context.Context) KeyRingMapOutput

type KeyRingOutput

type KeyRingOutput struct{ *pulumi.OutputState }

func (KeyRingOutput) ElementType

func (KeyRingOutput) ElementType() reflect.Type

func (KeyRingOutput) ToKeyRingOutput

func (o KeyRingOutput) ToKeyRingOutput() KeyRingOutput

func (KeyRingOutput) ToKeyRingOutputWithContext

func (o KeyRingOutput) ToKeyRingOutputWithContext(ctx context.Context) KeyRingOutput

func (KeyRingOutput) ToKeyRingPtrOutput

func (o KeyRingOutput) ToKeyRingPtrOutput() KeyRingPtrOutput

func (KeyRingOutput) ToKeyRingPtrOutputWithContext

func (o KeyRingOutput) ToKeyRingPtrOutputWithContext(ctx context.Context) KeyRingPtrOutput

type KeyRingPtrInput

type KeyRingPtrInput interface {
	pulumi.Input

	ToKeyRingPtrOutput() KeyRingPtrOutput
	ToKeyRingPtrOutputWithContext(ctx context.Context) KeyRingPtrOutput
}

type KeyRingPtrOutput

type KeyRingPtrOutput struct{ *pulumi.OutputState }

func (KeyRingPtrOutput) Elem added in v5.21.0

func (KeyRingPtrOutput) ElementType

func (KeyRingPtrOutput) ElementType() reflect.Type

func (KeyRingPtrOutput) ToKeyRingPtrOutput

func (o KeyRingPtrOutput) ToKeyRingPtrOutput() KeyRingPtrOutput

func (KeyRingPtrOutput) ToKeyRingPtrOutputWithContext

func (o KeyRingPtrOutput) ToKeyRingPtrOutputWithContext(ctx context.Context) KeyRingPtrOutput

type KeyRingState

type KeyRingState struct {
	// The location for the KeyRing.
	// A full list of valid locations can be found by running `gcloud kms locations list`.
	Location pulumi.StringPtrInput
	// The resource name for the KeyRing.
	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 self link of the created KeyRing in the format projects/{project}/locations/{location}/keyRings/{name}.
	//
	// Deprecated: Deprecated in favor of id, which contains an identical value. This field will be removed in the next major release of the provider.
	SelfLink pulumi.StringPtrInput
}

func (KeyRingState) ElementType

func (KeyRingState) ElementType() reflect.Type

type Registry deprecated

type Registry struct {
	pulumi.CustomResourceState

	// List of public key certificates to authenticate devices.
	Credentials RegistryCredentialArrayOutput `pulumi:"credentials"`
	// List of configurations for event notifications, such as PubSub topics to publish device events to.
	EventNotificationConfigs RegistryEventNotificationConfigItemArrayOutput `pulumi:"eventNotificationConfigs"`
	// Activate or deactivate HTTP.
	HttpConfig pulumi.MapOutput `pulumi:"httpConfig"`
	// The default logging verbosity for activity from devices in this registry. Specifies which events should be written to
	// logs. For example, if the LogLevel is ERROR, only events that terminate in errors will be logged. LogLevel is inclusive;
	// enabling INFO logging will also enable ERROR logging. Default value: "NONE" Possible values: ["NONE", "ERROR", "INFO",
	// "DEBUG"]
	LogLevel pulumi.StringPtrOutput `pulumi:"logLevel"`
	// Activate or deactivate MQTT.
	MqttConfig pulumi.MapOutput `pulumi:"mqttConfig"`
	// A unique name for the resource, required by device registry.
	Name    pulumi.StringOutput `pulumi:"name"`
	Project pulumi.StringOutput `pulumi:"project"`
	// The region in which the created registry should reside. If it is not provided, the provider region is used.
	Region pulumi.StringOutput `pulumi:"region"`
	// A PubSub topic to publish device state updates.
	StateNotificationConfig pulumi.MapOutput `pulumi:"stateNotificationConfig"`
}

Deprecated: gcp.kms.Registry has been deprecated in favor of gcp.iot.Registry

func GetRegistry

func GetRegistry(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RegistryState, opts ...pulumi.ResourceOption) (*Registry, error)

GetRegistry gets an existing Registry 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 NewRegistry

func NewRegistry(ctx *pulumi.Context,
	name string, args *RegistryArgs, opts ...pulumi.ResourceOption) (*Registry, error)

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

func (*Registry) ElementType

func (*Registry) ElementType() reflect.Type

func (*Registry) ToRegistryOutput

func (i *Registry) ToRegistryOutput() RegistryOutput

func (*Registry) ToRegistryOutputWithContext

func (i *Registry) ToRegistryOutputWithContext(ctx context.Context) RegistryOutput

func (*Registry) ToRegistryPtrOutput

func (i *Registry) ToRegistryPtrOutput() RegistryPtrOutput

func (*Registry) ToRegistryPtrOutputWithContext

func (i *Registry) ToRegistryPtrOutputWithContext(ctx context.Context) RegistryPtrOutput

type RegistryArgs

type RegistryArgs struct {
	// List of public key certificates to authenticate devices.
	Credentials RegistryCredentialArrayInput
	// List of configurations for event notifications, such as PubSub topics to publish device events to.
	EventNotificationConfigs RegistryEventNotificationConfigItemArrayInput
	// Activate or deactivate HTTP.
	HttpConfig pulumi.MapInput
	// The default logging verbosity for activity from devices in this registry. Specifies which events should be written to
	// logs. For example, if the LogLevel is ERROR, only events that terminate in errors will be logged. LogLevel is inclusive;
	// enabling INFO logging will also enable ERROR logging. Default value: "NONE" Possible values: ["NONE", "ERROR", "INFO",
	// "DEBUG"]
	LogLevel pulumi.StringPtrInput
	// Activate or deactivate MQTT.
	MqttConfig pulumi.MapInput
	// A unique name for the resource, required by device registry.
	Name    pulumi.StringPtrInput
	Project pulumi.StringPtrInput
	// The region in which the created registry should reside. If it is not provided, the provider region is used.
	Region pulumi.StringPtrInput
	// A PubSub topic to publish device state updates.
	StateNotificationConfig pulumi.MapInput
}

The set of arguments for constructing a Registry resource.

func (RegistryArgs) ElementType

func (RegistryArgs) ElementType() reflect.Type

type RegistryArray

type RegistryArray []RegistryInput

func (RegistryArray) ElementType

func (RegistryArray) ElementType() reflect.Type

func (RegistryArray) ToRegistryArrayOutput

func (i RegistryArray) ToRegistryArrayOutput() RegistryArrayOutput

func (RegistryArray) ToRegistryArrayOutputWithContext

func (i RegistryArray) ToRegistryArrayOutputWithContext(ctx context.Context) RegistryArrayOutput

type RegistryArrayInput

type RegistryArrayInput interface {
	pulumi.Input

	ToRegistryArrayOutput() RegistryArrayOutput
	ToRegistryArrayOutputWithContext(context.Context) RegistryArrayOutput
}

RegistryArrayInput is an input type that accepts RegistryArray and RegistryArrayOutput values. You can construct a concrete instance of `RegistryArrayInput` via:

RegistryArray{ RegistryArgs{...} }

type RegistryArrayOutput

type RegistryArrayOutput struct{ *pulumi.OutputState }

func (RegistryArrayOutput) ElementType

func (RegistryArrayOutput) ElementType() reflect.Type

func (RegistryArrayOutput) Index

func (RegistryArrayOutput) ToRegistryArrayOutput

func (o RegistryArrayOutput) ToRegistryArrayOutput() RegistryArrayOutput

func (RegistryArrayOutput) ToRegistryArrayOutputWithContext

func (o RegistryArrayOutput) ToRegistryArrayOutputWithContext(ctx context.Context) RegistryArrayOutput

type RegistryCredential

type RegistryCredential struct {
	PublicKeyCertificate map[string]interface{} `pulumi:"publicKeyCertificate"`
}

type RegistryCredentialArgs

type RegistryCredentialArgs struct {
	PublicKeyCertificate pulumi.MapInput `pulumi:"publicKeyCertificate"`
}

func (RegistryCredentialArgs) ElementType

func (RegistryCredentialArgs) ElementType() reflect.Type

func (RegistryCredentialArgs) ToRegistryCredentialOutput

func (i RegistryCredentialArgs) ToRegistryCredentialOutput() RegistryCredentialOutput

func (RegistryCredentialArgs) ToRegistryCredentialOutputWithContext

func (i RegistryCredentialArgs) ToRegistryCredentialOutputWithContext(ctx context.Context) RegistryCredentialOutput

type RegistryCredentialArray

type RegistryCredentialArray []RegistryCredentialInput

func (RegistryCredentialArray) ElementType

func (RegistryCredentialArray) ElementType() reflect.Type

func (RegistryCredentialArray) ToRegistryCredentialArrayOutput

func (i RegistryCredentialArray) ToRegistryCredentialArrayOutput() RegistryCredentialArrayOutput

func (RegistryCredentialArray) ToRegistryCredentialArrayOutputWithContext

func (i RegistryCredentialArray) ToRegistryCredentialArrayOutputWithContext(ctx context.Context) RegistryCredentialArrayOutput

type RegistryCredentialArrayInput

type RegistryCredentialArrayInput interface {
	pulumi.Input

	ToRegistryCredentialArrayOutput() RegistryCredentialArrayOutput
	ToRegistryCredentialArrayOutputWithContext(context.Context) RegistryCredentialArrayOutput
}

RegistryCredentialArrayInput is an input type that accepts RegistryCredentialArray and RegistryCredentialArrayOutput values. You can construct a concrete instance of `RegistryCredentialArrayInput` via:

RegistryCredentialArray{ RegistryCredentialArgs{...} }

type RegistryCredentialArrayOutput

type RegistryCredentialArrayOutput struct{ *pulumi.OutputState }

func (RegistryCredentialArrayOutput) ElementType

func (RegistryCredentialArrayOutput) Index

func (RegistryCredentialArrayOutput) ToRegistryCredentialArrayOutput

func (o RegistryCredentialArrayOutput) ToRegistryCredentialArrayOutput() RegistryCredentialArrayOutput

func (RegistryCredentialArrayOutput) ToRegistryCredentialArrayOutputWithContext

func (o RegistryCredentialArrayOutput) ToRegistryCredentialArrayOutputWithContext(ctx context.Context) RegistryCredentialArrayOutput

type RegistryCredentialInput

type RegistryCredentialInput interface {
	pulumi.Input

	ToRegistryCredentialOutput() RegistryCredentialOutput
	ToRegistryCredentialOutputWithContext(context.Context) RegistryCredentialOutput
}

RegistryCredentialInput is an input type that accepts RegistryCredentialArgs and RegistryCredentialOutput values. You can construct a concrete instance of `RegistryCredentialInput` via:

RegistryCredentialArgs{...}

type RegistryCredentialOutput

type RegistryCredentialOutput struct{ *pulumi.OutputState }

func (RegistryCredentialOutput) ElementType

func (RegistryCredentialOutput) ElementType() reflect.Type

func (RegistryCredentialOutput) PublicKeyCertificate

func (o RegistryCredentialOutput) PublicKeyCertificate() pulumi.MapOutput

func (RegistryCredentialOutput) ToRegistryCredentialOutput

func (o RegistryCredentialOutput) ToRegistryCredentialOutput() RegistryCredentialOutput

func (RegistryCredentialOutput) ToRegistryCredentialOutputWithContext

func (o RegistryCredentialOutput) ToRegistryCredentialOutputWithContext(ctx context.Context) RegistryCredentialOutput

type RegistryEventNotificationConfigItem

type RegistryEventNotificationConfigItem struct {
	PubsubTopicName  string  `pulumi:"pubsubTopicName"`
	SubfolderMatches *string `pulumi:"subfolderMatches"`
}

type RegistryEventNotificationConfigItemArgs

type RegistryEventNotificationConfigItemArgs struct {
	PubsubTopicName  pulumi.StringInput    `pulumi:"pubsubTopicName"`
	SubfolderMatches pulumi.StringPtrInput `pulumi:"subfolderMatches"`
}

func (RegistryEventNotificationConfigItemArgs) ElementType

func (RegistryEventNotificationConfigItemArgs) ToRegistryEventNotificationConfigItemOutput

func (i RegistryEventNotificationConfigItemArgs) ToRegistryEventNotificationConfigItemOutput() RegistryEventNotificationConfigItemOutput

func (RegistryEventNotificationConfigItemArgs) ToRegistryEventNotificationConfigItemOutputWithContext

func (i RegistryEventNotificationConfigItemArgs) ToRegistryEventNotificationConfigItemOutputWithContext(ctx context.Context) RegistryEventNotificationConfigItemOutput

type RegistryEventNotificationConfigItemArray

type RegistryEventNotificationConfigItemArray []RegistryEventNotificationConfigItemInput

func (RegistryEventNotificationConfigItemArray) ElementType

func (RegistryEventNotificationConfigItemArray) ToRegistryEventNotificationConfigItemArrayOutput

func (i RegistryEventNotificationConfigItemArray) ToRegistryEventNotificationConfigItemArrayOutput() RegistryEventNotificationConfigItemArrayOutput

func (RegistryEventNotificationConfigItemArray) ToRegistryEventNotificationConfigItemArrayOutputWithContext

func (i RegistryEventNotificationConfigItemArray) ToRegistryEventNotificationConfigItemArrayOutputWithContext(ctx context.Context) RegistryEventNotificationConfigItemArrayOutput

type RegistryEventNotificationConfigItemArrayInput

type RegistryEventNotificationConfigItemArrayInput interface {
	pulumi.Input

	ToRegistryEventNotificationConfigItemArrayOutput() RegistryEventNotificationConfigItemArrayOutput
	ToRegistryEventNotificationConfigItemArrayOutputWithContext(context.Context) RegistryEventNotificationConfigItemArrayOutput
}

RegistryEventNotificationConfigItemArrayInput is an input type that accepts RegistryEventNotificationConfigItemArray and RegistryEventNotificationConfigItemArrayOutput values. You can construct a concrete instance of `RegistryEventNotificationConfigItemArrayInput` via:

RegistryEventNotificationConfigItemArray{ RegistryEventNotificationConfigItemArgs{...} }

type RegistryEventNotificationConfigItemArrayOutput

type RegistryEventNotificationConfigItemArrayOutput struct{ *pulumi.OutputState }

func (RegistryEventNotificationConfigItemArrayOutput) ElementType

func (RegistryEventNotificationConfigItemArrayOutput) Index

func (RegistryEventNotificationConfigItemArrayOutput) ToRegistryEventNotificationConfigItemArrayOutput

func (o RegistryEventNotificationConfigItemArrayOutput) ToRegistryEventNotificationConfigItemArrayOutput() RegistryEventNotificationConfigItemArrayOutput

func (RegistryEventNotificationConfigItemArrayOutput) ToRegistryEventNotificationConfigItemArrayOutputWithContext

func (o RegistryEventNotificationConfigItemArrayOutput) ToRegistryEventNotificationConfigItemArrayOutputWithContext(ctx context.Context) RegistryEventNotificationConfigItemArrayOutput

type RegistryEventNotificationConfigItemInput

type RegistryEventNotificationConfigItemInput interface {
	pulumi.Input

	ToRegistryEventNotificationConfigItemOutput() RegistryEventNotificationConfigItemOutput
	ToRegistryEventNotificationConfigItemOutputWithContext(context.Context) RegistryEventNotificationConfigItemOutput
}

RegistryEventNotificationConfigItemInput is an input type that accepts RegistryEventNotificationConfigItemArgs and RegistryEventNotificationConfigItemOutput values. You can construct a concrete instance of `RegistryEventNotificationConfigItemInput` via:

RegistryEventNotificationConfigItemArgs{...}

type RegistryEventNotificationConfigItemOutput

type RegistryEventNotificationConfigItemOutput struct{ *pulumi.OutputState }

func (RegistryEventNotificationConfigItemOutput) ElementType

func (RegistryEventNotificationConfigItemOutput) PubsubTopicName

func (RegistryEventNotificationConfigItemOutput) SubfolderMatches

func (RegistryEventNotificationConfigItemOutput) ToRegistryEventNotificationConfigItemOutput

func (o RegistryEventNotificationConfigItemOutput) ToRegistryEventNotificationConfigItemOutput() RegistryEventNotificationConfigItemOutput

func (RegistryEventNotificationConfigItemOutput) ToRegistryEventNotificationConfigItemOutputWithContext

func (o RegistryEventNotificationConfigItemOutput) ToRegistryEventNotificationConfigItemOutputWithContext(ctx context.Context) RegistryEventNotificationConfigItemOutput

type RegistryInput

type RegistryInput interface {
	pulumi.Input

	ToRegistryOutput() RegistryOutput
	ToRegistryOutputWithContext(ctx context.Context) RegistryOutput
}

type RegistryMap

type RegistryMap map[string]RegistryInput

func (RegistryMap) ElementType

func (RegistryMap) ElementType() reflect.Type

func (RegistryMap) ToRegistryMapOutput

func (i RegistryMap) ToRegistryMapOutput() RegistryMapOutput

func (RegistryMap) ToRegistryMapOutputWithContext

func (i RegistryMap) ToRegistryMapOutputWithContext(ctx context.Context) RegistryMapOutput

type RegistryMapInput

type RegistryMapInput interface {
	pulumi.Input

	ToRegistryMapOutput() RegistryMapOutput
	ToRegistryMapOutputWithContext(context.Context) RegistryMapOutput
}

RegistryMapInput is an input type that accepts RegistryMap and RegistryMapOutput values. You can construct a concrete instance of `RegistryMapInput` via:

RegistryMap{ "key": RegistryArgs{...} }

type RegistryMapOutput

type RegistryMapOutput struct{ *pulumi.OutputState }

func (RegistryMapOutput) ElementType

func (RegistryMapOutput) ElementType() reflect.Type

func (RegistryMapOutput) MapIndex

func (RegistryMapOutput) ToRegistryMapOutput

func (o RegistryMapOutput) ToRegistryMapOutput() RegistryMapOutput

func (RegistryMapOutput) ToRegistryMapOutputWithContext

func (o RegistryMapOutput) ToRegistryMapOutputWithContext(ctx context.Context) RegistryMapOutput

type RegistryOutput

type RegistryOutput struct{ *pulumi.OutputState }

func (RegistryOutput) ElementType

func (RegistryOutput) ElementType() reflect.Type

func (RegistryOutput) ToRegistryOutput

func (o RegistryOutput) ToRegistryOutput() RegistryOutput

func (RegistryOutput) ToRegistryOutputWithContext

func (o RegistryOutput) ToRegistryOutputWithContext(ctx context.Context) RegistryOutput

func (RegistryOutput) ToRegistryPtrOutput

func (o RegistryOutput) ToRegistryPtrOutput() RegistryPtrOutput

func (RegistryOutput) ToRegistryPtrOutputWithContext

func (o RegistryOutput) ToRegistryPtrOutputWithContext(ctx context.Context) RegistryPtrOutput

type RegistryPtrInput

type RegistryPtrInput interface {
	pulumi.Input

	ToRegistryPtrOutput() RegistryPtrOutput
	ToRegistryPtrOutputWithContext(ctx context.Context) RegistryPtrOutput
}

type RegistryPtrOutput

type RegistryPtrOutput struct{ *pulumi.OutputState }

func (RegistryPtrOutput) Elem added in v5.21.0

func (RegistryPtrOutput) ElementType

func (RegistryPtrOutput) ElementType() reflect.Type

func (RegistryPtrOutput) ToRegistryPtrOutput

func (o RegistryPtrOutput) ToRegistryPtrOutput() RegistryPtrOutput

func (RegistryPtrOutput) ToRegistryPtrOutputWithContext

func (o RegistryPtrOutput) ToRegistryPtrOutputWithContext(ctx context.Context) RegistryPtrOutput

type RegistryState

type RegistryState struct {
	// List of public key certificates to authenticate devices.
	Credentials RegistryCredentialArrayInput
	// List of configurations for event notifications, such as PubSub topics to publish device events to.
	EventNotificationConfigs RegistryEventNotificationConfigItemArrayInput
	// Activate or deactivate HTTP.
	HttpConfig pulumi.MapInput
	// The default logging verbosity for activity from devices in this registry. Specifies which events should be written to
	// logs. For example, if the LogLevel is ERROR, only events that terminate in errors will be logged. LogLevel is inclusive;
	// enabling INFO logging will also enable ERROR logging. Default value: "NONE" Possible values: ["NONE", "ERROR", "INFO",
	// "DEBUG"]
	LogLevel pulumi.StringPtrInput
	// Activate or deactivate MQTT.
	MqttConfig pulumi.MapInput
	// A unique name for the resource, required by device registry.
	Name    pulumi.StringPtrInput
	Project pulumi.StringPtrInput
	// The region in which the created registry should reside. If it is not provided, the provider region is used.
	Region pulumi.StringPtrInput
	// A PubSub topic to publish device state updates.
	StateNotificationConfig pulumi.MapInput
}

func (RegistryState) ElementType

func (RegistryState) ElementType() reflect.Type

type SecretCiphertext

type SecretCiphertext struct {
	pulumi.CustomResourceState

	// The additional authenticated data used for integrity checks during encryption and decryption.
	// **Note**: This property is sensitive and will not be displayed in the plan.
	AdditionalAuthenticatedData pulumi.StringPtrOutput `pulumi:"additionalAuthenticatedData"`
	// Contains the result of encrypting the provided plaintext, encoded in base64.
	Ciphertext pulumi.StringOutput `pulumi:"ciphertext"`
	// The full name of the CryptoKey that will be used to encrypt the provided plaintext.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}'`
	CryptoKey pulumi.StringOutput `pulumi:"cryptoKey"`
	// The plaintext to be encrypted.
	// **Note**: This property is sensitive and will not be displayed in the plan.
	Plaintext pulumi.StringOutput `pulumi:"plaintext"`
}

Encrypts secret data with Google Cloud KMS and provides access to the ciphertext.

> **NOTE:** Using this resource will allow you to conceal secret data within your resource definitions, but it does not take care of protecting that data in the logging output, plan output, or state output. Please take care to secure your secret data outside of resource definitions.

To get more information about SecretCiphertext, see:

* [API documentation](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys/encrypt) * How-to Guides

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

## Example Usage ### Kms Secret Ciphertext Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		cryptokey, err := kms.NewCryptoKey(ctx, "cryptokey", &kms.CryptoKeyArgs{
			KeyRing:        keyring.ID(),
			RotationPeriod: pulumi.String("100000s"),
		})
		if err != nil {
			return err
		}
		myPassword, err := kms.NewSecretCiphertext(ctx, "myPassword", &kms.SecretCiphertextArgs{
			CryptoKey: cryptokey.ID(),
			Plaintext: pulumi.String("my-secret-password"),
		})
		if err != nil {
			return err
		}
		_, err = compute.NewInstance(ctx, "instance", &compute.InstanceArgs{
			MachineType: pulumi.String("e2-medium"),
			Zone:        pulumi.String("us-central1-a"),
			BootDisk: &compute.InstanceBootDiskArgs{
				InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{
					Image: pulumi.String("debian-cloud/debian-9"),
				},
			},
			NetworkInterfaces: compute.InstanceNetworkInterfaceArray{
				&compute.InstanceNetworkInterfaceArgs{
					Network: pulumi.String("default"),
					AccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{
						nil,
					},
				},
			},
			Metadata: pulumi.StringMap{
				"password": myPassword.Ciphertext,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource does not support import.

func GetSecretCiphertext

func GetSecretCiphertext(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SecretCiphertextState, opts ...pulumi.ResourceOption) (*SecretCiphertext, error)

GetSecretCiphertext gets an existing SecretCiphertext 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 NewSecretCiphertext

func NewSecretCiphertext(ctx *pulumi.Context,
	name string, args *SecretCiphertextArgs, opts ...pulumi.ResourceOption) (*SecretCiphertext, error)

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

func (*SecretCiphertext) ElementType

func (*SecretCiphertext) ElementType() reflect.Type

func (*SecretCiphertext) ToSecretCiphertextOutput

func (i *SecretCiphertext) ToSecretCiphertextOutput() SecretCiphertextOutput

func (*SecretCiphertext) ToSecretCiphertextOutputWithContext

func (i *SecretCiphertext) ToSecretCiphertextOutputWithContext(ctx context.Context) SecretCiphertextOutput

func (*SecretCiphertext) ToSecretCiphertextPtrOutput

func (i *SecretCiphertext) ToSecretCiphertextPtrOutput() SecretCiphertextPtrOutput

func (*SecretCiphertext) ToSecretCiphertextPtrOutputWithContext

func (i *SecretCiphertext) ToSecretCiphertextPtrOutputWithContext(ctx context.Context) SecretCiphertextPtrOutput

type SecretCiphertextArgs

type SecretCiphertextArgs struct {
	// The additional authenticated data used for integrity checks during encryption and decryption.
	// **Note**: This property is sensitive and will not be displayed in the plan.
	AdditionalAuthenticatedData pulumi.StringPtrInput
	// The full name of the CryptoKey that will be used to encrypt the provided plaintext.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}'`
	CryptoKey pulumi.StringInput
	// The plaintext to be encrypted.
	// **Note**: This property is sensitive and will not be displayed in the plan.
	Plaintext pulumi.StringInput
}

The set of arguments for constructing a SecretCiphertext resource.

func (SecretCiphertextArgs) ElementType

func (SecretCiphertextArgs) ElementType() reflect.Type

type SecretCiphertextArray

type SecretCiphertextArray []SecretCiphertextInput

func (SecretCiphertextArray) ElementType

func (SecretCiphertextArray) ElementType() reflect.Type

func (SecretCiphertextArray) ToSecretCiphertextArrayOutput

func (i SecretCiphertextArray) ToSecretCiphertextArrayOutput() SecretCiphertextArrayOutput

func (SecretCiphertextArray) ToSecretCiphertextArrayOutputWithContext

func (i SecretCiphertextArray) ToSecretCiphertextArrayOutputWithContext(ctx context.Context) SecretCiphertextArrayOutput

type SecretCiphertextArrayInput

type SecretCiphertextArrayInput interface {
	pulumi.Input

	ToSecretCiphertextArrayOutput() SecretCiphertextArrayOutput
	ToSecretCiphertextArrayOutputWithContext(context.Context) SecretCiphertextArrayOutput
}

SecretCiphertextArrayInput is an input type that accepts SecretCiphertextArray and SecretCiphertextArrayOutput values. You can construct a concrete instance of `SecretCiphertextArrayInput` via:

SecretCiphertextArray{ SecretCiphertextArgs{...} }

type SecretCiphertextArrayOutput

type SecretCiphertextArrayOutput struct{ *pulumi.OutputState }

func (SecretCiphertextArrayOutput) ElementType

func (SecretCiphertextArrayOutput) Index

func (SecretCiphertextArrayOutput) ToSecretCiphertextArrayOutput

func (o SecretCiphertextArrayOutput) ToSecretCiphertextArrayOutput() SecretCiphertextArrayOutput

func (SecretCiphertextArrayOutput) ToSecretCiphertextArrayOutputWithContext

func (o SecretCiphertextArrayOutput) ToSecretCiphertextArrayOutputWithContext(ctx context.Context) SecretCiphertextArrayOutput

type SecretCiphertextInput

type SecretCiphertextInput interface {
	pulumi.Input

	ToSecretCiphertextOutput() SecretCiphertextOutput
	ToSecretCiphertextOutputWithContext(ctx context.Context) SecretCiphertextOutput
}

type SecretCiphertextMap

type SecretCiphertextMap map[string]SecretCiphertextInput

func (SecretCiphertextMap) ElementType

func (SecretCiphertextMap) ElementType() reflect.Type

func (SecretCiphertextMap) ToSecretCiphertextMapOutput

func (i SecretCiphertextMap) ToSecretCiphertextMapOutput() SecretCiphertextMapOutput

func (SecretCiphertextMap) ToSecretCiphertextMapOutputWithContext

func (i SecretCiphertextMap) ToSecretCiphertextMapOutputWithContext(ctx context.Context) SecretCiphertextMapOutput

type SecretCiphertextMapInput

type SecretCiphertextMapInput interface {
	pulumi.Input

	ToSecretCiphertextMapOutput() SecretCiphertextMapOutput
	ToSecretCiphertextMapOutputWithContext(context.Context) SecretCiphertextMapOutput
}

SecretCiphertextMapInput is an input type that accepts SecretCiphertextMap and SecretCiphertextMapOutput values. You can construct a concrete instance of `SecretCiphertextMapInput` via:

SecretCiphertextMap{ "key": SecretCiphertextArgs{...} }

type SecretCiphertextMapOutput

type SecretCiphertextMapOutput struct{ *pulumi.OutputState }

func (SecretCiphertextMapOutput) ElementType

func (SecretCiphertextMapOutput) ElementType() reflect.Type

func (SecretCiphertextMapOutput) MapIndex

func (SecretCiphertextMapOutput) ToSecretCiphertextMapOutput

func (o SecretCiphertextMapOutput) ToSecretCiphertextMapOutput() SecretCiphertextMapOutput

func (SecretCiphertextMapOutput) ToSecretCiphertextMapOutputWithContext

func (o SecretCiphertextMapOutput) ToSecretCiphertextMapOutputWithContext(ctx context.Context) SecretCiphertextMapOutput

type SecretCiphertextOutput

type SecretCiphertextOutput struct{ *pulumi.OutputState }

func (SecretCiphertextOutput) ElementType

func (SecretCiphertextOutput) ElementType() reflect.Type

func (SecretCiphertextOutput) ToSecretCiphertextOutput

func (o SecretCiphertextOutput) ToSecretCiphertextOutput() SecretCiphertextOutput

func (SecretCiphertextOutput) ToSecretCiphertextOutputWithContext

func (o SecretCiphertextOutput) ToSecretCiphertextOutputWithContext(ctx context.Context) SecretCiphertextOutput

func (SecretCiphertextOutput) ToSecretCiphertextPtrOutput

func (o SecretCiphertextOutput) ToSecretCiphertextPtrOutput() SecretCiphertextPtrOutput

func (SecretCiphertextOutput) ToSecretCiphertextPtrOutputWithContext

func (o SecretCiphertextOutput) ToSecretCiphertextPtrOutputWithContext(ctx context.Context) SecretCiphertextPtrOutput

type SecretCiphertextPtrInput

type SecretCiphertextPtrInput interface {
	pulumi.Input

	ToSecretCiphertextPtrOutput() SecretCiphertextPtrOutput
	ToSecretCiphertextPtrOutputWithContext(ctx context.Context) SecretCiphertextPtrOutput
}

type SecretCiphertextPtrOutput

type SecretCiphertextPtrOutput struct{ *pulumi.OutputState }

func (SecretCiphertextPtrOutput) Elem added in v5.21.0

func (SecretCiphertextPtrOutput) ElementType

func (SecretCiphertextPtrOutput) ElementType() reflect.Type

func (SecretCiphertextPtrOutput) ToSecretCiphertextPtrOutput

func (o SecretCiphertextPtrOutput) ToSecretCiphertextPtrOutput() SecretCiphertextPtrOutput

func (SecretCiphertextPtrOutput) ToSecretCiphertextPtrOutputWithContext

func (o SecretCiphertextPtrOutput) ToSecretCiphertextPtrOutputWithContext(ctx context.Context) SecretCiphertextPtrOutput

type SecretCiphertextState

type SecretCiphertextState struct {
	// The additional authenticated data used for integrity checks during encryption and decryption.
	// **Note**: This property is sensitive and will not be displayed in the plan.
	AdditionalAuthenticatedData pulumi.StringPtrInput
	// Contains the result of encrypting the provided plaintext, encoded in base64.
	Ciphertext pulumi.StringPtrInput
	// The full name of the CryptoKey that will be used to encrypt the provided plaintext.
	// Format: `'projects/{{project}}/locations/{{location}}/keyRings/{{keyRing}}/cryptoKeys/{{cryptoKey}}'`
	CryptoKey pulumi.StringPtrInput
	// The plaintext to be encrypted.
	// **Note**: This property is sensitive and will not be displayed in the plan.
	Plaintext pulumi.StringPtrInput
}

func (SecretCiphertextState) ElementType

func (SecretCiphertextState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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