github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/connect/contactFlowModule.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 Module 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 Modules 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 Flow Modules exported from the Console [See Contact Flow import/export which is the same for Contact Flow Modules](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-module`](https://docs.aws.amazon.com/cli/latest/reference/connect/describe-contact-flow-module.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  //						"Parameters": map[string]interface{}{
    50  //							"Text": "Hello contact flow module",
    51  //						},
    52  //						"Transitions": map[string]interface{}{
    53  //							"NextAction": "abcdef-abcd-abcd-abcd-abcdefghijkl",
    54  //							"Errors":     []interface{}{},
    55  //							"Conditions": []interface{}{},
    56  //						},
    57  //						"Type": "MessageParticipant",
    58  //					},
    59  //					map[string]interface{}{
    60  //						"Identifier":  "abcdef-abcd-abcd-abcd-abcdefghijkl",
    61  //						"Type":        "DisconnectParticipant",
    62  //						"Parameters":  nil,
    63  //						"Transitions": nil,
    64  //					},
    65  //				},
    66  //				"Settings": map[string]interface{}{
    67  //					"InputParameters":  []interface{}{},
    68  //					"OutputParameters": []interface{}{},
    69  //					"Transitions": []map[string]interface{}{
    70  //						map[string]interface{}{
    71  //							"DisplayName":   "Success",
    72  //							"ReferenceName": "Success",
    73  //							"Description":   "",
    74  //						},
    75  //						map[string]interface{}{
    76  //							"DisplayName":   "Error",
    77  //							"ReferenceName": "Error",
    78  //							"Description":   "",
    79  //						},
    80  //					},
    81  //				},
    82  //			})
    83  //			if err != nil {
    84  //				return err
    85  //			}
    86  //			json0 := string(tmpJSON0)
    87  //			_, err = connect.NewContactFlowModule(ctx, "example", &connect.ContactFlowModuleArgs{
    88  //				InstanceId:  pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"),
    89  //				Name:        pulumi.String("Example"),
    90  //				Description: pulumi.String("Example Contact Flow Module Description"),
    91  //				Content:     pulumi.String(json0),
    92  //				Tags: pulumi.StringMap{
    93  //					"Name":        pulumi.String("Example Contact Flow Module"),
    94  //					"Application": pulumi.String("Example"),
    95  //					"Method":      pulumi.String("Create"),
    96  //				},
    97  //			})
    98  //			if err != nil {
    99  //				return err
   100  //			}
   101  //			return nil
   102  //		})
   103  //	}
   104  //
   105  // ```
   106  // <!--End PulumiCodeChooser -->
   107  //
   108  // ### With External Content
   109  //
   110  // Use the AWS CLI to extract Contact Flow Content:
   111  //
   112  // Use the generated file as input:
   113  //
   114  // <!--Start PulumiCodeChooser -->
   115  // ```go
   116  // package main
   117  //
   118  // import (
   119  //
   120  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect"
   121  //	"github.com/pulumi/pulumi-std/sdk/go/std"
   122  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   123  //
   124  // )
   125  //
   126  //	func main() {
   127  //		pulumi.Run(func(ctx *pulumi.Context) error {
   128  //			invokeFilebase64sha256, err := std.Filebase64sha256(ctx, &std.Filebase64sha256Args{
   129  //				Input: "contact_flow_module.json",
   130  //			}, nil)
   131  //			if err != nil {
   132  //				return err
   133  //			}
   134  //			_, err = connect.NewContactFlowModule(ctx, "example", &connect.ContactFlowModuleArgs{
   135  //				InstanceId:  pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"),
   136  //				Name:        pulumi.String("Example"),
   137  //				Description: pulumi.String("Example Contact Flow Module Description"),
   138  //				Filename:    pulumi.String("contact_flow_module.json"),
   139  //				ContentHash: invokeFilebase64sha256.Result,
   140  //				Tags: pulumi.StringMap{
   141  //					"Name":        pulumi.String("Example Contact Flow Module"),
   142  //					"Application": pulumi.String("Example"),
   143  //					"Method":      pulumi.String("Create"),
   144  //				},
   145  //			})
   146  //			if err != nil {
   147  //				return err
   148  //			}
   149  //			return nil
   150  //		})
   151  //	}
   152  //
   153  // ```
   154  // <!--End PulumiCodeChooser -->
   155  //
   156  // ## Import
   157  //
   158  // Using `pulumi import`, import Amazon Connect Contact Flow Modules using the `instance_id` and `contact_flow_module_id` separated by a colon (`:`). For example:
   159  //
   160  // ```sh
   161  // $ pulumi import aws:connect/contactFlowModule:ContactFlowModule example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5
   162  // ```
   163  type ContactFlowModule struct {
   164  	pulumi.CustomResourceState
   165  
   166  	// The Amazon Resource Name (ARN) of the Contact Flow Module.
   167  	Arn pulumi.StringOutput `pulumi:"arn"`
   168  	// The identifier of the Contact Flow Module.
   169  	ContactFlowModuleId pulumi.StringOutput `pulumi:"contactFlowModuleId"`
   170  	// Specifies the content of the Contact Flow Module, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
   171  	Content pulumi.StringOutput `pulumi:"content"`
   172  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow Module source specified with `filename`.
   173  	ContentHash pulumi.StringPtrOutput `pulumi:"contentHash"`
   174  	// Specifies the description of the Contact Flow Module.
   175  	Description pulumi.StringPtrOutput `pulumi:"description"`
   176  	// The path to the Contact Flow Module source within the local filesystem. Conflicts with `content`.
   177  	Filename pulumi.StringPtrOutput `pulumi:"filename"`
   178  	// Specifies the identifier of the hosting Amazon Connect Instance.
   179  	InstanceId pulumi.StringOutput `pulumi:"instanceId"`
   180  	// Specifies the name of the Contact Flow Module.
   181  	Name pulumi.StringOutput `pulumi:"name"`
   182  	// Tags to apply to the Contact Flow Module. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   183  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   184  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   185  	//
   186  	// Deprecated: Please use `tags` instead.
   187  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   188  }
   189  
   190  // NewContactFlowModule registers a new resource with the given unique name, arguments, and options.
   191  func NewContactFlowModule(ctx *pulumi.Context,
   192  	name string, args *ContactFlowModuleArgs, opts ...pulumi.ResourceOption) (*ContactFlowModule, error) {
   193  	if args == nil {
   194  		return nil, errors.New("missing one or more required arguments")
   195  	}
   196  
   197  	if args.InstanceId == nil {
   198  		return nil, errors.New("invalid value for required argument 'InstanceId'")
   199  	}
   200  	opts = internal.PkgResourceDefaultOpts(opts)
   201  	var resource ContactFlowModule
   202  	err := ctx.RegisterResource("aws:connect/contactFlowModule:ContactFlowModule", name, args, &resource, opts...)
   203  	if err != nil {
   204  		return nil, err
   205  	}
   206  	return &resource, nil
   207  }
   208  
   209  // GetContactFlowModule gets an existing ContactFlowModule resource's state with the given name, ID, and optional
   210  // state properties that are used to uniquely qualify the lookup (nil if not required).
   211  func GetContactFlowModule(ctx *pulumi.Context,
   212  	name string, id pulumi.IDInput, state *ContactFlowModuleState, opts ...pulumi.ResourceOption) (*ContactFlowModule, error) {
   213  	var resource ContactFlowModule
   214  	err := ctx.ReadResource("aws:connect/contactFlowModule:ContactFlowModule", name, id, state, &resource, opts...)
   215  	if err != nil {
   216  		return nil, err
   217  	}
   218  	return &resource, nil
   219  }
   220  
   221  // Input properties used for looking up and filtering ContactFlowModule resources.
   222  type contactFlowModuleState struct {
   223  	// The Amazon Resource Name (ARN) of the Contact Flow Module.
   224  	Arn *string `pulumi:"arn"`
   225  	// The identifier of the Contact Flow Module.
   226  	ContactFlowModuleId *string `pulumi:"contactFlowModuleId"`
   227  	// Specifies the content of the Contact Flow Module, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
   228  	Content *string `pulumi:"content"`
   229  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow Module source specified with `filename`.
   230  	ContentHash *string `pulumi:"contentHash"`
   231  	// Specifies the description of the Contact Flow Module.
   232  	Description *string `pulumi:"description"`
   233  	// The path to the Contact Flow Module source within the local filesystem. Conflicts with `content`.
   234  	Filename *string `pulumi:"filename"`
   235  	// Specifies the identifier of the hosting Amazon Connect Instance.
   236  	InstanceId *string `pulumi:"instanceId"`
   237  	// Specifies the name of the Contact Flow Module.
   238  	Name *string `pulumi:"name"`
   239  	// Tags to apply to the Contact Flow Module. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   240  	Tags map[string]string `pulumi:"tags"`
   241  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   242  	//
   243  	// Deprecated: Please use `tags` instead.
   244  	TagsAll map[string]string `pulumi:"tagsAll"`
   245  }
   246  
   247  type ContactFlowModuleState struct {
   248  	// The Amazon Resource Name (ARN) of the Contact Flow Module.
   249  	Arn pulumi.StringPtrInput
   250  	// The identifier of the Contact Flow Module.
   251  	ContactFlowModuleId pulumi.StringPtrInput
   252  	// Specifies the content of the Contact Flow Module, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
   253  	Content pulumi.StringPtrInput
   254  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow Module source specified with `filename`.
   255  	ContentHash pulumi.StringPtrInput
   256  	// Specifies the description of the Contact Flow Module.
   257  	Description pulumi.StringPtrInput
   258  	// The path to the Contact Flow Module source within the local filesystem. Conflicts with `content`.
   259  	Filename pulumi.StringPtrInput
   260  	// Specifies the identifier of the hosting Amazon Connect Instance.
   261  	InstanceId pulumi.StringPtrInput
   262  	// Specifies the name of the Contact Flow Module.
   263  	Name pulumi.StringPtrInput
   264  	// Tags to apply to the Contact Flow Module. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   265  	Tags pulumi.StringMapInput
   266  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   267  	//
   268  	// Deprecated: Please use `tags` instead.
   269  	TagsAll pulumi.StringMapInput
   270  }
   271  
   272  func (ContactFlowModuleState) ElementType() reflect.Type {
   273  	return reflect.TypeOf((*contactFlowModuleState)(nil)).Elem()
   274  }
   275  
   276  type contactFlowModuleArgs struct {
   277  	// Specifies the content of the Contact Flow Module, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
   278  	Content *string `pulumi:"content"`
   279  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow Module source specified with `filename`.
   280  	ContentHash *string `pulumi:"contentHash"`
   281  	// Specifies the description of the Contact Flow Module.
   282  	Description *string `pulumi:"description"`
   283  	// The path to the Contact Flow Module source within the local filesystem. Conflicts with `content`.
   284  	Filename *string `pulumi:"filename"`
   285  	// Specifies the identifier of the hosting Amazon Connect Instance.
   286  	InstanceId string `pulumi:"instanceId"`
   287  	// Specifies the name of the Contact Flow Module.
   288  	Name *string `pulumi:"name"`
   289  	// Tags to apply to the Contact Flow Module. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   290  	Tags map[string]string `pulumi:"tags"`
   291  }
   292  
   293  // The set of arguments for constructing a ContactFlowModule resource.
   294  type ContactFlowModuleArgs struct {
   295  	// Specifies the content of the Contact Flow Module, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
   296  	Content pulumi.StringPtrInput
   297  	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow Module source specified with `filename`.
   298  	ContentHash pulumi.StringPtrInput
   299  	// Specifies the description of the Contact Flow Module.
   300  	Description pulumi.StringPtrInput
   301  	// The path to the Contact Flow Module source within the local filesystem. Conflicts with `content`.
   302  	Filename pulumi.StringPtrInput
   303  	// Specifies the identifier of the hosting Amazon Connect Instance.
   304  	InstanceId pulumi.StringInput
   305  	// Specifies the name of the Contact Flow Module.
   306  	Name pulumi.StringPtrInput
   307  	// Tags to apply to the Contact Flow Module. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   308  	Tags pulumi.StringMapInput
   309  }
   310  
   311  func (ContactFlowModuleArgs) ElementType() reflect.Type {
   312  	return reflect.TypeOf((*contactFlowModuleArgs)(nil)).Elem()
   313  }
   314  
   315  type ContactFlowModuleInput interface {
   316  	pulumi.Input
   317  
   318  	ToContactFlowModuleOutput() ContactFlowModuleOutput
   319  	ToContactFlowModuleOutputWithContext(ctx context.Context) ContactFlowModuleOutput
   320  }
   321  
   322  func (*ContactFlowModule) ElementType() reflect.Type {
   323  	return reflect.TypeOf((**ContactFlowModule)(nil)).Elem()
   324  }
   325  
   326  func (i *ContactFlowModule) ToContactFlowModuleOutput() ContactFlowModuleOutput {
   327  	return i.ToContactFlowModuleOutputWithContext(context.Background())
   328  }
   329  
   330  func (i *ContactFlowModule) ToContactFlowModuleOutputWithContext(ctx context.Context) ContactFlowModuleOutput {
   331  	return pulumi.ToOutputWithContext(ctx, i).(ContactFlowModuleOutput)
   332  }
   333  
   334  // ContactFlowModuleArrayInput is an input type that accepts ContactFlowModuleArray and ContactFlowModuleArrayOutput values.
   335  // You can construct a concrete instance of `ContactFlowModuleArrayInput` via:
   336  //
   337  //	ContactFlowModuleArray{ ContactFlowModuleArgs{...} }
   338  type ContactFlowModuleArrayInput interface {
   339  	pulumi.Input
   340  
   341  	ToContactFlowModuleArrayOutput() ContactFlowModuleArrayOutput
   342  	ToContactFlowModuleArrayOutputWithContext(context.Context) ContactFlowModuleArrayOutput
   343  }
   344  
   345  type ContactFlowModuleArray []ContactFlowModuleInput
   346  
   347  func (ContactFlowModuleArray) ElementType() reflect.Type {
   348  	return reflect.TypeOf((*[]*ContactFlowModule)(nil)).Elem()
   349  }
   350  
   351  func (i ContactFlowModuleArray) ToContactFlowModuleArrayOutput() ContactFlowModuleArrayOutput {
   352  	return i.ToContactFlowModuleArrayOutputWithContext(context.Background())
   353  }
   354  
   355  func (i ContactFlowModuleArray) ToContactFlowModuleArrayOutputWithContext(ctx context.Context) ContactFlowModuleArrayOutput {
   356  	return pulumi.ToOutputWithContext(ctx, i).(ContactFlowModuleArrayOutput)
   357  }
   358  
   359  // ContactFlowModuleMapInput is an input type that accepts ContactFlowModuleMap and ContactFlowModuleMapOutput values.
   360  // You can construct a concrete instance of `ContactFlowModuleMapInput` via:
   361  //
   362  //	ContactFlowModuleMap{ "key": ContactFlowModuleArgs{...} }
   363  type ContactFlowModuleMapInput interface {
   364  	pulumi.Input
   365  
   366  	ToContactFlowModuleMapOutput() ContactFlowModuleMapOutput
   367  	ToContactFlowModuleMapOutputWithContext(context.Context) ContactFlowModuleMapOutput
   368  }
   369  
   370  type ContactFlowModuleMap map[string]ContactFlowModuleInput
   371  
   372  func (ContactFlowModuleMap) ElementType() reflect.Type {
   373  	return reflect.TypeOf((*map[string]*ContactFlowModule)(nil)).Elem()
   374  }
   375  
   376  func (i ContactFlowModuleMap) ToContactFlowModuleMapOutput() ContactFlowModuleMapOutput {
   377  	return i.ToContactFlowModuleMapOutputWithContext(context.Background())
   378  }
   379  
   380  func (i ContactFlowModuleMap) ToContactFlowModuleMapOutputWithContext(ctx context.Context) ContactFlowModuleMapOutput {
   381  	return pulumi.ToOutputWithContext(ctx, i).(ContactFlowModuleMapOutput)
   382  }
   383  
   384  type ContactFlowModuleOutput struct{ *pulumi.OutputState }
   385  
   386  func (ContactFlowModuleOutput) ElementType() reflect.Type {
   387  	return reflect.TypeOf((**ContactFlowModule)(nil)).Elem()
   388  }
   389  
   390  func (o ContactFlowModuleOutput) ToContactFlowModuleOutput() ContactFlowModuleOutput {
   391  	return o
   392  }
   393  
   394  func (o ContactFlowModuleOutput) ToContactFlowModuleOutputWithContext(ctx context.Context) ContactFlowModuleOutput {
   395  	return o
   396  }
   397  
   398  // The Amazon Resource Name (ARN) of the Contact Flow Module.
   399  func (o ContactFlowModuleOutput) Arn() pulumi.StringOutput {
   400  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   401  }
   402  
   403  // The identifier of the Contact Flow Module.
   404  func (o ContactFlowModuleOutput) ContactFlowModuleId() pulumi.StringOutput {
   405  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringOutput { return v.ContactFlowModuleId }).(pulumi.StringOutput)
   406  }
   407  
   408  // Specifies the content of the Contact Flow Module, provided as a JSON string, written in Amazon Connect Contact Flow Language. If defined, the `filename` argument cannot be used.
   409  func (o ContactFlowModuleOutput) Content() pulumi.StringOutput {
   410  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringOutput { return v.Content }).(pulumi.StringOutput)
   411  }
   412  
   413  // Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the Contact Flow Module source specified with `filename`.
   414  func (o ContactFlowModuleOutput) ContentHash() pulumi.StringPtrOutput {
   415  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringPtrOutput { return v.ContentHash }).(pulumi.StringPtrOutput)
   416  }
   417  
   418  // Specifies the description of the Contact Flow Module.
   419  func (o ContactFlowModuleOutput) Description() pulumi.StringPtrOutput {
   420  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   421  }
   422  
   423  // The path to the Contact Flow Module source within the local filesystem. Conflicts with `content`.
   424  func (o ContactFlowModuleOutput) Filename() pulumi.StringPtrOutput {
   425  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringPtrOutput { return v.Filename }).(pulumi.StringPtrOutput)
   426  }
   427  
   428  // Specifies the identifier of the hosting Amazon Connect Instance.
   429  func (o ContactFlowModuleOutput) InstanceId() pulumi.StringOutput {
   430  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput)
   431  }
   432  
   433  // Specifies the name of the Contact Flow Module.
   434  func (o ContactFlowModuleOutput) Name() pulumi.StringOutput {
   435  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   436  }
   437  
   438  // Tags to apply to the Contact Flow Module. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   439  func (o ContactFlowModuleOutput) Tags() pulumi.StringMapOutput {
   440  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   441  }
   442  
   443  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   444  //
   445  // Deprecated: Please use `tags` instead.
   446  func (o ContactFlowModuleOutput) TagsAll() pulumi.StringMapOutput {
   447  	return o.ApplyT(func(v *ContactFlowModule) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   448  }
   449  
   450  type ContactFlowModuleArrayOutput struct{ *pulumi.OutputState }
   451  
   452  func (ContactFlowModuleArrayOutput) ElementType() reflect.Type {
   453  	return reflect.TypeOf((*[]*ContactFlowModule)(nil)).Elem()
   454  }
   455  
   456  func (o ContactFlowModuleArrayOutput) ToContactFlowModuleArrayOutput() ContactFlowModuleArrayOutput {
   457  	return o
   458  }
   459  
   460  func (o ContactFlowModuleArrayOutput) ToContactFlowModuleArrayOutputWithContext(ctx context.Context) ContactFlowModuleArrayOutput {
   461  	return o
   462  }
   463  
   464  func (o ContactFlowModuleArrayOutput) Index(i pulumi.IntInput) ContactFlowModuleOutput {
   465  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ContactFlowModule {
   466  		return vs[0].([]*ContactFlowModule)[vs[1].(int)]
   467  	}).(ContactFlowModuleOutput)
   468  }
   469  
   470  type ContactFlowModuleMapOutput struct{ *pulumi.OutputState }
   471  
   472  func (ContactFlowModuleMapOutput) ElementType() reflect.Type {
   473  	return reflect.TypeOf((*map[string]*ContactFlowModule)(nil)).Elem()
   474  }
   475  
   476  func (o ContactFlowModuleMapOutput) ToContactFlowModuleMapOutput() ContactFlowModuleMapOutput {
   477  	return o
   478  }
   479  
   480  func (o ContactFlowModuleMapOutput) ToContactFlowModuleMapOutputWithContext(ctx context.Context) ContactFlowModuleMapOutput {
   481  	return o
   482  }
   483  
   484  func (o ContactFlowModuleMapOutput) MapIndex(k pulumi.StringInput) ContactFlowModuleOutput {
   485  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ContactFlowModule {
   486  		return vs[0].(map[string]*ContactFlowModule)[vs[1].(string)]
   487  	}).(ContactFlowModuleOutput)
   488  }
   489  
   490  func init() {
   491  	pulumi.RegisterInputType(reflect.TypeOf((*ContactFlowModuleInput)(nil)).Elem(), &ContactFlowModule{})
   492  	pulumi.RegisterInputType(reflect.TypeOf((*ContactFlowModuleArrayInput)(nil)).Elem(), ContactFlowModuleArray{})
   493  	pulumi.RegisterInputType(reflect.TypeOf((*ContactFlowModuleMapInput)(nil)).Elem(), ContactFlowModuleMap{})
   494  	pulumi.RegisterOutputType(ContactFlowModuleOutput{})
   495  	pulumi.RegisterOutputType(ContactFlowModuleArrayOutput{})
   496  	pulumi.RegisterOutputType(ContactFlowModuleMapOutput{})
   497  }