java.lang.Object
software.amazon.jsii.JsiiObject
All Implemented Interfaces:
IConstruct, IDependable, IInspectable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct

@Generated(value="jsii-pacmak/1.84.0 (build 5404dcf)", date="2023-06-19T16:30:44.427Z") @Stability(Stable) public class CfnDomain extends CfnResource implements IInspectable
A CloudFormation AWS::Elasticsearch::Domain.

The AWS::Elasticsearch::Domain resource creates an Amazon OpenSearch Service domain.

The AWS::Elasticsearch::Domain resource is being replaced by the AWS::OpenSearchService::Domain resource. While the legacy Elasticsearch resource and options are still supported, we recommend modifying your existing Cloudformation templates to use the new OpenSearch Service resource, which supports both OpenSearch and legacy Elasticsearch. For instructions to upgrade domains defined within CloudFormation from Elasticsearch to OpenSearch, see Remarks .

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.elasticsearch.*;
 Object accessPolicies;
 CfnDomain cfnDomain = CfnDomain.Builder.create(this, "MyCfnDomain")
         .accessPolicies(accessPolicies)
         .advancedOptions(Map.of(
                 "advancedOptionsKey", "advancedOptions"))
         .advancedSecurityOptions(AdvancedSecurityOptionsInputProperty.builder()
                 .anonymousAuthEnabled(false)
                 .enabled(false)
                 .internalUserDatabaseEnabled(false)
                 .masterUserOptions(MasterUserOptionsProperty.builder()
                         .masterUserArn("masterUserArn")
                         .masterUserName("masterUserName")
                         .masterUserPassword("masterUserPassword")
                         .build())
                 .build())
         .cognitoOptions(CognitoOptionsProperty.builder()
                 .enabled(false)
                 .identityPoolId("identityPoolId")
                 .roleArn("roleArn")
                 .userPoolId("userPoolId")
                 .build())
         .domainEndpointOptions(DomainEndpointOptionsProperty.builder()
                 .customEndpoint("customEndpoint")
                 .customEndpointCertificateArn("customEndpointCertificateArn")
                 .customEndpointEnabled(false)
                 .enforceHttps(false)
                 .tlsSecurityPolicy("tlsSecurityPolicy")
                 .build())
         .domainName("domainName")
         .ebsOptions(EBSOptionsProperty.builder()
                 .ebsEnabled(false)
                 .iops(123)
                 .volumeSize(123)
                 .volumeType("volumeType")
                 .build())
         .elasticsearchClusterConfig(ElasticsearchClusterConfigProperty.builder()
                 .coldStorageOptions(ColdStorageOptionsProperty.builder()
                         .enabled(false)
                         .build())
                 .dedicatedMasterCount(123)
                 .dedicatedMasterEnabled(false)
                 .dedicatedMasterType("dedicatedMasterType")
                 .instanceCount(123)
                 .instanceType("instanceType")
                 .warmCount(123)
                 .warmEnabled(false)
                 .warmType("warmType")
                 .zoneAwarenessConfig(ZoneAwarenessConfigProperty.builder()
                         .availabilityZoneCount(123)
                         .build())
                 .zoneAwarenessEnabled(false)
                 .build())
         .elasticsearchVersion("elasticsearchVersion")
         .encryptionAtRestOptions(EncryptionAtRestOptionsProperty.builder()
                 .enabled(false)
                 .kmsKeyId("kmsKeyId")
                 .build())
         .logPublishingOptions(Map.of(
                 "logPublishingOptionsKey", LogPublishingOptionProperty.builder()
                         .cloudWatchLogsLogGroupArn("cloudWatchLogsLogGroupArn")
                         .enabled(false)
                         .build()))
         .nodeToNodeEncryptionOptions(NodeToNodeEncryptionOptionsProperty.builder()
                 .enabled(false)
                 .build())
         .snapshotOptions(SnapshotOptionsProperty.builder()
                 .automatedSnapshotStartHour(123)
                 .build())
         .tags(List.of(CfnTag.builder()
                 .key("key")
                 .value("value")
                 .build()))
         .vpcOptions(VPCOptionsProperty.builder()
                 .securityGroupIds(List.of("securityGroupIds"))
                 .subnetIds(List.of("subnetIds"))
                 .build())
         .build();
 
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnDomain

      protected CfnDomain(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnDomain

      protected CfnDomain(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnDomain

      @Stability(Stable) public CfnDomain(@NotNull Construct scope, @NotNull String id, @Nullable CfnDomainProps props)
      Create a new AWS::Elasticsearch::Domain.

      Parameters:
      scope -
      • scope in which this resource is defined.
      This parameter is required.
      id -
      • scoped id of the resource.
      This parameter is required.
      props -
      • resource properties.
    • CfnDomain

      @Stability(Stable) public CfnDomain(@NotNull Construct scope, @NotNull String id)
      Create a new AWS::Elasticsearch::Domain.

      Parameters:
      scope -
      • scope in which this resource is defined.
      This parameter is required.
      id -
      • scoped id of the resource.
      This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector -
      • tree inspector to collect and process attributes.
      This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrArn

      @Stability(Stable) @NotNull public String getAttrArn()
      The Amazon Resource Name (ARN) of the domain, such as arn:aws:es:us-west-2:123456789012:domain/mystack-elasti-1ab2cdefghij .

      This returned value is the same as the one returned by AWS::Elasticsearch::Domain.DomainArn .

    • getAttrDomainEndpoint

      @Stability(Stable) @NotNull public String getAttrDomainEndpoint()
      The domain-specific endpoint that's used for requests to the OpenSearch APIs, such as search-mystack-elasti-1ab2cdefghij-ab1c2deckoyb3hofw7wpqa3cm.us-west-1.es.amazonaws.com .
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      An arbitrary set of tags (key–value pairs) to associate with the OpenSearch Service domain.
    • getAccessPolicies

      @Stability(Stable) @NotNull public Object getAccessPolicies()
      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.

    • setAccessPolicies

      @Stability(Stable) public void setAccessPolicies(@NotNull Object value)
      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.

    • getAdvancedOptions

      @Stability(Stable) @Nullable public Object getAdvancedOptions()
      Additional options to specify for the OpenSearch Service domain.

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

    • setAdvancedOptions

      @Stability(Stable) public void setAdvancedOptions(@Nullable IResolvable value)
      Additional options to specify for the OpenSearch Service domain.

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

    • setAdvancedOptions

      @Stability(Stable) public void setAdvancedOptions(@Nullable Map<String,String> value)
      Additional options to specify for the OpenSearch Service domain.

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

    • getAdvancedSecurityOptions

      @Stability(Stable) @Nullable public Object getAdvancedSecurityOptions()
      Specifies options for fine-grained access control.
    • setAdvancedSecurityOptions

      @Stability(Stable) public void setAdvancedSecurityOptions(@Nullable IResolvable value)
      Specifies options for fine-grained access control.
    • setAdvancedSecurityOptions

      @Stability(Stable) public void setAdvancedSecurityOptions(@Nullable CfnDomain.AdvancedSecurityOptionsInputProperty value)
      Specifies options for fine-grained access control.
    • getCognitoOptions

      @Stability(Stable) @Nullable public Object getCognitoOptions()
      Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards.
    • setCognitoOptions

      @Stability(Stable) public void setCognitoOptions(@Nullable IResolvable value)
      Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards.
    • setCognitoOptions

      @Stability(Stable) public void setCognitoOptions(@Nullable CfnDomain.CognitoOptionsProperty value)
      Configures OpenSearch Service to use Amazon Cognito authentication for OpenSearch Dashboards.
    • getDomainEndpointOptions

      @Stability(Stable) @Nullable public Object getDomainEndpointOptions()
      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.
    • setDomainEndpointOptions

      @Stability(Stable) public void setDomainEndpointOptions(@Nullable IResolvable value)
      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.
    • setDomainEndpointOptions

      @Stability(Stable) public void setDomainEndpointOptions(@Nullable CfnDomain.DomainEndpointOptionsProperty value)
      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.
    • getDomainName

      @Stability(Stable) @Nullable public String getDomainName()
      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, AWS 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.

    • setDomainName

      @Stability(Stable) public void setDomainName(@Nullable String value)
      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, AWS 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.

    • getEbsOptions

      @Stability(Stable) @Nullable public Object getEbsOptions()
      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 .

    • setEbsOptions

      @Stability(Stable) public void setEbsOptions(@Nullable IResolvable value)
      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 .

    • setEbsOptions

      @Stability(Stable) public void setEbsOptions(@Nullable CfnDomain.EBSOptionsProperty value)
      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 .

    • getElasticsearchClusterConfig

      @Stability(Stable) @Nullable public Object getElasticsearchClusterConfig()
      ElasticsearchClusterConfig is a property of the AWS::Elasticsearch::Domain resource that configures the cluster of an Amazon OpenSearch Service domain.
    • setElasticsearchClusterConfig

      @Stability(Stable) public void setElasticsearchClusterConfig(@Nullable IResolvable value)
      ElasticsearchClusterConfig is a property of the AWS::Elasticsearch::Domain resource that configures the cluster of an Amazon OpenSearch Service domain.
    • setElasticsearchClusterConfig

      @Stability(Stable) public void setElasticsearchClusterConfig(@Nullable CfnDomain.ElasticsearchClusterConfigProperty value)
      ElasticsearchClusterConfig is a property of the AWS::Elasticsearch::Domain resource that configures the cluster of an Amazon OpenSearch Service domain.
    • getElasticsearchVersion

      @Stability(Stable) @Nullable public String getElasticsearchVersion()
      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 .

    • setElasticsearchVersion

      @Stability(Stable) public void setElasticsearchVersion(@Nullable String value)
      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 .

    • getEncryptionAtRestOptions

      @Stability(Stable) @Nullable public Object getEncryptionAtRestOptions()
      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 .

    • setEncryptionAtRestOptions

      @Stability(Stable) public void setEncryptionAtRestOptions(@Nullable IResolvable value)
      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 .

    • setEncryptionAtRestOptions

      @Stability(Stable) public void setEncryptionAtRestOptions(@Nullable CfnDomain.EncryptionAtRestOptionsProperty value)
      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 .

    • getLogPublishingOptions

      @Stability(Stable) @Nullable public Object getLogPublishingOptions()
      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.

    • setLogPublishingOptions

      @Stability(Stable) public void setLogPublishingOptions(@Nullable IResolvable value)
      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.

    • setLogPublishingOptions

      @Stability(Stable) public void setLogPublishingOptions(@Nullable Map<String,Object> value)
      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.

    • getNodeToNodeEncryptionOptions

      @Stability(Stable) @Nullable public Object getNodeToNodeEncryptionOptions()
      Specifies whether node-to-node encryption is enabled.

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

    • setNodeToNodeEncryptionOptions

      @Stability(Stable) public void setNodeToNodeEncryptionOptions(@Nullable IResolvable value)
      Specifies whether node-to-node encryption is enabled.

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

    • setNodeToNodeEncryptionOptions

      @Stability(Stable) public void setNodeToNodeEncryptionOptions(@Nullable CfnDomain.NodeToNodeEncryptionOptionsProperty value)
      Specifies whether node-to-node encryption is enabled.

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

    • getSnapshotOptions

      @Stability(Stable) @Nullable public Object getSnapshotOptions()
      DEPRECATED .

      The automated snapshot configuration for the OpenSearch Service domain indices.

    • setSnapshotOptions

      @Stability(Stable) public void setSnapshotOptions(@Nullable IResolvable value)
      DEPRECATED .

      The automated snapshot configuration for the OpenSearch Service domain indices.

    • setSnapshotOptions

      @Stability(Stable) public void setSnapshotOptions(@Nullable CfnDomain.SnapshotOptionsProperty value)
      DEPRECATED .

      The automated snapshot configuration for the OpenSearch Service domain indices.

    • getVpcOptions

      @Stability(Stable) @Nullable public Object getVpcOptions()
      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 .

    • setVpcOptions

      @Stability(Stable) public void setVpcOptions(@Nullable IResolvable value)
      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 .

    • setVpcOptions

      @Stability(Stable) public void setVpcOptions(@Nullable CfnDomain.VPCOptionsProperty value)
      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 .