Add Az.PlanetaryComputer module for GeoCatalog CRUD operations#29345
Conversation
| Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status. |
There was a problem hiding this comment.
Pull request overview
Adds a new AutoRest-generated Az.PlanetaryComputer module to Azure PowerShell, exposing GeoCatalog CRUD cmdlets for the PlanetaryComputer (orbitalplanetarycomputer) resource provider.
Changes:
- Introduced the
Az.PlanetaryComputermodule packaging project/manifest and initial changelog. - Added generated cmdlet help markdown for GeoCatalog cmdlets (Get/New/Update/Remove).
- Added Pester tests and JSON recordings for GeoCatalog CRUD operations, plus supporting test utilities and AutoRest configuration.
Reviewed changes
Copilot reviewed 41 out of 43 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/PlanetaryComputer/PlanetaryComputer/Properties/AssemblyInfo.cs | Assembly metadata for the module packaging project |
| src/PlanetaryComputer/PlanetaryComputer/PlanetaryComputer.csproj | SDK-style csproj wiring module name/output + copies manifest/help |
| src/PlanetaryComputer/PlanetaryComputer/help/Update-AzPlanetaryComputerGeoCatalog.md | User-facing help markdown for Update cmdlet |
| src/PlanetaryComputer/PlanetaryComputer/help/Remove-AzPlanetaryComputerGeoCatalog.md | User-facing help markdown for Remove cmdlet |
| src/PlanetaryComputer/PlanetaryComputer/help/New-AzPlanetaryComputerGeoCatalog.md | User-facing help markdown for New cmdlet |
| src/PlanetaryComputer/PlanetaryComputer/help/Get-AzPlanetaryComputerGeoCatalog.md | User-facing help markdown for Get cmdlet |
| src/PlanetaryComputer/PlanetaryComputer/help/Az.PlanetaryComputer.md | Help index page for the module |
| src/PlanetaryComputer/PlanetaryComputer/ChangeLog.md | Module changelog with initial 0.1.0 entry |
| src/PlanetaryComputer/PlanetaryComputer/Az.PlanetaryComputer.psd1 | Module manifest exporting GeoCatalog cmdlets and wiring nested AutoRest module |
| src/PlanetaryComputer/PlanetaryComputer.sln | Solution updated to include PlanetaryComputer projects |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/utils/Unprotect-SecureString.ps1 | Utility to convert SecureString to plaintext (shared pattern across AutoRest modules) |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 | Test helper to resolve subscription ID safely in playback |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/utils.ps1 | Test env setup helpers (names/rg creation, env.json persistence) |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/Update-AzPlanetaryComputerGeoCatalog.Tests.ps1 | Pester tests for Update cmdlet |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/Update-AzPlanetaryComputerGeoCatalog.Recording.json | Playback recording for Update tests |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/Remove-AzPlanetaryComputerGeoCatalog.Tests.ps1 | Pester tests for Remove cmdlet |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/README.md | Test folder documentation |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/New-AzPlanetaryComputerGeoCatalog.Tests.ps1 | Pester tests for New cmdlet |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/loadEnv.ps1 | Loads env.json/localEnv.json for tests |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/Get-AzPlanetaryComputerGeoCatalog.Tests.ps1 | Pester tests for Get cmdlet |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/Get-AzPlanetaryComputerGeoCatalog.Recording.json | Playback recording for Get tests |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/test/env.json | Playback-safe test configuration values |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/resources/README.md | Resources folder documentation |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/README.md | AutoRest module README + pinned spec commit + directives |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/Properties/AssemblyInfo.cs | Assembly metadata for generated AutoRest project |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/how-to.md | Module development/build/test workflow doc |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/generate-info.json | Generation metadata |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/examples/Update-AzPlanetaryComputerGeoCatalog.md | Example stub source for Update help |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/examples/Remove-AzPlanetaryComputerGeoCatalog.md | Example stub source for Remove help |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/examples/New-AzPlanetaryComputerGeoCatalog.md | Example stub source for New help |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/examples/Get-AzPlanetaryComputerGeoCatalog.md | Example stub source for Get help |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/docs/Update-AzPlanetaryComputerGeoCatalog.md | Generated reference docs for Update |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/docs/Remove-AzPlanetaryComputerGeoCatalog.md | Generated reference docs for Remove |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/docs/README.md | Docs folder description |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/docs/New-AzPlanetaryComputerGeoCatalog.md | Generated reference docs for New |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/docs/Get-AzPlanetaryComputerGeoCatalog.md | Generated reference docs for Get |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/docs/Az.PlanetaryComputer.md | Generated docs index for the module |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/custom/README.md | Customization folder documentation |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/custom/Az.PlanetaryComputer.custom.psm1 | Custom module loader/exports for generated + custom cmdlets |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/.gitignore | AutoRest module gitignore (standard layout) |
| src/PlanetaryComputer/PlanetaryComputer.Autorest/.gitattributes | Text normalization settings |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
- AutoRest-generated PowerShell module for orbitalplanetarycomputer RP - API version: 2026-04-15 (stable) - Cmdlets: Get/New/Update/Remove-AzPlanetaryComputerGeoCatalog - Includes test recordings (playback verified, 6 passed, 0 failed) - Sensitive data scrubbed from recordings
…ness, add help examples - Fix loadEnv.ps1: use Join-Path with separate args instead of single-quoted string, and use $envFilePath consistently for Get-Content - New test: initialize $result before polling loop, add null guard assertion - Remove test: narrow catch to 404/NotFound errors, rethrow unexpected exceptions - Fill in EXAMPLES sections in all 4 help markdown files with real examples
3105e4c to
e18c58e
Compare
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
…platform consistency
| ## Upcoming Release | ||
|
|
||
| ## Version 0.1.0 |
There was a problem hiding this comment.
The "## Upcoming Release" section is empty, but this PR introduces a new user-facing module/cmdlets. Add a bullet entry under "Upcoming Release" describing the new Az.PlanetaryComputer GeoCatalog CRUD cmdlets (and any notable behavior) from the user's perspective.
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PlanetaryComputer", "PlanetaryComputer\PlanetaryComputer.csproj", "{F718C673-41B1-4EFF-8BC7-FAF7741EE1CC}" | ||
| EndProject | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PlanetaryComputer.Autorest", "PlanetaryComputer.Autorest", "{CCAA561C-53D6-0103-ACD1-BC39C0BA997B}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.PlanetaryComputer", "..\..\generated\PlanetaryComputer\PlanetaryComputer.Autorest\Az.PlanetaryComputer.csproj", "{57B31766-F6A8-4733-AE78-C039C83B53E6}" | ||
| EndProject |
There was a problem hiding this comment.
The solution references ..\..\generated\PlanetaryComputer\PlanetaryComputer.Autorest\Az.PlanetaryComputer.csproj, but there is no corresponding generated/PlanetaryComputer/PlanetaryComputer.Autorest directory/project in the repo. This will break opening/building the solution and likely CI builds that expect generated artifacts to be checked in. Add the missing generated project/artifacts under generated/PlanetaryComputer/PlanetaryComputer.Autorest (consistent with other modules like ComputeLimit) or update the project path to the correct checked-in location.
| RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '5.3.3'; }) | ||
|
|
||
| # Assemblies that must be loaded prior to importing this module | ||
| RequiredAssemblies = 'PlanetaryComputer.Autorest/bin/Az.PlanetaryComputer.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 = 'PlanetaryComputer.Autorest/Az.PlanetaryComputer.format.ps1xml' | ||
|
|
||
| # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess | ||
| NestedModules = @('PlanetaryComputer.Autorest/Az.PlanetaryComputer.psm1') | ||
|
|
There was a problem hiding this comment.
This manifest points to runtime artifacts under PlanetaryComputer.Autorest/ (e.g., Az.PlanetaryComputer.psm1, Az.PlanetaryComputer.format.ps1xml, and bin/Az.PlanetaryComputer.private.dll), but those files/folders are not present in the repo for this module. Without the checked-in generated PlanetaryComputer.Autorest output (typically under generated/<Module>/<Module>.Autorest), Import-Module Az.PlanetaryComputer will fail. Ensure the generated AutoRest output (psm1/ps1xml/private dll build inputs) is added and the paths here match the checked-in/generated layout used by other modules.
| - Additional information about change #1 | ||
| --> | ||
| ## Upcoming Release | ||
| * Added `Get-AzPlanetaryComputerGeoCatalog`, `New-AzPlanetaryComputerGeoCatalog`, `Update-AzPlanetaryComputerGeoCatalog`, and `Remove-AzPlanetaryComputerGeoCatalog` cmdlets for GeoCatalog CRUD operations. |
There was a problem hiding this comment.
please move line 21 to line 25, no need to edit upcoming release section for the first release
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PlanetaryComputer.Autorest", "PlanetaryComputer.Autorest", "{CCAA561C-53D6-0103-ACD1-BC39C0BA997B}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.PlanetaryComputer", "..\..\generated\PlanetaryComputer\PlanetaryComputer.Autorest\Az.PlanetaryComputer.csproj", "{57B31766-F6A8-4733-AE78-C039C83B53E6}" | ||
| EndProject |
There was a problem hiding this comment.
The solution references the generated project at ..\..\generated\PlanetaryComputer\PlanetaryComputer.Autorest\Az.PlanetaryComputer.csproj, but there is no corresponding generated/PlanetaryComputer folder in the repo. This will break solution load/build unless the generated project is added (or the path updated to the correct location).
| ## Version 0.1.0 | ||
| * First release for module Az.PlanetaryComputer | ||
| * Added `Get-AzPlanetaryComputerGeoCatalog`, `New-AzPlanetaryComputerGeoCatalog`, `Update-AzPlanetaryComputerGeoCatalog`, and `Remove-AzPlanetaryComputerGeoCatalog` cmdlets for GeoCatalog CRUD operations. |
There was a problem hiding this comment.
Changelog entries should be written for Azure PowerShell users; “CRUD” is a developer acronym and is unclear for many users. Consider replacing it with “create, get, update, and remove operations” (or similar) to keep the entry user-focused.
Description
Mandatory Checklist
Please choose the target release of Azure PowerShell. (⚠️ Target release is a different concept from API readiness. Please click below links for details.)
Check this box to confirm: I have read the Submitting Changes section of
CONTRIBUTING.mdand reviewed the following information:ChangeLog.mdfile(s) appropriatelysrc/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.## Upcoming Releaseheader in the past tense.ChangeLog.mdif no new release is required, such as fixing test case only.