github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/chime/voiceConnectorGroup.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 chime
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Creates an Amazon Chime Voice Connector group under the administrator's AWS account. You can associate Amazon Chime Voice Connectors with the Amazon Chime Voice Connector group by including VoiceConnectorItems in the request.
    15  //
    16  // You can include Amazon Chime Voice Connectors from different AWS Regions in your group. This creates a fault tolerant mechanism for fallback in case of availability events.
    17  //
    18  // ## Example Usage
    19  //
    20  // <!--Start PulumiCodeChooser -->
    21  // ```go
    22  // package main
    23  //
    24  // import (
    25  //
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chime"
    27  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    28  //
    29  // )
    30  //
    31  //	func main() {
    32  //		pulumi.Run(func(ctx *pulumi.Context) error {
    33  //			vc1, err := chime.NewVoiceConnector(ctx, "vc1", &chime.VoiceConnectorArgs{
    34  //				Name:              pulumi.String("connector-test-1"),
    35  //				RequireEncryption: pulumi.Bool(true),
    36  //				AwsRegion:         pulumi.String("us-east-1"),
    37  //			})
    38  //			if err != nil {
    39  //				return err
    40  //			}
    41  //			vc2, err := chime.NewVoiceConnector(ctx, "vc2", &chime.VoiceConnectorArgs{
    42  //				Name:              pulumi.String("connector-test-2"),
    43  //				RequireEncryption: pulumi.Bool(true),
    44  //				AwsRegion:         pulumi.String("us-west-2"),
    45  //			})
    46  //			if err != nil {
    47  //				return err
    48  //			}
    49  //			_, err = chime.NewVoiceConnectorGroup(ctx, "group", &chime.VoiceConnectorGroupArgs{
    50  //				Name: pulumi.String("test-group"),
    51  //				Connectors: chime.VoiceConnectorGroupConnectorArray{
    52  //					&chime.VoiceConnectorGroupConnectorArgs{
    53  //						VoiceConnectorId: vc1.ID(),
    54  //						Priority:         pulumi.Int(1),
    55  //					},
    56  //					&chime.VoiceConnectorGroupConnectorArgs{
    57  //						VoiceConnectorId: vc2.ID(),
    58  //						Priority:         pulumi.Int(3),
    59  //					},
    60  //				},
    61  //			})
    62  //			if err != nil {
    63  //				return err
    64  //			}
    65  //			return nil
    66  //		})
    67  //	}
    68  //
    69  // ```
    70  // <!--End PulumiCodeChooser -->
    71  //
    72  // ## Import
    73  //
    74  // Using `pulumi import`, import Configuration Recorder using the name. For example:
    75  //
    76  // ```sh
    77  // $ pulumi import aws:chime/voiceConnectorGroup:VoiceConnectorGroup default example
    78  // ```
    79  type VoiceConnectorGroup struct {
    80  	pulumi.CustomResourceState
    81  
    82  	// The Amazon Chime Voice Connectors to route inbound calls to.
    83  	Connectors VoiceConnectorGroupConnectorArrayOutput `pulumi:"connectors"`
    84  	// The name of the Amazon Chime Voice Connector group.
    85  	Name pulumi.StringOutput `pulumi:"name"`
    86  }
    87  
    88  // NewVoiceConnectorGroup registers a new resource with the given unique name, arguments, and options.
    89  func NewVoiceConnectorGroup(ctx *pulumi.Context,
    90  	name string, args *VoiceConnectorGroupArgs, opts ...pulumi.ResourceOption) (*VoiceConnectorGroup, error) {
    91  	if args == nil {
    92  		args = &VoiceConnectorGroupArgs{}
    93  	}
    94  
    95  	opts = internal.PkgResourceDefaultOpts(opts)
    96  	var resource VoiceConnectorGroup
    97  	err := ctx.RegisterResource("aws:chime/voiceConnectorGroup:VoiceConnectorGroup", name, args, &resource, opts...)
    98  	if err != nil {
    99  		return nil, err
   100  	}
   101  	return &resource, nil
   102  }
   103  
   104  // GetVoiceConnectorGroup gets an existing VoiceConnectorGroup resource's state with the given name, ID, and optional
   105  // state properties that are used to uniquely qualify the lookup (nil if not required).
   106  func GetVoiceConnectorGroup(ctx *pulumi.Context,
   107  	name string, id pulumi.IDInput, state *VoiceConnectorGroupState, opts ...pulumi.ResourceOption) (*VoiceConnectorGroup, error) {
   108  	var resource VoiceConnectorGroup
   109  	err := ctx.ReadResource("aws:chime/voiceConnectorGroup:VoiceConnectorGroup", name, id, state, &resource, opts...)
   110  	if err != nil {
   111  		return nil, err
   112  	}
   113  	return &resource, nil
   114  }
   115  
   116  // Input properties used for looking up and filtering VoiceConnectorGroup resources.
   117  type voiceConnectorGroupState struct {
   118  	// The Amazon Chime Voice Connectors to route inbound calls to.
   119  	Connectors []VoiceConnectorGroupConnector `pulumi:"connectors"`
   120  	// The name of the Amazon Chime Voice Connector group.
   121  	Name *string `pulumi:"name"`
   122  }
   123  
   124  type VoiceConnectorGroupState struct {
   125  	// The Amazon Chime Voice Connectors to route inbound calls to.
   126  	Connectors VoiceConnectorGroupConnectorArrayInput
   127  	// The name of the Amazon Chime Voice Connector group.
   128  	Name pulumi.StringPtrInput
   129  }
   130  
   131  func (VoiceConnectorGroupState) ElementType() reflect.Type {
   132  	return reflect.TypeOf((*voiceConnectorGroupState)(nil)).Elem()
   133  }
   134  
   135  type voiceConnectorGroupArgs struct {
   136  	// The Amazon Chime Voice Connectors to route inbound calls to.
   137  	Connectors []VoiceConnectorGroupConnector `pulumi:"connectors"`
   138  	// The name of the Amazon Chime Voice Connector group.
   139  	Name *string `pulumi:"name"`
   140  }
   141  
   142  // The set of arguments for constructing a VoiceConnectorGroup resource.
   143  type VoiceConnectorGroupArgs struct {
   144  	// The Amazon Chime Voice Connectors to route inbound calls to.
   145  	Connectors VoiceConnectorGroupConnectorArrayInput
   146  	// The name of the Amazon Chime Voice Connector group.
   147  	Name pulumi.StringPtrInput
   148  }
   149  
   150  func (VoiceConnectorGroupArgs) ElementType() reflect.Type {
   151  	return reflect.TypeOf((*voiceConnectorGroupArgs)(nil)).Elem()
   152  }
   153  
   154  type VoiceConnectorGroupInput interface {
   155  	pulumi.Input
   156  
   157  	ToVoiceConnectorGroupOutput() VoiceConnectorGroupOutput
   158  	ToVoiceConnectorGroupOutputWithContext(ctx context.Context) VoiceConnectorGroupOutput
   159  }
   160  
   161  func (*VoiceConnectorGroup) ElementType() reflect.Type {
   162  	return reflect.TypeOf((**VoiceConnectorGroup)(nil)).Elem()
   163  }
   164  
   165  func (i *VoiceConnectorGroup) ToVoiceConnectorGroupOutput() VoiceConnectorGroupOutput {
   166  	return i.ToVoiceConnectorGroupOutputWithContext(context.Background())
   167  }
   168  
   169  func (i *VoiceConnectorGroup) ToVoiceConnectorGroupOutputWithContext(ctx context.Context) VoiceConnectorGroupOutput {
   170  	return pulumi.ToOutputWithContext(ctx, i).(VoiceConnectorGroupOutput)
   171  }
   172  
   173  // VoiceConnectorGroupArrayInput is an input type that accepts VoiceConnectorGroupArray and VoiceConnectorGroupArrayOutput values.
   174  // You can construct a concrete instance of `VoiceConnectorGroupArrayInput` via:
   175  //
   176  //	VoiceConnectorGroupArray{ VoiceConnectorGroupArgs{...} }
   177  type VoiceConnectorGroupArrayInput interface {
   178  	pulumi.Input
   179  
   180  	ToVoiceConnectorGroupArrayOutput() VoiceConnectorGroupArrayOutput
   181  	ToVoiceConnectorGroupArrayOutputWithContext(context.Context) VoiceConnectorGroupArrayOutput
   182  }
   183  
   184  type VoiceConnectorGroupArray []VoiceConnectorGroupInput
   185  
   186  func (VoiceConnectorGroupArray) ElementType() reflect.Type {
   187  	return reflect.TypeOf((*[]*VoiceConnectorGroup)(nil)).Elem()
   188  }
   189  
   190  func (i VoiceConnectorGroupArray) ToVoiceConnectorGroupArrayOutput() VoiceConnectorGroupArrayOutput {
   191  	return i.ToVoiceConnectorGroupArrayOutputWithContext(context.Background())
   192  }
   193  
   194  func (i VoiceConnectorGroupArray) ToVoiceConnectorGroupArrayOutputWithContext(ctx context.Context) VoiceConnectorGroupArrayOutput {
   195  	return pulumi.ToOutputWithContext(ctx, i).(VoiceConnectorGroupArrayOutput)
   196  }
   197  
   198  // VoiceConnectorGroupMapInput is an input type that accepts VoiceConnectorGroupMap and VoiceConnectorGroupMapOutput values.
   199  // You can construct a concrete instance of `VoiceConnectorGroupMapInput` via:
   200  //
   201  //	VoiceConnectorGroupMap{ "key": VoiceConnectorGroupArgs{...} }
   202  type VoiceConnectorGroupMapInput interface {
   203  	pulumi.Input
   204  
   205  	ToVoiceConnectorGroupMapOutput() VoiceConnectorGroupMapOutput
   206  	ToVoiceConnectorGroupMapOutputWithContext(context.Context) VoiceConnectorGroupMapOutput
   207  }
   208  
   209  type VoiceConnectorGroupMap map[string]VoiceConnectorGroupInput
   210  
   211  func (VoiceConnectorGroupMap) ElementType() reflect.Type {
   212  	return reflect.TypeOf((*map[string]*VoiceConnectorGroup)(nil)).Elem()
   213  }
   214  
   215  func (i VoiceConnectorGroupMap) ToVoiceConnectorGroupMapOutput() VoiceConnectorGroupMapOutput {
   216  	return i.ToVoiceConnectorGroupMapOutputWithContext(context.Background())
   217  }
   218  
   219  func (i VoiceConnectorGroupMap) ToVoiceConnectorGroupMapOutputWithContext(ctx context.Context) VoiceConnectorGroupMapOutput {
   220  	return pulumi.ToOutputWithContext(ctx, i).(VoiceConnectorGroupMapOutput)
   221  }
   222  
   223  type VoiceConnectorGroupOutput struct{ *pulumi.OutputState }
   224  
   225  func (VoiceConnectorGroupOutput) ElementType() reflect.Type {
   226  	return reflect.TypeOf((**VoiceConnectorGroup)(nil)).Elem()
   227  }
   228  
   229  func (o VoiceConnectorGroupOutput) ToVoiceConnectorGroupOutput() VoiceConnectorGroupOutput {
   230  	return o
   231  }
   232  
   233  func (o VoiceConnectorGroupOutput) ToVoiceConnectorGroupOutputWithContext(ctx context.Context) VoiceConnectorGroupOutput {
   234  	return o
   235  }
   236  
   237  // The Amazon Chime Voice Connectors to route inbound calls to.
   238  func (o VoiceConnectorGroupOutput) Connectors() VoiceConnectorGroupConnectorArrayOutput {
   239  	return o.ApplyT(func(v *VoiceConnectorGroup) VoiceConnectorGroupConnectorArrayOutput { return v.Connectors }).(VoiceConnectorGroupConnectorArrayOutput)
   240  }
   241  
   242  // The name of the Amazon Chime Voice Connector group.
   243  func (o VoiceConnectorGroupOutput) Name() pulumi.StringOutput {
   244  	return o.ApplyT(func(v *VoiceConnectorGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   245  }
   246  
   247  type VoiceConnectorGroupArrayOutput struct{ *pulumi.OutputState }
   248  
   249  func (VoiceConnectorGroupArrayOutput) ElementType() reflect.Type {
   250  	return reflect.TypeOf((*[]*VoiceConnectorGroup)(nil)).Elem()
   251  }
   252  
   253  func (o VoiceConnectorGroupArrayOutput) ToVoiceConnectorGroupArrayOutput() VoiceConnectorGroupArrayOutput {
   254  	return o
   255  }
   256  
   257  func (o VoiceConnectorGroupArrayOutput) ToVoiceConnectorGroupArrayOutputWithContext(ctx context.Context) VoiceConnectorGroupArrayOutput {
   258  	return o
   259  }
   260  
   261  func (o VoiceConnectorGroupArrayOutput) Index(i pulumi.IntInput) VoiceConnectorGroupOutput {
   262  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VoiceConnectorGroup {
   263  		return vs[0].([]*VoiceConnectorGroup)[vs[1].(int)]
   264  	}).(VoiceConnectorGroupOutput)
   265  }
   266  
   267  type VoiceConnectorGroupMapOutput struct{ *pulumi.OutputState }
   268  
   269  func (VoiceConnectorGroupMapOutput) ElementType() reflect.Type {
   270  	return reflect.TypeOf((*map[string]*VoiceConnectorGroup)(nil)).Elem()
   271  }
   272  
   273  func (o VoiceConnectorGroupMapOutput) ToVoiceConnectorGroupMapOutput() VoiceConnectorGroupMapOutput {
   274  	return o
   275  }
   276  
   277  func (o VoiceConnectorGroupMapOutput) ToVoiceConnectorGroupMapOutputWithContext(ctx context.Context) VoiceConnectorGroupMapOutput {
   278  	return o
   279  }
   280  
   281  func (o VoiceConnectorGroupMapOutput) MapIndex(k pulumi.StringInput) VoiceConnectorGroupOutput {
   282  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VoiceConnectorGroup {
   283  		return vs[0].(map[string]*VoiceConnectorGroup)[vs[1].(string)]
   284  	}).(VoiceConnectorGroupOutput)
   285  }
   286  
   287  func init() {
   288  	pulumi.RegisterInputType(reflect.TypeOf((*VoiceConnectorGroupInput)(nil)).Elem(), &VoiceConnectorGroup{})
   289  	pulumi.RegisterInputType(reflect.TypeOf((*VoiceConnectorGroupArrayInput)(nil)).Elem(), VoiceConnectorGroupArray{})
   290  	pulumi.RegisterInputType(reflect.TypeOf((*VoiceConnectorGroupMapInput)(nil)).Elem(), VoiceConnectorGroupMap{})
   291  	pulumi.RegisterOutputType(VoiceConnectorGroupOutput{})
   292  	pulumi.RegisterOutputType(VoiceConnectorGroupArrayOutput{})
   293  	pulumi.RegisterOutputType(VoiceConnectorGroupMapOutput{})
   294  }