Class: AWSCDK::Elasticsearch::DomainProps Deprecated

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

Overview

Deprecated.

use opensearchservice module instead

Properties for an AWS Elasticsearch Domain.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(version:, access_policies: nil, advanced_options: nil, automated_snapshot_start_hour: nil, capacity: nil, cognito_kibana_auth: nil, custom_endpoint: nil, domain_name: nil, ebs: nil, enable_version_upgrade: nil, encryption_at_rest: nil, enforce_https: nil, fine_grained_access_control: nil, logging: nil, node_to_node_encryption: nil, removal_policy: nil, security_groups: nil, tls_security_policy: nil, use_unsigned_basic_auth: nil, vpc: nil, vpc_subnets: nil, zone_awareness: nil) ⇒ DomainProps

Returns a new instance of DomainProps.

Parameters:

  • version (AWSCDK::Elasticsearch::ElasticsearchVersion)

    The Elasticsearch version that your domain will leverage.

  • access_policies (Array<AWSCDK::IAM::PolicyStatement>, nil) (defaults to: nil)

    Domain Access policies.

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

    Additional options to specify for the Amazon ES domain.

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

    The hour in UTC during which the service takes an automated daily snapshot of the indices in the Amazon ES domain.

  • capacity (AWSCDK::Elasticsearch::CapacityConfig, nil) (defaults to: nil)

    The cluster capacity configuration for the Amazon ES domain.

  • cognito_kibana_auth (AWSCDK::Elasticsearch::CognitoOptions, nil) (defaults to: nil)

    Configures Amazon ES to use Amazon Cognito authentication for Kibana.

  • custom_endpoint (AWSCDK::Elasticsearch::CustomEndpointOptions, nil) (defaults to: nil)

    To configure a custom domain configure these options.

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

    Enforces a particular physical domain name.

  • ebs (AWSCDK::Elasticsearch::EbsOptions, nil) (defaults to: nil)

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

  • enable_version_upgrade (Boolean, nil) (defaults to: nil)

    To upgrade an Amazon ES domain to a new version of Elasticsearch rather than replacing the entire domain resource, use the EnableVersionUpgrade update policy.

  • encryption_at_rest (AWSCDK::Elasticsearch::EncryptionAtRestOptions, nil) (defaults to: nil)

    Encryption at rest options for the cluster.

  • enforce_https (Boolean, nil) (defaults to: nil)

    True to require that all traffic to the domain arrive over HTTPS.

  • fine_grained_access_control (AWSCDK::Elasticsearch::AdvancedSecurityOptions, nil) (defaults to: nil)

    Specifies options for fine-grained access control.

  • logging (AWSCDK::Elasticsearch::LoggingOptions, nil) (defaults to: nil)

    Configuration log publishing configuration options.

  • node_to_node_encryption (Boolean, nil) (defaults to: nil)

    Specify true to enable node to node encryption.

  • removal_policy (AWSCDK::RemovalPolicy, nil) (defaults to: nil)

    Policy to apply when the domain is removed from the stack.

  • security_groups (Array<AWSCDK::EC2::ISecurityGroup>, nil) (defaults to: nil)

    The list of security groups that are associated with the VPC endpoints for the domain.

  • tls_security_policy (AWSCDK::Elasticsearch::TLSSecurityPolicy, nil) (defaults to: nil)

    The minimum TLS version required for traffic to the domain.

  • use_unsigned_basic_auth (Boolean, nil) (defaults to: nil)

    Configures the domain so that unsigned basic auth is enabled.

  • vpc (AWSCDK::EC2::IVPC, nil) (defaults to: nil)

    Place the domain inside this VPC.

  • vpc_subnets (Array<AWSCDK::EC2::SubnetSelection>, nil) (defaults to: nil)

    The specific vpc subnets the domain will be placed in.

  • zone_awareness (AWSCDK::Elasticsearch::ZoneAwarenessConfig, nil) (defaults to: nil)

    The cluster zone awareness configuration for the Amazon ES domain.



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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'elasticsearch/domain_props.rb', line 31

def initialize(version:, access_policies: nil, advanced_options: nil, automated_snapshot_start_hour: nil, capacity: nil, cognito_kibana_auth: nil, custom_endpoint: nil, domain_name: nil, ebs: nil, enable_version_upgrade: nil, encryption_at_rest: nil, enforce_https: nil, fine_grained_access_control: nil, logging: nil, node_to_node_encryption: nil, removal_policy: nil, security_groups: nil, tls_security_policy: nil, use_unsigned_basic_auth: nil, vpc: nil, vpc_subnets: nil, zone_awareness: nil)
  @version = version
  Jsii::Type.check_type(@version, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5FbGFzdGljc2VhcmNoVmVyc2lvbiJ9")), "version")
  @access_policies = access_policies
  Jsii::Type.check_type(@access_policies, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pYW0uUG9saWN5U3RhdGVtZW50In0sImtpbmQiOiJhcnJheSJ9fQ==")), "accessPolicies") unless @access_policies.nil?
  @advanced_options = advanced_options
  Jsii::Type.check_type(@advanced_options, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoibWFwIn19")), "advancedOptions") unless @advanced_options.nil?
  @automated_snapshot_start_hour = automated_snapshot_start_hour
  Jsii::Type.check_type(@automated_snapshot_start_hour, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "automatedSnapshotStartHour") unless @automated_snapshot_start_hour.nil?
  @capacity = capacity.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CapacityConfig.new(**capacity.transform_keys(&:to_sym)) : capacity
  Jsii::Type.check_type(@capacity, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5DYXBhY2l0eUNvbmZpZyJ9")), "capacity") unless @capacity.nil?
  @cognito_kibana_auth = cognito_kibana_auth.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CognitoOptions.new(**cognito_kibana_auth.transform_keys(&:to_sym)) : cognito_kibana_auth
  Jsii::Type.check_type(@cognito_kibana_auth, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5Db2duaXRvT3B0aW9ucyJ9")), "cognitoKibanaAuth") unless @cognito_kibana_auth.nil?
  @custom_endpoint = custom_endpoint.is_a?(Hash) ? ::AWSCDK::Elasticsearch::CustomEndpointOptions.new(**custom_endpoint.transform_keys(&:to_sym)) : custom_endpoint
  Jsii::Type.check_type(@custom_endpoint, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5DdXN0b21FbmRwb2ludE9wdGlvbnMifQ==")), "customEndpoint") unless @custom_endpoint.nil?
  @domain_name = domain_name
  Jsii::Type.check_type(@domain_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "domainName") unless @domain_name.nil?
  @ebs = ebs.is_a?(Hash) ? ::AWSCDK::Elasticsearch::EbsOptions.new(**ebs.transform_keys(&:to_sym)) : ebs
  Jsii::Type.check_type(@ebs, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5FYnNPcHRpb25zIn0=")), "ebs") unless @ebs.nil?
  @enable_version_upgrade = enable_version_upgrade
  Jsii::Type.check_type(@enable_version_upgrade, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "enableVersionUpgrade") unless @enable_version_upgrade.nil?
  @encryption_at_rest = encryption_at_rest.is_a?(Hash) ? ::AWSCDK::Elasticsearch::EncryptionAtRestOptions.new(**encryption_at_rest.transform_keys(&:to_sym)) : encryption_at_rest
  Jsii::Type.check_type(@encryption_at_rest, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5FbmNyeXB0aW9uQXRSZXN0T3B0aW9ucyJ9")), "encryptionAtRest") unless @encryption_at_rest.nil?
  @enforce_https = enforce_https
  Jsii::Type.check_type(@enforce_https, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "enforceHttps") unless @enforce_https.nil?
  @fine_grained_access_control = fine_grained_access_control.is_a?(Hash) ? ::AWSCDK::Elasticsearch::AdvancedSecurityOptions.new(**fine_grained_access_control.transform_keys(&:to_sym)) : fine_grained_access_control
  Jsii::Type.check_type(@fine_grained_access_control, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5BZHZhbmNlZFNlY3VyaXR5T3B0aW9ucyJ9")), "fineGrainedAccessControl") unless @fine_grained_access_control.nil?
  @logging = logging.is_a?(Hash) ? ::AWSCDK::Elasticsearch::LoggingOptions.new(**logging.transform_keys(&:to_sym)) : logging
  Jsii::Type.check_type(@logging, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5Mb2dnaW5nT3B0aW9ucyJ9")), "logging") unless @logging.nil?
  @node_to_node_encryption = node_to_node_encryption
  Jsii::Type.check_type(@node_to_node_encryption, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "nodeToNodeEncryption") unless @node_to_node_encryption.nil?
  @removal_policy = removal_policy
  Jsii::Type.check_type(@removal_policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZW1vdmFsUG9saWN5In0=")), "removalPolicy") unless @removal_policy.nil?
  @security_groups = security_groups
  Jsii::Type.check_type(@security_groups, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lYzIuSVNlY3VyaXR5R3JvdXAifSwia2luZCI6ImFycmF5In19")), "securityGroups") unless @security_groups.nil?
  @tls_security_policy = tls_security_policy
  Jsii::Type.check_type(@tls_security_policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5UTFNTZWN1cml0eVBvbGljeSJ9")), "tlsSecurityPolicy") unless @tls_security_policy.nil?
  @use_unsigned_basic_auth = use_unsigned_basic_auth
  Jsii::Type.check_type(@use_unsigned_basic_auth, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "useUnsignedBasicAuth") unless @use_unsigned_basic_auth.nil?
  @vpc = vpc
  Jsii::Type.check_type(@vpc, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLklWcGMifQ==")), "vpc") unless @vpc.nil?
  @vpc_subnets = vpc_subnets.is_a?(Array) ? vpc_subnets.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::EC2::SubnetSelection.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : vpc_subnets
  Jsii::Type.check_type(@vpc_subnets, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLmF3c19lYzIuU3VibmV0U2VsZWN0aW9uIn0sImtpbmQiOiJhcnJheSJ9fQ==")), "vpcSubnets") unless @vpc_subnets.nil?
  @zone_awareness = zone_awareness.is_a?(Hash) ? ::AWSCDK::Elasticsearch::ZoneAwarenessConfig.new(**zone_awareness.transform_keys(&:to_sym)) : zone_awareness
  Jsii::Type.check_type(@zone_awareness, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWxhc3RpY3NlYXJjaC5ab25lQXdhcmVuZXNzQ29uZmlnIn0=")), "zoneAwareness") unless @zone_awareness.nil?
end

Instance Attribute Details

#access_policiesArray<AWSCDK::IAM::PolicyStatement>? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - No access policies.

Domain Access policies.

Returns:



88
89
90
# File 'elasticsearch/domain_props.rb', line 88

def access_policies
  @access_policies
end

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

Deprecated.

use opensearchservice module instead

Note:

Default: - no advanced options are specified

Additional options to specify for the Amazon ES domain.



95
96
97
# File 'elasticsearch/domain_props.rb', line 95

def advanced_options
  @advanced_options
end

#automated_snapshot_start_hourNumeric? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - Hourly automated snapshots not used

The hour in UTC during which the service takes an automated daily snapshot of the indices in the Amazon ES domain.

Only applies for Elasticsearch versions below 5.3.

Returns:

  • (Numeric, nil)


104
105
106
# File 'elasticsearch/domain_props.rb', line 104

def automated_snapshot_start_hour
  @automated_snapshot_start_hour
end

#capacityAWSCDK::Elasticsearch::CapacityConfig? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - 1 r5.large.elasticsearch data node; no dedicated master nodes.

The cluster capacity configuration for the Amazon ES domain.



110
111
112
# File 'elasticsearch/domain_props.rb', line 110

def capacity
  @capacity
end

#cognito_kibana_authAWSCDK::Elasticsearch::CognitoOptions? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - Cognito not used for authentication to Kibana.

Configures Amazon ES to use Amazon Cognito authentication for Kibana.



116
117
118
# File 'elasticsearch/domain_props.rb', line 116

def cognito_kibana_auth
  @cognito_kibana_auth
end

#custom_endpointAWSCDK::Elasticsearch::CustomEndpointOptions? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - no custom domain endpoint will be configured

To configure a custom domain configure these options.

If you specify a Route53 hosted zone it will create a CNAME record and use DNS validation for the certificate



124
125
126
# File 'elasticsearch/domain_props.rb', line 124

def custom_endpoint
  @custom_endpoint
end

#domain_nameString? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - A name will be auto-generated.

Enforces a particular physical domain name.

Returns:

  • (String, nil)


130
131
132
# File 'elasticsearch/domain_props.rb', line 130

def domain_name
  @domain_name
end

#ebsAWSCDK::Elasticsearch::EbsOptions? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - 10 GiB General Purpose (SSD) volumes per node.

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

For more information, see Configuring EBS-based Storage in the Amazon Elasticsearch Service Developer Guide.



141
142
143
# File 'elasticsearch/domain_props.rb', line 141

def ebs
  @ebs
end

#enable_version_upgradeBoolean? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - false

To upgrade an Amazon ES domain to a new version of Elasticsearch rather than replacing the entire domain resource, use the EnableVersionUpgrade update policy.



148
149
150
# File 'elasticsearch/domain_props.rb', line 148

def enable_version_upgrade
  @enable_version_upgrade
end

#encryption_at_restAWSCDK::Elasticsearch::EncryptionAtRestOptions? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - No encryption at rest

Encryption at rest options for the cluster.



154
155
156
# File 'elasticsearch/domain_props.rb', line 154

def encryption_at_rest
  @encryption_at_rest
end

#enforce_httpsBoolean? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - false

True to require that all traffic to the domain arrive over HTTPS.

Returns:

  • (Boolean, nil)


160
161
162
# File 'elasticsearch/domain_props.rb', line 160

def enforce_https
  @enforce_https
end

#fine_grained_access_controlAWSCDK::Elasticsearch::AdvancedSecurityOptions? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - fine-grained access control is disabled

Specifies options for fine-grained access control.

Requires Elasticsearch version 6.7 or later. Enabling fine-grained access control also requires encryption of data at rest and node-to-node encryption, along with enforced HTTPS.



170
171
172
# File 'elasticsearch/domain_props.rb', line 170

def fine_grained_access_control
  @fine_grained_access_control
end

#loggingAWSCDK::Elasticsearch::LoggingOptions? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - No logs are published

Configuration log publishing configuration options.



176
177
178
# File 'elasticsearch/domain_props.rb', line 176

def logging
  @logging
end

#node_to_node_encryptionBoolean? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - Node to node encryption is not enabled.

Specify true to enable node to node encryption.

Requires Elasticsearch version 6.0 or later.

Returns:

  • (Boolean, nil)


184
185
186
# File 'elasticsearch/domain_props.rb', line 184

def node_to_node_encryption
  @node_to_node_encryption
end

#removal_policyAWSCDK::RemovalPolicy? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: RemovalPolicy.RETAIN

Policy to apply when the domain is removed from the stack.

Returns:



190
191
192
# File 'elasticsearch/domain_props.rb', line 190

def removal_policy
  @removal_policy
end

#security_groupsArray<AWSCDK::EC2::ISecurityGroup>? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - One new security group is created.

The list of security groups that are associated with the VPC endpoints for the domain.

Only used if vpc is specified.



199
200
201
# File 'elasticsearch/domain_props.rb', line 199

def security_groups
  @security_groups
end

#tls_security_policyAWSCDK::Elasticsearch::TLSSecurityPolicy? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - TLSSecurityPolicy.TLS_1_0

The minimum TLS version required for traffic to the domain.



205
206
207
# File 'elasticsearch/domain_props.rb', line 205

def tls_security_policy
  @tls_security_policy
end

#use_unsigned_basic_authBoolean? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - false

Configures the domain so that unsigned basic auth is enabled.

If no master user is provided a default master user with username admin and a dynamically generated password stored in KMS is created. The password can be retrieved by getting master_user_password from the domain instance.

Setting this to true will also add an access policy that allows unsigned access, enable node to node encryption, encryption at rest. If conflicting settings are encountered (like disabling encryption at rest) enabling this setting will cause a failure.

Returns:

  • (Boolean, nil)


220
221
222
# File 'elasticsearch/domain_props.rb', line 220

def use_unsigned_basic_auth
  @use_unsigned_basic_auth
end

#versionAWSCDK::Elasticsearch::ElasticsearchVersion (readonly)

Deprecated.

use opensearchservice module instead

The Elasticsearch version that your domain will leverage.



82
83
84
# File 'elasticsearch/domain_props.rb', line 82

def version
  @version
end

#vpcAWSCDK::EC2::IVPC? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - Domain is not placed in a VPC.

Place the domain inside this VPC.



227
228
229
# File 'elasticsearch/domain_props.rb', line 227

def vpc
  @vpc
end

#vpc_subnetsArray<AWSCDK::EC2::SubnetSelection>? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - All private subnets.

The specific vpc subnets the domain will be placed in.

You must provide one subnet for each Availability Zone that your domain uses. For example, you must specify three subnet IDs for a three Availability Zone domain.

Only used if vpc is specified.



240
241
242
# File 'elasticsearch/domain_props.rb', line 240

def vpc_subnets
  @vpc_subnets
end

#zone_awarenessAWSCDK::Elasticsearch::ZoneAwarenessConfig? (readonly)

Deprecated.

use opensearchservice module instead

Note:

Default: - no zone awareness (1 AZ)

The cluster zone awareness configuration for the Amazon ES domain.



246
247
248
# File 'elasticsearch/domain_props.rb', line 246

def zone_awareness
  @zone_awareness
end

Class Method Details

.jsii_propertiesObject



248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
# File 'elasticsearch/domain_props.rb', line 248

def self.jsii_properties
  {
    :version => "version",
    :access_policies => "accessPolicies",
    :advanced_options => "advancedOptions",
    :automated_snapshot_start_hour => "automatedSnapshotStartHour",
    :capacity => "capacity",
    :cognito_kibana_auth => "cognitoKibanaAuth",
    :custom_endpoint => "customEndpoint",
    :domain_name => "domainName",
    :ebs => "ebs",
    :enable_version_upgrade => "enableVersionUpgrade",
    :encryption_at_rest => "encryptionAtRest",
    :enforce_https => "enforceHttps",
    :fine_grained_access_control => "fineGrainedAccessControl",
    :logging => "logging",
    :node_to_node_encryption => "nodeToNodeEncryption",
    :removal_policy => "removalPolicy",
    :security_groups => "securityGroups",
    :tls_security_policy => "tlsSecurityPolicy",
    :use_unsigned_basic_auth => "useUnsignedBasicAuth",
    :vpc => "vpc",
    :vpc_subnets => "vpcSubnets",
    :zone_awareness => "zoneAwareness",
  }
end

Instance Method Details

#to_jsiiObject



275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# File 'elasticsearch/domain_props.rb', line 275

def to_jsii
  result = {}
  result.merge!({
    "version" => @version,
    "accessPolicies" => @access_policies,
    "advancedOptions" => @advanced_options,
    "automatedSnapshotStartHour" => @automated_snapshot_start_hour,
    "capacity" => @capacity,
    "cognitoKibanaAuth" => @cognito_kibana_auth,
    "customEndpoint" => @custom_endpoint,
    "domainName" => @domain_name,
    "ebs" => @ebs,
    "enableVersionUpgrade" => @enable_version_upgrade,
    "encryptionAtRest" => @encryption_at_rest,
    "enforceHttps" => @enforce_https,
    "fineGrainedAccessControl" => @fine_grained_access_control,
    "logging" => @logging,
    "nodeToNodeEncryption" => @node_to_node_encryption,
    "removalPolicy" => @removal_policy,
    "securityGroups" => @security_groups,
    "tlsSecurityPolicy" => @tls_security_policy,
    "useUnsignedBasicAuth" => @use_unsigned_basic_auth,
    "vpc" => @vpc,
    "vpcSubnets" => @vpc_subnets,
    "zoneAwareness" => @zone_awareness,
  })
  result.compact
end