diff --git a/docs/data-sources/client.md b/docs/data-sources/client.md
index 65308fa37..98b55a4dc 100644
--- a/docs/data-sources/client.md
+++ b/docs/data-sources/client.md
@@ -74,6 +74,7 @@ data "auth0_client" "some-client-by-id" {
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))
### Nested Schema for `addons.aws`
@@ -85,6 +86,26 @@ Read-Only:
- `role` (String)
+
+### Nested Schema for `addons.azure_blob`
+
+Read-Only:
+
+- `account_name` (String)
+- `blob_delete` (Boolean)
+- `blob_name` (String)
+- `blob_read` (Boolean)
+- `blob_write` (Boolean)
+- `container_delete` (Boolean)
+- `container_list` (Boolean)
+- `container_name` (String)
+- `container_read` (Boolean)
+- `container_write` (Boolean)
+- `expiration` (Number)
+- `signed_identifier` (String)
+- `storage_access_key` (String)
+
+
### Nested Schema for `jwt_configuration`
diff --git a/docs/data-sources/global_client.md b/docs/data-sources/global_client.md
index 3b5dbabf3..56664aa66 100644
--- a/docs/data-sources/global_client.md
+++ b/docs/data-sources/global_client.md
@@ -63,6 +63,7 @@ data "auth0_global_client" "global" {}
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))
### Nested Schema for `addons.aws`
@@ -74,6 +75,26 @@ Read-Only:
- `role` (String)
+
+### Nested Schema for `addons.azure_blob`
+
+Read-Only:
+
+- `account_name` (String)
+- `blob_delete` (Boolean)
+- `blob_name` (String)
+- `blob_read` (Boolean)
+- `blob_write` (Boolean)
+- `container_delete` (Boolean)
+- `container_list` (Boolean)
+- `container_name` (String)
+- `container_read` (Boolean)
+- `container_write` (Boolean)
+- `expiration` (Number)
+- `signed_identifier` (String)
+- `storage_access_key` (String)
+
+
### Nested Schema for `jwt_configuration`
diff --git a/docs/resources/client.md b/docs/resources/client.md
index cc768fd8e..7d27b9f5e 100644
--- a/docs/resources/client.md
+++ b/docs/resources/client.md
@@ -136,6 +136,7 @@ resource "auth0_client" "my_client" {
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))
### Nested Schema for `addons.aws`
@@ -147,6 +148,26 @@ Optional:
- `role` (String) AWS role ARN, e.g. `arn:aws:iam::010616021751:role/foo`.
+
+### Nested Schema for `addons.azure_blob`
+
+Optional:
+
+- `account_name` (String) Your Azure storage account name. Usually first segment in your Azure storage URL. e.g. `https://acme-org.blob.core.windows.net` would be the account name `acme-org`.
+- `blob_delete` (Boolean) Indicates if the issued token has permission to delete the blob.
+- `blob_name` (String) Entity to request a token for. e.g. `my-blob`. If blank the computed SAS will apply to the entire storage container.
+- `blob_read` (Boolean) Indicates if the issued token has permission to read the content, properties, metadata and block list. Use the blob as the source of a copy operation.
+- `blob_write` (Boolean) Indicates if the issued token has permission to create or write content, properties, metadata, or block list. Snapshot or lease the blob. Resize the blob (page blob only). Use the blob as the destination of a copy operation within the same account.
+- `container_delete` (Boolean) Indicates if issued token has permission to delete any blob in the container.
+- `container_list` (Boolean) Indicates if the issued token has permission to list blobs in the container.
+- `container_name` (String) Container to request a token for. e.g. `my-container`.
+- `container_read` (Boolean) Indicates if the issued token has permission to read the content, properties, metadata or block list of any blob in the container. Use any blob in the container as the source of a copy operation.
+- `container_write` (Boolean) Indicates that for any blob in the container if the issued token has permission to create or write content, properties, metadata, or block list. Snapshot or lease the blob. Resize the blob (page blob only). Use the blob as the destination of a copy operation within the same account.
+- `expiration` (Number) Expiration in minutes for the generated token (default of 5 minutes).
+- `signed_identifier` (String) Shared access policy identifier defined in your storage account resource.
+- `storage_access_key` (String) Access key associated with this storage account.
+
+
### Nested Schema for `jwt_configuration`
diff --git a/docs/resources/global_client.md b/docs/resources/global_client.md
index 7958c348d..8b673b31d 100644
--- a/docs/resources/global_client.md
+++ b/docs/resources/global_client.md
@@ -79,6 +79,7 @@ PAGE
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))
### Nested Schema for `addons.aws`
@@ -90,6 +91,26 @@ Optional:
- `role` (String) AWS role ARN, e.g. `arn:aws:iam::010616021751:role/foo`.
+
+### Nested Schema for `addons.azure_blob`
+
+Optional:
+
+- `account_name` (String) Your Azure storage account name. Usually first segment in your Azure storage URL. e.g. `https://acme-org.blob.core.windows.net` would be the account name `acme-org`.
+- `blob_delete` (Boolean) Indicates if the issued token has permission to delete the blob.
+- `blob_name` (String) Entity to request a token for. e.g. `my-blob`. If blank the computed SAS will apply to the entire storage container.
+- `blob_read` (Boolean) Indicates if the issued token has permission to read the content, properties, metadata and block list. Use the blob as the source of a copy operation.
+- `blob_write` (Boolean) Indicates if the issued token has permission to create or write content, properties, metadata, or block list. Snapshot or lease the blob. Resize the blob (page blob only). Use the blob as the destination of a copy operation within the same account.
+- `container_delete` (Boolean) Indicates if issued token has permission to delete any blob in the container.
+- `container_list` (Boolean) Indicates if the issued token has permission to list blobs in the container.
+- `container_name` (String) Container to request a token for. e.g. `my-container`.
+- `container_read` (Boolean) Indicates if the issued token has permission to read the content, properties, metadata or block list of any blob in the container. Use any blob in the container as the source of a copy operation.
+- `container_write` (Boolean) Indicates that for any blob in the container if the issued token has permission to create or write content, properties, metadata, or block list. Snapshot or lease the blob. Resize the blob (page blob only). Use the blob as the destination of a copy operation within the same account.
+- `expiration` (Number) Expiration in minutes for the generated token (default of 5 minutes).
+- `signed_identifier` (String) Shared access policy identifier defined in your storage account resource.
+- `storage_access_key` (String) Access key associated with this storage account.
+
+
### Nested Schema for `jwt_configuration`
diff --git a/internal/auth0/client/expand.go b/internal/auth0/client/expand.go
index 3556a7898..d6ff705e9 100644
--- a/internal/auth0/client/expand.go
+++ b/internal/auth0/client/expand.go
@@ -245,7 +245,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"))
return stop
})
@@ -260,20 +260,44 @@ func expandClientAddonAWS(awsCfg cty.Value) *management.AWSClientAddon {
var awsAddon management.AWSClientAddon
awsCfg.ForEachElement(func(_ cty.Value, awsCfg cty.Value) (stop bool) {
- awsAddon.Principal = value.String(awsCfg.GetAttr("principal"))
- awsAddon.Role = value.String(awsCfg.GetAttr("role"))
- awsAddon.LifetimeInSeconds = value.Int(awsCfg.GetAttr("lifetime_in_seconds"))
+ awsAddon = management.AWSClientAddon{
+ Principal: value.String(awsCfg.GetAttr("principal")),
+ Role: value.String(awsCfg.GetAttr("role")),
+ LifetimeInSeconds: value.Int(awsCfg.GetAttr("lifetime_in_seconds")),
+ }
return stop
})
- if awsAddon == (management.AWSClientAddon{}) {
- return nil
- }
-
return &awsAddon
}
+func expandClientAddonAzureBlob(azureCfg cty.Value) *management.AzureBlobClientAddon {
+ var azureAddon management.AzureBlobClientAddon
+
+ azureCfg.ForEachElement(func(_ cty.Value, azureCfg cty.Value) (stop bool) {
+ azureAddon = management.AzureBlobClientAddon{
+ AccountName: value.String(azureCfg.GetAttr("account_name")),
+ StorageAccessKey: value.String(azureCfg.GetAttr("storage_access_key")),
+ ContainerName: value.String(azureCfg.GetAttr("container_name")),
+ BlobName: value.String(azureCfg.GetAttr("blob_name")),
+ Expiration: value.Int(azureCfg.GetAttr("expiration")),
+ SignedIdentifier: value.String(azureCfg.GetAttr("signed_identifier")),
+ BlobRead: value.Bool(azureCfg.GetAttr("blob_read")),
+ BlobWrite: value.Bool(azureCfg.GetAttr("blob_write")),
+ BlobDelete: value.Bool(azureCfg.GetAttr("blob_delete")),
+ ContainerRead: value.Bool(azureCfg.GetAttr("container_read")),
+ ContainerWrite: value.Bool(azureCfg.GetAttr("container_write")),
+ ContainerDelete: value.Bool(azureCfg.GetAttr("container_delete")),
+ ContainerList: value.Bool(azureCfg.GetAttr("container_list")),
+ }
+
+ 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 4969eb28e..a904fb4ec 100644
--- a/internal/auth0/client/flatten.go
+++ b/internal/auth0/client/flatten.go
@@ -94,17 +94,40 @@ func flattenClientAddons(addons *management.ClientAddons) []interface{} {
return nil
}
- aws := map[string]interface{}{
- "principal": addons.GetAWS().GetPrincipal(),
- "role": addons.GetAWS().GetRole(),
- "lifetime_in_seconds": addons.GetAWS().GetLifetimeInSeconds(),
+ m := map[string]interface{}{
+ "aws": nil,
+ "azure_blob": nil,
}
- return []interface{}{
- map[string]interface{}{
- "aws": []interface{}{
- aws,
+ if addons.GetAWS() != nil {
+ m["aws"] = []interface{}{
+ map[string]interface{}{
+ "principal": addons.GetAWS().GetPrincipal(),
+ "role": addons.GetAWS().GetRole(),
+ "lifetime_in_seconds": addons.GetAWS().GetLifetimeInSeconds(),
},
- },
+ }
}
+
+ if addons.GetAzureBlob() != nil {
+ m["azure_blob"] = []interface{}{
+ map[string]interface{}{
+ "account_name": addons.GetAzureBlob().GetAccountName(),
+ "storage_access_key": addons.GetAzureBlob().GetStorageAccessKey(),
+ "container_name": addons.GetAzureBlob().GetContainerName(),
+ "blob_name": addons.GetAzureBlob().GetBlobName(),
+ "expiration": addons.GetAzureBlob().GetExpiration(),
+ "signed_identifier": addons.GetAzureBlob().GetSignedIdentifier(),
+ "blob_read": addons.GetAzureBlob().GetBlobRead(),
+ "blob_write": addons.GetAzureBlob().GetBlobWrite(),
+ "blob_delete": addons.GetAzureBlob().GetBlobDelete(),
+ "container_read": addons.GetAzureBlob().GetContainerRead(),
+ "container_write": addons.GetAzureBlob().GetContainerWrite(),
+ "container_delete": addons.GetAzureBlob().GetContainerDelete(),
+ "container_list": addons.GetAzureBlob().GetContainerList(),
+ },
+ }
+ }
+
+ return []interface{}{m}
}
diff --git a/internal/auth0/client/resource.go b/internal/auth0/client/resource.go
index cc85e11a0..d759862d4 100644
--- a/internal/auth0/client/resource.go
+++ b/internal/auth0/client/resource.go
@@ -491,6 +491,7 @@ func NewResource() *schema.Resource {
"aws": {
Type: schema.TypeList,
Optional: true,
+ Computed: true,
MaxItems: 1,
Description: "AWS Addon configuration.",
Elem: &schema.Resource{
@@ -514,6 +515,98 @@ func NewResource() *schema.Resource {
},
},
},
+ "azure_blob": {
+ Type: schema.TypeList,
+ Optional: true,
+ Computed: true,
+ MaxItems: 1,
+ Description: "Azure Blob Storage Addon configuration.",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "account_name": {
+ Description: "Your Azure storage account name. Usually first segment in your " +
+ "Azure storage URL. e.g. `https://acme-org.blob.core.windows.net` would " +
+ "be the account name `acme-org`.",
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "storage_access_key": {
+ Description: "Access key associated with this storage account.",
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "container_name": {
+ Description: "Container to request a token for. e.g. `my-container`.",
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "blob_name": {
+ Description: "Entity to request a token for. e.g. `my-blob`. If blank the " +
+ "computed SAS will apply to the entire storage container.",
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "expiration": {
+ Description: "Expiration in minutes for the generated token (default of 5 minutes).",
+ Type: schema.TypeInt,
+ ValidateFunc: validation.IntAtLeast(0),
+ Optional: true,
+ },
+ "signed_identifier": {
+ Description: "Shared access policy identifier defined in your storage account resource.",
+ Type: schema.TypeString,
+ Optional: true,
+ },
+ "blob_read": {
+ Description: "Indicates if the issued token has permission to read the " +
+ "content, properties, metadata and block list. Use the blob as the " +
+ "source of a copy operation.",
+ Type: schema.TypeBool,
+ Optional: true,
+ },
+ "blob_write": {
+ Description: "Indicates if the issued token has permission to create or " +
+ "write content, properties, metadata, or block list. Snapshot or lease " +
+ "the blob. Resize the blob (page blob only). Use the blob as the " +
+ "destination of a copy operation within the same account.",
+ Type: schema.TypeBool,
+ Optional: true,
+ },
+ "blob_delete": {
+ Description: "Indicates if the issued token has permission to delete the blob.",
+ Type: schema.TypeBool,
+ Optional: true,
+ },
+ "container_read": {
+ Description: "Indicates if the issued token has permission to read the " +
+ "content, properties, metadata or block list of any blob in the " +
+ "container. Use any blob in the container as the source of a copy operation.",
+ Type: schema.TypeBool,
+ Optional: true,
+ },
+ "container_write": {
+ Description: "Indicates that for any blob in the container if the issued " +
+ "token has permission to create or write content, properties, metadata, " +
+ "or block list. Snapshot or lease the blob. Resize the blob " +
+ "(page blob only). Use the blob as the destination of a copy operation " +
+ "within the same account.",
+ Type: schema.TypeBool,
+ Optional: true,
+ },
+ "container_delete": {
+ Description: "Indicates if issued token has permission to delete any blob in " +
+ "the container.",
+ Type: schema.TypeBool,
+ Optional: true,
+ },
+ "container_list": {
+ Description: "Indicates if the issued token has permission to list blobs in the container.",
+ Type: schema.TypeBool,
+ Optional: true,
+ },
+ },
+ },
+ },
},
},
},
diff --git a/internal/auth0/client/resource_test.go b/internal/auth0/client/resource_test.go
index c9812c5cf..60cf9df1e 100644
--- a/internal/auth0/client/resource_test.go
+++ b/internal/auth0/client/resource_test.go
@@ -753,6 +753,31 @@ resource "auth0_client" "my_client" {
}
`
+const testAccUpdateClientWithAddonsAzureBlob = `
+resource "auth0_client" "my_client" {
+ name = "Acceptance Test - SSO Integration - {{.testName}}"
+ app_type = "sso_integration"
+
+ addons {
+ azure_blob {
+ account_name = "acmeorg"
+ storage_access_key = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=="
+ container_name = "my-container"
+ blob_name = "my-blob"
+ expiration = 10
+ signed_identifier = "id123"
+ blob_read = true
+ blob_write = true
+ blob_delete = true
+ container_read = true
+ container_write = true
+ container_delete = true
+ container_list = true
+ }
+ }
+}
+`
+
func TestAccClientAddons(t *testing.T) {
acctest.Test(t, resource.TestCase{
Steps: []resource.TestStep{
@@ -767,6 +792,27 @@ func TestAccClientAddons(t *testing.T) {
resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.aws.0.lifetime_in_seconds", "32000"),
),
},
+ {
+ Config: acctest.ParseTestName(testAccUpdateClientWithAddonsAzureBlob, 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_blob.0.account_name", "acmeorg"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.storage_access_key", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=="),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.container_name", "my-container"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.blob_name", "my-blob"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.expiration", "10"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.signed_identifier", "id123"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.blob_read", "true"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.blob_write", "true"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.blob_delete", "true"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.container_read", "true"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.container_write", "true"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.container_delete", "true"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "addons.0.azure_blob.0.container_list", "true"),
+ ),
+ },
},
})
}
diff --git a/test/data/recordings/TestAccClientAddons.yaml b/test/data/recordings/TestAccClientAddons.yaml
index 59726611b..5f8152425 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: 249
+ content_length: 265
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}}}
+ {"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":{}}}
form: {}
headers:
Content-Type:
@@ -30,13 +30,13 @@ interactions:
trailer: {}
content_length: -1
uncompressed: false
- body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"T8mmXrIWvY8fOozSWa6jsyDAcilJ05ia","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}},"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":"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}}'
headers:
Content-Type:
- application/json; charset=utf-8
status: 201 Created
code: 201
- duration: 926.172ms
+ duration: 290.815792ms
- 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/T8mmXrIWvY8fOozSWa6jsyDAcilJ05ia
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR
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":"T8mmXrIWvY8fOozSWa6jsyDAcilJ05ia","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}},"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":"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}}'
headers:
Content-Type:
- application/json; charset=utf-8
status: 200 OK
code: 200
- duration: 112.954083ms
+ duration: 107.347875ms
- 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/T8mmXrIWvY8fOozSWa6jsyDAcilJ05ia
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR
method: GET
response:
proto: HTTP/2.0
@@ -102,14 +102,158 @@ interactions:
trailer: {}
content_length: -1
uncompressed: true
- body: '{"name":"Acceptance Test - SSO Integration - TestAccClientAddons","client_id":"T8mmXrIWvY8fOozSWa6jsyDAcilJ05ia","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}},"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":"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}}'
headers:
Content-Type:
- application/json; charset=utf-8
status: 200 OK
code: 200
- duration: 118.992834ms
+ duration: 120.849ms
- id: 3
+ 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/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR
+ 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":"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}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 136.643834ms
+ - id: 4
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 505
+ 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}}}
+ 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
+ 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":"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}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 141.231458ms
+ - id: 5
+ 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/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR
+ 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":"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}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 105.842917ms
+ - id: 6
+ 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/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR
+ 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":"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}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 124.97375ms
+ - id: 7
request:
proto: HTTP/1.1
proto_major: 1
@@ -127,7 +271,7 @@ interactions:
- application/json
User-Agent:
- Go-Auth0-SDK/latest
- url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/T8mmXrIWvY8fOozSWa6jsyDAcilJ05ia
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/YhVNlfyDHTdVvrgVdo51pZEQHxuG0pPR
method: DELETE
response:
proto: HTTP/2.0
@@ -143,4 +287,4 @@ interactions:
- application/json; charset=utf-8
status: 204 No Content
code: 204
- duration: 211.839791ms
+ duration: 198.342916ms