Try AWS Native preview for resources not in the classic version.
aws.opensearch.Domain
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
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 haselasticsearch_version
- Versions are specified differently - e.g.,
Elasticsearch_7.10
with OpenSearch vs.7.10
for Elasticsearch. instance_type
argument values end insearch
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 ofAWSServiceRoleForAmazonElasticsearchService
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
ases.amazonaws.com
. - IAM policy actions, such as those you will find in
access_policies
, are prefaced withes:
for both.
Example Usage
Basic Usage
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.OpenSearch.Domain("example", new()
{
ClusterConfig = new Aws.OpenSearch.Inputs.DomainClusterConfigArgs
{
InstanceType = "r4.large.search",
},
EngineVersion = "Elasticsearch_7.10",
Tags =
{
{ "Domain", "TestDomain" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := opensearch.NewDomain(ctx, "example", &opensearch.DomainArgs{
ClusterConfig: &opensearch.DomainClusterConfigArgs{
InstanceType: pulumi.String("r4.large.search"),
},
EngineVersion: pulumi.String("Elasticsearch_7.10"),
Tags: pulumi.StringMap{
"Domain": pulumi.String("TestDomain"),
},
})
if err != nil {
return err
}
return nil
})
}
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()
.clusterConfig(DomainClusterConfigArgs.builder()
.instanceType("r4.large.search")
.build())
.engineVersion("Elasticsearch_7.10")
.tags(Map.of("Domain", "TestDomain"))
.build());
}
}
import pulumi
import pulumi_aws as aws
example = aws.opensearch.Domain("example",
cluster_config=aws.opensearch.DomainClusterConfigArgs(
instance_type="r4.large.search",
),
engine_version="Elasticsearch_7.10",
tags={
"Domain": "TestDomain",
})
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.opensearch.Domain("example", {
clusterConfig: {
instanceType: "r4.large.search",
},
engineVersion: "Elasticsearch_7.10",
tags: {
Domain: "TestDomain",
},
});
resources:
example:
type: aws:opensearch:Domain
properties:
clusterConfig:
instanceType: r4.large.search
engineVersion: Elasticsearch_7.10
tags:
Domain: TestDomain
Access Policy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var domain = config.Get("domain") ?? "tf-test";
var currentRegion = Aws.GetRegion.Invoke();
var currentCallerIdentity = Aws.GetCallerIdentity.Invoke();
var examplePolicyDocument = Aws.Iam.GetPolicyDocument.Invoke(new()
{
Statements = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
{
Effect = "Allow",
Principals = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
{
Type = "*",
Identifiers = new[]
{
"*",
},
},
},
Actions = new[]
{
"es:*",
},
Resources = new[]
{
$"arn:aws:es:{currentRegion.Apply(getRegionResult => getRegionResult.Name)}:{currentCallerIdentity.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId)}:domain/{domain}/*",
},
Conditions = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs
{
Test = "IpAddress",
Variable = "aws:SourceIp",
Values = new[]
{
"66.193.100.22/32",
},
},
},
},
},
});
var exampleDomain = new Aws.OpenSearch.Domain("exampleDomain", new()
{
AccessPolicies = examplePolicyDocument.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
domain := "tf-test"
if param := cfg.Get("domain"); param != "" {
domain = param
}
currentRegion, err := aws.GetRegion(ctx, nil, nil)
if err != nil {
return err
}
currentCallerIdentity, err := aws.GetCallerIdentity(ctx, nil, nil)
if err != nil {
return err
}
examplePolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
Statements: []iam.GetPolicyDocumentStatement{
{
Effect: pulumi.StringRef("Allow"),
Principals: []iam.GetPolicyDocumentStatementPrincipal{
{
Type: "*",
Identifiers: []string{
"*",
},
},
},
Actions: []string{
"es:*",
},
Resources: []string{
fmt.Sprintf("arn:aws:es:%v:%v:domain/%v/*", currentRegion.Name, currentCallerIdentity.AccountId, domain),
},
Conditions: []iam.GetPolicyDocumentStatementCondition{
{
Test: "IpAddress",
Variable: "aws:SourceIp",
Values: []string{
"66.193.100.22/32",
},
},
},
},
},
}, nil)
if err != nil {
return err
}
_, err = opensearch.NewDomain(ctx, "exampleDomain", &opensearch.DomainArgs{
AccessPolicies: *pulumi.String(examplePolicyDocument.Json),
})
if err != nil {
return err
}
return nil
})
}
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 currentRegion = AwsFunctions.getRegion();
final var currentCallerIdentity = AwsFunctions.getCallerIdentity();
final var examplePolicyDocument = 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/*", currentRegion.applyValue(getRegionResult -> getRegionResult.name()),currentCallerIdentity.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()
.accessPolicies(examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
}
}
import pulumi
import pulumi_aws as aws
config = pulumi.Config()
domain = config.get("domain")
if domain is None:
domain = "tf-test"
current_region = aws.get_region()
current_caller_identity = aws.get_caller_identity()
example_policy_document = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
effect="Allow",
principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
type="*",
identifiers=["*"],
)],
actions=["es:*"],
resources=[f"arn:aws:es:{current_region.name}:{current_caller_identity.account_id}:domain/{domain}/*"],
conditions=[aws.iam.GetPolicyDocumentStatementConditionArgs(
test="IpAddress",
variable="aws:SourceIp",
values=["66.193.100.22/32"],
)],
)])
example_domain = aws.opensearch.Domain("exampleDomain", access_policies=example_policy_document.json)
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const config = new pulumi.Config();
const domain = config.get("domain") || "tf-test";
const currentRegion = aws.getRegion({});
const currentCallerIdentity = aws.getCallerIdentity({});
const examplePolicyDocument = Promise.all([currentRegion, currentCallerIdentity]).then(([currentRegion, currentCallerIdentity]) => aws.iam.getPolicyDocument({
statements: [{
effect: "Allow",
principals: [{
type: "*",
identifiers: ["*"],
}],
actions: ["es:*"],
resources: [`arn:aws:es:${currentRegion.name}:${currentCallerIdentity.accountId}:domain/${domain}/*`],
conditions: [{
test: "IpAddress",
variable: "aws:SourceIp",
values: ["66.193.100.22/32"],
}],
}],
}));
const exampleDomain = new aws.opensearch.Domain("exampleDomain", {accessPolicies: examplePolicyDocument.then(examplePolicyDocument => examplePolicyDocument.json)});
configuration:
domain:
type: string
default: tf-test
resources:
exampleDomain:
type: aws:opensearch:Domain
properties:
accessPolicies: ${examplePolicyDocument.json}
variables:
currentRegion:
fn::invoke:
Function: aws:getRegion
Arguments: {}
currentCallerIdentity:
fn::invoke:
Function: aws:getCallerIdentity
Arguments: {}
examplePolicyDocument:
fn::invoke:
Function: aws:iam:getPolicyDocument
Arguments:
statements:
- effect: Allow
principals:
- type: '*'
identifiers:
- '*'
actions:
- es:*
resources:
- arn:aws:es:${currentRegion.name}:${currentCallerIdentity.accountId}:domain/${domain}/*
conditions:
- test: IpAddress
variable: aws:SourceIp
values:
- 66.193.100.22/32
Log publishing to CloudWatch Logs
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var exampleLogGroup = new Aws.CloudWatch.LogGroup("exampleLogGroup");
var examplePolicyDocument = Aws.Iam.GetPolicyDocument.Invoke(new()
{
Statements = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
{
Effect = "Allow",
Principals = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
{
Type = "Service",
Identifiers = new[]
{
"es.amazonaws.com",
},
},
},
Actions = new[]
{
"logs:PutLogEvents",
"logs:PutLogEventsBatch",
"logs:CreateLogStream",
},
Resources = new[]
{
"arn:aws:logs:*",
},
},
},
});
var exampleLogResourcePolicy = new Aws.CloudWatch.LogResourcePolicy("exampleLogResourcePolicy", new()
{
PolicyName = "example",
PolicyDocument = examplePolicyDocument.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
});
// .. other configuration ...
var exampleDomain = new Aws.OpenSearch.Domain("exampleDomain", new()
{
LogPublishingOptions = new[]
{
new Aws.OpenSearch.Inputs.DomainLogPublishingOptionArgs
{
CloudwatchLogGroupArn = exampleLogGroup.Arn,
LogType = "INDEX_SLOW_LOGS",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleLogGroup, err := cloudwatch.NewLogGroup(ctx, "exampleLogGroup", nil)
if err != nil {
return err
}
examplePolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
Statements: []iam.GetPolicyDocumentStatement{
{
Effect: pulumi.StringRef("Allow"),
Principals: []iam.GetPolicyDocumentStatementPrincipal{
{
Type: "Service",
Identifiers: []string{
"es.amazonaws.com",
},
},
},
Actions: []string{
"logs:PutLogEvents",
"logs:PutLogEventsBatch",
"logs:CreateLogStream",
},
Resources: []string{
"arn:aws:logs:*",
},
},
},
}, nil)
if err != nil {
return err
}
_, err = cloudwatch.NewLogResourcePolicy(ctx, "exampleLogResourcePolicy", &cloudwatch.LogResourcePolicyArgs{
PolicyName: pulumi.String("example"),
PolicyDocument: *pulumi.String(examplePolicyDocument.Json),
})
if err != nil {
return err
}
_, err = opensearch.NewDomain(ctx, "exampleDomain", &opensearch.DomainArgs{
LogPublishingOptions: opensearch.DomainLogPublishingOptionArray{
&opensearch.DomainLogPublishingOptionArgs{
CloudwatchLogGroupArn: exampleLogGroup.Arn,
LogType: pulumi.String("INDEX_SLOW_LOGS"),
},
},
})
if err != nil {
return err
}
return nil
})
}
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.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");
final var examplePolicyDocument = 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(examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.build());
var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()
.logPublishingOptions(DomainLogPublishingOptionArgs.builder()
.cloudwatchLogGroupArn(exampleLogGroup.arn())
.logType("INDEX_SLOW_LOGS")
.build())
.build());
}
}
import pulumi
import pulumi_aws as aws
example_log_group = aws.cloudwatch.LogGroup("exampleLogGroup")
example_policy_document = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
effect="Allow",
principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
type="Service",
identifiers=["es.amazonaws.com"],
)],
actions=[
"logs:PutLogEvents",
"logs:PutLogEventsBatch",
"logs:CreateLogStream",
],
resources=["arn:aws:logs:*"],
)])
example_log_resource_policy = aws.cloudwatch.LogResourcePolicy("exampleLogResourcePolicy",
policy_name="example",
policy_document=example_policy_document.json)
# .. other configuration ...
example_domain = aws.opensearch.Domain("exampleDomain", log_publishing_options=[aws.opensearch.DomainLogPublishingOptionArgs(
cloudwatch_log_group_arn=example_log_group.arn,
log_type="INDEX_SLOW_LOGS",
)])
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const exampleLogGroup = new aws.cloudwatch.LogGroup("exampleLogGroup", {});
const examplePolicyDocument = aws.iam.getPolicyDocument({
statements: [{
effect: "Allow",
principals: [{
type: "Service",
identifiers: ["es.amazonaws.com"],
}],
actions: [
"logs:PutLogEvents",
"logs:PutLogEventsBatch",
"logs:CreateLogStream",
],
resources: ["arn:aws:logs:*"],
}],
});
const exampleLogResourcePolicy = new aws.cloudwatch.LogResourcePolicy("exampleLogResourcePolicy", {
policyName: "example",
policyDocument: examplePolicyDocument.then(examplePolicyDocument => examplePolicyDocument.json),
});
// .. other configuration ...
const exampleDomain = new aws.opensearch.Domain("exampleDomain", {logPublishingOptions: [{
cloudwatchLogGroupArn: exampleLogGroup.arn,
logType: "INDEX_SLOW_LOGS",
}]});
resources:
exampleLogGroup:
type: aws:cloudwatch:LogGroup
exampleLogResourcePolicy:
type: aws:cloudwatch:LogResourcePolicy
properties:
policyName: example
policyDocument: ${examplePolicyDocument.json}
exampleDomain:
type: aws:opensearch:Domain
properties:
logPublishingOptions:
- cloudwatchLogGroupArn: ${exampleLogGroup.arn}
logType: INDEX_SLOW_LOGS
variables:
examplePolicyDocument:
fn::invoke:
Function: aws:iam:getPolicyDocument
Arguments:
statements:
- effect: Allow
principals:
- type: Service
identifiers:
- es.amazonaws.com
actions:
- logs:PutLogEvents
- logs:PutLogEventsBatch
- logs:CreateLogStream
resources:
- arn:aws:logs:*
VPC based OpenSearch
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var vpc = config.RequireObject<dynamic>("vpc");
var domain = config.Get("domain") ?? "tf-test";
var exampleVpc = Aws.Ec2.GetVpc.Invoke(new()
{
Tags =
{
{ "Name", vpc },
},
});
var exampleSubnets = Aws.Ec2.GetSubnets.Invoke(new()
{
Filters = new[]
{
new Aws.Ec2.Inputs.GetSubnetsFilterInputArgs
{
Name = "vpc-id",
Values = new[]
{
exampleVpc.Apply(getVpcResult => getVpcResult.Id),
},
},
},
Tags =
{
{ "Tier", "private" },
},
});
var currentRegion = Aws.GetRegion.Invoke();
var currentCallerIdentity = Aws.GetCallerIdentity.Invoke();
var exampleSecurityGroup = new Aws.Ec2.SecurityGroup("exampleSecurityGroup", new()
{
Description = "Managed by Pulumi",
VpcId = exampleVpc.Apply(getVpcResult => getVpcResult.Id),
Ingress = new[]
{
new Aws.Ec2.Inputs.SecurityGroupIngressArgs
{
FromPort = 443,
ToPort = 443,
Protocol = "tcp",
CidrBlocks = new[]
{
exampleVpc.Apply(getVpcResult => getVpcResult.CidrBlock),
},
},
},
});
var exampleServiceLinkedRole = new Aws.Iam.ServiceLinkedRole("exampleServiceLinkedRole", new()
{
AwsServiceName = "opensearchservice.amazonaws.com",
});
var examplePolicyDocument = Aws.Iam.GetPolicyDocument.Invoke(new()
{
Statements = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
{
Effect = "Allow",
Principals = new[]
{
new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
{
Type = "*",
Identifiers = new[]
{
"*",
},
},
},
Actions = new[]
{
"es:*",
},
Resources = new[]
{
$"arn:aws:es:{currentRegion.Apply(getRegionResult => getRegionResult.Name)}:{currentCallerIdentity.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId)}:domain/{domain}/*",
},
},
},
});
var exampleDomain = new Aws.OpenSearch.Domain("exampleDomain", new()
{
EngineVersion = "OpenSearch_1.0",
ClusterConfig = new Aws.OpenSearch.Inputs.DomainClusterConfigArgs
{
InstanceType = "m4.large.search",
ZoneAwarenessEnabled = true,
},
VpcOptions = new Aws.OpenSearch.Inputs.DomainVpcOptionsArgs
{
SubnetIds = new[]
{
exampleSubnets.Apply(getSubnetsResult => getSubnetsResult.Ids[0]),
exampleSubnets.Apply(getSubnetsResult => getSubnetsResult.Ids[1]),
},
SecurityGroupIds = new[]
{
exampleSecurityGroup.Id,
},
},
AdvancedOptions =
{
{ "rest.action.multi.allow_explicit_index", "true" },
},
AccessPolicies = examplePolicyDocument.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
Tags =
{
{ "Domain", "TestDomain" },
},
}, new CustomResourceOptions
{
DependsOn = new[]
{
exampleServiceLinkedRole,
},
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
vpc := cfg.RequireObject("vpc")
domain := "tf-test";
if param := cfg.Get("domain"); param != ""{
domain = param
}
exampleVpc, err := ec2.LookupVpc(ctx, &ec2.LookupVpcArgs{
Tags: interface{}{
Name: vpc,
},
}, nil);
if err != nil {
return err
}
exampleSubnets, err := ec2.GetSubnets(ctx, &ec2.GetSubnetsArgs{
Filters: []ec2.GetSubnetsFilter{
{
Name: "vpc-id",
Values: interface{}{
exampleVpc.Id,
},
},
},
Tags: map[string]interface{}{
"Tier": "private",
},
}, nil);
if err != nil {
return err
}
currentRegion, err := aws.GetRegion(ctx, nil, nil);
if err != nil {
return err
}
currentCallerIdentity, err := aws.GetCallerIdentity(ctx, nil, nil);
if err != nil {
return err
}
exampleSecurityGroup, err := ec2.NewSecurityGroup(ctx, "exampleSecurityGroup", &ec2.SecurityGroupArgs{
Description: pulumi.String("Managed by Pulumi"),
VpcId: *pulumi.String(exampleVpc.Id),
Ingress: ec2.SecurityGroupIngressArray{
&ec2.SecurityGroupIngressArgs{
FromPort: pulumi.Int(443),
ToPort: pulumi.Int(443),
Protocol: pulumi.String("tcp"),
CidrBlocks: pulumi.StringArray{
*pulumi.String(exampleVpc.CidrBlock),
},
},
},
})
if err != nil {
return err
}
exampleServiceLinkedRole, err := iam.NewServiceLinkedRole(ctx, "exampleServiceLinkedRole", &iam.ServiceLinkedRoleArgs{
AwsServiceName: pulumi.String("opensearchservice.amazonaws.com"),
})
if err != nil {
return err
}
examplePolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
Statements: []iam.GetPolicyDocumentStatement{
{
Effect: pulumi.StringRef("Allow"),
Principals: []iam.GetPolicyDocumentStatementPrincipal{
{
Type: "*",
Identifiers: []string{
"*",
},
},
},
Actions: []string{
"es:*",
},
Resources: []string{
fmt.Sprintf("arn:aws:es:%v:%v:domain/%v/*", currentRegion.Name, currentCallerIdentity.AccountId, domain),
},
},
},
}, nil);
if err != nil {
return err
}
_, err = opensearch.NewDomain(ctx, "exampleDomain", &opensearch.DomainArgs{
EngineVersion: pulumi.String("OpenSearch_1.0"),
ClusterConfig: &opensearch.DomainClusterConfigArgs{
InstanceType: pulumi.String("m4.large.search"),
ZoneAwarenessEnabled: pulumi.Bool(true),
},
VpcOptions: &opensearch.DomainVpcOptionsArgs{
SubnetIds: pulumi.StringArray{
*pulumi.String(exampleSubnets.Ids[0]),
*pulumi.String(exampleSubnets.Ids[1]),
},
SecurityGroupIds: pulumi.StringArray{
exampleSecurityGroup.ID(),
},
},
AdvancedOptions: pulumi.StringMap{
"rest.action.multi.allow_explicit_index": pulumi.String("true"),
},
AccessPolicies: *pulumi.String(examplePolicyDocument.Json),
Tags: pulumi.StringMap{
"Domain": pulumi.String("TestDomain"),
},
}, pulumi.DependsOn([]pulumi.Resource{
exampleServiceLinkedRole,
}))
if err != nil {
return err
}
return nil
})
}
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 exampleVpc = Ec2Functions.getVpc(GetVpcArgs.builder()
.tags(Map.of("Name", vpc))
.build());
final var exampleSubnets = Ec2Functions.getSubnets(GetSubnetsArgs.builder()
.filters(GetSubnetsFilterArgs.builder()
.name("vpc-id")
.values(exampleVpc.applyValue(getVpcResult -> getVpcResult.id()))
.build())
.tags(Map.of("Tier", "private"))
.build());
final var currentRegion = AwsFunctions.getRegion();
final var currentCallerIdentity = AwsFunctions.getCallerIdentity();
var exampleSecurityGroup = new SecurityGroup("exampleSecurityGroup", SecurityGroupArgs.builder()
.description("Managed by Pulumi")
.vpcId(exampleVpc.applyValue(getVpcResult -> getVpcResult.id()))
.ingress(SecurityGroupIngressArgs.builder()
.fromPort(443)
.toPort(443)
.protocol("tcp")
.cidrBlocks(exampleVpc.applyValue(getVpcResult -> getVpcResult.cidrBlock()))
.build())
.build());
var exampleServiceLinkedRole = new ServiceLinkedRole("exampleServiceLinkedRole", ServiceLinkedRoleArgs.builder()
.awsServiceName("opensearchservice.amazonaws.com")
.build());
final var examplePolicyDocument = 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/*", currentRegion.applyValue(getRegionResult -> getRegionResult.name()),currentCallerIdentity.applyValue(getCallerIdentityResult -> getCallerIdentityResult.accountId()),domain))
.build())
.build());
var exampleDomain = new Domain("exampleDomain", DomainArgs.builder()
.engineVersion("OpenSearch_1.0")
.clusterConfig(DomainClusterConfigArgs.builder()
.instanceType("m4.large.search")
.zoneAwarenessEnabled(true)
.build())
.vpcOptions(DomainVpcOptionsArgs.builder()
.subnetIds(
exampleSubnets.applyValue(getSubnetsResult -> getSubnetsResult.ids()[0]),
exampleSubnets.applyValue(getSubnetsResult -> getSubnetsResult.ids()[1]))
.securityGroupIds(exampleSecurityGroup.id())
.build())
.advancedOptions(Map.of("rest.action.multi.allow_explicit_index", "true"))
.accessPolicies(examplePolicyDocument.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
.tags(Map.of("Domain", "TestDomain"))
.build(), CustomResourceOptions.builder()
.dependsOn(exampleServiceLinkedRole)
.build());
}
}
import pulumi
import pulumi_aws as aws
config = pulumi.Config()
vpc = config.require_object("vpc")
domain = config.get("domain")
if domain is None:
domain = "tf-test"
example_vpc = aws.ec2.get_vpc(tags={
"Name": vpc,
})
example_subnets = aws.ec2.get_subnets(filters=[aws.ec2.GetSubnetsFilterArgs(
name="vpc-id",
values=[example_vpc.id],
)],
tags={
"Tier": "private",
})
current_region = aws.get_region()
current_caller_identity = aws.get_caller_identity()
example_security_group = aws.ec2.SecurityGroup("exampleSecurityGroup",
description="Managed by Pulumi",
vpc_id=example_vpc.id,
ingress=[aws.ec2.SecurityGroupIngressArgs(
from_port=443,
to_port=443,
protocol="tcp",
cidr_blocks=[example_vpc.cidr_block],
)])
example_service_linked_role = aws.iam.ServiceLinkedRole("exampleServiceLinkedRole", aws_service_name="opensearchservice.amazonaws.com")
example_policy_document = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
effect="Allow",
principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
type="*",
identifiers=["*"],
)],
actions=["es:*"],
resources=[f"arn:aws:es:{current_region.name}:{current_caller_identity.account_id}:domain/{domain}/*"],
)])
example_domain = aws.opensearch.Domain("exampleDomain",
engine_version="OpenSearch_1.0",
cluster_config=aws.opensearch.DomainClusterConfigArgs(
instance_type="m4.large.search",
zone_awareness_enabled=True,
),
vpc_options=aws.opensearch.DomainVpcOptionsArgs(
subnet_ids=[
example_subnets.ids[0],
example_subnets.ids[1],
],
security_group_ids=[example_security_group.id],
),
advanced_options={
"rest.action.multi.allow_explicit_index": "true",
},
access_policies=example_policy_document.json,
tags={
"Domain": "TestDomain",
},
opts=pulumi.ResourceOptions(depends_on=[example_service_linked_role]))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const config = new pulumi.Config();
const vpc = config.requireObject("vpc");
const domain = config.get("domain") || "tf-test";
const exampleVpc = aws.ec2.getVpc({
tags: {
Name: vpc,
},
});
const exampleSubnets = exampleVpc.then(exampleVpc => aws.ec2.getSubnets({
filters: [{
name: "vpc-id",
values: [exampleVpc.id],
}],
tags: {
Tier: "private",
},
}));
const currentRegion = aws.getRegion({});
const currentCallerIdentity = aws.getCallerIdentity({});
const exampleSecurityGroup = new aws.ec2.SecurityGroup("exampleSecurityGroup", {
description: "Managed by Pulumi",
vpcId: exampleVpc.then(exampleVpc => exampleVpc.id),
ingress: [{
fromPort: 443,
toPort: 443,
protocol: "tcp",
cidrBlocks: [exampleVpc.then(exampleVpc => exampleVpc.cidrBlock)],
}],
});
const exampleServiceLinkedRole = new aws.iam.ServiceLinkedRole("exampleServiceLinkedRole", {awsServiceName: "opensearchservice.amazonaws.com"});
const examplePolicyDocument = Promise.all([currentRegion, currentCallerIdentity]).then(([currentRegion, currentCallerIdentity]) => aws.iam.getPolicyDocument({
statements: [{
effect: "Allow",
principals: [{
type: "*",
identifiers: ["*"],
}],
actions: ["es:*"],
resources: [`arn:aws:es:${currentRegion.name}:${currentCallerIdentity.accountId}:domain/${domain}/*`],
}],
}));
const exampleDomain = new aws.opensearch.Domain("exampleDomain", {
engineVersion: "OpenSearch_1.0",
clusterConfig: {
instanceType: "m4.large.search",
zoneAwarenessEnabled: true,
},
vpcOptions: {
subnetIds: [
exampleSubnets.then(exampleSubnets => exampleSubnets.ids?.[0]),
exampleSubnets.then(exampleSubnets => exampleSubnets.ids?.[1]),
],
securityGroupIds: [exampleSecurityGroup.id],
},
advancedOptions: {
"rest.action.multi.allow_explicit_index": "true",
},
accessPolicies: examplePolicyDocument.then(examplePolicyDocument => examplePolicyDocument.json),
tags: {
Domain: "TestDomain",
},
}, {
dependsOn: [exampleServiceLinkedRole],
});
configuration:
vpc:
type: dynamic
domain:
type: string
default: tf-test
resources:
exampleSecurityGroup:
type: aws:ec2:SecurityGroup
properties:
description: Managed by Pulumi
vpcId: ${exampleVpc.id}
ingress:
- fromPort: 443
toPort: 443
protocol: tcp
cidrBlocks:
- ${exampleVpc.cidrBlock}
exampleServiceLinkedRole:
type: aws:iam:ServiceLinkedRole
properties:
awsServiceName: opensearchservice.amazonaws.com
exampleDomain:
type: aws:opensearch:Domain
properties:
engineVersion: OpenSearch_1.0
clusterConfig:
instanceType: m4.large.search
zoneAwarenessEnabled: true
vpcOptions:
subnetIds:
- ${exampleSubnets.ids[0]}
- ${exampleSubnets.ids[1]}
securityGroupIds:
- ${exampleSecurityGroup.id}
advancedOptions:
rest.action.multi.allow_explicit_index: 'true'
accessPolicies: ${examplePolicyDocument.json}
tags:
Domain: TestDomain
options:
dependson:
- ${exampleServiceLinkedRole}
variables:
exampleVpc:
fn::invoke:
Function: aws:ec2:getVpc
Arguments:
tags:
Name: ${vpc}
exampleSubnets:
fn::invoke:
Function: aws:ec2:getSubnets
Arguments:
filters:
- name: vpc-id
values:
- ${exampleVpc.id}
tags:
Tier: private
currentRegion:
fn::invoke:
Function: aws:getRegion
Arguments: {}
currentCallerIdentity:
fn::invoke:
Function: aws:getCallerIdentity
Arguments: {}
examplePolicyDocument:
fn::invoke:
Function: aws:iam:getPolicyDocument
Arguments:
statements:
- effect: Allow
principals:
- type: '*'
identifiers:
- '*'
actions:
- es:*
resources:
- arn:aws:es:${currentRegion.name}:${currentCallerIdentity.accountId}:domain/${domain}/*
First apply
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.OpenSearch.Domain("example", new()
{
AdvancedSecurityOptions = new Aws.OpenSearch.Inputs.DomainAdvancedSecurityOptionsArgs
{
AnonymousAuthEnabled = true,
Enabled = false,
InternalUserDatabaseEnabled = true,
MasterUserOptions = new Aws.OpenSearch.Inputs.DomainAdvancedSecurityOptionsMasterUserOptionsArgs
{
MasterUserName = "example",
MasterUserPassword = "Barbarbarbar1!",
},
},
ClusterConfig = new Aws.OpenSearch.Inputs.DomainClusterConfigArgs
{
InstanceType = "r5.large.search",
},
DomainEndpointOptions = new Aws.OpenSearch.Inputs.DomainDomainEndpointOptionsArgs
{
EnforceHttps = true,
TlsSecurityPolicy = "Policy-Min-TLS-1-2-2019-07",
},
EbsOptions = new Aws.OpenSearch.Inputs.DomainEbsOptionsArgs
{
EbsEnabled = true,
VolumeSize = 10,
},
EncryptAtRest = new Aws.OpenSearch.Inputs.DomainEncryptAtRestArgs
{
Enabled = true,
},
EngineVersion = "Elasticsearch_7.1",
NodeToNodeEncryption = new Aws.OpenSearch.Inputs.DomainNodeToNodeEncryptionArgs
{
Enabled = true,
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := opensearch.NewDomain(ctx, "example", &opensearch.DomainArgs{
AdvancedSecurityOptions: &opensearch.DomainAdvancedSecurityOptionsArgs{
AnonymousAuthEnabled: pulumi.Bool(true),
Enabled: pulumi.Bool(false),
InternalUserDatabaseEnabled: pulumi.Bool(true),
MasterUserOptions: &opensearch.DomainAdvancedSecurityOptionsMasterUserOptionsArgs{
MasterUserName: pulumi.String("example"),
MasterUserPassword: pulumi.String("Barbarbarbar1!"),
},
},
ClusterConfig: &opensearch.DomainClusterConfigArgs{
InstanceType: pulumi.String("r5.large.search"),
},
DomainEndpointOptions: &opensearch.DomainDomainEndpointOptionsArgs{
EnforceHttps: pulumi.Bool(true),
TlsSecurityPolicy: pulumi.String("Policy-Min-TLS-1-2-2019-07"),
},
EbsOptions: &opensearch.DomainEbsOptionsArgs{
EbsEnabled: pulumi.Bool(true),
VolumeSize: pulumi.Int(10),
},
EncryptAtRest: &opensearch.DomainEncryptAtRestArgs{
Enabled: pulumi.Bool(true),
},
EngineVersion: pulumi.String("Elasticsearch_7.1"),
NodeToNodeEncryption: &opensearch.DomainNodeToNodeEncryptionArgs{
Enabled: pulumi.Bool(true),
},
})
if err != nil {
return err
}
return nil
})
}
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.DomainAdvancedSecurityOptionsArgs;
import com.pulumi.aws.opensearch.inputs.DomainAdvancedSecurityOptionsMasterUserOptionsArgs;
import com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;
import com.pulumi.aws.opensearch.inputs.DomainDomainEndpointOptionsArgs;
import com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs;
import com.pulumi.aws.opensearch.inputs.DomainEncryptAtRestArgs;
import com.pulumi.aws.opensearch.inputs.DomainNodeToNodeEncryptionArgs;
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()
.advancedSecurityOptions(DomainAdvancedSecurityOptionsArgs.builder()
.anonymousAuthEnabled(true)
.enabled(false)
.internalUserDatabaseEnabled(true)
.masterUserOptions(DomainAdvancedSecurityOptionsMasterUserOptionsArgs.builder()
.masterUserName("example")
.masterUserPassword("Barbarbarbar1!")
.build())
.build())
.clusterConfig(DomainClusterConfigArgs.builder()
.instanceType("r5.large.search")
.build())
.domainEndpointOptions(DomainDomainEndpointOptionsArgs.builder()
.enforceHttps(true)
.tlsSecurityPolicy("Policy-Min-TLS-1-2-2019-07")
.build())
.ebsOptions(DomainEbsOptionsArgs.builder()
.ebsEnabled(true)
.volumeSize(10)
.build())
.encryptAtRest(DomainEncryptAtRestArgs.builder()
.enabled(true)
.build())
.engineVersion("Elasticsearch_7.1")
.nodeToNodeEncryption(DomainNodeToNodeEncryptionArgs.builder()
.enabled(true)
.build())
.build());
}
}
import pulumi
import pulumi_aws as aws
example = aws.opensearch.Domain("example",
advanced_security_options=aws.opensearch.DomainAdvancedSecurityOptionsArgs(
anonymous_auth_enabled=True,
enabled=False,
internal_user_database_enabled=True,
master_user_options=aws.opensearch.DomainAdvancedSecurityOptionsMasterUserOptionsArgs(
master_user_name="example",
master_user_password="Barbarbarbar1!",
),
),
cluster_config=aws.opensearch.DomainClusterConfigArgs(
instance_type="r5.large.search",
),
domain_endpoint_options=aws.opensearch.DomainDomainEndpointOptionsArgs(
enforce_https=True,
tls_security_policy="Policy-Min-TLS-1-2-2019-07",
),
ebs_options=aws.opensearch.DomainEbsOptionsArgs(
ebs_enabled=True,
volume_size=10,
),
encrypt_at_rest=aws.opensearch.DomainEncryptAtRestArgs(
enabled=True,
),
engine_version="Elasticsearch_7.1",
node_to_node_encryption=aws.opensearch.DomainNodeToNodeEncryptionArgs(
enabled=True,
))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.opensearch.Domain("example", {
advancedSecurityOptions: {
anonymousAuthEnabled: true,
enabled: false,
internalUserDatabaseEnabled: true,
masterUserOptions: {
masterUserName: "example",
masterUserPassword: "Barbarbarbar1!",
},
},
clusterConfig: {
instanceType: "r5.large.search",
},
domainEndpointOptions: {
enforceHttps: true,
tlsSecurityPolicy: "Policy-Min-TLS-1-2-2019-07",
},
ebsOptions: {
ebsEnabled: true,
volumeSize: 10,
},
encryptAtRest: {
enabled: true,
},
engineVersion: "Elasticsearch_7.1",
nodeToNodeEncryption: {
enabled: true,
},
});
resources:
example:
type: aws:opensearch:Domain
properties:
advancedSecurityOptions:
anonymousAuthEnabled: true
enabled: false
internalUserDatabaseEnabled: true
masterUserOptions:
masterUserName: example
masterUserPassword: Barbarbarbar1!
clusterConfig:
instanceType: r5.large.search
domainEndpointOptions:
enforceHttps: true
tlsSecurityPolicy: Policy-Min-TLS-1-2-2019-07
ebsOptions:
ebsEnabled: true
volumeSize: 10
encryptAtRest:
enabled: true
engineVersion: Elasticsearch_7.1
nodeToNodeEncryption:
enabled: true
Second apply
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.OpenSearch.Domain("example", new()
{
AdvancedSecurityOptions = new Aws.OpenSearch.Inputs.DomainAdvancedSecurityOptionsArgs
{
AnonymousAuthEnabled = true,
Enabled = true,
InternalUserDatabaseEnabled = true,
MasterUserOptions = new Aws.OpenSearch.Inputs.DomainAdvancedSecurityOptionsMasterUserOptionsArgs
{
MasterUserName = "example",
MasterUserPassword = "Barbarbarbar1!",
},
},
ClusterConfig = new Aws.OpenSearch.Inputs.DomainClusterConfigArgs
{
InstanceType = "r5.large.search",
},
DomainEndpointOptions = new Aws.OpenSearch.Inputs.DomainDomainEndpointOptionsArgs
{
EnforceHttps = true,
TlsSecurityPolicy = "Policy-Min-TLS-1-2-2019-07",
},
EbsOptions = new Aws.OpenSearch.Inputs.DomainEbsOptionsArgs
{
EbsEnabled = true,
VolumeSize = 10,
},
EncryptAtRest = new Aws.OpenSearch.Inputs.DomainEncryptAtRestArgs
{
Enabled = true,
},
EngineVersion = "Elasticsearch_7.1",
NodeToNodeEncryption = new Aws.OpenSearch.Inputs.DomainNodeToNodeEncryptionArgs
{
Enabled = true,
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := opensearch.NewDomain(ctx, "example", &opensearch.DomainArgs{
AdvancedSecurityOptions: &opensearch.DomainAdvancedSecurityOptionsArgs{
AnonymousAuthEnabled: pulumi.Bool(true),
Enabled: pulumi.Bool(true),
InternalUserDatabaseEnabled: pulumi.Bool(true),
MasterUserOptions: &opensearch.DomainAdvancedSecurityOptionsMasterUserOptionsArgs{
MasterUserName: pulumi.String("example"),
MasterUserPassword: pulumi.String("Barbarbarbar1!"),
},
},
ClusterConfig: &opensearch.DomainClusterConfigArgs{
InstanceType: pulumi.String("r5.large.search"),
},
DomainEndpointOptions: &opensearch.DomainDomainEndpointOptionsArgs{
EnforceHttps: pulumi.Bool(true),
TlsSecurityPolicy: pulumi.String("Policy-Min-TLS-1-2-2019-07"),
},
EbsOptions: &opensearch.DomainEbsOptionsArgs{
EbsEnabled: pulumi.Bool(true),
VolumeSize: pulumi.Int(10),
},
EncryptAtRest: &opensearch.DomainEncryptAtRestArgs{
Enabled: pulumi.Bool(true),
},
EngineVersion: pulumi.String("Elasticsearch_7.1"),
NodeToNodeEncryption: &opensearch.DomainNodeToNodeEncryptionArgs{
Enabled: pulumi.Bool(true),
},
})
if err != nil {
return err
}
return nil
})
}
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.DomainAdvancedSecurityOptionsArgs;
import com.pulumi.aws.opensearch.inputs.DomainAdvancedSecurityOptionsMasterUserOptionsArgs;
import com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs;
import com.pulumi.aws.opensearch.inputs.DomainDomainEndpointOptionsArgs;
import com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs;
import com.pulumi.aws.opensearch.inputs.DomainEncryptAtRestArgs;
import com.pulumi.aws.opensearch.inputs.DomainNodeToNodeEncryptionArgs;
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()
.advancedSecurityOptions(DomainAdvancedSecurityOptionsArgs.builder()
.anonymousAuthEnabled(true)
.enabled(true)
.internalUserDatabaseEnabled(true)
.masterUserOptions(DomainAdvancedSecurityOptionsMasterUserOptionsArgs.builder()
.masterUserName("example")
.masterUserPassword("Barbarbarbar1!")
.build())
.build())
.clusterConfig(DomainClusterConfigArgs.builder()
.instanceType("r5.large.search")
.build())
.domainEndpointOptions(DomainDomainEndpointOptionsArgs.builder()
.enforceHttps(true)
.tlsSecurityPolicy("Policy-Min-TLS-1-2-2019-07")
.build())
.ebsOptions(DomainEbsOptionsArgs.builder()
.ebsEnabled(true)
.volumeSize(10)
.build())
.encryptAtRest(DomainEncryptAtRestArgs.builder()
.enabled(true)
.build())
.engineVersion("Elasticsearch_7.1")
.nodeToNodeEncryption(DomainNodeToNodeEncryptionArgs.builder()
.enabled(true)
.build())
.build());
}
}
import pulumi
import pulumi_aws as aws
example = aws.opensearch.Domain("example",
advanced_security_options=aws.opensearch.DomainAdvancedSecurityOptionsArgs(
anonymous_auth_enabled=True,
enabled=True,
internal_user_database_enabled=True,
master_user_options=aws.opensearch.DomainAdvancedSecurityOptionsMasterUserOptionsArgs(
master_user_name="example",
master_user_password="Barbarbarbar1!",
),
),
cluster_config=aws.opensearch.DomainClusterConfigArgs(
instance_type="r5.large.search",
),
domain_endpoint_options=aws.opensearch.DomainDomainEndpointOptionsArgs(
enforce_https=True,
tls_security_policy="Policy-Min-TLS-1-2-2019-07",
),
ebs_options=aws.opensearch.DomainEbsOptionsArgs(
ebs_enabled=True,
volume_size=10,
),
encrypt_at_rest=aws.opensearch.DomainEncryptAtRestArgs(
enabled=True,
),
engine_version="Elasticsearch_7.1",
node_to_node_encryption=aws.opensearch.DomainNodeToNodeEncryptionArgs(
enabled=True,
))
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.opensearch.Domain("example", {
advancedSecurityOptions: {
anonymousAuthEnabled: true,
enabled: true,
internalUserDatabaseEnabled: true,
masterUserOptions: {
masterUserName: "example",
masterUserPassword: "Barbarbarbar1!",
},
},
clusterConfig: {
instanceType: "r5.large.search",
},
domainEndpointOptions: {
enforceHttps: true,
tlsSecurityPolicy: "Policy-Min-TLS-1-2-2019-07",
},
ebsOptions: {
ebsEnabled: true,
volumeSize: 10,
},
encryptAtRest: {
enabled: true,
},
engineVersion: "Elasticsearch_7.1",
nodeToNodeEncryption: {
enabled: true,
},
});
resources:
example:
type: aws:opensearch:Domain
properties:
advancedSecurityOptions:
anonymousAuthEnabled: true
enabled: true
internalUserDatabaseEnabled: true
masterUserOptions:
masterUserName: example
masterUserPassword: Barbarbarbar1!
clusterConfig:
instanceType: r5.large.search
domainEndpointOptions:
enforceHttps: true
tlsSecurityPolicy: Policy-Min-TLS-1-2-2019-07
ebsOptions:
ebsEnabled: true
volumeSize: 10
encryptAtRest:
enabled: true
engineVersion: Elasticsearch_7.1
nodeToNodeEncryption:
enabled: true
Create Domain Resource
new Domain(name: string, args?: DomainArgs, opts?: CustomResourceOptions);
@overload
def Domain(resource_name: str,
opts: Optional[ResourceOptions] = None,
access_policies: Optional[str] = None,
advanced_options: Optional[Mapping[str, str]] = None,
advanced_security_options: Optional[DomainAdvancedSecurityOptionsArgs] = None,
auto_tune_options: Optional[DomainAutoTuneOptionsArgs] = None,
cluster_config: Optional[DomainClusterConfigArgs] = None,
cognito_options: Optional[DomainCognitoOptionsArgs] = None,
domain_endpoint_options: Optional[DomainDomainEndpointOptionsArgs] = None,
domain_name: Optional[str] = None,
ebs_options: Optional[DomainEbsOptionsArgs] = None,
encrypt_at_rest: Optional[DomainEncryptAtRestArgs] = None,
engine_version: Optional[str] = None,
log_publishing_options: Optional[Sequence[DomainLogPublishingOptionArgs]] = None,
node_to_node_encryption: Optional[DomainNodeToNodeEncryptionArgs] = None,
off_peak_window_options: Optional[DomainOffPeakWindowOptionsArgs] = None,
snapshot_options: Optional[DomainSnapshotOptionsArgs] = None,
software_update_options: Optional[DomainSoftwareUpdateOptionsArgs] = None,
tags: Optional[Mapping[str, str]] = None,
vpc_options: Optional[DomainVpcOptionsArgs] = None)
@overload
def Domain(resource_name: str,
args: Optional[DomainArgs] = None,
opts: Optional[ResourceOptions] = None)
func NewDomain(ctx *Context, name string, args *DomainArgs, opts ...ResourceOption) (*Domain, error)
public Domain(string name, DomainArgs? args = null, CustomResourceOptions? opts = null)
public Domain(String name, DomainArgs args)
public Domain(String name, DomainArgs args, CustomResourceOptions options)
type: aws:opensearch:Domain
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args DomainArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args DomainArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args DomainArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args DomainArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args DomainArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Domain Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The Domain resource accepts the following input properties:
- Access
Policies string IAM policy document specifying the access policies for the domain.
- Advanced
Options Dictionary<string, string> 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.
- Advanced
Security DomainOptions Advanced Security Options Configuration block for fine-grained access control. Detailed below.
- Auto
Tune DomainOptions Auto Tune Options Configuration block for the Auto-Tune options of the domain. Detailed below.
- Cluster
Config DomainCluster Config Configuration block for the cluster of the domain. Detailed below.
- Cognito
Options DomainCognito Options Configuration block for authenticating dashboard with Cognito. Detailed below.
- Domain
Endpoint DomainOptions Domain Endpoint Options Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- Domain
Name string Name of the domain.
The following arguments are optional:
- Ebs
Options DomainEbs Options Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- Encrypt
At DomainRest Encrypt At Rest Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- Engine
Version string Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- Log
Publishing List<DomainOptions Log Publishing Option> 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.
- Node
To DomainNode Encryption Node To Node Encryption Configuration block for node-to-node encryption options. Detailed below.
- Off
Peak DomainWindow Options Off Peak Window Options Configuration to add Off Peak update options. (documentation). Detailed below.
- Snapshot
Options DomainSnapshot Options 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.
- Software
Update DomainOptions Software Update Options Software update options for the domain. Detailed below.
- Dictionary<string, string>
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.- Vpc
Options DomainVpc Options Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- Access
Policies string IAM policy document specifying the access policies for the domain.
- Advanced
Options map[string]string 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.
- Advanced
Security DomainOptions Advanced Security Options Args Configuration block for fine-grained access control. Detailed below.
- Auto
Tune DomainOptions Auto Tune Options Args Configuration block for the Auto-Tune options of the domain. Detailed below.
- Cluster
Config DomainCluster Config Args Configuration block for the cluster of the domain. Detailed below.
- Cognito
Options DomainCognito Options Args Configuration block for authenticating dashboard with Cognito. Detailed below.
- Domain
Endpoint DomainOptions Domain Endpoint Options Args Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- Domain
Name string Name of the domain.
The following arguments are optional:
- Ebs
Options DomainEbs Options Args Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- Encrypt
At DomainRest Encrypt At Rest Args Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- Engine
Version string Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- Log
Publishing []DomainOptions Log Publishing Option Args 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.
- Node
To DomainNode Encryption Node To Node Encryption Args Configuration block for node-to-node encryption options. Detailed below.
- Off
Peak DomainWindow Options Off Peak Window Options Args Configuration to add Off Peak update options. (documentation). Detailed below.
- Snapshot
Options DomainSnapshot Options Args 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.
- Software
Update DomainOptions Software Update Options Args Software update options for the domain. Detailed below.
- map[string]string
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.- Vpc
Options DomainVpc Options Args Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- access
Policies String IAM policy document specifying the access policies for the domain.
- advanced
Options Map<String,String> 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.
- advanced
Security DomainOptions Advanced Security Options Configuration block for fine-grained access control. Detailed below.
- auto
Tune DomainOptions Auto Tune Options Configuration block for the Auto-Tune options of the domain. Detailed below.
- cluster
Config DomainCluster Config Configuration block for the cluster of the domain. Detailed below.
- cognito
Options DomainCognito Options Configuration block for authenticating dashboard with Cognito. Detailed below.
- domain
Endpoint DomainOptions Domain Endpoint Options Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- domain
Name String Name of the domain.
The following arguments are optional:
- ebs
Options DomainEbs Options Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- encrypt
At DomainRest Encrypt At Rest Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- engine
Version String Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- log
Publishing List<DomainOptions Log Publishing Option> 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.
- node
To DomainNode Encryption Node To Node Encryption Configuration block for node-to-node encryption options. Detailed below.
- off
Peak DomainWindow Options Off Peak Window Options Configuration to add Off Peak update options. (documentation). Detailed below.
- snapshot
Options DomainSnapshot Options 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.
- software
Update DomainOptions Software Update Options Software update options for the domain. Detailed below.
- Map<String,String>
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.- vpc
Options DomainVpc Options Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- access
Policies string IAM policy document specifying the access policies for the domain.
- advanced
Options {[key: string]: string} 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.
- advanced
Security DomainOptions Advanced Security Options Configuration block for fine-grained access control. Detailed below.
- auto
Tune DomainOptions Auto Tune Options Configuration block for the Auto-Tune options of the domain. Detailed below.
- cluster
Config DomainCluster Config Configuration block for the cluster of the domain. Detailed below.
- cognito
Options DomainCognito Options Configuration block for authenticating dashboard with Cognito. Detailed below.
- domain
Endpoint DomainOptions Domain Endpoint Options Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- domain
Name string Name of the domain.
The following arguments are optional:
- ebs
Options DomainEbs Options Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- encrypt
At DomainRest Encrypt At Rest Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- engine
Version string Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- log
Publishing DomainOptions Log Publishing Option[] 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.
- node
To DomainNode Encryption Node To Node Encryption Configuration block for node-to-node encryption options. Detailed below.
- off
Peak DomainWindow Options Off Peak Window Options Configuration to add Off Peak update options. (documentation). Detailed below.
- snapshot
Options DomainSnapshot Options 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.
- software
Update DomainOptions Software Update Options Software update options for the domain. Detailed below.
- {[key: string]: string}
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.- vpc
Options DomainVpc Options Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- access_
policies str IAM policy document specifying the access policies for the domain.
- advanced_
options Mapping[str, str] 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.
- advanced_
security_ Domainoptions Advanced Security Options Args Configuration block for fine-grained access control. Detailed below.
- auto_
tune_ Domainoptions Auto Tune Options Args Configuration block for the Auto-Tune options of the domain. Detailed below.
- cluster_
config DomainCluster Config Args Configuration block for the cluster of the domain. Detailed below.
- cognito_
options DomainCognito Options Args Configuration block for authenticating dashboard with Cognito. Detailed below.
- domain_
endpoint_ Domainoptions Domain Endpoint Options Args Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- domain_
name str Name of the domain.
The following arguments are optional:
- ebs_
options DomainEbs Options Args Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- encrypt_
at_ Domainrest Encrypt At Rest Args Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- engine_
version str Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- log_
publishing_ Sequence[Domainoptions Log Publishing Option Args] 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.
- node_
to_ Domainnode_ encryption Node To Node Encryption Args Configuration block for node-to-node encryption options. Detailed below.
- off_
peak_ Domainwindow_ options Off Peak Window Options Args Configuration to add Off Peak update options. (documentation). Detailed below.
- snapshot_
options DomainSnapshot Options Args 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.
- software_
update_ Domainoptions Software Update Options Args Software update options for the domain. Detailed below.
- Mapping[str, str]
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.- vpc_
options DomainVpc Options Args Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- access
Policies String IAM policy document specifying the access policies for the domain.
- advanced
Options Map<String> 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.
- advanced
Security Property MapOptions Configuration block for fine-grained access control. Detailed below.
- auto
Tune Property MapOptions Configuration block for the Auto-Tune options of the domain. Detailed below.
- cluster
Config Property Map Configuration block for the cluster of the domain. Detailed below.
- cognito
Options Property Map Configuration block for authenticating dashboard with Cognito. Detailed below.
- domain
Endpoint Property MapOptions Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- domain
Name String Name of the domain.
The following arguments are optional:
- ebs
Options Property Map Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- encrypt
At Property MapRest Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- engine
Version String Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- log
Publishing List<Property Map>Options 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.
- node
To Property MapNode Encryption Configuration block for node-to-node encryption options. Detailed below.
- off
Peak Property MapWindow Options Configuration to add Off Peak update options. (documentation). Detailed below.
- snapshot
Options Property Map 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.
- software
Update Property MapOptions Software update options for the domain. Detailed below.
- Map<String>
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.- vpc
Options Property Map Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
Outputs
All input properties are implicitly available as output properties. Additionally, the Domain resource produces the following output properties:
- Arn string
ARN of the domain.
- Dashboard
Endpoint string Domain-specific endpoint for Dashboard without https scheme.
- Domain
Id string Unique identifier for the domain.
- Endpoint string
Domain-specific endpoint used to submit index, search, and data upload requests.
- Id string
The provider-assigned unique ID for this managed resource.
- Kibana
Endpoint string (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- Dictionary<string, string>
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.
- Arn string
ARN of the domain.
- Dashboard
Endpoint string Domain-specific endpoint for Dashboard without https scheme.
- Domain
Id string Unique identifier for the domain.
- Endpoint string
Domain-specific endpoint used to submit index, search, and data upload requests.
- Id string
The provider-assigned unique ID for this managed resource.
- Kibana
Endpoint string (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- map[string]string
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.
- arn String
ARN of the domain.
- dashboard
Endpoint String Domain-specific endpoint for Dashboard without https scheme.
- domain
Id String Unique identifier for the domain.
- endpoint String
Domain-specific endpoint used to submit index, search, and data upload requests.
- id String
The provider-assigned unique ID for this managed resource.
- kibana
Endpoint String (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- Map<String,String>
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.
- arn string
ARN of the domain.
- dashboard
Endpoint string Domain-specific endpoint for Dashboard without https scheme.
- domain
Id string Unique identifier for the domain.
- endpoint string
Domain-specific endpoint used to submit index, search, and data upload requests.
- id string
The provider-assigned unique ID for this managed resource.
- kibana
Endpoint string (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- {[key: string]: string}
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.
- arn str
ARN of the domain.
- dashboard_
endpoint str Domain-specific endpoint for Dashboard without https scheme.
- domain_
id str Unique identifier for the domain.
- endpoint str
Domain-specific endpoint used to submit index, search, and data upload requests.
- id str
The provider-assigned unique ID for this managed resource.
- kibana_
endpoint str (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- Mapping[str, str]
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.
- arn String
ARN of the domain.
- dashboard
Endpoint String Domain-specific endpoint for Dashboard without https scheme.
- domain
Id String Unique identifier for the domain.
- endpoint String
Domain-specific endpoint used to submit index, search, and data upload requests.
- id String
The provider-assigned unique ID for this managed resource.
- kibana
Endpoint String (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- Map<String>
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.
Look up Existing Domain Resource
Get an existing Domain resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: DomainState, opts?: CustomResourceOptions): Domain
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
access_policies: Optional[str] = None,
advanced_options: Optional[Mapping[str, str]] = None,
advanced_security_options: Optional[DomainAdvancedSecurityOptionsArgs] = None,
arn: Optional[str] = None,
auto_tune_options: Optional[DomainAutoTuneOptionsArgs] = None,
cluster_config: Optional[DomainClusterConfigArgs] = None,
cognito_options: Optional[DomainCognitoOptionsArgs] = None,
dashboard_endpoint: Optional[str] = None,
domain_endpoint_options: Optional[DomainDomainEndpointOptionsArgs] = None,
domain_id: Optional[str] = None,
domain_name: Optional[str] = None,
ebs_options: Optional[DomainEbsOptionsArgs] = None,
encrypt_at_rest: Optional[DomainEncryptAtRestArgs] = None,
endpoint: Optional[str] = None,
engine_version: Optional[str] = None,
kibana_endpoint: Optional[str] = None,
log_publishing_options: Optional[Sequence[DomainLogPublishingOptionArgs]] = None,
node_to_node_encryption: Optional[DomainNodeToNodeEncryptionArgs] = None,
off_peak_window_options: Optional[DomainOffPeakWindowOptionsArgs] = None,
snapshot_options: Optional[DomainSnapshotOptionsArgs] = None,
software_update_options: Optional[DomainSoftwareUpdateOptionsArgs] = None,
tags: Optional[Mapping[str, str]] = None,
tags_all: Optional[Mapping[str, str]] = None,
vpc_options: Optional[DomainVpcOptionsArgs] = None) -> Domain
func GetDomain(ctx *Context, name string, id IDInput, state *DomainState, opts ...ResourceOption) (*Domain, error)
public static Domain Get(string name, Input<string> id, DomainState? state, CustomResourceOptions? opts = null)
public static Domain get(String name, Output<String> id, DomainState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Access
Policies string IAM policy document specifying the access policies for the domain.
- Advanced
Options Dictionary<string, string> 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.
- Advanced
Security DomainOptions Advanced Security Options Configuration block for fine-grained access control. Detailed below.
- Arn string
ARN of the domain.
- Auto
Tune DomainOptions Auto Tune Options Configuration block for the Auto-Tune options of the domain. Detailed below.
- Cluster
Config DomainCluster Config Configuration block for the cluster of the domain. Detailed below.
- Cognito
Options DomainCognito Options Configuration block for authenticating dashboard with Cognito. Detailed below.
- Dashboard
Endpoint string Domain-specific endpoint for Dashboard without https scheme.
- Domain
Endpoint DomainOptions Domain Endpoint Options Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- Domain
Id string Unique identifier for the domain.
- Domain
Name string Name of the domain.
The following arguments are optional:
- Ebs
Options DomainEbs Options Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- Encrypt
At DomainRest Encrypt At Rest Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- Endpoint string
Domain-specific endpoint used to submit index, search, and data upload requests.
- Engine
Version string Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- Kibana
Endpoint string (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- Log
Publishing List<DomainOptions Log Publishing Option> 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.
- Node
To DomainNode Encryption Node To Node Encryption Configuration block for node-to-node encryption options. Detailed below.
- Off
Peak DomainWindow Options Off Peak Window Options Configuration to add Off Peak update options. (documentation). Detailed below.
- Snapshot
Options DomainSnapshot Options 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.
- Software
Update DomainOptions Software Update Options Software update options for the domain. Detailed below.
- Dictionary<string, string>
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.- Dictionary<string, string>
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.- Vpc
Options DomainVpc Options Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- Access
Policies string IAM policy document specifying the access policies for the domain.
- Advanced
Options map[string]string 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.
- Advanced
Security DomainOptions Advanced Security Options Args Configuration block for fine-grained access control. Detailed below.
- Arn string
ARN of the domain.
- Auto
Tune DomainOptions Auto Tune Options Args Configuration block for the Auto-Tune options of the domain. Detailed below.
- Cluster
Config DomainCluster Config Args Configuration block for the cluster of the domain. Detailed below.
- Cognito
Options DomainCognito Options Args Configuration block for authenticating dashboard with Cognito. Detailed below.
- Dashboard
Endpoint string Domain-specific endpoint for Dashboard without https scheme.
- Domain
Endpoint DomainOptions Domain Endpoint Options Args Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- Domain
Id string Unique identifier for the domain.
- Domain
Name string Name of the domain.
The following arguments are optional:
- Ebs
Options DomainEbs Options Args Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- Encrypt
At DomainRest Encrypt At Rest Args Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- Endpoint string
Domain-specific endpoint used to submit index, search, and data upload requests.
- Engine
Version string Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- Kibana
Endpoint string (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- Log
Publishing []DomainOptions Log Publishing Option Args 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.
- Node
To DomainNode Encryption Node To Node Encryption Args Configuration block for node-to-node encryption options. Detailed below.
- Off
Peak DomainWindow Options Off Peak Window Options Args Configuration to add Off Peak update options. (documentation). Detailed below.
- Snapshot
Options DomainSnapshot Options Args 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.
- Software
Update DomainOptions Software Update Options Args Software update options for the domain. Detailed below.
- map[string]string
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.- map[string]string
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.- Vpc
Options DomainVpc Options Args Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- access
Policies String IAM policy document specifying the access policies for the domain.
- advanced
Options Map<String,String> 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.
- advanced
Security DomainOptions Advanced Security Options Configuration block for fine-grained access control. Detailed below.
- arn String
ARN of the domain.
- auto
Tune DomainOptions Auto Tune Options Configuration block for the Auto-Tune options of the domain. Detailed below.
- cluster
Config DomainCluster Config Configuration block for the cluster of the domain. Detailed below.
- cognito
Options DomainCognito Options Configuration block for authenticating dashboard with Cognito. Detailed below.
- dashboard
Endpoint String Domain-specific endpoint for Dashboard without https scheme.
- domain
Endpoint DomainOptions Domain Endpoint Options Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- domain
Id String Unique identifier for the domain.
- domain
Name String Name of the domain.
The following arguments are optional:
- ebs
Options DomainEbs Options Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- encrypt
At DomainRest Encrypt At Rest Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- endpoint String
Domain-specific endpoint used to submit index, search, and data upload requests.
- engine
Version String Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- kibana
Endpoint String (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- log
Publishing List<DomainOptions Log Publishing Option> 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.
- node
To DomainNode Encryption Node To Node Encryption Configuration block for node-to-node encryption options. Detailed below.
- off
Peak DomainWindow Options Off Peak Window Options Configuration to add Off Peak update options. (documentation). Detailed below.
- snapshot
Options DomainSnapshot Options 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.
- software
Update DomainOptions Software Update Options Software update options for the domain. Detailed below.
- Map<String,String>
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.- Map<String,String>
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.- vpc
Options DomainVpc Options Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- access
Policies string IAM policy document specifying the access policies for the domain.
- advanced
Options {[key: string]: string} 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.
- advanced
Security DomainOptions Advanced Security Options Configuration block for fine-grained access control. Detailed below.
- arn string
ARN of the domain.
- auto
Tune DomainOptions Auto Tune Options Configuration block for the Auto-Tune options of the domain. Detailed below.
- cluster
Config DomainCluster Config Configuration block for the cluster of the domain. Detailed below.
- cognito
Options DomainCognito Options Configuration block for authenticating dashboard with Cognito. Detailed below.
- dashboard
Endpoint string Domain-specific endpoint for Dashboard without https scheme.
- domain
Endpoint DomainOptions Domain Endpoint Options Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- domain
Id string Unique identifier for the domain.
- domain
Name string Name of the domain.
The following arguments are optional:
- ebs
Options DomainEbs Options Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- encrypt
At DomainRest Encrypt At Rest Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- endpoint string
Domain-specific endpoint used to submit index, search, and data upload requests.
- engine
Version string Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- kibana
Endpoint string (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- log
Publishing DomainOptions Log Publishing Option[] 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.
- node
To DomainNode Encryption Node To Node Encryption Configuration block for node-to-node encryption options. Detailed below.
- off
Peak DomainWindow Options Off Peak Window Options Configuration to add Off Peak update options. (documentation). Detailed below.
- snapshot
Options DomainSnapshot Options 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.
- software
Update DomainOptions Software Update Options Software update options for the domain. Detailed below.
- {[key: string]: string}
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.- {[key: string]: string}
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.- vpc
Options DomainVpc Options Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- access_
policies str IAM policy document specifying the access policies for the domain.
- advanced_
options Mapping[str, str] 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.
- advanced_
security_ Domainoptions Advanced Security Options Args Configuration block for fine-grained access control. Detailed below.
- arn str
ARN of the domain.
- auto_
tune_ Domainoptions Auto Tune Options Args Configuration block for the Auto-Tune options of the domain. Detailed below.
- cluster_
config DomainCluster Config Args Configuration block for the cluster of the domain. Detailed below.
- cognito_
options DomainCognito Options Args Configuration block for authenticating dashboard with Cognito. Detailed below.
- dashboard_
endpoint str Domain-specific endpoint for Dashboard without https scheme.
- domain_
endpoint_ Domainoptions Domain Endpoint Options Args Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- domain_
id str Unique identifier for the domain.
- domain_
name str Name of the domain.
The following arguments are optional:
- ebs_
options DomainEbs Options Args Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- encrypt_
at_ Domainrest Encrypt At Rest Args Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- endpoint str
Domain-specific endpoint used to submit index, search, and data upload requests.
- engine_
version str Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- kibana_
endpoint str (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- log_
publishing_ Sequence[Domainoptions Log Publishing Option Args] 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.
- node_
to_ Domainnode_ encryption Node To Node Encryption Args Configuration block for node-to-node encryption options. Detailed below.
- off_
peak_ Domainwindow_ options Off Peak Window Options Args Configuration to add Off Peak update options. (documentation). Detailed below.
- snapshot_
options DomainSnapshot Options Args 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.
- software_
update_ Domainoptions Software Update Options Args Software update options for the domain. Detailed below.
- Mapping[str, str]
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.- Mapping[str, str]
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.- vpc_
options DomainVpc Options Args Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
- access
Policies String IAM policy document specifying the access policies for the domain.
- advanced
Options Map<String> 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.
- advanced
Security Property MapOptions Configuration block for fine-grained access control. Detailed below.
- arn String
ARN of the domain.
- auto
Tune Property MapOptions Configuration block for the Auto-Tune options of the domain. Detailed below.
- cluster
Config Property Map Configuration block for the cluster of the domain. Detailed below.
- cognito
Options Property Map Configuration block for authenticating dashboard with Cognito. Detailed below.
- dashboard
Endpoint String Domain-specific endpoint for Dashboard without https scheme.
- domain
Endpoint Property MapOptions Configuration block for domain endpoint HTTP(S) related options. Detailed below.
- domain
Id String Unique identifier for the domain.
- domain
Name String Name of the domain.
The following arguments are optional:
- ebs
Options Property Map Configuration block for EBS related options, may be required based on chosen instance size. Detailed below.
- encrypt
At Property MapRest Configuration block for encrypt at rest options. Only available for certain instance types. Detailed below.
- endpoint String
Domain-specific endpoint used to submit index, search, and data upload requests.
- engine
Version String Either
Elasticsearch_X.Y
orOpenSearch_X.Y
to specify the engine version for the Amazon OpenSearch Service domain. For example,OpenSearch_1.0
orElasticsearch_7.9
. See Creating and managing Amazon OpenSearch Service domains. Defaults to the lastest version of OpenSearch.- kibana
Endpoint String (Deprecated) Domain-specific endpoint for kibana without https scheme. Use the
dashboard_endpoint
attribute instead.use 'dashboard_endpoint' attribute instead
- log
Publishing List<Property Map>Options 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.
- node
To Property MapNode Encryption Configuration block for node-to-node encryption options. Detailed below.
- off
Peak Property MapWindow Options Configuration to add Off Peak update options. (documentation). Detailed below.
- snapshot
Options Property Map 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.
- software
Update Property MapOptions Software update options for the domain. Detailed below.
- Map<String>
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.- Map<String>
Map of tags assigned to the resource, including those inherited from the provider
default_tags
configuration block.vpc_options.0.availability_zones
- If the domain was created inside a VPC, the names of the availability zones the configuredsubnet_ids
were created inside.vpc_options.0.vpc_id
- If the domain was created inside a VPC, the ID of the VPC.
Please use
tags
instead.- vpc
Options Property Map Configuration block for VPC related options. Adding or removing this configuration forces a new resource (documentation). Detailed below.
Supporting Types
DomainAdvancedSecurityOptions, DomainAdvancedSecurityOptionsArgs
- Enabled bool
Whether advanced security is enabled.
- Anonymous
Auth boolEnabled Whether Anonymous auth is enabled. Enables fine-grained access control on an existing domain. Ignored unless
advanced_security_options
are enabled. Can only be enabled on an existing domain.- Internal
User boolDatabase Enabled Whether the internal user database is enabled. Default is
false
.- Master
User DomainOptions Advanced Security Options Master User Options Configuration block for the main user. Detailed below.
- Enabled bool
Whether advanced security is enabled.
- Anonymous
Auth boolEnabled Whether Anonymous auth is enabled. Enables fine-grained access control on an existing domain. Ignored unless
advanced_security_options
are enabled. Can only be enabled on an existing domain.- Internal
User boolDatabase Enabled Whether the internal user database is enabled. Default is
false
.- Master
User DomainOptions Advanced Security Options Master User Options Configuration block for the main user. Detailed below.
- enabled Boolean
Whether advanced security is enabled.
- anonymous
Auth BooleanEnabled Whether Anonymous auth is enabled. Enables fine-grained access control on an existing domain. Ignored unless
advanced_security_options
are enabled. Can only be enabled on an existing domain.- internal
User BooleanDatabase Enabled Whether the internal user database is enabled. Default is
false
.- master
User DomainOptions Advanced Security Options Master User Options Configuration block for the main user. Detailed below.
- enabled boolean
Whether advanced security is enabled.
- anonymous
Auth booleanEnabled Whether Anonymous auth is enabled. Enables fine-grained access control on an existing domain. Ignored unless
advanced_security_options
are enabled. Can only be enabled on an existing domain.- internal
User booleanDatabase Enabled Whether the internal user database is enabled. Default is
false
.- master
User DomainOptions Advanced Security Options Master User Options Configuration block for the main user. Detailed below.
- enabled bool
Whether advanced security is enabled.
- anonymous_
auth_ boolenabled Whether Anonymous auth is enabled. Enables fine-grained access control on an existing domain. Ignored unless
advanced_security_options
are enabled. Can only be enabled on an existing domain.- internal_
user_ booldatabase_ enabled Whether the internal user database is enabled. Default is
false
.- master_
user_ Domainoptions Advanced Security Options Master User Options Configuration block for the main user. Detailed below.
- enabled Boolean
Whether advanced security is enabled.
- anonymous
Auth BooleanEnabled Whether Anonymous auth is enabled. Enables fine-grained access control on an existing domain. Ignored unless
advanced_security_options
are enabled. Can only be enabled on an existing domain.- internal
User BooleanDatabase Enabled Whether the internal user database is enabled. Default is
false
.- master
User Property MapOptions Configuration block for the main user. Detailed below.
DomainAdvancedSecurityOptionsMasterUserOptions, DomainAdvancedSecurityOptionsMasterUserOptionsArgs
- Master
User stringArn ARN for the main user. Only specify if
internal_user_database_enabled
is not set or set tofalse
.- Master
User stringName Main user's username, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.- Master
User stringPassword Main user's password, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.
- Master
User stringArn ARN for the main user. Only specify if
internal_user_database_enabled
is not set or set tofalse
.- Master
User stringName Main user's username, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.- Master
User stringPassword Main user's password, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.
- master
User StringArn ARN for the main user. Only specify if
internal_user_database_enabled
is not set or set tofalse
.- master
User StringName Main user's username, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.- master
User StringPassword Main user's password, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.
- master
User stringArn ARN for the main user. Only specify if
internal_user_database_enabled
is not set or set tofalse
.- master
User stringName Main user's username, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.- master
User stringPassword Main user's password, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.
- master_
user_ strarn ARN for the main user. Only specify if
internal_user_database_enabled
is not set or set tofalse
.- master_
user_ strname Main user's username, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.- master_
user_ strpassword Main user's password, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.
- master
User StringArn ARN for the main user. Only specify if
internal_user_database_enabled
is not set or set tofalse
.- master
User StringName Main user's username, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.- master
User StringPassword Main user's password, which is stored in the Amazon OpenSearch Service domain's internal database. Only specify if
internal_user_database_enabled
is set totrue
.
DomainAutoTuneOptions, DomainAutoTuneOptionsArgs
- Desired
State string Auto-Tune desired state for the domain. Valid values:
ENABLED
orDISABLED
.- Maintenance
Schedules List<DomainAuto Tune Options Maintenance Schedule> Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below.
- Rollback
On stringDisable Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values:
DEFAULT_ROLLBACK
orNO_ROLLBACK
.
- Desired
State string Auto-Tune desired state for the domain. Valid values:
ENABLED
orDISABLED
.- Maintenance
Schedules []DomainAuto Tune Options Maintenance Schedule Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below.
- Rollback
On stringDisable Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values:
DEFAULT_ROLLBACK
orNO_ROLLBACK
.
- desired
State String Auto-Tune desired state for the domain. Valid values:
ENABLED
orDISABLED
.- maintenance
Schedules List<DomainAuto Tune Options Maintenance Schedule> Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below.
- rollback
On StringDisable Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values:
DEFAULT_ROLLBACK
orNO_ROLLBACK
.
- desired
State string Auto-Tune desired state for the domain. Valid values:
ENABLED
orDISABLED
.- maintenance
Schedules DomainAuto Tune Options Maintenance Schedule[] Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below.
- rollback
On stringDisable Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values:
DEFAULT_ROLLBACK
orNO_ROLLBACK
.
- desired_
state str Auto-Tune desired state for the domain. Valid values:
ENABLED
orDISABLED
.- maintenance_
schedules Sequence[DomainAuto Tune Options Maintenance Schedule] Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below.
- rollback_
on_ strdisable Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values:
DEFAULT_ROLLBACK
orNO_ROLLBACK
.
- desired
State String Auto-Tune desired state for the domain. Valid values:
ENABLED
orDISABLED
.- maintenance
Schedules List<Property Map> Configuration block for Auto-Tune maintenance windows. Can be specified multiple times for each maintenance window. Detailed below.
- rollback
On StringDisable Whether to roll back to default Auto-Tune settings when disabling Auto-Tune. Valid values:
DEFAULT_ROLLBACK
orNO_ROLLBACK
.
DomainAutoTuneOptionsMaintenanceSchedule, DomainAutoTuneOptionsMaintenanceScheduleArgs
- Cron
Expression stringFor Recurrence A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule.
- Duration
Domain
Auto Tune Options Maintenance Schedule Duration Configuration block for the duration of the Auto-Tune maintenance window. Detailed below.
- Start
At string Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format.
- Cron
Expression stringFor Recurrence A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule.
- Duration
Domain
Auto Tune Options Maintenance Schedule Duration Configuration block for the duration of the Auto-Tune maintenance window. Detailed below.
- Start
At string Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format.
- cron
Expression StringFor Recurrence A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule.
- duration
Domain
Auto Tune Options Maintenance Schedule Duration Configuration block for the duration of the Auto-Tune maintenance window. Detailed below.
- start
At String Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format.
- cron
Expression stringFor Recurrence A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule.
- duration
Domain
Auto Tune Options Maintenance Schedule Duration Configuration block for the duration of the Auto-Tune maintenance window. Detailed below.
- start
At string Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format.
- cron_
expression_ strfor_ recurrence A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule.
- duration
Domain
Auto Tune Options Maintenance Schedule Duration Configuration block for the duration of the Auto-Tune maintenance window. Detailed below.
- start_
at str Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format.
- cron
Expression StringFor Recurrence A cron expression specifying the recurrence pattern for an Auto-Tune maintenance schedule.
- duration Property Map
Configuration block for the duration of the Auto-Tune maintenance window. Detailed below.
- start
At String Date and time at which to start the Auto-Tune maintenance schedule in RFC3339 format.
DomainAutoTuneOptionsMaintenanceScheduleDuration, DomainAutoTuneOptionsMaintenanceScheduleDurationArgs
DomainClusterConfig, DomainClusterConfigArgs
- Cold
Storage DomainOptions Cluster Config Cold Storage Options Configuration block containing cold storage configuration. Detailed below.
- Dedicated
Master intCount Number of dedicated main nodes in the cluster.
- Dedicated
Master boolEnabled Whether dedicated main nodes are enabled for the cluster.
- Dedicated
Master stringType Instance type of the dedicated main nodes in the cluster.
- Instance
Count int Number of instances in the cluster.
- Instance
Type string Instance type of data nodes in the cluster.
- Multi
Az boolWith Standby Enabled - Warm
Count int Number of warm nodes in the cluster. Valid values are between
2
and150
.warm_count
can be only and must be set whenwarm_enabled
is set totrue
.- Warm
Enabled bool Whether to enable warm storage.
- Warm
Type string Instance type for the OpenSearch cluster's warm nodes. Valid values are
ultrawarm1.medium.search
,ultrawarm1.large.search
andultrawarm1.xlarge.search
.warm_type
can be only and must be set whenwarm_enabled
is set totrue
.- Zone
Awareness DomainConfig Cluster Config Zone Awareness Config Configuration block containing zone awareness settings. Detailed below.
- Zone
Awareness boolEnabled Whether zone awareness is enabled, set to
true
for multi-az deployment. To enable awareness with three Availability Zones, theavailability_zone_count
within thezone_awareness_config
must be set to3
.
- Cold
Storage DomainOptions Cluster Config Cold Storage Options Configuration block containing cold storage configuration. Detailed below.
- Dedicated
Master intCount Number of dedicated main nodes in the cluster.
- Dedicated
Master boolEnabled Whether dedicated main nodes are enabled for the cluster.
- Dedicated
Master stringType Instance type of the dedicated main nodes in the cluster.
- Instance
Count int Number of instances in the cluster.
- Instance
Type string Instance type of data nodes in the cluster.
- Multi
Az boolWith Standby Enabled - Warm
Count int Number of warm nodes in the cluster. Valid values are between
2
and150
.warm_count
can be only and must be set whenwarm_enabled
is set totrue
.- Warm
Enabled bool Whether to enable warm storage.
- Warm
Type string Instance type for the OpenSearch cluster's warm nodes. Valid values are
ultrawarm1.medium.search
,ultrawarm1.large.search
andultrawarm1.xlarge.search
.warm_type
can be only and must be set whenwarm_enabled
is set totrue
.- Zone
Awareness DomainConfig Cluster Config Zone Awareness Config Configuration block containing zone awareness settings. Detailed below.
- Zone
Awareness boolEnabled Whether zone awareness is enabled, set to
true
for multi-az deployment. To enable awareness with three Availability Zones, theavailability_zone_count
within thezone_awareness_config
must be set to3
.
- cold
Storage DomainOptions Cluster Config Cold Storage Options Configuration block containing cold storage configuration. Detailed below.
- dedicated
Master IntegerCount Number of dedicated main nodes in the cluster.
- dedicated
Master BooleanEnabled Whether dedicated main nodes are enabled for the cluster.
- dedicated
Master StringType Instance type of the dedicated main nodes in the cluster.
- instance
Count Integer Number of instances in the cluster.
- instance
Type String Instance type of data nodes in the cluster.
- multi
Az BooleanWith Standby Enabled - warm
Count Integer Number of warm nodes in the cluster. Valid values are between
2
and150
.warm_count
can be only and must be set whenwarm_enabled
is set totrue
.- warm
Enabled Boolean Whether to enable warm storage.
- warm
Type String Instance type for the OpenSearch cluster's warm nodes. Valid values are
ultrawarm1.medium.search
,ultrawarm1.large.search
andultrawarm1.xlarge.search
.warm_type
can be only and must be set whenwarm_enabled
is set totrue
.- zone
Awareness DomainConfig Cluster Config Zone Awareness Config Configuration block containing zone awareness settings. Detailed below.
- zone
Awareness BooleanEnabled Whether zone awareness is enabled, set to
true
for multi-az deployment. To enable awareness with three Availability Zones, theavailability_zone_count
within thezone_awareness_config
must be set to3
.
- cold
Storage DomainOptions Cluster Config Cold Storage Options Configuration block containing cold storage configuration. Detailed below.
- dedicated
Master numberCount Number of dedicated main nodes in the cluster.
- dedicated
Master booleanEnabled Whether dedicated main nodes are enabled for the cluster.
- dedicated
Master stringType Instance type of the dedicated main nodes in the cluster.
- instance
Count number Number of instances in the cluster.
- instance
Type string Instance type of data nodes in the cluster.
- multi
Az booleanWith Standby Enabled - warm
Count number Number of warm nodes in the cluster. Valid values are between
2
and150
.warm_count
can be only and must be set whenwarm_enabled
is set totrue
.- warm
Enabled boolean Whether to enable warm storage.
- warm
Type string Instance type for the OpenSearch cluster's warm nodes. Valid values are
ultrawarm1.medium.search
,ultrawarm1.large.search
andultrawarm1.xlarge.search
.warm_type
can be only and must be set whenwarm_enabled
is set totrue
.- zone
Awareness DomainConfig Cluster Config Zone Awareness Config Configuration block containing zone awareness settings. Detailed below.
- zone
Awareness booleanEnabled Whether zone awareness is enabled, set to
true
for multi-az deployment. To enable awareness with three Availability Zones, theavailability_zone_count
within thezone_awareness_config
must be set to3
.
- cold_
storage_ Domainoptions Cluster Config Cold Storage Options Configuration block containing cold storage configuration. Detailed below.
- dedicated_
master_ intcount Number of dedicated main nodes in the cluster.
- dedicated_
master_ boolenabled Whether dedicated main nodes are enabled for the cluster.
- dedicated_
master_ strtype Instance type of the dedicated main nodes in the cluster.
- instance_
count int Number of instances in the cluster.
- instance_
type str Instance type of data nodes in the cluster.
- multi_
az_ boolwith_ standby_ enabled - warm_
count int Number of warm nodes in the cluster. Valid values are between
2
and150
.warm_count
can be only and must be set whenwarm_enabled
is set totrue
.- warm_
enabled bool Whether to enable warm storage.
- warm_
type str Instance type for the OpenSearch cluster's warm nodes. Valid values are
ultrawarm1.medium.search
,ultrawarm1.large.search
andultrawarm1.xlarge.search
.warm_type
can be only and must be set whenwarm_enabled
is set totrue
.- zone_
awareness_ Domainconfig Cluster Config Zone Awareness Config Configuration block containing zone awareness settings. Detailed below.
- zone_
awareness_ boolenabled Whether zone awareness is enabled, set to
true
for multi-az deployment. To enable awareness with three Availability Zones, theavailability_zone_count
within thezone_awareness_config
must be set to3
.
- cold
Storage Property MapOptions Configuration block containing cold storage configuration. Detailed below.
- dedicated
Master NumberCount Number of dedicated main nodes in the cluster.
- dedicated
Master BooleanEnabled Whether dedicated main nodes are enabled for the cluster.
- dedicated
Master StringType Instance type of the dedicated main nodes in the cluster.
- instance
Count Number Number of instances in the cluster.
- instance
Type String Instance type of data nodes in the cluster.
- multi
Az BooleanWith Standby Enabled - warm
Count Number Number of warm nodes in the cluster. Valid values are between
2
and150
.warm_count
can be only and must be set whenwarm_enabled
is set totrue
.- warm
Enabled Boolean Whether to enable warm storage.
- warm
Type String Instance type for the OpenSearch cluster's warm nodes. Valid values are
ultrawarm1.medium.search
,ultrawarm1.large.search
andultrawarm1.xlarge.search
.warm_type
can be only and must be set whenwarm_enabled
is set totrue
.- zone
Awareness Property MapConfig Configuration block containing zone awareness settings. Detailed below.
- zone
Awareness BooleanEnabled Whether zone awareness is enabled, set to
true
for multi-az deployment. To enable awareness with three Availability Zones, theavailability_zone_count
within thezone_awareness_config
must be set to3
.
DomainClusterConfigColdStorageOptions, DomainClusterConfigColdStorageOptionsArgs
- Enabled bool
Boolean to enable cold storage for an OpenSearch domain. Defaults to
false
. Master and ultrawarm nodes must be enabled for cold storage.
- Enabled bool
Boolean to enable cold storage for an OpenSearch domain. Defaults to
false
. Master and ultrawarm nodes must be enabled for cold storage.
- enabled Boolean
Boolean to enable cold storage for an OpenSearch domain. Defaults to
false
. Master and ultrawarm nodes must be enabled for cold storage.
- enabled boolean
Boolean to enable cold storage for an OpenSearch domain. Defaults to
false
. Master and ultrawarm nodes must be enabled for cold storage.
- enabled bool
Boolean to enable cold storage for an OpenSearch domain. Defaults to
false
. Master and ultrawarm nodes must be enabled for cold storage.
- enabled Boolean
Boolean to enable cold storage for an OpenSearch domain. Defaults to
false
. Master and ultrawarm nodes must be enabled for cold storage.
DomainClusterConfigZoneAwarenessConfig, DomainClusterConfigZoneAwarenessConfigArgs
- Availability
Zone intCount Number of Availability Zones for the domain to use with
zone_awareness_enabled
. Defaults to2
. Valid values:2
or3
.
- Availability
Zone intCount Number of Availability Zones for the domain to use with
zone_awareness_enabled
. Defaults to2
. Valid values:2
or3
.
- availability
Zone IntegerCount Number of Availability Zones for the domain to use with
zone_awareness_enabled
. Defaults to2
. Valid values:2
or3
.
- availability
Zone numberCount Number of Availability Zones for the domain to use with
zone_awareness_enabled
. Defaults to2
. Valid values:2
or3
.
- availability_
zone_ intcount Number of Availability Zones for the domain to use with
zone_awareness_enabled
. Defaults to2
. Valid values:2
or3
.
- availability
Zone NumberCount Number of Availability Zones for the domain to use with
zone_awareness_enabled
. Defaults to2
. Valid values:2
or3
.
DomainCognitoOptions, DomainCognitoOptionsArgs
- Identity
Pool stringId ID of the Cognito Identity Pool to use.
- Role
Arn string ARN of the IAM role that has the AmazonOpenSearchServiceCognitoAccess policy attached.
- User
Pool stringId ID of the Cognito User Pool to use.
- Enabled bool
Whether Amazon Cognito authentication with Dashboard is enabled or not. Default is
false
.
- Identity
Pool stringId ID of the Cognito Identity Pool to use.
- Role
Arn string ARN of the IAM role that has the AmazonOpenSearchServiceCognitoAccess policy attached.
- User
Pool stringId ID of the Cognito User Pool to use.
- Enabled bool
Whether Amazon Cognito authentication with Dashboard is enabled or not. Default is
false
.
- identity
Pool StringId ID of the Cognito Identity Pool to use.
- role
Arn String ARN of the IAM role that has the AmazonOpenSearchServiceCognitoAccess policy attached.
- user
Pool StringId ID of the Cognito User Pool to use.
- enabled Boolean
Whether Amazon Cognito authentication with Dashboard is enabled or not. Default is
false
.
- identity
Pool stringId ID of the Cognito Identity Pool to use.
- role
Arn string ARN of the IAM role that has the AmazonOpenSearchServiceCognitoAccess policy attached.
- user
Pool stringId ID of the Cognito User Pool to use.
- enabled boolean
Whether Amazon Cognito authentication with Dashboard is enabled or not. Default is
false
.
- identity_
pool_ strid ID of the Cognito Identity Pool to use.
- role_
arn str ARN of the IAM role that has the AmazonOpenSearchServiceCognitoAccess policy attached.
- user_
pool_ strid ID of the Cognito User Pool to use.
- enabled bool
Whether Amazon Cognito authentication with Dashboard is enabled or not. Default is
false
.
- identity
Pool StringId ID of the Cognito Identity Pool to use.
- role
Arn String ARN of the IAM role that has the AmazonOpenSearchServiceCognitoAccess policy attached.
- user
Pool StringId ID of the Cognito User Pool to use.
- enabled Boolean
Whether Amazon Cognito authentication with Dashboard is enabled or not. Default is
false
.
DomainDomainEndpointOptions, DomainDomainEndpointOptionsArgs
- Custom
Endpoint string Fully qualified domain for your custom endpoint.
- Custom
Endpoint stringCertificate Arn ACM certificate ARN for your custom endpoint.
- Custom
Endpoint boolEnabled Whether to enable custom endpoint for the OpenSearch domain.
- Enforce
Https bool Whether or not to require HTTPS. Defaults to
true
.- Tls
Security stringPolicy Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values:
Policy-Min-TLS-1-0-2019-07
andPolicy-Min-TLS-1-2-2019-07
. The provider will only perform drift detection if a configuration value is provided.
- Custom
Endpoint string Fully qualified domain for your custom endpoint.
- Custom
Endpoint stringCertificate Arn ACM certificate ARN for your custom endpoint.
- Custom
Endpoint boolEnabled Whether to enable custom endpoint for the OpenSearch domain.
- Enforce
Https bool Whether or not to require HTTPS. Defaults to
true
.- Tls
Security stringPolicy Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values:
Policy-Min-TLS-1-0-2019-07
andPolicy-Min-TLS-1-2-2019-07
. The provider will only perform drift detection if a configuration value is provided.
- custom
Endpoint String Fully qualified domain for your custom endpoint.
- custom
Endpoint StringCertificate Arn ACM certificate ARN for your custom endpoint.
- custom
Endpoint BooleanEnabled Whether to enable custom endpoint for the OpenSearch domain.
- enforce
Https Boolean Whether or not to require HTTPS. Defaults to
true
.- tls
Security StringPolicy Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values:
Policy-Min-TLS-1-0-2019-07
andPolicy-Min-TLS-1-2-2019-07
. The provider will only perform drift detection if a configuration value is provided.
- custom
Endpoint string Fully qualified domain for your custom endpoint.
- custom
Endpoint stringCertificate Arn ACM certificate ARN for your custom endpoint.
- custom
Endpoint booleanEnabled Whether to enable custom endpoint for the OpenSearch domain.
- enforce
Https boolean Whether or not to require HTTPS. Defaults to
true
.- tls
Security stringPolicy Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values:
Policy-Min-TLS-1-0-2019-07
andPolicy-Min-TLS-1-2-2019-07
. The provider will only perform drift detection if a configuration value is provided.
- custom_
endpoint str Fully qualified domain for your custom endpoint.
- custom_
endpoint_ strcertificate_ arn ACM certificate ARN for your custom endpoint.
- custom_
endpoint_ boolenabled Whether to enable custom endpoint for the OpenSearch domain.
- enforce_
https bool Whether or not to require HTTPS. Defaults to
true
.- tls_
security_ strpolicy Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values:
Policy-Min-TLS-1-0-2019-07
andPolicy-Min-TLS-1-2-2019-07
. The provider will only perform drift detection if a configuration value is provided.
- custom
Endpoint String Fully qualified domain for your custom endpoint.
- custom
Endpoint StringCertificate Arn ACM certificate ARN for your custom endpoint.
- custom
Endpoint BooleanEnabled Whether to enable custom endpoint for the OpenSearch domain.
- enforce
Https Boolean Whether or not to require HTTPS. Defaults to
true
.- tls
Security StringPolicy Name of the TLS security policy that needs to be applied to the HTTPS endpoint. Valid values:
Policy-Min-TLS-1-0-2019-07
andPolicy-Min-TLS-1-2-2019-07
. The provider will only perform drift detection if a configuration value is provided.
DomainEbsOptions, DomainEbsOptionsArgs
- Ebs
Enabled bool Whether EBS volumes are attached to data nodes in the domain.
- Iops int
Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types.
- Throughput int
Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type.
- Volume
Size int Size of EBS volumes attached to data nodes (in GiB).
- Volume
Type string Type of EBS volumes attached to data nodes.
- Ebs
Enabled bool Whether EBS volumes are attached to data nodes in the domain.
- Iops int
Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types.
- Throughput int
Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type.
- Volume
Size int Size of EBS volumes attached to data nodes (in GiB).
- Volume
Type string Type of EBS volumes attached to data nodes.
- ebs
Enabled Boolean Whether EBS volumes are attached to data nodes in the domain.
- iops Integer
Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types.
- throughput Integer
Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type.
- volume
Size Integer Size of EBS volumes attached to data nodes (in GiB).
- volume
Type String Type of EBS volumes attached to data nodes.
- ebs
Enabled boolean Whether EBS volumes are attached to data nodes in the domain.
- iops number
Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types.
- throughput number
Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type.
- volume
Size number Size of EBS volumes attached to data nodes (in GiB).
- volume
Type string Type of EBS volumes attached to data nodes.
- ebs_
enabled bool Whether EBS volumes are attached to data nodes in the domain.
- iops int
Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types.
- throughput int
Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type.
- volume_
size int Size of EBS volumes attached to data nodes (in GiB).
- volume_
type str Type of EBS volumes attached to data nodes.
- ebs
Enabled Boolean Whether EBS volumes are attached to data nodes in the domain.
- iops Number
Baseline input/output (I/O) performance of EBS volumes attached to data nodes. Applicable only for the GP3 and Provisioned IOPS EBS volume types.
- throughput Number
Specifies the throughput (in MiB/s) of the EBS volumes attached to data nodes. Applicable only for the gp3 volume type.
- volume
Size Number Size of EBS volumes attached to data nodes (in GiB).
- volume
Type String Type of EBS volumes attached to data nodes.
DomainEncryptAtRest, DomainEncryptAtRestArgs
- Enabled bool
Whether to enable encryption at rest. If the
encrypt_at_rest
block is not provided then this defaults tofalse
. Enabling encryption on new domains requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_5.1
or greater.- Kms
Key stringId KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the
aws/es
service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead.
- Enabled bool
Whether to enable encryption at rest. If the
encrypt_at_rest
block is not provided then this defaults tofalse
. Enabling encryption on new domains requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_5.1
or greater.- Kms
Key stringId KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the
aws/es
service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead.
- enabled Boolean
Whether to enable encryption at rest. If the
encrypt_at_rest
block is not provided then this defaults tofalse
. Enabling encryption on new domains requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_5.1
or greater.- kms
Key StringId KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the
aws/es
service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead.
- enabled boolean
Whether to enable encryption at rest. If the
encrypt_at_rest
block is not provided then this defaults tofalse
. Enabling encryption on new domains requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_5.1
or greater.- kms
Key stringId KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the
aws/es
service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead.
- enabled bool
Whether to enable encryption at rest. If the
encrypt_at_rest
block is not provided then this defaults tofalse
. Enabling encryption on new domains requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_5.1
or greater.- kms_
key_ strid KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the
aws/es
service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead.
- enabled Boolean
Whether to enable encryption at rest. If the
encrypt_at_rest
block is not provided then this defaults tofalse
. Enabling encryption on new domains requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_5.1
or greater.- kms
Key StringId KMS key ARN to encrypt the Elasticsearch domain with. If not specified then it defaults to using the
aws/es
service KMS key. Note that KMS will accept a KMS key ID but will return the key ARN. To prevent the provider detecting unwanted changes, use the key ARN instead.
DomainLogPublishingOption, DomainLogPublishingOptionArgs
- Cloudwatch
Log stringGroup Arn ARN of the Cloudwatch log group to which log needs to be published.
- Log
Type string Type of OpenSearch log. Valid values:
INDEX_SLOW_LOGS
,SEARCH_SLOW_LOGS
,ES_APPLICATION_LOGS
,AUDIT_LOGS
.- Enabled bool
Whether given log publishing option is enabled or not.
- Cloudwatch
Log stringGroup Arn ARN of the Cloudwatch log group to which log needs to be published.
- Log
Type string Type of OpenSearch log. Valid values:
INDEX_SLOW_LOGS
,SEARCH_SLOW_LOGS
,ES_APPLICATION_LOGS
,AUDIT_LOGS
.- Enabled bool
Whether given log publishing option is enabled or not.
- cloudwatch
Log StringGroup Arn ARN of the Cloudwatch log group to which log needs to be published.
- log
Type String Type of OpenSearch log. Valid values:
INDEX_SLOW_LOGS
,SEARCH_SLOW_LOGS
,ES_APPLICATION_LOGS
,AUDIT_LOGS
.- enabled Boolean
Whether given log publishing option is enabled or not.
- cloudwatch
Log stringGroup Arn ARN of the Cloudwatch log group to which log needs to be published.
- log
Type string Type of OpenSearch log. Valid values:
INDEX_SLOW_LOGS
,SEARCH_SLOW_LOGS
,ES_APPLICATION_LOGS
,AUDIT_LOGS
.- enabled boolean
Whether given log publishing option is enabled or not.
- cloudwatch_
log_ strgroup_ arn ARN of the Cloudwatch log group to which log needs to be published.
- log_
type str Type of OpenSearch log. Valid values:
INDEX_SLOW_LOGS
,SEARCH_SLOW_LOGS
,ES_APPLICATION_LOGS
,AUDIT_LOGS
.- enabled bool
Whether given log publishing option is enabled or not.
- cloudwatch
Log StringGroup Arn ARN of the Cloudwatch log group to which log needs to be published.
- log
Type String Type of OpenSearch log. Valid values:
INDEX_SLOW_LOGS
,SEARCH_SLOW_LOGS
,ES_APPLICATION_LOGS
,AUDIT_LOGS
.- enabled Boolean
Whether given log publishing option is enabled or not.
DomainNodeToNodeEncryption, DomainNodeToNodeEncryptionArgs
- Enabled bool
Whether to enable node-to-node encryption. If the
node_to_node_encryption
block is not provided then this defaults tofalse
. Enabling node-to-node encryption of a new domain requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_6.0
or greater.
- Enabled bool
Whether to enable node-to-node encryption. If the
node_to_node_encryption
block is not provided then this defaults tofalse
. Enabling node-to-node encryption of a new domain requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_6.0
or greater.
- enabled Boolean
Whether to enable node-to-node encryption. If the
node_to_node_encryption
block is not provided then this defaults tofalse
. Enabling node-to-node encryption of a new domain requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_6.0
or greater.
- enabled boolean
Whether to enable node-to-node encryption. If the
node_to_node_encryption
block is not provided then this defaults tofalse
. Enabling node-to-node encryption of a new domain requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_6.0
or greater.
- enabled bool
Whether to enable node-to-node encryption. If the
node_to_node_encryption
block is not provided then this defaults tofalse
. Enabling node-to-node encryption of a new domain requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_6.0
or greater.
- enabled Boolean
Whether to enable node-to-node encryption. If the
node_to_node_encryption
block is not provided then this defaults tofalse
. Enabling node-to-node encryption of a new domain requires anengine_version
ofOpenSearch_X.Y
orElasticsearch_6.0
or greater.
DomainOffPeakWindowOptions, DomainOffPeakWindowOptionsArgs
- Enabled bool
Enabled disabled toggle for off-peak update window.
- Off
Peak DomainWindow Off Peak Window Options Off Peak Window
- Enabled bool
Enabled disabled toggle for off-peak update window.
- Off
Peak DomainWindow Off Peak Window Options Off Peak Window
- enabled Boolean
Enabled disabled toggle for off-peak update window.
- off
Peak DomainWindow Off Peak Window Options Off Peak Window
- enabled boolean
Enabled disabled toggle for off-peak update window.
- off
Peak DomainWindow Off Peak Window Options Off Peak Window
- enabled bool
Enabled disabled toggle for off-peak update window.
- off_
peak_ Domainwindow Off Peak Window Options Off Peak Window
- enabled Boolean
Enabled disabled toggle for off-peak update window.
- off
Peak Property MapWindow
DomainOffPeakWindowOptionsOffPeakWindow, DomainOffPeakWindowOptionsOffPeakWindowArgs
- Window
Start DomainTime Off Peak Window Options Off Peak Window Window Start Time 10h window for updates
- Window
Start DomainTime Off Peak Window Options Off Peak Window Window Start Time 10h window for updates
- window
Start DomainTime Off Peak Window Options Off Peak Window Window Start Time 10h window for updates
- window
Start DomainTime Off Peak Window Options Off Peak Window Window Start Time 10h window for updates
- window_
start_ Domaintime Off Peak Window Options Off Peak Window Window Start Time 10h window for updates
- window
Start Property MapTime 10h window for updates
DomainOffPeakWindowOptionsOffPeakWindowWindowStartTime, DomainOffPeakWindowOptionsOffPeakWindowWindowStartTimeArgs
DomainSnapshotOptions, DomainSnapshotOptionsArgs
- Automated
Snapshot intStart Hour Hour during which the service takes an automated daily snapshot of the indices in the domain.
- Automated
Snapshot intStart Hour Hour during which the service takes an automated daily snapshot of the indices in the domain.
- automated
Snapshot IntegerStart Hour Hour during which the service takes an automated daily snapshot of the indices in the domain.
- automated
Snapshot numberStart Hour Hour during which the service takes an automated daily snapshot of the indices in the domain.
- automated_
snapshot_ intstart_ hour Hour during which the service takes an automated daily snapshot of the indices in the domain.
- automated
Snapshot NumberStart Hour Hour during which the service takes an automated daily snapshot of the indices in the domain.
DomainSoftwareUpdateOptions, DomainSoftwareUpdateOptionsArgs
- Auto
Software boolUpdate Enabled Whether automatic service software updates are enabled for the domain. Defaults to
false
.
- Auto
Software boolUpdate Enabled Whether automatic service software updates are enabled for the domain. Defaults to
false
.
- auto
Software BooleanUpdate Enabled Whether automatic service software updates are enabled for the domain. Defaults to
false
.
- auto
Software booleanUpdate Enabled Whether automatic service software updates are enabled for the domain. Defaults to
false
.
- auto_
software_ boolupdate_ enabled Whether automatic service software updates are enabled for the domain. Defaults to
false
.
- auto
Software BooleanUpdate Enabled Whether automatic service software updates are enabled for the domain. Defaults to
false
.
DomainVpcOptions, DomainVpcOptionsArgs
- Availability
Zones List<string> - Security
Group List<string>Ids List of VPC Security Group IDs to be applied to the OpenSearch domain endpoints. If omitted, the default Security Group for the VPC will be used.
- Subnet
Ids List<string> List of VPC Subnet IDs for the OpenSearch domain endpoints to be created in.
- Vpc
Id string
- Availability
Zones []string - Security
Group []stringIds List of VPC Security Group IDs to be applied to the OpenSearch domain endpoints. If omitted, the default Security Group for the VPC will be used.
- Subnet
Ids []string List of VPC Subnet IDs for the OpenSearch domain endpoints to be created in.
- Vpc
Id string
- availability
Zones List<String> - security
Group List<String>Ids List of VPC Security Group IDs to be applied to the OpenSearch domain endpoints. If omitted, the default Security Group for the VPC will be used.
- subnet
Ids List<String> List of VPC Subnet IDs for the OpenSearch domain endpoints to be created in.
- vpc
Id String
- availability
Zones string[] - security
Group string[]Ids List of VPC Security Group IDs to be applied to the OpenSearch domain endpoints. If omitted, the default Security Group for the VPC will be used.
- subnet
Ids string[] List of VPC Subnet IDs for the OpenSearch domain endpoints to be created in.
- vpc
Id string
- availability_
zones Sequence[str] - security_
group_ Sequence[str]ids List of VPC Security Group IDs to be applied to the OpenSearch domain endpoints. If omitted, the default Security Group for the VPC will be used.
- subnet_
ids Sequence[str] List of VPC Subnet IDs for the OpenSearch domain endpoints to be created in.
- vpc_
id str
- availability
Zones List<String> - security
Group List<String>Ids List of VPC Security Group IDs to be applied to the OpenSearch domain endpoints. If omitted, the default Security Group for the VPC will be used.
- subnet
Ids List<String> List of VPC Subnet IDs for the OpenSearch domain endpoints to be created in.
- vpc
Id String
Import
Using pulumi import
, import OpenSearch domains using the domain_name
. For example:
$ pulumi import aws:opensearch/domain:Domain example domain_name
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
This Pulumi package is based on the
aws
Terraform Provider.
Try AWS Native preview for resources not in the classic version.