Class: AWSCDK::Backup::CfnBackupPlan::BackupRuleResourceTypeProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
backup/cfn_backup_plan.rb

Overview

Specifies an object containing properties used to schedule a task to back up a selection of resources.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rule_name:, target_backup_vault:, completion_window_minutes: nil, copy_actions: nil, enable_continuous_backup: nil, index_actions: nil, lifecycle: nil, recovery_point_tags: nil, scan_actions: nil, schedule_expression: nil, schedule_expression_timezone: nil, start_window_minutes: nil, target_logically_air_gapped_backup_vault_arn: nil) ⇒ BackupRuleResourceTypeProperty

Returns a new instance of BackupRuleResourceTypeProperty.

Parameters:



712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
# File 'backup/cfn_backup_plan.rb', line 712

def initialize(rule_name:, target_backup_vault:, completion_window_minutes: nil, copy_actions: nil, enable_continuous_backup: nil, index_actions: nil, lifecycle: nil, recovery_point_tags: nil, scan_actions: nil, schedule_expression: nil, schedule_expression_timezone: nil, start_window_minutes: nil, target_logically_air_gapped_backup_vault_arn: nil)
  @rule_name = rule_name
  Jsii::Type.check_type(@rule_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ruleName")
  @target_backup_vault = target_backup_vault
  Jsii::Type.check_type(@target_backup_vault, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "targetBackupVault")
  @completion_window_minutes = completion_window_minutes
  Jsii::Type.check_type(@completion_window_minutes, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "completionWindowMinutes") unless @completion_window_minutes.nil?
  @copy_actions = copy_actions
  Jsii::Type.check_type(@copy_actions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYmFja3VwLkNmbkJhY2t1cFBsYW4uQ29weUFjdGlvblJlc291cmNlVHlwZVByb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "copyActions") unless @copy_actions.nil?
  @enable_continuous_backup = enable_continuous_backup
  Jsii::Type.check_type(@enable_continuous_backup, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "enableContinuousBackup") unless @enable_continuous_backup.nil?
  @index_actions = index_actions
  Jsii::Type.check_type(@index_actions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYmFja3VwLkNmbkJhY2t1cFBsYW4uSW5kZXhBY3Rpb25zUmVzb3VyY2VUeXBlUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "indexActions") unless @index_actions.nil?
  @lifecycle = lifecycle.is_a?(Hash) ? ::AWSCDK::Backup::CfnBackupPlan::LifecycleResourceTypeProperty.new(**lifecycle.transform_keys(&:to_sym)) : lifecycle
  Jsii::Type.check_type(@lifecycle, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYWNrdXAuQ2ZuQmFja3VwUGxhbi5MaWZlY3ljbGVSZXNvdXJjZVR5cGVQcm9wZXJ0eSJ9XX19")), "lifecycle") unless @lifecycle.nil?
  @recovery_point_tags = recovery_point_tags
  Jsii::Type.check_type(@recovery_point_tags, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsicHJpbWl0aXZlIjoic3RyaW5nIn0sImtpbmQiOiJtYXAifX1dfX0=")), "recoveryPointTags") unless @recovery_point_tags.nil?
  @scan_actions = scan_actions
  Jsii::Type.check_type(@scan_actions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYmFja3VwLkNmbkJhY2t1cFBsYW4uU2NhbkFjdGlvblJlc291cmNlVHlwZVByb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "scanActions") unless @scan_actions.nil?
  @schedule_expression = schedule_expression
  Jsii::Type.check_type(@schedule_expression, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "scheduleExpression") unless @schedule_expression.nil?
  @schedule_expression_timezone = schedule_expression_timezone
  Jsii::Type.check_type(@schedule_expression_timezone, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "scheduleExpressionTimezone") unless @schedule_expression_timezone.nil?
  @start_window_minutes = start_window_minutes
  Jsii::Type.check_type(@start_window_minutes, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "startWindowMinutes") unless @start_window_minutes.nil?
  @target_logically_air_gapped_backup_vault_arn = target_logically_air_gapped_backup_vault_arn
  Jsii::Type.check_type(@target_logically_air_gapped_backup_vault_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "targetLogicallyAirGappedBackupVaultArn") unless @target_logically_air_gapped_backup_vault_arn.nil?
end

Instance Attribute Details

#completion_window_minutesNumeric? (readonly)

A value in minutes after a backup job is successfully started before it must be completed or it is canceled by AWS Backup .



757
758
759
# File 'backup/cfn_backup_plan.rb', line 757

def completion_window_minutes
  @completion_window_minutes
end

#copy_actionsAWSCDK::IResolvable, ... (readonly)

An array of CopyAction objects, which contains the details of the copy operation.



762
763
764
# File 'backup/cfn_backup_plan.rb', line 762

def copy_actions
  @copy_actions
end

#enable_continuous_backupBoolean, ... (readonly)

Enables continuous backup and point-in-time restores (PITR).



767
768
769
# File 'backup/cfn_backup_plan.rb', line 767

def enable_continuous_backup
  @enable_continuous_backup
end

#index_actionsAWSCDK::IResolvable, ... (readonly)

There can up to one IndexAction in each BackupRule, as each backup can have 0 or 1 backup index associated with it.

Within the array is ResourceTypes. Only 1 resource type will be accepted for each BackupRule. Valid values:

  • EBS for Amazon Elastic Block Store
  • S3 for Amazon Simple Storage Service (Amazon S3)


777
778
779
# File 'backup/cfn_backup_plan.rb', line 777

def index_actions
  @index_actions
end

#lifecycleAWSCDK::IResolvable, ... (readonly)

The lifecycle defines when a protected resource is transitioned to cold storage and when it expires.

AWS Backup transitions and expires backups automatically according to the lifecycle that you define.



784
785
786
# File 'backup/cfn_backup_plan.rb', line 784

def lifecycle
  @lifecycle
end

#recovery_point_tagsAWSCDK::IResolvable, ... (readonly)

The tags to assign to the resources.



789
790
791
# File 'backup/cfn_backup_plan.rb', line 789

def recovery_point_tags
  @recovery_point_tags
end

#rule_nameString (readonly)

A display name for a backup rule.



745
746
747
# File 'backup/cfn_backup_plan.rb', line 745

def rule_name
  @rule_name
end

#schedule_expressionString? (readonly)

A CRON expression specifying when AWS Backup initiates a backup job.



797
798
799
# File 'backup/cfn_backup_plan.rb', line 797

def schedule_expression
  @schedule_expression
end

#schedule_expression_timezoneString? (readonly)

This is the timezone in which the schedule expression is set.

By default, ScheduleExpressions are in UTC. You can modify this to a specified timezone.



804
805
806
# File 'backup/cfn_backup_plan.rb', line 804

def schedule_expression_timezone
  @schedule_expression_timezone
end

#start_window_minutesNumeric? (readonly)

An optional value that specifies a period of time in minutes after a backup is scheduled before a job is canceled if it doesn't start successfully.

If this value is included, it must be at least 60 minutes to avoid errors.



811
812
813
# File 'backup/cfn_backup_plan.rb', line 811

def start_window_minutes
  @start_window_minutes
end

#target_backup_vaultString (readonly)

The name of a logical container where backups are stored.

Backup vaults are identified by names that are unique to the account used to create them and the AWS Region where they are created. They consist of letters, numbers, and hyphens.



752
753
754
# File 'backup/cfn_backup_plan.rb', line 752

def target_backup_vault
  @target_backup_vault
end

#target_logically_air_gapped_backup_vault_arnString? (readonly)

The ARN of a logically air-gapped vault.

ARN must be in the same account and Region. If provided, supported fully managed resources back up directly to logically air-gapped vault, while other supported resources create a temporary (billable) snapshot in backup vault, then copy it to logically air-gapped vault. Unsupported resources only back up to the specified backup vault.



818
819
820
# File 'backup/cfn_backup_plan.rb', line 818

def target_logically_air_gapped_backup_vault_arn
  @target_logically_air_gapped_backup_vault_arn
end

Class Method Details

.jsii_propertiesObject



820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
# File 'backup/cfn_backup_plan.rb', line 820

def self.jsii_properties
  {
    :rule_name => "ruleName",
    :target_backup_vault => "targetBackupVault",
    :completion_window_minutes => "completionWindowMinutes",
    :copy_actions => "copyActions",
    :enable_continuous_backup => "enableContinuousBackup",
    :index_actions => "indexActions",
    :lifecycle => "lifecycle",
    :recovery_point_tags => "recoveryPointTags",
    :scan_actions => "scanActions",
    :schedule_expression => "scheduleExpression",
    :schedule_expression_timezone => "scheduleExpressionTimezone",
    :start_window_minutes => "startWindowMinutes",
    :target_logically_air_gapped_backup_vault_arn => "targetLogicallyAirGappedBackupVaultArn",
  }
end

Instance Method Details

#to_jsiiObject



838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
# File 'backup/cfn_backup_plan.rb', line 838

def to_jsii
  result = {}
  result.merge!({
    "ruleName" => @rule_name,
    "targetBackupVault" => @target_backup_vault,
    "completionWindowMinutes" => @completion_window_minutes,
    "copyActions" => @copy_actions,
    "enableContinuousBackup" => @enable_continuous_backup,
    "indexActions" => @index_actions,
    "lifecycle" => @lifecycle,
    "recoveryPointTags" => @recovery_point_tags,
    "scanActions" => @scan_actions,
    "scheduleExpression" => @schedule_expression,
    "scheduleExpressionTimezone" => @schedule_expression_timezone,
    "startWindowMinutes" => @start_window_minutes,
    "targetLogicallyAirGappedBackupVaultArn" => @target_logically_air_gapped_backup_vault_arn,
  })
  result.compact
end