Package com.pulumi.aws.datazone
Class Domain
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.datazone.Domain
-
public class Domain extends com.pulumi.resources.CustomResourceResource for managing an AWS DataZone Domain. ## Example Usage ### Basic Usage
### V2 Domainpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.iam.RolePolicy; import com.pulumi.aws.iam.RolePolicyArgs; import com.pulumi.aws.datazone.Domain; import com.pulumi.aws.datazone.DomainArgs; 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 domainExecutionRole = new Role("domainExecutionRole", RoleArgs.builder() .name("my_domain_execution_role") .assumeRolePolicy(serializeJson( jsonObject( jsonProperty("Version", "2012-10-17"), jsonProperty("Statement", jsonArray( jsonObject( jsonProperty("Action", jsonArray( "sts:AssumeRole", "sts:TagSession" )), jsonProperty("Effect", "Allow"), jsonProperty("Principal", jsonObject( jsonProperty("Service", "datazone.amazonaws.com") )) ), jsonObject( jsonProperty("Action", jsonArray( "sts:AssumeRole", "sts:TagSession" )), jsonProperty("Effect", "Allow"), jsonProperty("Principal", jsonObject( jsonProperty("Service", "cloudformation.amazonaws.com") )) ) )) ))) .build()); var domainExecutionRoleRolePolicy = new RolePolicy("domainExecutionRoleRolePolicy", RolePolicyArgs.builder() .role(domainExecutionRole.name()) .policy(serializeJson( jsonObject( jsonProperty("Version", "2012-10-17"), jsonProperty("Statement", jsonArray(jsonObject( jsonProperty("Action", jsonArray( "datazone:*", "ram:*", "sso:*", "kms:*" )), jsonProperty("Effect", "Allow"), jsonProperty("Resource", "*") ))) ))) .build()); var example = new Domain("example", DomainArgs.builder() .name("example") .domainExecutionRole(domainExecutionRole.arn()) .build()); } }
## Import ### Identity Schema #### Required * `id` - (String) ID of the DataZone domain. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import DataZone Domain using the `domainId`. For example: ```sh $ pulumi import aws:datazone/domain:Domain example domain-id-12345678 ```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.GetCallerIdentityArgs; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementConditionArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.iam.inputs.GetPolicyArgs; import com.pulumi.aws.iam.RolePolicyAttachment; import com.pulumi.aws.iam.RolePolicyAttachmentArgs; import com.pulumi.aws.datazone.Domain; import com.pulumi.aws.datazone.DomainArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); // IAM role for Domain Execution final var assumeRoleDomainExecution = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .conditions( GetPolicyDocumentStatementConditionArgs.builder() .test("StringEquals") .values(current.accountId()) .variable("aws:SourceAccount") .build(), GetPolicyDocumentStatementConditionArgs.builder() .test("ForAllValues:StringLike") .values("datazone*") .variable("aws:TagKeys") .build()) .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("datazone.amazonaws.com") .build()) .actions( "sts:AssumeRole", "sts:TagSession", "sts:SetContext") .build()) .build()); var domainExecution = new Role("domainExecution", RoleArgs.builder() .assumeRolePolicy(assumeRoleDomainExecution.json()) .name("example-domain-execution-role") .build()); final var domainExecutionRole = IamFunctions.getPolicy(GetPolicyArgs.builder() .name("SageMakerStudioDomainExecutionRolePolicy") .build()); var domainExecutionRolePolicyAttachment = new RolePolicyAttachment("domainExecutionRolePolicyAttachment", RolePolicyAttachmentArgs.builder() .policyArn(domainExecutionRole.arn()) .role(domainExecution.name()) .build()); // IAM role for Domain Service final var assumeRoleDomainService = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .conditions(GetPolicyDocumentStatementConditionArgs.builder() .test("StringEquals") .values(current.accountId()) .variable("aws:SourceAccount") .build()) .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("datazone.amazonaws.com") .build()) .actions("sts:AssumeRole") .build()) .build()); var domainService = new Role("domainService", RoleArgs.builder() .assumeRolePolicy(assumeRoleDomainService.json()) .name("example-domain-service-role") .build()); final var domainServiceRole = IamFunctions.getPolicy(GetPolicyArgs.builder() .name("SageMakerStudioDomainServiceRolePolicy") .build()); var domainServiceRolePolicyAttachment = new RolePolicyAttachment("domainServiceRolePolicyAttachment", RolePolicyAttachmentArgs.builder() .policyArn(domainServiceRole.arn()) .role(domainService.name()) .build()); // DataZone Domain V2 var example = new Domain("example", DomainArgs.builder() .name("example-domain") .domainExecutionRole(domainExecution.arn()) .domainVersion("V2") .serviceRole(domainService.arn()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description Domain(java.lang.String name)Domain(java.lang.String name, DomainArgs args)Domain(java.lang.String name, DomainArgs 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.lang.String>arn()com.pulumi.core.Output<java.util.Optional<java.lang.String>>description()com.pulumi.core.Output<java.lang.String>domainExecutionRole()com.pulumi.core.Output<java.lang.String>domainVersion()static Domainget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, DomainState 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<java.lang.String>>kmsKeyIdentifier()com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.lang.String>portalUrl()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>rootDomainUnitId()com.pulumi.core.Output<java.util.Optional<java.lang.String>>serviceRole()com.pulumi.core.Output<java.util.Optional<DomainSingleSignOn>>singleSignOn()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>skipDeletionCheck()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<DomainTimeouts>>timeouts()
-
-
-
Constructor Detail
-
Domain
public Domain(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
Domain
public Domain(java.lang.String name, DomainArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
Domain
public Domain(java.lang.String name, DomainArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the Domain.
-
description
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
- Returns:
- Description of the Domain.
-
domainExecutionRole
public com.pulumi.core.Output<java.lang.String> domainExecutionRole()
- Returns:
- ARN of the role used by DataZone to configure the Domain. The following arguments are optional:
-
domainVersion
public com.pulumi.core.Output<java.lang.String> domainVersion()
- Returns:
- Version of the Domain. Valid values are `V1` and `V2`. Defaults to `V1`.
-
kmsKeyIdentifier
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> kmsKeyIdentifier()
- Returns:
- ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name of the Domain.
-
portalUrl
public com.pulumi.core.Output<java.lang.String> portalUrl()
- Returns:
- URL of the data portal for the Domain.
-
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.
-
rootDomainUnitId
public com.pulumi.core.Output<java.lang.String> rootDomainUnitId()
- Returns:
- ID of the root domain unit.
-
serviceRole
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> serviceRole()
- Returns:
- ARN of the service role used by DataZone. Required when `domainVersion` is set to `V2`.
-
singleSignOn
public com.pulumi.core.Output<java.util.Optional<DomainSingleSignOn>> singleSignOn()
- Returns:
- Single sign on options, used to [enable AWS IAM Identity Center](https://docs.aws.amazon.com/datazone/latest/userguide/enable-IAM-identity-center-for-datazone.html) for DataZone.
-
skipDeletionCheck
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> skipDeletionCheck()
- Returns:
- Whether to skip the deletion check for the Domain.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
timeouts
public com.pulumi.core.Output<java.util.Optional<DomainTimeouts>> timeouts()
-
get
public static Domain get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable DomainState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-