Skip to content

Add minimal Microsoft.Barbie RP#7

Closed
vikeshi26 wants to merge 241 commits into
mainfrom
add-barbie-rp
Closed

Add minimal Microsoft.Barbie RP#7
vikeshi26 wants to merge 241 commits into
mainfrom
add-barbie-rp

Conversation

@vikeshi26

Copy link
Copy Markdown
Owner

Introduces a new Microsoft.Barbie resource provider. No lease file included.

tejaswiMinnu and others added 26 commits March 17, 2026 13:13
@vikeshi26 vikeshi26 closed this in 83e727b May 20, 2026
tejaswiMinnu pushed a commit that referenced this pull request May 26, 2026
…icrosoft.ComputeBulkActions (Azure#43268)

* Add LaunchBulkInstancesOperation resource

* Fix CI: format + suppressions for LintDiff/BreakingChange/TypeSpec Validation

* Refactor: move VM attribute types to reusable vmAttributes.tsp

* Fix readme.md YAML: escape colon in ParameterNotUsingCommonTypes suppression reason

* Move LaunchBulkInstancesOperation to new 2026-06-06-preview api-version

* Rename interface BulkActions -> LaunchBulkInstancesOperation; rename example files; prettier-format

* Fix nested resource URL: use bare LaunchBulkInstancesOperationEnvelope for @listsResource; use LaunchBulkInstancesOperationId for child path

* Address review findings #1, #5, #6, #7: orphan example cleanup, version-scoped suppressions, internally consistent VMAttributes example

* Add createdTime to LaunchBulkInstancesOperationProperties (read-only) to match Kronox DTO

* Address ARM API review feedback on PR Azure#43268

Consolidates the LaunchBulkInstancesOperation surface into the existing
2026-04-06-preview API version (no separate 2026-06-06-preview) and applies
the blocking review findings from the ARM API reviewer agent.

Findings addressed:
- EX-RESOURCE-ID: set id/name/type to the canonical
  Microsoft.Compute/locations/launchBulkInstancesOperations envelope across
  all LaunchBulkInstancesOperation_* example response bodies.
- EX-LRO-HEADERS: rename location header to PascalCase Location, replace
  contoso.com placeholders with realistic management.azure.com polling URLs.
- RPC-Async-V1-11: emit both Location and Azure-AsyncOperation headers on
  Cancel and Delete 202 responses by setting
  LroHeaders = ArmCombinedLroHeaders & RetryAfterHeader in TSP.
- Section 10A (Suppression Scoping): add a where: JSONPath array to the
  ParameterNotUsingCommonTypes suppression so it covers both the new
  launchBulkInstancesOperations paths and the existing virtualMachinesBulk*
  paths after the location parameter rename.
- EX-DESCRIPTIVE-VALUES (ListVirtualMachines): fix the example so the
  operation name parameter no longer duplicates the subscriptionId, and use
  realistic VM name/type/filter/nextLink values.
- Section 1.6 (Resource Type Naming): rename the routes.tsp alias key
  locationparameter -> location so all bulk-action POST paths use the same
  parameter name; update example payloads accordingly.
- EX-TITLE: drop the duplicate "- generated by [MaximumSet] rule" suffix from
  BulkCreate_MinimumSet_Gen.json and BulkVdiFlexCreate_MinimumSet_Gen.json
  titles.
- SEC-SECRET-DETECT: replace the customData base64 string that decoded to
  "export SENSITIVE=1" in BulkReimage_MaximumSet_Gen.json with a clearly-fake
  placeholder.

Cleanup:
- Drop the redundant @added(Microsoft.Compute.Versions.\2026-04-06-preview\)
  decorators across vmAttributes.tsp, launchBulkInstancesOperation.tsp, and
  models.tsp now that 2026-04-06-preview is the only version (decorators are
  no-ops on a single-version service and the generated swagger is
  byte-identical without them).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Match source RP: drop Azure-AsyncOperation header from Cancel/Delete 202

Reverts the prior LroHeaders = ArmCombinedLroHeaders override on the
LaunchBulkInstancesOperation Cancel (POST) and Delete (DELETE) operations
so the emitted 202 headers exactly match the source
Microsoft.ComputeBulkActions/2026-02-01-preview RP: Location + Retry-After
only. CreateOrUpdate PUT continues to emit Azure-AsyncOperation + Retry-After
on 201 via the default azure-async-operation final-state-via mode, which
also matches the source RP.

This re-introduces the RPC-Async-V1-11 lint observation on Cancel/Delete
async POST/DELETE, which is acceptable because the same pattern is
already in production under Microsoft.ComputeBulkActions/2026-02-01-preview
with the corresponding PostResponseCodes suppression.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix Operations_List example: replace data-action/internal payload

Replaces the Operations_List_MaximumSet_Gen.json example payload, which had
isDataAction: true, actionType: "Internal", and a placeholder nextLink, with
a representative control-plane operation:

  - name: Microsoft.Compute/locations/launchBulkInstancesOperations/read
  - isDataAction: false
  - display provider/resource/operation/description matching the real read op
  - origin: "user,system"
  - realistic nextLink URL with api-version and an opaque page token

Addresses ARM reviewer feedback (EX-PAYLOAD / RPC-Operations-V1): the
operations listing endpoint is itself a control-plane read, so its sample
payload should describe a control-plane operation rather than a hidden
data-action operation.

Applied to both the canonical preview/2026-04-06-preview/examples/ folder
and the mirrored examples/2026-04-06-preview/ folder.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Restore @added decorators in models.tsp

Restores the 9 \@added(Microsoft.Compute.Versions.\2026-04-06-preview\)\
decorators on the ExecuteCreateFlex unions/models in models.tsp that existed
on origin/main and were inadvertently removed during the
"drop redundant @added decorators" cleanup in the consolidation commit.

These decorators are no-ops for a single-version service today, but they
are present on origin/main and removing them produced unnecessary churn in
the PR diff. Keeping them aligned with origin/main minimizes the diff and
preserves the existing version-gating pattern for when a second API version
is introduced later.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Annotate BulkactionVMExtension protected settings as secrets

Add @secret decorator to BulkactionVMExtensionProperties.protectedSettings
and .protectedSettingsFromKeyVault. The autorest emitter now produces
x-ms-secret: true and format: password on both properties in the generated
swagger, satisfying ARM Section 7.2 / SEC-SECRET-DETECT.

Addresses reviewer finding #20 (EXISTING). The same omission exists in the
source Microsoft.ComputeBulkActions RP and will be fixed there in a
coordinated follow-up.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix ModelValidation: remove protectedSettings from example responses

Removed protectedSettings and protectedSettingsFromKeyVault from response
payloads in 4 LaunchBulkInstancesOperation example files (canon + mirror).
These autogenerated keys triggered SECRET_PROPERTY errors after the
@secret annotation was added in f3a470d. Request bodies still carry
them; only responses were corrected, since a service must never return
secrets.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Change GetOperationStatus URL to launchBulkInstancesOperations/asyncOperations/{asyncOperationId}

Replaces the previous .../locations/{location}/operations/{id} path with
.../locations/{location}/launchBulkInstancesOperations/asyncOperations/{asyncOperationId}
to match the service contract. The TSP operation now uses an explicit
@route since the literal launchBulkInstancesOperations collection segment
cannot be injected via ArmResourceRead. Updated path parameter from id
to asyncOperationId. Also updated Azure-AsyncOperation and Location
header URLs in the CreateOrUpdate, Cancel, and Delete examples.

Validated locally with tsp compile --warn-as-error, azsdk
run_typespec_validation (Succeeded), and oav validate-example.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add PathForNestedResource suppression for GetOperationStatus path

The new GetOperationStatus path
.../locations/{location}/launchBulkInstancesOperations/asyncOperations/{asyncOperationId}
intentionally uses a fixed launchBulkInstancesOperations collection segment
followed by asyncOperations/{id} to match the service-side routing contract.
This is the documented exception case for the PathForNestedResource rule.

Also updates the existing ParameterNotUsingCommonTypes suppression entry
to point at the new path since the previous /operations/{id} path no
longer exists.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <copilot@microsoft.com>
Co-authored-by: Yash Khandelwal (from Dev Box) <yakhande@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

4 participants