diff --git a/.changelog/27734.txt b/.changelog/27734.txt new file mode 100644 index 00000000000..129c2ce84e6 --- /dev/null +++ b/.changelog/27734.txt @@ -0,0 +1,7 @@ +```release-note:enhancement +data-source/aws_connect_instance: Add `multi_party_conference_enabled` attribute +``` + +```release-note:enhancement +resource/aws_connect_instance: Add `multi_party_conference_enabled` argument +``` diff --git a/internal/service/connect/enum.go b/internal/service/connect/enum.go index 4d143005277..2558164bb3a 100644 --- a/internal/service/connect/enum.go +++ b/internal/service/connect/enum.go @@ -54,6 +54,7 @@ func InstanceAttributeMapping() map[string]string { connect.InstanceAttributeTypeContactLens: "contact_lens_enabled", connect.InstanceAttributeTypeEarlyMedia: "early_media_enabled", connect.InstanceAttributeTypeInboundCalls: "inbound_calls_enabled", + connect.InstanceAttributeTypeMultiPartyConference: "multi_party_conference_enabled", connect.InstanceAttributeTypeOutboundCalls: "outbound_calls_enabled", // Pre-release feature requiring allow-list from AWS. Removing all functionality until feature is GA //connect.InstanceAttributeTypeUseCustomTtsVoices: "use_custom_tts_voices_enabled", diff --git a/internal/service/connect/instance.go b/internal/service/connect/instance.go index 4a2055b799b..3a0005d3f08 100644 --- a/internal/service/connect/instance.go +++ b/internal/service/connect/instance.go @@ -88,6 +88,11 @@ func ResourceInstance() *schema.Resource { validation.StringDoesNotMatch(regexp.MustCompile(`^(d-).+$`), "can not start with d-"), ), }, + "multi_party_conference_enabled": { + Type: schema.TypeBool, + Optional: true, + Default: false, //verified default result from ListInstanceAttributes() + }, "outbound_calls_enabled": { Type: schema.TypeBool, Required: true, diff --git a/internal/service/connect/instance_data_source.go b/internal/service/connect/instance_data_source.go index 2d5327946e7..ec6525ee3a6 100644 --- a/internal/service/connect/instance_data_source.go +++ b/internal/service/connect/instance_data_source.go @@ -62,6 +62,10 @@ func DataSourceInstance() *schema.Resource { Computed: true, ExactlyOneOf: []string{"instance_id", "instance_alias"}, }, + "multi_party_conference_enabled": { + Type: schema.TypeBool, + Computed: true, + }, "outbound_calls_enabled": { Type: schema.TypeBool, Computed: true, diff --git a/internal/service/connect/instance_data_source_test.go b/internal/service/connect/instance_data_source_test.go index 769d0ab59ca..006e38b2622 100644 --- a/internal/service/connect/instance_data_source_test.go +++ b/internal/service/connect/instance_data_source_test.go @@ -41,6 +41,7 @@ func testAccInstanceDataSource_basic(t *testing.T) { resource.TestCheckResourceAttrPair(resourceName, "contact_lens_enabled", dataSourceName, "contact_lens_enabled"), resource.TestCheckResourceAttrPair(resourceName, "auto_resolve_best_voices_enabled", dataSourceName, "auto_resolve_best_voices_enabled"), resource.TestCheckResourceAttrPair(resourceName, "early_media_enabled", dataSourceName, "early_media_enabled"), + resource.TestCheckResourceAttrPair(resourceName, "multi_party_conference_enabled", dataSourceName, "multi_party_conference_enabled"), resource.TestCheckResourceAttrPair(resourceName, "status", dataSourceName, "status"), resource.TestCheckResourceAttrPair(resourceName, "service_role", dataSourceName, "service_role"), ), @@ -58,6 +59,7 @@ func testAccInstanceDataSource_basic(t *testing.T) { resource.TestCheckResourceAttrPair(resourceName, "contact_lens_enabled", dataSourceName, "contact_lens_enabled"), resource.TestCheckResourceAttrPair(resourceName, "auto_resolve_best_voices_enabled", dataSourceName, "auto_resolve_best_voices_enabled"), resource.TestCheckResourceAttrPair(resourceName, "early_media_enabled", dataSourceName, "early_media_enabled"), + resource.TestCheckResourceAttrPair(resourceName, "multi_party_conference_enabled", dataSourceName, "multi_party_conference_enabled"), resource.TestCheckResourceAttrPair(resourceName, "status", dataSourceName, "status"), resource.TestCheckResourceAttrPair(resourceName, "service_role", dataSourceName, "service_role"), ), diff --git a/internal/service/connect/instance_test.go b/internal/service/connect/instance_test.go index 8cbc7dfc064..4df38f0b930 100644 --- a/internal/service/connect/instance_test.go +++ b/internal/service/connect/instance_test.go @@ -39,6 +39,7 @@ func testAccInstance_basic(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "identity_management_type", connect.DirectoryTypeConnectManaged), resource.TestCheckResourceAttr(resourceName, "inbound_calls_enabled", "true"), resource.TestMatchResourceAttr(resourceName, "instance_alias", regexp.MustCompile(rName)), + resource.TestCheckResourceAttr(resourceName, "multi_party_conference_enabled", "false"), resource.TestCheckResourceAttr(resourceName, "outbound_calls_enabled", "true"), acctest.MatchResourceAttrGlobalARN(resourceName, "service_role", "iam", regexp.MustCompile(`role/aws-service-role/connect.amazonaws.com/.+`)), resource.TestCheckResourceAttr(resourceName, "status", connect.InstanceStatusActive), @@ -61,6 +62,7 @@ func testAccInstance_basic(t *testing.T) { resource.TestCheckResourceAttr(resourceName, "early_media_enabled", "false"), resource.TestCheckResourceAttr(resourceName, "inbound_calls_enabled", "false"), resource.TestMatchResourceAttr(resourceName, "instance_alias", regexp.MustCompile(rName)), + resource.TestCheckResourceAttr(resourceName, "multi_party_conference_enabled", "false"), resource.TestCheckResourceAttr(resourceName, "outbound_calls_enabled", "false"), resource.TestCheckResourceAttr(resourceName, "status", connect.InstanceStatusActive), ), @@ -207,6 +209,7 @@ resource "aws_connect_instance" "test" { identity_management_type = "CONNECT_MANAGED" inbound_calls_enabled = false instance_alias = %[1]q + multi_party_conference_enabled = false outbound_calls_enabled = false } `, rName) diff --git a/website/docs/d/connect_instance.html.markdown b/website/docs/d/connect_instance.html.markdown index 7435312979a..6b543681a44 100644 --- a/website/docs/d/connect_instance.html.markdown +++ b/website/docs/d/connect_instance.html.markdown @@ -50,6 +50,7 @@ In addition to all arguments above, the following attributes are exported: * `contact_flow_logs_enabled` - Whether contact flow logs are enabled. * `contact_lens_enabled` - Whether contact lens is enabled. * `auto_resolve_best_voices` - Whether auto resolve best voices is enabled. +* `multi_party_conference_enabled` - Whether multi-party calls/conference is enabled. * `use_custom_tts_voices` - Whether use custom tts voices is enabled. * `status` - State of the instance. * `service_role` - Service role of the instance. diff --git a/website/docs/r/connect_instance.html.markdown b/website/docs/r/connect_instance.html.markdown index 23beb9aded5..0469e0872d8 100644 --- a/website/docs/r/connect_instance.html.markdown +++ b/website/docs/r/connect_instance.html.markdown @@ -59,6 +59,7 @@ The following arguments are supported: * `identity_management_type` - (Required) Specifies the identity management type attached to the instance. Allowed Values are: `SAML`, `CONNECT_MANAGED`, `EXISTING_DIRECTORY`. * `inbound_calls_enabled` - (Required) Specifies whether inbound calls are enabled. * `instance_alias` - (Optional) Specifies the name of the instance. Required if `directory_id` not specified. +* `multi_party_conference_enabled` - (Optional) Specifies whether multi-party calls/conference is enabled. Defaults to `false`. * `outbound_calls_enabled` - (Required) Specifies whether outbound calls are enabled.