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.527Z") @Stability(Stable) public class CfnDomain extends CfnResource implements IInspectable
A CloudFormation AWS::OpenSearchService::Domain.

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

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.opensearchservice.*;
 Object accessPolicies;
 CfnDomain cfnDomain = CfnDomain.Builder.create(this, "MyCfnDomain")
         .accessPolicies(accessPolicies)
         .advancedOptions(Map.of(
                 "advancedOptionsKey", "advancedOptions"))
         .advancedSecurityOptions(AdvancedSecurityOptionsInputProperty.builder()
                 .anonymousAuthDisableDate("anonymousAuthDisableDate")
                 .anonymousAuthEnabled(false)
                 .enabled(false)
                 .internalUserDatabaseEnabled(false)
                 .masterUserOptions(MasterUserOptionsProperty.builder()
                         .masterUserArn("masterUserArn")
                         .masterUserName("masterUserName")
                         .masterUserPassword("masterUserPassword")
                         .build())
                 .samlOptions(SAMLOptionsProperty.builder()
                         .enabled(false)
                         .idp(IdpProperty.builder()
                                 .entityId("entityId")
                                 .metadataContent("metadataContent")
                                 .build())
                         .masterBackendRole("masterBackendRole")
                         .masterUserName("masterUserName")
                         .rolesKey("rolesKey")
                         .sessionTimeoutMinutes(123)
                         .subjectKey("subjectKey")
                         .build())
                 .build())
         .clusterConfig(ClusterConfigProperty.builder()
                 .dedicatedMasterCount(123)
                 .dedicatedMasterEnabled(false)
                 .dedicatedMasterType("dedicatedMasterType")
                 .instanceCount(123)
                 .instanceType("instanceType")
                 .multiAzWithStandbyEnabled(false)
                 .warmCount(123)
                 .warmEnabled(false)
                 .warmType("warmType")
                 .zoneAwarenessConfig(ZoneAwarenessConfigProperty.builder()
                         .availabilityZoneCount(123)
                         .build())
                 .zoneAwarenessEnabled(false)
                 .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)
                 .throughput(123)
                 .volumeSize(123)
                 .volumeType("volumeType")
                 .build())
         .encryptionAtRestOptions(EncryptionAtRestOptionsProperty.builder()
                 .enabled(false)
                 .kmsKeyId("kmsKeyId")
                 .build())
         .engineVersion("engineVersion")
         .logPublishingOptions(Map.of(
                 "logPublishingOptionsKey", LogPublishingOptionProperty.builder()
                         .cloudWatchLogsLogGroupArn("cloudWatchLogsLogGroupArn")
                         .enabled(false)
                         .build()))
         .nodeToNodeEncryptionOptions(NodeToNodeEncryptionOptionsProperty.builder()
                 .enabled(false)
                 .build())
         .offPeakWindowOptions(OffPeakWindowOptionsProperty.builder()
                 .enabled(false)
                 .offPeakWindow(OffPeakWindowProperty.builder()
                         .windowStartTime(WindowStartTimeProperty.builder()
                                 .hours(123)
                                 .minutes(123)
                                 .build())
                         .build())
                 .build())
         .snapshotOptions(SnapshotOptionsProperty.builder()
                 .automatedSnapshotStartHour(123)
                 .build())
         .softwareUpdateOptions(SoftwareUpdateOptionsProperty.builder()
                 .autoSoftwareUpdateEnabled(false)
                 .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::OpenSearchService::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::OpenSearchService::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.
    • getAttrAdvancedSecurityOptionsAnonymousAuthDisableDate

      @Stability(Stable) @NotNull public String getAttrAdvancedSecurityOptionsAnonymousAuthDisableDate()
      Date and time when the migration period will be disabled.

      Only necessary when enabling fine-grained access control on an existing domain .

    • 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-1ab2cdefghij .
    • getAttrDomainEndpoint

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

      @Stability(Stable) @NotNull public IResolvable getAttrDomainEndpoints()
    • getAttrId

      @Stability(Stable) @NotNull public String getAttrId()
      The resource ID.

      For example, 123456789012/my-domain .

    • getAttrServiceSoftwareOptionsAutomatedUpdateDate

      @Stability(Stable) @NotNull public String getAttrServiceSoftwareOptionsAutomatedUpdateDate()
      The timestamp, in Epoch time, until which you can manually request a service software update.

      After this date, we automatically update your service software.

    • getAttrServiceSoftwareOptionsCancellable

      @Stability(Stable) @NotNull public IResolvable getAttrServiceSoftwareOptionsCancellable()
      True if you're able to cancel your service software version update.

      False if you can't cancel your service software update.

    • getAttrServiceSoftwareOptionsCurrentVersion

      @Stability(Stable) @NotNull public String getAttrServiceSoftwareOptionsCurrentVersion()
      The current service software version present on the domain.
    • getAttrServiceSoftwareOptionsDescription

      @Stability(Stable) @NotNull public String getAttrServiceSoftwareOptionsDescription()
      A description of the service software update status.
    • getAttrServiceSoftwareOptionsNewVersion

      @Stability(Stable) @NotNull public String getAttrServiceSoftwareOptionsNewVersion()
      The new service software version, if one is available.
    • getAttrServiceSoftwareOptionsOptionalDeployment

      @Stability(Stable) @NotNull public IResolvable getAttrServiceSoftwareOptionsOptionalDeployment()
      True if a service software is never automatically updated.

      False if a service software is automatically updated after the automated update date.

    • getAttrServiceSoftwareOptionsUpdateAvailable

      @Stability(Stable) @NotNull public IResolvable getAttrServiceSoftwareOptionsUpdateAvailable()
      True if you're able to update your service software version.

      False if you can't update your service software version.

    • getAttrServiceSoftwareOptionsUpdateStatus

      @Stability(Stable) @NotNull public String getAttrServiceSoftwareOptionsUpdateStatus()
      The status of your service software update.
    • 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 Guide .

    • 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 Guide .

    • getAdvancedOptions

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

      For more information, see AdvancedOptions in the OpenSearch Service API reference.

    • setAdvancedOptions

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

      For more information, see AdvancedOptions in the OpenSearch Service API reference.

    • setAdvancedOptions

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

      For more information, see AdvancedOptions in the OpenSearch Service API reference.

    • getAdvancedSecurityOptions

      @Stability(Stable) @Nullable public Object getAdvancedSecurityOptions()
      Specifies options for fine-grained access control and SAML authentication.

      If you specify advanced security options, you must also enable node-to-node encryption ( NodeToNodeEncryptionOptions ) and encryption at rest ( EncryptionAtRestOptions ). You must also enable EnforceHTTPS within DomainEndpointOptions , which requires HTTPS for all traffic to the domain.

    • setAdvancedSecurityOptions

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

      If you specify advanced security options, you must also enable node-to-node encryption ( NodeToNodeEncryptionOptions ) and encryption at rest ( EncryptionAtRestOptions ). You must also enable EnforceHTTPS within DomainEndpointOptions , which requires HTTPS for all traffic to the domain.

    • setAdvancedSecurityOptions

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

      If you specify advanced security options, you must also enable node-to-node encryption ( NodeToNodeEncryptionOptions ) and encryption at rest ( EncryptionAtRestOptions ). You must also enable EnforceHTTPS within DomainEndpointOptions , which requires HTTPS for all traffic to the domain.

    • getClusterConfig

      @Stability(Stable) @Nullable public Object getClusterConfig()
      Container for the cluster configuration of a domain.
    • setClusterConfig

      @Stability(Stable) public void setClusterConfig(@Nullable IResolvable value)
      Container for the cluster configuration of a domain.
    • setClusterConfig

      @Stability(Stable) public void setClusterConfig(@Nullable CfnDomain.ClusterConfigProperty value)
      Container for the cluster configuration of a domain.
    • 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.

      The name must have a minimum length of 3 and a maximum length of 28. 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 .

      Required when creating a new domain.

      If you specify a name, you can't 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.

      The name must have a minimum length of 3 and a maximum length of 28. 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 .

      Required when creating a new domain.

      If you specify a name, you can't 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 .

    • getEncryptionAtRestOptions

      @Stability(Stable) @Nullable public Object getEncryptionAtRestOptions()
      Whether the domain should encrypt data at rest, and if so, the AWS KMS 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 KMS 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 KMS key to use.

      See Encryption of data at rest for Amazon OpenSearch Service .

    • getEngineVersion

      @Stability(Stable) @Nullable public String getEngineVersion()
      The version of OpenSearch to use.

      The value must be in the format OpenSearch_X.Y or Elasticsearch_X.Y . If not specified, the latest version of OpenSearch is used. 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 EngineVersion without interruption. When EnableVersionUpgrade is set to false , or is not specified, updating EngineVersion results in replacement .

    • setEngineVersion

      @Stability(Stable) public void setEngineVersion(@Nullable String value)
      The version of OpenSearch to use.

      The value must be in the format OpenSearch_X.Y or Elasticsearch_X.Y . If not specified, the latest version of OpenSearch is used. 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 EngineVersion without interruption. When EnableVersionUpgrade is set to false , or is not specified, updating EngineVersion results in replacement .

    • 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. For the full syntax, see the examples .

    • 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. For the full syntax, see the examples .

    • 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. For the full syntax, see the examples .

    • 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 .

    • getOffPeakWindowOptions

      @Stability(Stable) @Nullable public Object getOffPeakWindowOptions()
      Options for a domain's off-peak window, during which OpenSearch Service can perform mandatory configuration changes on the domain.
    • setOffPeakWindowOptions

      @Stability(Stable) public void setOffPeakWindowOptions(@Nullable IResolvable value)
      Options for a domain's off-peak window, during which OpenSearch Service can perform mandatory configuration changes on the domain.
    • setOffPeakWindowOptions

      @Stability(Stable) public void setOffPeakWindowOptions(@Nullable CfnDomain.OffPeakWindowOptionsProperty value)
      Options for a domain's off-peak window, during which OpenSearch Service can perform mandatory configuration changes on the domain.
    • getSnapshotOptions

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

      The automated snapshot configuration for the OpenSearch Service domain indexes.

    • setSnapshotOptions

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

      The automated snapshot configuration for the OpenSearch Service domain indexes.

    • setSnapshotOptions

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

      The automated snapshot configuration for the OpenSearch Service domain indexes.

    • getSoftwareUpdateOptions

      @Stability(Stable) @Nullable public Object getSoftwareUpdateOptions()
      Options for configuring service software updates for a domain.
    • setSoftwareUpdateOptions

      @Stability(Stable) public void setSoftwareUpdateOptions(@Nullable IResolvable value)
      Options for configuring service software updates for a domain.
    • setSoftwareUpdateOptions

      @Stability(Stable) public void setSoftwareUpdateOptions(@Nullable CfnDomain.SoftwareUpdateOptionsProperty value)
      Options for configuring service software updates for a domain.
    • 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 .

      If you remove this entity altogether, along with its associated properties, it causes a replacement. You might encounter this scenario if you're updating your security configuration from a VPC to a public endpoint.

    • 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 .

      If you remove this entity altogether, along with its associated properties, it causes a replacement. You might encounter this scenario if you're updating your security configuration from a VPC to a public endpoint.

    • 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 .

      If you remove this entity altogether, along with its associated properties, it causes a replacement. You might encounter this scenario if you're updating your security configuration from a VPC to a public endpoint.