Class Domain


  • public class Domain
    extends com.pulumi.resources.CustomResource
    Manages an Amazon OpenSearch Domain. ## Elasticsearch vs. OpenSearch Amazon OpenSearch Service is the successor to Amazon Elasticsearch Service and supports OpenSearch and legacy Elasticsearch OSS (up to 7.10, the final open source version of the software). OpenSearch Domain configurations are similar in many ways to Elasticsearch Domain configurations. However, there are important differences including these: * OpenSearch has `engine_version` while Elasticsearch has `elasticsearch_version` * Versions are specified differently - _e.g._, `Elasticsearch_7.10` with OpenSearch vs. `7.10` for Elasticsearch. * `instance_type` argument values end in `search` for OpenSearch vs. `elasticsearch` for Elasticsearch (_e.g._, `t2.micro.search` vs. `t2.micro.elasticsearch`). * The AWS-managed service-linked role for OpenSearch is called `AWSServiceRoleForAmazonOpenSearchService` instead of `AWSServiceRoleForAmazonElasticsearchService` for Elasticsearch. There are also some potentially unexpected similarities in configurations: * ARNs for both are prefaced with `arn:aws:es:`. * Both OpenSearch and Elasticsearch use assume role policies that refer to the `Principal` `Service` as `es.amazonaws.com`. * IAM policy actions, such as those you will find in `access_policies`, are prefaced with `es:` for both. ## Example Usage ### Basic Usage <!--Start PulumiCodeChooser -->
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.opensearch.Domain;
     import com.pulumi.aws.opensearch.DomainArgs;
     import com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;
     import java.util.List;
     import java.util.ArrayList;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new Domain("example", DomainArgs.builder()        
                 .domainName("example")
                 .engineVersion("Elasticsearch_7.10")
                 .clusterConfig(DomainClusterConfigArgs.builder()
                     .instanceType("r4.large.search")
                     .build())
                 .tags(Map.of("Domain", "TestDomain"))
                 .build());
     
         }
     }
     
     
    <!--End PulumiCodeChooser --> ### Access Policy > See also: `aws.opensearch.DomainPolicy` resource <!--Start PulumiCodeChooser -->
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.AwsFunctions;
     import com.pulumi.aws.inputs.GetRegionArgs;
     import com.pulumi.aws.inputs.GetCallerIdentityArgs;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.opensearch.Domain;
     import com.pulumi.aws.opensearch.DomainArgs;
     import java.util.List;
     import java.util.ArrayList;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             final var config = ctx.config();
             final var domain = config.get("domain").orElse("tf-test");
             final var current = AwsFunctions.getRegion();
     
             final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity();
     
             final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .effect("Allow")
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("*")
                         .identifiers("*")
                         .build())
                     .actions("es:*")
                     .resources(String.format("arn:aws:es:%s:%s:domain/%s/*", current.applyValue(getRegionResult -> getRegionResult.name()),currentGetCallerIdentity.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()),domain))
                     .conditions(GetPolicyDocumentStatementConditionArgs.builder()
                         .test("IpAddress")
                         .variable("aws:SourceIp")
                         .values("66.193.100.22/32")
                         .build())
                     .build())
                 .build());
     
             var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()        
                 .domainName(domain)
                 .accessPolicies(example.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                 .build());
     
         }
     }
     
     
    <!--End PulumiCodeChooser --> ### Log publishing to CloudWatch Logs <!--Start PulumiCodeChooser -->
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.cloudwatch.LogGroup;
     import com.pulumi.aws.cloudwatch.LogGroupArgs;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.cloudwatch.LogResourcePolicy;
     import com.pulumi.aws.cloudwatch.LogResourcePolicyArgs;
     import com.pulumi.aws.opensearch.Domain;
     import com.pulumi.aws.opensearch.DomainArgs;
     import com.pulumi.aws.opensearch.inputs.DomainLogPublishingOptionArgs;
     import java.util.List;
     import java.util.ArrayList;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var exampleLogGroup = new LogGroup("exampleLogGroup", LogGroupArgs.builder()        
                 .name("example")
                 .build());
     
             final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .effect("Allow")
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("es.amazonaws.com")
                         .build())
                     .actions(                
                         "logs:PutLogEvents",
                         "logs:PutLogEventsBatch",
                         "logs:CreateLogStream")
                     .resources("arn:aws:logs:*")
                     .build())
                 .build());
     
             var exampleLogResourcePolicy = new LogResourcePolicy("exampleLogResourcePolicy", LogResourcePolicyArgs.builder()        
                 .policyName("example")
                 .policyDocument(example.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                 .build());
     
             var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()        
                 .logPublishingOptions(DomainLogPublishingOptionArgs.builder()
                     .cloudwatchLogGroupArn(exampleLogGroup.arn())
                     .logType("INDEX_SLOW_LOGS")
                     .build())
                 .build());
     
         }
     }
     
     
    <!--End PulumiCodeChooser --> ### VPC based OpenSearch <!--Start PulumiCodeChooser -->
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.ec2.Ec2Functions;
     import com.pulumi.aws.ec2.inputs.GetVpcArgs;
     import com.pulumi.aws.ec2.inputs.GetSubnetsArgs;
     import com.pulumi.aws.AwsFunctions;
     import com.pulumi.aws.inputs.GetRegionArgs;
     import com.pulumi.aws.inputs.GetCallerIdentityArgs;
     import com.pulumi.aws.ec2.SecurityGroup;
     import com.pulumi.aws.ec2.SecurityGroupArgs;
     import com.pulumi.aws.ec2.inputs.SecurityGroupIngressArgs;
     import com.pulumi.aws.iam.ServiceLinkedRole;
     import com.pulumi.aws.iam.ServiceLinkedRoleArgs;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.opensearch.Domain;
     import com.pulumi.aws.opensearch.DomainArgs;
     import com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;
     import com.pulumi.aws.opensearch.inputs.DomainVpcOptionsArgs;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.List;
     import java.util.ArrayList;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             final var config = ctx.config();
             final var vpc = config.get("vpc");
             final var domain = config.get("domain").orElse("tf-test");
             final var example = Ec2Functions.getVpc(GetVpcArgs.builder()
                 .tags(Map.of("Name", vpc))
                 .build());
     
             final var exampleGetSubnets = Ec2Functions.getSubnets(GetSubnetsArgs.builder()
                 .filters(GetSubnetsFilterArgs.builder()
                     .name("vpc-id")
                     .values(example.applyValue(getVpcResult -> getVpcResult.id()))
                     .build())
                 .tags(Map.of("Tier", "private"))
                 .build());
     
             final var current = AwsFunctions.getRegion();
     
             final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity();
     
             var exampleSecurityGroup = new SecurityGroup("exampleSecurityGroup", SecurityGroupArgs.builder()        
                 .name(String.format("%s-opensearch-%s", vpc,domain))
                 .description("Managed by Pulumi")
                 .vpcId(example.applyValue(getVpcResult -> getVpcResult.id()))
                 .ingress(SecurityGroupIngressArgs.builder()
                     .fromPort(443)
                     .toPort(443)
                     .protocol("tcp")
                     .cidrBlocks(example.applyValue(getVpcResult -> getVpcResult.cidrBlock()))
                     .build())
                 .build());
     
             var exampleServiceLinkedRole = new ServiceLinkedRole("exampleServiceLinkedRole", ServiceLinkedRoleArgs.builder()        
                 .awsServiceName("opensearchservice.amazonaws.com")
                 .build());
     
             final var exampleGetPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .effect("Allow")
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("*")
                         .identifiers("*")
                         .build())
                     .actions("es:*")
                     .resources(String.format("arn:aws:es:%s:%s:domain/%s/*", current.applyValue(getRegionResult -> getRegionResult.name()),currentGetCallerIdentity.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()),domain))
                     .build())
                 .build());
     
             var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()        
                 .domainName(domain)
                 .engineVersion("OpenSearch_1.0")
                 .clusterConfig(DomainClusterConfigArgs.builder()
                     .instanceType("m4.large.search")
                     .zoneAwarenessEnabled(true)
                     .build())
                 .vpcOptions(DomainVpcOptionsArgs.builder()
                     .subnetIds(                
                         exampleGetSubnets.applyValue(getSubnetsResult -> getSubnetsResult.ids()[0]),
                         exampleGetSubnets.applyValue(getSubnetsResult -> getSubnetsResult.ids()[1]))
                     .securityGroupIds(exampleSecurityGroup.id())
                     .build())
                 .advancedOptions(Map.of("rest.action.multi.allow_explicit_index", "true"))
                 .accessPolicies(exampleGetPolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                 .tags(Map.of("Domain", "TestDomain"))
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(exampleServiceLinkedRole)
                     .build());
     
         }
     }
     
     
    <!--End PulumiCodeChooser --> ### Enabling fine-grained access control on an existing domain This example shows two configurations: one to create a domain without fine-grained access control and the second to modify the domain to enable fine-grained access control. For more information, see [Enabling fine-grained access control](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html). ### First apply <!--Start PulumiCodeChooser -->
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.opensearch.Domain;
     import com.pulumi.aws.opensearch.DomainArgs;
     import com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;
     import com.pulumi.aws.opensearch.inputs.DomainAdvancedSecurityOptionsArgs;
     import com.pulumi.aws.opensearch.inputs.DomainAdvancedSecurityOptionsMasterUserOptionsArgs;
     import com.pulumi.aws.opensearch.inputs.DomainEncryptAtRestArgs;
     import com.pulumi.aws.opensearch.inputs.DomainDomainEndpointOptionsArgs;
     import com.pulumi.aws.opensearch.inputs.DomainNodeToNodeEncryptionArgs;
     import com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs;
     import java.util.List;
     import java.util.ArrayList;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new Domain("example", DomainArgs.builder()        
                 .domainName("ggkitty")
                 .engineVersion("Elasticsearch_7.1")
                 .clusterConfig(DomainClusterConfigArgs.builder()
                     .instanceType("r5.large.search")
                     .build())
                 .advancedSecurityOptions(DomainAdvancedSecurityOptionsArgs.builder()
                     .enabled(false)
                     .anonymousAuthEnabled(true)
                     .internalUserDatabaseEnabled(true)
                     .masterUserOptions(DomainAdvancedSecurityOptionsMasterUserOptionsArgs.builder()
                         .masterUserName("example")
                         .masterUserPassword("Barbarbarbar1!")
                         .build())
                     .build())
                 .encryptAtRest(DomainEncryptAtRestArgs.builder()
                     .enabled(true)
                     .build())
                 .domainEndpointOptions(DomainDomainEndpointOptionsArgs.builder()
                     .enforceHttps(true)
                     .tlsSecurityPolicy("Policy-Min-TLS-1-2-2019-07")
                     .build())
                 .nodeToNodeEncryption(DomainNodeToNodeEncryptionArgs.builder()
                     .enabled(true)
                     .build())
                 .ebsOptions(DomainEbsOptionsArgs.builder()
                     .ebsEnabled(true)
                     .volumeSize(10)
                     .build())
                 .build());
     
         }
     }
     
     
    <!--End PulumiCodeChooser --> ### Second apply Notice that the only change is `advanced_security_options.0.enabled` is now set to `true`. <!--Start PulumiCodeChooser -->
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.opensearch.Domain;
     import com.pulumi.aws.opensearch.DomainArgs;
     import com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;
     import com.pulumi.aws.opensearch.inputs.DomainAdvancedSecurityOptionsArgs;
     import com.pulumi.aws.opensearch.inputs.DomainAdvancedSecurityOptionsMasterUserOptionsArgs;
     import com.pulumi.aws.opensearch.inputs.DomainEncryptAtRestArgs;
     import com.pulumi.aws.opensearch.inputs.DomainDomainEndpointOptionsArgs;
     import com.pulumi.aws.opensearch.inputs.DomainNodeToNodeEncryptionArgs;
     import com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs;
     import java.util.List;
     import java.util.ArrayList;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new Domain("example", DomainArgs.builder()        
                 .domainName("ggkitty")
                 .engineVersion("Elasticsearch_7.1")
                 .clusterConfig(DomainClusterConfigArgs.builder()
                     .instanceType("r5.large.search")
                     .build())
                 .advancedSecurityOptions(DomainAdvancedSecurityOptionsArgs.builder()
                     .enabled(true)
                     .anonymousAuthEnabled(true)
                     .internalUserDatabaseEnabled(true)
                     .masterUserOptions(DomainAdvancedSecurityOptionsMasterUserOptionsArgs.builder()
                         .masterUserName("example")
                         .masterUserPassword("Barbarbarbar1!")
                         .build())
                     .build())
                 .encryptAtRest(DomainEncryptAtRestArgs.builder()
                     .enabled(true)
                     .build())
                 .domainEndpointOptions(DomainDomainEndpointOptionsArgs.builder()
                     .enforceHttps(true)
                     .tlsSecurityPolicy("Policy-Min-TLS-1-2-2019-07")
                     .build())
                 .nodeToNodeEncryption(DomainNodeToNodeEncryptionArgs.builder()
                     .enabled(true)
                     .build())
                 .ebsOptions(DomainEbsOptionsArgs.builder()
                     .ebsEnabled(true)
                     .volumeSize(10)
                     .build())
                 .build());
     
         }
     }
     
     
    <!--End PulumiCodeChooser --> ## Import Using `pulumi import`, import OpenSearch domains using the `domain_name`. For example: ```sh $ pulumi import aws:opensearch/domain:Domain example domain_name ```
    • Constructor Detail

      • Domain

        public Domain​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • Domain

        public Domain​(java.lang.String name,
                      @Nullable
                      DomainArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • Domain

        public Domain​(java.lang.String name,
                      @Nullable
                      DomainArgs args,
                      @Nullable
                      com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • accessPolicies

        public com.pulumi.core.Output<java.lang.String> accessPolicies()
        Returns:
        IAM policy document specifying the access policies for the domain.
      • advancedOptions

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> advancedOptions()
        Returns:
        Key-value string pairs to specify advanced configuration options. Note that the values for these configuration options must be strings (wrapped in quotes) or they may be wrong and cause a perpetual diff, causing the provider to want to recreate your OpenSearch domain on every apply.
      • advancedSecurityOptions

        public com.pulumi.core.Output<DomainAdvancedSecurityOptions> advancedSecurityOptions()
        Returns:
        Configuration block for [fine-grained access control](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html). Detailed below.
      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the domain.
      • autoTuneOptions

        public com.pulumi.core.Output<DomainAutoTuneOptions> autoTuneOptions()
        Returns:
        Configuration block for the Auto-Tune options of the domain. Detailed below.
      • clusterConfig

        public com.pulumi.core.Output<DomainClusterConfig> clusterConfig()
        Returns:
        Configuration block for the cluster of the domain. Detailed below.
      • cognitoOptions

        public com.pulumi.core.Output<java.util.Optional<DomainCognitoOptions>> cognitoOptions()
        Returns:
        Configuration block for authenticating dashboard with Cognito. Detailed below.
      • dashboardEndpoint

        public com.pulumi.core.Output<java.lang.String> dashboardEndpoint()
        Returns:
        Domain-specific endpoint for Dashboard without https scheme.
      • domainEndpointOptions

        public com.pulumi.core.Output<DomainDomainEndpointOptions> domainEndpointOptions()
        Returns:
        Configuration block for domain endpoint HTTP(S) related options. Detailed below.
      • domainId

        public com.pulumi.core.Output<java.lang.String> domainId()
        Returns:
        Unique identifier for the domain.
      • domainName

        public com.pulumi.core.Output<java.lang.String> domainName()
        Returns:
        Name of the domain. The following arguments are optional:
      • ebsOptions

        public com.pulumi.core.Output<DomainEbsOptions> ebsOptions()
        Returns:
        Configuration block for EBS related options, may be required based on chosen [instance size](https://aws.amazon.com/opensearch-service/pricing/). Detailed below.
      • encryptAtRest

        public com.pulumi.core.Output<DomainEncryptAtRest> encryptAtRest()
        Returns:
        Configuration block for encrypt at rest options. Only available for [certain instance types](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/encryption-at-rest.html). Detailed below.
      • endpoint

        public com.pulumi.core.Output<java.lang.String> endpoint()
        Returns:
        Domain-specific endpoint used to submit index, search, and data upload requests.
      • engineVersion

        public com.pulumi.core.Output<java.lang.String> engineVersion()
        Returns:
        Either `Elasticsearch_X.Y` or `OpenSearch_X.Y` to specify the engine version for the Amazon OpenSearch Service domain. For example, `OpenSearch_1.0` or `Elasticsearch_7.9`. See [Creating and managing Amazon OpenSearch Service domains](http://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html#createdomains). Defaults to the lastest version of OpenSearch.
      • kibanaEndpoint

        public com.pulumi.core.Output<java.lang.String> kibanaEndpoint()
        Returns:
        (**Deprecated**) Domain-specific endpoint for kibana without https scheme. Use the `dashboard_endpoint` attribute instead.
      • logPublishingOptions

        public com.pulumi.core.Output<java.util.Optional<java.util.List<DomainLogPublishingOption>>> logPublishingOptions()
        Returns:
        Configuration block for publishing slow and application logs to CloudWatch Logs. This block can be declared multiple times, for each log_type, within the same resource. Detailed below.
      • nodeToNodeEncryption

        public com.pulumi.core.Output<DomainNodeToNodeEncryption> nodeToNodeEncryption()
        Returns:
        Configuration block for node-to-node encryption options. Detailed below.
      • offPeakWindowOptions

        public com.pulumi.core.Output<DomainOffPeakWindowOptions> offPeakWindowOptions()
        Returns:
        Configuration to add Off Peak update options. ([documentation](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/off-peak.html)). Detailed below.
      • snapshotOptions

        public com.pulumi.core.Output<java.util.Optional<DomainSnapshotOptions>> snapshotOptions()
        Returns:
        Configuration block for snapshot related options. Detailed below. DEPRECATED. For domains running OpenSearch 5.3 and later, Amazon OpenSearch takes hourly automated snapshots, making this setting irrelevant. For domains running earlier versions, OpenSearch takes daily automated snapshots.
      • softwareUpdateOptions

        public com.pulumi.core.Output<DomainSoftwareUpdateOptions> softwareUpdateOptions()
        Returns:
        Software update options for the domain. Detailed below.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
      • vpcOptions

        public com.pulumi.core.Output<java.util.Optional<DomainVpcOptions>> vpcOptions()
        Returns:
        Configuration block for VPC related options. Adding or removing this configuration forces a new resource ([documentation](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/vpc.html)). Detailed below.
      • get

        public static Domain get​(java.lang.String name,
                                 com.pulumi.core.Output<java.lang.String> id,
                                 @Nullable
                                 DomainState state,
                                 @Nullable
                                 com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.