Workflow Args
data class WorkflowArgs(val changeDescription: Output<String>? = null, val data: Output<String>? = null, val description: Output<String>? = null, val kmsKeyId: Output<String>? = null, val name: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val type: Output<String>? = null, val uri: Output<String>? = null, val version: Output<String>? = null) : ConvertibleToJava<WorkflowArgs>
Resource for managing an AWS EC2 Image Builder Workflow.
Image Builder manages the workflows for the distribution stage. Therefore, using the DISTRIBUTION workflow type results in an error.
Example Usage
Basic Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.imagebuilder.Workflow("example", {
name: "example",
version: "1.0.0",
type: "TEST",
data: `name: example
description: Workflow to test an image
schemaVersion: 1.0
parameters:
- name: waitForActionAtEnd
type: boolean
steps:
- name: LaunchTestInstance
action: LaunchInstance
onFailure: Abort
inputs:
waitFor: "ssmAgent"
- name: TerminateTestInstance
action: TerminateInstance
onFailure: Continue
inputs:
instanceId.: ".stepOutputs.LaunchTestInstance.instanceId"
- name: WaitForActionAtEnd
action: WaitForAction
if:
booleanEquals: true
value: ".parameters.waitForActionAtEnd"
`,
});
Content copied to clipboard
import pulumi
import pulumi_aws as aws
example = aws.imagebuilder.Workflow("example",
name="example",
version="1.0.0",
type="TEST",
data="""name: example
description: Workflow to test an image
schemaVersion: 1.0
parameters:
- name: waitForActionAtEnd
type: boolean
steps:
- name: LaunchTestInstance
action: LaunchInstance
onFailure: Abort
inputs:
waitFor: "ssmAgent"
- name: TerminateTestInstance
action: TerminateInstance
onFailure: Continue
inputs:
instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"
- name: WaitForActionAtEnd
action: WaitForAction
if:
booleanEquals: true
value: "$.parameters.waitForActionAtEnd"
""")
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.ImageBuilder.Workflow("example", new()
{
Name = "example",
Version = "1.0.0",
Type = "TEST",
Data = @"name: example
description: Workflow to test an image
schemaVersion: 1.0
parameters:
- name: waitForActionAtEnd
type: boolean
steps:
- name: LaunchTestInstance
action: LaunchInstance
onFailure: Abort
inputs:
waitFor: ""ssmAgent""
- name: TerminateTestInstance
action: TerminateInstance
onFailure: Continue
inputs:
instanceId.$: ""$.stepOutputs.LaunchTestInstance.instanceId""
- name: WaitForActionAtEnd
action: WaitForAction
if:
booleanEquals: true
value: ""$.parameters.waitForActionAtEnd""
",
});
});
Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := imagebuilder.NewWorkflow(ctx, "example", &imagebuilder.WorkflowArgs{
Name: pulumi.String("example"),
Version: pulumi.String("1.0.0"),
Type: pulumi.String("TEST"),
Data: pulumi.String(`name: example
description: Workflow to test an image
schemaVersion: 1.0
parameters:
- name: waitForActionAtEnd
type: boolean
steps:
- name: LaunchTestInstance
action: LaunchInstance
onFailure: Abort
inputs:
waitFor: "ssmAgent"
- name: TerminateTestInstance
action: TerminateInstance
onFailure: Continue
inputs:
instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"
- name: WaitForActionAtEnd
action: WaitForAction
if:
booleanEquals: true
value: "$.parameters.waitForActionAtEnd"
`),
})
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.imagebuilder.Workflow;
import com.pulumi.aws.imagebuilder.WorkflowArgs;
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 example = new Workflow("example", WorkflowArgs.builder()
.name("example")
.version("1.0.0")
.type("TEST")
.data("""
name: example
description: Workflow to test an image
schemaVersion: 1.0
parameters:
- name: waitForActionAtEnd
type: boolean
steps:
- name: LaunchTestInstance
action: LaunchInstance
onFailure: Abort
inputs:
waitFor: "ssmAgent"
- name: TerminateTestInstance
action: TerminateInstance
onFailure: Continue
inputs:
instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"
- name: WaitForActionAtEnd
action: WaitForAction
if:
booleanEquals: true
value: "$.parameters.waitForActionAtEnd"
""")
.build());
}
}
Content copied to clipboard
resources:
example:
type: aws:imagebuilder:Workflow
properties:
name: example
version: 1.0.0
type: TEST
data: |
name: example
description: Workflow to test an image
schemaVersion: 1.0
parameters:
- name: waitForActionAtEnd
type: boolean
steps:
- name: LaunchTestInstance
action: LaunchInstance
onFailure: Abort
inputs:
waitFor: "ssmAgent"
- name: TerminateTestInstance
action: TerminateInstance
onFailure: Continue
inputs:
instanceId.$: "$.stepOutputs.LaunchTestInstance.instanceId"
- name: WaitForActionAtEnd
action: WaitForAction
if:
booleanEquals: true
value: "$.parameters.waitForActionAtEnd"
Content copied to clipboard
Import
Using pulumi import
, import EC2 Image Builder Workflow using the example_id_arg
. For example:
$ pulumi import aws:imagebuilder/workflow:Workflow example arn:aws:imagebuilder:us-east-1:aws:workflow/test/example/1.0.1/1
Content copied to clipboard
Certain resource arguments, such as uri
, cannot be read via the API and imported into Terraform. Terraform will display a difference for these arguments the first run after import if declared in the Terraform configuration for an imported resource.
Constructors
Link copied to clipboard
constructor(changeDescription: Output<String>? = null, data: Output<String>? = null, description: Output<String>? = null, kmsKeyId: Output<String>? = null, name: Output<String>? = null, tags: Output<Map<String, String>>? = null, type: Output<String>? = null, uri: Output<String>? = null, version: Output<String>? = null)