From 5b6d6e8f5a0225333fcc914d69c3e33cfedf3f51 Mon Sep 17 00:00:00 2001 From: Sergiu Ghitea <28300158+sergiught@users.noreply.github.com> Date: Tue, 27 Jun 2023 17:04:35 +0200 Subject: [PATCH] Reintroduce support for azure sb client addon --- docs/data-sources/client.md | 13 ++ docs/data-sources/global_client.md | 13 ++ docs/resources/client.md | 13 ++ docs/resources/global_client.md | 13 ++ internal/auth0/client/expand.go | 19 ++ internal/auth0/client/flatten.go | 13 ++ internal/auth0/client/resource.go | 40 ++++ internal/auth0/client/resource_test.go | 36 +++- test/data/recordings/TestAccClientAddons.yaml | 196 +++++++++++++++--- 9 files changed, 327 insertions(+), 29 deletions(-) diff --git a/docs/data-sources/client.md b/docs/data-sources/client.md index 98b55a4dc..d5014b8a6 100644 --- a/docs/data-sources/client.md +++ b/docs/data-sources/client.md @@ -75,6 +75,7 @@ Read-Only: - `aws` (List of Object) (see [below for nested schema](#nestedobjatt--addons--aws)) - `azure_blob` (List of Object) (see [below for nested schema](#nestedobjatt--addons--azure_blob)) +- `azure_sb` (List of Object) (see [below for nested schema](#nestedobjatt--addons--azure_sb)) ### Nested Schema for `addons.aws` @@ -106,6 +107,18 @@ Read-Only: - `storage_access_key` (String) + +### Nested Schema for `addons.azure_sb` + +Read-Only: + +- `entity_path` (String) +- `expiration` (Number) +- `namespace` (String) +- `sas_key` (String) +- `sas_key_name` (String) + + ### Nested Schema for `jwt_configuration` diff --git a/docs/data-sources/global_client.md b/docs/data-sources/global_client.md index 56664aa66..128f39eee 100644 --- a/docs/data-sources/global_client.md +++ b/docs/data-sources/global_client.md @@ -64,6 +64,7 @@ Read-Only: - `aws` (List of Object) (see [below for nested schema](#nestedobjatt--addons--aws)) - `azure_blob` (List of Object) (see [below for nested schema](#nestedobjatt--addons--azure_blob)) +- `azure_sb` (List of Object) (see [below for nested schema](#nestedobjatt--addons--azure_sb)) ### Nested Schema for `addons.aws` @@ -95,6 +96,18 @@ Read-Only: - `storage_access_key` (String) + +### Nested Schema for `addons.azure_sb` + +Read-Only: + +- `entity_path` (String) +- `expiration` (Number) +- `namespace` (String) +- `sas_key` (String) +- `sas_key_name` (String) + + ### Nested Schema for `jwt_configuration` diff --git a/docs/resources/client.md b/docs/resources/client.md index d6d064b3a..a8e40f0ad 100644 --- a/docs/resources/client.md +++ b/docs/resources/client.md @@ -137,6 +137,7 @@ Optional: - `aws` (Block List, Max: 1) AWS Addon configuration. (see [below for nested schema](#nestedblock--addons--aws)) - `azure_blob` (Block List, Max: 1) Azure Blob Storage Addon configuration. (see [below for nested schema](#nestedblock--addons--azure_blob)) +- `azure_sb` (Block List, Max: 1) Azure Storage Bus Addon configuration. (see [below for nested schema](#nestedblock--addons--azure_sb)) ### Nested Schema for `addons.aws` @@ -168,6 +169,18 @@ Optional: - `storage_access_key` (String, Sensitive) Access key associated with this storage account. + +### Nested Schema for `addons.azure_sb` + +Optional: + +- `entity_path` (String) Entity you want to request a token for, such as `my-queue`. +- `expiration` (Number) Optional expiration in minutes for the generated token. Defaults to 5 minutes. +- `namespace` (String) Your Azure Service Bus namespace. Usually the first segment of your Service Bus URL (for example `https://acme-org.servicebus.windows.net` would be `acme-org`). +- `sas_key` (String, Sensitive) Primary Key associated with your shared access policy. +- `sas_key_name` (String) Your shared access policy name defined in your Service Bus entity. + + ### Nested Schema for `jwt_configuration` diff --git a/docs/resources/global_client.md b/docs/resources/global_client.md index d5504a4fb..1910b2b8e 100644 --- a/docs/resources/global_client.md +++ b/docs/resources/global_client.md @@ -80,6 +80,7 @@ Optional: - `aws` (Block List, Max: 1) AWS Addon configuration. (see [below for nested schema](#nestedblock--addons--aws)) - `azure_blob` (Block List, Max: 1) Azure Blob Storage Addon configuration. (see [below for nested schema](#nestedblock--addons--azure_blob)) +- `azure_sb` (Block List, Max: 1) Azure Storage Bus Addon configuration. (see [below for nested schema](#nestedblock--addons--azure_sb)) ### Nested Schema for `addons.aws` @@ -111,6 +112,18 @@ Optional: - `storage_access_key` (String, Sensitive) Access key associated with this storage account. + +### Nested Schema for `addons.azure_sb` + +Optional: + +- `entity_path` (String) Entity you want to request a token for, such as `my-queue`. +- `expiration` (Number) Optional expiration in minutes for the generated token. Defaults to 5 minutes. +- `namespace` (String) Your Azure Service Bus namespace. Usually the first segment of your Service Bus URL (for example `https://acme-org.servicebus.windows.net` would be `acme-org`). +- `sas_key` (String, Sensitive) Primary Key associated with your shared access policy. +- `sas_key_name` (String) Your shared access policy name defined in your Service Bus entity. + + ### Nested Schema for `jwt_configuration` diff --git a/internal/auth0/client/expand.go b/internal/auth0/client/expand.go index d6ff705e9..ce3b74030 100644 --- a/internal/auth0/client/expand.go +++ b/internal/auth0/client/expand.go @@ -246,6 +246,7 @@ func expandClientAddons(d *schema.ResourceData) *management.ClientAddons { d.GetRawConfig().GetAttr("addons").ForEachElement(func(_ cty.Value, addonsCfg cty.Value) (stop bool) { addons.AWS = expandClientAddonAWS(addonsCfg.GetAttr("aws")) addons.AzureBlob = expandClientAddonAzureBlob(addonsCfg.GetAttr("azure_blob")) + addons.AzureSB = expandClientAddonAzureSB(addonsCfg.GetAttr("azure_sb")) return stop }) @@ -298,6 +299,24 @@ func expandClientAddonAzureBlob(azureCfg cty.Value) *management.AzureBlobClientA return &azureAddon } +func expandClientAddonAzureSB(azureCfg cty.Value) *management.AzureSBClientAddon { + var azureAddon management.AzureSBClientAddon + + azureCfg.ForEachElement(func(_ cty.Value, azureCfg cty.Value) (stop bool) { + azureAddon = management.AzureSBClientAddon{ + Namespace: value.String(azureCfg.GetAttr("namespace")), + SASKeyName: value.String(azureCfg.GetAttr("sas_key_name")), + SASKey: value.String(azureCfg.GetAttr("sas_key")), + EntityPath: value.String(azureCfg.GetAttr("entity_path")), + Expiration: value.Int(azureCfg.GetAttr("expiration")), + } + + return stop + }) + + return &azureAddon +} + func clientHasChange(c *management.Client) bool { return c.String() != "{}" } diff --git a/internal/auth0/client/flatten.go b/internal/auth0/client/flatten.go index a904fb4ec..f1a4b044f 100644 --- a/internal/auth0/client/flatten.go +++ b/internal/auth0/client/flatten.go @@ -97,6 +97,7 @@ func flattenClientAddons(addons *management.ClientAddons) []interface{} { m := map[string]interface{}{ "aws": nil, "azure_blob": nil, + "azure_sb": nil, } if addons.GetAWS() != nil { @@ -129,5 +130,17 @@ func flattenClientAddons(addons *management.ClientAddons) []interface{} { } } + if addons.GetAzureSB() != nil { + m["azure_sb"] = []interface{}{ + map[string]interface{}{ + "namespace": addons.GetAzureSB().GetNamespace(), + "sas_key_name": addons.GetAzureSB().GetSASKeyName(), + "sas_key": addons.GetAzureSB().GetSASKey(), + "entity_path": addons.GetAzureSB().GetEntityPath(), + "expiration": addons.GetAzureSB().GetExpiration(), + }, + } + } + return []interface{}{m} } diff --git a/internal/auth0/client/resource.go b/internal/auth0/client/resource.go index 04f1c8a2f..c6eaf483a 100644 --- a/internal/auth0/client/resource.go +++ b/internal/auth0/client/resource.go @@ -608,6 +608,46 @@ func NewResource() *schema.Resource { }, }, }, + "azure_sb": { + Type: schema.TypeList, + Optional: true, + Computed: true, + MaxItems: 1, + Description: "Azure Storage Bus Addon configuration.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "namespace": { + Description: "Your Azure Service Bus namespace. Usually the first segment of " + + "your Service Bus URL (for example `https://acme-org.servicebus.windows.net` " + + "would be `acme-org`).", + Type: schema.TypeString, + Optional: true, + }, + "sas_key_name": { + Description: "Your shared access policy name defined in your Service Bus entity.", + Type: schema.TypeString, + Optional: true, + }, + "sas_key": { + Description: "Primary Key associated with your shared access policy.", + Type: schema.TypeString, + Optional: true, + Sensitive: true, + }, + "entity_path": { + Description: "Entity you want to request a token for, such as `my-queue`.", + Type: schema.TypeString, + Optional: true, + }, + "expiration": { + Description: "Optional expiration in minutes for the generated token. Defaults to 5 minutes.", + Type: schema.TypeInt, + ValidateFunc: validation.IntAtLeast(0), + Optional: true, + }, + }, + }, + }, }, }, }, diff --git a/internal/auth0/client/resource_test.go b/internal/auth0/client/resource_test.go index 60cf9df1e..8cc563934 100644 --- a/internal/auth0/client/resource_test.go +++ b/internal/auth0/client/resource_test.go @@ -577,7 +577,7 @@ func TestAccClient(t *testing.T) { resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_conformant", "false"), resource.TestCheckResourceAttr("auth0_client.my_client", "cross_origin_auth", "false"), resource.TestCheckResourceAttr("auth0_client.my_client", "mobile.#", "0"), - resource.TestCheckResourceAttr("auth0_client.my_client", "addons.#", "0"), + resource.TestCheckResourceAttr("auth0_client.my_client", "native_social_login.#", "0"), resource.TestCheckResourceAttr("auth0_client.my_client", "signing_keys.#", "1"), resource.TestCheckResourceAttr("auth0_client.my_client", "grant_types.#", "4"), @@ -636,7 +636,7 @@ func TestAccClient(t *testing.T) { resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_conformant", "true"), resource.TestCheckResourceAttr("auth0_client.my_client", "cross_origin_auth", "false"), resource.TestCheckResourceAttr("auth0_client.my_client", "mobile.#", "0"), - resource.TestCheckResourceAttr("auth0_client.my_client", "addons.#", "0"), + resource.TestCheckResourceAttr("auth0_client.my_client", "native_social_login.#", "0"), resource.TestCheckResourceAttr("auth0_client.my_client", "signing_keys.#", "1"), resource.TestCheckResourceAttr("auth0_client.my_client", "grant_types.#", "5"), @@ -703,7 +703,7 @@ func TestAccClient(t *testing.T) { resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_conformant", "true"), resource.TestCheckResourceAttr("auth0_client.my_client", "cross_origin_auth", "false"), resource.TestCheckResourceAttr("auth0_client.my_client", "mobile.#", "0"), - resource.TestCheckResourceAttr("auth0_client.my_client", "addons.#", "0"), + resource.TestCheckResourceAttr("auth0_client.my_client", "native_social_login.#", "0"), resource.TestCheckResourceAttr("auth0_client.my_client", "signing_keys.#", "1"), resource.TestCheckResourceAttr("auth0_client.my_client", "grant_types.#", "0"), @@ -778,6 +778,23 @@ resource "auth0_client" "my_client" { } ` +const testAccUpdateClientWithAddonsAzureSB = ` +resource "auth0_client" "my_client" { + name = "Acceptance Test - SSO Integration - {{.testName}}" + app_type = "sso_integration" + + addons { + azure_sb { + namespace = "acmeorg" + sas_key_name = "my-policy" + sas_key = "my-key" + entity_path = "my-queue" + expiration = 10 + } + } +} +` + func TestAccClientAddons(t *testing.T) { acctest.Test(t, resource.TestCase{ Steps: []resource.TestStep{ @@ -813,6 +830,19 @@ func TestAccClientAddons(t *testing.T) { resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.container_list", "true"), ), }, + { + Config: acctest.ParseTestName(testAccUpdateClientWithAddonsAzureSB, t.Name()), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("auth0_client.my_client", "name", fmt.Sprintf("Acceptance Test - SSO Integration - %s", t.Name())), + resource.TestCheckResourceAttr("auth0_client.my_client", "app_type", "sso_integration"), + resource.TestCheckResourceAttr("auth0_client.my_client", "addons.#", "1"), + resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_sb.0.namespace", "acmeorg"), + resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_sb.0.sas_key_name", "my-policy"), + resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_sb.0.sas_key", "my-key"), + resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_sb.0.entity_path", "my-queue"), + resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_sb.0.expiration", "10"), + ), + }, }, }) } diff --git a/test/data/recordings/TestAccClientAddons.yaml b/test/data/recordings/TestAccClientAddons.yaml index 5f8152425..12c5de2b3 100644 --- a/test/data/recordings/TestAccClientAddons.yaml +++ b/test/data/recordings/TestAccClientAddons.yaml @@ -6,14 +6,14 @@ interactions: proto: HTTP/1.1 proto_major: 1 proto_minor: 1 - content_length: 265 + content_length: 279 transfer_encoding: [] trailer: {} host: terraform-provider-auth0-dev.eu.auth0.com remote_addr: "" request_uri: "" body: | - {"name":"Acceptance Test - SSO Integration - TestAccClientAddons","app_type":"sso_integration","addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{}}} + {"name":"Acceptance Test - SSO Integration - TestAccClientAddons","app_type":"sso_integration","addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{},"azure_sb":{}}} form: {} headers: Content-Type: @@ -30,13 +30,13 @@ interactions: trailer: {} content_length: -1 uncompressed: false - body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{},"azure_sb":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' headers: Content-Type: - application/json; charset=utf-8 status: 201 Created code: 201 - duration: 290.815792ms + duration: 329.619042ms - id: 1 request: proto: HTTP/1.1 @@ -56,7 +56,7 @@ interactions: - application/json User-Agent: - Go-Auth0-SDK/latest - url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 method: GET response: proto: HTTP/2.0 @@ -66,13 +66,13 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{},"azure_sb":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' headers: Content-Type: - application/json; charset=utf-8 status: 200 OK code: 200 - duration: 107.347875ms + duration: 113.959792ms - id: 2 request: proto: HTTP/1.1 @@ -92,7 +92,7 @@ interactions: - application/json User-Agent: - Go-Auth0-SDK/latest - url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 method: GET response: proto: HTTP/2.0 @@ -102,13 +102,13 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{},"azure_sb":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' headers: Content-Type: - application/json; charset=utf-8 status: 200 OK code: 200 - duration: 120.849ms + duration: 106.5295ms - id: 3 request: proto: HTTP/1.1 @@ -128,7 +128,7 @@ interactions: - application/json User-Agent: - Go-Auth0-SDK/latest - url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 method: GET response: proto: HTTP/2.0 @@ -138,33 +138,33 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{"principal":"arn:aws:iam::010616021751:saml-provider/idpname","role":"arn:aws:iam::010616021751:role/foo","lifetime_in_seconds":32000},"azure_blob":{},"azure_sb":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' headers: Content-Type: - application/json; charset=utf-8 status: 200 OK code: 200 - duration: 136.643834ms + duration: 111.67375ms - id: 4 request: proto: HTTP/1.1 proto_major: 1 proto_minor: 1 - content_length: 505 + content_length: 519 transfer_encoding: [] trailer: {} host: terraform-provider-auth0-dev.eu.auth0.com remote_addr: "" request_uri: "" body: | - {"name":"Acceptance Test - SSO Integration - TestAccClientAddons","app_type":"sso_integration","addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true}}} + {"name":"Acceptance Test - SSO Integration - TestAccClientAddons","app_type":"sso_integration","addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true},"azure_sb":{}}} form: {} headers: Content-Type: - application/json User-Agent: - Go-Auth0-SDK/latest - url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 method: PATCH response: proto: HTTP/2.0 @@ -174,13 +174,13 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true},"azure_sb":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' headers: Content-Type: - application/json; charset=utf-8 status: 200 OK code: 200 - duration: 141.231458ms + duration: 113.711959ms - id: 5 request: proto: HTTP/1.1 @@ -200,7 +200,7 @@ interactions: - application/json User-Agent: - Go-Auth0-SDK/latest - url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 method: GET response: proto: HTTP/2.0 @@ -210,13 +210,13 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true},"azure_sb":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' headers: Content-Type: - application/json; charset=utf-8 status: 200 OK code: 200 - duration: 105.842917ms + duration: 110.989125ms - id: 6 request: proto: HTTP/1.1 @@ -236,7 +236,7 @@ interactions: - application/json User-Agent: - Go-Auth0-SDK/latest - url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 method: GET response: proto: HTTP/2.0 @@ -246,14 +246,158 @@ interactions: trailer: {} content_length: -1 uncompressed: true - body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true},"azure_sb":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' headers: Content-Type: - application/json; charset=utf-8 status: 200 OK code: 200 - duration: 124.97375ms + duration: 94.77575ms - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 5 + transfer_encoding: [] + trailer: {} + host: terraform-provider-auth0-dev.eu.auth0.com + remote_addr: "" + request_uri: "" + body: | + null + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - Go-Auth0-SDK/latest + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{"accountName":"acmeorg","storageAccessKey":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","containerName":"my-container","blobName":"my-blob","expiration":10,"signedIdentifier":"id123","blob_read":true,"blob_write":true,"blob_delete":true,"container_read":true,"container_write":true,"container_delete":true,"container_list":true},"azure_sb":{}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + headers: + Content-Type: + - application/json; charset=utf-8 + status: 200 OK + code: 200 + duration: 124.35475ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 250 + transfer_encoding: [] + trailer: {} + host: terraform-provider-auth0-dev.eu.auth0.com + remote_addr: "" + request_uri: "" + body: | + {"name":"Acceptance Test - SSO Integration - TestAccClientAddons","app_type":"sso_integration","addons":{"aws":{},"azure_blob":{},"azure_sb":{"namespace":"acmeorg","sasKeyName":"my-policy","sasKey":"my-key","entityPath":"my-queue","expiration":10}}} + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - Go-Auth0-SDK/latest + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 + method: PATCH + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{},"azure_sb":{"namespace":"acmeorg","sasKeyName":"my-policy","sasKey":"my-key","entityPath":"my-queue","expiration":10}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + headers: + Content-Type: + - application/json; charset=utf-8 + status: 200 OK + code: 200 + duration: 112.305708ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 5 + transfer_encoding: [] + trailer: {} + host: terraform-provider-auth0-dev.eu.auth0.com + remote_addr: "" + request_uri: "" + body: | + null + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - Go-Auth0-SDK/latest + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{},"azure_sb":{"namespace":"acmeorg","sasKeyName":"my-policy","sasKey":"my-key","entityPath":"my-queue","expiration":10}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + headers: + Content-Type: + - application/json; charset=utf-8 + status: 200 OK + code: 200 + duration: 95.957709ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 5 + transfer_encoding: [] + trailer: {} + host: terraform-provider-auth0-dev.eu.auth0.com + remote_addr: "" + request_uri: "" + body: | + null + form: {} + headers: + Content-Type: + - application/json + User-Agent: + - Go-Auth0-SDK/latest + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: true + body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5","client_secret":"[REDACTED]","app_type":"sso_integration","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token","client_credentials"],"custom_login_page_on":true,"addons":{"aws":{},"azure_blob":{},"azure_sb":{"namespace":"acmeorg","sasKeyName":"my-policy","sasKey":"my-key","entityPath":"my-queue","expiration":10}},"refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}' + headers: + Content-Type: + - application/json; charset=utf-8 + status: 200 OK + code: 200 + duration: 97.135959ms + - id: 11 request: proto: HTTP/1.1 proto_major: 1 @@ -271,7 +415,7 @@ interactions: - application/json User-Agent: - Go-Auth0-SDK/latest - url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR + url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/RL4iCr6M6uxhJDdQnegG7l3tpPShGTn5 method: DELETE response: proto: HTTP/2.0 @@ -287,4 +431,4 @@ interactions: - application/json; charset=utf-8 status: 204 No Content code: 204 - duration: 198.342916ms + duration: 191.9425ms