import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ReplicaKeyAttributes = {
    KeyId: Attribute<string>;
    Arn: Attribute<string>;
};
export type ReplicaKey = AwsResource<'AWS::KMS::ReplicaKey', ReplicaKeyProperties, ReplicaKeyAttributes>;
/**
  The <code>AWS::KMS::ReplicaKey</code> resource specifies a multi-Region replica key that is based on a multi-Region primary key.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html">the AWS Docs</a>
*/
export declare function replicaKey(replicaKeyProps: ReplicaKeyProperties): ReplicaKey;
/**
  The <code>AWS::KMS::ReplicaKey</code> resource specifies a multi-Region replica key that is based on a multi-Region primary key.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html">the AWS Docs</a>
*/
export interface ReplicaKeyProperties {
    /** <code>Description</code>  <a name="cfn-kms-replicakey-description"></a>
  A description of the KMS key.<br />
  The default value is an empty string (no description).<br />
  The description is not a shared property of multi-Region keys. You can specify the same description or a different description for each key in a set of related multi-Region keys. AWS Key Management Service does not synchronize this property.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>8192</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>PendingWindowInDays</code>  <a name="cfn-kms-replicakey-pendingwindowindays"></a>
  Specifies the number of days in the waiting period before AWS KMS deletes a replica key that has been removed from a CloudFormation stack. Enter a value between 7 and 30 days. The default value is 30 days.<br />
  When you remove a replica key from a CloudFormation stack, AWS KMS schedules the replica key for deletion and starts the mandatory waiting period. The <code>PendingWindowInDays</code> property determines the length of waiting period. During the waiting period, the key state of replica key is <code>Pending Deletion</code>, which prevents it from being used in cryptographic operations. When the waiting period expires, AWS KMS permanently deletes the replica key.<br />
  If the KMS key is a multi-Region primary key with replica keys, the waiting period begins when the last of its replica keys is deleted. Otherwise, the waiting period begins immediately.<br />
  You cannot use a CloudFormation template to cancel deletion of the replica after you remove it from the stack, regardless of the waiting period. However, if you specify a replica key in your template that is based on the same primary key as the original replica key, CloudFormation creates a new replica key with the same key ID, key material, and other shared properties of the original replica key. This new replica key can decrypt ciphertext that was encrypted under the original replica key, or any related multi-Region key.<br />
  For detailed information about deleting multi-Region keys, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html">Deleting multi-Region keys</a> in the
  AWS Key Management Service Developer Guide: br />
  
  AWS Key Management Service API Reference: nd <a href="https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html">Deleting KMS keys</a> in the
  Minimum: 7<br />
  
  Maximum: 30<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    pendingWindowInDays?: Value<number>;
    /** <p> */
    keyPolicy: Value<any>;
    /** <code>PrimaryKeyArn</code>  <a name="cfn-kms-replicakey-primarykeyarn"></a>
  Specifies 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 .<br />
  If you change the <code>PrimaryKeyArn</code> value of a replica key, the existing replica key is scheduled for deletion and a new replica key is created based on the specified primary key. While it is scheduled for deletion, the existing replica key becomes unusable. You can cancel the scheduled deletion of the key outside of CloudFormation.<br />
  However, if you inadvertently delete a replica key, you can decrypt ciphertext encrypted by that replica key by using any related multi-Region key. If necessary, you can recreate the replica in the same Region after the previous one is completely deleted. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html">Deleting multi-Region keys</a> in the
  AWS Key Management Service Developer Guide: pecify the key ARN of an existing multi-Region primary key. For example, <code>arn:aws:kms:us-east-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab</code>.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>2048</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    primaryKeyArn: Value<string>;
    /** <code>Enabled</code>  <a name="cfn-kms-replicakey-enabled"></a>
  Specifies whether the replica key is enabled. Disabled KMS keys cannot be used in cryptographic operations.<br />
  When <code>Enabled</code> is <code>true</code>, the
  key state: f the KMS key is <code>Enabled</code>. When <code>Enabled</code> is <code>false</code>, the key state of the KMS key is <code>Disabled</code>. The default value is <code>true</code>.<br />
  The actual key state of the replica might be affected by actions taken outside of CloudFormation, such as running the <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html">EnableKey</a>, <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html">DisableKey</a>, or <a href="https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html">ScheduleKeyDeletion</a> operations. Also, while the replica key is being created, its key state is <code>Creating</code>. When the process is complete, the key state of the replica key changes to <code>Enabled</code>.<br />
  For information about the key states of a KMS key, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your KMS key</a> in the
  AWS Key Management Service Developer Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    enabled?: Value<boolean>;
    /** <code>Tags</code>  <a name="cfn-kms-replicakey-tags"></a>
  Assigns one or more tags to the replica key.<br />
  Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/abac.html">ABAC for AWS KMS</a> in the
  AWS Key Management Service Developer Guide: Tags are not a shared property of multi-Region keys. You can specify the same tags or different tags for each key in a set of related multi-Region keys. AWS KMS does not synchronize this property.<br />
  Each tag consists of a tag key and a tag value. Both the tag key and the tag value are required, but the tag value can be an empty (null) string. You cannot have more than one tag on a KMS key with the same tag key. If you specify an existing tag key with a different tag value, AWS KMS replaces the current tag value with the specified one.<br />
  When you assign tags to an AWSresource, AWSgenerates a cost allocation report with usage and costs aggregated by tags. Tags can also be used to control access to a KMS key. For details, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html">Tagging keys</a>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
}
