github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/kms/replicaKey.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package kms
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Manages a KMS multi-Region replica key.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			primary, err := kms.NewKey(ctx, "primary", &kms.KeyArgs{
    33  //				Description:          pulumi.String("Multi-Region primary key"),
    34  //				DeletionWindowInDays: pulumi.Int(30),
    35  //				MultiRegion:          pulumi.Bool(true),
    36  //			})
    37  //			if err != nil {
    38  //				return err
    39  //			}
    40  //			_, err = kms.NewReplicaKey(ctx, "replica", &kms.ReplicaKeyArgs{
    41  //				Description:          pulumi.String("Multi-Region replica key"),
    42  //				DeletionWindowInDays: pulumi.Int(7),
    43  //				PrimaryKeyArn:        primary.Arn,
    44  //			})
    45  //			if err != nil {
    46  //				return err
    47  //			}
    48  //			return nil
    49  //		})
    50  //	}
    51  //
    52  // ```
    53  // <!--End PulumiCodeChooser -->
    54  //
    55  // ## Import
    56  //
    57  // Using `pulumi import`, import KMS multi-Region replica keys using the `id`. For example:
    58  //
    59  // ```sh
    60  // $ pulumi import aws:kms/replicaKey:ReplicaKey example 1234abcd-12ab-34cd-56ef-1234567890ab
    61  // ```
    62  type ReplicaKey struct {
    63  	pulumi.CustomResourceState
    64  
    65  	// The Amazon Resource Name (ARN) of the replica key. The key ARNs of related multi-Region keys differ only in the Region value.
    66  	Arn pulumi.StringOutput `pulumi:"arn"`
    67  	// A flag to indicate whether to bypass the key policy lockout safety check.
    68  	// Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.
    69  	// For more information, refer to the scenario in the [Default Key Policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section in the _AWS Key Management Service Developer Guide_.
    70  	// The default value is `false`.
    71  	BypassPolicyLockoutSafetyCheck pulumi.BoolPtrOutput `pulumi:"bypassPolicyLockoutSafetyCheck"`
    72  	// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key.
    73  	// If you specify a value, it must be between `7` and `30`, inclusive. If you do not specify a value, it defaults to `30`.
    74  	DeletionWindowInDays pulumi.IntPtrOutput `pulumi:"deletionWindowInDays"`
    75  	// A description of the KMS key.
    76  	Description pulumi.StringPtrOutput `pulumi:"description"`
    77  	// Specifies whether the replica key is enabled. Disabled KMS keys cannot be used in cryptographic operations. The default value is `true`.
    78  	Enabled pulumi.BoolPtrOutput `pulumi:"enabled"`
    79  	// The key ID of the replica key. Related multi-Region keys have the same key ID.
    80  	KeyId pulumi.StringOutput `pulumi:"keyId"`
    81  	// A Boolean value that specifies whether key rotation is enabled. This is a shared property of multi-Region keys.
    82  	KeyRotationEnabled pulumi.BoolOutput `pulumi:"keyRotationEnabled"`
    83  	// The type of key material in the KMS key. This is a shared property of multi-Region keys.
    84  	KeySpec pulumi.StringOutput `pulumi:"keySpec"`
    85  	// The [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. This is a shared property of multi-Region keys.
    86  	KeyUsage pulumi.StringOutput `pulumi:"keyUsage"`
    87  	// The key policy to attach to the KMS key. If you do not specify a key policy, AWS KMS attaches the [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) to the KMS key.
    88  	Policy pulumi.StringOutput `pulumi:"policy"`
    89  	// The ARN of the multi-Region primary key to replicate. The primary key must be in a different AWS Region of the same AWS Partition. You can create only one replica of a given primary key in each AWS Region.
    90  	PrimaryKeyArn pulumi.StringOutput `pulumi:"primaryKeyArn"`
    91  	// A map of tags to assign to the replica key. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    92  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    93  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    94  	//
    95  	// Deprecated: Please use `tags` instead.
    96  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    97  }
    98  
    99  // NewReplicaKey registers a new resource with the given unique name, arguments, and options.
   100  func NewReplicaKey(ctx *pulumi.Context,
   101  	name string, args *ReplicaKeyArgs, opts ...pulumi.ResourceOption) (*ReplicaKey, error) {
   102  	if args == nil {
   103  		return nil, errors.New("missing one or more required arguments")
   104  	}
   105  
   106  	if args.PrimaryKeyArn == nil {
   107  		return nil, errors.New("invalid value for required argument 'PrimaryKeyArn'")
   108  	}
   109  	opts = internal.PkgResourceDefaultOpts(opts)
   110  	var resource ReplicaKey
   111  	err := ctx.RegisterResource("aws:kms/replicaKey:ReplicaKey", name, args, &resource, opts...)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &resource, nil
   116  }
   117  
   118  // GetReplicaKey gets an existing ReplicaKey resource's state with the given name, ID, and optional
   119  // state properties that are used to uniquely qualify the lookup (nil if not required).
   120  func GetReplicaKey(ctx *pulumi.Context,
   121  	name string, id pulumi.IDInput, state *ReplicaKeyState, opts ...pulumi.ResourceOption) (*ReplicaKey, error) {
   122  	var resource ReplicaKey
   123  	err := ctx.ReadResource("aws:kms/replicaKey:ReplicaKey", name, id, state, &resource, opts...)
   124  	if err != nil {
   125  		return nil, err
   126  	}
   127  	return &resource, nil
   128  }
   129  
   130  // Input properties used for looking up and filtering ReplicaKey resources.
   131  type replicaKeyState struct {
   132  	// The Amazon Resource Name (ARN) of the replica key. The key ARNs of related multi-Region keys differ only in the Region value.
   133  	Arn *string `pulumi:"arn"`
   134  	// A flag to indicate whether to bypass the key policy lockout safety check.
   135  	// Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.
   136  	// For more information, refer to the scenario in the [Default Key Policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section in the _AWS Key Management Service Developer Guide_.
   137  	// The default value is `false`.
   138  	BypassPolicyLockoutSafetyCheck *bool `pulumi:"bypassPolicyLockoutSafetyCheck"`
   139  	// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key.
   140  	// If you specify a value, it must be between `7` and `30`, inclusive. If you do not specify a value, it defaults to `30`.
   141  	DeletionWindowInDays *int `pulumi:"deletionWindowInDays"`
   142  	// A description of the KMS key.
   143  	Description *string `pulumi:"description"`
   144  	// Specifies whether the replica key is enabled. Disabled KMS keys cannot be used in cryptographic operations. The default value is `true`.
   145  	Enabled *bool `pulumi:"enabled"`
   146  	// The key ID of the replica key. Related multi-Region keys have the same key ID.
   147  	KeyId *string `pulumi:"keyId"`
   148  	// A Boolean value that specifies whether key rotation is enabled. This is a shared property of multi-Region keys.
   149  	KeyRotationEnabled *bool `pulumi:"keyRotationEnabled"`
   150  	// The type of key material in the KMS key. This is a shared property of multi-Region keys.
   151  	KeySpec *string `pulumi:"keySpec"`
   152  	// The [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. This is a shared property of multi-Region keys.
   153  	KeyUsage *string `pulumi:"keyUsage"`
   154  	// The key policy to attach to the KMS key. If you do not specify a key policy, AWS KMS attaches the [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) to the KMS key.
   155  	Policy *string `pulumi:"policy"`
   156  	// The ARN of the multi-Region primary key to replicate. The primary key must be in a different AWS Region of the same AWS Partition. You can create only one replica of a given primary key in each AWS Region.
   157  	PrimaryKeyArn *string `pulumi:"primaryKeyArn"`
   158  	// A map of tags to assign to the replica key. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   159  	Tags map[string]string `pulumi:"tags"`
   160  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   161  	//
   162  	// Deprecated: Please use `tags` instead.
   163  	TagsAll map[string]string `pulumi:"tagsAll"`
   164  }
   165  
   166  type ReplicaKeyState struct {
   167  	// The Amazon Resource Name (ARN) of the replica key. The key ARNs of related multi-Region keys differ only in the Region value.
   168  	Arn pulumi.StringPtrInput
   169  	// A flag to indicate whether to bypass the key policy lockout safety check.
   170  	// Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.
   171  	// For more information, refer to the scenario in the [Default Key Policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section in the _AWS Key Management Service Developer Guide_.
   172  	// The default value is `false`.
   173  	BypassPolicyLockoutSafetyCheck pulumi.BoolPtrInput
   174  	// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key.
   175  	// If you specify a value, it must be between `7` and `30`, inclusive. If you do not specify a value, it defaults to `30`.
   176  	DeletionWindowInDays pulumi.IntPtrInput
   177  	// A description of the KMS key.
   178  	Description pulumi.StringPtrInput
   179  	// Specifies whether the replica key is enabled. Disabled KMS keys cannot be used in cryptographic operations. The default value is `true`.
   180  	Enabled pulumi.BoolPtrInput
   181  	// The key ID of the replica key. Related multi-Region keys have the same key ID.
   182  	KeyId pulumi.StringPtrInput
   183  	// A Boolean value that specifies whether key rotation is enabled. This is a shared property of multi-Region keys.
   184  	KeyRotationEnabled pulumi.BoolPtrInput
   185  	// The type of key material in the KMS key. This is a shared property of multi-Region keys.
   186  	KeySpec pulumi.StringPtrInput
   187  	// The [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. This is a shared property of multi-Region keys.
   188  	KeyUsage pulumi.StringPtrInput
   189  	// The key policy to attach to the KMS key. If you do not specify a key policy, AWS KMS attaches the [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) to the KMS key.
   190  	Policy pulumi.StringPtrInput
   191  	// The ARN of the multi-Region primary key to replicate. The primary key must be in a different AWS Region of the same AWS Partition. You can create only one replica of a given primary key in each AWS Region.
   192  	PrimaryKeyArn pulumi.StringPtrInput
   193  	// A map of tags to assign to the replica key. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   194  	Tags pulumi.StringMapInput
   195  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   196  	//
   197  	// Deprecated: Please use `tags` instead.
   198  	TagsAll pulumi.StringMapInput
   199  }
   200  
   201  func (ReplicaKeyState) ElementType() reflect.Type {
   202  	return reflect.TypeOf((*replicaKeyState)(nil)).Elem()
   203  }
   204  
   205  type replicaKeyArgs struct {
   206  	// A flag to indicate whether to bypass the key policy lockout safety check.
   207  	// Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.
   208  	// For more information, refer to the scenario in the [Default Key Policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section in the _AWS Key Management Service Developer Guide_.
   209  	// The default value is `false`.
   210  	BypassPolicyLockoutSafetyCheck *bool `pulumi:"bypassPolicyLockoutSafetyCheck"`
   211  	// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key.
   212  	// If you specify a value, it must be between `7` and `30`, inclusive. If you do not specify a value, it defaults to `30`.
   213  	DeletionWindowInDays *int `pulumi:"deletionWindowInDays"`
   214  	// A description of the KMS key.
   215  	Description *string `pulumi:"description"`
   216  	// Specifies whether the replica key is enabled. Disabled KMS keys cannot be used in cryptographic operations. The default value is `true`.
   217  	Enabled *bool `pulumi:"enabled"`
   218  	// The key policy to attach to the KMS key. If you do not specify a key policy, AWS KMS attaches the [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) to the KMS key.
   219  	Policy *string `pulumi:"policy"`
   220  	// The ARN of the multi-Region primary key to replicate. The primary key must be in a different AWS Region of the same AWS Partition. You can create only one replica of a given primary key in each AWS Region.
   221  	PrimaryKeyArn string `pulumi:"primaryKeyArn"`
   222  	// A map of tags to assign to the replica key. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   223  	Tags map[string]string `pulumi:"tags"`
   224  }
   225  
   226  // The set of arguments for constructing a ReplicaKey resource.
   227  type ReplicaKeyArgs struct {
   228  	// A flag to indicate whether to bypass the key policy lockout safety check.
   229  	// Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.
   230  	// For more information, refer to the scenario in the [Default Key Policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section in the _AWS Key Management Service Developer Guide_.
   231  	// The default value is `false`.
   232  	BypassPolicyLockoutSafetyCheck pulumi.BoolPtrInput
   233  	// The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key.
   234  	// If you specify a value, it must be between `7` and `30`, inclusive. If you do not specify a value, it defaults to `30`.
   235  	DeletionWindowInDays pulumi.IntPtrInput
   236  	// A description of the KMS key.
   237  	Description pulumi.StringPtrInput
   238  	// Specifies whether the replica key is enabled. Disabled KMS keys cannot be used in cryptographic operations. The default value is `true`.
   239  	Enabled pulumi.BoolPtrInput
   240  	// The key policy to attach to the KMS key. If you do not specify a key policy, AWS KMS attaches the [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) to the KMS key.
   241  	Policy pulumi.StringPtrInput
   242  	// The ARN of the multi-Region primary key to replicate. The primary key must be in a different AWS Region of the same AWS Partition. You can create only one replica of a given primary key in each AWS Region.
   243  	PrimaryKeyArn pulumi.StringInput
   244  	// A map of tags to assign to the replica key. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   245  	Tags pulumi.StringMapInput
   246  }
   247  
   248  func (ReplicaKeyArgs) ElementType() reflect.Type {
   249  	return reflect.TypeOf((*replicaKeyArgs)(nil)).Elem()
   250  }
   251  
   252  type ReplicaKeyInput interface {
   253  	pulumi.Input
   254  
   255  	ToReplicaKeyOutput() ReplicaKeyOutput
   256  	ToReplicaKeyOutputWithContext(ctx context.Context) ReplicaKeyOutput
   257  }
   258  
   259  func (*ReplicaKey) ElementType() reflect.Type {
   260  	return reflect.TypeOf((**ReplicaKey)(nil)).Elem()
   261  }
   262  
   263  func (i *ReplicaKey) ToReplicaKeyOutput() ReplicaKeyOutput {
   264  	return i.ToReplicaKeyOutputWithContext(context.Background())
   265  }
   266  
   267  func (i *ReplicaKey) ToReplicaKeyOutputWithContext(ctx context.Context) ReplicaKeyOutput {
   268  	return pulumi.ToOutputWithContext(ctx, i).(ReplicaKeyOutput)
   269  }
   270  
   271  // ReplicaKeyArrayInput is an input type that accepts ReplicaKeyArray and ReplicaKeyArrayOutput values.
   272  // You can construct a concrete instance of `ReplicaKeyArrayInput` via:
   273  //
   274  //	ReplicaKeyArray{ ReplicaKeyArgs{...} }
   275  type ReplicaKeyArrayInput interface {
   276  	pulumi.Input
   277  
   278  	ToReplicaKeyArrayOutput() ReplicaKeyArrayOutput
   279  	ToReplicaKeyArrayOutputWithContext(context.Context) ReplicaKeyArrayOutput
   280  }
   281  
   282  type ReplicaKeyArray []ReplicaKeyInput
   283  
   284  func (ReplicaKeyArray) ElementType() reflect.Type {
   285  	return reflect.TypeOf((*[]*ReplicaKey)(nil)).Elem()
   286  }
   287  
   288  func (i ReplicaKeyArray) ToReplicaKeyArrayOutput() ReplicaKeyArrayOutput {
   289  	return i.ToReplicaKeyArrayOutputWithContext(context.Background())
   290  }
   291  
   292  func (i ReplicaKeyArray) ToReplicaKeyArrayOutputWithContext(ctx context.Context) ReplicaKeyArrayOutput {
   293  	return pulumi.ToOutputWithContext(ctx, i).(ReplicaKeyArrayOutput)
   294  }
   295  
   296  // ReplicaKeyMapInput is an input type that accepts ReplicaKeyMap and ReplicaKeyMapOutput values.
   297  // You can construct a concrete instance of `ReplicaKeyMapInput` via:
   298  //
   299  //	ReplicaKeyMap{ "key": ReplicaKeyArgs{...} }
   300  type ReplicaKeyMapInput interface {
   301  	pulumi.Input
   302  
   303  	ToReplicaKeyMapOutput() ReplicaKeyMapOutput
   304  	ToReplicaKeyMapOutputWithContext(context.Context) ReplicaKeyMapOutput
   305  }
   306  
   307  type ReplicaKeyMap map[string]ReplicaKeyInput
   308  
   309  func (ReplicaKeyMap) ElementType() reflect.Type {
   310  	return reflect.TypeOf((*map[string]*ReplicaKey)(nil)).Elem()
   311  }
   312  
   313  func (i ReplicaKeyMap) ToReplicaKeyMapOutput() ReplicaKeyMapOutput {
   314  	return i.ToReplicaKeyMapOutputWithContext(context.Background())
   315  }
   316  
   317  func (i ReplicaKeyMap) ToReplicaKeyMapOutputWithContext(ctx context.Context) ReplicaKeyMapOutput {
   318  	return pulumi.ToOutputWithContext(ctx, i).(ReplicaKeyMapOutput)
   319  }
   320  
   321  type ReplicaKeyOutput struct{ *pulumi.OutputState }
   322  
   323  func (ReplicaKeyOutput) ElementType() reflect.Type {
   324  	return reflect.TypeOf((**ReplicaKey)(nil)).Elem()
   325  }
   326  
   327  func (o ReplicaKeyOutput) ToReplicaKeyOutput() ReplicaKeyOutput {
   328  	return o
   329  }
   330  
   331  func (o ReplicaKeyOutput) ToReplicaKeyOutputWithContext(ctx context.Context) ReplicaKeyOutput {
   332  	return o
   333  }
   334  
   335  // The Amazon Resource Name (ARN) of the replica key. The key ARNs of related multi-Region keys differ only in the Region value.
   336  func (o ReplicaKeyOutput) Arn() pulumi.StringOutput {
   337  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   338  }
   339  
   340  // A flag to indicate whether to bypass the key policy lockout safety check.
   341  // Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately.
   342  // For more information, refer to the scenario in the [Default Key Policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) section in the _AWS Key Management Service Developer Guide_.
   343  // The default value is `false`.
   344  func (o ReplicaKeyOutput) BypassPolicyLockoutSafetyCheck() pulumi.BoolPtrOutput {
   345  	return o.ApplyT(func(v *ReplicaKey) pulumi.BoolPtrOutput { return v.BypassPolicyLockoutSafetyCheck }).(pulumi.BoolPtrOutput)
   346  }
   347  
   348  // The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the KMS key.
   349  // If you specify a value, it must be between `7` and `30`, inclusive. If you do not specify a value, it defaults to `30`.
   350  func (o ReplicaKeyOutput) DeletionWindowInDays() pulumi.IntPtrOutput {
   351  	return o.ApplyT(func(v *ReplicaKey) pulumi.IntPtrOutput { return v.DeletionWindowInDays }).(pulumi.IntPtrOutput)
   352  }
   353  
   354  // A description of the KMS key.
   355  func (o ReplicaKeyOutput) Description() pulumi.StringPtrOutput {
   356  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   357  }
   358  
   359  // Specifies whether the replica key is enabled. Disabled KMS keys cannot be used in cryptographic operations. The default value is `true`.
   360  func (o ReplicaKeyOutput) Enabled() pulumi.BoolPtrOutput {
   361  	return o.ApplyT(func(v *ReplicaKey) pulumi.BoolPtrOutput { return v.Enabled }).(pulumi.BoolPtrOutput)
   362  }
   363  
   364  // The key ID of the replica key. Related multi-Region keys have the same key ID.
   365  func (o ReplicaKeyOutput) KeyId() pulumi.StringOutput {
   366  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringOutput { return v.KeyId }).(pulumi.StringOutput)
   367  }
   368  
   369  // A Boolean value that specifies whether key rotation is enabled. This is a shared property of multi-Region keys.
   370  func (o ReplicaKeyOutput) KeyRotationEnabled() pulumi.BoolOutput {
   371  	return o.ApplyT(func(v *ReplicaKey) pulumi.BoolOutput { return v.KeyRotationEnabled }).(pulumi.BoolOutput)
   372  }
   373  
   374  // The type of key material in the KMS key. This is a shared property of multi-Region keys.
   375  func (o ReplicaKeyOutput) KeySpec() pulumi.StringOutput {
   376  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringOutput { return v.KeySpec }).(pulumi.StringOutput)
   377  }
   378  
   379  // The [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. This is a shared property of multi-Region keys.
   380  func (o ReplicaKeyOutput) KeyUsage() pulumi.StringOutput {
   381  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringOutput { return v.KeyUsage }).(pulumi.StringOutput)
   382  }
   383  
   384  // The key policy to attach to the KMS key. If you do not specify a key policy, AWS KMS attaches the [default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default) to the KMS key.
   385  func (o ReplicaKeyOutput) Policy() pulumi.StringOutput {
   386  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput)
   387  }
   388  
   389  // The ARN of the multi-Region primary key to replicate. The primary key must be in a different AWS Region of the same AWS Partition. You can create only one replica of a given primary key in each AWS Region.
   390  func (o ReplicaKeyOutput) PrimaryKeyArn() pulumi.StringOutput {
   391  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringOutput { return v.PrimaryKeyArn }).(pulumi.StringOutput)
   392  }
   393  
   394  // A map of tags to assign to the replica key. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   395  func (o ReplicaKeyOutput) Tags() pulumi.StringMapOutput {
   396  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   397  }
   398  
   399  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   400  //
   401  // Deprecated: Please use `tags` instead.
   402  func (o ReplicaKeyOutput) TagsAll() pulumi.StringMapOutput {
   403  	return o.ApplyT(func(v *ReplicaKey) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   404  }
   405  
   406  type ReplicaKeyArrayOutput struct{ *pulumi.OutputState }
   407  
   408  func (ReplicaKeyArrayOutput) ElementType() reflect.Type {
   409  	return reflect.TypeOf((*[]*ReplicaKey)(nil)).Elem()
   410  }
   411  
   412  func (o ReplicaKeyArrayOutput) ToReplicaKeyArrayOutput() ReplicaKeyArrayOutput {
   413  	return o
   414  }
   415  
   416  func (o ReplicaKeyArrayOutput) ToReplicaKeyArrayOutputWithContext(ctx context.Context) ReplicaKeyArrayOutput {
   417  	return o
   418  }
   419  
   420  func (o ReplicaKeyArrayOutput) Index(i pulumi.IntInput) ReplicaKeyOutput {
   421  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ReplicaKey {
   422  		return vs[0].([]*ReplicaKey)[vs[1].(int)]
   423  	}).(ReplicaKeyOutput)
   424  }
   425  
   426  type ReplicaKeyMapOutput struct{ *pulumi.OutputState }
   427  
   428  func (ReplicaKeyMapOutput) ElementType() reflect.Type {
   429  	return reflect.TypeOf((*map[string]*ReplicaKey)(nil)).Elem()
   430  }
   431  
   432  func (o ReplicaKeyMapOutput) ToReplicaKeyMapOutput() ReplicaKeyMapOutput {
   433  	return o
   434  }
   435  
   436  func (o ReplicaKeyMapOutput) ToReplicaKeyMapOutputWithContext(ctx context.Context) ReplicaKeyMapOutput {
   437  	return o
   438  }
   439  
   440  func (o ReplicaKeyMapOutput) MapIndex(k pulumi.StringInput) ReplicaKeyOutput {
   441  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ReplicaKey {
   442  		return vs[0].(map[string]*ReplicaKey)[vs[1].(string)]
   443  	}).(ReplicaKeyOutput)
   444  }
   445  
   446  func init() {
   447  	pulumi.RegisterInputType(reflect.TypeOf((*ReplicaKeyInput)(nil)).Elem(), &ReplicaKey{})
   448  	pulumi.RegisterInputType(reflect.TypeOf((*ReplicaKeyArrayInput)(nil)).Elem(), ReplicaKeyArray{})
   449  	pulumi.RegisterInputType(reflect.TypeOf((*ReplicaKeyMapInput)(nil)).Elem(), ReplicaKeyMap{})
   450  	pulumi.RegisterOutputType(ReplicaKeyOutput{})
   451  	pulumi.RegisterOutputType(ReplicaKeyArrayOutput{})
   452  	pulumi.RegisterOutputType(ReplicaKeyMapOutput{})
   453  }