github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/connect/queue.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 Queue 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 // ## Example Usage 19 // 20 // ### Basic 21 // 22 // <!--Start PulumiCodeChooser --> 23 // ```go 24 // package main 25 // 26 // import ( 27 // 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // _, err := connect.NewQueue(ctx, "test", &connect.QueueArgs{ 36 // InstanceId: pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"), 37 // Name: pulumi.String("Example Name"), 38 // Description: pulumi.String("Example Description"), 39 // HoursOfOperationId: pulumi.String("12345678-1234-1234-1234-123456789012"), 40 // Tags: pulumi.StringMap{ 41 // "Name": pulumi.String("Example Queue"), 42 // }, 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // return nil 48 // }) 49 // } 50 // 51 // ``` 52 // <!--End PulumiCodeChooser --> 53 // 54 // ### With Quick Connect IDs 55 // 56 // <!--Start PulumiCodeChooser --> 57 // ```go 58 // package main 59 // 60 // import ( 61 // 62 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect" 63 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 64 // 65 // ) 66 // 67 // func main() { 68 // pulumi.Run(func(ctx *pulumi.Context) error { 69 // _, err := connect.NewQueue(ctx, "test", &connect.QueueArgs{ 70 // InstanceId: pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"), 71 // Name: pulumi.String("Example Name"), 72 // Description: pulumi.String("Example Description"), 73 // HoursOfOperationId: pulumi.String("12345678-1234-1234-1234-123456789012"), 74 // QuickConnectIds: pulumi.StringArray{ 75 // pulumi.String("12345678-abcd-1234-abcd-123456789012"), 76 // }, 77 // Tags: pulumi.StringMap{ 78 // "Name": pulumi.String("Example Queue with Quick Connect IDs"), 79 // }, 80 // }) 81 // if err != nil { 82 // return err 83 // } 84 // return nil 85 // }) 86 // } 87 // 88 // ``` 89 // <!--End PulumiCodeChooser --> 90 // 91 // ### With Outbound Caller Config 92 // 93 // <!--Start PulumiCodeChooser --> 94 // ```go 95 // package main 96 // 97 // import ( 98 // 99 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect" 100 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 101 // 102 // ) 103 // 104 // func main() { 105 // pulumi.Run(func(ctx *pulumi.Context) error { 106 // _, err := connect.NewQueue(ctx, "test", &connect.QueueArgs{ 107 // InstanceId: pulumi.String("aaaaaaaa-bbbb-cccc-dddd-111111111111"), 108 // Name: pulumi.String("Example Name"), 109 // Description: pulumi.String("Example Description"), 110 // HoursOfOperationId: pulumi.String("12345678-1234-1234-1234-123456789012"), 111 // OutboundCallerConfig: &connect.QueueOutboundCallerConfigArgs{ 112 // OutboundCallerIdName: pulumi.String("example"), 113 // OutboundCallerIdNumberId: pulumi.String("12345678-abcd-1234-abcd-123456789012"), 114 // OutboundFlowId: pulumi.String("87654321-defg-1234-defg-987654321234"), 115 // }, 116 // Tags: pulumi.StringMap{ 117 // "Name": pulumi.String("Example Queue with Outbound Caller Config"), 118 // }, 119 // }) 120 // if err != nil { 121 // return err 122 // } 123 // return nil 124 // }) 125 // } 126 // 127 // ``` 128 // <!--End PulumiCodeChooser --> 129 // 130 // ## Import 131 // 132 // Using `pulumi import`, import Amazon Connect Queues using the `instance_id` and `queue_id` separated by a colon (`:`). For example: 133 // 134 // ```sh 135 // $ pulumi import aws:connect/queue:Queue example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5 136 // ``` 137 type Queue struct { 138 pulumi.CustomResourceState 139 140 // The Amazon Resource Name (ARN) of the Queue. 141 Arn pulumi.StringOutput `pulumi:"arn"` 142 // Specifies the description of the Queue. 143 Description pulumi.StringPtrOutput `pulumi:"description"` 144 // Specifies the identifier of the Hours of Operation. 145 HoursOfOperationId pulumi.StringOutput `pulumi:"hoursOfOperationId"` 146 // Specifies the identifier of the hosting Amazon Connect Instance. 147 InstanceId pulumi.StringOutput `pulumi:"instanceId"` 148 // Specifies the maximum number of contacts that can be in the queue before it is considered full. Minimum value of 0. 149 MaxContacts pulumi.IntPtrOutput `pulumi:"maxContacts"` 150 // Specifies the name of the Queue. 151 Name pulumi.StringOutput `pulumi:"name"` 152 // A block that defines the outbound caller ID name, number, and outbound whisper flow. The Outbound Caller Config block is documented below. 153 OutboundCallerConfig QueueOutboundCallerConfigPtrOutput `pulumi:"outboundCallerConfig"` 154 // The identifier for the Queue. 155 QueueId pulumi.StringOutput `pulumi:"queueId"` 156 // Specifies a list of quick connects ids that determine the quick connects available to agents who are working the queue. 157 QuickConnectIds pulumi.StringArrayOutput `pulumi:"quickConnectIds"` 158 // Specifies the description of the Queue. Valid values are `ENABLED`, `DISABLED`. 159 Status pulumi.StringOutput `pulumi:"status"` 160 // Tags to apply to the Queue. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 161 Tags pulumi.StringMapOutput `pulumi:"tags"` 162 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 163 // 164 // Deprecated: Please use `tags` instead. 165 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 166 } 167 168 // NewQueue registers a new resource with the given unique name, arguments, and options. 169 func NewQueue(ctx *pulumi.Context, 170 name string, args *QueueArgs, opts ...pulumi.ResourceOption) (*Queue, error) { 171 if args == nil { 172 return nil, errors.New("missing one or more required arguments") 173 } 174 175 if args.HoursOfOperationId == nil { 176 return nil, errors.New("invalid value for required argument 'HoursOfOperationId'") 177 } 178 if args.InstanceId == nil { 179 return nil, errors.New("invalid value for required argument 'InstanceId'") 180 } 181 opts = internal.PkgResourceDefaultOpts(opts) 182 var resource Queue 183 err := ctx.RegisterResource("aws:connect/queue:Queue", name, args, &resource, opts...) 184 if err != nil { 185 return nil, err 186 } 187 return &resource, nil 188 } 189 190 // GetQueue gets an existing Queue resource's state with the given name, ID, and optional 191 // state properties that are used to uniquely qualify the lookup (nil if not required). 192 func GetQueue(ctx *pulumi.Context, 193 name string, id pulumi.IDInput, state *QueueState, opts ...pulumi.ResourceOption) (*Queue, error) { 194 var resource Queue 195 err := ctx.ReadResource("aws:connect/queue:Queue", name, id, state, &resource, opts...) 196 if err != nil { 197 return nil, err 198 } 199 return &resource, nil 200 } 201 202 // Input properties used for looking up and filtering Queue resources. 203 type queueState struct { 204 // The Amazon Resource Name (ARN) of the Queue. 205 Arn *string `pulumi:"arn"` 206 // Specifies the description of the Queue. 207 Description *string `pulumi:"description"` 208 // Specifies the identifier of the Hours of Operation. 209 HoursOfOperationId *string `pulumi:"hoursOfOperationId"` 210 // Specifies the identifier of the hosting Amazon Connect Instance. 211 InstanceId *string `pulumi:"instanceId"` 212 // Specifies the maximum number of contacts that can be in the queue before it is considered full. Minimum value of 0. 213 MaxContacts *int `pulumi:"maxContacts"` 214 // Specifies the name of the Queue. 215 Name *string `pulumi:"name"` 216 // A block that defines the outbound caller ID name, number, and outbound whisper flow. The Outbound Caller Config block is documented below. 217 OutboundCallerConfig *QueueOutboundCallerConfig `pulumi:"outboundCallerConfig"` 218 // The identifier for the Queue. 219 QueueId *string `pulumi:"queueId"` 220 // Specifies a list of quick connects ids that determine the quick connects available to agents who are working the queue. 221 QuickConnectIds []string `pulumi:"quickConnectIds"` 222 // Specifies the description of the Queue. Valid values are `ENABLED`, `DISABLED`. 223 Status *string `pulumi:"status"` 224 // Tags to apply to the Queue. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 225 Tags map[string]string `pulumi:"tags"` 226 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 227 // 228 // Deprecated: Please use `tags` instead. 229 TagsAll map[string]string `pulumi:"tagsAll"` 230 } 231 232 type QueueState struct { 233 // The Amazon Resource Name (ARN) of the Queue. 234 Arn pulumi.StringPtrInput 235 // Specifies the description of the Queue. 236 Description pulumi.StringPtrInput 237 // Specifies the identifier of the Hours of Operation. 238 HoursOfOperationId pulumi.StringPtrInput 239 // Specifies the identifier of the hosting Amazon Connect Instance. 240 InstanceId pulumi.StringPtrInput 241 // Specifies the maximum number of contacts that can be in the queue before it is considered full. Minimum value of 0. 242 MaxContacts pulumi.IntPtrInput 243 // Specifies the name of the Queue. 244 Name pulumi.StringPtrInput 245 // A block that defines the outbound caller ID name, number, and outbound whisper flow. The Outbound Caller Config block is documented below. 246 OutboundCallerConfig QueueOutboundCallerConfigPtrInput 247 // The identifier for the Queue. 248 QueueId pulumi.StringPtrInput 249 // Specifies a list of quick connects ids that determine the quick connects available to agents who are working the queue. 250 QuickConnectIds pulumi.StringArrayInput 251 // Specifies the description of the Queue. Valid values are `ENABLED`, `DISABLED`. 252 Status pulumi.StringPtrInput 253 // Tags to apply to the Queue. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 254 Tags pulumi.StringMapInput 255 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 256 // 257 // Deprecated: Please use `tags` instead. 258 TagsAll pulumi.StringMapInput 259 } 260 261 func (QueueState) ElementType() reflect.Type { 262 return reflect.TypeOf((*queueState)(nil)).Elem() 263 } 264 265 type queueArgs struct { 266 // Specifies the description of the Queue. 267 Description *string `pulumi:"description"` 268 // Specifies the identifier of the Hours of Operation. 269 HoursOfOperationId string `pulumi:"hoursOfOperationId"` 270 // Specifies the identifier of the hosting Amazon Connect Instance. 271 InstanceId string `pulumi:"instanceId"` 272 // Specifies the maximum number of contacts that can be in the queue before it is considered full. Minimum value of 0. 273 MaxContacts *int `pulumi:"maxContacts"` 274 // Specifies the name of the Queue. 275 Name *string `pulumi:"name"` 276 // A block that defines the outbound caller ID name, number, and outbound whisper flow. The Outbound Caller Config block is documented below. 277 OutboundCallerConfig *QueueOutboundCallerConfig `pulumi:"outboundCallerConfig"` 278 // Specifies a list of quick connects ids that determine the quick connects available to agents who are working the queue. 279 QuickConnectIds []string `pulumi:"quickConnectIds"` 280 // Specifies the description of the Queue. Valid values are `ENABLED`, `DISABLED`. 281 Status *string `pulumi:"status"` 282 // Tags to apply to the Queue. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 283 Tags map[string]string `pulumi:"tags"` 284 } 285 286 // The set of arguments for constructing a Queue resource. 287 type QueueArgs struct { 288 // Specifies the description of the Queue. 289 Description pulumi.StringPtrInput 290 // Specifies the identifier of the Hours of Operation. 291 HoursOfOperationId pulumi.StringInput 292 // Specifies the identifier of the hosting Amazon Connect Instance. 293 InstanceId pulumi.StringInput 294 // Specifies the maximum number of contacts that can be in the queue before it is considered full. Minimum value of 0. 295 MaxContacts pulumi.IntPtrInput 296 // Specifies the name of the Queue. 297 Name pulumi.StringPtrInput 298 // A block that defines the outbound caller ID name, number, and outbound whisper flow. The Outbound Caller Config block is documented below. 299 OutboundCallerConfig QueueOutboundCallerConfigPtrInput 300 // Specifies a list of quick connects ids that determine the quick connects available to agents who are working the queue. 301 QuickConnectIds pulumi.StringArrayInput 302 // Specifies the description of the Queue. Valid values are `ENABLED`, `DISABLED`. 303 Status pulumi.StringPtrInput 304 // Tags to apply to the Queue. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 305 Tags pulumi.StringMapInput 306 } 307 308 func (QueueArgs) ElementType() reflect.Type { 309 return reflect.TypeOf((*queueArgs)(nil)).Elem() 310 } 311 312 type QueueInput interface { 313 pulumi.Input 314 315 ToQueueOutput() QueueOutput 316 ToQueueOutputWithContext(ctx context.Context) QueueOutput 317 } 318 319 func (*Queue) ElementType() reflect.Type { 320 return reflect.TypeOf((**Queue)(nil)).Elem() 321 } 322 323 func (i *Queue) ToQueueOutput() QueueOutput { 324 return i.ToQueueOutputWithContext(context.Background()) 325 } 326 327 func (i *Queue) ToQueueOutputWithContext(ctx context.Context) QueueOutput { 328 return pulumi.ToOutputWithContext(ctx, i).(QueueOutput) 329 } 330 331 // QueueArrayInput is an input type that accepts QueueArray and QueueArrayOutput values. 332 // You can construct a concrete instance of `QueueArrayInput` via: 333 // 334 // QueueArray{ QueueArgs{...} } 335 type QueueArrayInput interface { 336 pulumi.Input 337 338 ToQueueArrayOutput() QueueArrayOutput 339 ToQueueArrayOutputWithContext(context.Context) QueueArrayOutput 340 } 341 342 type QueueArray []QueueInput 343 344 func (QueueArray) ElementType() reflect.Type { 345 return reflect.TypeOf((*[]*Queue)(nil)).Elem() 346 } 347 348 func (i QueueArray) ToQueueArrayOutput() QueueArrayOutput { 349 return i.ToQueueArrayOutputWithContext(context.Background()) 350 } 351 352 func (i QueueArray) ToQueueArrayOutputWithContext(ctx context.Context) QueueArrayOutput { 353 return pulumi.ToOutputWithContext(ctx, i).(QueueArrayOutput) 354 } 355 356 // QueueMapInput is an input type that accepts QueueMap and QueueMapOutput values. 357 // You can construct a concrete instance of `QueueMapInput` via: 358 // 359 // QueueMap{ "key": QueueArgs{...} } 360 type QueueMapInput interface { 361 pulumi.Input 362 363 ToQueueMapOutput() QueueMapOutput 364 ToQueueMapOutputWithContext(context.Context) QueueMapOutput 365 } 366 367 type QueueMap map[string]QueueInput 368 369 func (QueueMap) ElementType() reflect.Type { 370 return reflect.TypeOf((*map[string]*Queue)(nil)).Elem() 371 } 372 373 func (i QueueMap) ToQueueMapOutput() QueueMapOutput { 374 return i.ToQueueMapOutputWithContext(context.Background()) 375 } 376 377 func (i QueueMap) ToQueueMapOutputWithContext(ctx context.Context) QueueMapOutput { 378 return pulumi.ToOutputWithContext(ctx, i).(QueueMapOutput) 379 } 380 381 type QueueOutput struct{ *pulumi.OutputState } 382 383 func (QueueOutput) ElementType() reflect.Type { 384 return reflect.TypeOf((**Queue)(nil)).Elem() 385 } 386 387 func (o QueueOutput) ToQueueOutput() QueueOutput { 388 return o 389 } 390 391 func (o QueueOutput) ToQueueOutputWithContext(ctx context.Context) QueueOutput { 392 return o 393 } 394 395 // The Amazon Resource Name (ARN) of the Queue. 396 func (o QueueOutput) Arn() pulumi.StringOutput { 397 return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 398 } 399 400 // Specifies the description of the Queue. 401 func (o QueueOutput) Description() pulumi.StringPtrOutput { 402 return o.ApplyT(func(v *Queue) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 403 } 404 405 // Specifies the identifier of the Hours of Operation. 406 func (o QueueOutput) HoursOfOperationId() pulumi.StringOutput { 407 return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.HoursOfOperationId }).(pulumi.StringOutput) 408 } 409 410 // Specifies the identifier of the hosting Amazon Connect Instance. 411 func (o QueueOutput) InstanceId() pulumi.StringOutput { 412 return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput) 413 } 414 415 // Specifies the maximum number of contacts that can be in the queue before it is considered full. Minimum value of 0. 416 func (o QueueOutput) MaxContacts() pulumi.IntPtrOutput { 417 return o.ApplyT(func(v *Queue) pulumi.IntPtrOutput { return v.MaxContacts }).(pulumi.IntPtrOutput) 418 } 419 420 // Specifies the name of the Queue. 421 func (o QueueOutput) Name() pulumi.StringOutput { 422 return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 423 } 424 425 // A block that defines the outbound caller ID name, number, and outbound whisper flow. The Outbound Caller Config block is documented below. 426 func (o QueueOutput) OutboundCallerConfig() QueueOutboundCallerConfigPtrOutput { 427 return o.ApplyT(func(v *Queue) QueueOutboundCallerConfigPtrOutput { return v.OutboundCallerConfig }).(QueueOutboundCallerConfigPtrOutput) 428 } 429 430 // The identifier for the Queue. 431 func (o QueueOutput) QueueId() pulumi.StringOutput { 432 return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.QueueId }).(pulumi.StringOutput) 433 } 434 435 // Specifies a list of quick connects ids that determine the quick connects available to agents who are working the queue. 436 func (o QueueOutput) QuickConnectIds() pulumi.StringArrayOutput { 437 return o.ApplyT(func(v *Queue) pulumi.StringArrayOutput { return v.QuickConnectIds }).(pulumi.StringArrayOutput) 438 } 439 440 // Specifies the description of the Queue. Valid values are `ENABLED`, `DISABLED`. 441 func (o QueueOutput) Status() pulumi.StringOutput { 442 return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) 443 } 444 445 // Tags to apply to the Queue. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 446 func (o QueueOutput) Tags() pulumi.StringMapOutput { 447 return o.ApplyT(func(v *Queue) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 448 } 449 450 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 451 // 452 // Deprecated: Please use `tags` instead. 453 func (o QueueOutput) TagsAll() pulumi.StringMapOutput { 454 return o.ApplyT(func(v *Queue) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 455 } 456 457 type QueueArrayOutput struct{ *pulumi.OutputState } 458 459 func (QueueArrayOutput) ElementType() reflect.Type { 460 return reflect.TypeOf((*[]*Queue)(nil)).Elem() 461 } 462 463 func (o QueueArrayOutput) ToQueueArrayOutput() QueueArrayOutput { 464 return o 465 } 466 467 func (o QueueArrayOutput) ToQueueArrayOutputWithContext(ctx context.Context) QueueArrayOutput { 468 return o 469 } 470 471 func (o QueueArrayOutput) Index(i pulumi.IntInput) QueueOutput { 472 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Queue { 473 return vs[0].([]*Queue)[vs[1].(int)] 474 }).(QueueOutput) 475 } 476 477 type QueueMapOutput struct{ *pulumi.OutputState } 478 479 func (QueueMapOutput) ElementType() reflect.Type { 480 return reflect.TypeOf((*map[string]*Queue)(nil)).Elem() 481 } 482 483 func (o QueueMapOutput) ToQueueMapOutput() QueueMapOutput { 484 return o 485 } 486 487 func (o QueueMapOutput) ToQueueMapOutputWithContext(ctx context.Context) QueueMapOutput { 488 return o 489 } 490 491 func (o QueueMapOutput) MapIndex(k pulumi.StringInput) QueueOutput { 492 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Queue { 493 return vs[0].(map[string]*Queue)[vs[1].(string)] 494 }).(QueueOutput) 495 } 496 497 func init() { 498 pulumi.RegisterInputType(reflect.TypeOf((*QueueInput)(nil)).Elem(), &Queue{}) 499 pulumi.RegisterInputType(reflect.TypeOf((*QueueArrayInput)(nil)).Elem(), QueueArray{}) 500 pulumi.RegisterInputType(reflect.TypeOf((*QueueMapInput)(nil)).Elem(), QueueMap{}) 501 pulumi.RegisterOutputType(QueueOutput{}) 502 pulumi.RegisterOutputType(QueueArrayOutput{}) 503 pulumi.RegisterOutputType(QueueMapOutput{}) 504 }