Skip to content

New Cost Control APIs for api-version 2026-11-15-preview - #47666

Merged
Darren Cohen (dargilco) merged 23 commits into
swagger-agent/CogSvc-2026-11-15-preview-typespecfrom
dargilco/cost-control-2026-11-15-preview
Nov 3, 2026
Merged

Darren Cohen (dargilco) merged 23 commits into
swagger-agent/CogSvc-2026-11-15-preview-typespecfrom
dargilco/cost-control-2026-11-15-preview

Conversation

@dargilco

@dargilco Darren Cohen (dargilco) commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Purpose of this PR

What's the purpose of this PR? Check the specific option that applies. This is mandatory!

  • New resource provider.
  • New API version for an existing resource provider. (If API spec is not defined in TypeSpec, the PR should have been created in adherence to OpenAPI specs PR creation guidance).
  • Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
  • Update existing version to fix OpenAPI spec quality issues in S360.
  • Convert existing OpenAPI spec to TypeSpec spec (do not combine this with implementing changes for a new API version).
  • Other, please clarify:
    • Align the in-development 2026-11-15-preview Foundry Cost Control contract with the service implementation on the target release branch.

The Foundry Cost Control APIs in 2026-09-15-preview were for private preview with gated access to the service. For public preview they were redesigned to align with Azure Budget APIs. This PR replaces that private-preview surface with the new 2026-11-15-preview APIs.

This PR reflects the service implementation PR through commit ee957f5fd7a5225987e1e1add4e8c974d7bda1bb. The original TypeSpec changes were based on 2faf2dec3f5628a31b41c204c8462d6201f8edcf.

The final service-contract alignment in this PR reflects service PR 17743186 through source commit 287048f035efdd0dce8efde953a59468044a3d45. For 2026-11-15-preview, public Cost Control account/project GET and HEAD operations and project LIST return 200 on success; read-time If-None-Match parameters and 304 responses are removed. ETags and write preconditions remain unchanged.

@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Next Steps to Merge

Next steps that must be taken to merge this PR:

  • ❌ The suppressions added to the AutoRest config files (README.mds) require review. Refer to step 1 in the PR workflow diagram, or to step 3, depending on the kind of suppression you did.

  • ❌ This PR introduced or changed TypeSpec suppressions that require review.

    Check the TypeSpec suppressions requiring review comment on this PR for the list of suppressions, their justifications, and source locations.

    Reviewers: apply the typespec-suppressions-approved label after confirming every justification is acceptable.

Important checks have failed. As of today they are not blocking this PR, but in near future they may.

Addressing the following failures is highly recommended:

  • ⚠️ The check named Swagger BreakingChange has failed. To unblock this PR, follow the process at aka.ms/brch.

Comment generated by summarize-checks workflow run.

@github-actions github-actions Bot added the typespec-suppressions-review-required PR reviewer must review all reported typespec suppressions label Oct 27, 2026
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

TypeSpec suppressions requiring review

Status: ❌ Approval required — 5 suppressions

This PR adds or updates the TypeSpec suppressions listed below. Suppressions are strongly discouraged — they bypass linter rules that protect API quality and consistency. Authors should avoid adding new suppressions and prefer fixing the underlying issue; reviewers should approve only when there is a clear, compelling justification and no reasonable alternative. Review each linked rule and source location, then apply typespec-suppressions-approved only if every justification is acceptable. The Status column shows ✅ once the label is applied and ❌ while approval is pending.

New suppressions (4)

StatusRuleSourceJustification
❌@azure-tools/typespec-azure-resource-manager/arm-no-record
Don't use Record types for ARM resources.
CostControl.tsp#L100Notification names are customer-defined dictionary keys; each value has an explicit notification schema.
❌@azure-tools/typespec-azure-resource-manager/arm-no-record
Don't use Record types for ARM resources.
CostControl.tsp#L348Action names are customer-defined dictionary keys; each value has an explicit blocking-action schema.
❌@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property
Check for invalid resource envelope properties.
CostControl.tsp#L32The service returns the lowercase 'etag' envelope property rather than 'eTag'.
❌@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property
Check for invalid resource envelope properties.
CostControl.tsp#L53CogSvc uses lowercase 'etag' field name — EntityTagProperty uses 'eTag'

Changed suppressions (1)

StatusRuleSourcePrevious justificationNew justification
❌@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state
Check for properly configured provisioningState property.
CostControl.tsp#L63Cost controls are synchronously persisted proxy resources and the service contract does not expose provisioningState.Cost controls are synchronously persisted proxy resources; the service does not expose provisioningState.

For an overview of TypeSpec linting rules click here.
For a mapping from ARM lintdiff rules to corresponding TypeSpec linting rules click here.

💬 Have feedback on the TypeSpec suppression flow? Let us know.

@github-actions github-actions Bot added resource-manager TypeSpec Authored with TypeSpec labels Oct 27, 2026
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

API Change Check

APIView identified API level changes in this PR and created the following API reviews

Language API Review for Package
Go sdk/resourcemanager/cognitiveservices/armcognitiveservices
JavaScript @azure/arm-cognitiveservices
Python azure-mgmt-cognitiveservices
Java com.azure.resourcemanager:azure-resourcemanager-cognitiveservices

Comment generated by After APIView workflow run.

@dargilco Darren Cohen (dargilco) changed the title New Cost Control APIs for 2026-11-15-preview New Cost Control APIs for api-version 2026-11-15-preview Oct 27, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Match service PR 17743186 at 287048f035efdd0dce8efde953a59468044a3d45: remove read-time If-None-Match and 304 responses from the November preview Cost Control contract while preserving ETags and write preconditions.

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

Copy link
Copy Markdown
Member Author

/asp run

@fmabroukmsft fmabroukmsft left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Reviewed commit d70a090f864f26415bb8a4ec8202bcae7e1142f4.
Approval labels observed: none.

@dargilco
Darren Cohen (dargilco) merged commit f0daaaf into swagger-agent/CogSvc-2026-11-15-preview-typespec Nov 3, 2026
29 of 40 checks passed
@dargilco
Darren Cohen (dargilco) deleted the dargilco/cost-control-2026-11-15-preview branch November 3, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Cognitive Services resource-manager SuppressionReviewRequired TypeSpec Authored with TypeSpec typespec-suppressions-review-required PR reviewer must review all reported typespec suppressions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants