Class: AWSCDK::Backup::CfnLogicallyAirGappedBackupVaultProps

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

Overview

Properties for defining a CfnLogicallyAirGappedBackupVault.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(backup_vault_name:, max_retention_days:, min_retention_days:, access_policy: nil, backup_vault_tags: nil, encryption_key_arn: nil, mpa_approval_team_arn: nil, notifications: nil) ⇒ CfnLogicallyAirGappedBackupVaultProps

Returns a new instance of CfnLogicallyAirGappedBackupVaultProps.

Parameters:

  • backup_vault_name (String)

    The name of a logical container where backups are stored.

  • max_retention_days (Numeric)

    The maximum retention period that the vault retains its recovery points.

  • min_retention_days (Numeric)

    This setting specifies the minimum retention period that the vault retains its recovery points.

  • access_policy (Object, nil) (defaults to: nil)

    The backup vault access policy document in JSON format.

  • backup_vault_tags (Hash{String => String}, nil) (defaults to: nil)

    The tags to assign to the vault.

  • encryption_key_arn (String, nil) (defaults to: nil)

    The server-side encryption key that is used to protect your backups; for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab .

  • mpa_approval_team_arn (String, nil) (defaults to: nil)

    The Amazon Resource Name (ARN) of the MPA approval team to associate with the backup vault.

  • notifications (AWSCDK::IResolvable, AWSCDK::Backup::CfnLogicallyAirGappedBackupVault::NotificationObjectTypeProperty, nil) (defaults to: nil)

    Returns event notifications for the specified backup vault.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 17

def initialize(backup_vault_name:, max_retention_days:, min_retention_days:, access_policy: nil, backup_vault_tags: nil, encryption_key_arn: nil, mpa_approval_team_arn: nil, notifications: nil)
  @backup_vault_name = backup_vault_name
  Jsii::Type.check_type(@backup_vault_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "backupVaultName")
  @max_retention_days = max_retention_days
  Jsii::Type.check_type(@max_retention_days, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "maxRetentionDays")
  @min_retention_days = min_retention_days
  Jsii::Type.check_type(@min_retention_days, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "minRetentionDays")
  @access_policy = access_policy
  Jsii::Type.check_type(@access_policy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "accessPolicy") unless @access_policy.nil?
  @backup_vault_tags = backup_vault_tags
  Jsii::Type.check_type(@backup_vault_tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoibWFwIn19")), "backupVaultTags") unless @backup_vault_tags.nil?
  @encryption_key_arn = encryption_key_arn
  Jsii::Type.check_type(@encryption_key_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "encryptionKeyArn") unless @encryption_key_arn.nil?
  @mpa_approval_team_arn = mpa_approval_team_arn
  Jsii::Type.check_type(@mpa_approval_team_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "mpaApprovalTeamArn") unless @mpa_approval_team_arn.nil?
  @notifications = notifications.is_a?(Hash) ? ::AWSCDK::Backup::CfnLogicallyAirGappedBackupVault::NotificationObjectTypeProperty.new(**notifications.transform_keys(&:to_sym)) : notifications
  Jsii::Type.check_type(@notifications, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19iYWNrdXAuQ2ZuTG9naWNhbGx5QWlyR2FwcGVkQmFja3VwVmF1bHQuTm90aWZpY2F0aW9uT2JqZWN0VHlwZVByb3BlcnR5In1dfX0=")), "notifications") unless @notifications.nil?
end

Instance Attribute Details

#access_policyObject? (readonly)

The backup vault access policy document in JSON format.



59
60
61
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 59

def access_policy
  @access_policy
end

#backup_vault_nameString (readonly)

The name of a logical container where backups are stored.

Logically air-gapped backup vaults are identified by names that are unique to the account used to create them and the Region where they are created.



42
43
44
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 42

def backup_vault_name
  @backup_vault_name
end

#backup_vault_tagsHash{String => String}? (readonly)

The tags to assign to the vault.



64
65
66
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 64

def backup_vault_tags
  @backup_vault_tags
end

#encryption_key_arnString? (readonly)

The server-side encryption key that is used to protect your backups; for example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab .

If this field is left blank, AWS Backup will create an AWS owned key to be used to encrypt the content of the logically air-gapped vault. The ARN of this created key will be available as Fn::GetAtt output.



71
72
73
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 71

def encryption_key_arn
  @encryption_key_arn
end

#max_retention_daysNumeric (readonly)

The maximum retention period that the vault retains its recovery points.



47
48
49
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 47

def max_retention_days
  @max_retention_days
end

#min_retention_daysNumeric (readonly)

This setting specifies the minimum retention period that the vault retains its recovery points.

The minimum value accepted is 7 days.



54
55
56
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 54

def min_retention_days
  @min_retention_days
end

#mpa_approval_team_arnString? (readonly)

The Amazon Resource Name (ARN) of the MPA approval team to associate with the backup vault.

This cannot be changed after it is set from the CloudFormation template.



78
79
80
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 78

def mpa_approval_team_arn
  @mpa_approval_team_arn
end

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

Returns event notifications for the specified backup vault.



83
84
85
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 83

def notifications
  @notifications
end

Class Method Details

.jsii_propertiesObject



85
86
87
88
89
90
91
92
93
94
95
96
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 85

def self.jsii_properties
  {
    :backup_vault_name => "backupVaultName",
    :max_retention_days => "maxRetentionDays",
    :min_retention_days => "minRetentionDays",
    :access_policy => "accessPolicy",
    :backup_vault_tags => "backupVaultTags",
    :encryption_key_arn => "encryptionKeyArn",
    :mpa_approval_team_arn => "mpaApprovalTeamArn",
    :notifications => "notifications",
  }
end

Instance Method Details

#to_jsiiObject



98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'backup/cfn_logically_air_gapped_backup_vault_props.rb', line 98

def to_jsii
  result = {}
  result.merge!({
    "backupVaultName" => @backup_vault_name,
    "maxRetentionDays" => @max_retention_days,
    "minRetentionDays" => @min_retention_days,
    "accessPolicy" => @access_policy,
    "backupVaultTags" => @backup_vault_tags,
    "encryptionKeyArn" => @encryption_key_arn,
    "mpaApprovalTeamArn" => @mpa_approval_team_arn,
    "notifications" => @notifications,
  })
  result.compact
end