Package com.pulumi.aws.opensearch
Class ServerlessAccessPolicy
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.opensearch.ServerlessAccessPolicy
-
public class ServerlessAccessPolicy extends com.pulumi.resources.CustomResourceResource for managing an AWS OpenSearch Serverless Access Policy. See AWS documentation for [data access policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html) and [supported data access policy permissions](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html#serverless-data-supported-permissions). ## Example Usage ### Grant all collection and index permissions
### Grant read-only collection and index permissionspackage 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.GetCallerIdentityArgs; import com.pulumi.aws.opensearch.ServerlessAccessPolicy; import com.pulumi.aws.opensearch.ServerlessAccessPolicyArgs; 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) { final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); var example = new ServerlessAccessPolicy("example", ServerlessAccessPolicyArgs.builder() .name("example") .type("data") .description("read and write permissions") .policy(serializeJson( jsonArray(jsonObject( jsonProperty("Rules", jsonArray( jsonObject( jsonProperty("ResourceType", "index"), jsonProperty("Resource", jsonArray("index/example-collection/*")), jsonProperty("Permission", jsonArray("aoss:*")) ), jsonObject( jsonProperty("ResourceType", "collection"), jsonProperty("Resource", jsonArray("collection/example-collection")), jsonProperty("Permission", jsonArray("aoss:*")) ) )), jsonProperty("Principal", jsonArray(current.arn())) )))) .build()); } }
### Grant SAML identity permissionspackage 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.GetCallerIdentityArgs; import com.pulumi.aws.opensearch.ServerlessAccessPolicy; import com.pulumi.aws.opensearch.ServerlessAccessPolicyArgs; 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) { final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); var example = new ServerlessAccessPolicy("example", ServerlessAccessPolicyArgs.builder() .name("example") .type("data") .description("read-only permissions") .policy(serializeJson( jsonArray(jsonObject( jsonProperty("Rules", jsonArray( jsonObject( jsonProperty("ResourceType", "index"), jsonProperty("Resource", jsonArray("index/example-collection/*")), jsonProperty("Permission", jsonArray( "aoss:DescribeIndex", "aoss:ReadDocument" )) ), jsonObject( jsonProperty("ResourceType", "collection"), jsonProperty("Resource", jsonArray("collection/example-collection")), jsonProperty("Permission", jsonArray("aoss:DescribeCollectionItems")) ) )), jsonProperty("Principal", jsonArray(current.arn())) )))) .build()); } }
## Import ### Identity Schema #### Required * `name` (String) Name of the policy. * `type` (String) Type of access policy. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import OpenSearchServerless Access Policy using the `name` and `type` arguments separated by a slash (`/`). For example: ```sh $ pulumi import aws:opensearch/serverlessAccessPolicy:ServerlessAccessPolicy example example/data ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.ServerlessAccessPolicy; import com.pulumi.aws.opensearch.ServerlessAccessPolicyArgs; 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) { var example = new ServerlessAccessPolicy("example", ServerlessAccessPolicyArgs.builder() .name("example") .type("data") .description("saml permissions") .policy(serializeJson( jsonArray(jsonObject( jsonProperty("Rules", jsonArray( jsonObject( jsonProperty("ResourceType", "index"), jsonProperty("Resource", jsonArray("index/example-collection/*")), jsonProperty("Permission", jsonArray("aoss:*")) ), jsonObject( jsonProperty("ResourceType", "collection"), jsonProperty("Resource", jsonArray("collection/example-collection")), jsonProperty("Permission", jsonArray("aoss:*")) ) )), jsonProperty("Principal", jsonArray( "saml/123456789012/myprovider/user/Annie", "saml/123456789012/anotherprovider/group/Accounting" )) )))) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description ServerlessAccessPolicy(java.lang.String name)ServerlessAccessPolicy(java.lang.String name, ServerlessAccessPolicyArgs args)ServerlessAccessPolicy(java.lang.String name, ServerlessAccessPolicyArgs 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.lang.String>>description()static ServerlessAccessPolicyget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ServerlessAccessPolicyState 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.lang.String>name()com.pulumi.core.Output<java.lang.String>policy()com.pulumi.core.Output<java.lang.String>policyVersion()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>type()
-
-
-
Constructor Detail
-
ServerlessAccessPolicy
public ServerlessAccessPolicy(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
ServerlessAccessPolicy
public ServerlessAccessPolicy(java.lang.String name, ServerlessAccessPolicyArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
ServerlessAccessPolicy
public ServerlessAccessPolicy(java.lang.String name, ServerlessAccessPolicyArgs 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
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- Description of the policy. Typically used to store information about the permissions defined in the policy.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name of the policy.
-
policy
public com.pulumi.core.Output<java.lang.String> policy()
- Returns:
- JSON policy document to use as the content for the new policy
-
policyVersion
public com.pulumi.core.Output<java.lang.String> policyVersion()
- Returns:
- Version of the policy.
-
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.
-
type
public com.pulumi.core.Output<java.lang.String> type()
- Returns:
- Type of access policy. Must be `data`. The following arguments are optional:
-
get
public static ServerlessAccessPolicy get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ServerlessAccessPolicyState 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.
-
-