From 46ac59267427e8472915ab9d578c73e5091e6fc3 Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Fri, 7 Aug 2026 03:41:57 +0000 Subject: [PATCH 1/5] fix bicep deployment lookup across projects Tag standard ARM deployments with project identity and prefer project-specific deployment history while retaining a legacy fallback for existing environments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8f8fec20-564b-4f35-8720-6c8f88bc9f08 --- cli/azd/pkg/azapi/standard_deployments.go | 21 ++- .../pkg/azapi/standard_deployments_test.go | 19 ++ cli/azd/pkg/azure/tags.go | 3 + cli/azd/pkg/infra/deployment_manager.go | 52 ++++-- cli/azd/pkg/infra/deployment_manager_test.go | 168 +++++++++++++++++- .../provisioning/bicep/bicep_provider.go | 25 ++- .../provisioning/bicep/bicep_provider_test.go | 21 ++- .../provisioning/bicep/deployment_stacks.go | 11 ++ .../infra/provisioning/bicep/project_name.go | 49 +++++ .../provisioning/bicep/project_name_test.go | 74 ++++++++ 10 files changed, 413 insertions(+), 30 deletions(-) create mode 100644 cli/azd/pkg/infra/provisioning/bicep/project_name.go create mode 100644 cli/azd/pkg/infra/provisioning/bicep/project_name_test.go diff --git a/cli/azd/pkg/azapi/standard_deployments.go b/cli/azd/pkg/azapi/standard_deployments.go index 851e6ca1638..8e76aa78ee6 100644 --- a/cli/azd/pkg/azapi/standard_deployments.go +++ b/cli/azd/pkg/azapi/standard_deployments.go @@ -579,10 +579,7 @@ func (ds *StandardDeployments) voidSubscriptionDeploymentState( if has { var emptyTemplate json.RawMessage = []byte(emptySubscriptionArmTemplate) emptyDeploymentName := ds.GenerateDeploymentName(*envName) - tags := map[string]*string{ - azure.TagKeyAzdEnvName: envName, - "azd-deploy-reason": new("down"), - } + tags := voidDeploymentTags(deployment) _, err = ds.DeployToSubscription( ctx, @@ -603,6 +600,22 @@ func (ds *StandardDeployments) voidSubscriptionDeploymentState( return nil } +func voidDeploymentTags(deployment *ResourceDeployment) map[string]*string { + tags := map[string]*string{ + azure.TagKeyAzdEnvName: deployment.Tags[azure.TagKeyAzdEnvName], + "azd-deploy-reason": new("down"), + } + + if projectName, has := deployment.Tags[azure.TagKeyAzdProjectName]; has { + tags[azure.TagKeyAzdProjectName] = projectName + } + if layerName, has := deployment.Tags[azure.TagKeyAzdLayerName]; has { + tags[azure.TagKeyAzdLayerName] = layerName + } + + return tags +} + func (ds *StandardDeployments) DeleteResourceGroupDeployment( ctx context.Context, subscriptionId, diff --git a/cli/azd/pkg/azapi/standard_deployments_test.go b/cli/azd/pkg/azapi/standard_deployments_test.go index f04b04a6d40..8c0dd63221e 100644 --- a/cli/azd/pkg/azapi/standard_deployments_test.go +++ b/cli/azd/pkg/azapi/standard_deployments_test.go @@ -55,6 +55,25 @@ func Test_StandardDeployments_GenerateDeploymentName(t *testing.T) { } } +func TestVoidDeploymentTags(t *testing.T) { + deployment := &ResourceDeployment{ + Tags: map[string]*string{ + azure.TagKeyAzdEnvName: new("dev"), + azure.TagKeyAzdLayerName: new("main"), + azure.TagKeyAzdProjectName: new("project-a"), + "unrelated": new("value"), + }, + } + + tags := voidDeploymentTags(deployment) + + require.Equal(t, "dev", *tags[azure.TagKeyAzdEnvName]) + require.Equal(t, "main", *tags[azure.TagKeyAzdLayerName]) + require.Equal(t, "project-a", *tags[azure.TagKeyAzdProjectName]) + require.Equal(t, "down", *tags["azd-deploy-reason"]) + require.NotContains(t, tags, "unrelated") +} + func TestCreatedResourceGroupsFromDeployment(t *testing.T) { t.Parallel() diff --git a/cli/azd/pkg/azure/tags.go b/cli/azd/pkg/azure/tags.go index 0afcca0620b..847553e23a3 100644 --- a/cli/azd/pkg/azure/tags.go +++ b/cli/azd/pkg/azure/tags.go @@ -10,6 +10,9 @@ const ( // TagKeyAzdLayerName is the name of the key in the tags map of a resource // used to store the azd provisioning layer a resource is associated with. TagKeyAzdLayerName = "azd-layer-name" + // TagKeyAzdProjectName is the name of the key in the tags map of a deployment + // used to store the azd project a deployment is associated with. + TagKeyAzdProjectName = "azd-project-name" /* #nosec G101 - Potential hardcoded credentials - false positive */ // TagKeyAzdDeploymentStateParamHashName is the name of the key in the tags map of a deployment // used to store the parameters hash. diff --git a/cli/azd/pkg/infra/deployment_manager.go b/cli/azd/pkg/infra/deployment_manager.go index 459226e1177..dfb0ba0095e 100644 --- a/cli/azd/pkg/infra/deployment_manager.go +++ b/cli/azd/pkg/infra/deployment_manager.go @@ -80,6 +80,7 @@ func (dm *DeploymentManager) ResourceGroupDeployment( func (dm *DeploymentManager) CompletedDeployments( ctx context.Context, scope Scope, + projectName string, envName string, layerName string, hint string, @@ -102,11 +103,13 @@ func (dm *DeploymentManager) CompletedDeployments( } } - // Environment matching strategy - // 1. Deployment with azd tagged env name + layer name - // 2. Exact match on environment name to deployment name (old azd strategy) - // 3. Multiple matching names based specified hint (show user prompt) + // Deployment matching strategy + // 1. Deployment with azd tagged project name + env name + layer name + // 2. Deployment without a project tag that matches the previous env/layer strategy + // 3. Exact match on environment name to deployment name (old azd strategy) + // 4. Multiple matching names based specified hint (show user prompt) matchingDeployments := []*azapi.ResourceDeployment{} + var legacyDeployment *azapi.ResourceDeployment for _, deployment := range deployments { // We only want to consider deployments that are in a terminal state, not any which may be ongoing. @@ -115,26 +118,40 @@ func (dm *DeploymentManager) CompletedDeployments( continue } - // Match on current azd strategy (tags) + projectTag, projectTagHas := deployment.Tags[azure.TagKeyAzdProjectName] + if projectName != "" && projectTagHas { + if projectTag == nil || *projectTag != projectName { + // A deployment explicitly owned by another project must never be + // considered by the legacy matching strategies below. + continue + } + } + envTag, envTagHas := deployment.Tags[azure.TagKeyAzdEnvName] layerTag, layerTagHas := deployment.Tags[azure.TagKeyAzdLayerName] - if envTagHas && *envTag == envName { - if layerTagHas && *layerTag == layerName { - log.Printf("completedDeployments: matched deployment '%s' using layerName: %s", deployment.Name, layerName) + tagsMatch := envTagHas && envTag != nil && *envTag == envName && + ((layerTagHas && layerTag != nil && *layerTag == layerName) || + (layerName == "" && !layerTagHas)) + + if tagsMatch { + if projectName == "" || projectTagHas { + log.Printf( + "completedDeployments: matched deployment '%s' using projectName: %s, envName: %s, layerName: %s", + deployment.Name, projectName, envName, layerName) return []*azapi.ResourceDeployment{deployment}, nil } - // If layerName is empty, we match on the envName alone - if layerName == "" && !layerTagHas { - log.Printf("completedDeployments: matched deployment '%s' using envName", deployment.Name) - return []*azapi.ResourceDeployment{deployment}, nil + if legacyDeployment == nil { + legacyDeployment = deployment } + continue } // LEGACY: match on deployment name - if deployment.Name == envName { - return []*azapi.ResourceDeployment{deployment}, nil + if (projectName == "" || !projectTagHas) && deployment.Name == envName && legacyDeployment == nil { + legacyDeployment = deployment + continue } // Fallback: Match on hint @@ -143,6 +160,13 @@ func (dm *DeploymentManager) CompletedDeployments( } } + if legacyDeployment != nil { + log.Printf( + "completedDeployments: matched legacy deployment '%s' using envName: %s, layerName: %s", + legacyDeployment.Name, envName, layerName) + return []*azapi.ResourceDeployment{legacyDeployment}, nil + } + if len(matchingDeployments) == 0 { return nil, fmt.Errorf("'%s': %w", hint, ErrDeploymentsNotFound) } diff --git a/cli/azd/pkg/infra/deployment_manager_test.go b/cli/azd/pkg/infra/deployment_manager_test.go index 29bc5f7b9da..876dad06ab8 100644 --- a/cli/azd/pkg/infra/deployment_manager_test.go +++ b/cli/azd/pkg/infra/deployment_manager_test.go @@ -192,6 +192,160 @@ func (f *fakeScope) Deployment(name string) Deployment { func TestCompletedDeployments(t *testing.T) { now := time.Now().UTC() + t.Run("prefers current project over newer foreign and legacy deployments", func(t *testing.T) { + projectName := "project-a" + foreignProjectName := "project-b" + envName := "dev" + layerName := "" + scope := &fakeScope{ + subscriptionId: "sub-1", + deployments: []*azapi.ResourceDeployment{ + { + Name: "project-b-newest", + Tags: map[string]*string{ + azure.TagKeyAzdProjectName: &foreignProjectName, + azure.TagKeyAzdEnvName: &envName, + azure.TagKeyAzdLayerName: &layerName, + }, + ProvisioningState: azapi.DeploymentProvisioningStateSucceeded, + Timestamp: now, + }, + { + Name: "legacy-newer", + Tags: map[string]*string{ + azure.TagKeyAzdEnvName: &envName, + azure.TagKeyAzdLayerName: &layerName, + }, + ProvisioningState: azapi.DeploymentProvisioningStateSucceeded, + Timestamp: now.Add(-time.Hour), + }, + { + Name: "project-a-older", + Tags: map[string]*string{ + azure.TagKeyAzdProjectName: &projectName, + azure.TagKeyAzdEnvName: &envName, + azure.TagKeyAzdLayerName: &layerName, + }, + ProvisioningState: azapi.DeploymentProvisioningStateSucceeded, + Timestamp: now.Add(-2 * time.Hour), + }, + }, + } + + dm := NewDeploymentManager(&fakeDeploymentService{}, nil, nil) + result, err := dm.CompletedDeployments( + t.Context(), scope, projectName, envName, layerName, "") + + require.NoError(t, err) + require.Len(t, result, 1) + assert.Equal(t, "project-a-older", result[0].Name) + }) + + t.Run("falls back to newest untagged project deployment", func(t *testing.T) { + projectName := "project-a" + foreignProjectName := "project-b" + envName := "dev" + layerName := "" + scope := &fakeScope{ + subscriptionId: "sub-1", + deployments: []*azapi.ResourceDeployment{ + { + Name: "project-b-newest", + Tags: map[string]*string{ + azure.TagKeyAzdProjectName: &foreignProjectName, + azure.TagKeyAzdEnvName: &envName, + azure.TagKeyAzdLayerName: &layerName, + }, + ProvisioningState: azapi.DeploymentProvisioningStateSucceeded, + Timestamp: now, + }, + { + Name: "legacy-newest", + Tags: map[string]*string{ + azure.TagKeyAzdEnvName: &envName, + azure.TagKeyAzdLayerName: &layerName, + }, + ProvisioningState: azapi.DeploymentProvisioningStateSucceeded, + Timestamp: now.Add(-time.Hour), + }, + { + Name: "legacy-older", + Tags: map[string]*string{ + azure.TagKeyAzdEnvName: &envName, + azure.TagKeyAzdLayerName: &layerName, + }, + ProvisioningState: azapi.DeploymentProvisioningStateSucceeded, + Timestamp: now.Add(-2 * time.Hour), + }, + }, + } + + dm := NewDeploymentManager(&fakeDeploymentService{}, nil, nil) + result, err := dm.CompletedDeployments( + t.Context(), scope, projectName, envName, layerName, "") + + require.NoError(t, err) + require.Len(t, result, 1) + assert.Equal(t, "legacy-newest", result[0].Name) + }) + + t.Run("does not use foreign tagged deployment as legacy fallback", func(t *testing.T) { + projectName := "project-a" + foreignProjectName := "project-b" + envName := "dev" + layerName := "" + scope := &fakeScope{ + subscriptionId: "sub-1", + deployments: []*azapi.ResourceDeployment{ + { + Name: "dev-project-b", + Tags: map[string]*string{ + azure.TagKeyAzdProjectName: &foreignProjectName, + azure.TagKeyAzdEnvName: &envName, + azure.TagKeyAzdLayerName: &layerName, + }, + ProvisioningState: azapi.DeploymentProvisioningStateSucceeded, + Timestamp: now, + }, + }, + } + + dm := NewDeploymentManager(&fakeDeploymentService{}, nil, nil) + _, err := dm.CompletedDeployments( + t.Context(), scope, projectName, envName, layerName, "") + + require.ErrorIs(t, err, ErrDeploymentsNotFound) + }) + + t.Run("empty project identity preserves environment-only matching", func(t *testing.T) { + projectName := "project-b" + envName := "dev" + layerName := "" + scope := &fakeScope{ + subscriptionId: "sub-1", + deployments: []*azapi.ResourceDeployment{ + { + Name: "newest", + Tags: map[string]*string{ + azure.TagKeyAzdProjectName: &projectName, + azure.TagKeyAzdEnvName: &envName, + azure.TagKeyAzdLayerName: &layerName, + }, + ProvisioningState: azapi.DeploymentProvisioningStateSucceeded, + Timestamp: now, + }, + }, + } + + dm := NewDeploymentManager(&fakeDeploymentService{}, nil, nil) + result, err := dm.CompletedDeployments( + t.Context(), scope, "", envName, layerName, "") + + require.NoError(t, err) + require.Len(t, result, 1) + assert.Equal(t, "newest", result[0].Name) + }) + t.Run("matches by env tag", func(t *testing.T) { envName := "myenv" tagVal := envName @@ -213,7 +367,7 @@ func TestCompletedDeployments(t *testing.T) { &fakeDeploymentService{}, nil, nil, ) result, err := dm.CompletedDeployments( - t.Context(), scope, envName, "", "", + t.Context(), scope, "project-a", envName, "", "", ) require.NoError(t, err) require.Len(t, result, 1) @@ -245,7 +399,7 @@ func TestCompletedDeployments(t *testing.T) { ) result, err := dm.CompletedDeployments( t.Context(), - scope, envName, layerName, "", + scope, "project-a", envName, layerName, "", ) require.NoError(t, err) require.Len(t, result, 1) @@ -271,7 +425,7 @@ func TestCompletedDeployments(t *testing.T) { &fakeDeploymentService{}, nil, nil, ) result, err := dm.CompletedDeployments( - t.Context(), scope, envName, "", "", + t.Context(), scope, "project-a", envName, "", "", ) require.NoError(t, err) require.Len(t, result, 1) @@ -309,7 +463,7 @@ func TestCompletedDeployments(t *testing.T) { ) result, err := dm.CompletedDeployments( t.Context(), - scope, "myenv", "", "", + scope, "project-a", "myenv", "", "", ) require.NoError(t, err) assert.Len(t, result, 2) @@ -333,7 +487,7 @@ func TestCompletedDeployments(t *testing.T) { ) _, err := dm.CompletedDeployments( t.Context(), - scope, "myenv-running", "", "", + scope, "project-a", "myenv-running", "", "", ) require.Error(t, err) assert.ErrorIs(t, err, ErrDeploymentsNotFound) @@ -351,7 +505,7 @@ func TestCompletedDeployments(t *testing.T) { ) _, err := dm.CompletedDeployments( t.Context(), - scope, "myenv", "", "", + scope, "project-a", "myenv", "", "", ) require.Error(t, err) assert.ErrorIs(t, err, ErrDeploymentsNotFound) @@ -368,7 +522,7 @@ func TestCompletedDeployments(t *testing.T) { ) _, err := dm.CompletedDeployments( t.Context(), - scope, "myenv", "", "", + scope, "project-a", "myenv", "", "", ) require.Error(t, err) assert.Contains(t, err.Error(), "list failed") diff --git a/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go b/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go index 64537efe8b3..473c0c600b7 100644 --- a/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go +++ b/cli/azd/pkg/infra/provisioning/bicep/bicep_provider.go @@ -258,6 +258,7 @@ type BicepProvider struct { // Options that are available after Initialize() options provisioning.Options projectPath string + projectName string path string layer string mode bicepFileMode @@ -315,6 +316,10 @@ func (p *BicepProvider) Initialize(ctx context.Context, projectPath string, opt } p.projectPath = projectPath + p.projectName, err = resolveProjectName(projectPath) + if err != nil { + return fmt.Errorf("resolving project name: %w", err) + } p.layer = infraOptions.Name p.options = infraOptions p.ignoreDeploymentState = infraOptions.IgnoreDeploymentState @@ -517,7 +522,8 @@ func (p *BicepProvider) State(ctx context.Context, options *provisioning.StateOp var deployment *azapi.ResourceDeployment - deployments, err := p.deploymentManager.CompletedDeployments(ctx, scope, p.env.Name(), p.layer, options.Hint()) + deployments, err := p.deploymentManager.CompletedDeployments( + ctx, scope, p.deploymentProjectName(), p.env.Name(), p.layer, options.Hint()) p.console.StopSpinner(ctx, "", input.StepDone) if err != nil { @@ -652,7 +658,6 @@ func (p *BicepProvider) generateDeploymentObject(plan *compileBicepResult) (infr if p.layer != "" { baseName += "-" + p.layer } - uniqueName := p.deploymentManager.GenerateDeploymentName(baseName) scope, err := plan.Template.TargetScope() if err != nil { @@ -702,6 +707,13 @@ func (p *BicepProvider) deploymentState( return nil, fmt.Errorf("deployment state error: %w", err) } + if projectName := p.deploymentProjectName(); projectName != "" { + projectTag, hasProjectTag := prevDeploymentResult.Tags[azure.TagKeyAzdProjectName] + if !hasProjectTag || projectTag == nil || *projectTag != projectName { + return nil, errors.New("previous deployment does not contain matching azd project identity") + } + } + // State is invalid if the last deployment was not succeeded. // This is currently safe because we rely on latestDeploymentResult which // relies on findCompletedDeployments which filters to only Failed and Succeeded. @@ -729,7 +741,8 @@ func (p *BicepProvider) latestDeploymentResult( ctx context.Context, scope infra.Scope, ) (*azapi.ResourceDeployment, error) { - deployments, err := p.deploymentManager.CompletedDeployments(ctx, scope, p.env.Name(), p.layer, "") + deployments, err := p.deploymentManager.CompletedDeployments( + ctx, scope, p.deploymentProjectName(), p.env.Name(), p.layer, "") // findCompletedDeployments returns error if no deployments are found // No need to check for empty list if err != nil { @@ -901,6 +914,9 @@ func (p *BicepProvider) Deploy(ctx context.Context) (*provisioning.DeployResult, azure.TagKeyAzdEnvName: new(p.env.Name()), azure.TagKeyAzdLayerName: &p.layer, } + if projectName := p.deploymentProjectName(); projectName != "" { + deploymentTags[azure.TagKeyAzdProjectName] = new(projectName) + } if parametersHashErr == nil { deploymentTags[azure.TagKeyAzdDeploymentStateParamHashName] = new(currentParamsHash) } @@ -1249,7 +1265,8 @@ func (p *BicepProvider) Destroy( return nil, fmt.Errorf("computing deployment scope: %w", err) } - completedDeployments, err := p.deploymentManager.CompletedDeployments(ctx, scope, p.env.Name(), p.layer, "") + completedDeployments, err := p.deploymentManager.CompletedDeployments( + ctx, scope, p.deploymentProjectName(), p.env.Name(), p.layer, "") if err != nil { return nil, fmt.Errorf("finding completed deployments: %w", err) } diff --git a/cli/azd/pkg/infra/provisioning/bicep/bicep_provider_test.go b/cli/azd/pkg/infra/provisioning/bicep/bicep_provider_test.go index fda338a1305..429675d10e5 100644 --- a/cli/azd/pkg/infra/provisioning/bicep/bicep_provider_test.go +++ b/cli/azd/pkg/infra/provisioning/bicep/bicep_provider_test.go @@ -1140,7 +1140,7 @@ func TestFindCompletedDeployments(t *testing.T) { *mockContext.Context, &mockedScope{ baseDate: baseDate, envTag: envTag, - }, envTag, layerName, "") + }, bicepProvider.projectName, envTag, layerName, "") require.NoError(t, err) require.Equal(t, 1, len(deployments)) // should take the base date + 2 years @@ -3341,6 +3341,25 @@ func TestDeploymentStateErrors(t *testing.T) { ) require.Error(t, err) }) + + t.Run("legacyDeploymentDoesNotSkipProvision", func(t *testing.T) { + t.Parallel() + mockContext := mocks.NewMockContext(t.Context()) + prepareBicepMocks(mockContext) + p := createBicepProvider(t, mockContext) + + _, err := p.deploymentState( + t.Context(), + &compileBicepResult{}, + &mockedScope{ + baseDate: "1989-10-31", + envTag: p.env.Name(), + }, + "hash", + ) + + require.ErrorContains(t, err, "does not contain matching azd project identity") + }) } // TestValidateErrors exercises the error/skip paths of provisionValidator.validate diff --git a/cli/azd/pkg/infra/provisioning/bicep/deployment_stacks.go b/cli/azd/pkg/infra/provisioning/bicep/deployment_stacks.go index 3def63a28c7..dc7b3f287dc 100644 --- a/cli/azd/pkg/infra/provisioning/bicep/deployment_stacks.go +++ b/cli/azd/pkg/infra/provisioning/bicep/deployment_stacks.go @@ -25,6 +25,17 @@ func (p *BicepProvider) deploymentStacksEnabled() bool { return featureManager.IsEnabled(azapi.FeatureDeploymentStacks) } +// deploymentProjectName returns the project identity used for ARM deployment tags and lookup. +// Deployment stacks retain their existing naming and matching behavior because changing a stack +// identity can conflict with resources still managed by the previous stack. +func (p *BicepProvider) deploymentProjectName() string { + if p.deploymentStacksEnabled() { + return "" + } + + return p.projectName +} + // hasActiveDeploymentStacksConfig reports whether an effective deployment-stacks configuration is // present (config supplied AND the alpha feature enabled). When true, the deployment-state shortcut // must be bypassed: the stacks deny/unmanage settings — including ${VAR}-resolved deny lists — can diff --git a/cli/azd/pkg/infra/provisioning/bicep/project_name.go b/cli/azd/pkg/infra/provisioning/bicep/project_name.go new file mode 100644 index 00000000000..8fe1c43fa56 --- /dev/null +++ b/cli/azd/pkg/infra/provisioning/bicep/project_name.go @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package bicep + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "strings" + + "github.com/braydonk/yaml" + + "github.com/azure/azure-dev/cli/azd/pkg/environment/azdcontext" +) + +func resolveProjectName(projectPath string) (string, error) { + absoluteProjectPath, err := filepath.Abs(projectPath) + if err != nil { + return "", fmt.Errorf("resolving project path: %w", err) + } + + for _, fileName := range azdcontext.ProjectFileNames { + projectFilePath := filepath.Join(absoluteProjectPath, fileName) + projectFile, err := os.ReadFile(projectFilePath) + if errors.Is(err, os.ErrNotExist) { + continue + } + if err != nil { + return "", fmt.Errorf("reading project file %q: %w", projectFilePath, err) + } + + var config struct { + Name string `yaml:"name"` + } + if err := yaml.Unmarshal(projectFile, &config); err != nil { + return "", fmt.Errorf("parsing project file %q: %w", projectFilePath, err) + } + + if projectName := strings.TrimSpace(config.Name); projectName != "" { + return projectName, nil + } + + break + } + + return filepath.Base(absoluteProjectPath), nil +} diff --git a/cli/azd/pkg/infra/provisioning/bicep/project_name_test.go b/cli/azd/pkg/infra/provisioning/bicep/project_name_test.go new file mode 100644 index 00000000000..b43944d6b87 --- /dev/null +++ b/cli/azd/pkg/infra/provisioning/bicep/project_name_test.go @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +package bicep + +import ( + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestResolveProjectName(t *testing.T) { + t.Run("uses azure yaml name", func(t *testing.T) { + projectDir := t.TempDir() + require.NoError(t, os.WriteFile( + filepath.Join(projectDir, "azure.yaml"), + []byte("name: configured-project\n"), + 0o600, + )) + + projectName, err := resolveProjectName(projectDir) + + require.NoError(t, err) + require.Equal(t, "configured-project", projectName) + }) + + t.Run("uses project directory when name is empty", func(t *testing.T) { + parentDir := t.TempDir() + projectDir := filepath.Join(parentDir, "folder-project") + require.NoError(t, os.Mkdir(projectDir, 0o700)) + require.NoError(t, os.WriteFile( + filepath.Join(projectDir, "azure.yaml"), + []byte("services: {}\n"), + 0o600, + )) + + projectName, err := resolveProjectName(projectDir) + + require.NoError(t, err) + require.Equal(t, "folder-project", projectName) + }) + + t.Run("uses project directory when azure yaml is absent", func(t *testing.T) { + parentDir := t.TempDir() + projectDir := filepath.Join(parentDir, "working-folder") + require.NoError(t, os.Mkdir(projectDir, 0o700)) + + projectName, err := resolveProjectName(projectDir) + + require.NoError(t, err) + require.Equal(t, "working-folder", projectName) + }) + + t.Run("prefers azure yaml over azure yml", func(t *testing.T) { + projectDir := t.TempDir() + require.NoError(t, os.WriteFile( + filepath.Join(projectDir, "azure.yaml"), + []byte("name: yaml-project\n"), + 0o600, + )) + require.NoError(t, os.WriteFile( + filepath.Join(projectDir, "azure.yml"), + []byte("name: yml-project\n"), + 0o600, + )) + + projectName, err := resolveProjectName(projectDir) + + require.NoError(t, err) + require.Equal(t, "yaml-project", projectName) + }) +} From a9d0cfbda0ecdbb7ca3af02fd80a5bf6fb9f0b04 Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Mon, 10 Aug 2026 14:24:29 +0000 Subject: [PATCH 2/5] fix CI validation for project deployment tags Avoid gosec taint-analysis blowups from debug logging and update the provision-state playback recording with the project tag emitted by the first upgraded deployment. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8f8fec20-564b-4f35-8720-6c8f88bc9f08 --- cli/azd/pkg/infra/deployment_manager.go | 51 +++++++++++-------- .../Test_CLI_ProvisionStateWithDown.yaml | 2 +- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/cli/azd/pkg/infra/deployment_manager.go b/cli/azd/pkg/infra/deployment_manager.go index dfb0ba0095e..d32f8cd7bf8 100644 --- a/cli/azd/pkg/infra/deployment_manager.go +++ b/cli/azd/pkg/infra/deployment_manager.go @@ -7,7 +7,6 @@ import ( "context" "errors" "fmt" - "log" "slices" "strings" @@ -118,27 +117,15 @@ func (dm *DeploymentManager) CompletedDeployments( continue } - projectTag, projectTagHas := deployment.Tags[azure.TagKeyAzdProjectName] - if projectName != "" && projectTagHas { - if projectTag == nil || *projectTag != projectName { - // A deployment explicitly owned by another project must never be - // considered by the legacy matching strategies below. - continue - } + projectTag, projectTagHas := deploymentTag(deployment, azure.TagKeyAzdProjectName) + if projectName != "" && projectTagHas && projectTag != projectName { + // A deployment explicitly owned by another project must never be + // considered by the legacy matching strategies below. + continue } - envTag, envTagHas := deployment.Tags[azure.TagKeyAzdEnvName] - layerTag, layerTagHas := deployment.Tags[azure.TagKeyAzdLayerName] - - tagsMatch := envTagHas && envTag != nil && *envTag == envName && - ((layerTagHas && layerTag != nil && *layerTag == layerName) || - (layerName == "" && !layerTagHas)) - - if tagsMatch { + if deploymentTagsMatch(deployment, envName, layerName) { if projectName == "" || projectTagHas { - log.Printf( - "completedDeployments: matched deployment '%s' using projectName: %s, envName: %s, layerName: %s", - deployment.Name, projectName, envName, layerName) return []*azapi.ResourceDeployment{deployment}, nil } @@ -161,9 +148,6 @@ func (dm *DeploymentManager) CompletedDeployments( } if legacyDeployment != nil { - log.Printf( - "completedDeployments: matched legacy deployment '%s' using envName: %s, layerName: %s", - legacyDeployment.Name, envName, layerName) return []*azapi.ResourceDeployment{legacyDeployment}, nil } @@ -173,3 +157,26 @@ func (dm *DeploymentManager) CompletedDeployments( return matchingDeployments, nil } + +func deploymentTag(deployment *azapi.ResourceDeployment, key string) (string, bool) { + value, hasTag := deployment.Tags[key] + if !hasTag || value == nil { + return "", false + } + + return *value, true +} + +func deploymentTagsMatch(deployment *azapi.ResourceDeployment, envName string, layerName string) bool { + envTag, hasEnvTag := deploymentTag(deployment, azure.TagKeyAzdEnvName) + if !hasEnvTag || envTag != envName { + return false + } + + layerTag, hasLayerTag := deploymentTag(deployment, azure.TagKeyAzdLayerName) + if hasLayerTag { + return layerTag == layerName + } + + return layerName == "" +} diff --git a/cli/azd/test/functional/testdata/recordings/Test_CLI_ProvisionStateWithDown.yaml b/cli/azd/test/functional/testdata/recordings/Test_CLI_ProvisionStateWithDown.yaml index d31a0d19e63..2a433334f60 100644 --- a/cli/azd/test/functional/testdata/recordings/Test_CLI_ProvisionStateWithDown.yaml +++ b/cli/azd/test/functional/testdata/recordings/Test_CLI_ProvisionStateWithDown.yaml @@ -863,7 +863,7 @@ interactions: trailer: {} content_length: 963717 uncompressed: false - body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d7f3516-1775755989","location":"eastus2","name":"azdtest-d7f3516-1775755989","properties":{"correlationId":"cb0b7914b98a4a7b9ef35b04586ed120","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516","resourceName":"rg-azdtest-d7f3516","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT26.5307597S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516/providers/Microsoft.Storage/storageAccounts/sthgngsljiw7i2k"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516/providers/Microsoft.Storage/storageAccounts/sthgngsljiw7i2k"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"sthgngsljiw7i2k"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:33:28Z"},"environmentName":{"type":"String","value":"azdtest-d7f3516"},"intTagValue":{"type":"Int","value":678},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:33:55.2995246Z"},"tags":{"azd-env-name":"azdtest-d7f3516","azd-layer-name":"","azd-provision-param-hash":"d965096b5a2205f3c41c9af8184c507340547db22c4a12560b723511d771a960"},"type":"Microsoft.Resources/deployments"}]}' + body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d7f3516-1775755989","location":"eastus2","name":"azdtest-d7f3516-1775755989","properties":{"correlationId":"cb0b7914b98a4a7b9ef35b04586ed120","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516","resourceName":"rg-azdtest-d7f3516","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT26.5307597S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516/providers/Microsoft.Storage/storageAccounts/sthgngsljiw7i2k"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d7f3516/providers/Microsoft.Storage/storageAccounts/sthgngsljiw7i2k"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"sthgngsljiw7i2k"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:33:28Z"},"environmentName":{"type":"String","value":"azdtest-d7f3516"},"intTagValue":{"type":"Int","value":678},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:33:55.2995246Z"},"tags":{"azd-env-name":"azdtest-d7f3516","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"d965096b5a2205f3c41c9af8184c507340547db22c4a12560b723511d771a960"},"type":"Microsoft.Resources/deployments"}]}' headers: Cache-Control: - no-cache From 80a28224e2b5043b62a69a4a5f3a1f18a29d1645 Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Tue, 11 Aug 2026 19:04:49 +0000 Subject: [PATCH 3/5] update provision state recording project tags Align all recorded standard deployment snapshots with the project identity tag emitted by upgraded provisions so cache checks replay the new ARM state. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8f8fec20-564b-4f35-8720-6c8f88bc9f08 --- .../recordings/Test_CLI_ProvisionState.yaml | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/cli/azd/test/functional/testdata/recordings/Test_CLI_ProvisionState.yaml b/cli/azd/test/functional/testdata/recordings/Test_CLI_ProvisionState.yaml index 1333f388e99..11f4cce1984 100644 --- a/cli/azd/test/functional/testdata/recordings/Test_CLI_ProvisionState.yaml +++ b/cli/azd/test/functional/testdata/recordings/Test_CLI_ProvisionState.yaml @@ -767,7 +767,7 @@ interactions: host: management.azure.com remote_addr: "" request_uri: "" - body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":678,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"}}' + body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":678,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"}}' form: {} headers: Accept: @@ -794,7 +794,7 @@ interactions: trailer: {} content_length: 2118 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:26:34Z"},"intTagValue":{"type":"Int","value":678},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:26:34.6130229Z","duration":"PT0S","correlationId":"5e2bd2c93b7371478638a64a0316a37c","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"validatedResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:26:34Z"},"intTagValue":{"type":"Int","value":678},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:26:34.6130229Z","duration":"PT0S","correlationId":"5e2bd2c93b7371478638a64a0316a37c","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"validatedResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache @@ -840,7 +840,7 @@ interactions: host: management.azure.com remote_addr: "" request_uri: "" - body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":678,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"}}' + body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":678,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"}}' form: {} headers: Accept: @@ -867,7 +867,7 @@ interactions: trailer: {} content_length: 1705 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:27:06Z"},"intTagValue":{"type":"Int","value":678},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2026-04-09T17:27:06.0709067Z","duration":"PT0.0003641S","correlationId":"5e2bd2c93b7371478638a64a0316a37c","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:27:06Z"},"intTagValue":{"type":"Int","value":678},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2026-04-09T17:27:06.0709067Z","duration":"PT0.0003641S","correlationId":"5e2bd2c93b7371478638a64a0316a37c","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}]}}' headers: Azure-Asyncoperation: - https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497/operationStatuses/08584258512593969770?api-version=2021-04-01&t=639113524269146704&c=MIIHxDCCBqygAwIBAgIRAJVEBjgK1fo3sgU5fQhfuLEwDQYJKoZIhvcNAQELBQAwNTEzMDEGA1UEAxMqQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgQ1VTIENBIDAxMB4XDTI2MDIxOTAxNTQ1MloXDTI2MDgxNDA3NTQ1MlowQDE-MDwGA1UEAxM1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrBg4PC5_iwaDF2jdesjMFYDUEQArU1ZMOWKClK9v-zEzpLQWRkuLaTlb8lurdKZw0tKz7W5RLJzZENJjHh0OhhqpDT2ZThQyqtKC54UFZKNQG3GiSWCDRMpQ-3lrvWe-BjJPOWPW3KZQM60VNR2Rn00yITDdvZb_VJvNHswjZkL6_AYx34fi1yqn4PLdF_r_70KohAv0GbYeaDOiK0TB6lrbCpFuKyMxhrj-wYuELoxavVYoiJ0HCRwkshCDYtmtZyL3HS03HSQ21aM3XgRL59a3jBRCEsTeotMe7Cq_ZxbJnx6b9o1dIoYNEUEdH30-hhyPgr8Iz74zrlD8qaCc1AgMBAAGjggTCMIIEvjCBnQYDVR0gBIGVMIGSMAwGCisGAQQBgjd7AQEwZgYKKwYBBAGCN3sCAjBYMFYGCCsGAQUFBwICMEoeSAAzADMAZQAwADEAOQAyADEALQA0AGQANgA0AC0ANABmADgAYwAtAGEAMAA1ADUALQA1AGIAZABhAGYAZgBkADUAZQAzADMAZDAMBgorBgEEAYI3ewMCMAwGCisGAQQBgjd7BAIwDAYDVR0TAQH_BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDVR0PAQH_BAQDAgWgMB0GA1UdDgQWBBTkGx50YKynp1NdIGMYkgerB7q2yjAfBgNVHSMEGDAWgBT85FoKL4UO50S5B3N44NREB6IZETCCAcoGA1UdHwSCAcEwggG9MG-gbaBrhmlodHRwOi8vcHJpbWFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvY2VudHJhbHVzL2NybHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvNDEvY3VycmVudC5jcmwwcaBvoG2Ga2h0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2NlbnRyYWx1cy9jcmxzL2NjbWVjZW50cmFsdXNwa2kvY2NtZWNlbnRyYWx1c2ljYTAxLzQxL2N1cnJlbnQuY3JsMGCgXqBchlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vY2VudHJhbHVzL2NybHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvNDEvY3VycmVudC5jcmwwdaBzoHGGb2h0dHA6Ly9jY21lY2VudHJhbHVzcGtpLmNlbnRyYWx1cy5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVjZW50cmFsdXNpY2EwMS80MS9jdXJyZW50LmNybDCCAc8GCCsGAQUFBwEBBIIBwTCCAb0wcgYIKwYBBQUHMAKGZmh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9jZW50cmFsdXMvY2FjZXJ0cy9jY21lY2VudHJhbHVzcGtpL2NjbWVjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjB0BggrBgEFBQcwAoZoaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvY2VudHJhbHVzL2NhY2VydHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvY2VydC5jZXIwYwYIKwYBBQUHMAKGV2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9jZW50cmFsdXMvY2FjZXJ0cy9jY21lY2VudHJhbHVzcGtpL2NjbWVjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjBsBggrBgEFBQcwAoZgaHR0cDovL2NjbWVjZW50cmFsdXNwa2kuY2VudHJhbHVzLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWNlbnRyYWx1c2ljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQBvLgW8TEYHqGbCuDyHhkYK1OKWuuU-hapduG-PB1saopKb2-3u4xS05HJWiktEtOs0r6T5LzFdUhBJ8UU44D4W_T3Klq11PFRfv2ODDWq8FX5HwydKsyc0MGHZHtz1h-25G7Ezns0HORN0VDZWkAHvwo6uncxlizCvilcKcLZN9hVZS0KGTU5emzjSB9TPjn9grassWmzhVKdiNTPPKrYsGZ-vmXnBtJed4O5aaQ3vqKRbNiq6EtQexCdqS7c3Y0UVsUkXkEK22TsTmQvHcyawH9BkLWYtNKQi85OT-g85ayYrtkjo5fakBErjJ0c-w3OQ9sa54Sxm3HniZyubzpe5&s=ESWtUtnc2BMjjSAqaQEEK9yFzmTm7CoKMzydrZS8hYf1LaF9BPGCMmHRWL-rW8ZxI-pcGg5wcBZygIOfhZPYeKN4ITI-0YE7zTkaoQV3x2W7zxwCO6fW0duHOu35estz0OuFXnINAdntIETKbD-e8uIq_f1PT4nolkWa62d8NhffiDAmc8K5gfKqNLS1er1Nmg2rm0bsWraTo4RFWhT_xosNAC7oV1q7-gCsy6sPazE5M3qeVzjYgBppJi4EQdrsDI_qL4prkkva2E4xVwkduuuc4YZuHfxIeE8-5uqTGetyWP3uL-3bhPNTHtaN8tsu71YMFbnVS0EClRQYUUWyFQ&h=-l9EaepUP8kpFJytOQObkgs0O_9mBrdqNlXKqFCdVFs @@ -1005,7 +1005,7 @@ interactions: trailer: {} content_length: 2746 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:27:06Z"},"intTagValue":{"type":"Int","value":678},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:27:34.2271356Z","duration":"PT28.1562289S","correlationId":"5e2bd2c93b7371478638a64a0316a37c","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:27:06Z"},"intTagValue":{"type":"Int","value":678},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:27:34.2271356Z","duration":"PT28.1562289S","correlationId":"5e2bd2c93b7371478638a64a0316a37c","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache @@ -1492,7 +1492,7 @@ interactions: trailer: {} content_length: 963717 uncompressed: false - body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","location":"eastus2","name":"azdtest-d8523ca-1775755497","properties":{"correlationId":"5e2bd2c93b7371478638a64a0316a37c","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceName":"rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT28.1562289S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:27:06Z"},"environmentName":{"type":"String","value":"azdtest-d8523ca"},"intTagValue":{"type":"Int","value":678},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:27:34.2271356Z"},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"type":"Microsoft.Resources/deployments"}]}' + body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","location":"eastus2","name":"azdtest-d8523ca-1775755497","properties":{"correlationId":"5e2bd2c93b7371478638a64a0316a37c","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceName":"rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT28.1562289S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:27:06Z"},"environmentName":{"type":"String","value":"azdtest-d8523ca"},"intTagValue":{"type":"Int","value":678},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:27:34.2271356Z"},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"type":"Microsoft.Resources/deployments"}]}' headers: Cache-Control: - no-cache @@ -2034,7 +2034,7 @@ interactions: trailer: {} content_length: 963717 uncompressed: false - body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","location":"eastus2","name":"azdtest-d8523ca-1775755497","properties":{"correlationId":"5e2bd2c93b7371478638a64a0316a37c","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceName":"rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT28.1562289S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:27:06Z"},"environmentName":{"type":"String","value":"azdtest-d8523ca"},"intTagValue":{"type":"Int","value":678},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:27:34.2271356Z"},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"type":"Microsoft.Resources/deployments"}]}' + body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","location":"eastus2","name":"azdtest-d8523ca-1775755497","properties":{"correlationId":"5e2bd2c93b7371478638a64a0316a37c","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceName":"rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT28.1562289S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:27:06Z"},"environmentName":{"type":"String","value":"azdtest-d8523ca"},"intTagValue":{"type":"Int","value":678},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:27:34.2271356Z"},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"60af96b86563855560236dadb71cb65762cccf78040e30b1961abb261380cd23"},"type":"Microsoft.Resources/deployments"}]}' headers: Cache-Control: - no-cache @@ -2419,7 +2419,7 @@ interactions: host: management.azure.com remote_addr: "" request_uri: "" - body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":1989,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"}}' + body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":1989,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"}}' form: {} headers: Accept: @@ -2446,7 +2446,7 @@ interactions: trailer: {} content_length: 2119 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:28:25Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:28:25.5187093Z","duration":"PT0S","correlationId":"57d95f5986a109044a5ef29ac008d0ed","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"validatedResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:28:25Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:28:25.5187093Z","duration":"PT0S","correlationId":"57d95f5986a109044a5ef29ac008d0ed","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"validatedResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache @@ -2492,7 +2492,7 @@ interactions: host: management.azure.com remote_addr: "" request_uri: "" - body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":1989,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"}}' + body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":1989,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"}}' form: {} headers: Accept: @@ -2519,7 +2519,7 @@ interactions: trailer: {} content_length: 1706 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:28:26Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2026-04-09T17:28:26.4605265Z","duration":"PT0.0008125S","correlationId":"57d95f5986a109044a5ef29ac008d0ed","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:28:26Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2026-04-09T17:28:26.4605265Z","duration":"PT0.0008125S","correlationId":"57d95f5986a109044a5ef29ac008d0ed","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}]}}' headers: Azure-Asyncoperation: - https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497/operationStatuses/08584258511790049931?api-version=2021-04-01&t=639113525068198960&c=MIIHxDCCBqygAwIBAgIRAJbrgketDbWHLEx1EpPCeH4wDQYJKoZIhvcNAQELBQAwNTEzMDEGA1UEAxMqQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgQ1VTIENBIDAxMB4XDTI2MDQwODAwMDQ1MloXDTI2MTAwMzA2MDQ1MlowQDE-MDwGA1UEAxM1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDT3FOWry_6qK0dbuwtMK4T4HuDo_lxyL6jb91_Fr1VWY_VRVB7zp7HCgghkwofjjGAbbdIqDseNKJdMcooubZaRzrViDXEgbnaN8vC-4cZ4fjDUhtZh80l4sEyp_iBCPcY7I-xDOLiz7i1vlpvCL7tA0iKHuk6AAPDQk4fPmFWUwUWR3SajkDmuQjTPVWhQyEOJVGJNf6hvyBKFjGuXqSOk8prQb8yn6q8TftPg2b9zjlfxfHQEZqdePVaY7VeW2ljF2sUmWsNvQikg3g_Zh9I6j0tT0DW51c8CoF8PrVglMgLQVrYCdAeE30Fi0vIiXCT0XOP-0RYInckGEJqDB8JAgMBAAGjggTCMIIEvjCBnQYDVR0gBIGVMIGSMAwGCisGAQQBgjd7AQEwZgYKKwYBBAGCN3sCAjBYMFYGCCsGAQUFBwICMEoeSAAzADMAZQAwADEAOQAyADEALQA0AGQANgA0AC0ANABmADgAYwAtAGEAMAA1ADUALQA1AGIAZABhAGYAZgBkADUAZQAzADMAZDAMBgorBgEEAYI3ewMCMAwGCisGAQQBgjd7BAIwDAYDVR0TAQH_BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDVR0PAQH_BAQDAgWgMB0GA1UdDgQWBBQZbVl_wKnmyxn5O2JcAqCDdVaL3zAfBgNVHSMEGDAWgBT85FoKL4UO50S5B3N44NREB6IZETCCAcoGA1UdHwSCAcEwggG9MG-gbaBrhmlodHRwOi8vcHJpbWFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvY2VudHJhbHVzL2NybHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvNTUvY3VycmVudC5jcmwwcaBvoG2Ga2h0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2NlbnRyYWx1cy9jcmxzL2NjbWVjZW50cmFsdXNwa2kvY2NtZWNlbnRyYWx1c2ljYTAxLzU1L2N1cnJlbnQuY3JsMGCgXqBchlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vY2VudHJhbHVzL2NybHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvNTUvY3VycmVudC5jcmwwdaBzoHGGb2h0dHA6Ly9jY21lY2VudHJhbHVzcGtpLmNlbnRyYWx1cy5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVjZW50cmFsdXNpY2EwMS81NS9jdXJyZW50LmNybDCCAc8GCCsGAQUFBwEBBIIBwTCCAb0wcgYIKwYBBQUHMAKGZmh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9jZW50cmFsdXMvY2FjZXJ0cy9jY21lY2VudHJhbHVzcGtpL2NjbWVjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjB0BggrBgEFBQcwAoZoaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvY2VudHJhbHVzL2NhY2VydHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvY2VydC5jZXIwYwYIKwYBBQUHMAKGV2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9jZW50cmFsdXMvY2FjZXJ0cy9jY21lY2VudHJhbHVzcGtpL2NjbWVjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjBsBggrBgEFBQcwAoZgaHR0cDovL2NjbWVjZW50cmFsdXNwa2kuY2VudHJhbHVzLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWNlbnRyYWx1c2ljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQCJKCm8sITuRyQTfwfcPh1P_Y_FIoUY5rZqcJP5tAOTOk1M7UmZj3IhXCBuZfq1T1jLPVgMAAzHcyE4XjPrHalXdgSI6SJ0gq8I0X_ncsTkhomAsA5RU_sucWZ9nWgbXX-QDJi_bM0mzxsaKErSi607X1BM3DqI2SNMMgk6r2Ez8s8_vw6HLIGw7rLHx2D1muwevYyZ0dVgJa-VHCrBoSBL_ytZIofR5WUtbICE_9YIipUuxbnIRg9Vo_fv4cLzx0uLFk32vRKMroJ_zkJageE_exU-hNqZc7DSsWkROInmq7mMmyBvpTZB-q5PrEYUJi9zJZserlQTQG1e7u-Z7UEl&s=lUP6DqyaQLpTRXyfEPe0rTOZnfx7_WRk7SSiDIaq7b_ABF8yVEC_oIXYh19PPcFBAYWYZ1Sp6Sj9GEG98lbk_fbiQJMDyP_JucPKtUYaAmR0rYudOpFQcgJvyd3rdYq3wRqCi9nWA4Az5ALfXUSJsRPromYu2Sc-5pSLjZTqYuuJwa_k8ziK-5a71dHSZGEZmjXmKaL9fqsx4nYqsAKsXX983n5AUu2zRSsqffZeM0qhbBdp5Eg_FE63ctlepqHvWF9_mFUlYqmEI2jLrThFtZiaBLyOpxfmeK4-9IdbSfKoeZxL3y1I0NB0Im2fdfZCU4BYOvEhtTu9_qhu2nWR8g&h=eoVkHFc5dfDfbE2Wso8Xoh3w0OzSgRMdCJuXyEIyL54 @@ -2657,7 +2657,7 @@ interactions: trailer: {} content_length: 2745 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:28:26Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:28:30.246602Z","duration":"PT3.7860755S","correlationId":"57d95f5986a109044a5ef29ac008d0ed","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:28:26Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:28:30.246602Z","duration":"PT3.7860755S","correlationId":"57d95f5986a109044a5ef29ac008d0ed","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache @@ -2864,7 +2864,7 @@ interactions: trailer: {} content_length: 963716 uncompressed: false - body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","location":"eastus2","name":"azdtest-d8523ca-1775755497","properties":{"correlationId":"57d95f5986a109044a5ef29ac008d0ed","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceName":"rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT3.7860755S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:28:26Z"},"environmentName":{"type":"String","value":"azdtest-d8523ca"},"intTagValue":{"type":"Int","value":1989},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:28:30.246602Z"},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"type":"Microsoft.Resources/deployments"}]}' + body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","location":"eastus2","name":"azdtest-d8523ca-1775755497","properties":{"correlationId":"57d95f5986a109044a5ef29ac008d0ed","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceName":"rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT3.7860755S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:28:26Z"},"environmentName":{"type":"String","value":"azdtest-d8523ca"},"intTagValue":{"type":"Int","value":1989},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:28:30.246602Z"},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"type":"Microsoft.Resources/deployments"}]}' headers: Cache-Control: - no-cache @@ -3383,7 +3383,7 @@ interactions: host: management.azure.com remote_addr: "" request_uri: "" - body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":1989,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"}}' + body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":1989,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"}}' form: {} headers: Accept: @@ -3410,7 +3410,7 @@ interactions: trailer: {} content_length: 2119 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:14Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:14.3440621Z","duration":"PT0S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"validatedResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:14Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:14.3440621Z","duration":"PT0S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"validatedResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache @@ -3456,7 +3456,7 @@ interactions: host: management.azure.com remote_addr: "" request_uri: "" - body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":1989,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"}}' + body: '{"location":"eastus2","properties":{"mode":"Incremental","parameters":{"boolTagValue":{"value":false,"reference":null},"environmentName":{"value":"azdtest-d8523ca","reference":null},"intTagValue":{"value":1989,"reference":null},"location":{"value":"eastus2","reference":null},"secureValue":{"value":"","reference":null}},"template":{"$schema":"https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#","languageVersion":"2.0","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"4488259817381607990"}},"parameters":{"environmentName":{"type":"string","minLength":1,"maxLength":64,"metadata":{"description":"Name of the the environment which is used to generate a short unique hash used in all resources."}},"location":{"type":"string","metadata":{"description":"Primary location for all resources"}},"deleteAfterTime":{"type":"string","defaultValue":"[dateTimeAdd(utcNow(''o''), ''PT1H'')]","metadata":{"description":"A time to mark on created resource groups, so they can be cleaned up via an automated process."}},"intTagValue":{"type":"int","metadata":{"description":"Test parameter for int-typed values."}},"boolTagValue":{"type":"bool","metadata":{"description":"Test parameter for bool-typed values."}},"secureValue":{"type":"securestring","metadata":{"description":"Test parameter for secureString-typed values."}},"secureObject":{"type":"secureObject","defaultValue":{},"metadata":{"description":"Test parameter for secureObject-typed values."}},"arrayValue":{"type":"array","defaultValue":[],"metadata":{"description":"Test parameter for array-typed values from environment variable."}},"objectValue":{"type":"object","defaultValue":{},"metadata":{"description":"Test parameter for object-typed values from environment variable."}},"nullableParam":{"type":"string","nullable":true}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]","DeleteAfter":"[parameters(''deleteAfterTime'')]","IntTag":"[string(parameters(''intTagValue''))]","BoolTag":"[string(parameters(''boolTagValue''))]","SecureTag":"[parameters(''secureValue'')]","SecureObjectTag":"[string(parameters(''secureObject''))]","ArrayTag":"[string(parameters(''arrayValue''))]","ObjectTag":"[string(parameters(''objectValue''))]"}},"resources":{"rg":{"type":"Microsoft.Resources/resourceGroups","apiVersion":"2021-04-01","name":"[format(''rg-{0}'', parameters(''environmentName''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]"},"resources":{"type":"Microsoft.Resources/deployments","apiVersion":"2025-04-01","name":"resources","resourceGroup":"[format(''rg-{0}'', parameters(''environmentName''))]","properties":{"expressionEvaluationOptions":{"scope":"inner"},"mode":"Incremental","parameters":{"environmentName":{"value":"[parameters(''environmentName'')]"},"location":{"value":"[parameters(''location'')]"}},"template":{"$schema":"https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#","contentVersion":"1.0.0.0","metadata":{"_generator":{"name":"bicep","version":"0.42.1.51946","templateHash":"6602963692698314495"}},"parameters":{"environmentName":{"type":"string"},"location":{"type":"string","defaultValue":"[resourceGroup().location]"}},"variables":{"tags":{"azd-env-name":"[parameters(''environmentName'')]"},"resourceToken":"[toLower(uniqueString(subscription().id, parameters(''environmentName''), parameters(''location'')))]"},"resources":[{"type":"Microsoft.Storage/storageAccounts","apiVersion":"2022-05-01","name":"[format(''st{0}'', variables(''resourceToken''))]","location":"[parameters(''location'')]","tags":"[variables(''tags'')]","kind":"StorageV2","sku":{"name":"Standard_LRS"},"properties":{"allowSharedKeyAccess":false}}],"outputs":{"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[resourceId(''Microsoft.Storage/storageAccounts'', format(''st{0}'', variables(''resourceToken'')))]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[format(''st{0}'', variables(''resourceToken''))]"}}}},"dependsOn":["rg"]}},"outputs":{"nullableParamOutput":{"type":"string","nullable":true,"value":"[parameters(''nullableParam'')]"},"AZURE_STORAGE_ACCOUNT_ID":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_ID.value]"},"AZURE_STORAGE_ACCOUNT_NAME":{"type":"string","value":"[reference(''resources'').outputs.AZURE_STORAGE_ACCOUNT_NAME.value]"},"STRING":{"type":"string","value":"abc"},"BOOL":{"type":"bool","value":true},"INT":{"type":"int","value":1234},"ARRAY":{"type":"array","value":[true,"abc",1234]},"ARRAY_INT":{"type":"array","value":[1,2,3]},"ARRAY_STRING":{"type":"array","value":["elem1","elem2","elem3"]},"OBJECT":{"type":"object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"ARRAY_PARAM":{"type":"array","value":"[parameters(''arrayValue'')]"},"OBJECT_PARAM":{"type":"object","value":"[parameters(''objectValue'')]"}}}},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"}}' form: {} headers: Accept: @@ -3483,7 +3483,7 @@ interactions: trailer: {} content_length: 1706 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2026-04-09T17:29:15.1998036Z","duration":"PT0.0005849S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String","value":null}},"mode":"Incremental","provisioningState":"Accepted","timestamp":"2026-04-09T17:29:15.1998036Z","duration":"PT0.0005849S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}]}}' headers: Azure-Asyncoperation: - https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497/operationStatuses/08584258511302697360?api-version=2021-04-01&t=639113525559185513&c=MIIHxDCCBqygAwIBAgIRAJVEBjgK1fo3sgU5fQhfuLEwDQYJKoZIhvcNAQELBQAwNTEzMDEGA1UEAxMqQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgQ1VTIENBIDAxMB4XDTI2MDIxOTAxNTQ1MloXDTI2MDgxNDA3NTQ1MlowQDE-MDwGA1UEAxM1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrBg4PC5_iwaDF2jdesjMFYDUEQArU1ZMOWKClK9v-zEzpLQWRkuLaTlb8lurdKZw0tKz7W5RLJzZENJjHh0OhhqpDT2ZThQyqtKC54UFZKNQG3GiSWCDRMpQ-3lrvWe-BjJPOWPW3KZQM60VNR2Rn00yITDdvZb_VJvNHswjZkL6_AYx34fi1yqn4PLdF_r_70KohAv0GbYeaDOiK0TB6lrbCpFuKyMxhrj-wYuELoxavVYoiJ0HCRwkshCDYtmtZyL3HS03HSQ21aM3XgRL59a3jBRCEsTeotMe7Cq_ZxbJnx6b9o1dIoYNEUEdH30-hhyPgr8Iz74zrlD8qaCc1AgMBAAGjggTCMIIEvjCBnQYDVR0gBIGVMIGSMAwGCisGAQQBgjd7AQEwZgYKKwYBBAGCN3sCAjBYMFYGCCsGAQUFBwICMEoeSAAzADMAZQAwADEAOQAyADEALQA0AGQANgA0AC0ANABmADgAYwAtAGEAMAA1ADUALQA1AGIAZABhAGYAZgBkADUAZQAzADMAZDAMBgorBgEEAYI3ewMCMAwGCisGAQQBgjd7BAIwDAYDVR0TAQH_BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDVR0PAQH_BAQDAgWgMB0GA1UdDgQWBBTkGx50YKynp1NdIGMYkgerB7q2yjAfBgNVHSMEGDAWgBT85FoKL4UO50S5B3N44NREB6IZETCCAcoGA1UdHwSCAcEwggG9MG-gbaBrhmlodHRwOi8vcHJpbWFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvY2VudHJhbHVzL2NybHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvNDEvY3VycmVudC5jcmwwcaBvoG2Ga2h0dHA6Ly9zZWNvbmRhcnktY2RuLnBraS5jb3JlLndpbmRvd3MubmV0L2NlbnRyYWx1cy9jcmxzL2NjbWVjZW50cmFsdXNwa2kvY2NtZWNlbnRyYWx1c2ljYTAxLzQxL2N1cnJlbnQuY3JsMGCgXqBchlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vY2VudHJhbHVzL2NybHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvNDEvY3VycmVudC5jcmwwdaBzoHGGb2h0dHA6Ly9jY21lY2VudHJhbHVzcGtpLmNlbnRyYWx1cy5wa2kuY29yZS53aW5kb3dzLm5ldC9jZXJ0aWZpY2F0ZUF1dGhvcml0aWVzL2NjbWVjZW50cmFsdXNpY2EwMS80MS9jdXJyZW50LmNybDCCAc8GCCsGAQUFBwEBBIIBwTCCAb0wcgYIKwYBBQUHMAKGZmh0dHA6Ly9wcmltYXJ5LWNkbi5wa2kuY29yZS53aW5kb3dzLm5ldC9jZW50cmFsdXMvY2FjZXJ0cy9jY21lY2VudHJhbHVzcGtpL2NjbWVjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjB0BggrBgEFBQcwAoZoaHR0cDovL3NlY29uZGFyeS1jZG4ucGtpLmNvcmUud2luZG93cy5uZXQvY2VudHJhbHVzL2NhY2VydHMvY2NtZWNlbnRyYWx1c3BraS9jY21lY2VudHJhbHVzaWNhMDEvY2VydC5jZXIwYwYIKwYBBQUHMAKGV2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9jZW50cmFsdXMvY2FjZXJ0cy9jY21lY2VudHJhbHVzcGtpL2NjbWVjZW50cmFsdXNpY2EwMS9jZXJ0LmNlcjBsBggrBgEFBQcwAoZgaHR0cDovL2NjbWVjZW50cmFsdXNwa2kuY2VudHJhbHVzLnBraS5jb3JlLndpbmRvd3MubmV0L2NlcnRpZmljYXRlQXV0aG9yaXRpZXMvY2NtZWNlbnRyYWx1c2ljYTAxMA0GCSqGSIb3DQEBCwUAA4IBAQBvLgW8TEYHqGbCuDyHhkYK1OKWuuU-hapduG-PB1saopKb2-3u4xS05HJWiktEtOs0r6T5LzFdUhBJ8UU44D4W_T3Klq11PFRfv2ODDWq8FX5HwydKsyc0MGHZHtz1h-25G7Ezns0HORN0VDZWkAHvwo6uncxlizCvilcKcLZN9hVZS0KGTU5emzjSB9TPjn9grassWmzhVKdiNTPPKrYsGZ-vmXnBtJed4O5aaQ3vqKRbNiq6EtQexCdqS7c3Y0UVsUkXkEK22TsTmQvHcyawH9BkLWYtNKQi85OT-g85ayYrtkjo5fakBErjJ0c-w3OQ9sa54Sxm3HniZyubzpe5&s=O6Fn1Ja7J719rnN3E5PBn3HSHE1PJ0y16KDmL5bVVh6aWaACCYJSl8D_H_TQClZqi-XoQ3oGObR70MaG_cEnWiOsmIiy-mr1FCf963jKwKFbuG4Zm5A7Ax70pAyfQkDE2G5bV_FNgRl1MUgjMOq7bTzR1f6w2KdGJhRfjbcf_NgyDBlrv859yE5h6nUfl800t4yk6b0YiBTXy6UjapB1FKv5mPAOQgDpZXkjCMli_W71V9pLk-Sz8FIc156AECxT5LAJ64UDdHUMySE1eGEMZFDDm_W7T0Un65HGsajMQsnvj3Fa2JnPBNfYtgRTtN7opigeTNuBul5yGDlsYBo6MA&h=frKz4huM5BjT3-OWxTG3iFxzGXM80FX2x4TlKKuNHQk @@ -3621,7 +3621,7 @@ interactions: trailer: {} content_length: 2746 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:20.9885603Z","duration":"PT5.7887567S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:20.9885603Z","duration":"PT5.7887567S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache @@ -3759,7 +3759,7 @@ interactions: trailer: {} content_length: 963717 uncompressed: false - body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","location":"eastus2","name":"azdtest-d8523ca-1775755497","properties":{"correlationId":"2661974aff233f61177418c4ae8d0d93","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceName":"rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT5.7887567S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"environmentName":{"type":"String","value":"azdtest-d8523ca"},"intTagValue":{"type":"Int","value":1989},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:29:20.9885603Z"},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"type":"Microsoft.Resources/deployments"}]}' + body: '{"nextLink":"https://management.azure.com/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/?api-version=2021-04-01\u0026%24skiptoken=1c%2fBbsIwDAbgZ2nORUqAw9RbRzypjLgksTX1iKaOFVAqbUVtivruW4d4iJ1s%2bf8P%2fm7ivQ1dE66HrmkDtec6fIvsJiD3xH45r6Eeuv3hq2vmxmsdRSZU8pRYgmhktRDpX8O1%2fSNTapkg47PRx%2bhOZiyhigjbjYGit%2bQ06nwwdJSWebT0%2beEUljsv%2b1LzGrWVpTbSkBmROJqTUSYqIolbywMxvHg%2fttFpWCFVKxyL3wkLMaUiZ08u3xX5%2fLzIwvVyScUbeAJ25R4elzvtX8lmxAZw1rG%2fO6bpBw%3d%3d","value":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","location":"eastus2","name":"azdtest-d8523ca-1775755497","properties":{"correlationId":"2661974aff233f61177418c4ae8d0d93","dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceName":"rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceName":"resources","resourceType":"Microsoft.Resources/deployments"}],"duration":"PT5.7887567S","mode":"Incremental","outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}],"outputs":{"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_PARAM":{"type":"Array","value":[]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"array":{"type":"Array","value":[true,"abc",1234]},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"nullableParamOutput":{"type":"String"},"objecT_PARAM":{"type":"Object","value":{}},"object":{"type":"Object","value":{"array":[true,"abc",1234],"foo":"bar","inner":{"foo":"bar"}}},"string":{"type":"String","value":"abc"}},"parameters":{"arrayValue":{"type":"Array","value":[]},"boolTagValue":{"type":"Bool","value":false},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"environmentName":{"type":"String","value":"azdtest-d8523ca"},"intTagValue":{"type":"Int","value":1989},"location":{"type":"String","value":"eastus2"},"nullableParam":{"type":"String"},"objectValue":{"type":"Object","value":{}},"secureObject":{"type":"SecureObject"},"secureValue":{"type":"SecureString"}},"providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"locations":["eastus2"],"resourceType":"resourceGroups"},{"locations":[null],"resourceType":"deployments"}]}],"provisioningState":"Succeeded","templateHash":"4488259817381607990","timestamp":"2026-04-09T17:29:20.9885603Z"},"tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"type":"Microsoft.Resources/deployments"}]}' headers: Cache-Control: - no-cache @@ -4096,7 +4096,7 @@ interactions: trailer: {} content_length: 2746 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:20.9885603Z","duration":"PT5.7887567S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:20.9885603Z","duration":"PT5.7887567S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache @@ -4234,7 +4234,7 @@ interactions: trailer: {} content_length: 2746 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:20.9885603Z","duration":"PT5.7887567S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:20.9885603Z","duration":"PT5.7887567S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache @@ -4508,7 +4508,7 @@ interactions: trailer: {} content_length: 2746 uncompressed: false - body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:20.9885603Z","duration":"PT5.7887567S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' + body: '{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/providers/Microsoft.Resources/deployments/azdtest-d8523ca-1775755497","name":"azdtest-d8523ca-1775755497","type":"Microsoft.Resources/deployments","location":"eastus2","tags":{"azd-env-name":"azdtest-d8523ca","azd-layer-name":"","azd-project-name":"storage","azd-provision-param-hash":"b676ab94e9976509b3bfc3567d6e6a0554438a67f84a1768d943a85d2a5224b0"},"properties":{"templateHash":"4488259817381607990","parameters":{"environmentName":{"type":"String","value":"azdtest-d8523ca"},"location":{"type":"String","value":"eastus2"},"deleteAfterTime":{"type":"String","value":"2026-04-09T18:29:15Z"},"intTagValue":{"type":"Int","value":1989},"boolTagValue":{"type":"Bool","value":false},"secureValue":{"type":"SecureString"},"secureObject":{"type":"SecureObject"},"arrayValue":{"type":"Array","value":[]},"objectValue":{"type":"Object","value":{}},"nullableParam":{"type":"String"}},"mode":"Incremental","provisioningState":"Succeeded","timestamp":"2026-04-09T17:29:20.9885603Z","duration":"PT5.7887567S","correlationId":"2661974aff233f61177418c4ae8d0d93","providers":[{"namespace":"Microsoft.Resources","resourceTypes":[{"resourceType":"resourceGroups","locations":["eastus2"]},{"resourceType":"deployments","locations":[null]}]}],"dependencies":[{"dependsOn":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca","resourceType":"Microsoft.Resources/resourceGroups","resourceName":"rg-azdtest-d8523ca"}],"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Resources/deployments/resources","resourceType":"Microsoft.Resources/deployments","resourceName":"resources"}],"outputs":{"nullableParamOutput":{"type":"String"},"azurE_STORAGE_ACCOUNT_ID":{"type":"String","value":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"},"azurE_STORAGE_ACCOUNT_NAME":{"type":"String","value":"stbcsg4z42wdpnk"},"string":{"type":"String","value":"abc"},"bool":{"type":"Bool","value":true},"int":{"type":"Int","value":1234},"array":{"type":"Array","value":[true,"abc",1234]},"arraY_INT":{"type":"Array","value":[1,2,3]},"arraY_STRING":{"type":"Array","value":["elem1","elem2","elem3"]},"object":{"type":"Object","value":{"foo":"bar","inner":{"foo":"bar"},"array":[true,"abc",1234]}},"arraY_PARAM":{"type":"Array","value":[]},"objecT_PARAM":{"type":"Object","value":{}}},"outputResources":[{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca"},{"id":"/subscriptions/5ca082f3-38f2-4bb0-b0a4-c401184ae3a8/resourceGroups/rg-azdtest-d8523ca/providers/Microsoft.Storage/storageAccounts/stbcsg4z42wdpnk"}]}}' headers: Cache-Control: - no-cache From 3a7329c80d3af897aee71e78a669761e8b7f8a81 Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Tue, 11 Aug 2026 20:55:59 +0000 Subject: [PATCH 4/5] test deployment stack project identity Cover the intentional ownership behavior for standard deployments and deployment stacks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8f8fec20-564b-4f35-8720-6c8f88bc9f08 --- .../bicep/deployment_stacks_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cli/azd/pkg/infra/provisioning/bicep/deployment_stacks_test.go b/cli/azd/pkg/infra/provisioning/bicep/deployment_stacks_test.go index 75295ed576f..6271ac4a9a9 100644 --- a/cli/azd/pkg/infra/provisioning/bicep/deployment_stacks_test.go +++ b/cli/azd/pkg/infra/provisioning/bicep/deployment_stacks_test.go @@ -39,6 +39,25 @@ func enableDeploymentStacks(t *testing.T) { t.Setenv("AZD_ALPHA_ENABLE_DEPLOYMENT_STACKS", "true") } +func TestDeploymentProjectName(t *testing.T) { + t.Run("standard deployment uses project identity", func(t *testing.T) { + mockContext := mocks.NewMockContext(t.Context()) + provider := createBicepProviderWithEnv(t, mockContext, minimalArmTemplate(), nil) + provider.projectName = "project-a" + + require.Equal(t, "project-a", provider.deploymentProjectName()) + }) + + t.Run("deployment stacks omit project identity", func(t *testing.T) { + enableDeploymentStacks(t) + mockContext := mocks.NewMockContext(t.Context()) + provider := createBicepProviderWithEnv(t, mockContext, minimalArmTemplate(), nil) + provider.projectName = "project-a" + + require.Empty(t, provider.deploymentProjectName()) + }) +} + func TestResolveDeploymentStacksMap_Nil(t *testing.T) { mockContext := mocks.NewMockContext(t.Context()) provider := createBicepProviderWithEnv(t, mockContext, minimalArmTemplate(), nil) From 2fbe58ae10ced2edbba1f5bf714ffb5b8bfdf7df Mon Sep 17 00:00:00 2001 From: Victor Vazquez Date: Tue, 11 Aug 2026 21:03:50 +0000 Subject: [PATCH 5/5] bound project deployment tag identity Preserve short project names and deterministically hash names that exceed ARM tag value limits. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8f8fec20-564b-4f35-8720-6c8f88bc9f08 --- .../infra/provisioning/bicep/project_name.go | 18 +++++++++++-- .../provisioning/bicep/project_name_test.go | 27 +++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/cli/azd/pkg/infra/provisioning/bicep/project_name.go b/cli/azd/pkg/infra/provisioning/bicep/project_name.go index 8fe1c43fa56..f5c523bc09b 100644 --- a/cli/azd/pkg/infra/provisioning/bicep/project_name.go +++ b/cli/azd/pkg/infra/provisioning/bicep/project_name.go @@ -4,6 +4,7 @@ package bicep import ( + "crypto/sha256" "errors" "fmt" "os" @@ -15,6 +16,8 @@ import ( "github.com/azure/azure-dev/cli/azd/pkg/environment/azdcontext" ) +const maxProjectTagValueLength = 256 + func resolveProjectName(projectPath string) (string, error) { absoluteProjectPath, err := filepath.Abs(projectPath) if err != nil { @@ -39,11 +42,22 @@ func resolveProjectName(projectPath string) (string, error) { } if projectName := strings.TrimSpace(config.Name); projectName != "" { - return projectName, nil + return normalizeProjectName(projectName), nil } break } - return filepath.Base(absoluteProjectPath), nil + return normalizeProjectName(filepath.Base(absoluteProjectPath)), nil +} + +func normalizeProjectName(projectName string) string { + projectNameRunes := []rune(projectName) + if len(projectNameRunes) <= maxProjectTagValueLength { + return projectName + } + + hash := fmt.Sprintf("%x", sha256.Sum256([]byte(projectName))) + prefixLength := maxProjectTagValueLength - len(hash) - 1 + return string(projectNameRunes[:prefixLength]) + "-" + hash } diff --git a/cli/azd/pkg/infra/provisioning/bicep/project_name_test.go b/cli/azd/pkg/infra/provisioning/bicep/project_name_test.go index b43944d6b87..3e6966e9c54 100644 --- a/cli/azd/pkg/infra/provisioning/bicep/project_name_test.go +++ b/cli/azd/pkg/infra/provisioning/bicep/project_name_test.go @@ -6,7 +6,9 @@ package bicep import ( "os" "path/filepath" + "strings" "testing" + "unicode/utf8" "github.com/stretchr/testify/require" ) @@ -71,4 +73,29 @@ func TestResolveProjectName(t *testing.T) { require.NoError(t, err) require.Equal(t, "yaml-project", projectName) }) + + t.Run("preserves project name within ARM tag limit", func(t *testing.T) { + projectName := strings.Repeat("a", maxProjectTagValueLength) + + require.Equal(t, projectName, normalizeProjectName(projectName)) + }) + + t.Run("shortens long project name deterministically", func(t *testing.T) { + projectName := strings.Repeat("a", maxProjectTagValueLength+1) + + normalized := normalizeProjectName(projectName) + + require.Len(t, []rune(normalized), maxProjectTagValueLength) + require.Equal(t, normalized, normalizeProjectName(projectName)) + require.NotEqual(t, normalized, normalizeProjectName(projectName+"b")) + }) + + t.Run("does not split unicode project name", func(t *testing.T) { + projectName := strings.Repeat("界", maxProjectTagValueLength+1) + + normalized := normalizeProjectName(projectName) + + require.Len(t, []rune(normalized), maxProjectTagValueLength) + require.True(t, utf8.ValidString(normalized)) + }) }