1. Packages
  2. AWS
  3. API Docs
  4. datazone
  5. Domain
AWS v7.7.0 published on Friday, Sep 5, 2025 by Pulumi

aws.datazone.Domain

Explore with Pulumi AI

aws logo
AWS v7.7.0 published on Friday, Sep 5, 2025 by Pulumi

    Resource for managing an AWS DataZone Domain.

    Example Usage

    Basic Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const domainExecutionRole = new aws.iam.Role("domain_execution_role", {
        name: "my_domain_execution_role",
        assumeRolePolicy: JSON.stringify({
            Version: "2012-10-17",
            Statement: [
                {
                    Action: [
                        "sts:AssumeRole",
                        "sts:TagSession",
                    ],
                    Effect: "Allow",
                    Principal: {
                        Service: "datazone.amazonaws.com",
                    },
                },
                {
                    Action: [
                        "sts:AssumeRole",
                        "sts:TagSession",
                    ],
                    Effect: "Allow",
                    Principal: {
                        Service: "cloudformation.amazonaws.com",
                    },
                },
            ],
        }),
    });
    const domainExecutionRoleRolePolicy = new aws.iam.RolePolicy("domain_execution_role", {
        role: domainExecutionRole.name,
        policy: JSON.stringify({
            Version: "2012-10-17",
            Statement: [{
                Action: [
                    "datazone:*",
                    "ram:*",
                    "sso:*",
                    "kms:*",
                ],
                Effect: "Allow",
                Resource: "*",
            }],
        }),
    });
    const example = new aws.datazone.Domain("example", {
        name: "example",
        domainExecutionRole: domainExecutionRole.arn,
    });
    
    import pulumi
    import json
    import pulumi_aws as aws
    
    domain_execution_role = aws.iam.Role("domain_execution_role",
        name="my_domain_execution_role",
        assume_role_policy=json.dumps({
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Action": [
                        "sts:AssumeRole",
                        "sts:TagSession",
                    ],
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "datazone.amazonaws.com",
                    },
                },
                {
                    "Action": [
                        "sts:AssumeRole",
                        "sts:TagSession",
                    ],
                    "Effect": "Allow",
                    "Principal": {
                        "Service": "cloudformation.amazonaws.com",
                    },
                },
            ],
        }))
    domain_execution_role_role_policy = aws.iam.RolePolicy("domain_execution_role",
        role=domain_execution_role.name,
        policy=json.dumps({
            "Version": "2012-10-17",
            "Statement": [{
                "Action": [
                    "datazone:*",
                    "ram:*",
                    "sso:*",
                    "kms:*",
                ],
                "Effect": "Allow",
                "Resource": "*",
            }],
        }))
    example = aws.datazone.Domain("example",
        name="example",
        domain_execution_role=domain_execution_role.arn)
    
    package main
    
    import (
    	"encoding/json"
    
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/datazone"
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		tmpJSON0, err := json.Marshal(map[string]interface{}{
    			"Version": "2012-10-17",
    			"Statement": []map[string]interface{}{
    				map[string]interface{}{
    					"Action": []string{
    						"sts:AssumeRole",
    						"sts:TagSession",
    					},
    					"Effect": "Allow",
    					"Principal": map[string]interface{}{
    						"Service": "datazone.amazonaws.com",
    					},
    				},
    				map[string]interface{}{
    					"Action": []string{
    						"sts:AssumeRole",
    						"sts:TagSession",
    					},
    					"Effect": "Allow",
    					"Principal": map[string]interface{}{
    						"Service": "cloudformation.amazonaws.com",
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json0 := string(tmpJSON0)
    		domainExecutionRole, err := iam.NewRole(ctx, "domain_execution_role", &iam.RoleArgs{
    			Name:             pulumi.String("my_domain_execution_role"),
    			AssumeRolePolicy: pulumi.String(json0),
    		})
    		if err != nil {
    			return err
    		}
    		tmpJSON1, err := json.Marshal(map[string]interface{}{
    			"Version": "2012-10-17",
    			"Statement": []map[string]interface{}{
    				map[string]interface{}{
    					"Action": []string{
    						"datazone:*",
    						"ram:*",
    						"sso:*",
    						"kms:*",
    					},
    					"Effect":   "Allow",
    					"Resource": "*",
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		json1 := string(tmpJSON1)
    		_, err = iam.NewRolePolicy(ctx, "domain_execution_role", &iam.RolePolicyArgs{
    			Role:   domainExecutionRole.Name,
    			Policy: pulumi.String(json1),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = datazone.NewDomain(ctx, "example", &datazone.DomainArgs{
    			Name:                pulumi.String("example"),
    			DomainExecutionRole: domainExecutionRole.Arn,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.Json;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var domainExecutionRole = new Aws.Iam.Role("domain_execution_role", new()
        {
            Name = "my_domain_execution_role",
            AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary<string, object?>
            {
                ["Version"] = "2012-10-17",
                ["Statement"] = new[]
                {
                    new Dictionary<string, object?>
                    {
                        ["Action"] = new[]
                        {
                            "sts:AssumeRole",
                            "sts:TagSession",
                        },
                        ["Effect"] = "Allow",
                        ["Principal"] = new Dictionary<string, object?>
                        {
                            ["Service"] = "datazone.amazonaws.com",
                        },
                    },
                    new Dictionary<string, object?>
                    {
                        ["Action"] = new[]
                        {
                            "sts:AssumeRole",
                            "sts:TagSession",
                        },
                        ["Effect"] = "Allow",
                        ["Principal"] = new Dictionary<string, object?>
                        {
                            ["Service"] = "cloudformation.amazonaws.com",
                        },
                    },
                },
            }),
        });
    
        var domainExecutionRoleRolePolicy = new Aws.Iam.RolePolicy("domain_execution_role", new()
        {
            Role = domainExecutionRole.Name,
            Policy = JsonSerializer.Serialize(new Dictionary<string, object?>
            {
                ["Version"] = "2012-10-17",
                ["Statement"] = new[]
                {
                    new Dictionary<string, object?>
                    {
                        ["Action"] = new[]
                        {
                            "datazone:*",
                            "ram:*",
                            "sso:*",
                            "kms:*",
                        },
                        ["Effect"] = "Allow",
                        ["Resource"] = "*",
                    },
                },
            }),
        });
    
        var example = new Aws.DataZone.Domain("example", new()
        {
            Name = "example",
            DomainExecutionRole = domainExecutionRole.Arn,
        });
    
    });
    
    package 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.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 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());
    
        }
    }
    
    resources:
      domainExecutionRole:
        type: aws:iam:Role
        name: domain_execution_role
        properties:
          name: my_domain_execution_role
          assumeRolePolicy:
            fn::toJSON:
              Version: 2012-10-17
              Statement:
                - Action:
                    - sts:AssumeRole
                    - sts:TagSession
                  Effect: Allow
                  Principal:
                    Service: datazone.amazonaws.com
                - Action:
                    - sts:AssumeRole
                    - sts:TagSession
                  Effect: Allow
                  Principal:
                    Service: cloudformation.amazonaws.com
      domainExecutionRoleRolePolicy:
        type: aws:iam:RolePolicy
        name: domain_execution_role
        properties:
          role: ${domainExecutionRole.name}
          policy:
            fn::toJSON:
              Version: 2012-10-17
              Statement:
                - Action:
                    - datazone:*
                    - ram:*
                    - sso:*
                    - kms:*
                  Effect: Allow
                  Resource: '*'
      example:
        type: aws:datazone:Domain
        properties:
          name: example
          domainExecutionRole: ${domainExecutionRole.arn}
    

    V2 Domain

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const current = aws.getCallerIdentity({});
    // IAM role for Domain Execution
    const assumeRoleDomainExecution = current.then(current => aws.iam.getPolicyDocument({
        statements: [{
            actions: [
                "sts:AssumeRole",
                "sts:TagSession",
                "sts:SetContext",
            ],
            principals: [{
                type: "Service",
                identifiers: ["datazone.amazonaws.com"],
            }],
            conditions: [
                {
                    test: "StringEquals",
                    values: [current.accountId],
                    variable: "aws:SourceAccount",
                },
                {
                    test: "ForAllValues:StringLike",
                    values: ["datazone*"],
                    variable: "aws:TagKeys",
                },
            ],
        }],
    }));
    const domainExecution = new aws.iam.Role("domain_execution", {
        assumeRolePolicy: assumeRoleDomainExecution.then(assumeRoleDomainExecution => assumeRoleDomainExecution.json),
        name: "example-domain-execution-role",
    });
    const domainExecutionRole = aws.iam.getPolicy({
        name: "SageMakerStudioDomainExecutionRolePolicy",
    });
    const domainExecutionRolePolicyAttachment = new aws.iam.RolePolicyAttachment("domain_execution", {
        policyArn: domainExecutionRole.then(domainExecutionRole => domainExecutionRole.arn),
        role: domainExecution.name,
    });
    // IAM role for Domain Service
    const assumeRoleDomainService = current.then(current => aws.iam.getPolicyDocument({
        statements: [{
            actions: ["sts:AssumeRole"],
            principals: [{
                type: "Service",
                identifiers: ["datazone.amazonaws.com"],
            }],
            conditions: [{
                test: "StringEquals",
                values: [current.accountId],
                variable: "aws:SourceAccount",
            }],
        }],
    }));
    const domainService = new aws.iam.Role("domain_service", {
        assumeRolePolicy: assumeRoleDomainService.then(assumeRoleDomainService => assumeRoleDomainService.json),
        name: "example-domain-service-role",
    });
    const domainServiceRole = aws.iam.getPolicy({
        name: "SageMakerStudioDomainServiceRolePolicy",
    });
    const domainServiceRolePolicyAttachment = new aws.iam.RolePolicyAttachment("domain_service", {
        policyArn: domainServiceRole.then(domainServiceRole => domainServiceRole.arn),
        role: domainService.name,
    });
    // DataZone Domain V2
    const example = new aws.datazone.Domain("example", {
        name: "example-domain",
        domainExecutionRole: domainExecution.arn,
        domainVersion: "V2",
        serviceRole: domainService.arn,
    });
    
    import pulumi
    import pulumi_aws as aws
    
    current = aws.get_caller_identity()
    # IAM role for Domain Execution
    assume_role_domain_execution = aws.iam.get_policy_document(statements=[{
        "actions": [
            "sts:AssumeRole",
            "sts:TagSession",
            "sts:SetContext",
        ],
        "principals": [{
            "type": "Service",
            "identifiers": ["datazone.amazonaws.com"],
        }],
        "conditions": [
            {
                "test": "StringEquals",
                "values": [current.account_id],
                "variable": "aws:SourceAccount",
            },
            {
                "test": "ForAllValues:StringLike",
                "values": ["datazone*"],
                "variable": "aws:TagKeys",
            },
        ],
    }])
    domain_execution = aws.iam.Role("domain_execution",
        assume_role_policy=assume_role_domain_execution.json,
        name="example-domain-execution-role")
    domain_execution_role = aws.iam.get_policy(name="SageMakerStudioDomainExecutionRolePolicy")
    domain_execution_role_policy_attachment = aws.iam.RolePolicyAttachment("domain_execution",
        policy_arn=domain_execution_role.arn,
        role=domain_execution.name)
    # IAM role for Domain Service
    assume_role_domain_service = aws.iam.get_policy_document(statements=[{
        "actions": ["sts:AssumeRole"],
        "principals": [{
            "type": "Service",
            "identifiers": ["datazone.amazonaws.com"],
        }],
        "conditions": [{
            "test": "StringEquals",
            "values": [current.account_id],
            "variable": "aws:SourceAccount",
        }],
    }])
    domain_service = aws.iam.Role("domain_service",
        assume_role_policy=assume_role_domain_service.json,
        name="example-domain-service-role")
    domain_service_role = aws.iam.get_policy(name="SageMakerStudioDomainServiceRolePolicy")
    domain_service_role_policy_attachment = aws.iam.RolePolicyAttachment("domain_service",
        policy_arn=domain_service_role.arn,
        role=domain_service.name)
    # DataZone Domain V2
    example = aws.datazone.Domain("example",
        name="example-domain",
        domain_execution_role=domain_execution.arn,
        domain_version="V2",
        service_role=domain_service.arn)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws"
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/datazone"
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
    current, err := aws.GetCallerIdentity(ctx, &aws.GetCallerIdentityArgs{
    }, nil);
    if err != nil {
    return err
    }
    // IAM role for Domain Execution
    assumeRoleDomainExecution, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    Statements: []iam.GetPolicyDocumentStatement{
    {
    Actions: []string{
    "sts:AssumeRole",
    "sts:TagSession",
    "sts:SetContext",
    },
    Principals: []iam.GetPolicyDocumentStatementPrincipal{
    {
    Type: "Service",
    Identifiers: []string{
    "datazone.amazonaws.com",
    },
    },
    },
    Conditions: []iam.GetPolicyDocumentStatementCondition{
    {
    Test: "StringEquals",
    Values: interface{}{
    current.AccountId,
    },
    Variable: "aws:SourceAccount",
    },
    {
    Test: "ForAllValues:StringLike",
    Values: []string{
    "datazone*",
    },
    Variable: "aws:TagKeys",
    },
    },
    },
    },
    }, nil);
    if err != nil {
    return err
    }
    domainExecution, err := iam.NewRole(ctx, "domain_execution", &iam.RoleArgs{
    AssumeRolePolicy: pulumi.String(assumeRoleDomainExecution.Json),
    Name: pulumi.String("example-domain-execution-role"),
    })
    if err != nil {
    return err
    }
    domainExecutionRole, err := iam.LookupPolicy(ctx, &iam.LookupPolicyArgs{
    Name: pulumi.StringRef("SageMakerStudioDomainExecutionRolePolicy"),
    }, nil);
    if err != nil {
    return err
    }
    _, err = iam.NewRolePolicyAttachment(ctx, "domain_execution", &iam.RolePolicyAttachmentArgs{
    PolicyArn: pulumi.String(domainExecutionRole.Arn),
    Role: domainExecution.Name,
    })
    if err != nil {
    return err
    }
    // IAM role for Domain Service
    assumeRoleDomainService, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    Statements: []iam.GetPolicyDocumentStatement{
    {
    Actions: []string{
    "sts:AssumeRole",
    },
    Principals: []iam.GetPolicyDocumentStatementPrincipal{
    {
    Type: "Service",
    Identifiers: []string{
    "datazone.amazonaws.com",
    },
    },
    },
    Conditions: []iam.GetPolicyDocumentStatementCondition{
    {
    Test: "StringEquals",
    Values: interface{}{
    current.AccountId,
    },
    Variable: "aws:SourceAccount",
    },
    },
    },
    },
    }, nil);
    if err != nil {
    return err
    }
    domainService, err := iam.NewRole(ctx, "domain_service", &iam.RoleArgs{
    AssumeRolePolicy: pulumi.String(assumeRoleDomainService.Json),
    Name: pulumi.String("example-domain-service-role"),
    })
    if err != nil {
    return err
    }
    domainServiceRole, err := iam.LookupPolicy(ctx, &iam.LookupPolicyArgs{
    Name: pulumi.StringRef("SageMakerStudioDomainServiceRolePolicy"),
    }, nil);
    if err != nil {
    return err
    }
    _, err = iam.NewRolePolicyAttachment(ctx, "domain_service", &iam.RolePolicyAttachmentArgs{
    PolicyArn: pulumi.String(domainServiceRole.Arn),
    Role: domainService.Name,
    })
    if err != nil {
    return err
    }
    // DataZone Domain V2
    _, err = datazone.NewDomain(ctx, "example", &datazone.DomainArgs{
    Name: pulumi.String("example-domain"),
    DomainExecutionRole: domainExecution.Arn,
    DomainVersion: pulumi.String("V2"),
    ServiceRole: domainService.Arn,
    })
    if err != nil {
    return err
    }
    return nil
    })
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var current = Aws.GetCallerIdentity.Invoke();
    
        // IAM role for Domain Execution
        var assumeRoleDomainExecution = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Actions = new[]
                    {
                        "sts:AssumeRole",
                        "sts:TagSession",
                        "sts:SetContext",
                    },
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                "datazone.amazonaws.com",
                            },
                        },
                    },
                    Conditions = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs
                        {
                            Test = "StringEquals",
                            Values = new[]
                            {
                                current.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId),
                            },
                            Variable = "aws:SourceAccount",
                        },
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs
                        {
                            Test = "ForAllValues:StringLike",
                            Values = new[]
                            {
                                "datazone*",
                            },
                            Variable = "aws:TagKeys",
                        },
                    },
                },
            },
        });
    
        var domainExecution = new Aws.Iam.Role("domain_execution", new()
        {
            AssumeRolePolicy = assumeRoleDomainExecution.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
            Name = "example-domain-execution-role",
        });
    
        var domainExecutionRole = Aws.Iam.GetPolicy.Invoke(new()
        {
            Name = "SageMakerStudioDomainExecutionRolePolicy",
        });
    
        var domainExecutionRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("domain_execution", new()
        {
            PolicyArn = domainExecutionRole.Apply(getPolicyResult => getPolicyResult.Arn),
            Role = domainExecution.Name,
        });
    
        // IAM role for Domain Service
        var assumeRoleDomainService = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Actions = new[]
                    {
                        "sts:AssumeRole",
                    },
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                "datazone.amazonaws.com",
                            },
                        },
                    },
                    Conditions = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs
                        {
                            Test = "StringEquals",
                            Values = new[]
                            {
                                current.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId),
                            },
                            Variable = "aws:SourceAccount",
                        },
                    },
                },
            },
        });
    
        var domainService = new Aws.Iam.Role("domain_service", new()
        {
            AssumeRolePolicy = assumeRoleDomainService.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
            Name = "example-domain-service-role",
        });
    
        var domainServiceRole = Aws.Iam.GetPolicy.Invoke(new()
        {
            Name = "SageMakerStudioDomainServiceRolePolicy",
        });
    
        var domainServiceRolePolicyAttachment = new Aws.Iam.RolePolicyAttachment("domain_service", new()
        {
            PolicyArn = domainServiceRole.Apply(getPolicyResult => getPolicyResult.Arn),
            Role = domainService.Name,
        });
    
        // DataZone Domain V2
        var example = new Aws.DataZone.Domain("example", new()
        {
            Name = "example-domain",
            DomainExecutionRole = domainExecution.Arn,
            DomainVersion = "V2",
            ServiceRole = domainService.Arn,
        });
    
    });
    
    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.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.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 current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder()
                .build());
    
            // IAM role for Domain Execution
            final var assumeRoleDomainExecution = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .actions(                
                        "sts:AssumeRole",
                        "sts:TagSession",
                        "sts:SetContext")
                    .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                        .type("Service")
                        .identifiers("datazone.amazonaws.com")
                        .build())
                    .conditions(                
                        GetPolicyDocumentStatementConditionArgs.builder()
                            .test("StringEquals")
                            .values(current.accountId())
                            .variable("aws:SourceAccount")
                            .build(),
                        GetPolicyDocumentStatementConditionArgs.builder()
                            .test("ForAllValues:StringLike")
                            .values("datazone*")
                            .variable("aws:TagKeys")
                            .build())
                    .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()
                    .actions("sts:AssumeRole")
                    .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                        .type("Service")
                        .identifiers("datazone.amazonaws.com")
                        .build())
                    .conditions(GetPolicyDocumentStatementConditionArgs.builder()
                        .test("StringEquals")
                        .values(current.accountId())
                        .variable("aws:SourceAccount")
                        .build())
                    .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());
    
        }
    }
    
    resources:
      domainExecution:
        type: aws:iam:Role
        name: domain_execution
        properties:
          assumeRolePolicy: ${assumeRoleDomainExecution.json}
          name: example-domain-execution-role
      domainExecutionRolePolicyAttachment:
        type: aws:iam:RolePolicyAttachment
        name: domain_execution
        properties:
          policyArn: ${domainExecutionRole.arn}
          role: ${domainExecution.name}
      domainService:
        type: aws:iam:Role
        name: domain_service
        properties:
          assumeRolePolicy: ${assumeRoleDomainService.json}
          name: example-domain-service-role
      domainServiceRolePolicyAttachment:
        type: aws:iam:RolePolicyAttachment
        name: domain_service
        properties:
          policyArn: ${domainServiceRole.arn}
          role: ${domainService.name}
      # DataZone Domain V2
      example:
        type: aws:datazone:Domain
        properties:
          name: example-domain
          domainExecutionRole: ${domainExecution.arn}
          domainVersion: V2
          serviceRole: ${domainService.arn}
    variables:
      current:
        fn::invoke:
          function: aws:getCallerIdentity
          arguments: {}
      # IAM role for Domain Execution
      assumeRoleDomainExecution:
        fn::invoke:
          function: aws:iam:getPolicyDocument
          arguments:
            statements:
              - actions:
                  - sts:AssumeRole
                  - sts:TagSession
                  - sts:SetContext
                principals:
                  - type: Service
                    identifiers:
                      - datazone.amazonaws.com
                conditions:
                  - test: StringEquals
                    values:
                      - ${current.accountId}
                    variable: aws:SourceAccount
                  - test: ForAllValues:StringLike
                    values:
                      - datazone*
                    variable: aws:TagKeys
      domainExecutionRole:
        fn::invoke:
          function: aws:iam:getPolicy
          arguments:
            name: SageMakerStudioDomainExecutionRolePolicy
      # IAM role for Domain Service
      assumeRoleDomainService:
        fn::invoke:
          function: aws:iam:getPolicyDocument
          arguments:
            statements:
              - actions:
                  - sts:AssumeRole
                principals:
                  - type: Service
                    identifiers:
                      - datazone.amazonaws.com
                conditions:
                  - test: StringEquals
                    values:
                      - ${current.accountId}
                    variable: aws:SourceAccount
      domainServiceRole:
        fn::invoke:
          function: aws:iam:getPolicy
          arguments:
            name: SageMakerStudioDomainServiceRolePolicy
    

    Create Domain Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Domain(name: string, args: DomainArgs, opts?: CustomResourceOptions);
    @overload
    def Domain(resource_name: str,
               args: DomainArgs,
               opts: Optional[ResourceOptions] = None)
    
    @overload
    def Domain(resource_name: str,
               opts: Optional[ResourceOptions] = None,
               domain_execution_role: Optional[str] = None,
               description: Optional[str] = None,
               domain_version: Optional[str] = None,
               kms_key_identifier: Optional[str] = None,
               name: Optional[str] = None,
               region: Optional[str] = None,
               service_role: Optional[str] = None,
               single_sign_on: Optional[DomainSingleSignOnArgs] = None,
               skip_deletion_check: Optional[bool] = None,
               tags: Optional[Mapping[str, str]] = None,
               timeouts: Optional[DomainTimeoutsArgs] = None)
    func NewDomain(ctx *Context, name string, args DomainArgs, opts ...ResourceOption) (*Domain, error)
    public Domain(string name, DomainArgs args, CustomResourceOptions? opts = null)
    public Domain(String name, DomainArgs args)
    public Domain(String name, DomainArgs args, CustomResourceOptions options)
    
    type: aws:datazone:Domain
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    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.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var exampledomainResourceResourceFromDatazonedomain = new Aws.DataZone.Domain("exampledomainResourceResourceFromDatazonedomain", new()
    {
        DomainExecutionRole = "string",
        Description = "string",
        DomainVersion = "string",
        KmsKeyIdentifier = "string",
        Name = "string",
        Region = "string",
        ServiceRole = "string",
        SingleSignOn = new Aws.DataZone.Inputs.DomainSingleSignOnArgs
        {
            Type = "string",
            UserAssignment = "string",
        },
        SkipDeletionCheck = false,
        Tags = 
        {
            { "string", "string" },
        },
        Timeouts = new Aws.DataZone.Inputs.DomainTimeoutsArgs
        {
            Create = "string",
            Delete = "string",
        },
    });
    
    example, err := datazone.NewDomain(ctx, "exampledomainResourceResourceFromDatazonedomain", &datazone.DomainArgs{
    	DomainExecutionRole: pulumi.String("string"),
    	Description:         pulumi.String("string"),
    	DomainVersion:       pulumi.String("string"),
    	KmsKeyIdentifier:    pulumi.String("string"),
    	Name:                pulumi.String("string"),
    	Region:              pulumi.String("string"),
    	ServiceRole:         pulumi.String("string"),
    	SingleSignOn: &datazone.DomainSingleSignOnArgs{
    		Type:           pulumi.String("string"),
    		UserAssignment: pulumi.String("string"),
    	},
    	SkipDeletionCheck: pulumi.Bool(false),
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Timeouts: &datazone.DomainTimeoutsArgs{
    		Create: pulumi.String("string"),
    		Delete: pulumi.String("string"),
    	},
    })
    
    var exampledomainResourceResourceFromDatazonedomain = new com.pulumi.aws.datazone.Domain("exampledomainResourceResourceFromDatazonedomain", com.pulumi.aws.datazone.DomainArgs.builder()
        .domainExecutionRole("string")
        .description("string")
        .domainVersion("string")
        .kmsKeyIdentifier("string")
        .name("string")
        .region("string")
        .serviceRole("string")
        .singleSignOn(DomainSingleSignOnArgs.builder()
            .type("string")
            .userAssignment("string")
            .build())
        .skipDeletionCheck(false)
        .tags(Map.of("string", "string"))
        .timeouts(DomainTimeoutsArgs.builder()
            .create("string")
            .delete("string")
            .build())
        .build());
    
    exampledomain_resource_resource_from_datazonedomain = aws.datazone.Domain("exampledomainResourceResourceFromDatazonedomain",
        domain_execution_role="string",
        description="string",
        domain_version="string",
        kms_key_identifier="string",
        name="string",
        region="string",
        service_role="string",
        single_sign_on={
            "type": "string",
            "user_assignment": "string",
        },
        skip_deletion_check=False,
        tags={
            "string": "string",
        },
        timeouts={
            "create": "string",
            "delete": "string",
        })
    
    const exampledomainResourceResourceFromDatazonedomain = new aws.datazone.Domain("exampledomainResourceResourceFromDatazonedomain", {
        domainExecutionRole: "string",
        description: "string",
        domainVersion: "string",
        kmsKeyIdentifier: "string",
        name: "string",
        region: "string",
        serviceRole: "string",
        singleSignOn: {
            type: "string",
            userAssignment: "string",
        },
        skipDeletionCheck: false,
        tags: {
            string: "string",
        },
        timeouts: {
            create: "string",
            "delete": "string",
        },
    });
    
    type: aws:datazone:Domain
    properties:
        description: string
        domainExecutionRole: string
        domainVersion: string
        kmsKeyIdentifier: string
        name: string
        region: string
        serviceRole: string
        singleSignOn:
            type: string
            userAssignment: string
        skipDeletionCheck: false
        tags:
            string: string
        timeouts:
            create: string
            delete: string
    

    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

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Domain resource accepts the following input properties:

    DomainExecutionRole string

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    Description string
    Description of the Domain.
    DomainVersion string
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    KmsKeyIdentifier string
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    Name string
    Name of the Domain.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    ServiceRole string
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    SingleSignOn DomainSingleSignOn
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    SkipDeletionCheck bool
    Whether to skip the deletion check for the Domain.
    Tags Dictionary<string, string>
    Timeouts DomainTimeouts
    DomainExecutionRole string

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    Description string
    Description of the Domain.
    DomainVersion string
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    KmsKeyIdentifier string
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    Name string
    Name of the Domain.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    ServiceRole string
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    SingleSignOn DomainSingleSignOnArgs
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    SkipDeletionCheck bool
    Whether to skip the deletion check for the Domain.
    Tags map[string]string
    Timeouts DomainTimeoutsArgs
    domainExecutionRole String

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    description String
    Description of the Domain.
    domainVersion String
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    kmsKeyIdentifier String
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    name String
    Name of the Domain.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    serviceRole String
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    singleSignOn DomainSingleSignOn
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    skipDeletionCheck Boolean
    Whether to skip the deletion check for the Domain.
    tags Map<String,String>
    timeouts DomainTimeouts
    domainExecutionRole string

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    description string
    Description of the Domain.
    domainVersion string
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    kmsKeyIdentifier string
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    name string
    Name of the Domain.
    region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    serviceRole string
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    singleSignOn DomainSingleSignOn
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    skipDeletionCheck boolean
    Whether to skip the deletion check for the Domain.
    tags {[key: string]: string}
    timeouts DomainTimeouts
    domain_execution_role str

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    description str
    Description of the Domain.
    domain_version str
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    kms_key_identifier str
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    name str
    Name of the Domain.
    region str
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    service_role str
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    single_sign_on DomainSingleSignOnArgs
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    skip_deletion_check bool
    Whether to skip the deletion check for the Domain.
    tags Mapping[str, str]
    timeouts DomainTimeoutsArgs
    domainExecutionRole String

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    description String
    Description of the Domain.
    domainVersion String
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    kmsKeyIdentifier String
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    name String
    Name of the Domain.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    serviceRole String
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    singleSignOn Property Map
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    skipDeletionCheck Boolean
    Whether to skip the deletion check for the Domain.
    tags Map<String>
    timeouts Property Map

    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.
    Id string
    The provider-assigned unique ID for this managed resource.
    PortalUrl string
    URL of the data portal for the Domain.
    TagsAll Dictionary<string, string>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    Arn string
    ARN of the Domain.
    Id string
    The provider-assigned unique ID for this managed resource.
    PortalUrl string
    URL of the data portal for the Domain.
    TagsAll map[string]string
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    arn String
    ARN of the Domain.
    id String
    The provider-assigned unique ID for this managed resource.
    portalUrl String
    URL of the data portal for the Domain.
    tagsAll Map<String,String>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    arn string
    ARN of the Domain.
    id string
    The provider-assigned unique ID for this managed resource.
    portalUrl string
    URL of the data portal for the Domain.
    tagsAll {[key: string]: string}
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    arn str
    ARN of the Domain.
    id str
    The provider-assigned unique ID for this managed resource.
    portal_url str
    URL of the data portal for the Domain.
    tags_all Mapping[str, str]
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    arn String
    ARN of the Domain.
    id String
    The provider-assigned unique ID for this managed resource.
    portalUrl String
    URL of the data portal for the Domain.
    tagsAll Map<String>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    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,
            arn: Optional[str] = None,
            description: Optional[str] = None,
            domain_execution_role: Optional[str] = None,
            domain_version: Optional[str] = None,
            kms_key_identifier: Optional[str] = None,
            name: Optional[str] = None,
            portal_url: Optional[str] = None,
            region: Optional[str] = None,
            service_role: Optional[str] = None,
            single_sign_on: Optional[DomainSingleSignOnArgs] = None,
            skip_deletion_check: Optional[bool] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            timeouts: Optional[DomainTimeoutsArgs] = 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)
    resources:  _:    type: aws:datazone:Domain    get:      id: ${id}
    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.
    The following state arguments are supported:
    Arn string
    ARN of the Domain.
    Description string
    Description of the Domain.
    DomainExecutionRole string

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    DomainVersion string
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    KmsKeyIdentifier string
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    Name string
    Name of the Domain.
    PortalUrl string
    URL of the data portal for the Domain.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    ServiceRole string
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    SingleSignOn DomainSingleSignOn
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    SkipDeletionCheck bool
    Whether to skip the deletion check for the Domain.
    Tags Dictionary<string, string>
    TagsAll Dictionary<string, string>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    Timeouts DomainTimeouts
    Arn string
    ARN of the Domain.
    Description string
    Description of the Domain.
    DomainExecutionRole string

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    DomainVersion string
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    KmsKeyIdentifier string
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    Name string
    Name of the Domain.
    PortalUrl string
    URL of the data portal for the Domain.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    ServiceRole string
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    SingleSignOn DomainSingleSignOnArgs
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    SkipDeletionCheck bool
    Whether to skip the deletion check for the Domain.
    Tags map[string]string
    TagsAll map[string]string
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    Timeouts DomainTimeoutsArgs
    arn String
    ARN of the Domain.
    description String
    Description of the Domain.
    domainExecutionRole String

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    domainVersion String
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    kmsKeyIdentifier String
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    name String
    Name of the Domain.
    portalUrl String
    URL of the data portal for the Domain.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    serviceRole String
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    singleSignOn DomainSingleSignOn
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    skipDeletionCheck Boolean
    Whether to skip the deletion check for the Domain.
    tags Map<String,String>
    tagsAll Map<String,String>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    timeouts DomainTimeouts
    arn string
    ARN of the Domain.
    description string
    Description of the Domain.
    domainExecutionRole string

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    domainVersion string
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    kmsKeyIdentifier string
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    name string
    Name of the Domain.
    portalUrl string
    URL of the data portal for the Domain.
    region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    serviceRole string
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    singleSignOn DomainSingleSignOn
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    skipDeletionCheck boolean
    Whether to skip the deletion check for the Domain.
    tags {[key: string]: string}
    tagsAll {[key: string]: string}
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    timeouts DomainTimeouts
    arn str
    ARN of the Domain.
    description str
    Description of the Domain.
    domain_execution_role str

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    domain_version str
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    kms_key_identifier str
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    name str
    Name of the Domain.
    portal_url str
    URL of the data portal for the Domain.
    region str
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    service_role str
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    single_sign_on DomainSingleSignOnArgs
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    skip_deletion_check bool
    Whether to skip the deletion check for the Domain.
    tags Mapping[str, str]
    tags_all Mapping[str, str]
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    timeouts DomainTimeoutsArgs
    arn String
    ARN of the Domain.
    description String
    Description of the Domain.
    domainExecutionRole String

    ARN of the role used by DataZone to configure the Domain.

    The following arguments are optional:

    domainVersion String
    Version of the Domain. Valid values are V1 and V2. Defaults to V1.
    kmsKeyIdentifier String
    ARN of the KMS key used to encrypt the Amazon DataZone domain, metadata and reporting data.
    name String
    Name of the Domain.
    portalUrl String
    URL of the data portal for the Domain.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    serviceRole String
    ARN of the service role used by DataZone. Required when domain_version is set to V2.
    singleSignOn Property Map
    Single sign on options, used to enable AWS IAM Identity Center for DataZone.
    skipDeletionCheck Boolean
    Whether to skip the deletion check for the Domain.
    tags Map<String>
    tagsAll Map<String>
    Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
    timeouts Property Map

    Supporting Types

    DomainSingleSignOn, DomainSingleSignOnArgs

    Type string
    UserAssignment string
    Type string
    UserAssignment string
    type String
    userAssignment String
    type string
    userAssignment string
    type String
    userAssignment String

    DomainTimeouts, DomainTimeoutsArgs

    Create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    Delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    Create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    Delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    create String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    create str
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete str
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    create String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.

    Import

    Using pulumi import, import DataZone Domain using the domain_id. For example:

    $ pulumi import aws:datazone/domain:Domain example domain-id-12345678
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo
    AWS v7.7.0 published on Friday, Sep 5, 2025 by Pulumi