@pulumi/aws
Version:
A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.
270 lines (269 loc) • 11.3 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
/**
* Provides an Amazon Connect Contact Flow resource. For more information see
* [Amazon Connect: Getting Started](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-get-started.html)
*
* This resource embeds or references Contact Flows specified in Amazon Connect Contact Flow Language. For more information see
* [Amazon Connect Flow language](https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html)
*
* !> **WARN:** Contact Flows exported from the Console [Contact Flow import/export](https://docs.aws.amazon.com/connect/latest/adminguide/contact-flow-import-export.html) are not in the Amazon Connect Contact Flow Language and can not be used with this resource. Instead, the recommendation is to use the AWS CLI [`describe-contact-flow`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/connect/describe-contact-flow.html).
* See example below which uses `jq` to extract the `Content` attribute and saves it to a local file.
*
* ## Example Usage
*
* ### Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const test = new aws.connect.ContactFlow("test", {
* instanceId: "aaaaaaaa-bbbb-cccc-dddd-111111111111",
* name: "Test",
* description: "Test Contact Flow Description",
* type: "CONTACT_FLOW",
* content: JSON.stringify({
* Version: "2019-10-30",
* StartAction: "12345678-1234-1234-1234-123456789012",
* Actions: [
* {
* Identifier: "12345678-1234-1234-1234-123456789012",
* Type: "MessageParticipant",
* Transitions: {
* NextAction: "abcdef-abcd-abcd-abcd-abcdefghijkl",
* Errors: [],
* Conditions: [],
* },
* Parameters: {
* Text: "Thanks for calling the sample flow!",
* },
* },
* {
* Identifier: "abcdef-abcd-abcd-abcd-abcdefghijkl",
* Type: "DisconnectParticipant",
* Transitions: {},
* Parameters: {},
* },
* ],
* }),
* tags: {
* Name: "Test Contact Flow",
* Application: "Example",
* Method: "Create",
* },
* });
* ```
*
* ### With External Content
*
* Use the AWS CLI to extract Contact Flow Content:
*
* Use the generated file as input:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* import * as std from "@pulumi/std";
*
* const test = new aws.connect.ContactFlow("test", {
* instanceId: "aaaaaaaa-bbbb-cccc-dddd-111111111111",
* name: "Test",
* description: "Test Contact Flow Description",
* type: "CONTACT_FLOW",
* filename: "contact_flow.json",
* contentHash: std.filebase64sha256({
* input: "contact_flow.json",
* }).then(invoke => invoke.result),
* tags: {
* Name: "Test Contact Flow",
* Application: "Example",
* Method: "Create",
* },
* });
* ```
*
* ## Import
*
* Using `pulumi import`, import Amazon Connect Contact Flows using the `instance_id` and `contact_flow_id` separated by a colon (`:`). For example:
*
* ```sh
* $ pulumi import aws:connect/contactFlow:ContactFlow example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5
* ```
*/
export declare class ContactFlow extends pulumi.CustomResource {
/**
* Get an existing ContactFlow resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: ContactFlowState, opts?: pulumi.CustomResourceOptions): ContactFlow;
/**
* Returns true if the given object is an instance of ContactFlow. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is ContactFlow;
/**
* The Amazon Resource Name (ARN) of the Contact Flow.
*/
readonly arn: pulumi.Output<string>;
/**
* The identifier of the Contact Flow.
*/
readonly contactFlowId: pulumi.Output<string>;
/**
* Specifies the content of the Contact Flow, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
*/
readonly content: pulumi.Output<string>;
/**
* Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
*/
readonly contentHash: pulumi.Output<string | undefined>;
/**
* Specifies the description of the Contact Flow.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
*/
readonly filename: pulumi.Output<string | undefined>;
/**
* Specifies the identifier of the hosting Amazon Connect Instance.
*/
readonly instanceId: pulumi.Output<string>;
/**
* Specifies the name of the Contact Flow.
*/
readonly name: pulumi.Output<string>;
/**
* 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.
*/
readonly region: pulumi.Output<string>;
/**
* Tags to apply to the Contact Flow. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
readonly tags: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
*/
readonly tagsAll: pulumi.Output<{
[key: string]: string;
}>;
/**
* Specifies the type of the Contact Flow. Defaults to `CONTACT_FLOW`. Allowed Values are: `CONTACT_FLOW`, `CUSTOMER_QUEUE`, `CUSTOMER_HOLD`, `CUSTOMER_WHISPER`, `AGENT_HOLD`, `AGENT_WHISPER`, `OUTBOUND_WHISPER`, `AGENT_TRANSFER`, `QUEUE_TRANSFER`.
*/
readonly type: pulumi.Output<string | undefined>;
/**
* Create a ContactFlow resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args: ContactFlowArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering ContactFlow resources.
*/
export interface ContactFlowState {
/**
* The Amazon Resource Name (ARN) of the Contact Flow.
*/
arn?: pulumi.Input<string>;
/**
* The identifier of the Contact Flow.
*/
contactFlowId?: pulumi.Input<string>;
/**
* Specifies the content of the Contact Flow, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
*/
content?: pulumi.Input<string>;
/**
* Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
*/
contentHash?: pulumi.Input<string>;
/**
* Specifies the description of the Contact Flow.
*/
description?: pulumi.Input<string>;
/**
* The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
*/
filename?: pulumi.Input<string>;
/**
* Specifies the identifier of the hosting Amazon Connect Instance.
*/
instanceId?: pulumi.Input<string>;
/**
* Specifies the name of the Contact Flow.
*/
name?: pulumi.Input<string>;
/**
* 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.
*/
region?: pulumi.Input<string>;
/**
* Tags to apply to the Contact Flow. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
*/
tagsAll?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the type of the Contact Flow. Defaults to `CONTACT_FLOW`. Allowed Values are: `CONTACT_FLOW`, `CUSTOMER_QUEUE`, `CUSTOMER_HOLD`, `CUSTOMER_WHISPER`, `AGENT_HOLD`, `AGENT_WHISPER`, `OUTBOUND_WHISPER`, `AGENT_TRANSFER`, `QUEUE_TRANSFER`.
*/
type?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a ContactFlow resource.
*/
export interface ContactFlowArgs {
/**
* Specifies the content of the Contact Flow, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
*/
content?: pulumi.Input<string>;
/**
* Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
*/
contentHash?: pulumi.Input<string>;
/**
* Specifies the description of the Contact Flow.
*/
description?: pulumi.Input<string>;
/**
* The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
*/
filename?: pulumi.Input<string>;
/**
* Specifies the identifier of the hosting Amazon Connect Instance.
*/
instanceId: pulumi.Input<string>;
/**
* Specifies the name of the Contact Flow.
*/
name?: pulumi.Input<string>;
/**
* 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.
*/
region?: pulumi.Input<string>;
/**
* Tags to apply to the Contact Flow. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the type of the Contact Flow. Defaults to `CONTACT_FLOW`. Allowed Values are: `CONTACT_FLOW`, `CUSTOMER_QUEUE`, `CUSTOMER_HOLD`, `CUSTOMER_WHISPER`, `AGENT_HOLD`, `AGENT_WHISPER`, `OUTBOUND_WHISPER`, `AGENT_TRANSFER`, `QUEUE_TRANSFER`.
*/
type?: pulumi.Input<string>;
}