cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
1,422 lines • 126 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Drs = void 0;
const shared_1 = require("../../shared");
/**
* Statement provider for service [drs](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselasticdisasterrecovery.html).
*
* @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement
*/
class Drs extends shared_1.PolicyStatement {
/**
* Grants permission to get associate failback client to recovery instance
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toAssociateFailbackClientToRecoveryInstanceForDrs() {
return this.to('AssociateFailbackClientToRecoveryInstanceForDrs');
}
/**
* Grants permission to associate CloudFormation stack with source network
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - cloudformation:DescribeStackResource
* - cloudformation:DescribeStacks
* - drs:GetLaunchConfiguration
* - ec2:CreateLaunchTemplateVersion
* - ec2:DescribeLaunchTemplateVersions
* - ec2:DescribeLaunchTemplates
* - ec2:DescribeSecurityGroups
* - ec2:DescribeSubnets
* - ec2:DescribeVpcs
* - ec2:ModifyLaunchTemplate
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_AssociateSourceNetworkStack.html
*/
toAssociateSourceNetworkStack() {
return this.to('AssociateSourceNetworkStack');
}
/**
* Grants permission to batch create volume snapshot group
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toBatchCreateVolumeSnapshotGroupForDrs() {
return this.to('BatchCreateVolumeSnapshotGroupForDrs');
}
/**
* Grants permission to batch delete snapshot request
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toBatchDeleteSnapshotRequestForDrs() {
return this.to('BatchDeleteSnapshotRequestForDrs');
}
/**
* Grants permission to create converted snapshot
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toCreateConvertedSnapshotForDrs() {
return this.to('CreateConvertedSnapshotForDrs');
}
/**
* Grants permission to extend a source server
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - drs:DescribeSourceServers
* - drs:GetReplicationConfiguration
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_CreateExtendedSourceServer.html
*/
toCreateExtendedSourceServer() {
return this.to('CreateExtendedSourceServer');
}
/**
* Grants permission to create launch configuration template
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_CreateLaunchConfigurationTemplate.html
*/
toCreateLaunchConfigurationTemplate() {
return this.to('CreateLaunchConfigurationTemplate');
}
/**
* Grants permission to create recovery instance
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toCreateRecoveryInstanceForDrs() {
return this.to('CreateRecoveryInstanceForDrs');
}
/**
* Grants permission to create replication configuration template
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - ec2:CreateSecurityGroup
* - ec2:DescribeSecurityGroups
* - ec2:DescribeSubnets
* - ec2:GetEbsDefaultKmsKeyId
* - ec2:GetEbsEncryptionByDefault
* - kms:CreateGrant
* - kms:DescribeKey
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_CreateReplicationConfigurationTemplate.html
*/
toCreateReplicationConfigurationTemplate() {
return this.to('CreateReplicationConfigurationTemplate');
}
/**
* Grants permission to create a source network
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - ec2:DescribeInstances
* - ec2:DescribeVpcs
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_CreateSourceNetwork.html
*/
toCreateSourceNetwork() {
return this.to('CreateSourceNetwork');
}
/**
* Grants permission to create a source server
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toCreateSourceServerForDrs() {
return this.to('CreateSourceServerForDrs');
}
/**
* Grants permission to delete a job
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DeleteJob.html
*/
toDeleteJob() {
return this.to('DeleteJob');
}
/**
* Grants permission to delete a launch action
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DeleteLaunchAction.html
*/
toDeleteLaunchAction() {
return this.to('DeleteLaunchAction');
}
/**
* Grants permission to delete launch configuration template
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DeleteLaunchConfigurationTemplate.html
*/
toDeleteLaunchConfigurationTemplate() {
return this.to('DeleteLaunchConfigurationTemplate');
}
/**
* Grants permission to delete recovery instance
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DeleteRecoveryInstance.html
*/
toDeleteRecoveryInstance() {
return this.to('DeleteRecoveryInstance');
}
/**
* Grants permission to delete replication configuration template
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DeleteReplicationConfigurationTemplate.html
*/
toDeleteReplicationConfigurationTemplate() {
return this.to('DeleteReplicationConfigurationTemplate');
}
/**
* Grants permission to delete source network
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DeleteSourceNetwork.html
*/
toDeleteSourceNetwork() {
return this.to('DeleteSourceNetwork');
}
/**
* Grants permission to delete source server
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DeleteSourceServer.html
*/
toDeleteSourceServer() {
return this.to('DeleteSourceServer');
}
/**
* Grants permission to describe job log items
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DescribeJobLogItems.html
*/
toDescribeJobLogItems() {
return this.to('DescribeJobLogItems');
}
/**
* Grants permission to describe jobs
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DescribeJobs.html
*/
toDescribeJobs() {
return this.to('DescribeJobs');
}
/**
* Grants permission to describe launch configuration template
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DescribeLaunchConfigurationTemplates.html
*/
toDescribeLaunchConfigurationTemplates() {
return this.to('DescribeLaunchConfigurationTemplates');
}
/**
* Grants permission to describe recovery instances
*
* Access Level: Read
*
* Dependent actions:
* - drs:DescribeSourceServers
* - ec2:DescribeInstances
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DescribeRecoveryInstances.html
*/
toDescribeRecoveryInstances() {
return this.to('DescribeRecoveryInstances');
}
/**
* Grants permission to describe recovery snapshots
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DescribeRecoverySnapshots.html
*/
toDescribeRecoverySnapshots() {
return this.to('DescribeRecoverySnapshots');
}
/**
* Grants permission to describe replication configuration template
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DescribeReplicationConfigurationTemplates.html
*/
toDescribeReplicationConfigurationTemplates() {
return this.to('DescribeReplicationConfigurationTemplates');
}
/**
* Grants permission to describe replication server associations
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toDescribeReplicationServerAssociationsForDrs() {
return this.to('DescribeReplicationServerAssociationsForDrs');
}
/**
* Grants permission to describe snapshot requests
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toDescribeSnapshotRequestsForDrs() {
return this.to('DescribeSnapshotRequestsForDrs');
}
/**
* Grants permission to describe source networks
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DescribeSourceNetworks.html
*/
toDescribeSourceNetworks() {
return this.to('DescribeSourceNetworks');
}
/**
* Grants permission to describe source servers
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DescribeSourceServers.html
*/
toDescribeSourceServers() {
return this.to('DescribeSourceServers');
}
/**
* Grants permission to disconnect recovery instance
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DisconnectRecoveryInstance.html
*/
toDisconnectRecoveryInstance() {
return this.to('DisconnectRecoveryInstance');
}
/**
* Grants permission to disconnect source server
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_DisconnectSourceServer.html
*/
toDisconnectSourceServer() {
return this.to('DisconnectSourceServer');
}
/**
* Grants permission to export CloudFormation template which contains source network resources
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - s3:GetBucketLocation
* - s3:GetObject
* - s3:PutObject
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_ExportSourceNetworkCfnTemplate.html
*/
toExportSourceNetworkCfnTemplate() {
return this.to('ExportSourceNetworkCfnTemplate');
}
/**
* Grants permission to get agent command
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetAgentCommandForDrs() {
return this.to('GetAgentCommandForDrs');
}
/**
* Grants permission to get agent confirmed resume info
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetAgentConfirmedResumeInfoForDrs() {
return this.to('GetAgentConfirmedResumeInfoForDrs');
}
/**
* Grants permission to get agent installation assets
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetAgentInstallationAssetsForDrs() {
return this.to('GetAgentInstallationAssetsForDrs');
}
/**
* Grants permission to get agent replication info
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetAgentReplicationInfoForDrs() {
return this.to('GetAgentReplicationInfoForDrs');
}
/**
* Grants permission to get agent runtime configuration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetAgentRuntimeConfigurationForDrs() {
return this.to('GetAgentRuntimeConfigurationForDrs');
}
/**
* Grants permission to get agent snapshot credits
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetAgentSnapshotCreditsForDrs() {
return this.to('GetAgentSnapshotCreditsForDrs');
}
/**
* Grants permission to get channel commands
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetChannelCommandsForDrs() {
return this.to('GetChannelCommandsForDrs');
}
/**
* Grants permission to get failback command
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetFailbackCommandForDrs() {
return this.to('GetFailbackCommandForDrs');
}
/**
* Grants permission to get failback launch requested
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetFailbackLaunchRequestedForDrs() {
return this.to('GetFailbackLaunchRequestedForDrs');
}
/**
* Grants permission to get failback replication configuration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_GetFailbackReplicationConfiguration.html
*/
toGetFailbackReplicationConfiguration() {
return this.to('GetFailbackReplicationConfiguration');
}
/**
* Grants permission to get launch configuration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_GetLaunchConfiguration.html
*/
toGetLaunchConfiguration() {
return this.to('GetLaunchConfiguration');
}
/**
* Grants permission to get replication configuration
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_GetReplicationConfiguration.html
*/
toGetReplicationConfiguration() {
return this.to('GetReplicationConfiguration');
}
/**
* Grants permission to get suggested failback client device mapping
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toGetSuggestedFailbackClientDeviceMappingForDrs() {
return this.to('GetSuggestedFailbackClientDeviceMappingForDrs');
}
/**
* Grants permission to initialize service
*
* Access Level: Write
*
* Dependent actions:
* - iam:AddRoleToInstanceProfile
* - iam:CreateInstanceProfile
* - iam:CreateServiceLinkedRole
* - iam:GetInstanceProfile
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_InitializeService.html
*/
toInitializeService() {
return this.to('InitializeService');
}
/**
* Grants permission to issue an agent certificate
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toIssueAgentCertificateForDrs() {
return this.to('IssueAgentCertificateForDrs');
}
/**
* Grants permission to list extensible source servers
*
* Access Level: Read
*
* Dependent actions:
* - drs:DescribeSourceServers
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_ListExtensibleSourceServers.html
*/
toListExtensibleSourceServers() {
return this.to('ListExtensibleSourceServers');
}
/**
* Grants permission to list launch actions
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_ListLaunchActions.html
*/
toListLaunchActions() {
return this.to('ListLaunchActions');
}
/**
* Grants permission to list staging accounts
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_ListStagingAccounts.html
*/
toListStagingAccounts() {
return this.to('ListStagingAccounts');
}
/**
* Grants permission to list tags for a resource
*
* Access Level: Read
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_ListTagsForResource.html
*/
toListTagsForResource() {
return this.to('ListTagsForResource');
}
/**
* Grants permission to notify agent authentication
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toNotifyAgentAuthenticationForDrs() {
return this.to('NotifyAgentAuthenticationForDrs');
}
/**
* Grants permission to notify agent is connected
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toNotifyAgentConnectedForDrs() {
return this.to('NotifyAgentConnectedForDrs');
}
/**
* Grants permission to notify agent is disconnected
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toNotifyAgentDisconnectedForDrs() {
return this.to('NotifyAgentDisconnectedForDrs');
}
/**
* Grants permission to notify agent replication progress
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toNotifyAgentReplicationProgressForDrs() {
return this.to('NotifyAgentReplicationProgressForDrs');
}
/**
* Grants permission to notify consistency attained
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toNotifyConsistencyAttainedForDrs() {
return this.to('NotifyConsistencyAttainedForDrs');
}
/**
* Grants permission to notify replication server authentication
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toNotifyReplicationServerAuthenticationForDrs() {
return this.to('NotifyReplicationServerAuthenticationForDrs');
}
/**
* Grants permission to notify replicator volume events
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toNotifyVolumeEventForDrs() {
return this.to('NotifyVolumeEventForDrs');
}
/**
* Grants permission to put a launch action
*
* Access Level: Write
*
* Dependent actions:
* - ssm:DescribeDocument
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_PutLaunchAction.html
*/
toPutLaunchAction() {
return this.to('PutLaunchAction');
}
/**
* Grants permission to retry data replication
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_RetryDataReplication.html
*/
toRetryDataReplication() {
return this.to('RetryDataReplication');
}
/**
* Grants permission to reverse replication
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - drs:DescribeReplicationConfigurationTemplates
* - drs:DescribeSourceServers
* - ec2:DescribeInstances
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_ReverseReplication.html
*/
toReverseReplication() {
return this.to('ReverseReplication');
}
/**
* Grants permission to send agent logs
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toSendAgentLogsForDrs() {
return this.to('SendAgentLogsForDrs');
}
/**
* Grants permission to send agent metrics
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toSendAgentMetricsForDrs() {
return this.to('SendAgentMetricsForDrs');
}
/**
* Grants permission to send channel command result
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toSendChannelCommandResultForDrs() {
return this.to('SendChannelCommandResultForDrs');
}
/**
* Grants permission to send client logs
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toSendClientLogsForDrs() {
return this.to('SendClientLogsForDrs');
}
/**
* Grants permission to send client metrics
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toSendClientMetricsForDrs() {
return this.to('SendClientMetricsForDrs');
}
/**
* Grants permission to send volume throughput statistics
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toSendVolumeStatsForDrs() {
return this.to('SendVolumeStatsForDrs');
}
/**
* Grants permission to start failback launch
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_StartFailbackLaunch.html
*/
toStartFailbackLaunch() {
return this.to('StartFailbackLaunch');
}
/**
* Grants permission to start recovery
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - drs:CreateRecoveryInstanceForDrs
* - drs:ListTagsForResource
* - ec2:AttachVolume
* - ec2:AuthorizeSecurityGroupEgress
* - ec2:AuthorizeSecurityGroupIngress
* - ec2:CreateLaunchTemplate
* - ec2:CreateLaunchTemplateVersion
* - ec2:CreateSnapshot
* - ec2:CreateTags
* - ec2:CreateVolume
* - ec2:DeleteLaunchTemplateVersions
* - ec2:DeleteSnapshot
* - ec2:DeleteVolume
* - ec2:DescribeAccountAttributes
* - ec2:DescribeAvailabilityZones
* - ec2:DescribeImages
* - ec2:DescribeInstanceAttribute
* - ec2:DescribeInstanceStatus
* - ec2:DescribeInstanceTypes
* - ec2:DescribeInstances
* - ec2:DescribeLaunchTemplateVersions
* - ec2:DescribeLaunchTemplates
* - ec2:DescribeSecurityGroups
* - ec2:DescribeSnapshots
* - ec2:DescribeSubnets
* - ec2:DescribeVolumes
* - ec2:DetachVolume
* - ec2:ModifyInstanceAttribute
* - ec2:ModifyLaunchTemplate
* - ec2:RevokeSecurityGroupEgress
* - ec2:RunInstances
* - ec2:StartInstances
* - ec2:StopInstances
* - ec2:TerminateInstances
* - iam:PassRole
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_StartRecovery.html
*/
toStartRecovery() {
return this.to('StartRecovery');
}
/**
* Grants permission to start replication
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_StartReplication.html
*/
toStartReplication() {
return this.to('StartReplication');
}
/**
* Grants permission to start network recovery
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - cloudformation:CreateStack
* - cloudformation:DescribeStackResource
* - cloudformation:DescribeStacks
* - cloudformation:UpdateStack
* - drs:GetLaunchConfiguration
* - ec2:CreateLaunchTemplateVersion
* - ec2:DescribeLaunchTemplateVersions
* - ec2:DescribeLaunchTemplates
* - ec2:DescribeSecurityGroups
* - ec2:DescribeSubnets
* - ec2:DescribeVpcs
* - ec2:ModifyLaunchTemplate
* - s3:GetObject
* - s3:PutObject
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_StartSourceNetworkRecovery.html
*/
toStartSourceNetworkRecovery() {
return this.to('StartSourceNetworkRecovery');
}
/**
* Grants permission to start network replication
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_StartSourceNetworkReplication.html
*/
toStartSourceNetworkReplication() {
return this.to('StartSourceNetworkReplication');
}
/**
* Grants permission to stop failback
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_StopFailback.html
*/
toStopFailback() {
return this.to('StopFailback');
}
/**
* Grants permission to stop replication
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_StopReplication.html
*/
toStopReplication() {
return this.to('StopReplication');
}
/**
* Grants permission to stop network replication
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_StopSourceNetworkReplication.html
*/
toStopSourceNetworkReplication() {
return this.to('StopSourceNetworkReplication');
}
/**
* Grants permission to assign a resource tag
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
* - .ifCreateAction()
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_TagResource.html
*/
toTagResource() {
return this.to('TagResource');
}
/**
* Grants permission to terminate recovery instances
*
* Access Level: Write
*
* Possible conditions:
* - .ifAwsRequestTag()
* - .ifAwsTagKeys()
*
* Dependent actions:
* - drs:DescribeSourceServers
* - ec2:DeleteVolume
* - ec2:DescribeInstances
* - ec2:DescribeVolumes
* - ec2:TerminateInstances
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_TerminateRecoveryInstances.html
*/
toTerminateRecoveryInstances() {
return this.to('TerminateRecoveryInstances');
}
/**
* Grants permission to untag a resource
*
* Access Level: Tagging
*
* Possible conditions:
* - .ifAwsTagKeys()
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_UntagResource.html
*/
toUntagResource() {
return this.to('UntagResource');
}
/**
* Grants permission to update agent backlog
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toUpdateAgentBacklogForDrs() {
return this.to('UpdateAgentBacklogForDrs');
}
/**
* Grants permission to update agent conversion info
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toUpdateAgentConversionInfoForDrs() {
return this.to('UpdateAgentConversionInfoForDrs');
}
/**
* Grants permission to update agent replication info
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toUpdateAgentReplicationInfoForDrs() {
return this.to('UpdateAgentReplicationInfoForDrs');
}
/**
* Grants permission to update agent replication process state
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toUpdateAgentReplicationProcessStateForDrs() {
return this.to('UpdateAgentReplicationProcessStateForDrs');
}
/**
* Grants permission to update agent source properties
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toUpdateAgentSourcePropertiesForDrs() {
return this.to('UpdateAgentSourcePropertiesForDrs');
}
/**
* Grants permission to update failback client device mapping
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toUpdateFailbackClientDeviceMappingForDrs() {
return this.to('UpdateFailbackClientDeviceMappingForDrs');
}
/**
* Grants permission to update failback client last seen
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toUpdateFailbackClientLastSeenForDrs() {
return this.to('UpdateFailbackClientLastSeenForDrs');
}
/**
* Grants permission to update failback replication configuration
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_UpdateFailbackReplicationConfiguration.html
*/
toUpdateFailbackReplicationConfiguration() {
return this.to('UpdateFailbackReplicationConfiguration');
}
/**
* Grants permission to update launch configuration
*
* Access Level: Write
*
* Dependent actions:
* - ec2:DescribeInstances
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_UpdateLaunchConfiguration.html
*/
toUpdateLaunchConfiguration() {
return this.to('UpdateLaunchConfiguration');
}
/**
* Grants permission to update launch configuration
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_UpdateLaunchConfigurationTemplate.html
*/
toUpdateLaunchConfigurationTemplate() {
return this.to('UpdateLaunchConfigurationTemplate');
}
/**
* Grants permission to update a replication certificate
*
* Access Level: Write
*
* https://docs.aws.amazon.com/drs/latest/userguide/drs-apis.html
*/
toUpdateReplicationCertificateForDrs() {
return this.to('UpdateReplicationCertificateForDrs');
}
/**
* Grants permission to update replication configuration
*
* Access Level: Write
*
* Dependent actions:
* - ec2:CreateSecurityGroup
* - ec2:DescribeSecurityGroups
* - ec2:DescribeSubnets
* - ec2:GetEbsDefaultKmsKeyId
* - ec2:GetEbsEncryptionByDefault
* - kms:CreateGrant
* - kms:DescribeKey
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_UpdateReplicationConfiguration.html
*/
toUpdateReplicationConfiguration() {
return this.to('UpdateReplicationConfiguration');
}
/**
* Grants permission to update replication configuration template
*
* Access Level: Write
*
* Dependent actions:
* - ec2:CreateSecurityGroup
* - ec2:DescribeSecurityGroups
* - ec2:DescribeSubnets
* - ec2:GetEbsDefaultKmsKeyId
* - ec2:GetEbsEncryptionByDefault
* - kms:CreateGrant
* - kms:DescribeKey
*
* https://docs.aws.amazon.com/drs/latest/APIReference/API_UpdateReplicationConfigurationTemplate.html
*/
toUpdateReplicationConfigurationTemplate() {
return this.to('UpdateReplicationConfigurationTemplate');
}
/**
* Adds a resource of type JobResource to the statement
*
* https://docs.aws.amazon.com/drs/latest/userguide/failback-overview.html
*
* @param jobID - Identifier for the jobID.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onJobResource(jobID, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:drs:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:job/${jobID}`);
}
/**
* Adds a resource of type RecoveryInstanceResource to the statement
*
* https://docs.aws.amazon.com/drs/latest/userguide/recovery-instances.html
*
* @param recoveryInstanceID - Identifier for the recoveryInstanceID.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
* - .ifEC2InstanceARN()
*/
onRecoveryInstanceResource(recoveryInstanceID, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:drs:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:recovery-instance/${recoveryInstanceID}`);
}
/**
* Adds a resource of type ReplicationConfigurationTemplateResource to the statement
*
* https://docs.aws.amazon.com/drs/latest/userguide/replication-settings-template.html
*
* @param replicationConfigurationTemplateID - Identifier for the replicationConfigurationTemplateID.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onReplicationConfigurationTemplateResource(replicationConfigurationTemplateID, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:drs:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:replication-configuration-template/${replicationConfigurationTemplateID}`);
}
/**
* Adds a resource of type LaunchConfigurationTemplateResource to the statement
*
* https://docs.aws.amazon.com/drs/latest/userguide/default-drs-launch-settings.html
*
* @param launchConfigurationTemplateID - Identifier for the launchConfigurationTemplateID.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onLaunchConfigurationTemplateResource(launchConfigurationTemplateID, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:drs:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:launch-configuration-template/${launchConfigurationTemplateID}`);
}
/**
* Adds a resource of type SourceServerResource to the statement
*
* https://docs.aws.amazon.com/drs/latest/userguide/source-servers.html
*
* @param sourceServerID - Identifier for the sourceServerID.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onSourceServerResource(sourceServerID, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:drs:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:source-server/${sourceServerID}`);
}
/**
* Adds a resource of type SourceNetworkResource to the statement
*
* https://docs.aws.amazon.com/drs/latest/userguide/source-networks.html
*
* @param sourceNetworkID - Identifier for the sourceNetworkID.
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
*
* Possible conditions:
* - .ifAwsResourceTag()
*/
onSourceNetworkResource(sourceNetworkID, account, region, partition) {
return this.on(`arn:${partition ?? this.defaultPartition}:drs:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:source-network/${sourceNetworkID}`);
}
/**
* Filters access by the presence of tag key-value pairs in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag
*
* Applies to actions:
* - .toAssociateSourceNetworkStack()
* - .toCreateConvertedSnapshotForDrs()
* - .toCreateExtendedSourceServer()
* - .toCreateLaunchConfigurationTemplate()
* - .toCreateRecoveryInstanceForDrs()
* - .toCreateReplicationConfigurationTemplate()
* - .toCreateSourceNetwork()
* - .toCreateSourceServerForDrs()
* - .toExportSourceNetworkCfnTemplate()
* - .toReverseReplication()
* - .toStartFailbackLaunch()
* - .toStartRecovery()
* - .toStartSourceNetworkRecovery()
* - .toTagResource()
* - .toTerminateRecoveryInstances()
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsRequestTag(tagKey, value, operator) {
return this.if(`aws:RequestTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by tag key-value pairs attached to the resource
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag
*
* Applies to resource types:
* - JobResource
* - RecoveryInstanceResource
* - ReplicationConfigurationTemplateResource
* - LaunchConfigurationTemplateResource
* - SourceServerResource
* - SourceNetworkResource
*
* @param tagKey The tag key to check
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsResourceTag(tagKey, value, operator) {
return this.if(`aws:ResourceTag/${tagKey}`, value, operator ?? 'StringLike');
}
/**
* Filters access by the presence of tag keys in the request
*
* https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys
*
* Applies to actions:
* - .toAssociateSourceNetworkStack()
* - .toCreateConvertedSnapshotForDrs()
* - .toCreateExtendedSourceServer()
* - .toCreateLaunchConfigurationTemplate()
* - .toCreateRecoveryInstanceForDrs()
* - .toCreateReplicationConfigurationTemplate()
* - .toCreateSourceNetwork()
* - .toCreateSourceServerForDrs()
* - .toExportSourceNetworkCfnTemplate()
* - .toReverseReplication()
* - .toStartFailbackLaunch()
* - .toStartRecovery()
* - .toStartSourceNetworkRecovery()
* - .toTagResource()
* - .toTerminateRecoveryInstances()
* - .toUntagResource()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifAwsTagKeys(value, operator) {
return this.if(`aws:TagKeys`, value, operator ?? 'StringLike');
}
/**
* Filters access by the name of a resource-creating API action
*
* https://docs.aws.amazon.com/drs/latest/userguide/supported-iam-actions-tagging.html
*
* Applies to actions:
* - .toTagResource()
*
* @param value The value(s) to check
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
*/
ifCreateAction(value, operator) {
return this.if(`CreateAction`, value, operator ?? 'StringLike');
}
/**
* Filters access by the EC2 instance the request originated from
*
* https://docs.aws.amazon.com/drs/latest/userguide/security_iam_authentication.html
*
* Applies to resource types:
* - RecoveryInstanceResource
*
* @param value The value(s) to check
* @param operator Works with [arn operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). **Default:** `ArnLike`
*/
ifEC2InstanceARN(value, operator) {
return this.if(`EC2InstanceARN`, value, operator ?? 'ArnLike');
}
/**
* Statement provider for service [drs](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awselasticdisasterrecovery.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'drs';
this.accessLevelList = {
Write: [
'AssociateFailbackClientToRecoveryInstanceForDrs',
'AssociateSourceNetworkStack',
'BatchCreateVolumeSnapshotGroupForDrs',
'BatchDeleteSnapshotRequestForDrs',
'CreateConvertedSnapshotForDrs',
'CreateExtendedSourceServer',
'CreateLaunchConfigurationTemplate',
'CreateRecoveryInstanceForDrs',
'CreateReplicationConfigurationTemplate',
'CreateSourceNetwork',
'CreateSourceServerForDrs',
'DeleteJob',
'DeleteLaunchAction',
'DeleteLaunchConfigurationTemplate',
'DeleteRecoveryInstance',
'DeleteReplicationConfigurationTemplate',
'DeleteSourceNetwork',
'DeleteSourceServer',
'DisconnectRecoveryInstance',
'DisconnectSourceServer',
'ExportSourceNetworkCfnTemplate',
'InitializeService',
'IssueAgentCertificateForDrs',
'NotifyAgentAuthenticationForDrs',
'NotifyAgentConnectedForDrs',
'NotifyAgentDisconnectedForDrs',
'NotifyAgentReplicationProgressForDrs',
'NotifyConsistencyAttainedForDrs',
'NotifyReplicationServerAuthenticationForDrs',
'NotifyVolumeEventForDrs',
'PutLaunchAction',
'RetryDataReplication',
'ReverseReplication',
'SendAgentLogsForDrs',
'SendAgentMetricsForDrs',
'SendChannelCommandResultForDrs',
'SendClientLogsForDrs',
'SendClientMetricsForDrs',
'SendVolumeStatsForDrs',
'StartFailbackLaunch',
'StartRecovery',
'StartReplication',
'StartSourceNetworkRecovery',
'StartSourceNetworkReplication',
'StopFailback',
'StopReplication',
'StopSourceNetworkReplication',
'TerminateRecoveryInstances',
'UpdateAgentBacklogForDrs',
'UpdateAgentConversionInfoForDrs',
'UpdateAgentReplicationInfoForDrs',
'UpdateAgentReplicationProcessStateForDrs',
'UpdateAgentSourcePropertiesForDrs',
'UpdateFailbackClientDeviceMappingForDrs',
'UpdateFailbackClientLastSeenForDrs',
'UpdateFailbackReplicationConfiguration',
'UpdateLaunchConfiguration',
'UpdateLaunchConfigurationTemplate',
'UpdateReplicationCertificateForDrs',
'UpdateReplicationConfiguration',
'UpdateReplicationConfigurationTemplate'
],
Read: [
'DescribeJobLogItems',
'DescribeJobs',
'DescribeLaunchConfigurationTemplates',
'DescribeRecoveryInstances',
'DescribeRecoverySnapshots',
'DescribeReplicationConfigurationTemplates',
'DescribeReplicationServerAssociationsForDrs',
'DescribeSnapshotRequestsForDrs',
'DescribeSourceNetworks',
'DescribeSourceServers',
'GetAgentCommandForDrs',
'GetAgentConfirmedResumeInfoForDrs',
'GetAgentInstallationAssetsForDrs',
'GetAgentReplicationInfoForDrs',
'GetAgentRuntimeConfigurationForDrs',
'GetAgentSnapshotCreditsForDrs',
'GetChannelCommandsForDrs',
'GetFailbackCommandForDrs',
'GetFailbackLaunchRequestedForDrs',
'GetFailbackReplicationConfiguration',
'GetLaunchConfiguration',
'GetReplicationConfiguration',
'GetSuggestedFailbackClientDeviceMappingForDrs',
'ListExtensibleSourceServers',
'ListLaunchActions',
'ListStagingAccounts',
'ListTagsForResource'
],
Tagging: [
'TagResource',
'UntagResource'
]
};
}
}
exports.Drs = Drs;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY2Rpc2FzdGVycmVjb3ZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbGFzdGljZGlzYXN0ZXJyZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBeUQ7QUFHekQ7Ozs7R0FJRztBQUNILE1BQWEsR0FBSSxTQUFRLHdCQUFlO0lBR3RDOzs7Ozs7T0FNRztJQUNJLGlEQUFpRDtRQUN0RCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQkc7SUFDSSw2QkFBNkI7UUFDbEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHNDQUFzQztRQUMzQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0NBQWtDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksK0JBQStCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLDRCQUE0QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLG1DQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLDhCQUE4QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSSx3Q0FBd0M7UUFDN0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxtQ0FBbUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM