Skip to content

Add new support for Relationships module #29412

Open
meghanagupta95 wants to merge 14 commits intoAzure:mainfrom
meghanagupta95:meghanag/relationships-pp
Open

Add new support for Relationships module #29412
meghanagupta95 wants to merge 14 commits intoAzure:mainfrom
meghanagupta95:meghanag/relationships-pp

Conversation

@meghanagupta95
Copy link
Copy Markdown
Member

Description

This PR adds a new module for the resource type 'Relationships' using the code generation method. This is required as part of our move to public preview.

Mandatory Checklist

  • SHOULD update ChangeLog.md file(s) appropriately
    • Update src/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.
      • A snippet outlining the change(s) made in the PR should be written under the ## Upcoming Release header in the past tense.
    • Should not change ChangeLog.md if no new release is required, such as fixing test case only.
  • SHOULD regenerate markdown help files if there is cmdlet API change. Instruction
  • SHOULD have proper test coverage for changes in pull request.
  • SHOULD NOT adjust version of module manually in pull request

Copilot AI review requested due to automatic review settings April 16, 2026 03:40
@azure-client-tools-bot-prd
Copy link
Copy Markdown

Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status.

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@VeryEarly
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
Successfully started running 3 pipeline(s).

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Az.Relationships PowerShell module (code-generated/AutoRest-style) intended for public preview, including initial cmdlet help content, module packaging assets, and Pester tests.

Changes:

  • Added Az.Relationships wrapper module assets (manifest, csproj, changelog, help stubs).
  • Added Relationships.Autorest configuration, docs/examples stubs, and Pester tests scaffolding.
  • Registered the new module name in tools/CreateMappings_rules.json.

Reviewed changes

Copilot reviewed 59 out of 59 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tools/CreateMappings_rules.json Registers the new Relationships module mapping.
src/Relationships/Relationships/help/Get-AzRelationshipsDependencyOfRelationship.md Adds cmdlet help markdown (currently template placeholders).
src/Relationships/Relationships/help/Get-AzRelationshipsServiceGroupMemberRelationship.md Adds cmdlet help markdown (currently template placeholders).
src/Relationships/Relationships/help/New-AzRelationshipsDependencyOfRelationship.md Adds cmdlet help markdown (currently template placeholders).
src/Relationships/Relationships/help/New-AzRelationshipsServiceGroupMemberRelationship.md Adds cmdlet help markdown (currently template placeholders).
src/Relationships/Relationships/help/Remove-AzRelationshipsDependencyOfRelationship.md Adds cmdlet help markdown (currently template placeholders).
src/Relationships/Relationships/help/Remove-AzRelationshipsServiceGroupMemberRelationship.md Adds cmdlet help markdown (currently template placeholders).
src/Relationships/Relationships/help/Update-AzRelationshipsDependencyOfRelationship.md Adds cmdlet help markdown (currently template placeholders).
src/Relationships/Relationships/help/Update-AzRelationshipsServiceGroupMemberRelationship.md Adds cmdlet help markdown (currently template placeholders).
src/Relationships/Relationships/Relationships.csproj Introduces the wrapper project to package manifest/help.
src/Relationships/Relationships/Properties/AssemblyInfo.cs Adds wrapper assembly metadata/versioning.
src/Relationships/Relationships/ChangeLog.md Adds module changelog scaffold (Upcoming Release currently empty).
src/Relationships/Relationships/Az.Relationships.psd1 Adds module manifest pointing to AutoRest-generated nested module assets.
src/Relationships/Relationships.sln Adds solution file referencing the AutoRest project (path currently suspect).
src/Relationships/Relationships.Autorest/utils/Unprotect-SecureString.ps1 Adds standard utility script used by many AutoRest modules.
src/Relationships/Relationships.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 Adds test-safe subscription ID helper.
src/Relationships/Relationships.Autorest/tspconfig.yaml Adds TypeSpec PowerShell emitter configuration and directives.
src/Relationships/Relationships.Autorest/tsp-location.yaml Adds a TypeSpec location tracker file (currently machine-specific).
src/Relationships/Relationships.Autorest/test/utils.ps1 Adds Pester test environment setup/cleanup helpers.
src/Relationships/Relationships.Autorest/test/localEnv.json Adds a live test environment capture (should not be committed).
src/Relationships/Relationships.Autorest/test/loadEnv.ps1 Adds test environment loader script.
src/Relationships/Relationships.Autorest/test/env.json Adds checked-in test env template.
src/Relationships/Relationships.Autorest/test/Update-AzRelationshipsServiceGroupMemberRelationship.Tests.ps1 Adds Pester coverage for Update cmdlet (SG member relationship).
src/Relationships/Relationships.Autorest/test/Update-AzRelationshipsDependencyOfRelationship.Tests.ps1 Adds Pester coverage for Update cmdlet (dependencyOf).
src/Relationships/Relationships.Autorest/test/Remove-AzRelationshipsServiceGroupMemberRelationship.Tests.ps1 Adds Pester coverage for Remove cmdlet (SG member relationship).
src/Relationships/Relationships.Autorest/test/Remove-AzRelationshipsDependencyOfRelationship.Tests.ps1 Adds Pester coverage for Remove cmdlet (dependencyOf).
src/Relationships/Relationships.Autorest/test/README.md Adds test folder documentation.
src/Relationships/Relationships.Autorest/test/New-AzRelationshipsServiceGroupMemberRelationship.Tests.ps1 Adds Pester coverage for New cmdlet (SG member relationship).
src/Relationships/Relationships.Autorest/test/New-AzRelationshipsDependencyOfRelationship.Tests.ps1 Adds Pester coverage for New cmdlet (dependencyOf).
src/Relationships/Relationships.Autorest/test/Get-AzRelationshipsServiceGroupMemberRelationship.Tests.ps1 Adds Pester coverage for Get cmdlet (SG member relationship).
src/Relationships/Relationships.Autorest/test/Get-AzRelationshipsDependencyOfRelationship.Tests.ps1 Adds Pester coverage for Get cmdlet (dependencyOf).
src/Relationships/Relationships.Autorest/resources/README.md Adds resources folder documentation.
src/Relationships/Relationships.Autorest/how-to.md Adds module development how-to documentation.
src/Relationships/Relationships.Autorest/examples/Get-AzRelationshipsServiceGroupMemberRelationship.md Adds example stub content (currently placeholders).
src/Relationships/Relationships.Autorest/examples/Get-AzRelationshipsDependencyOfRelationship.md Adds example stub content (currently placeholders).
src/Relationships/Relationships.Autorest/examples/New-AzRelationshipsServiceGroupMemberRelationship.md Adds example stub content (currently placeholders).
src/Relationships/Relationships.Autorest/examples/New-AzRelationshipsDependencyOfRelationship.md Adds example stub content (currently placeholders).
src/Relationships/Relationships.Autorest/examples/Remove-AzRelationshipsServiceGroupMemberRelationship.md Adds example stub content (currently placeholders).
src/Relationships/Relationships.Autorest/examples/Remove-AzRelationshipsDependencyOfRelationship.md Adds example stub content (currently placeholders).
src/Relationships/Relationships.Autorest/examples/Update-AzRelationshipsServiceGroupMemberRelationship.md Adds example stub content (currently placeholders).
src/Relationships/Relationships.Autorest/examples/Update-AzRelationshipsDependencyOfRelationship.md Adds example stub content (currently placeholders).
src/Relationships/Relationships.Autorest/docs/Get-AzRelationshipsServiceGroupMemberRelationship.md Adds generated docs output (currently placeholders).
src/Relationships/Relationships.Autorest/docs/Get-AzRelationshipsDependencyOfRelationship.md Adds generated docs output (currently placeholders).
src/Relationships/Relationships.Autorest/docs/New-AzRelationshipsServiceGroupMemberRelationship.md Adds generated docs output (currently placeholders).
src/Relationships/Relationships.Autorest/docs/New-AzRelationshipsDependencyOfRelationship.md Adds generated docs output (currently placeholders).
src/Relationships/Relationships.Autorest/docs/Remove-AzRelationshipsServiceGroupMemberRelationship.md Adds generated docs output (currently placeholders).
src/Relationships/Relationships.Autorest/docs/Remove-AzRelationshipsDependencyOfRelationship.md Adds generated docs output (currently placeholders).
src/Relationships/Relationships.Autorest/docs/Update-AzRelationshipsServiceGroupMemberRelationship.md Adds generated docs output (currently placeholders).
src/Relationships/Relationships.Autorest/docs/Update-AzRelationshipsDependencyOfRelationship.md Adds generated docs output (currently placeholders).
src/Relationships/Relationships.Autorest/docs/README.md Adds docs folder README.
src/Relationships/Relationships.Autorest/docs/Az.Relationships.md Adds module index doc for cmdlets.
src/Relationships/Relationships.Autorest/custom/README.md Adds guidance for custom cmdlets.
src/Relationships/Relationships.Autorest/custom/Az.Relationships.custom.psm1 Adds custom module loader/export scaffold.
src/Relationships/Relationships.Autorest/UX/Microsoft.Relationships/serviceGroupMember.json Adds UX command metadata for SG member relationship.
src/Relationships/Relationships.Autorest/UX/Microsoft.Relationships/dependencyOf.json Adds UX command metadata for dependencyOf relationship.
src/Relationships/Relationships.Autorest/README.md Adds AutoRest module README scaffold.
src/Relationships/Relationships.Autorest/Properties/AssemblyInfo.cs Adds AutoRest assembly metadata/versioning.
src/Relationships/Relationships.Autorest/.gitignore Adds standard AutoRest output ignores.
src/Relationships/Relationships.Autorest/.gitattributes Adds text normalization attributes.

Comment on lines +57 to +69
RequiredAssemblies = 'Relationships.Autorest/bin/Az.Relationships.private.dll'

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
FormatsToProcess = 'Relationships.Autorest/Az.Relationships.format.ps1xml'

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
NestedModules = @('Relationships.Autorest/Az.Relationships.psm1')
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The module manifest references nested module assets under Relationships.Autorest/ (private DLL, format file, and Az.Relationships.psm1), but there is no corresponding generated output folder in the repo (e.g., generated/Relationships/Relationships.Autorest/ like other AutoRest modules). As-is, importing/building Az.Relationships will fail because these referenced files don't exist. Please add/commit the generated AutoRest project output (or update the manifest paths to where the generated artifacts actually live).

Copilot uses AI. Check for mistakes.
Comment on lines +20 to +23
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Relationships.Autorest", "Relationships.Autorest", "{70B5B518-732F-B4FA-61D8-EC0023A4A294}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.Relationships", "Relationships.Autorest\Az.Relationships.csproj", "{6F458F0C-D22D-48F9-A5AA-4AD0751760F9}"
EndProject
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This solution references Relationships.Autorest\Az.Relationships.csproj, but that project file isn't present in the repository. Other modules typically reference the committed generated project under generated/<Module>/<Module>.Autorest/. Please update the .sln to point at the correct (committed) generated project location, or ensure the referenced .csproj is included as part of the PR.

Copilot uses AI. Check for mistakes.
Comment thread src/Relationships/Relationships.Autorest/tsp-location.yaml Outdated
Comment thread src/Relationships/Relationships.Autorest/test/localEnv.json Outdated
Comment on lines +20 to +23
## Upcoming Release

## Version 0.1.0
* First preview release for module Az.Relationships
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ## Upcoming Release section is empty. Since this PR introduces a new public preview module, please add a user-facing entry under ## Upcoming Release (past tense) describing the new Az.Relationships cmdlets/module surface.

Copilot generated this review using guidance from repository custom instructions.
@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@meghanagupta95
Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Commenter does not have sufficient privileges for PR 29412 in repo Azure/azure-powershell

@meghanagupta95
Copy link
Copy Markdown
Member Author

Copilot AI review requested due to automatic review settings April 16, 2026 06:02
@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@meghanagupta95 meghanagupta95 force-pushed the meghanag/relationships-pp branch from f3f5433 to aa1cd6a Compare April 16, 2026 06:12
@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@VeryEarly
Copy link
Copy Markdown
Collaborator

/azp run

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 59 out of 59 changed files in this pull request and generated 17 comments.

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
Successfully started running 3 pipeline(s).

@meghanagupta95 meghanagupta95 force-pushed the meghanag/relationships-pp branch from aa1cd6a to 973a7b5 Compare April 16, 2026 06:40
@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines:
4 pipeline(s) require an authorized user to comment /azp run to run.

@meghanagupta95
Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Commenter does not have sufficient privileges for PR 29412 in repo Azure/azure-powershell

@meghanagupta95
Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Commenter does not have sufficient privileges for PR 29412 in repo Azure/azure-powershell

@VeryEarly
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown
Contributor

Azure Pipelines successfully started running 3 pipeline(s).

@meghanagupta95 meghanagupta95 marked this pull request as ready for review April 17, 2026 13:58
Copilot AI review requested due to automatic review settings April 17, 2026 13:58
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 60 out of 60 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (5)

src/Relationships/Relationships/ChangeLog.md:1

  • The changelog template indicates entries should be added under ## Upcoming Release, and prior releases should follow a dated header format (e.g., ## YYYY.MM.DD - Version X.Y.Z). Right now Upcoming Release is empty and Version 0.1.0 lacks the date portion—please either record this PR’s change under Upcoming Release (past tense) or convert ## Version 0.1.0 to the template’s dated release header.
    src/Relationships/Relationships.Autorest/test/utils.ps1:1
  • Removing resource groups without -Force (and/or explicitly setting -Confirm:$false) can prompt for confirmation, which can hang CI/test runs. Update these cleanup calls to be non-interactive (and ideally resilient), e.g., add -Force and -Confirm:$false so automated test environments won’t block.
    src/Relationships/Relationships.Autorest/test/Remove-AzRelationshipsDependencyOfRelationship.Tests.ps1:1
  • The help text states deletes are asynchronous; asserting that a subsequent Get-* immediately throws can be flaky in live/record runs due to eventual consistency. Consider adding a bounded retry/poll loop (with sleeps skipped in playback), or waiting until the resource is actually gone before asserting.
    src/Relationships/Relationships.Autorest/test/Update-AzRelationshipsDependencyOfRelationship.Tests.ps1:1
  • This update test doesn’t validate that the update actually changes anything—TargetId is set to $env.DepTargetId, which is also used when creating the relationship in setupEnv. To cover update behavior, update to a different valid target and assert on the returned (or subsequently fetched) target property instead of only asserting .Name.
    src/Relationships/Relationships.Autorest/utils/Unprotect-SecureString.ps1:1
  • Shipping a utility that converts SecureString to plaintext increases the risk of accidental secret disclosure (e.g., logging/telemetry/pipeline output). If this is only intended for local/dev/test use, consider ensuring it is not packaged with the module and not dot-sourced/exported; otherwise add clear warnings/guardrails (and ensure it’s not invoked by default anywhere).

- `-Pack`: After building, packages the module into a `.nupkg`.
- `-Code`: After building, opens a VSCode window with the module's directory and runs (see `-Run`) the module.
- `-Release`: Builds the module in `Release` configuration (as opposed to `Debug` configuration).
- `-NoDocs`: Supresses writing the documentation markdown files as part of the cmdlet exporting process.
Copy link

Copilot AI Apr 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct spelling of 'Supresses' to 'Suppresses'.

Suggested change
- `-NoDocs`: Supresses writing the documentation markdown files as part of the cmdlet exporting process.
- `-NoDocs`: Suppresses writing the documentation markdown files as part of the cmdlet exporting process.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants