import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement } from '../shared' ; param sid export class Dlm extends PolicyStatement { public servicePrefix = 'dlm' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Create a data lifecycle policy to manage the scheduled creation and retention of Amazon EBS snapshots. You may have up to 100 policies.
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/dlm/latest/APIReference/API_CreateLifecyclePolicy.html
     */ public toCreateLifecyclePolicy ( ) { return this . to ( 'CreateLifecyclePolicy' ) ; } /**
     * Delete an existing data lifecycle policy. In addition, this action halts the creation and deletion of snapshots that the policy specified. Existing snapshots are not affected.
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/dlm/latest/APIReference/API_DeleteLifecyclePolicy.html
     */ public toDeleteLifecyclePolicy ( ) { return this . to ( 'DeleteLifecyclePolicy' ) ; } /**
     * Returns a list of summary descriptions of data lifecycle policies.
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/dlm/latest/APIReference/API_GetLifecyclePolicies.html
     */ public toGetLifecyclePolicies ( ) { return this . to ( 'GetLifecyclePolicies' ) ; } /**
     * Returns a complete description of a single data lifecycle policy.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/dlm/latest/APIReference/API_GetLifecyclePolicy.html
     */ public toGetLifecyclePolicy ( ) { return this . to ( 'GetLifecyclePolicy' ) ; } /**
     * Grants permission to list the tags associated with a resource.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/dlm/latest/APIReference/API_ListTagsForResource.html
     */ public toListTagsForResource ( ) { return this . to ( 'ListTagsForResource' ) ; } /**
     * Grants permission to add or update tags of a resource.
     *
     * Access Level: Tagging
     *
     * https://docs.aws.amazon.com/dlm/latest/APIReference/API_TagResource.html
     */ public toTagResource ( ) { return this . to ( 'TagResource' ) ; } /**
     * Grants permission to remove associated with a resource.
     *
     * Access Level: Tagging
     *
     * https://docs.aws.amazon.com/dlm/latest/APIReference/API_UntagResource.html
     */ public toUntagResource ( ) { return this . to ( 'UntagResource' ) ; } /**
     * Updates an existing data lifecycle policy.
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/dlm/latest/APIReference/API_UpdateLifecyclePolicy.html
     */ public toUpdateLifecyclePolicy ( ) { return this . to ( 'UpdateLifecyclePolicy' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'CreateLifecyclePolicy' , 'DeleteLifecyclePolicy' , 'UpdateLifecyclePolicy' ] , List : [ 'GetLifecyclePolicies' ] , Read : [ 'GetLifecyclePolicy' , 'ListTagsForResource' ] , Tagging : [ 'TagResource' , 'UntagResource' ] } ; param resourceName param account param region param partition public onPolicy ( resourceName , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:dlm:${ region || '*' }:${ account || '*' }:policy/${ resourceName }` ) ; } }