import { AccessLevelList } from '../shared/access-level' ; import { PolicyStatement , Operator } from '../shared' ; param sid export class Fis extends PolicyStatement { public servicePrefix = 'fis' ; param sid constructor ( sid ? ) { super ( sid ) ; } /**
     * Grants permission to create an AWS FIS experiment template
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_CreateExperimentTemplate.html
     */ public toCreateExperimentTemplate ( ) { return this . to ( 'CreateExperimentTemplate' ) ; } /**
     * Grants permission to delete the AWS FIS experiment template
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_DeleteExperimentTemplate.html
     */ public toDeleteExperimentTemplate ( ) { return this . to ( 'DeleteExperimentTemplate' ) ; } /**
     * Grants permission to retrieve an AWS FIS action
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifAwsResourceTag()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_GetAction.html
     */ public toGetAction ( ) { return this . to ( 'GetAction' ) ; } /**
     * Grants permission to retrieve an AWS FIS experiment
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifAwsResourceTag()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_GetExperiment.html
     */ public toGetExperiment ( ) { return this . to ( 'GetExperiment' ) ; } /**
     * Grants permission to retrieve an AWS FIS Experiment Template
     *
     * Access Level: Read
     *
     * Possible conditions:
     * - .ifAwsResourceTag()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_GetExperimentTemplate.html
     */ public toGetExperimentTemplate ( ) { return this . to ( 'GetExperimentTemplate' ) ; } /**
     * Grants permission to inject an API internal error on the provided AWS service from an FIS Experiment
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifService()
     * - .ifOperations()
     * - .ifPercentage()
     * - .ifTargets()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/Welcome.html
     */ public toInjectApiInternalError ( ) { return this . to ( 'InjectApiInternalError' ) ; } /**
     * Grants permission to inject an API throttle error on the provided AWS service from an FIS Experiment
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifService()
     * - .ifOperations()
     * - .ifPercentage()
     * - .ifTargets()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/Welcome.html
     */ public toInjectApiThrottleError ( ) { return this . to ( 'InjectApiThrottleError' ) ; } /**
     * Grants permission to inject an API unavailable error on the provided AWS service from an FIS Experiment
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifService()
     * - .ifOperations()
     * - .ifPercentage()
     * - .ifTargets()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/Welcome.html
     */ public toInjectApiUnavailableError ( ) { return this . to ( 'InjectApiUnavailableError' ) ; } /**
     * Grants permission to list all available AWS FIS actions
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_ListActions.html
     */ public toListActions ( ) { return this . to ( 'ListActions' ) ; } /**
     * Grants permission to list all available AWS FIS experiment templates
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_ListExperimentTemplates.html
     */ public toListExperimentTemplates ( ) { return this . to ( 'ListExperimentTemplates' ) ; } /**
     * Grants permission to list all available AWS FIS experiments
     *
     * Access Level: List
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_ListExperiments.html
     */ public toListExperiments ( ) { return this . to ( 'ListExperiments' ) ; } /**
     * Grants permission to list the tags for an AWS FIS resource.
     *
     * Access Level: Read
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_ListTagsForResource.html
     */ public toListTagsForResource ( ) { return this . to ( 'ListTagsForResource' ) ; } /**
     * Grants permission to run an AWS FIS experiment
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * Dependent actions:
     * - iam:CreateServiceLinkedRole
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_StartExperiment.html
     */ public toStartExperiment ( ) { return this . to ( 'StartExperiment' ) ; } /**
     * Grants permission to stop an AWS FIS experiment
     *
     * Access Level: Write
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_StopExperiment.html
     */ public toStopExperiment ( ) { return this . to ( 'StopExperiment' ) ; } /**
     * Grants permission to tag AWS FIS resources
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsTagKeys()
     * - .ifAwsRequestTag()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_TagResource.html
     */ public toTagResource ( ) { return this . to ( 'TagResource' ) ; } /**
     * Grants permission to untag AWS FIS resources
     *
     * Access Level: Tagging
     *
     * Possible conditions:
     * - .ifAwsTagKeys()
     * - .ifAwsRequestTag()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_UntagResource.html
     */ public toUntagResource ( ) { return this . to ( 'UntagResource' ) ; } /**
     * Grants permission to update the specified AWS FIS experiment template
     *
     * Access Level: Write
     *
     * Possible conditions:
     * - .ifAwsRequestTag()
     * - .ifAwsTagKeys()
     *
     * https://docs.aws.amazon.com/fis/latest/APIReference/API_UpdateExperimentTemplate.html
     */ public toUpdateExperimentTemplate ( ) { return this . to ( 'UpdateExperimentTemplate' ) ; } protected accessLevelList : AccessLevelList = { Write : [ 'CreateExperimentTemplate' , 'DeleteExperimentTemplate' , 'InjectApiInternalError' , 'InjectApiThrottleError' , 'InjectApiUnavailableError' , 'StartExperiment' , 'StopExperiment' , 'UpdateExperimentTemplate' ] , Read : [ 'GetAction' , 'GetExperiment' , 'GetExperimentTemplate' , 'ListTagsForResource' ] , List : [ 'ListActions' , 'ListExperimentTemplates' , 'ListExperiments' ] , Tagging : [ 'TagResource' , 'UntagResource' ] } ; param id param account param region param partition public onAction ( id , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:fis:${ region || '*' }:${ account || '*' }:action/${ id }` ) ; } param id param account param region param partition public onExperiment ( id , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:fis:${ region || '*' }:${ account || '*' }:experiment/${ id }` ) ; } param id param account param region param partition public onExperimentTemplate ( id , account ? , region ? , partition ? ) { return this . on ( `arn:${ partition || 'aws' }:fis:${ region || '*' }:${ account || '*' }:experiment-template/${ id }` ) ; } param value param operator public ifOperations ( value , operator ? ) { return this . if ( `Operations` , value , operator || 'StringLike' ) ; } param value param operator public ifPercentage ( value , operator ? ) { return this . if ( `Percentage` , value , operator || 'NumericEquals' ) ; } param value param operator public ifService ( value , operator ? ) { return this . if ( `Service` , value , operator || 'StringLike' ) ; } param value param operator public ifTargets ( value , operator ? ) { return this . if ( `Targets` , value , operator || 'StringLike' ) ; } }