Package com.pulumi.aws.opensearch
Class Application
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.opensearch.Application
-
public class Application extends com.pulumi.resources.CustomResourceProvides an AWS OpenSearch Application resource. OpenSearch Applications provide a user interface for interacting with OpenSearch data and managing OpenSearch resources. ## Example Usage ### Basic Usage
### Application with Configurationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.Application; import com.pulumi.aws.opensearch.ApplicationArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Application("example", ApplicationArgs.builder() .name("my-opensearch-app") .build()); } }
### Application with Data Sourcespackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.Application; import com.pulumi.aws.opensearch.ApplicationArgs; import com.pulumi.aws.opensearch.inputs.ApplicationAppConfigArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Application("example", ApplicationArgs.builder() .appConfigs( ApplicationAppConfigArgs.builder() .key("opensearchDashboards.dashboardAdmin.users") .value("admin-user") .build(), ApplicationAppConfigArgs.builder() .key("opensearchDashboards.dashboardAdmin.groups") .value("admin-group") .build()) .name("my-opensearch-app") .tags(Map.ofEntries( Map.entry("Environment", "production"), Map.entry("Team", "data-platform") )) .build()); } }
### Application with IAM Identity Center Integrationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.Domain; import com.pulumi.aws.opensearch.DomainArgs; import com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs; import com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs; import com.pulumi.aws.opensearch.Application; import com.pulumi.aws.opensearch.ApplicationArgs; import com.pulumi.aws.opensearch.inputs.ApplicationDataSourceArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var example = new Domain("example", DomainArgs.builder() .clusterConfig(DomainClusterConfigArgs.builder() .instanceType("t3.small.search") .build()) .ebsOptions(DomainEbsOptionsArgs.builder() .ebsEnabled(true) .volumeSize(20) .build()) .domainName("example-domain") .engineVersion("OpenSearch_2.3") .build()); var exampleApplication = new Application("exampleApplication", ApplicationArgs.builder() .dataSources(ApplicationDataSourceArgs.builder() .dataSourceArn(example.arn()) .dataSourceDescription("Primary OpenSearch domain for analytics") .build()) .name("my-opensearch-app") .tags(Map.of("Environment", "production")) .build()); } }
## Import Using `pulumi import`, import OpenSearch applications using the `id`. For example: ```sh $ pulumi import aws:opensearch/application:Application example app-1234567890abcdef0 ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.ssoadmin.SsoadminFunctions; import com.pulumi.aws.ssoadmin.inputs.GetInstancesArgs; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetCallerIdentityArgs; import com.pulumi.aws.inputs.GetRegionArgs; import com.pulumi.aws.iam.Policy; import com.pulumi.aws.iam.PolicyArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.iam.RolePolicyAttachment; import com.pulumi.aws.iam.RolePolicyAttachmentArgs; import com.pulumi.aws.opensearch.Application; import com.pulumi.aws.opensearch.ApplicationArgs; import com.pulumi.aws.opensearch.inputs.ApplicationIamIdentityCenterOptionsArgs; import static com.pulumi.codegen.internal.Serialization.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { // Data sources for account and region information final var example = SsoadminFunctions.getInstances(GetInstancesArgs.builder() .build()); final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); final var currentGetRegion = AwsFunctions.getRegion(GetRegionArgs.builder() .build()); // IAM Policy for OpenSearch Application Identity Center Integration var opensearchIdentityCenter = new Policy("opensearchIdentityCenter", PolicyArgs.builder() .name("opensearch-identity-center-policy") .description("Policy for OpenSearch Application Identity Center integration") .policy(serializeJson( jsonObject( jsonProperty("Version", "2012-10-17"), jsonProperty("Statement", jsonArray( jsonObject( jsonProperty("Sid", "IdentityStoreOpenSearchDomainConnectivity"), jsonProperty("Effect", "Allow"), jsonProperty("Action", jsonArray( "identitystore:DescribeUser", "identitystore:ListGroupMembershipsForMember", "identitystore:DescribeGroup" )), jsonProperty("Resource", "*"), jsonProperty("Condition", jsonObject( jsonProperty("ForAnyValue:StringEquals", jsonObject( jsonProperty("aws:CalledViaLast", "es.amazonaws.com") )) )) ), jsonObject( jsonProperty("Sid", "OpenSearchDomain"), jsonProperty("Effect", "Allow"), jsonProperty("Action", jsonArray("es:ESHttp*")), jsonProperty("Resource", "*") ), jsonObject( jsonProperty("Sid", "OpenSearchServerless"), jsonProperty("Effect", "Allow"), jsonProperty("Action", jsonArray("aoss:APIAccessAll")), jsonProperty("Resource", "*") ) )) ))) .build()); // IAM Role for OpenSearch Application var opensearchApplication = new Role("opensearchApplication", RoleArgs.builder() .name("opensearch-application-role") .assumeRolePolicy(serializeJson( jsonObject( jsonProperty("Version", "2012-10-17"), jsonProperty("Statement", jsonArray( jsonObject( jsonProperty("Effect", "Allow"), jsonProperty("Principal", jsonObject( jsonProperty("Service", "application.opensearchservice.amazonaws.com") )), jsonProperty("Action", "sts:AssumeRole") ), jsonObject( jsonProperty("Effect", "Allow"), jsonProperty("Principal", jsonObject( jsonProperty("Service", "application.opensearchservice.amazonaws.com") )), jsonProperty("Action", "sts:SetContext"), jsonProperty("Condition", jsonObject( jsonProperty("ForAllValues:ArnEquals", jsonObject( jsonProperty("sts:RequestContextProviders", String.format("arn:aws:iam::%s:oidc-provider/portal.sso.%s.amazonaws.com/apl/*", current.accountId(),currentGetRegion.id())) )) )) ) )) ))) .build()); // Attach policy to role var opensearchIdentityCenterRolePolicyAttachment = new RolePolicyAttachment("opensearchIdentityCenterRolePolicyAttachment", RolePolicyAttachmentArgs.builder() .role(opensearchApplication.name()) .policyArn(opensearchIdentityCenter.arn()) .build()); var exampleApplication = new Application("exampleApplication", ApplicationArgs.builder() .iamIdentityCenterOptions(ApplicationIamIdentityCenterOptionsArgs.builder() .enabled(true) .iamIdentityCenterInstanceArn(example.arns()[0]) .iamRoleForIdentityCenterApplicationArn(opensearchApplication.arn()) .build()) .name("my-opensearch-app") .tags(Map.of("Environment", "production")) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Application(java.lang.String name)Application(java.lang.String name, ApplicationArgs args)Application(java.lang.String name, ApplicationArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<java.util.List<ApplicationAppConfig>>>appConfigs()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.util.Optional<java.util.List<ApplicationDataSource>>>dataSources()com.pulumi.core.Output<java.lang.String>endpoint()static Applicationget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ApplicationState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.Optional<ApplicationIamIdentityCenterOptions>>iamIdentityCenterOptions()com.pulumi.core.Output<java.util.Optional<java.lang.String>>kmsKeyArn()com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.util.Optional<ApplicationTimeouts>>timeouts()
-
-
-
Constructor Detail
-
Application
public Application(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Application
public Application(java.lang.String name, @Nullable ApplicationArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Application
public Application(java.lang.String name, @Nullable ApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
appConfigs
public com.pulumi.core.Output<java.util.Optional<java.util.List<ApplicationAppConfig>>> appConfigs()
- Returns:
- Configuration block(s) for OpenSearch application settings. See App Config below.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the OpenSearch application.
-
dataSources
public com.pulumi.core.Output<java.util.Optional<java.util.List<ApplicationDataSource>>> dataSources()
- Returns:
- Configuration block(s) for data sources to link to the OpenSearch application. See Data Source below.
-
endpoint
public com.pulumi.core.Output<java.lang.String> endpoint()
- Returns:
- Endpoint URL of the OpenSearch application.
-
iamIdentityCenterOptions
public com.pulumi.core.Output<java.util.Optional<ApplicationIamIdentityCenterOptions>> iamIdentityCenterOptions()
- Returns:
- Configuration block for integrating AWS IAM Identity Center with the OpenSearch application. See IAM Identity Center Options below.
-
kmsKeyArn
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> kmsKeyArn()
- Returns:
- ARN of the KMS key used to encrypt the application's data at rest.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- The unique name of the OpenSearch application. Names must be unique within an AWS Region for each account. Must be between 3 and 30 characters, start with a lowercase letter, and contain only lowercase letters, numbers, and hyphens.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
timeouts
public com.pulumi.core.Output<java.util.Optional<ApplicationTimeouts>> timeouts()
-
get
public static Application get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ApplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-