UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 3.88 kB
"use strict";var __decorate=exports&&exports.__decorate||function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r},_a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.BackupSelection=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var backup_generated_1=()=>{var tmp=require("./backup.generated");return backup_generated_1=()=>tmp,tmp},backupable_resources_collector_1=()=>{var tmp=require("./backupable-resources-collector");return backupable_resources_collector_1=()=>tmp,tmp},resource_1=()=>{var tmp=require("./resource");return resource_1=()=>tmp,tmp},iam=()=>{var tmp=require("../../aws-iam");return iam=()=>tmp,tmp},core_1=()=>{var tmp=require("../../core");return core_1=()=>tmp,tmp},metadata_resource_1=()=>{var tmp=require("../../core/lib/metadata-resource");return metadata_resource_1=()=>tmp,tmp},aspect_prio_1=()=>{var tmp=require("../../core/lib/private/aspect-prio");return aspect_prio_1=()=>tmp,tmp},prop_injectable_1=()=>{var tmp=require("../../core/lib/prop-injectable");return prop_injectable_1=()=>tmp,tmp};let BackupSelection=class BackupSelection2 extends core_1().Resource{constructor(scope,id,props){super(scope,id),this.listOfTags=[],this.resources=[],this.backupableResourcesCollector=new(backupable_resources_collector_1()).BackupableResourcesCollector;try{jsiiDeprecationWarnings().aws_cdk_lib_aws_backup_BackupSelectionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,BackupSelection2),error}(0,metadata_resource_1().addConstructMetadata)(this,props);const role=props.role||new(iam()).Role(this,"Role",{assumedBy:new(iam()).ServicePrincipal("backup.amazonaws.com")});props.disableDefaultBackupPolicy||role.addManagedPolicy(iam().ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSBackupServiceRolePolicyForBackup")),props.allowRestores&&role.addManagedPolicy(iam().ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSBackupServiceRolePolicyForRestores")),this.grantPrincipal=role;const selection=new(backup_generated_1()).CfnBackupSelection(this,"Resource",{backupPlanId:props.backupPlan.backupPlanId,backupSelection:{iamRoleArn:role.roleArn,selectionName:props.backupSelectionName||this.node.id,listOfTags:core_1().Lazy.any({produce:()=>this.listOfTags},{omitEmptyArray:!0}),resources:core_1().Lazy.list({produce:()=>[...this.resources,...this.backupableResourcesCollector.resources]},{omitEmpty:!0})}});this.backupPlanId=selection.attrBackupPlanId,this.selectionId=selection.attrSelectionId;for(const resource of props.resources)this.addResource(resource)}addResource(resource){resource.tagCondition&&this.listOfTags.push({conditionKey:resource.tagCondition.key,conditionType:resource.tagCondition.operation||resource_1().TagOperation.STRING_EQUALS,conditionValue:resource.tagCondition.value}),resource.resource&&this.resources.push(resource.resource),resource.construct&&core_1().Aspects.of(resource.construct).add(this.backupableResourcesCollector,{priority:(0,aspect_prio_1().mutatingAspectPrio32333)(resource.construct)})}};exports.BackupSelection=BackupSelection,_a=JSII_RTTI_SYMBOL_1,BackupSelection[_a]={fqn:"aws-cdk-lib.aws_backup.BackupSelection",version:"2.211.0"},BackupSelection.PROPERTY_INJECTION_ID="aws-cdk-lib.aws-backup.BackupSelection",exports.BackupSelection=BackupSelection=__decorate([prop_injectable_1().propertyInjectable],BackupSelection);