import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class CopyActionResourceType { Lifecycle ? : LifecycleResourceType ; DestinationBackupVaultArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BackupPlanResourceType { BackupPlanName ! : Value < string > ; AdvancedBackupSettings ? : List < AdvancedBackupSettingResourceType > ; BackupPlanRule ! : List < BackupRuleResourceType > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AdvancedBackupSettingResourceType { BackupOptions ! : { [ key ] : any ; } ; ResourceType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LifecycleResourceType { MoveToColdStorageAfterDays ? : Value < number > ; DeleteAfterDays ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BackupRuleResourceType { RuleName ! : Value < string > ; TargetBackupVault ! : Value < string > ; StartWindowMinutes ? : Value < number > ; CompletionWindowMinutes ? : Value < number > ; ScheduleExpression ? : Value < string > ; RecoveryPointTags ? : { [ key ] : Value < string > ; } ; CopyActions ? : List < CopyActionResourceType > ; Lifecycle ? : LifecycleResourceType ; EnableContinuousBackup ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface BackupPlanProperties { BackupPlan : BackupPlanResourceType ; BackupPlanTags ? : { [ key ] : Value < string > ; } ; } export default class BackupPlan extends ResourceBase < BackupPlanProperties > { static CopyActionResourceType = CopyActionResourceType ; static BackupPlanResourceType = BackupPlanResourceType ; static AdvancedBackupSettingResourceType = AdvancedBackupSettingResourceType ; static LifecycleResourceType = LifecycleResourceType ; static BackupRuleResourceType = BackupRuleResourceType ; constructor ( properties ) { super ( 'AWS::Backup::BackupPlan' , properties ) ; } }