Skip to content

Commit 49091a1

Browse files
authored
azurerm_cognitive_account - add TextAnalytics to account kinds allowed to use network_acls.bypass (hashicorp#30887)
[ENHANCEMENT] * `azurerm_cognitive_account` - add `TextAnalytics` to allowed `kind` validation for `network_acls.bypass`
1 parent 86c15fb commit 49091a1

3 files changed

Lines changed: 52 additions & 19 deletions

File tree

internal/services/cognitive/cognitive_account_resource.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,8 +385,8 @@ func resourceCognitiveAccount() *pluginsdk.Resource {
385385
return errors.New("`dynamic_throttling_enabled` is currently not supported when `kind` is set to `OpenAI` or `AIServices`")
386386
}
387387

388-
if bypass, ok := d.GetOk("network_acls.0.bypass"); ok && bypass != "" && !utils.SliceContainsValue([]string{"OpenAI", "AIServices"}, kind) {
389-
return fmt.Errorf("the `network_acls.bypass` does not support Trusted Services when `kind` is set to `%s`", kind)
388+
if bypass, ok := d.GetOk("network_acls.0.bypass"); ok && bypass != "" && !utils.SliceContainsValue([]string{"OpenAI", "AIServices", "TextAnalytics"}, kind) {
389+
return fmt.Errorf("`network_acls.bypass` cannot be set when `kind` is set to `%s`", kind)
390390
}
391391

392392
networkInjection := d.Get("network_injection").([]interface{})

internal/services/cognitive/cognitive_account_resource_test.go

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -295,24 +295,25 @@ func TestAccCognitiveAccount_networkAclsVirtualNetworkRulesWithBypass(t *testing
295295
data := acceptance.BuildTestData(t, "azurerm_cognitive_account", "test")
296296
r := CognitiveAccountResource{}
297297
kind := "OpenAI"
298+
sku_name := "S0"
298299

299300
data.ResourceTest(t, r, []acceptance.TestStep{
300301
{
301-
Config: r.networkAclsVirtualNetworkRulesWithBypassDefault(data, kind),
302+
Config: r.networkAclsVirtualNetworkRulesWithBypassDefault(data, kind, sku_name),
302303
Check: acceptance.ComposeTestCheckFunc(
303304
check.That(data.ResourceName).ExistsInAzure(r),
304305
),
305306
},
306307
data.ImportStep(),
307308
{
308-
Config: r.networkAclsVirtualNetworkRulesWithBypass(data, kind),
309+
Config: r.networkAclsVirtualNetworkRulesWithBypass(data, kind, sku_name),
309310
Check: acceptance.ComposeTestCheckFunc(
310311
check.That(data.ResourceName).ExistsInAzure(r),
311312
),
312313
},
313314
data.ImportStep(),
314315
{
315-
Config: r.networkAclsVirtualNetworkRulesWithBypassUpdated(data, kind),
316+
Config: r.networkAclsVirtualNetworkRulesWithBypassUpdated(data, kind, sku_name),
316317
Check: acceptance.ComposeTestCheckFunc(
317318
check.That(data.ResourceName).ExistsInAzure(r),
318319
),
@@ -328,7 +329,7 @@ func TestAccCognitiveAccount_networkAclsVirtualNetworkRulesWithBypassKindNotSupp
328329
data.ResourceTest(t, r, []acceptance.TestStep{
329330
{
330331
Config: r.networkAclsVirtualNetworkRulesWithBypassKindNotSupported(data),
331-
ExpectError: regexp.MustCompile("the `network_acls.bypass` does not support Trusted Services when `kind` is set to `Face`"),
332+
ExpectError: regexp.MustCompile("`network_acls.bypass` cannot be set when `kind` is set to `Face`"),
332333
},
333334
})
334335
}
@@ -504,24 +505,56 @@ func TestAccCognitiveAccount_aiServices_networkAclsVirtualNetworkRulesWithBypass
504505
data := acceptance.BuildTestData(t, "azurerm_cognitive_account", "test")
505506
r := CognitiveAccountResource{}
506507
kind := "AIServices"
508+
sku_name := "S0"
507509

508510
data.ResourceTest(t, r, []acceptance.TestStep{
509511
{
510-
Config: r.networkAclsVirtualNetworkRulesWithBypassDefault(data, kind),
512+
Config: r.networkAclsVirtualNetworkRulesWithBypassDefault(data, kind, sku_name),
511513
Check: acceptance.ComposeTestCheckFunc(
512514
check.That(data.ResourceName).ExistsInAzure(r),
513515
),
514516
},
515517
data.ImportStep(),
516518
{
517-
Config: r.networkAclsVirtualNetworkRulesWithBypass(data, kind),
519+
Config: r.networkAclsVirtualNetworkRulesWithBypass(data, kind, sku_name),
518520
Check: acceptance.ComposeTestCheckFunc(
519521
check.That(data.ResourceName).ExistsInAzure(r),
520522
),
521523
},
522524
data.ImportStep(),
523525
{
524-
Config: r.networkAclsVirtualNetworkRulesWithBypassUpdated(data, kind),
526+
Config: r.networkAclsVirtualNetworkRulesWithBypassUpdated(data, kind, sku_name),
527+
Check: acceptance.ComposeTestCheckFunc(
528+
check.That(data.ResourceName).ExistsInAzure(r),
529+
),
530+
},
531+
data.ImportStep(),
532+
})
533+
}
534+
535+
func TestAccCognitiveAccount_textAnalytics_networkAclsVirtualNetworkRulesWithBypass(t *testing.T) {
536+
data := acceptance.BuildTestData(t, "azurerm_cognitive_account", "test")
537+
r := CognitiveAccountResource{}
538+
kind := "TextAnalytics"
539+
sku_name := "F0"
540+
541+
data.ResourceTest(t, r, []acceptance.TestStep{
542+
{
543+
Config: r.networkAclsVirtualNetworkRulesWithBypassDefault(data, kind, sku_name),
544+
Check: acceptance.ComposeTestCheckFunc(
545+
check.That(data.ResourceName).ExistsInAzure(r),
546+
),
547+
},
548+
data.ImportStep(),
549+
{
550+
Config: r.networkAclsVirtualNetworkRulesWithBypass(data, kind, sku_name),
551+
Check: acceptance.ComposeTestCheckFunc(
552+
check.That(data.ResourceName).ExistsInAzure(r),
553+
),
554+
},
555+
data.ImportStep(),
556+
{
557+
Config: r.networkAclsVirtualNetworkRulesWithBypassUpdated(data, kind, sku_name),
525558
Check: acceptance.ComposeTestCheckFunc(
526559
check.That(data.ResourceName).ExistsInAzure(r),
527560
),
@@ -1125,7 +1158,7 @@ resource "azurerm_cognitive_account" "test" {
11251158
`, r.networkAclsTemplate(data), data.RandomInteger, data.RandomInteger)
11261159
}
11271160

1128-
func (r CognitiveAccountResource) networkAclsVirtualNetworkRulesWithBypassDefault(data acceptance.TestData, kind string) string {
1161+
func (r CognitiveAccountResource) networkAclsVirtualNetworkRulesWithBypassDefault(data acceptance.TestData, kind string, sku_name string) string {
11291162
return fmt.Sprintf(`
11301163
%s
11311164
@@ -1134,7 +1167,7 @@ resource "azurerm_cognitive_account" "test" {
11341167
location = azurerm_resource_group.test.location
11351168
resource_group_name = azurerm_resource_group.test.name
11361169
kind = "%s"
1137-
sku_name = "S0"
1170+
sku_name = "%s"
11381171
custom_subdomain_name = "acctestcogacc-%d"
11391172
11401173
network_acls {
@@ -1148,10 +1181,10 @@ resource "azurerm_cognitive_account" "test" {
11481181
}
11491182
}
11501183
}
1151-
`, r.networkAclsTemplate(data), data.RandomInteger, kind, data.RandomInteger)
1184+
`, r.networkAclsTemplate(data), data.RandomInteger, kind, sku_name, data.RandomInteger)
11521185
}
11531186

1154-
func (r CognitiveAccountResource) networkAclsVirtualNetworkRulesWithBypass(data acceptance.TestData, kind string) string {
1187+
func (r CognitiveAccountResource) networkAclsVirtualNetworkRulesWithBypass(data acceptance.TestData, kind string, sku_name string) string {
11551188
return fmt.Sprintf(`
11561189
%s
11571190
@@ -1160,7 +1193,7 @@ resource "azurerm_cognitive_account" "test" {
11601193
location = azurerm_resource_group.test.location
11611194
resource_group_name = azurerm_resource_group.test.name
11621195
kind = "%s"
1163-
sku_name = "S0"
1196+
sku_name = "%s"
11641197
custom_subdomain_name = "acctestcogacc-%d"
11651198
11661199
network_acls {
@@ -1175,10 +1208,10 @@ resource "azurerm_cognitive_account" "test" {
11751208
}
11761209
}
11771210
}
1178-
`, r.networkAclsTemplate(data), data.RandomInteger, kind, data.RandomInteger)
1211+
`, r.networkAclsTemplate(data), data.RandomInteger, kind, sku_name, data.RandomInteger)
11791212
}
11801213

1181-
func (r CognitiveAccountResource) networkAclsVirtualNetworkRulesWithBypassUpdated(data acceptance.TestData, kind string) string {
1214+
func (r CognitiveAccountResource) networkAclsVirtualNetworkRulesWithBypassUpdated(data acceptance.TestData, kind string, sku_name string) string {
11821215
return fmt.Sprintf(`
11831216
%s
11841217
@@ -1187,7 +1220,7 @@ resource "azurerm_cognitive_account" "test" {
11871220
location = azurerm_resource_group.test.location
11881221
resource_group_name = azurerm_resource_group.test.name
11891222
kind = "%s"
1190-
sku_name = "S0"
1223+
sku_name = "%s"
11911224
custom_subdomain_name = "acctestcogacc-%d"
11921225
11931226
network_acls {
@@ -1202,7 +1235,7 @@ resource "azurerm_cognitive_account" "test" {
12021235
}
12031236
}
12041237
}
1205-
`, r.networkAclsTemplate(data), data.RandomInteger, kind, data.RandomInteger)
1238+
`, r.networkAclsTemplate(data), data.RandomInteger, kind, sku_name, data.RandomInteger)
12061239
}
12071240

12081241
func (r CognitiveAccountResource) networkAclsVirtualNetworkRulesWithBypassKindNotSupported(data acceptance.TestData) string {

website/docs/r/cognitive_account.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ A `network_acls` block supports the following:
108108

109109
* `bypass` - (Optional) Whether to allow trusted Azure Services to access the service. Possible values are `None` and `AzureServices`.
110110

111-
-> **Note:** `bypass` can only be set when `kind` is set to `OpenAI` or `AIServices`.
111+
-> **Note:** `bypass` can only be set when `kind` is set to `OpenAI`, `AIServices`, or `TextAnalytics`.
112112

113113
* `default_action` - (Required) The Default Action to use when no rules match from `ip_rules` / `virtual_network_rules`. Possible values are `Allow` and `Deny`.
114114

0 commit comments

Comments
 (0)