export interface Tag {
    /** The key of the tag. */
    Key: string;
    /** The value of the tag. */
    Value: string;
}
export interface BackupRetentionPolicy {
    /** The type of backup retention policy. For the DAYS type, the value is the number of days to retain backups. */
    Type?: 'DAYS';
    /** Use a value between 7 - 379. */
    Value?: string;
}
export interface CopyBackupToRegionInput {
    /** The ID of the backup that will be copied to the destination region. */
    BackupId: string;
    /** The AWS region that will contain your copied CloudHSM cluster backup. */
    DestinationRegion: string;
    /** Tags to apply to the destination backup during creation. If you specify tags, only these tags will be applied to the destination backup. If you do not specify tags, the service copies tags from the so */
    TagList?: Tag[];
}
export interface CreateClusterInput {
    /** The type of HSM to use in the cluster. The allowed values are hsm1.medium and hsm2m.medium. */
    HsmType: string;
    /** The identifiers (IDs) of the subnets where you are creating the cluster. You must specify at least one subnet. If you specify multiple subnets, they must meet the following criteria: All subnets must  */
    SubnetIds: string[];
    /** A policy that defines how the service retains backups. */
    BackupRetentionPolicy?: BackupRetentionPolicy;
    /** The mode to use in the cluster. The allowed values are FIPS and NON_FIPS. */
    Mode?: 'FIPS' | 'NON_FIPS';
    /** The NetworkType to create a cluster with. The allowed values are IPV4 and DUALSTACK. */
    NetworkType?: 'IPV4' | 'DUALSTACK';
    /** The identifier (ID) or the Amazon Resource Name (ARN) of the cluster backup to restore. Use this value to restore the cluster from a backup instead of creating a new cluster. To find the backup ID or  */
    SourceBackupId?: string;
    /** Tags to apply to the CloudHSM cluster during creation. */
    TagList?: Tag[];
}
export interface CreateHsmInput {
    /** The Availability Zone where you are creating the HSM. To find the cluster's Availability Zones, use DescribeClusters. */
    AvailabilityZone: string;
    /** The identifier (ID) of the HSM's cluster. To find the cluster ID, use DescribeClusters. */
    ClusterId: string;
    /** The HSM's IP address. If you specify an IP address, use an available address from the subnet that maps to the Availability Zone where you are creating the HSM. If you don't specify an IP address, one  */
    IpAddress?: string;
}
export interface DeleteBackupInput {
    /** The ID of the backup to be deleted. To find the ID of a backup, use the DescribeBackups operation. */
    BackupId: string;
}
export interface DeleteClusterInput {
    /** The identifier (ID) of the cluster that you are deleting. To find the cluster ID, use DescribeClusters. */
    ClusterId: string;
}
export interface DeleteHsmInput {
    /** The identifier (ID) of the cluster that contains the HSM that you are deleting. */
    ClusterId: string;
    /** The identifier (ID) of the elastic network interface (ENI) of the HSM that you are deleting. */
    EniId?: string;
    /** The IP address of the elastic network interface (ENI) of the HSM that you are deleting. */
    EniIp?: string;
    /** The identifier (ID) of the HSM that you are deleting. */
    HsmId?: string;
}
export interface DeleteResourcePolicyInput {
    /** Amazon Resource Name (ARN) of the resource from which the policy will be removed. */
    ResourceArn?: string;
}
export interface DescribeBackupsInput {
    /** One or more filters to limit the items returned in the response. Use the backupIds filter to return only the specified backups. Specify backups by their backup identifier (ID). Use the sourceBackupIds */
    Filters?: Record<string, string[]>;
    /** The maximum number of backups to return in the response. When there are more backups than the number you specify, the response contains a NextToken value. */
    MaxResults?: number;
    /** The NextToken value that you received in the previous response. Use this value to get more backups. */
    NextToken?: string;
    /** Describe backups that are shared with you. By default when using this option, the command returns backups that have been shared using a standard Resource Access Manager resource share. In order for a  */
    Shared?: boolean;
    /** Designates whether or not to sort the return backups by ascending chronological order of generation. */
    SortAscending?: boolean;
}
export interface DescribeClustersInput {
    /** One or more filters to limit the items returned in the response. Use the clusterIds filter to return only the specified clusters. Specify clusters by their cluster identifier (ID). Use the vpcIds filt */
    Filters?: Record<string, string[]>;
    /** The maximum number of clusters to return in the response. When there are more clusters than the number you specify, the response contains a NextToken value. */
    MaxResults?: number;
    /** The NextToken value that you received in the previous response. Use this value to get more clusters. */
    NextToken?: string;
}
export interface GetResourcePolicyInput {
    /** Amazon Resource Name (ARN) of the resource to which a policy is attached. */
    ResourceArn?: string;
}
export interface InitializeClusterInput {
    /** The identifier (ID) of the cluster that you are claiming. To find the cluster ID, use DescribeClusters. */
    ClusterId: string;
    /** The cluster certificate issued (signed) by your issuing certificate authority (CA). The certificate must be in PEM format and can contain a maximum of 5000 characters. */
    SignedCert: string;
    /** The issuing certificate of the issuing certificate authority (CA) that issued (signed) the cluster certificate. You must use a self-signed certificate. The certificate used to sign the HSM CSR must be */
    TrustAnchor: string;
}
export interface ListTagsInput {
    /** The cluster identifier (ID) for the cluster whose tags you are getting. To find the cluster ID, use DescribeClusters. */
    ResourceId: string;
    /** The maximum number of tags to return in the response. When there are more tags than the number you specify, the response contains a NextToken value. */
    MaxResults?: number;
    /** The NextToken value that you received in the previous response. Use this value to get more tags. */
    NextToken?: string;
}
export interface ModifyBackupAttributesInput {
    /** The identifier (ID) of the backup to modify. To find the ID of a backup, use the DescribeBackups operation. */
    BackupId: string;
    /** Specifies whether the service should exempt a backup from the retention policy for the cluster. True exempts a backup from the retention policy. False means the service applies the backup retention po */
    NeverExpires: boolean;
}
export interface ModifyClusterInput {
    /** The identifier (ID) of the cluster that you want to modify. To find the cluster ID, use DescribeClusters. */
    ClusterId: string;
    /** A policy that defines how the service retains backups. */
    BackupRetentionPolicy?: BackupRetentionPolicy;
    /** The desired HSM type of the cluster. */
    HsmType?: string;
}
export interface PutResourcePolicyInput {
    /** The policy you want to associate with a resource. For an example policy, see Working with shared backups in the CloudHSM User Guide */
    Policy?: string;
    /** Amazon Resource Name (ARN) of the resource to which you want to attach a policy. */
    ResourceArn?: string;
}
export interface RestoreBackupInput {
    /** The ID of the backup to be restored. To find the ID of a backup, use the DescribeBackups operation. */
    BackupId: string;
}
export interface TagResourceInput {
    /** The cluster identifier (ID) for the cluster that you are tagging. To find the cluster ID, use DescribeClusters. */
    ResourceId: string;
    /** A list of one or more tags. */
    TagList: Tag[];
}
export interface UntagResourceInput {
    /** The cluster identifier (ID) for the cluster whose tags you are removing. To find the cluster ID, use DescribeClusters. */
    ResourceId: string;
    /** A list of one or more tag keys for the tags that you are removing. Specify only the tag keys, not the tag values. */
    TagKeyList: string[];
}
/** CloudHSM V2 service binding for Step Functions SDK integrations. */
export declare class CloudHSMV2 {
    constructor();
    copyBackupToRegion<T>(params: CopyBackupToRegionInput): Promise<T>;
    createCluster<T>(params: CreateClusterInput): Promise<T>;
    createHsm<T>(params: CreateHsmInput): Promise<T>;
    deleteBackup<T>(params: DeleteBackupInput): Promise<T>;
    deleteCluster<T>(params: DeleteClusterInput): Promise<T>;
    deleteHsm<T>(params: DeleteHsmInput): Promise<T>;
    deleteResourcePolicy<T>(params: DeleteResourcePolicyInput): Promise<T>;
    describeBackups<T>(params: DescribeBackupsInput): Promise<T>;
    describeClusters<T>(params: DescribeClustersInput): Promise<T>;
    getResourcePolicy<T>(params: GetResourcePolicyInput): Promise<T>;
    initializeCluster<T>(params: InitializeClusterInput): Promise<T>;
    listTags<T>(params: ListTagsInput): Promise<T>;
    modifyBackupAttributes<T>(params: ModifyBackupAttributesInput): Promise<T>;
    modifyCluster<T>(params: ModifyClusterInput): Promise<T>;
    putResourcePolicy<T>(params: PutResourcePolicyInput): Promise<T>;
    restoreBackup<T>(params: RestoreBackupInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=CloudHSMV2.d.ts.map