import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement } from '../shared' ; param sid export class Cloudhsm extends PolicyStatement { public servicePrefix = 'cloudhsm' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Adds or overwrites one or more tags for the specified AWS CloudHSM resource
     *
     * Access Level: Tagging
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_AddTagsToResource.html
     */ public toAddTagsToResource ( ) { return this . to ( 'AddTagsToResource' ) ; } /**
     * Creates a copy of a backup in the specified region
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CopyBackupToRegion.html
     */ public toCopyBackupToRegion ( ) { return this . to ( 'CopyBackupToRegion' ) ; } /**
     * Creates a new AWS CloudHSM cluster
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateCluster.html
     */ public toCreateCluster ( ) { return this . to ( 'CreateCluster' ) ; } /**
     * Creates a high-availability partition group
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_CreateHapg.html
     */ public toCreateHapg ( ) { return this . to ( 'CreateHapg' ) ; } /**
     * Creates a new hardware security module (HSM) in the specified AWS CloudHSM cluster
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html
     */ public toCreateHsm ( ) { return this . to ( 'CreateHsm' ) ; } /**
     * Creates an HSM client
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_CreateLunaClient.html
     */ public toCreateLunaClient ( ) { return this . to ( 'CreateLunaClient' ) ; } /**
     * Deletes the specified CloudHSM backup
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DeleteBackup.html
     */ public toDeleteBackup ( ) { return this . to ( 'DeleteBackup' ) ; } /**
     * Deletes the specified AWS CloudHSM cluster
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DeleteCluster.html
     */ public toDeleteCluster ( ) { return this . to ( 'DeleteCluster' ) ; } /**
     * Deletes a high-availability partition group
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_DeleteHapg.html
     */ public toDeleteHapg ( ) { return this . to ( 'DeleteHapg' ) ; } /**
     * Deletes the specified HSM
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DeleteHsm.html
     */ public toDeleteHsm ( ) { return this . to ( 'DeleteHsm' ) ; } /**
     * Deletes a client
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_DeleteLunaClient.html
     */ public toDeleteLunaClient ( ) { return this . to ( 'DeleteLunaClient' ) ; } /**
     * Gets information about backups of AWS CloudHSM clusters
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeBackups.html
     */ public toDescribeBackups ( ) { return this . to ( 'DescribeBackups' ) ; } /**
     * Gets information about AWS CloudHSM clusters
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html
     */ public toDescribeClusters ( ) { return this . to ( 'DescribeClusters' ) ; } /**
     * Retrieves information about a high-availability partition group
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_DescribeHapg.html
     */ public toDescribeHapg ( ) { return this . to ( 'DescribeHapg' ) ; } /**
     * Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_DescribeHsm.html
     */ public toDescribeHsm ( ) { return this . to ( 'DescribeHsm' ) ; } /**
     * Retrieves information about an HSM client
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_DescribeLunaClient.html
     */ public toDescribeLunaClient ( ) { return this . to ( 'DescribeLunaClient' ) ; } /**
     * Gets the configuration files necessary to connect to all high availability partition groups the client is associated with
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_GetConfig.html
     */ public toGetConfig ( ) { return this . to ( 'GetConfig' ) ; } /**
     * Claims an AWS CloudHSM cluster
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_InitializeCluster.html
     */ public toInitializeCluster ( ) { return this . to ( 'InitializeCluster' ) ; } /**
     * Lists the Availability Zones that have available AWS CloudHSM capacity
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_ListAvailableZones.html
     */ public toListAvailableZones ( ) { return this . to ( 'ListAvailableZones' ) ; } /**
     * Lists the high-availability partition groups for the account
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_ListHapgs.html
     */ public toListHapgs ( ) { return this . to ( 'ListHapgs' ) ; } /**
     * Retrieves the identifiers of all of the HSMs provisioned for the current customer
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_ListHsms.html
     */ public toListHsms ( ) { return this . to ( 'ListHsms' ) ; } /**
     * Lists all of the clients
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_ListLunaClients.html
     */ public toListLunaClients ( ) { return this . to ( 'ListLunaClients' ) ; } /**
     * Gets a list of tags for the specified AWS CloudHSM cluster
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_ListTags.html
     */ public toListTags ( ) { return this . to ( 'ListTags' ) ; } /**
     * Returns a list of all tags for the specified AWS CloudHSM resource
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_ListTagsForResource.html
     */ public toListTagsForResource ( ) { return this . to ( 'ListTagsForResource' ) ; } /**
     * Modifies attributes for AWS CloudHSM backup
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_ModifyBackupAttributes.html
     */ public toModifyBackupAttributes ( ) { return this . to ( 'ModifyBackupAttributes' ) ; } /**
     * Modifies AWS CloudHSM cluster.
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_ModifyCluster.html
     */ public toModifyCluster ( ) { return this . to ( 'ModifyCluster' ) ; } /**
     * Modifies an existing high-availability partition group
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_ModifyHapg.html
     */ public toModifyHapg ( ) { return this . to ( 'ModifyHapg' ) ; } /**
     * Modifies an HSM
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_ModifyHsm.html
     */ public toModifyHsm ( ) { return this . to ( 'ModifyHsm' ) ; } /**
     * Modifies the certificate used by the client
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_ModifyLunaClient.html
     */ public toModifyLunaClient ( ) { return this . to ( 'ModifyLunaClient' ) ; } /**
     * Removes one or more tags from the specified AWS CloudHSM resource
     *
     * Access Level: Tagging
     *
     * https://docs.aws.amazon.com/cloudhsm/classic/APIReference/API_RemoveTagsFromResource.html
     */ public toRemoveTagsFromResource ( ) { return this . to ( 'RemoveTagsFromResource' ) ; } /**
     * Restores the specified CloudHSM backup
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_RestoreBackup.html
     */ public toRestoreBackup ( ) { return this . to ( 'RestoreBackup' ) ; } /**
     * Adds or overwrites one or more tags for the specified AWS CloudHSM cluster
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_TagResource.html
     */ public toTagResource ( ) { return this . to ( 'TagResource' ) ; } /**
     * Removes the specified tag or tags from the specified AWS CloudHSM cluster
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_UntagResource.html
     */ public toUntagResource ( ) { return this . to ( 'UntagResource' ) ; } protected accessLevelList : AccessLevelList = { Tagging : [ 'AddTagsToResource' , 'RemoveTagsFromResource' , 'TagResource' , 'UntagResource' ] , Write : [ 'CopyBackupToRegion' , 'CreateCluster' , 'CreateHapg' , 'CreateHsm' , 'CreateLunaClient' , 'DeleteBackup' , 'DeleteCluster' , 'DeleteHapg' , 'DeleteHsm' , 'DeleteLunaClient' , 'InitializeCluster' , 'ModifyBackupAttributes' , 'ModifyCluster' , 'ModifyHapg' , 'ModifyHsm' , 'ModifyLunaClient' , 'RestoreBackup' ] , Read : [ 'DescribeBackups' , 'DescribeClusters' , 'DescribeHapg' , 'DescribeHsm' , 'DescribeLunaClient' , 'GetConfig' , 'ListTags' , 'ListTagsForResource' ] , List : [ 'ListAvailableZones' , 'ListHapgs' , 'ListHsms' , 'ListLunaClients' ] } ; param cloudHsmBackupInstanceName param account param region param partition public onBackup ( cloudHsmBackupInstanceName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:cloudhsm:${ region || '*' }:${ account || '*' }:backup/${ cloudHsmBackupInstanceName }` ) ; } param cloudHsmClusterInstanceName param account param region param partition public onCluster ( cloudHsmClusterInstanceName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:cloudhsm:${ region || '*' }:${ account || '*' }:cluster/${ cloudHsmClusterInstanceName }` ) ; } }