Class Domain


  • public class Domain
    extends com.pulumi.resources.CustomResource
    Manages an Amazon OpenSearch Domain. 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). Notable differences from Elasticsearch: OpenSearch uses `engineVersion` (vs `elasticsearchVersion`), versions are specified as `Elasticsearch_7.10` (vs `7.10`), `instanceType` values end in `search` (vs `elasticsearch`), and the service-linked role is `AWSServiceRoleForAmazonOpenSearchService`. Similarities: ARNs use `arn:aws:es:`, assume role policies reference `es.amazonaws.com`, and IAM policy actions are prefixed with `es:`. ## Example Usage ### Basic Usage
     
     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.ArrayList;
     import java.util.Arrays;
     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()
                 .clusterConfig(DomainClusterConfigArgs.builder()
                     .instanceType("r4.large.search")
                     .build())
                 .domainName("example")
                 .engineVersion("Elasticsearch_7.10")
                 .tags(Map.of("Domain", "TestDomain"))
                 .build());
     
         }
     }
     
     
    ### Access Policy > See also: `aws.opensearch.DomainPolicy` resource
     
     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.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementConditionArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     import com.pulumi.aws.opensearch.Domain;
     import com.pulumi.aws.opensearch.DomainArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     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(GetRegionArgs.builder()
                 .build());
     
             final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder()
                 .build());
     
             final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .conditions(GetPolicyDocumentStatementConditionArgs.builder()
                         .test("IpAddress")
                         .variable("aws:SourceIp")
                         .values("66.193.100.22/32")
                         .build())
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("*")
                         .identifiers("*")
                         .build())
                     .effect("Allow")
                     .actions("es:*")
                     .resources(String.format("arn:aws:es:%s:%s:domain/%s/*", current.region(),currentGetCallerIdentity.accountId(),domain))
                     .build())
                 .build());
     
             var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()
                 .domainName(domain)
                 .accessPolicies(example.json())
                 .build());
     
         }
     }
     
     
    ### Log publishing to CloudWatch Logs
     
     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.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     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.ArrayList;
     import java.util.Arrays;
     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()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("es.amazonaws.com")
                         .build())
                     .effect("Allow")
                     .actions(                
                         "logs:PutLogEvents",
                         "logs:PutLogEventsBatch",
                         "logs:CreateLogStream")
                     .resources("arn:aws:logs:*")
                     .build())
                 .build());
     
             var exampleLogResourcePolicy = new LogResourcePolicy("exampleLogResourcePolicy", LogResourcePolicyArgs.builder()
                 .policyName("example")
                 .policyDocument(example.json())
                 .build());
     
             var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()
                 .logPublishingOptions(DomainLogPublishingOptionArgs.builder()
                     .cloudwatchLogGroupArn(exampleLogGroup.arn())
                     .logType("INDEX_SLOW_LOGS")
                     .build())
                 .build());
     
         }
     }
     
     
    ### VPC based OpenSearch
     
     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.ec2.inputs.GetSubnetsFilterArgs;
     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.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     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.ArrayList;
     import java.util.Arrays;
     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.require("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.id())
                     .build())
                 .tags(Map.of("Tier", "private"))
                 .build());
     
             final var current = AwsFunctions.getRegion(GetRegionArgs.builder()
                 .build());
     
             final var currentGetCallerIdentity = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder()
                 .build());
     
             var exampleSecurityGroup = new SecurityGroup("exampleSecurityGroup", SecurityGroupArgs.builder()
                 .ingress(SecurityGroupIngressArgs.builder()
                     .fromPort(443)
                     .toPort(443)
                     .protocol("tcp")
                     .cidrBlocks(example.cidrBlock())
                     .build())
                 .name(String.format("%s-opensearch-%s", vpc,domain))
                 .description("Managed by Pulumi")
                 .vpcId(example.id())
                 .build());
     
             var exampleServiceLinkedRole = new ServiceLinkedRole("exampleServiceLinkedRole", ServiceLinkedRoleArgs.builder()
                 .awsServiceName("opensearchservice.amazonaws.com")
                 .build());
     
             final var exampleGetPolicyDocument = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("*")
                         .identifiers("*")
                         .build())
                     .effect("Allow")
                     .actions("es:*")
                     .resources(String.format("arn:aws:es:%s:%s:domain/%s/*", current.region(),currentGetCallerIdentity.accountId(),domain))
                     .build())
                 .build());
     
             var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()
                 .clusterConfig(DomainClusterConfigArgs.builder()
                     .instanceType("m4.large.search")
                     .zoneAwarenessEnabled(true)
                     .build())
                 .vpcOptions(DomainVpcOptionsArgs.builder()
                     .subnetIds(                
                         exampleGetSubnets.ids()[0],
                         exampleGetSubnets.ids()[1])
                     .securityGroupIds(exampleSecurityGroup.id())
                     .build())
                 .domainName(domain)
                 .engineVersion("OpenSearch_1.0")
                 .advancedOptions(Map.of("rest.action.multi.allow_explicit_index", "true"))
                 .accessPolicies(exampleGetPolicyDocument.json())
                 .tags(Map.of("Domain", "TestDomain"))
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(exampleServiceLinkedRole)
                     .build());
     
         }
     }
     
     
    ### 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
     
     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.ArrayList;
     import java.util.Arrays;
     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()
                 .clusterConfig(DomainClusterConfigArgs.builder()
                     .instanceType("r5.large.search")
                     .build())
                 .advancedSecurityOptions(DomainAdvancedSecurityOptionsArgs.builder()
                     .masterUserOptions(DomainAdvancedSecurityOptionsMasterUserOptionsArgs.builder()
                         .masterUserName("example")
                         .masterUserPassword("Barbarbarbar1!")
                         .build())
                     .enabled(false)
                     .anonymousAuthEnabled(true)
                     .internalUserDatabaseEnabled(true)
                     .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())
                 .domainName("ggkitty")
                 .engineVersion("Elasticsearch_7.1")
                 .build());
     
         }
     }
     
     
    ### Second apply Notice that the only change is `advanced_security_options.0.enabled` is now set to `true`.
     
     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.ArrayList;
     import java.util.Arrays;
     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()
                 .clusterConfig(DomainClusterConfigArgs.builder()
                     .instanceType("r5.large.search")
                     .build())
                 .advancedSecurityOptions(DomainAdvancedSecurityOptionsArgs.builder()
                     .masterUserOptions(DomainAdvancedSecurityOptionsMasterUserOptionsArgs.builder()
                         .masterUserName("example")
                         .masterUserPassword("Barbarbarbar1!")
                         .build())
                     .enabled(true)
                     .anonymousAuthEnabled(true)
                     .internalUserDatabaseEnabled(true)
                     .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())
                 .domainName("ggkitty")
                 .engineVersion("Elasticsearch_7.1")
                 .build());
     
         }
     }
     
     
    ## Import Using `pulumi import`, import OpenSearch domains using the `domainName`. 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.
      • aimlOptions

        public com.pulumi.core.Output<DomainAimlOptions> aimlOptions()
        Returns:
        Configuration block for parameters required to enable all machine learning features. 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.
      • dashboardEndpointV2

        public com.pulumi.core.Output<java.lang.String> dashboardEndpointV2()
        Returns:
        V2 domain endpoint for Dashboard that works with both IPv4 and IPv6 addresses, without HTTPS scheme.
      • deploymentStrategyOptions

        public com.pulumi.core.Output<DomainDeploymentStrategyOptions> deploymentStrategyOptions()
        Returns:
        Configuration block for the deployment strategy options of the domain. Detailed below.
      • domainEndpointOptions

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

        public com.pulumi.core.Output<java.lang.String> domainEndpointV2HostedZoneId()
        Returns:
        Dual stack hosted zone ID for the domain.
      • 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.
      • endpointV2

        public com.pulumi.core.Output<java.lang.String> endpointV2()
        Returns:
        V2 domain endpoint that works with both IPv4 and IPv6 addresses, 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.
      • identityCenterOptions

        public com.pulumi.core.Output<java.util.Optional<DomainIdentityCenterOptions>> identityCenterOptions()
        Returns:
        Configuration block for enabling and managing IAM Identity Center integration within a domain. Detailed below.
      • ipAddressType

        public com.pulumi.core.Output<java.lang.String> ipAddressType()
        Returns:
        The IP address type for the endpoint. Valid values are `ipv4` and `dualstack`.
      • 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.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • 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 `defaultTags` 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 `defaultTags` 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.