kms

package
v4.19.0 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 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 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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*CryptoKey) ElementType() reflect.Type

func (*CryptoKey) ToCryptoKeyOutput added in v4.4.0

func (i *CryptoKey) ToCryptoKeyOutput() CryptoKeyOutput

func (*CryptoKey) ToCryptoKeyOutputWithContext added in v4.4.0

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

func (*CryptoKey) ToCryptoKeyPtrOutput added in v4.11.1

func (i *CryptoKey) ToCryptoKeyPtrOutput() CryptoKeyPtrOutput

func (*CryptoKey) ToCryptoKeyPtrOutputWithContext added in v4.11.1

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

type CryptoKeyArgs

type CryptoKeyArgs struct {
	// 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 added in v4.11.1

type CryptoKeyArray []CryptoKeyInput

func (CryptoKeyArray) ElementType added in v4.11.1

func (CryptoKeyArray) ElementType() reflect.Type

func (CryptoKeyArray) ToCryptoKeyArrayOutput added in v4.11.1

func (i CryptoKeyArray) ToCryptoKeyArrayOutput() CryptoKeyArrayOutput

func (CryptoKeyArray) ToCryptoKeyArrayOutputWithContext added in v4.11.1

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

type CryptoKeyArrayInput added in v4.11.1

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 added in v4.11.1

type CryptoKeyArrayOutput struct{ *pulumi.OutputState }

func (CryptoKeyArrayOutput) ElementType added in v4.11.1

func (CryptoKeyArrayOutput) ElementType() reflect.Type

func (CryptoKeyArrayOutput) Index added in v4.11.1

func (CryptoKeyArrayOutput) ToCryptoKeyArrayOutput added in v4.11.1

func (o CryptoKeyArrayOutput) ToCryptoKeyArrayOutput() CryptoKeyArrayOutput

func (CryptoKeyArrayOutput) ToCryptoKeyArrayOutputWithContext added in v4.11.1

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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*CryptoKeyIAMBinding) ElementType() reflect.Type

func (*CryptoKeyIAMBinding) ToCryptoKeyIAMBindingOutput added in v4.4.0

func (i *CryptoKeyIAMBinding) ToCryptoKeyIAMBindingOutput() CryptoKeyIAMBindingOutput

func (*CryptoKeyIAMBinding) ToCryptoKeyIAMBindingOutputWithContext added in v4.4.0

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

func (*CryptoKeyIAMBinding) ToCryptoKeyIAMBindingPtrOutput added in v4.11.1

func (i *CryptoKeyIAMBinding) ToCryptoKeyIAMBindingPtrOutput() CryptoKeyIAMBindingPtrOutput

func (*CryptoKeyIAMBinding) ToCryptoKeyIAMBindingPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMBindingArray []CryptoKeyIAMBindingInput

func (CryptoKeyIAMBindingArray) ElementType added in v4.11.1

func (CryptoKeyIAMBindingArray) ElementType() reflect.Type

func (CryptoKeyIAMBindingArray) ToCryptoKeyIAMBindingArrayOutput added in v4.11.1

func (i CryptoKeyIAMBindingArray) ToCryptoKeyIAMBindingArrayOutput() CryptoKeyIAMBindingArrayOutput

func (CryptoKeyIAMBindingArray) ToCryptoKeyIAMBindingArrayOutputWithContext added in v4.11.1

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

type CryptoKeyIAMBindingArrayInput added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMBindingArrayOutput) ElementType added in v4.11.1

func (CryptoKeyIAMBindingArrayOutput) Index added in v4.11.1

func (CryptoKeyIAMBindingArrayOutput) ToCryptoKeyIAMBindingArrayOutput added in v4.11.1

func (o CryptoKeyIAMBindingArrayOutput) ToCryptoKeyIAMBindingArrayOutput() CryptoKeyIAMBindingArrayOutput

func (CryptoKeyIAMBindingArrayOutput) ToCryptoKeyIAMBindingArrayOutputWithContext added in v4.11.1

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 added in v4.4.0

type CryptoKeyIAMBindingInput interface {
	pulumi.Input

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

type CryptoKeyIAMBindingMap added in v4.11.1

type CryptoKeyIAMBindingMap map[string]CryptoKeyIAMBindingInput

func (CryptoKeyIAMBindingMap) ElementType added in v4.11.1

func (CryptoKeyIAMBindingMap) ElementType() reflect.Type

func (CryptoKeyIAMBindingMap) ToCryptoKeyIAMBindingMapOutput added in v4.11.1

func (i CryptoKeyIAMBindingMap) ToCryptoKeyIAMBindingMapOutput() CryptoKeyIAMBindingMapOutput

func (CryptoKeyIAMBindingMap) ToCryptoKeyIAMBindingMapOutputWithContext added in v4.11.1

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

type CryptoKeyIAMBindingMapInput added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMBindingMapOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMBindingMapOutput) ElementType added in v4.11.1

func (CryptoKeyIAMBindingMapOutput) MapIndex added in v4.11.1

func (CryptoKeyIAMBindingMapOutput) ToCryptoKeyIAMBindingMapOutput added in v4.11.1

func (o CryptoKeyIAMBindingMapOutput) ToCryptoKeyIAMBindingMapOutput() CryptoKeyIAMBindingMapOutput

func (CryptoKeyIAMBindingMapOutput) ToCryptoKeyIAMBindingMapOutputWithContext added in v4.11.1

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

type CryptoKeyIAMBindingOutput added in v4.4.0

type CryptoKeyIAMBindingOutput struct {
	*pulumi.OutputState
}

func (CryptoKeyIAMBindingOutput) ElementType added in v4.4.0

func (CryptoKeyIAMBindingOutput) ElementType() reflect.Type

func (CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingOutput added in v4.4.0

func (o CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingOutput() CryptoKeyIAMBindingOutput

func (CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingOutputWithContext added in v4.4.0

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

func (CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingPtrOutput added in v4.11.1

func (o CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingPtrOutput() CryptoKeyIAMBindingPtrOutput

func (CryptoKeyIAMBindingOutput) ToCryptoKeyIAMBindingPtrOutputWithContext added in v4.11.1

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

type CryptoKeyIAMBindingPtrInput added in v4.11.1

type CryptoKeyIAMBindingPtrInput interface {
	pulumi.Input

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

type CryptoKeyIAMBindingPtrOutput added in v4.11.1

type CryptoKeyIAMBindingPtrOutput struct {
	*pulumi.OutputState
}

func (CryptoKeyIAMBindingPtrOutput) ElementType added in v4.11.1

func (CryptoKeyIAMBindingPtrOutput) ToCryptoKeyIAMBindingPtrOutput added in v4.11.1

func (o CryptoKeyIAMBindingPtrOutput) ToCryptoKeyIAMBindingPtrOutput() CryptoKeyIAMBindingPtrOutput

func (CryptoKeyIAMBindingPtrOutput) ToCryptoKeyIAMBindingPtrOutputWithContext added in v4.11.1

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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*CryptoKeyIAMMember) ElementType() reflect.Type

func (*CryptoKeyIAMMember) ToCryptoKeyIAMMemberOutput added in v4.4.0

func (i *CryptoKeyIAMMember) ToCryptoKeyIAMMemberOutput() CryptoKeyIAMMemberOutput

func (*CryptoKeyIAMMember) ToCryptoKeyIAMMemberOutputWithContext added in v4.4.0

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

func (*CryptoKeyIAMMember) ToCryptoKeyIAMMemberPtrOutput added in v4.11.1

func (i *CryptoKeyIAMMember) ToCryptoKeyIAMMemberPtrOutput() CryptoKeyIAMMemberPtrOutput

func (*CryptoKeyIAMMember) ToCryptoKeyIAMMemberPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMMemberArray []CryptoKeyIAMMemberInput

func (CryptoKeyIAMMemberArray) ElementType added in v4.11.1

func (CryptoKeyIAMMemberArray) ElementType() reflect.Type

func (CryptoKeyIAMMemberArray) ToCryptoKeyIAMMemberArrayOutput added in v4.11.1

func (i CryptoKeyIAMMemberArray) ToCryptoKeyIAMMemberArrayOutput() CryptoKeyIAMMemberArrayOutput

func (CryptoKeyIAMMemberArray) ToCryptoKeyIAMMemberArrayOutputWithContext added in v4.11.1

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

type CryptoKeyIAMMemberArrayInput added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMMemberArrayOutput) ElementType added in v4.11.1

func (CryptoKeyIAMMemberArrayOutput) Index added in v4.11.1

func (CryptoKeyIAMMemberArrayOutput) ToCryptoKeyIAMMemberArrayOutput added in v4.11.1

func (o CryptoKeyIAMMemberArrayOutput) ToCryptoKeyIAMMemberArrayOutput() CryptoKeyIAMMemberArrayOutput

func (CryptoKeyIAMMemberArrayOutput) ToCryptoKeyIAMMemberArrayOutputWithContext added in v4.11.1

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 added in v4.4.0

type CryptoKeyIAMMemberInput interface {
	pulumi.Input

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

type CryptoKeyIAMMemberMap added in v4.11.1

type CryptoKeyIAMMemberMap map[string]CryptoKeyIAMMemberInput

func (CryptoKeyIAMMemberMap) ElementType added in v4.11.1

func (CryptoKeyIAMMemberMap) ElementType() reflect.Type

func (CryptoKeyIAMMemberMap) ToCryptoKeyIAMMemberMapOutput added in v4.11.1

func (i CryptoKeyIAMMemberMap) ToCryptoKeyIAMMemberMapOutput() CryptoKeyIAMMemberMapOutput

func (CryptoKeyIAMMemberMap) ToCryptoKeyIAMMemberMapOutputWithContext added in v4.11.1

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

type CryptoKeyIAMMemberMapInput added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMMemberMapOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMMemberMapOutput) ElementType added in v4.11.1

func (CryptoKeyIAMMemberMapOutput) MapIndex added in v4.11.1

func (CryptoKeyIAMMemberMapOutput) ToCryptoKeyIAMMemberMapOutput added in v4.11.1

func (o CryptoKeyIAMMemberMapOutput) ToCryptoKeyIAMMemberMapOutput() CryptoKeyIAMMemberMapOutput

func (CryptoKeyIAMMemberMapOutput) ToCryptoKeyIAMMemberMapOutputWithContext added in v4.11.1

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

type CryptoKeyIAMMemberOutput added in v4.4.0

type CryptoKeyIAMMemberOutput struct {
	*pulumi.OutputState
}

func (CryptoKeyIAMMemberOutput) ElementType added in v4.4.0

func (CryptoKeyIAMMemberOutput) ElementType() reflect.Type

func (CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberOutput added in v4.4.0

func (o CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberOutput() CryptoKeyIAMMemberOutput

func (CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberOutputWithContext added in v4.4.0

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

func (CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberPtrOutput added in v4.11.1

func (o CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberPtrOutput() CryptoKeyIAMMemberPtrOutput

func (CryptoKeyIAMMemberOutput) ToCryptoKeyIAMMemberPtrOutputWithContext added in v4.11.1

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

type CryptoKeyIAMMemberPtrInput added in v4.11.1

type CryptoKeyIAMMemberPtrInput interface {
	pulumi.Input

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

type CryptoKeyIAMMemberPtrOutput added in v4.11.1

type CryptoKeyIAMMemberPtrOutput struct {
	*pulumi.OutputState
}

func (CryptoKeyIAMMemberPtrOutput) ElementType added in v4.11.1

func (CryptoKeyIAMMemberPtrOutput) ToCryptoKeyIAMMemberPtrOutput added in v4.11.1

func (o CryptoKeyIAMMemberPtrOutput) ToCryptoKeyIAMMemberPtrOutput() CryptoKeyIAMMemberPtrOutput

func (CryptoKeyIAMMemberPtrOutput) ToCryptoKeyIAMMemberPtrOutputWithContext added in v4.11.1

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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*CryptoKeyIAMPolicy) ElementType() reflect.Type

func (*CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyOutput added in v4.4.0

func (i *CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyOutput() CryptoKeyIAMPolicyOutput

func (*CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyOutputWithContext added in v4.4.0

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

func (*CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyPtrOutput added in v4.11.1

func (i *CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyPtrOutput() CryptoKeyIAMPolicyPtrOutput

func (*CryptoKeyIAMPolicy) ToCryptoKeyIAMPolicyPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMPolicyArray []CryptoKeyIAMPolicyInput

func (CryptoKeyIAMPolicyArray) ElementType added in v4.11.1

func (CryptoKeyIAMPolicyArray) ElementType() reflect.Type

func (CryptoKeyIAMPolicyArray) ToCryptoKeyIAMPolicyArrayOutput added in v4.11.1

func (i CryptoKeyIAMPolicyArray) ToCryptoKeyIAMPolicyArrayOutput() CryptoKeyIAMPolicyArrayOutput

func (CryptoKeyIAMPolicyArray) ToCryptoKeyIAMPolicyArrayOutputWithContext added in v4.11.1

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

type CryptoKeyIAMPolicyArrayInput added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMPolicyArrayOutput) ElementType added in v4.11.1

func (CryptoKeyIAMPolicyArrayOutput) Index added in v4.11.1

func (CryptoKeyIAMPolicyArrayOutput) ToCryptoKeyIAMPolicyArrayOutput added in v4.11.1

func (o CryptoKeyIAMPolicyArrayOutput) ToCryptoKeyIAMPolicyArrayOutput() CryptoKeyIAMPolicyArrayOutput

func (CryptoKeyIAMPolicyArrayOutput) ToCryptoKeyIAMPolicyArrayOutputWithContext added in v4.11.1

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

type CryptoKeyIAMPolicyInput added in v4.4.0

type CryptoKeyIAMPolicyInput interface {
	pulumi.Input

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

type CryptoKeyIAMPolicyMap added in v4.11.1

type CryptoKeyIAMPolicyMap map[string]CryptoKeyIAMPolicyInput

func (CryptoKeyIAMPolicyMap) ElementType added in v4.11.1

func (CryptoKeyIAMPolicyMap) ElementType() reflect.Type

func (CryptoKeyIAMPolicyMap) ToCryptoKeyIAMPolicyMapOutput added in v4.11.1

func (i CryptoKeyIAMPolicyMap) ToCryptoKeyIAMPolicyMapOutput() CryptoKeyIAMPolicyMapOutput

func (CryptoKeyIAMPolicyMap) ToCryptoKeyIAMPolicyMapOutputWithContext added in v4.11.1

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

type CryptoKeyIAMPolicyMapInput added in v4.11.1

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 added in v4.11.1

type CryptoKeyIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (CryptoKeyIAMPolicyMapOutput) ElementType added in v4.11.1

func (CryptoKeyIAMPolicyMapOutput) MapIndex added in v4.11.1

func (CryptoKeyIAMPolicyMapOutput) ToCryptoKeyIAMPolicyMapOutput added in v4.11.1

func (o CryptoKeyIAMPolicyMapOutput) ToCryptoKeyIAMPolicyMapOutput() CryptoKeyIAMPolicyMapOutput

func (CryptoKeyIAMPolicyMapOutput) ToCryptoKeyIAMPolicyMapOutputWithContext added in v4.11.1

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

type CryptoKeyIAMPolicyOutput added in v4.4.0

type CryptoKeyIAMPolicyOutput struct {
	*pulumi.OutputState
}

func (CryptoKeyIAMPolicyOutput) ElementType added in v4.4.0

func (CryptoKeyIAMPolicyOutput) ElementType() reflect.Type

func (CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyOutput added in v4.4.0

func (o CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyOutput() CryptoKeyIAMPolicyOutput

func (CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyOutputWithContext added in v4.4.0

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

func (CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyPtrOutput added in v4.11.1

func (o CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyPtrOutput() CryptoKeyIAMPolicyPtrOutput

func (CryptoKeyIAMPolicyOutput) ToCryptoKeyIAMPolicyPtrOutputWithContext added in v4.11.1

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

type CryptoKeyIAMPolicyPtrInput added in v4.11.1

type CryptoKeyIAMPolicyPtrInput interface {
	pulumi.Input

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

type CryptoKeyIAMPolicyPtrOutput added in v4.11.1

type CryptoKeyIAMPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (CryptoKeyIAMPolicyPtrOutput) ElementType added in v4.11.1

func (CryptoKeyIAMPolicyPtrOutput) ToCryptoKeyIAMPolicyPtrOutput added in v4.11.1

func (o CryptoKeyIAMPolicyPtrOutput) ToCryptoKeyIAMPolicyPtrOutput() CryptoKeyIAMPolicyPtrOutput

func (CryptoKeyIAMPolicyPtrOutput) ToCryptoKeyIAMPolicyPtrOutputWithContext added in v4.11.1

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 added in v4.4.0

type CryptoKeyInput interface {
	pulumi.Input

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

type CryptoKeyMap added in v4.11.1

type CryptoKeyMap map[string]CryptoKeyInput

func (CryptoKeyMap) ElementType added in v4.11.1

func (CryptoKeyMap) ElementType() reflect.Type

func (CryptoKeyMap) ToCryptoKeyMapOutput added in v4.11.1

func (i CryptoKeyMap) ToCryptoKeyMapOutput() CryptoKeyMapOutput

func (CryptoKeyMap) ToCryptoKeyMapOutputWithContext added in v4.11.1

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

type CryptoKeyMapInput added in v4.11.1

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 added in v4.11.1

type CryptoKeyMapOutput struct{ *pulumi.OutputState }

func (CryptoKeyMapOutput) ElementType added in v4.11.1

func (CryptoKeyMapOutput) ElementType() reflect.Type

func (CryptoKeyMapOutput) MapIndex added in v4.11.1

func (CryptoKeyMapOutput) ToCryptoKeyMapOutput added in v4.11.1

func (o CryptoKeyMapOutput) ToCryptoKeyMapOutput() CryptoKeyMapOutput

func (CryptoKeyMapOutput) ToCryptoKeyMapOutputWithContext added in v4.11.1

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

type CryptoKeyOutput added in v4.4.0

type CryptoKeyOutput struct {
	*pulumi.OutputState
}

func (CryptoKeyOutput) ElementType added in v4.4.0

func (CryptoKeyOutput) ElementType() reflect.Type

func (CryptoKeyOutput) ToCryptoKeyOutput added in v4.4.0

func (o CryptoKeyOutput) ToCryptoKeyOutput() CryptoKeyOutput

func (CryptoKeyOutput) ToCryptoKeyOutputWithContext added in v4.4.0

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

func (CryptoKeyOutput) ToCryptoKeyPtrOutput added in v4.11.1

func (o CryptoKeyOutput) ToCryptoKeyPtrOutput() CryptoKeyPtrOutput

func (CryptoKeyOutput) ToCryptoKeyPtrOutputWithContext added in v4.11.1

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

type CryptoKeyPtrInput added in v4.11.1

type CryptoKeyPtrInput interface {
	pulumi.Input

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

type CryptoKeyPtrOutput added in v4.11.1

type CryptoKeyPtrOutput struct {
	*pulumi.OutputState
}

func (CryptoKeyPtrOutput) ElementType added in v4.11.1

func (CryptoKeyPtrOutput) ElementType() reflect.Type

func (CryptoKeyPtrOutput) ToCryptoKeyPtrOutput added in v4.11.1

func (o CryptoKeyPtrOutput) ToCryptoKeyPtrOutput() CryptoKeyPtrOutput

func (CryptoKeyPtrOutput) ToCryptoKeyPtrOutputWithContext added in v4.11.1

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

type CryptoKeyState

type CryptoKeyState struct {
	// 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 GetKMSCryptoKeyResult

type GetKMSCryptoKeyResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id      string            `pulumi:"id"`
	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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 GetKMSCryptoKeyVersionArgs

type GetKMSCryptoKeyVersionArgs struct {
	// The `selfLink` of the Google Cloud Platform CryptoKey to which the key version belongs.
	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 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 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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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
		}
		_, err = kms.GetKMSCryptoKeyVersion(ctx, &kms.GetKMSCryptoKeyVersionArgs{
			CryptoKey: data.Google_kms_key.My_key.Self_link,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

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 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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 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 added in v4.18.0

type GetKMSSecretAsymmetricArgs struct {
	// The ciphertext to be decrypted, encoded in base64
	Ciphertext string `pulumi:"ciphertext"`
	// The crc32 checksum of the `ciphertext` in hexadecimal notation.
	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 GetKMSSecretAsymmetricResult added in v4.18.0

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.

func GetKMSSecretAsymmetric added in v4.18.0

func GetKMSSecretAsymmetric(ctx *pulumi.Context, args *GetKMSSecretAsymmetricArgs, opts ...pulumi.InvokeOption) (*GetKMSSecretAsymmetricResult, error)

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

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

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

## get the public key to encrypt the secret with

$ gcloud kms keys versions get-public-key\
  --project my-project\
  --location us-central1\
  --keyring my-key-ring\
  --key my-crypto-key\
  --output-file public-key.pem

## encrypt secret with the public key

$ echo -n my-secret-password |\
  openssl pkeyutl -in -\
    -encrypt\
    -pubin\
    -inkey public-key.pem\
    -pkeyopt rsa_padding_mode:oaep\
    -pkeyopt rsa_oaep_md:sha256\
    -pkeyopt rsa_mgf1_md:sha256 >\
  my-secret-password.enc

## base64 encode the ciphertext

$ openssl base64 -in my-secret-password.enc M7nUoba9EGVTu2LjNjBKGdGVBYjyS/i/AY+4yQMQF0Qf/RfUfX31Jw6+VO9OuThq ylu/7ihX9XD4bM7yYdXnMv9p1OHQUlorSBSbb/J6n1W9UJhcp6um8Tw8/Isx4f75 4PskYS6f8Y2ItliGt1/A9iR5BTgGtJBwOxMlgoX2Ggq+Nh4E5SbdoaE5o6CO1nBx eIPsPEebQ6qC4JehQM3IGuV/lrm58+hZhaXAqNzX1cEYyAt5GYqJIVCiI585SUYs wRToGyTgaN+zthF0HP9IWlR4Am4LmJ/1OcePTnYw11CkU8wNRbDzVAzogwNH+rXr LTmf7hxVjBm6bBSVSNFcBKAXFlllubSfIeZ5hgzGqn54OmSf6odO12L5JxllddHc yAd54vWKs2kJtnsKV2V4ZdkI0w6y1TeI67baFZDNGo6qsCpFMPnvv7d46Pg2VOp1 J6Ivner0NnNHE4MzNmpZRk8WXMwqq4P/gTiT7F/aCX6oFCUQ4AWPQhJYh2dkcOmL IP+47Veb10aFn61F1CJwpmOOiGNXKdDT1vK8CMnnwhm825K0q/q9Zqpzc1+1ae1z mSqol1zCoa88CuSN6nTLQlVnN/dzfrGbc0boJPaM0iGhHtSzHk4SWg84LhiJB1q9 A9XFJmOVdkvRY9nnz/iVLAdd0Q3vFtLqCdUYsNN2yh4=

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 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 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 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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*KeyRing) ElementType() reflect.Type

func (*KeyRing) ToKeyRingOutput added in v4.4.0

func (i *KeyRing) ToKeyRingOutput() KeyRingOutput

func (*KeyRing) ToKeyRingOutputWithContext added in v4.4.0

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

func (*KeyRing) ToKeyRingPtrOutput added in v4.11.1

func (i *KeyRing) ToKeyRingPtrOutput() KeyRingPtrOutput

func (*KeyRing) ToKeyRingPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type KeyRingArray []KeyRingInput

func (KeyRingArray) ElementType added in v4.11.1

func (KeyRingArray) ElementType() reflect.Type

func (KeyRingArray) ToKeyRingArrayOutput added in v4.11.1

func (i KeyRingArray) ToKeyRingArrayOutput() KeyRingArrayOutput

func (KeyRingArray) ToKeyRingArrayOutputWithContext added in v4.11.1

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

type KeyRingArrayInput added in v4.11.1

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 added in v4.11.1

type KeyRingArrayOutput struct{ *pulumi.OutputState }

func (KeyRingArrayOutput) ElementType added in v4.11.1

func (KeyRingArrayOutput) ElementType() reflect.Type

func (KeyRingArrayOutput) Index added in v4.11.1

func (KeyRingArrayOutput) ToKeyRingArrayOutput added in v4.11.1

func (o KeyRingArrayOutput) ToKeyRingArrayOutput() KeyRingArrayOutput

func (KeyRingArrayOutput) ToKeyRingArrayOutputWithContext added in v4.11.1

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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*KeyRingIAMBinding) ElementType() reflect.Type

func (*KeyRingIAMBinding) ToKeyRingIAMBindingOutput added in v4.4.0

func (i *KeyRingIAMBinding) ToKeyRingIAMBindingOutput() KeyRingIAMBindingOutput

func (*KeyRingIAMBinding) ToKeyRingIAMBindingOutputWithContext added in v4.4.0

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

func (*KeyRingIAMBinding) ToKeyRingIAMBindingPtrOutput added in v4.11.1

func (i *KeyRingIAMBinding) ToKeyRingIAMBindingPtrOutput() KeyRingIAMBindingPtrOutput

func (*KeyRingIAMBinding) ToKeyRingIAMBindingPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type KeyRingIAMBindingArray []KeyRingIAMBindingInput

func (KeyRingIAMBindingArray) ElementType added in v4.11.1

func (KeyRingIAMBindingArray) ElementType() reflect.Type

func (KeyRingIAMBindingArray) ToKeyRingIAMBindingArrayOutput added in v4.11.1

func (i KeyRingIAMBindingArray) ToKeyRingIAMBindingArrayOutput() KeyRingIAMBindingArrayOutput

func (KeyRingIAMBindingArray) ToKeyRingIAMBindingArrayOutputWithContext added in v4.11.1

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

type KeyRingIAMBindingArrayInput added in v4.11.1

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 added in v4.11.1

type KeyRingIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (KeyRingIAMBindingArrayOutput) ElementType added in v4.11.1

func (KeyRingIAMBindingArrayOutput) Index added in v4.11.1

func (KeyRingIAMBindingArrayOutput) ToKeyRingIAMBindingArrayOutput added in v4.11.1

func (o KeyRingIAMBindingArrayOutput) ToKeyRingIAMBindingArrayOutput() KeyRingIAMBindingArrayOutput

func (KeyRingIAMBindingArrayOutput) ToKeyRingIAMBindingArrayOutputWithContext added in v4.11.1

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 added in v4.4.0

type KeyRingIAMBindingInput interface {
	pulumi.Input

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

type KeyRingIAMBindingMap added in v4.11.1

type KeyRingIAMBindingMap map[string]KeyRingIAMBindingInput

func (KeyRingIAMBindingMap) ElementType added in v4.11.1

func (KeyRingIAMBindingMap) ElementType() reflect.Type

func (KeyRingIAMBindingMap) ToKeyRingIAMBindingMapOutput added in v4.11.1

func (i KeyRingIAMBindingMap) ToKeyRingIAMBindingMapOutput() KeyRingIAMBindingMapOutput

func (KeyRingIAMBindingMap) ToKeyRingIAMBindingMapOutputWithContext added in v4.11.1

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

type KeyRingIAMBindingMapInput added in v4.11.1

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 added in v4.11.1

type KeyRingIAMBindingMapOutput struct{ *pulumi.OutputState }

func (KeyRingIAMBindingMapOutput) ElementType added in v4.11.1

func (KeyRingIAMBindingMapOutput) ElementType() reflect.Type

func (KeyRingIAMBindingMapOutput) MapIndex added in v4.11.1

func (KeyRingIAMBindingMapOutput) ToKeyRingIAMBindingMapOutput added in v4.11.1

func (o KeyRingIAMBindingMapOutput) ToKeyRingIAMBindingMapOutput() KeyRingIAMBindingMapOutput

func (KeyRingIAMBindingMapOutput) ToKeyRingIAMBindingMapOutputWithContext added in v4.11.1

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

type KeyRingIAMBindingOutput added in v4.4.0

type KeyRingIAMBindingOutput struct {
	*pulumi.OutputState
}

func (KeyRingIAMBindingOutput) ElementType added in v4.4.0

func (KeyRingIAMBindingOutput) ElementType() reflect.Type

func (KeyRingIAMBindingOutput) ToKeyRingIAMBindingOutput added in v4.4.0

func (o KeyRingIAMBindingOutput) ToKeyRingIAMBindingOutput() KeyRingIAMBindingOutput

func (KeyRingIAMBindingOutput) ToKeyRingIAMBindingOutputWithContext added in v4.4.0

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

func (KeyRingIAMBindingOutput) ToKeyRingIAMBindingPtrOutput added in v4.11.1

func (o KeyRingIAMBindingOutput) ToKeyRingIAMBindingPtrOutput() KeyRingIAMBindingPtrOutput

func (KeyRingIAMBindingOutput) ToKeyRingIAMBindingPtrOutputWithContext added in v4.11.1

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

type KeyRingIAMBindingPtrInput added in v4.11.1

type KeyRingIAMBindingPtrInput interface {
	pulumi.Input

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

type KeyRingIAMBindingPtrOutput added in v4.11.1

type KeyRingIAMBindingPtrOutput struct {
	*pulumi.OutputState
}

func (KeyRingIAMBindingPtrOutput) ElementType added in v4.11.1

func (KeyRingIAMBindingPtrOutput) ElementType() reflect.Type

func (KeyRingIAMBindingPtrOutput) ToKeyRingIAMBindingPtrOutput added in v4.11.1

func (o KeyRingIAMBindingPtrOutput) ToKeyRingIAMBindingPtrOutput() KeyRingIAMBindingPtrOutput

func (KeyRingIAMBindingPtrOutput) ToKeyRingIAMBindingPtrOutputWithContext added in v4.11.1

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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*KeyRingIAMMember) ElementType() reflect.Type

func (*KeyRingIAMMember) ToKeyRingIAMMemberOutput added in v4.4.0

func (i *KeyRingIAMMember) ToKeyRingIAMMemberOutput() KeyRingIAMMemberOutput

func (*KeyRingIAMMember) ToKeyRingIAMMemberOutputWithContext added in v4.4.0

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

func (*KeyRingIAMMember) ToKeyRingIAMMemberPtrOutput added in v4.11.1

func (i *KeyRingIAMMember) ToKeyRingIAMMemberPtrOutput() KeyRingIAMMemberPtrOutput

func (*KeyRingIAMMember) ToKeyRingIAMMemberPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type KeyRingIAMMemberArray []KeyRingIAMMemberInput

func (KeyRingIAMMemberArray) ElementType added in v4.11.1

func (KeyRingIAMMemberArray) ElementType() reflect.Type

func (KeyRingIAMMemberArray) ToKeyRingIAMMemberArrayOutput added in v4.11.1

func (i KeyRingIAMMemberArray) ToKeyRingIAMMemberArrayOutput() KeyRingIAMMemberArrayOutput

func (KeyRingIAMMemberArray) ToKeyRingIAMMemberArrayOutputWithContext added in v4.11.1

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

type KeyRingIAMMemberArrayInput added in v4.11.1

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 added in v4.11.1

type KeyRingIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (KeyRingIAMMemberArrayOutput) ElementType added in v4.11.1

func (KeyRingIAMMemberArrayOutput) Index added in v4.11.1

func (KeyRingIAMMemberArrayOutput) ToKeyRingIAMMemberArrayOutput added in v4.11.1

func (o KeyRingIAMMemberArrayOutput) ToKeyRingIAMMemberArrayOutput() KeyRingIAMMemberArrayOutput

func (KeyRingIAMMemberArrayOutput) ToKeyRingIAMMemberArrayOutputWithContext added in v4.11.1

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 added in v4.4.0

type KeyRingIAMMemberInput interface {
	pulumi.Input

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

type KeyRingIAMMemberMap added in v4.11.1

type KeyRingIAMMemberMap map[string]KeyRingIAMMemberInput

func (KeyRingIAMMemberMap) ElementType added in v4.11.1

func (KeyRingIAMMemberMap) ElementType() reflect.Type

func (KeyRingIAMMemberMap) ToKeyRingIAMMemberMapOutput added in v4.11.1

func (i KeyRingIAMMemberMap) ToKeyRingIAMMemberMapOutput() KeyRingIAMMemberMapOutput

func (KeyRingIAMMemberMap) ToKeyRingIAMMemberMapOutputWithContext added in v4.11.1

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

type KeyRingIAMMemberMapInput added in v4.11.1

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 added in v4.11.1

type KeyRingIAMMemberMapOutput struct{ *pulumi.OutputState }

func (KeyRingIAMMemberMapOutput) ElementType added in v4.11.1

func (KeyRingIAMMemberMapOutput) ElementType() reflect.Type

func (KeyRingIAMMemberMapOutput) MapIndex added in v4.11.1

func (KeyRingIAMMemberMapOutput) ToKeyRingIAMMemberMapOutput added in v4.11.1

func (o KeyRingIAMMemberMapOutput) ToKeyRingIAMMemberMapOutput() KeyRingIAMMemberMapOutput

func (KeyRingIAMMemberMapOutput) ToKeyRingIAMMemberMapOutputWithContext added in v4.11.1

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

type KeyRingIAMMemberOutput added in v4.4.0

type KeyRingIAMMemberOutput struct {
	*pulumi.OutputState
}

func (KeyRingIAMMemberOutput) ElementType added in v4.4.0

func (KeyRingIAMMemberOutput) ElementType() reflect.Type

func (KeyRingIAMMemberOutput) ToKeyRingIAMMemberOutput added in v4.4.0

func (o KeyRingIAMMemberOutput) ToKeyRingIAMMemberOutput() KeyRingIAMMemberOutput

func (KeyRingIAMMemberOutput) ToKeyRingIAMMemberOutputWithContext added in v4.4.0

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

func (KeyRingIAMMemberOutput) ToKeyRingIAMMemberPtrOutput added in v4.11.1

func (o KeyRingIAMMemberOutput) ToKeyRingIAMMemberPtrOutput() KeyRingIAMMemberPtrOutput

func (KeyRingIAMMemberOutput) ToKeyRingIAMMemberPtrOutputWithContext added in v4.11.1

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

type KeyRingIAMMemberPtrInput added in v4.11.1

type KeyRingIAMMemberPtrInput interface {
	pulumi.Input

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

type KeyRingIAMMemberPtrOutput added in v4.11.1

type KeyRingIAMMemberPtrOutput struct {
	*pulumi.OutputState
}

func (KeyRingIAMMemberPtrOutput) ElementType added in v4.11.1

func (KeyRingIAMMemberPtrOutput) ElementType() reflect.Type

func (KeyRingIAMMemberPtrOutput) ToKeyRingIAMMemberPtrOutput added in v4.11.1

func (o KeyRingIAMMemberPtrOutput) ToKeyRingIAMMemberPtrOutput() KeyRingIAMMemberPtrOutput

func (KeyRingIAMMemberPtrOutput) ToKeyRingIAMMemberPtrOutputWithContext added in v4.11.1

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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*KeyRingIAMPolicy) ElementType() reflect.Type

func (*KeyRingIAMPolicy) ToKeyRingIAMPolicyOutput added in v4.4.0

func (i *KeyRingIAMPolicy) ToKeyRingIAMPolicyOutput() KeyRingIAMPolicyOutput

func (*KeyRingIAMPolicy) ToKeyRingIAMPolicyOutputWithContext added in v4.4.0

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

func (*KeyRingIAMPolicy) ToKeyRingIAMPolicyPtrOutput added in v4.11.1

func (i *KeyRingIAMPolicy) ToKeyRingIAMPolicyPtrOutput() KeyRingIAMPolicyPtrOutput

func (*KeyRingIAMPolicy) ToKeyRingIAMPolicyPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type KeyRingIAMPolicyArray []KeyRingIAMPolicyInput

func (KeyRingIAMPolicyArray) ElementType added in v4.11.1

func (KeyRingIAMPolicyArray) ElementType() reflect.Type

func (KeyRingIAMPolicyArray) ToKeyRingIAMPolicyArrayOutput added in v4.11.1

func (i KeyRingIAMPolicyArray) ToKeyRingIAMPolicyArrayOutput() KeyRingIAMPolicyArrayOutput

func (KeyRingIAMPolicyArray) ToKeyRingIAMPolicyArrayOutputWithContext added in v4.11.1

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

type KeyRingIAMPolicyArrayInput added in v4.11.1

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 added in v4.11.1

type KeyRingIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (KeyRingIAMPolicyArrayOutput) ElementType added in v4.11.1

func (KeyRingIAMPolicyArrayOutput) Index added in v4.11.1

func (KeyRingIAMPolicyArrayOutput) ToKeyRingIAMPolicyArrayOutput added in v4.11.1

func (o KeyRingIAMPolicyArrayOutput) ToKeyRingIAMPolicyArrayOutput() KeyRingIAMPolicyArrayOutput

func (KeyRingIAMPolicyArrayOutput) ToKeyRingIAMPolicyArrayOutputWithContext added in v4.11.1

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

type KeyRingIAMPolicyInput added in v4.4.0

type KeyRingIAMPolicyInput interface {
	pulumi.Input

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

type KeyRingIAMPolicyMap added in v4.11.1

type KeyRingIAMPolicyMap map[string]KeyRingIAMPolicyInput

func (KeyRingIAMPolicyMap) ElementType added in v4.11.1

func (KeyRingIAMPolicyMap) ElementType() reflect.Type

func (KeyRingIAMPolicyMap) ToKeyRingIAMPolicyMapOutput added in v4.11.1

func (i KeyRingIAMPolicyMap) ToKeyRingIAMPolicyMapOutput() KeyRingIAMPolicyMapOutput

func (KeyRingIAMPolicyMap) ToKeyRingIAMPolicyMapOutputWithContext added in v4.11.1

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

type KeyRingIAMPolicyMapInput added in v4.11.1

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 added in v4.11.1

type KeyRingIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (KeyRingIAMPolicyMapOutput) ElementType added in v4.11.1

func (KeyRingIAMPolicyMapOutput) ElementType() reflect.Type

func (KeyRingIAMPolicyMapOutput) MapIndex added in v4.11.1

func (KeyRingIAMPolicyMapOutput) ToKeyRingIAMPolicyMapOutput added in v4.11.1

func (o KeyRingIAMPolicyMapOutput) ToKeyRingIAMPolicyMapOutput() KeyRingIAMPolicyMapOutput

func (KeyRingIAMPolicyMapOutput) ToKeyRingIAMPolicyMapOutputWithContext added in v4.11.1

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

type KeyRingIAMPolicyOutput added in v4.4.0

type KeyRingIAMPolicyOutput struct {
	*pulumi.OutputState
}

func (KeyRingIAMPolicyOutput) ElementType added in v4.4.0

func (KeyRingIAMPolicyOutput) ElementType() reflect.Type

func (KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyOutput added in v4.4.0

func (o KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyOutput() KeyRingIAMPolicyOutput

func (KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyOutputWithContext added in v4.4.0

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

func (KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyPtrOutput added in v4.11.1

func (o KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyPtrOutput() KeyRingIAMPolicyPtrOutput

func (KeyRingIAMPolicyOutput) ToKeyRingIAMPolicyPtrOutputWithContext added in v4.11.1

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

type KeyRingIAMPolicyPtrInput added in v4.11.1

type KeyRingIAMPolicyPtrInput interface {
	pulumi.Input

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

type KeyRingIAMPolicyPtrOutput added in v4.11.1

type KeyRingIAMPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (KeyRingIAMPolicyPtrOutput) ElementType added in v4.11.1

func (KeyRingIAMPolicyPtrOutput) ElementType() reflect.Type

func (KeyRingIAMPolicyPtrOutput) ToKeyRingIAMPolicyPtrOutput added in v4.11.1

func (o KeyRingIAMPolicyPtrOutput) ToKeyRingIAMPolicyPtrOutput() KeyRingIAMPolicyPtrOutput

func (KeyRingIAMPolicyPtrOutput) ToKeyRingIAMPolicyPtrOutputWithContext added in v4.11.1

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 added in v4.4.0

func (*KeyRingImportJob) ElementType() reflect.Type

func (*KeyRingImportJob) ToKeyRingImportJobOutput added in v4.4.0

func (i *KeyRingImportJob) ToKeyRingImportJobOutput() KeyRingImportJobOutput

func (*KeyRingImportJob) ToKeyRingImportJobOutputWithContext added in v4.4.0

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

func (*KeyRingImportJob) ToKeyRingImportJobPtrOutput added in v4.11.1

func (i *KeyRingImportJob) ToKeyRingImportJobPtrOutput() KeyRingImportJobPtrOutput

func (*KeyRingImportJob) ToKeyRingImportJobPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type KeyRingImportJobArray []KeyRingImportJobInput

func (KeyRingImportJobArray) ElementType added in v4.11.1

func (KeyRingImportJobArray) ElementType() reflect.Type

func (KeyRingImportJobArray) ToKeyRingImportJobArrayOutput added in v4.11.1

func (i KeyRingImportJobArray) ToKeyRingImportJobArrayOutput() KeyRingImportJobArrayOutput

func (KeyRingImportJobArray) ToKeyRingImportJobArrayOutputWithContext added in v4.11.1

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

type KeyRingImportJobArrayInput added in v4.11.1

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 added in v4.11.1

type KeyRingImportJobArrayOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobArrayOutput) ElementType added in v4.11.1

func (KeyRingImportJobArrayOutput) Index added in v4.11.1

func (KeyRingImportJobArrayOutput) ToKeyRingImportJobArrayOutput added in v4.11.1

func (o KeyRingImportJobArrayOutput) ToKeyRingImportJobArrayOutput() KeyRingImportJobArrayOutput

func (KeyRingImportJobArrayOutput) ToKeyRingImportJobArrayOutputWithContext added in v4.11.1

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 added in v4.4.0

type KeyRingImportJobInput interface {
	pulumi.Input

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

type KeyRingImportJobMap added in v4.11.1

type KeyRingImportJobMap map[string]KeyRingImportJobInput

func (KeyRingImportJobMap) ElementType added in v4.11.1

func (KeyRingImportJobMap) ElementType() reflect.Type

func (KeyRingImportJobMap) ToKeyRingImportJobMapOutput added in v4.11.1

func (i KeyRingImportJobMap) ToKeyRingImportJobMapOutput() KeyRingImportJobMapOutput

func (KeyRingImportJobMap) ToKeyRingImportJobMapOutputWithContext added in v4.11.1

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

type KeyRingImportJobMapInput added in v4.11.1

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 added in v4.11.1

type KeyRingImportJobMapOutput struct{ *pulumi.OutputState }

func (KeyRingImportJobMapOutput) ElementType added in v4.11.1

func (KeyRingImportJobMapOutput) ElementType() reflect.Type

func (KeyRingImportJobMapOutput) MapIndex added in v4.11.1

func (KeyRingImportJobMapOutput) ToKeyRingImportJobMapOutput added in v4.11.1

func (o KeyRingImportJobMapOutput) ToKeyRingImportJobMapOutput() KeyRingImportJobMapOutput

func (KeyRingImportJobMapOutput) ToKeyRingImportJobMapOutputWithContext added in v4.11.1

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

type KeyRingImportJobOutput added in v4.4.0

type KeyRingImportJobOutput struct {
	*pulumi.OutputState
}

func (KeyRingImportJobOutput) ElementType added in v4.4.0

func (KeyRingImportJobOutput) ElementType() reflect.Type

func (KeyRingImportJobOutput) ToKeyRingImportJobOutput added in v4.4.0

func (o KeyRingImportJobOutput) ToKeyRingImportJobOutput() KeyRingImportJobOutput

func (KeyRingImportJobOutput) ToKeyRingImportJobOutputWithContext added in v4.4.0

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

func (KeyRingImportJobOutput) ToKeyRingImportJobPtrOutput added in v4.11.1

func (o KeyRingImportJobOutput) ToKeyRingImportJobPtrOutput() KeyRingImportJobPtrOutput

func (KeyRingImportJobOutput) ToKeyRingImportJobPtrOutputWithContext added in v4.11.1

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

type KeyRingImportJobPtrInput added in v4.11.1

type KeyRingImportJobPtrInput interface {
	pulumi.Input

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

type KeyRingImportJobPtrOutput added in v4.11.1

type KeyRingImportJobPtrOutput struct {
	*pulumi.OutputState
}

func (KeyRingImportJobPtrOutput) ElementType added in v4.11.1

func (KeyRingImportJobPtrOutput) ElementType() reflect.Type

func (KeyRingImportJobPtrOutput) ToKeyRingImportJobPtrOutput added in v4.11.1

func (o KeyRingImportJobPtrOutput) ToKeyRingImportJobPtrOutput() KeyRingImportJobPtrOutput

func (KeyRingImportJobPtrOutput) ToKeyRingImportJobPtrOutputWithContext added in v4.11.1

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 added in v4.4.0

type KeyRingInput interface {
	pulumi.Input

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

type KeyRingMap added in v4.11.1

type KeyRingMap map[string]KeyRingInput

func (KeyRingMap) ElementType added in v4.11.1

func (KeyRingMap) ElementType() reflect.Type

func (KeyRingMap) ToKeyRingMapOutput added in v4.11.1

func (i KeyRingMap) ToKeyRingMapOutput() KeyRingMapOutput

func (KeyRingMap) ToKeyRingMapOutputWithContext added in v4.11.1

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

type KeyRingMapInput added in v4.11.1

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 added in v4.11.1

type KeyRingMapOutput struct{ *pulumi.OutputState }

func (KeyRingMapOutput) ElementType added in v4.11.1

func (KeyRingMapOutput) ElementType() reflect.Type

func (KeyRingMapOutput) MapIndex added in v4.11.1

func (KeyRingMapOutput) ToKeyRingMapOutput added in v4.11.1

func (o KeyRingMapOutput) ToKeyRingMapOutput() KeyRingMapOutput

func (KeyRingMapOutput) ToKeyRingMapOutputWithContext added in v4.11.1

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

type KeyRingOutput added in v4.4.0

type KeyRingOutput struct {
	*pulumi.OutputState
}

func (KeyRingOutput) ElementType added in v4.4.0

func (KeyRingOutput) ElementType() reflect.Type

func (KeyRingOutput) ToKeyRingOutput added in v4.4.0

func (o KeyRingOutput) ToKeyRingOutput() KeyRingOutput

func (KeyRingOutput) ToKeyRingOutputWithContext added in v4.4.0

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

func (KeyRingOutput) ToKeyRingPtrOutput added in v4.11.1

func (o KeyRingOutput) ToKeyRingPtrOutput() KeyRingPtrOutput

func (KeyRingOutput) ToKeyRingPtrOutputWithContext added in v4.11.1

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

type KeyRingPtrInput added in v4.11.1

type KeyRingPtrInput interface {
	pulumi.Input

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

type KeyRingPtrOutput added in v4.11.1

type KeyRingPtrOutput struct {
	*pulumi.OutputState
}

func (KeyRingPtrOutput) ElementType added in v4.11.1

func (KeyRingPtrOutput) ElementType() reflect.Type

func (KeyRingPtrOutput) ToKeyRingPtrOutput added in v4.11.1

func (o KeyRingPtrOutput) ToKeyRingPtrOutput() KeyRingPtrOutput

func (KeyRingPtrOutput) ToKeyRingPtrOutputWithContext added in v4.11.1

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.
	// The structure is documented below.
	Credentials RegistryCredentialArrayOutput `pulumi:"credentials"`
	// List of configurations for event notifications, such as PubSub topics
	// to publish device events to.
	// Structure is documented below.
	EventNotificationConfigs RegistryEventNotificationConfigItemArrayOutput `pulumi:"eventNotificationConfigs"`
	// Activate or deactivate HTTP.
	// The structure is documented below.
	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 is `NONE`.
	// Possible values are `NONE`, `ERROR`, `INFO`, and `DEBUG`.
	LogLevel pulumi.StringPtrOutput `pulumi:"logLevel"`
	// Activate or deactivate MQTT.
	// The structure is documented below.
	MqttConfig pulumi.MapOutput `pulumi:"mqttConfig"`
	// A unique name for the resource, required by device registry.
	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 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.
	// The structure is documented below.
	StateNotificationConfig pulumi.MapOutput `pulumi:"stateNotificationConfig"`
}

A Google Cloud IoT Core device registry.

To get more information about DeviceRegistry, see:

* [API documentation](https://cloud.google.com/iot/docs/reference/cloudiot/rest/) * How-to Guides

## Example Usage ### Cloudiot Device Registry Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := iot.NewRegistry(ctx, "test_registry", nil)
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Cloudiot Device Registry Single Event Notification Configs

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopic(ctx, "default_telemetry", nil)
		if err != nil {
			return err
		}
		_, err = iot.NewRegistry(ctx, "test_registry", &iot.RegistryArgs{
			EventNotificationConfigs: iot.RegistryEventNotificationConfigItemArray{
				&iot.RegistryEventNotificationConfigItemArgs{
					PubsubTopicName:  default_telemetry.ID(),
					SubfolderMatches: pulumi.String(""),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

DeviceRegistry can be imported using any of these accepted formats

```sh

$ pulumi import gcp:kms/registry:Registry default {{project}}/locations/{{region}}/registries/{{name}}

```

```sh

$ pulumi import gcp:kms/registry:Registry default {{project}}/{{region}}/{{name}}

```

```sh

$ pulumi import gcp:kms/registry:Registry default {{region}}/{{name}}

```

```sh

$ pulumi import gcp:kms/registry:Registry default {{name}}

```

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 added in v4.4.0

func (*Registry) ElementType() reflect.Type

func (*Registry) ToRegistryOutput added in v4.4.0

func (i *Registry) ToRegistryOutput() RegistryOutput

func (*Registry) ToRegistryOutputWithContext added in v4.4.0

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

func (*Registry) ToRegistryPtrOutput added in v4.11.1

func (i *Registry) ToRegistryPtrOutput() RegistryPtrOutput

func (*Registry) ToRegistryPtrOutputWithContext added in v4.11.1

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

type RegistryArgs

type RegistryArgs struct {
	// List of public key certificates to authenticate devices.
	// The structure is documented below.
	Credentials RegistryCredentialArrayInput
	// List of configurations for event notifications, such as PubSub topics
	// to publish device events to.
	// Structure is documented below.
	EventNotificationConfigs RegistryEventNotificationConfigItemArrayInput
	// Activate or deactivate HTTP.
	// The structure is documented below.
	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 is `NONE`.
	// Possible values are `NONE`, `ERROR`, `INFO`, and `DEBUG`.
	LogLevel pulumi.StringPtrInput
	// Activate or deactivate MQTT.
	// The structure is documented below.
	MqttConfig pulumi.MapInput
	// A unique name for the resource, required by device registry.
	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 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.
	// The structure is documented below.
	StateNotificationConfig pulumi.MapInput
}

The set of arguments for constructing a Registry resource.

func (RegistryArgs) ElementType

func (RegistryArgs) ElementType() reflect.Type

type RegistryArray added in v4.11.1

type RegistryArray []RegistryInput

func (RegistryArray) ElementType added in v4.11.1

func (RegistryArray) ElementType() reflect.Type

func (RegistryArray) ToRegistryArrayOutput added in v4.11.1

func (i RegistryArray) ToRegistryArrayOutput() RegistryArrayOutput

func (RegistryArray) ToRegistryArrayOutputWithContext added in v4.11.1

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

type RegistryArrayInput added in v4.11.1

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 added in v4.11.1

type RegistryArrayOutput struct{ *pulumi.OutputState }

func (RegistryArrayOutput) ElementType added in v4.11.1

func (RegistryArrayOutput) ElementType() reflect.Type

func (RegistryArrayOutput) Index added in v4.11.1

func (RegistryArrayOutput) ToRegistryArrayOutput added in v4.11.1

func (o RegistryArrayOutput) ToRegistryArrayOutput() RegistryArrayOutput

func (RegistryArrayOutput) ToRegistryArrayOutputWithContext added in v4.11.1

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

type RegistryCredential

type RegistryCredential struct {
	// A public key certificate format and data.
	PublicKeyCertificate map[string]interface{} `pulumi:"publicKeyCertificate"`
}

type RegistryCredentialArgs

type RegistryCredentialArgs struct {
	// A public key certificate format and data.
	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

A public key certificate format and data.

func (RegistryCredentialOutput) ToRegistryCredentialOutput

func (o RegistryCredentialOutput) ToRegistryCredentialOutput() RegistryCredentialOutput

func (RegistryCredentialOutput) ToRegistryCredentialOutputWithContext

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

type RegistryEventNotificationConfigItem

type RegistryEventNotificationConfigItem struct {
	// PubSub topic name to publish device events.
	PubsubTopicName string `pulumi:"pubsubTopicName"`
	// If the subfolder name matches this string exactly, this
	// configuration will be used. The string must not include the
	// leading '/' character. If empty, all strings are matched. Empty
	// value can only be used for the last `eventNotificationConfigs`
	// item.
	SubfolderMatches *string `pulumi:"subfolderMatches"`
}

type RegistryEventNotificationConfigItemArgs

type RegistryEventNotificationConfigItemArgs struct {
	// PubSub topic name to publish device events.
	PubsubTopicName pulumi.StringInput `pulumi:"pubsubTopicName"`
	// If the subfolder name matches this string exactly, this
	// configuration will be used. The string must not include the
	// leading '/' character. If empty, all strings are matched. Empty
	// value can only be used for the last `eventNotificationConfigs`
	// item.
	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

PubSub topic name to publish device events.

func (RegistryEventNotificationConfigItemOutput) SubfolderMatches

If the subfolder name matches this string exactly, this configuration will be used. The string must not include the leading '/' character. If empty, all strings are matched. Empty value can only be used for the last `eventNotificationConfigs` item.

func (RegistryEventNotificationConfigItemOutput) ToRegistryEventNotificationConfigItemOutput

func (o RegistryEventNotificationConfigItemOutput) ToRegistryEventNotificationConfigItemOutput() RegistryEventNotificationConfigItemOutput

func (RegistryEventNotificationConfigItemOutput) ToRegistryEventNotificationConfigItemOutputWithContext

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

type RegistryInput added in v4.4.0

type RegistryInput interface {
	pulumi.Input

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

type RegistryMap added in v4.11.1

type RegistryMap map[string]RegistryInput

func (RegistryMap) ElementType added in v4.11.1

func (RegistryMap) ElementType() reflect.Type

func (RegistryMap) ToRegistryMapOutput added in v4.11.1

func (i RegistryMap) ToRegistryMapOutput() RegistryMapOutput

func (RegistryMap) ToRegistryMapOutputWithContext added in v4.11.1

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

type RegistryMapInput added in v4.11.1

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 added in v4.11.1

type RegistryMapOutput struct{ *pulumi.OutputState }

func (RegistryMapOutput) ElementType added in v4.11.1

func (RegistryMapOutput) ElementType() reflect.Type

func (RegistryMapOutput) MapIndex added in v4.11.1

func (RegistryMapOutput) ToRegistryMapOutput added in v4.11.1

func (o RegistryMapOutput) ToRegistryMapOutput() RegistryMapOutput

func (RegistryMapOutput) ToRegistryMapOutputWithContext added in v4.11.1

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

type RegistryOutput added in v4.4.0

type RegistryOutput struct {
	*pulumi.OutputState
}

func (RegistryOutput) ElementType added in v4.4.0

func (RegistryOutput) ElementType() reflect.Type

func (RegistryOutput) ToRegistryOutput added in v4.4.0

func (o RegistryOutput) ToRegistryOutput() RegistryOutput

func (RegistryOutput) ToRegistryOutputWithContext added in v4.4.0

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

func (RegistryOutput) ToRegistryPtrOutput added in v4.11.1

func (o RegistryOutput) ToRegistryPtrOutput() RegistryPtrOutput

func (RegistryOutput) ToRegistryPtrOutputWithContext added in v4.11.1

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

type RegistryPtrInput added in v4.11.1

type RegistryPtrInput interface {
	pulumi.Input

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

type RegistryPtrOutput added in v4.11.1

type RegistryPtrOutput struct {
	*pulumi.OutputState
}

func (RegistryPtrOutput) ElementType added in v4.11.1

func (RegistryPtrOutput) ElementType() reflect.Type

func (RegistryPtrOutput) ToRegistryPtrOutput added in v4.11.1

func (o RegistryPtrOutput) ToRegistryPtrOutput() RegistryPtrOutput

func (RegistryPtrOutput) ToRegistryPtrOutputWithContext added in v4.11.1

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

type RegistryState

type RegistryState struct {
	// List of public key certificates to authenticate devices.
	// The structure is documented below.
	Credentials RegistryCredentialArrayInput
	// List of configurations for event notifications, such as PubSub topics
	// to publish device events to.
	// Structure is documented below.
	EventNotificationConfigs RegistryEventNotificationConfigItemArrayInput
	// Activate or deactivate HTTP.
	// The structure is documented below.
	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 is `NONE`.
	// Possible values are `NONE`, `ERROR`, `INFO`, and `DEBUG`.
	LogLevel pulumi.StringPtrInput
	// Activate or deactivate MQTT.
	// The structure is documented below.
	MqttConfig pulumi.MapInput
	// A unique name for the resource, required by device registry.
	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 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.
	// The structure is documented below.
	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/v4/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/kms"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*SecretCiphertext) ElementType() reflect.Type

func (*SecretCiphertext) ToSecretCiphertextOutput added in v4.4.0

func (i *SecretCiphertext) ToSecretCiphertextOutput() SecretCiphertextOutput

func (*SecretCiphertext) ToSecretCiphertextOutputWithContext added in v4.4.0

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

func (*SecretCiphertext) ToSecretCiphertextPtrOutput added in v4.11.1

func (i *SecretCiphertext) ToSecretCiphertextPtrOutput() SecretCiphertextPtrOutput

func (*SecretCiphertext) ToSecretCiphertextPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type SecretCiphertextArray []SecretCiphertextInput

func (SecretCiphertextArray) ElementType added in v4.11.1

func (SecretCiphertextArray) ElementType() reflect.Type

func (SecretCiphertextArray) ToSecretCiphertextArrayOutput added in v4.11.1

func (i SecretCiphertextArray) ToSecretCiphertextArrayOutput() SecretCiphertextArrayOutput

func (SecretCiphertextArray) ToSecretCiphertextArrayOutputWithContext added in v4.11.1

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

type SecretCiphertextArrayInput added in v4.11.1

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 added in v4.11.1

type SecretCiphertextArrayOutput struct{ *pulumi.OutputState }

func (SecretCiphertextArrayOutput) ElementType added in v4.11.1

func (SecretCiphertextArrayOutput) Index added in v4.11.1

func (SecretCiphertextArrayOutput) ToSecretCiphertextArrayOutput added in v4.11.1

func (o SecretCiphertextArrayOutput) ToSecretCiphertextArrayOutput() SecretCiphertextArrayOutput

func (SecretCiphertextArrayOutput) ToSecretCiphertextArrayOutputWithContext added in v4.11.1

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

type SecretCiphertextInput added in v4.4.0

type SecretCiphertextInput interface {
	pulumi.Input

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

type SecretCiphertextMap added in v4.11.1

type SecretCiphertextMap map[string]SecretCiphertextInput

func (SecretCiphertextMap) ElementType added in v4.11.1

func (SecretCiphertextMap) ElementType() reflect.Type

func (SecretCiphertextMap) ToSecretCiphertextMapOutput added in v4.11.1

func (i SecretCiphertextMap) ToSecretCiphertextMapOutput() SecretCiphertextMapOutput

func (SecretCiphertextMap) ToSecretCiphertextMapOutputWithContext added in v4.11.1

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

type SecretCiphertextMapInput added in v4.11.1

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 added in v4.11.1

type SecretCiphertextMapOutput struct{ *pulumi.OutputState }

func (SecretCiphertextMapOutput) ElementType added in v4.11.1

func (SecretCiphertextMapOutput) ElementType() reflect.Type

func (SecretCiphertextMapOutput) MapIndex added in v4.11.1

func (SecretCiphertextMapOutput) ToSecretCiphertextMapOutput added in v4.11.1

func (o SecretCiphertextMapOutput) ToSecretCiphertextMapOutput() SecretCiphertextMapOutput

func (SecretCiphertextMapOutput) ToSecretCiphertextMapOutputWithContext added in v4.11.1

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

type SecretCiphertextOutput added in v4.4.0

type SecretCiphertextOutput struct {
	*pulumi.OutputState
}

func (SecretCiphertextOutput) ElementType added in v4.4.0

func (SecretCiphertextOutput) ElementType() reflect.Type

func (SecretCiphertextOutput) ToSecretCiphertextOutput added in v4.4.0

func (o SecretCiphertextOutput) ToSecretCiphertextOutput() SecretCiphertextOutput

func (SecretCiphertextOutput) ToSecretCiphertextOutputWithContext added in v4.4.0

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

func (SecretCiphertextOutput) ToSecretCiphertextPtrOutput added in v4.11.1

func (o SecretCiphertextOutput) ToSecretCiphertextPtrOutput() SecretCiphertextPtrOutput

func (SecretCiphertextOutput) ToSecretCiphertextPtrOutputWithContext added in v4.11.1

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

type SecretCiphertextPtrInput added in v4.11.1

type SecretCiphertextPtrInput interface {
	pulumi.Input

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

type SecretCiphertextPtrOutput added in v4.11.1

type SecretCiphertextPtrOutput struct {
	*pulumi.OutputState
}

func (SecretCiphertextPtrOutput) ElementType added in v4.11.1

func (SecretCiphertextPtrOutput) ElementType() reflect.Type

func (SecretCiphertextPtrOutput) ToSecretCiphertextPtrOutput added in v4.11.1

func (o SecretCiphertextPtrOutput) ToSecretCiphertextPtrOutput() SecretCiphertextPtrOutput

func (SecretCiphertextPtrOutput) ToSecretCiphertextPtrOutputWithContext added in v4.11.1

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