Class: AWSCDK::RedshiftServerless::CfnNamespaceProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
redshift_serverless/cfn_namespace_props.rb

Overview

Properties for defining a CfnNamespace.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(namespace_name:, admin_password_secret_kms_key_id: nil, admin_username: nil, admin_user_password: nil, db_name: nil, default_iam_role_arn: nil, final_snapshot_name: nil, final_snapshot_retention_period: nil, iam_roles: nil, kms_key_id: nil, log_exports: nil, manage_admin_password: nil, namespace_resource_policy: nil, redshift_idc_application_arn: nil, snapshot_copy_configurations: nil, tags: nil) ⇒ CfnNamespaceProps

Returns a new instance of CfnNamespaceProps.

Parameters:

  • namespace_name (String)

    The name of the namespace.

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

    The ID of the AWS Key Management Service (KMS) key used to encrypt and store the namespace's admin credentials secret.

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

    The username of the administrator for the primary database created in the namespace.

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

    The password of the administrator for the primary database created in the namespace.

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

    The name of the primary database created in the namespace.

  • default_iam_role_arn (String, AWSCDK::Interfaces::AWSIAM::IRoleRef, nil) (defaults to: nil)

    The Amazon Resource Name (ARN) of the IAM role to set as a default in the namespace.

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

    The name of the snapshot to be created before the namespace is deleted.

  • final_snapshot_retention_period (Numeric, nil) (defaults to: nil)

    How long to retain the final snapshot.

  • iam_roles (Array<String, AWSCDK::Interfaces::AWSIAM::IRoleRef>, nil) (defaults to: nil)

    A list of IAM roles to associate with the namespace.

  • kms_key_id (String, AWSCDK::Interfaces::AWSKMS::IKeyRef, nil) (defaults to: nil)

    The ID of the AWS Key Management Service key used to encrypt your data.

  • log_exports (Array<String>, nil) (defaults to: nil)

    The types of logs the namespace can export.

  • manage_admin_password (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    If true, Amazon Redshift uses AWS Secrets Manager to manage the namespace's admin credentials.

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

    The resource policy that will be attached to the namespace.

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

    The ARN for the Redshift application that integrates with IAM Identity Center.

  • snapshot_copy_configurations (AWSCDK::IResolvable, Array<AWSCDK::IResolvable, AWSCDK::RedshiftServerless::CfnNamespace::SnapshotCopyConfigurationProperty>, nil) (defaults to: nil)

    The snapshot copy configurations for the namespace.

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    The map of the key-value pairs used to tag the namespace.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'redshift_serverless/cfn_namespace_props.rb', line 25

def initialize(namespace_name:, admin_password_secret_kms_key_id: nil, admin_username: nil, admin_user_password: nil, db_name: nil, default_iam_role_arn: nil, final_snapshot_name: nil, final_snapshot_retention_period: nil, iam_roles: nil, kms_key_id: nil, log_exports: nil, manage_admin_password: nil, namespace_resource_policy: nil, redshift_idc_application_arn: nil, snapshot_copy_configurations: nil, tags: nil)
  @namespace_name = namespace_name
  Jsii::Type.check_type(@namespace_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "namespaceName")
  @admin_password_secret_kms_key_id = admin_password_secret_kms_key_id
  Jsii::Type.check_type(@admin_password_secret_kms_key_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "adminPasswordSecretKmsKeyId") unless @admin_password_secret_kms_key_id.nil?
  @admin_username = admin_username
  Jsii::Type.check_type(@admin_username, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "adminUsername") unless @admin_username.nil?
  @admin_user_password = admin_user_password
  Jsii::Type.check_type(@admin_user_password, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "adminUserPassword") unless @admin_user_password.nil?
  @db_name = db_name
  Jsii::Type.check_type(@db_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "dbName") unless @db_name.nil?
  @default_iam_role_arn = default_iam_role_arn
  Jsii::Type.check_type(@default_iam_role_arn, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19pYW0uSVJvbGVSZWYifV19fQ==")), "defaultIamRoleArn") unless @default_iam_role_arn.nil?
  @final_snapshot_name = final_snapshot_name
  Jsii::Type.check_type(@final_snapshot_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "finalSnapshotName") unless @final_snapshot_name.nil?
  @final_snapshot_retention_period = final_snapshot_retention_period
  Jsii::Type.check_type(@final_snapshot_retention_period, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "finalSnapshotRetentionPeriod") unless @final_snapshot_retention_period.nil?
  @iam_roles = iam_roles
  Jsii::Type.check_type(@iam_roles, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InVuaW9uIjp7InR5cGVzIjpbeyJwcmltaXRpdmUiOiJzdHJpbmcifSx7ImZxbiI6ImF3cy1jZGstbGliLmludGVyZmFjZXMuYXdzX2lhbS5JUm9sZVJlZiJ9XX19LCJraW5kIjoiYXJyYXkifX0=")), "iamRoles") unless @iam_roles.nil?
  @kms_key_id = kms_key_id
  Jsii::Type.check_type(@kms_key_id, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19rbXMuSUtleVJlZiJ9XX19")), "kmsKeyId") unless @kms_key_id.nil?
  @log_exports = log_exports
  Jsii::Type.check_type(@log_exports, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "logExports") unless @log_exports.nil?
  @manage_admin_password = manage_admin_password
  Jsii::Type.check_type(@manage_admin_password, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "manageAdminPassword") unless @manage_admin_password.nil?
  @namespace_resource_policy = namespace_resource_policy
  Jsii::Type.check_type(@namespace_resource_policy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "namespaceResourcePolicy") unless @namespace_resource_policy.nil?
  @redshift_idc_application_arn = redshift_idc_application_arn
  Jsii::Type.check_type(@redshift_idc_application_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "redshiftIdcApplicationArn") unless @redshift_idc_application_arn.nil?
  @snapshot_copy_configurations = snapshot_copy_configurations
  Jsii::Type.check_type(@snapshot_copy_configurations, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfcmVkc2hpZnRzZXJ2ZXJsZXNzLkNmbk5hbWVzcGFjZS5TbmFwc2hvdENvcHlDb25maWd1cmF0aW9uUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "snapshotCopyConfigurations") unless @snapshot_copy_configurations.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
end

Instance Attribute Details

#admin_password_secret_kms_key_idString? (readonly)

The ID of the AWS Key Management Service (KMS) key used to encrypt and store the namespace's admin credentials secret.

You can only use this parameter if ManageAdminPassword is true .



73
74
75
# File 'redshift_serverless/cfn_namespace_props.rb', line 73

def admin_password_secret_kms_key_id
  @admin_password_secret_kms_key_id
end

#admin_user_passwordString? (readonly)

The password of the administrator for the primary database created in the namespace.



83
84
85
# File 'redshift_serverless/cfn_namespace_props.rb', line 83

def admin_user_password
  @admin_user_password
end

#admin_usernameString? (readonly)

The username of the administrator for the primary database created in the namespace.



78
79
80
# File 'redshift_serverless/cfn_namespace_props.rb', line 78

def admin_username
  @admin_username
end

#db_nameString? (readonly)

The name of the primary database created in the namespace.



88
89
90
# File 'redshift_serverless/cfn_namespace_props.rb', line 88

def db_name
  @db_name
end

#default_iam_role_arnString, ... (readonly)

The Amazon Resource Name (ARN) of the IAM role to set as a default in the namespace.



93
94
95
# File 'redshift_serverless/cfn_namespace_props.rb', line 93

def default_iam_role_arn
  @default_iam_role_arn
end

#final_snapshot_nameString? (readonly)

The name of the snapshot to be created before the namespace is deleted.



98
99
100
# File 'redshift_serverless/cfn_namespace_props.rb', line 98

def final_snapshot_name
  @final_snapshot_name
end

#final_snapshot_retention_periodNumeric? (readonly)

How long to retain the final snapshot.



103
104
105
# File 'redshift_serverless/cfn_namespace_props.rb', line 103

def final_snapshot_retention_period
  @final_snapshot_retention_period
end

#iam_rolesArray<String, AWSCDK::Interfaces::AWSIAM::IRoleRef>? (readonly)

A list of IAM roles to associate with the namespace.



108
109
110
# File 'redshift_serverless/cfn_namespace_props.rb', line 108

def iam_roles
  @iam_roles
end

#kms_key_idString, ... (readonly)

The ID of the AWS Key Management Service key used to encrypt your data.



113
114
115
# File 'redshift_serverless/cfn_namespace_props.rb', line 113

def kms_key_id
  @kms_key_id
end

#log_exportsArray<String>? (readonly)

The types of logs the namespace can export.

Available export types are userlog , connectionlog , and useractivitylog .



120
121
122
# File 'redshift_serverless/cfn_namespace_props.rb', line 120

def log_exports
  @log_exports
end

#manage_admin_passwordBoolean, ... (readonly)

If true, Amazon Redshift uses AWS Secrets Manager to manage the namespace's admin credentials.

You can't use AdminUserPassword if ManageAdminPassword is true. If ManageAdminPassword is false or not set, Amazon Redshift uses AdminUserPassword for the admin user account's password.



127
128
129
# File 'redshift_serverless/cfn_namespace_props.rb', line 127

def manage_admin_password
  @manage_admin_password
end

#namespace_nameString (readonly)

The name of the namespace.

Must be between 3-64 alphanumeric characters in lowercase, and it cannot be a reserved word. A list of reserved words can be found in Reserved Words in the Amazon Redshift Database Developer Guide.



66
67
68
# File 'redshift_serverless/cfn_namespace_props.rb', line 66

def namespace_name
  @namespace_name
end

#namespace_resource_policyObject? (readonly)

The resource policy that will be attached to the namespace.



132
133
134
# File 'redshift_serverless/cfn_namespace_props.rb', line 132

def namespace_resource_policy
  @namespace_resource_policy
end

#redshift_idc_application_arnString? (readonly)

The ARN for the Redshift application that integrates with IAM Identity Center.



137
138
139
# File 'redshift_serverless/cfn_namespace_props.rb', line 137

def redshift_idc_application_arn
  @redshift_idc_application_arn
end

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

The snapshot copy configurations for the namespace.



142
143
144
# File 'redshift_serverless/cfn_namespace_props.rb', line 142

def snapshot_copy_configurations
  @snapshot_copy_configurations
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

The map of the key-value pairs used to tag the namespace.



147
148
149
# File 'redshift_serverless/cfn_namespace_props.rb', line 147

def tags
  @tags
end

Class Method Details

.jsii_propertiesObject



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# File 'redshift_serverless/cfn_namespace_props.rb', line 149

def self.jsii_properties
  {
    :namespace_name => "namespaceName",
    :admin_password_secret_kms_key_id => "adminPasswordSecretKmsKeyId",
    :admin_username => "adminUsername",
    :admin_user_password => "adminUserPassword",
    :db_name => "dbName",
    :default_iam_role_arn => "defaultIamRoleArn",
    :final_snapshot_name => "finalSnapshotName",
    :final_snapshot_retention_period => "finalSnapshotRetentionPeriod",
    :iam_roles => "iamRoles",
    :kms_key_id => "kmsKeyId",
    :log_exports => "logExports",
    :manage_admin_password => "manageAdminPassword",
    :namespace_resource_policy => "namespaceResourcePolicy",
    :redshift_idc_application_arn => "redshiftIdcApplicationArn",
    :snapshot_copy_configurations => "snapshotCopyConfigurations",
    :tags => "tags",
  }
end

Instance Method Details

#to_jsiiObject



170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'redshift_serverless/cfn_namespace_props.rb', line 170

def to_jsii
  result = {}
  result.merge!({
    "namespaceName" => @namespace_name,
    "adminPasswordSecretKmsKeyId" => @admin_password_secret_kms_key_id,
    "adminUsername" => @admin_username,
    "adminUserPassword" => @admin_user_password,
    "dbName" => @db_name,
    "defaultIamRoleArn" => @default_iam_role_arn,
    "finalSnapshotName" => @final_snapshot_name,
    "finalSnapshotRetentionPeriod" => @final_snapshot_retention_period,
    "iamRoles" => @iam_roles,
    "kmsKeyId" => @kms_key_id,
    "logExports" => @log_exports,
    "manageAdminPassword" => @manage_admin_password,
    "namespaceResourcePolicy" => @namespace_resource_policy,
    "redshiftIdcApplicationArn" => @redshift_idc_application_arn,
    "snapshotCopyConfigurations" => @snapshot_copy_configurations,
    "tags" => @tags,
  })
  result.compact
end