github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/connect/contactFlow.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package connect
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides an Amazon Connect Contact Flow resource. For more information see
    16  // [Amazon Connect: Getting Started](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-get-started.html)
    17  //
    18  // This resource embeds or references Contact Flows specified in Amazon Connect Contact Flow Language. For more information see
    19  // [Amazon Connect Flow language](https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html)
    20  //
    21  // !> **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).
    22  // See example below which uses `jq` to extract the `Content` attribute and saves it to a local file.
    23  //
    24  // ## Example Usage
    25  //
    26  // ### Basic
    27  //
    28  // <!--Start PulumiCodeChooser -->
    29  // ```go
    30  // package main
    31  //
    32  // import (
    33  //
    34  //	"encoding/json"
    35  //
    36  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
    37  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    38  //
    39  // )
    40  //
    41  //	func main() {
    42  //		pulumi.Run(func(ctx *pulumi.Context) error {
    43  //			tmpJSON0, err := json.Marshal(map[string]interface{}{
    44  //				"Version":     "2019-10-30",
    45  //				"StartAction": "12345678-1234-1234-1234-123456789012",
    46  //				"Actions": []interface{}{
    47  //					map[string]interface{}{
    48  //						"Identifier": "12345678-1234-1234-1234-123456789012",
    49  //						"Type":       "MessageParticipant",
    50  //						"Transitions": map[string]interface{}{
    51  //							"NextAction": "abcdef-abcd-abcd-abcd-abcdefghijkl",
    52  //							"Errors":     []interface{}{},
    53  //							"Conditions": []interface{}{},
    54  //						},
    55  //						"Parameters": map[string]interface{}{
    56  //							"Text": "Thanks for calling the sample flow!",
    57  //						},
    58  //					},
    59  //					map[string]interface{}{
    60  //						"Identifier":  "abcdef-abcd-abcd-abcd-abcdefghijkl",
    61  //						"Type":        "DisconnectParticipant",
    62  //						"Transitions": nil,
    63  //						"Parameters":  nil,
    64  //					},
    65  //				},
    66  //			})
    67  //			if err != nil {
    68  //				return err
    69  //			}
    70  //			json0 := string(tmpJSON0)
    71  //			_, err = connect.NewContactFlow(ctx, "test", &connect.ContactFlowArgs{
    72  //				InstanceId:  pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"),
    73  //				Name:        pulumi.String("Test"),
    74  //				Description: pulumi.String("Test Contact Flow Description"),
    75  //				Type:        pulumi.String("CONTACT_FLOW"),
    76  //				Content:     pulumi.String(json0),
    77  //				Tags: pulumi.StringMap{
    78  //					"Name":        pulumi.String("Test Contact Flow"),
    79  //					"Application": pulumi.String("Example"),
    80  //					"Method":      pulumi.String("Create"),
    81  //				},
    82  //			})
    83  //			if err != nil {
    84  //				return err
    85  //			}
    86  //			return nil
    87  //		})
    88  //	}
    89  //
    90  // ```
    91  // <!--End PulumiCodeChooser -->
    92  //
    93  // ### With External Content
    94  //
    95  // Use the AWS CLI to extract Contact Flow Content:
    96  //
    97  // Use the generated file as input:
    98  //
    99  // <!--Start PulumiCodeChooser -->
   100  // ```go
   101  // package main
   102  //
   103  // import (
   104  //
   105  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
   106  //	"github.com/pulumi/pulumi-std/sdk/go/std"
   107  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   108  //
   109  // )
   110  //
   111  //	func main() {
   112  //		pulumi.Run(func(ctx *pulumi.Context) error {
   113  //			invokeFilebase64sha256, err := std.Filebase64sha256(ctx, &std.Filebase64sha256Args{
   114  //				Input: "contact_flow.json",
   115  //			}, nil)
   116  //			if err != nil {
   117  //				return err
   118  //			}
   119  //			_, err = connect.NewContactFlow(ctx, "test", &connect.ContactFlowArgs{
   120  //				InstanceId:  pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"),
   121  //				Name:        pulumi.String("Test"),
   122  //				Description: pulumi.String("Test Contact Flow Description"),
   123  //				Type:        pulumi.String("CONTACT_FLOW"),
   124  //				Filename:    pulumi.String("contact_flow.json"),
   125  //				ContentHash: invokeFilebase64sha256.Result,
   126  //				Tags: pulumi.StringMap{
   127  //					"Name":        pulumi.String("Test Contact Flow"),
   128  //					"Application": pulumi.String("Example"),
   129  //					"Method":      pulumi.String("Create"),
   130  //				},
   131  //			})
   132  //			if err != nil {
   133  //				return err
   134  //			}
   135  //			return nil
   136  //		})
   137  //	}
   138  //
   139  // ```
   140  // <!--End PulumiCodeChooser -->
   141  //
   142  // ## Import
   143  //
   144  // Using `pulumi import`, import Amazon Connect Contact Flows using the `instance_id` and `contact_flow_id` separated by a colon (`:`). For example:
   145  //
   146  // ```sh
   147  // $ pulumi import aws:connect/contactFlow:ContactFlow example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5
   148  // ```
   149  type ContactFlow struct {
   150  	pulumi.CustomResourceState
   151  
   152  	// The Amazon Resource Name (ARN) of the Contact Flow.
   153  	Arn pulumi.StringOutput `pulumi:"arn"`
   154  	// The identifier of the Contact Flow.
   155  	ContactFlowId pulumi.StringOutput `pulumi:"contactFlowId"`
   156  	// 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.
   157  	Content pulumi.StringOutput `pulumi:"content"`
   158  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
   159  	ContentHash pulumi.StringPtrOutput `pulumi:"contentHash"`
   160  	// Specifies the description of the Contact Flow.
   161  	Description pulumi.StringPtrOutput `pulumi:"description"`
   162  	// The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
   163  	Filename pulumi.StringPtrOutput `pulumi:"filename"`
   164  	// Specifies the identifier of the hosting Amazon Connect Instance.
   165  	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
   166  	// Specifies the name of the Contact Flow.
   167  	Name pulumi.StringOutput `pulumi:"name"`
   168  	// 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.
   169  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   170  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   171  	//
   172  	// Deprecated: Please use `tags` instead.
   173  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   174  	// 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`.
   175  	Type pulumi.StringPtrOutput `pulumi:"type"`
   176  }
   177  
   178  // NewContactFlow registers a new resource with the given unique name, arguments, and options.
   179  func NewContactFlow(ctx *pulumi.Context,
   180  	name string, args *ContactFlowArgs, opts ...pulumi.ResourceOption) (*ContactFlow, error) {
   181  	if args == nil {
   182  		return nil, errors.New("missing one or more required arguments")
   183  	}
   184  
   185  	if args.InstanceId == nil {
   186  		return nil, errors.New("invalid value for required argument 'InstanceId'")
   187  	}
   188  	opts = internal.PkgResourceDefaultOpts(opts)
   189  	var resource ContactFlow
   190  	err := ctx.RegisterResource("aws:connect/contactFlow:ContactFlow", name, args, &resource, opts...)
   191  	if err != nil {
   192  		return nil, err
   193  	}
   194  	return &resource, nil
   195  }
   196  
   197  // GetContactFlow gets an existing ContactFlow resource's state with the given name, ID, and optional
   198  // state properties that are used to uniquely qualify the lookup (nil if not required).
   199  func GetContactFlow(ctx *pulumi.Context,
   200  	name string, id pulumi.IDInput, state *ContactFlowState, opts ...pulumi.ResourceOption) (*ContactFlow, error) {
   201  	var resource ContactFlow
   202  	err := ctx.ReadResource("aws:connect/contactFlow:ContactFlow", name, id, state, &resource, opts...)
   203  	if err != nil {
   204  		return nil, err
   205  	}
   206  	return &resource, nil
   207  }
   208  
   209  // Input properties used for looking up and filtering ContactFlow resources.
   210  type contactFlowState struct {
   211  	// The Amazon Resource Name (ARN) of the Contact Flow.
   212  	Arn *string `pulumi:"arn"`
   213  	// The identifier of the Contact Flow.
   214  	ContactFlowId *string `pulumi:"contactFlowId"`
   215  	// 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.
   216  	Content *string `pulumi:"content"`
   217  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
   218  	ContentHash *string `pulumi:"contentHash"`
   219  	// Specifies the description of the Contact Flow.
   220  	Description *string `pulumi:"description"`
   221  	// The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
   222  	Filename *string `pulumi:"filename"`
   223  	// Specifies the identifier of the hosting Amazon Connect Instance.
   224  	InstanceId *string `pulumi:"instanceId"`
   225  	// Specifies the name of the Contact Flow.
   226  	Name *string `pulumi:"name"`
   227  	// 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.
   228  	Tags map[string]string `pulumi:"tags"`
   229  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   230  	//
   231  	// Deprecated: Please use `tags` instead.
   232  	TagsAll map[string]string `pulumi:"tagsAll"`
   233  	// 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`.
   234  	Type *string `pulumi:"type"`
   235  }
   236  
   237  type ContactFlowState struct {
   238  	// The Amazon Resource Name (ARN) of the Contact Flow.
   239  	Arn pulumi.StringPtrInput
   240  	// The identifier of the Contact Flow.
   241  	ContactFlowId pulumi.StringPtrInput
   242  	// 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.
   243  	Content pulumi.StringPtrInput
   244  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
   245  	ContentHash pulumi.StringPtrInput
   246  	// Specifies the description of the Contact Flow.
   247  	Description pulumi.StringPtrInput
   248  	// The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
   249  	Filename pulumi.StringPtrInput
   250  	// Specifies the identifier of the hosting Amazon Connect Instance.
   251  	InstanceId pulumi.StringPtrInput
   252  	// Specifies the name of the Contact Flow.
   253  	Name pulumi.StringPtrInput
   254  	// 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.
   255  	Tags pulumi.StringMapInput
   256  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   257  	//
   258  	// Deprecated: Please use `tags` instead.
   259  	TagsAll pulumi.StringMapInput
   260  	// 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`.
   261  	Type pulumi.StringPtrInput
   262  }
   263  
   264  func (ContactFlowState) ElementType() reflect.Type {
   265  	return reflect.TypeOf((*contactFlowState)(nil)).Elem()
   266  }
   267  
   268  type contactFlowArgs struct {
   269  	// 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.
   270  	Content *string `pulumi:"content"`
   271  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
   272  	ContentHash *string `pulumi:"contentHash"`
   273  	// Specifies the description of the Contact Flow.
   274  	Description *string `pulumi:"description"`
   275  	// The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
   276  	Filename *string `pulumi:"filename"`
   277  	// Specifies the identifier of the hosting Amazon Connect Instance.
   278  	InstanceId string `pulumi:"instanceId"`
   279  	// Specifies the name of the Contact Flow.
   280  	Name *string `pulumi:"name"`
   281  	// 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.
   282  	Tags map[string]string `pulumi:"tags"`
   283  	// 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`.
   284  	Type *string `pulumi:"type"`
   285  }
   286  
   287  // The set of arguments for constructing a ContactFlow resource.
   288  type ContactFlowArgs struct {
   289  	// 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.
   290  	Content pulumi.StringPtrInput
   291  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
   292  	ContentHash pulumi.StringPtrInput
   293  	// Specifies the description of the Contact Flow.
   294  	Description pulumi.StringPtrInput
   295  	// The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
   296  	Filename pulumi.StringPtrInput
   297  	// Specifies the identifier of the hosting Amazon Connect Instance.
   298  	InstanceId pulumi.StringInput
   299  	// Specifies the name of the Contact Flow.
   300  	Name pulumi.StringPtrInput
   301  	// 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.
   302  	Tags pulumi.StringMapInput
   303  	// 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`.
   304  	Type pulumi.StringPtrInput
   305  }
   306  
   307  func (ContactFlowArgs) ElementType() reflect.Type {
   308  	return reflect.TypeOf((*contactFlowArgs)(nil)).Elem()
   309  }
   310  
   311  type ContactFlowInput interface {
   312  	pulumi.Input
   313  
   314  	ToContactFlowOutput() ContactFlowOutput
   315  	ToContactFlowOutputWithContext(ctx context.Context) ContactFlowOutput
   316  }
   317  
   318  func (*ContactFlow) ElementType() reflect.Type {
   319  	return reflect.TypeOf((**ContactFlow)(nil)).Elem()
   320  }
   321  
   322  func (i *ContactFlow) ToContactFlowOutput() ContactFlowOutput {
   323  	return i.ToContactFlowOutputWithContext(context.Background())
   324  }
   325  
   326  func (i *ContactFlow) ToContactFlowOutputWithContext(ctx context.Context) ContactFlowOutput {
   327  	return pulumi.ToOutputWithContext(ctx, i).(ContactFlowOutput)
   328  }
   329  
   330  // ContactFlowArrayInput is an input type that accepts ContactFlowArray and ContactFlowArrayOutput values.
   331  // You can construct a concrete instance of `ContactFlowArrayInput` via:
   332  //
   333  //	ContactFlowArray{ ContactFlowArgs{...} }
   334  type ContactFlowArrayInput interface {
   335  	pulumi.Input
   336  
   337  	ToContactFlowArrayOutput() ContactFlowArrayOutput
   338  	ToContactFlowArrayOutputWithContext(context.Context) ContactFlowArrayOutput
   339  }
   340  
   341  type ContactFlowArray []ContactFlowInput
   342  
   343  func (ContactFlowArray) ElementType() reflect.Type {
   344  	return reflect.TypeOf((*[]*ContactFlow)(nil)).Elem()
   345  }
   346  
   347  func (i ContactFlowArray) ToContactFlowArrayOutput() ContactFlowArrayOutput {
   348  	return i.ToContactFlowArrayOutputWithContext(context.Background())
   349  }
   350  
   351  func (i ContactFlowArray) ToContactFlowArrayOutputWithContext(ctx context.Context) ContactFlowArrayOutput {
   352  	return pulumi.ToOutputWithContext(ctx, i).(ContactFlowArrayOutput)
   353  }
   354  
   355  // ContactFlowMapInput is an input type that accepts ContactFlowMap and ContactFlowMapOutput values.
   356  // You can construct a concrete instance of `ContactFlowMapInput` via:
   357  //
   358  //	ContactFlowMap{ "key": ContactFlowArgs{...} }
   359  type ContactFlowMapInput interface {
   360  	pulumi.Input
   361  
   362  	ToContactFlowMapOutput() ContactFlowMapOutput
   363  	ToContactFlowMapOutputWithContext(context.Context) ContactFlowMapOutput
   364  }
   365  
   366  type ContactFlowMap map[string]ContactFlowInput
   367  
   368  func (ContactFlowMap) ElementType() reflect.Type {
   369  	return reflect.TypeOf((*map[string]*ContactFlow)(nil)).Elem()
   370  }
   371  
   372  func (i ContactFlowMap) ToContactFlowMapOutput() ContactFlowMapOutput {
   373  	return i.ToContactFlowMapOutputWithContext(context.Background())
   374  }
   375  
   376  func (i ContactFlowMap) ToContactFlowMapOutputWithContext(ctx context.Context) ContactFlowMapOutput {
   377  	return pulumi.ToOutputWithContext(ctx, i).(ContactFlowMapOutput)
   378  }
   379  
   380  type ContactFlowOutput struct{ *pulumi.OutputState }
   381  
   382  func (ContactFlowOutput) ElementType() reflect.Type {
   383  	return reflect.TypeOf((**ContactFlow)(nil)).Elem()
   384  }
   385  
   386  func (o ContactFlowOutput) ToContactFlowOutput() ContactFlowOutput {
   387  	return o
   388  }
   389  
   390  func (o ContactFlowOutput) ToContactFlowOutputWithContext(ctx context.Context) ContactFlowOutput {
   391  	return o
   392  }
   393  
   394  // The Amazon Resource Name (ARN) of the Contact Flow.
   395  func (o ContactFlowOutput) Arn() pulumi.StringOutput {
   396  	return o.ApplyT(func(v *ContactFlow) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   397  }
   398  
   399  // The identifier of the Contact Flow.
   400  func (o ContactFlowOutput) ContactFlowId() pulumi.StringOutput {
   401  	return o.ApplyT(func(v *ContactFlow) pulumi.StringOutput { return v.ContactFlowId }).(pulumi.StringOutput)
   402  }
   403  
   404  // 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.
   405  func (o ContactFlowOutput) Content() pulumi.StringOutput {
   406  	return o.ApplyT(func(v *ContactFlow) pulumi.StringOutput { return v.Content }).(pulumi.StringOutput)
   407  }
   408  
   409  // Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow source specified with `filename`.
   410  func (o ContactFlowOutput) ContentHash() pulumi.StringPtrOutput {
   411  	return o.ApplyT(func(v *ContactFlow) pulumi.StringPtrOutput { return v.ContentHash }).(pulumi.StringPtrOutput)
   412  }
   413  
   414  // Specifies the description of the Contact Flow.
   415  func (o ContactFlowOutput) Description() pulumi.StringPtrOutput {
   416  	return o.ApplyT(func(v *ContactFlow) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   417  }
   418  
   419  // The path to the Contact Flow source within the local filesystem. Conflicts with `content`.
   420  func (o ContactFlowOutput) Filename() pulumi.StringPtrOutput {
   421  	return o.ApplyT(func(v *ContactFlow) pulumi.StringPtrOutput { return v.Filename }).(pulumi.StringPtrOutput)
   422  }
   423  
   424  // Specifies the identifier of the hosting Amazon Connect Instance.
   425  func (o ContactFlowOutput) InstanceId() pulumi.StringOutput {
   426  	return o.ApplyT(func(v *ContactFlow) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput)
   427  }
   428  
   429  // Specifies the name of the Contact Flow.
   430  func (o ContactFlowOutput) Name() pulumi.StringOutput {
   431  	return o.ApplyT(func(v *ContactFlow) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   432  }
   433  
   434  // 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.
   435  func (o ContactFlowOutput) Tags() pulumi.StringMapOutput {
   436  	return o.ApplyT(func(v *ContactFlow) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   437  }
   438  
   439  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   440  //
   441  // Deprecated: Please use `tags` instead.
   442  func (o ContactFlowOutput) TagsAll() pulumi.StringMapOutput {
   443  	return o.ApplyT(func(v *ContactFlow) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   444  }
   445  
   446  // 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`.
   447  func (o ContactFlowOutput) Type() pulumi.StringPtrOutput {
   448  	return o.ApplyT(func(v *ContactFlow) pulumi.StringPtrOutput { return v.Type }).(pulumi.StringPtrOutput)
   449  }
   450  
   451  type ContactFlowArrayOutput struct{ *pulumi.OutputState }
   452  
   453  func (ContactFlowArrayOutput) ElementType() reflect.Type {
   454  	return reflect.TypeOf((*[]*ContactFlow)(nil)).Elem()
   455  }
   456  
   457  func (o ContactFlowArrayOutput) ToContactFlowArrayOutput() ContactFlowArrayOutput {
   458  	return o
   459  }
   460  
   461  func (o ContactFlowArrayOutput) ToContactFlowArrayOutputWithContext(ctx context.Context) ContactFlowArrayOutput {
   462  	return o
   463  }
   464  
   465  func (o ContactFlowArrayOutput) Index(i pulumi.IntInput) ContactFlowOutput {
   466  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ContactFlow {
   467  		return vs[0].([]*ContactFlow)[vs[1].(int)]
   468  	}).(ContactFlowOutput)
   469  }
   470  
   471  type ContactFlowMapOutput struct{ *pulumi.OutputState }
   472  
   473  func (ContactFlowMapOutput) ElementType() reflect.Type {
   474  	return reflect.TypeOf((*map[string]*ContactFlow)(nil)).Elem()
   475  }
   476  
   477  func (o ContactFlowMapOutput) ToContactFlowMapOutput() ContactFlowMapOutput {
   478  	return o
   479  }
   480  
   481  func (o ContactFlowMapOutput) ToContactFlowMapOutputWithContext(ctx context.Context) ContactFlowMapOutput {
   482  	return o
   483  }
   484  
   485  func (o ContactFlowMapOutput) MapIndex(k pulumi.StringInput) ContactFlowOutput {
   486  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ContactFlow {
   487  		return vs[0].(map[string]*ContactFlow)[vs[1].(string)]
   488  	}).(ContactFlowOutput)
   489  }
   490  
   491  func init() {
   492  	pulumi.RegisterInputType(reflect.TypeOf((*ContactFlowInput)(nil)).Elem(), &ContactFlow{})
   493  	pulumi.RegisterInputType(reflect.TypeOf((*ContactFlowArrayInput)(nil)).Elem(), ContactFlowArray{})
   494  	pulumi.RegisterInputType(reflect.TypeOf((*ContactFlowMapInput)(nil)).Elem(), ContactFlowMap{})
   495  	pulumi.RegisterOutputType(ContactFlowOutput{})
   496  	pulumi.RegisterOutputType(ContactFlowArrayOutput{})
   497  	pulumi.RegisterOutputType(ContactFlowMapOutput{})
   498  }