Form Type Args
data class FormTypeArgs(val description: Output<String>? = null, val domainIdentifier: Output<String>? = null, val model: Output<FormTypeModelArgs>? = null, val name: Output<String>? = null, val owningProjectIdentifier: Output<String>? = null, val status: Output<String>? = null, val timeouts: Output<FormTypeTimeoutsArgs>? = null) : ConvertibleToJava<FormTypeArgs>
Resource for managing an AWS DataZone Form Type.
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: "example-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",
},
},
],
}),
inlinePolicies: [{
name: "example-policy",
policy: JSON.stringify({
Version: "2012-10-17",
Statement: [{
Action: [
"datazone:*",
"ram:*",
"sso:*",
"kms:*",
],
Effect: "Allow",
Resource: "*",
}],
}),
}],
});
const test = new aws.datazone.Domain("test", {
name: "example",
domainExecutionRole: domainExecutionRole.arn,
});
const testSecurityGroup = new aws.ec2.SecurityGroup("test", {name: "example"});
const testProject = new aws.datazone.Project("test", {
domainIdentifier: test.id,
glossaryTerms: ["2N8w6XJCwZf"],
name: "example name",
description: "desc",
skipDeletionCheck: true,
});
const testFormType = new aws.datazone.FormType("test", {
description: "desc",
name: "SageMakerModelFormType",
domainIdentifier: test.id,
owningProjectIdentifier: testProject.id,
status: "DISABLED",
model: {
smithy: `\x09structure SageMakerModelFormType {
\x09\x09\x09@required
\x09\x09\x09@amazon.datazone#searchable
\x09\x09\x09modelName: String
\x09\x09\x09@required
\x09\x09\x09modelArn: String
\x09\x09\x09@required
\x09\x09\x09creationTime: String
\x09\x09\x09}
`,
},
});
Content copied to clipboard
import pulumi
import json
import pulumi_aws as aws
domain_execution_role = aws.iam.Role("domain_execution_role",
name="example-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",
},
},
],
}),
inline_policies=[{
"name": "example-policy",
"policy": json.dumps({
"Version": "2012-10-17",
"Statement": [{
"Action": [
"datazone:*",
"ram:*",
"sso:*",
"kms:*",
],
"Effect": "Allow",
"Resource": "*",
}],
}),
}])
test = aws.datazone.Domain("test",
name="example",
domain_execution_role=domain_execution_role.arn)
test_security_group = aws.ec2.SecurityGroup("test", name="example")
test_project = aws.datazone.Project("test",
domain_identifier=test.id,
glossary_terms=["2N8w6XJCwZf"],
name="example name",
description="desc",
skip_deletion_check=True)
test_form_type = aws.datazone.FormType("test",
description="desc",
name="SageMakerModelFormType",
domain_identifier=test.id,
owning_project_identifier=test_project.id,
status="DISABLED",
model={
"smithy": """\x09structure SageMakerModelFormType {
\x09\x09\x09@required
\x09\x09\x09@amazon.datazone#searchable
\x09\x09\x09modelName: String
\x09\x09\x09@required
\x09\x09\x09modelArn: String
\x09\x09\x09@required
\x09\x09\x09creationTime: String
\x09\x09\x09}
""",
})
Content copied to clipboard
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 = "example-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",
},
},
},
}),
InlinePolicies = new[]
{
new Aws.Iam.Inputs.RoleInlinePolicyArgs
{
Name = "example-policy",
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 test = new Aws.DataZone.Domain("test", new()
{
Name = "example",
DomainExecutionRole = domainExecutionRole.Arn,
});
var testSecurityGroup = new Aws.Ec2.SecurityGroup("test", new()
{
Name = "example",
});
var testProject = new Aws.DataZone.Project("test", new()
{
DomainIdentifier = test.Id,
GlossaryTerms = new[]
{
"2N8w6XJCwZf",
},
Name = "example name",
Description = "desc",
SkipDeletionCheck = true,
});
var testFormType = new Aws.DataZone.FormType("test", new()
{
Description = "desc",
Name = "SageMakerModelFormType",
DomainIdentifier = test.Id,
OwningProjectIdentifier = testProject.Id,
Status = "DISABLED",
Model = new Aws.DataZone.Inputs.FormTypeModelArgs
{
Smithy = @" structure SageMakerModelFormType {
@required
@amazon.datazone#searchable
modelName: String
@required
modelArn: String
@required
creationTime: String
}
",
},
});
});
Content copied to clipboard
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/datazone"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi-aws/sdk/v6/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)
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)
domainExecutionRole, err := iam.NewRole(ctx, "domain_execution_role", &iam.RoleArgs{
Name: pulumi.String("example-role"),
AssumeRolePolicy: pulumi.String(json0),
InlinePolicies: iam.RoleInlinePolicyArray{
&iam.RoleInlinePolicyArgs{
Name: pulumi.String("example-policy"),
Policy: pulumi.String(json1),
},
},
})
if err != nil {
return err
}
test, err := datazone.NewDomain(ctx, "test", &datazone.DomainArgs{
Name: pulumi.String("example"),
DomainExecutionRole: domainExecutionRole.Arn,
})
if err != nil {
return err
}
_, err = ec2.NewSecurityGroup(ctx, "test", &ec2.SecurityGroupArgs{
Name: pulumi.String("example"),
})
if err != nil {
return err
}
testProject, err := datazone.NewProject(ctx, "test", &datazone.ProjectArgs{
DomainIdentifier: test.ID(),
GlossaryTerms: pulumi.StringArray{
pulumi.String("2N8w6XJCwZf"),
},
Name: pulumi.String("example name"),
Description: pulumi.String("desc"),
SkipDeletionCheck: pulumi.Bool(true),
})
if err != nil {
return err
}
_, err = datazone.NewFormType(ctx, "test", &datazone.FormTypeArgs{
Description: pulumi.String("desc"),
Name: pulumi.String("SageMakerModelFormType"),
DomainIdentifier: test.ID(),
OwningProjectIdentifier: testProject.ID(),
Status: pulumi.String("DISABLED"),
Model: &datazone.FormTypeModelArgs{
Smithy: pulumi.String(` structure SageMakerModelFormType {
@required
@amazon.datazone#searchable
modelName: String
@required
modelArn: String
@required
creationTime: String
}
`),
},
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
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.inputs.RoleInlinePolicyArgs;
import com.pulumi.aws.datazone.Domain;
import com.pulumi.aws.datazone.DomainArgs;
import com.pulumi.aws.ec2.SecurityGroup;
import com.pulumi.aws.ec2.SecurityGroupArgs;
import com.pulumi.aws.datazone.Project;
import com.pulumi.aws.datazone.ProjectArgs;
import com.pulumi.aws.datazone.FormType;
import com.pulumi.aws.datazone.FormTypeArgs;
import com.pulumi.aws.datazone.inputs.FormTypeModelArgs;
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("example-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")
))
)
))
)))
.inlinePolicies(RoleInlinePolicyArgs.builder()
.name("example-policy")
.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())
.build());
var test = new Domain("test", DomainArgs.builder()
.name("example")
.domainExecutionRole(domainExecutionRole.arn())
.build());
var testSecurityGroup = new SecurityGroup("testSecurityGroup", SecurityGroupArgs.builder()
.name("example")
.build());
var testProject = new Project("testProject", ProjectArgs.builder()
.domainIdentifier(test.id())
.glossaryTerms("2N8w6XJCwZf")
.name("example name")
.description("desc")
.skipDeletionCheck(true)
.build());
var testFormType = new FormType("testFormType", FormTypeArgs.builder()
.description("desc")
.name("SageMakerModelFormType")
.domainIdentifier(test.id())
.owningProjectIdentifier(testProject.id())
.status("DISABLED")
.model(FormTypeModelArgs.builder()
.smithy("""
structure SageMakerModelFormType {
@required
@amazon.datazone#searchable
modelName: String
@required
modelArn: String
@required
creationTime: String
}
""")
.build())
.build());
}
}
Content copied to clipboard
resources:
domainExecutionRole:
type: aws:iam:Role
name: domain_execution_role
properties:
name: example-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
inlinePolicies:
- name: example-policy
policy:
fn::toJSON:
Version: 2012-10-17
Statement:
- Action:
- datazone:*
- ram:*
- sso:*
- kms:*
Effect: Allow
Resource: '*'
test:
type: aws:datazone:Domain
properties:
name: example
domainExecutionRole: ${domainExecutionRole.arn}
testSecurityGroup:
type: aws:ec2:SecurityGroup
name: test
properties:
name: example
testProject:
type: aws:datazone:Project
name: test
properties:
domainIdentifier: ${test.id}
glossaryTerms:
- 2N8w6XJCwZf
name: example name
description: desc
skipDeletionCheck: true
testFormType:
type: aws:datazone:FormType
name: test
properties:
description: desc
name: SageMakerModelFormType
domainIdentifier: ${test.id}
owningProjectIdentifier: ${testProject.id}
status: DISABLED
model:
smithy: |
structure SageMakerModelFormType {
@required
@amazon.datazone#searchable
modelName: String
@required
modelArn: String
@required
creationTime: String
}
Content copied to clipboard
Import
Using pulumi import
, import DataZone Form Type using a comma separated value of domain_identifier
,name
,revision
. For example:
$ pulumi import aws:datazone/formType:FormType example domain_identifier,name,revision
Content copied to clipboard
Constructors
Link copied to clipboard
constructor(description: Output<String>? = null, domainIdentifier: Output<String>? = null, model: Output<FormTypeModelArgs>? = null, name: Output<String>? = null, owningProjectIdentifier: Output<String>? = null, status: Output<String>? = null, timeouts: Output<FormTypeTimeoutsArgs>? = null)
Properties
Link copied to clipboard
Description of form type. Must have a length of between 1 and 2048 characters.
Link copied to clipboard
Identifier of the domain.
Link copied to clipboard
Object of the model of the form type that contains the following attributes.
Link copied to clipboard
Identifier of project that owns the form type. Must follow regex of ^a-zA-Z0-9_-{1,36}.
Link copied to clipboard