Class: AWSCDK::Elasticsearch::CfnDomainProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
elasticsearch/cfn_domain_props.rb

Overview

Properties for defining a CfnDomain.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_policies: nil, advanced_options: nil, advanced_security_options: nil, cognito_options: nil, domain_arn: nil, domain_endpoint_options: nil, domain_name: nil, ebs_options: nil, elasticsearch_cluster_config: nil, elasticsearch_version: nil, encryption_at_rest_options: nil, log_publishing_options: nil, node_to_node_encryption_options: nil, snapshot_options: nil, tags: nil, vpc_options: nil) ⇒ CfnDomainProps

Returns a new instance of CfnDomainProps.

Parameters:



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 'elasticsearch/cfn_domain_props.rb', line 25

def initialize(access_policies: nil, advanced_options: nil, advanced_security_options: nil, cognito_options: nil, domain_arn: nil, domain_endpoint_options: nil, domain_name: nil, ebs_options: nil, elasticsearch_cluster_config: nil, elasticsearch_version: nil, encryption_at_rest_options: nil, log_publishing_options: nil, node_to_node_encryption_options: nil, snapshot_options: nil, tags: nil, vpc_options: nil)
  @access_policies = access_policies
  Jsii::Type.check_type(@access_policies, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "accessPolicies") unless @access_policies.nil?
  @advanced_options = advanced_options
  Jsii::Type.check_type(@advanced_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsicHJpbWl0aXZlIjoic3RyaW5nIn0sImtpbmQiOiJtYXAifX1dfX0=")), "advancedOptions") unless @advanced_options.nil?
  @advanced_security_options = advanced_security_options.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::AdvancedSecurityOptionsInputProperty.new(**advanced_security_options.transform_keys(&:to_sym)) : advanced_security_options
  Jsii::Type.check_type(@advanced_security_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5BZHZhbmNlZFNlY3VyaXR5T3B0aW9uc0lucHV0UHJvcGVydHkifV19fQ==")), "advancedSecurityOptions") unless @advanced_security_options.nil?
  @cognito_options = cognito_options.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::CognitoOptionsProperty.new(**cognito_options.transform_keys(&:to_sym)) : cognito_options
  Jsii::Type.check_type(@cognito_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5Db2duaXRvT3B0aW9uc1Byb3BlcnR5In1dfX0=")), "cognitoOptions") unless @cognito_options.nil?
  @domain_arn = domain_arn
  Jsii::Type.check_type(@domain_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "domainArn") unless @domain_arn.nil?
  @domain_endpoint_options = domain_endpoint_options.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::DomainEndpointOptionsProperty.new(**domain_endpoint_options.transform_keys(&:to_sym)) : domain_endpoint_options
  Jsii::Type.check_type(@domain_endpoint_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5Eb21haW5FbmRwb2ludE9wdGlvbnNQcm9wZXJ0eSJ9XX19")), "domainEndpointOptions") unless @domain_endpoint_options.nil?
  @domain_name = domain_name
  Jsii::Type.check_type(@domain_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "domainName") unless @domain_name.nil?
  @ebs_options = ebs_options.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::EBSOptionsProperty.new(**ebs_options.transform_keys(&:to_sym)) : ebs_options
  Jsii::Type.check_type(@ebs_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5FQlNPcHRpb25zUHJvcGVydHkifV19fQ==")), "ebsOptions") unless @ebs_options.nil?
  @elasticsearch_cluster_config = elasticsearch_cluster_config.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::ElasticsearchClusterConfigProperty.new(**elasticsearch_cluster_config.transform_keys(&:to_sym)) : elasticsearch_cluster_config
  Jsii::Type.check_type(@elasticsearch_cluster_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5FbGFzdGljc2VhcmNoQ2x1c3RlckNvbmZpZ1Byb3BlcnR5In1dfX0=")), "elasticsearchClusterConfig") unless @elasticsearch_cluster_config.nil?
  @elasticsearch_version = elasticsearch_version
  Jsii::Type.check_type(@elasticsearch_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "elasticsearchVersion") unless @elasticsearch_version.nil?
  @encryption_at_rest_options = encryption_at_rest_options.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::EncryptionAtRestOptionsProperty.new(**encryption_at_rest_options.transform_keys(&:to_sym)) : encryption_at_rest_options
  Jsii::Type.check_type(@encryption_at_rest_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5FbmNyeXB0aW9uQXRSZXN0T3B0aW9uc1Byb3BlcnR5In1dfX0=")), "encryptionAtRestOptions") unless @encryption_at_rest_options.nil?
  @log_publishing_options = log_publishing_options
  Jsii::Type.check_type(@log_publishing_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5DZm5Eb21haW4uTG9nUHVibGlzaGluZ09wdGlvblByb3BlcnR5In1dfX0sImtpbmQiOiJtYXAifX1dfX0=")), "logPublishingOptions") unless @log_publishing_options.nil?
  @node_to_node_encryption_options = node_to_node_encryption_options.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::NodeToNodeEncryptionOptionsProperty.new(**node_to_node_encryption_options.transform_keys(&:to_sym)) : node_to_node_encryption_options
  Jsii::Type.check_type(@node_to_node_encryption_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5Ob2RlVG9Ob2RlRW5jcnlwdGlvbk9wdGlvbnNQcm9wZXJ0eSJ9XX19")), "nodeToNodeEncryptionOptions") unless @node_to_node_encryption_options.nil?
  @snapshot_options = snapshot_options.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::SnapshotOptionsProperty.new(**snapshot_options.transform_keys(&:to_sym)) : snapshot_options
  Jsii::Type.check_type(@snapshot_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5TbmFwc2hvdE9wdGlvbnNQcm9wZXJ0eSJ9XX19")), "snapshotOptions") unless @snapshot_options.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?
  @vpc_options = vpc_options.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CfnDomain::VPCOptionsProperty.new(**vpc_options.transform_keys(&:to_sym)) : vpc_options
  Jsii::Type.check_type(@vpc_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lbGFzdGljc2VhcmNoLkNmbkRvbWFpbi5WUENPcHRpb25zUHJvcGVydHkifV19fQ==")), "vpcOptions") unless @vpc_options.nil?
end

Instance Attribute Details

#access_policiesObject? (readonly)

An AWS Identity and Access Management ( IAM ) policy document that specifies who can access the OpenSearch Service domain and their permissions.

For more information, see Configuring access policies in the Amazon OpenSearch Service Developer Guid e.



66
67
68
# File 'elasticsearch/cfn_domain_props.rb', line 66

def access_policies
  @access_policies
end

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

Additional options to specify for the OpenSearch Service domain.

For more information, see Advanced cluster parameters in the Amazon OpenSearch Service Developer Guide .



73
74
75
# File 'elasticsearch/cfn_domain_props.rb', line 73

def advanced_options
  @advanced_options
end

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

Specifies options for fine-grained access control.



78
79
80
# File 'elasticsearch/cfn_domain_props.rb', line 78

def advanced_security_options
  @advanced_security_options
end

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

Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards.



83
84
85
# File 'elasticsearch/cfn_domain_props.rb', line 83

def cognito_options
  @cognito_options
end

#domain_arnString? (readonly)



86
87
88
# File 'elasticsearch/cfn_domain_props.rb', line 86

def domain_arn
  @domain_arn
end

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

Specifies additional options for the domain endpoint, such as whether to require HTTPS for all traffic or whether to use a custom endpoint rather than the default endpoint.



91
92
93
# File 'elasticsearch/cfn_domain_props.rb', line 91

def domain_endpoint_options
  @domain_endpoint_options
end

#domain_nameString? (readonly)

A name for the OpenSearch Service domain.

For valid values, see the DomainName data type in the Amazon OpenSearch Service Developer Guide . If you don't specify a name, CloudFormation generates a unique physical ID and uses that ID for the domain name. For more information, see Name Type .

If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.



100
101
102
# File 'elasticsearch/cfn_domain_props.rb', line 100

def domain_name
  @domain_name
end

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

The configurations of Amazon Elastic Block Store (Amazon EBS) volumes that are attached to data nodes in the OpenSearch Service domain.

For more information, see EBS volume size limits in the Amazon OpenSearch Service Developer Guide .



107
108
109
# File 'elasticsearch/cfn_domain_props.rb', line 107

def ebs_options
  @ebs_options
end

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

ElasticsearchClusterConfig is a property of the AWS::Elasticsearch::Domain resource that configures the cluster of an Amazon OpenSearch Service domain.



112
113
114
# File 'elasticsearch/cfn_domain_props.rb', line 112

def elasticsearch_cluster_config
  @elasticsearch_cluster_config
end

#elasticsearch_versionString? (readonly)

The version of Elasticsearch to use, such as 2.3. If not specified, 1.5 is used as the default. For information about the versions that OpenSearch Service supports, see Supported versions of OpenSearch and Elasticsearch in the Amazon OpenSearch Service Developer Guide .

If you set the EnableVersionUpgrade update policy to true , you can update ElasticsearchVersion without interruption. When EnableVersionUpgrade is set to false , or is not specified, updating ElasticsearchVersion results in replacement .



119
120
121
# File 'elasticsearch/cfn_domain_props.rb', line 119

def elasticsearch_version
  @elasticsearch_version
end

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

Whether the domain should encrypt data at rest, and if so, the AWS Key Management Service key to use.

See Encryption of data at rest for Amazon OpenSearch Service .



126
127
128
# File 'elasticsearch/cfn_domain_props.rb', line 126

def encryption_at_rest_options
  @encryption_at_rest_options
end

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

An object with one or more of the following keys: SEARCH_SLOW_LOGS , ES_APPLICATION_LOGS , INDEX_SLOW_LOGS , AUDIT_LOGS , depending on the types of logs you want to publish.

Each key needs a valid LogPublishingOption value.



133
134
135
# File 'elasticsearch/cfn_domain_props.rb', line 133

def log_publishing_options
  @log_publishing_options
end

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

Specifies whether node-to-node encryption is enabled.

See Node-to-node encryption for Amazon OpenSearch Service .



140
141
142
# File 'elasticsearch/cfn_domain_props.rb', line 140

def node_to_node_encryption_options
  @node_to_node_encryption_options
end

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

DEPRECATED .

The automated snapshot configuration for the OpenSearch Service domain indices.



147
148
149
# File 'elasticsearch/cfn_domain_props.rb', line 147

def snapshot_options
  @snapshot_options
end

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

An arbitrary set of tags (key–value pairs) to associate with the OpenSearch Service domain.



152
153
154
# File 'elasticsearch/cfn_domain_props.rb', line 152

def tags
  @tags
end

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

The virtual private cloud (VPC) configuration for the OpenSearch Service domain.

For more information, see Launching your Amazon OpenSearch Service domains within a VPC in the Amazon OpenSearch Service Developer Guide .



159
160
161
# File 'elasticsearch/cfn_domain_props.rb', line 159

def vpc_options
  @vpc_options
end

Class Method Details

.jsii_propertiesObject



161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'elasticsearch/cfn_domain_props.rb', line 161

def self.jsii_properties
  {
    :access_policies => "accessPolicies",
    :advanced_options => "advancedOptions",
    :advanced_security_options => "advancedSecurityOptions",
    :cognito_options => "cognitoOptions",
    :domain_arn => "domainArn",
    :domain_endpoint_options => "domainEndpointOptions",
    :domain_name => "domainName",
    :ebs_options => "ebsOptions",
    :elasticsearch_cluster_config => "elasticsearchClusterConfig",
    :elasticsearch_version => "elasticsearchVersion",
    :encryption_at_rest_options => "encryptionAtRestOptions",
    :log_publishing_options => "logPublishingOptions",
    :node_to_node_encryption_options => "nodeToNodeEncryptionOptions",
    :snapshot_options => "snapshotOptions",
    :tags => "tags",
    :vpc_options => "vpcOptions",
  }
end

Instance Method Details

#to_jsiiObject



182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# File 'elasticsearch/cfn_domain_props.rb', line 182

def to_jsii
  result = {}
  result.merge!({
    "accessPolicies" => @access_policies,
    "advancedOptions" => @advanced_options,
    "advancedSecurityOptions" => @advanced_security_options,
    "cognitoOptions" => @cognito_options,
    "domainArn" => @domain_arn,
    "domainEndpointOptions" => @domain_endpoint_options,
    "domainName" => @domain_name,
    "ebsOptions" => @ebs_options,
    "elasticsearchClusterConfig" => @elasticsearch_cluster_config,
    "elasticsearchVersion" => @elasticsearch_version,
    "encryptionAtRestOptions" => @encryption_at_rest_options,
    "logPublishingOptions" => @log_publishing_options,
    "nodeToNodeEncryptionOptions" => @node_to_node_encryption_options,
    "snapshotOptions" => @snapshot_options,
    "tags" => @tags,
    "vpcOptions" => @vpc_options,
  })
  result.compact
end