Repository navigation
[PoC] Demonstrate metadata needed for spending-policy operations - #1247
Draft
Concepta Njolima (ConceptaNjolima) wants to merge 1 commit into
Conversation
Make the seven targeted spending policy operations discoverable for draft PoC review. This is not a production-ready correction. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3182eba0-4459-445a-92ee-f0a9a580fadd
|
Concepta Njolima (@ConceptaNjolima) please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
Contributor License AgreementContribution License AgreementThis Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”),
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft for AGS/Graph DevX guidance—not ready to merge.
Purpose and scope
Demonstrate the metadata needed to generate seven spending-policy operations, and expose the remaining converter/contract questions before proposing a production correction.
This PoC adds narrowly scoped beta preprocessing for:
microsoft.graph.costManagementRoot/spendingPolicies:Org.OData.Validation.V1.DerivedTypeConstraintlisting bothmicrosoft.graph.allUsersSpendingPolicyandmicrosoft.graph.selectedGroupsSpendingPolicy.microsoft.graph.selectedGroupsSpendingPolicy/assignedGroups:Org.OData.Capabilities.V1.NavigationRestrictions/Referenceable=true.microsoft.graph.costManagementAlertSetting/recipients: the same property-scoped reference annotation.The reference rules use the existing
ReferenceableRestrictionsTemplatewhen no restriction exists, add a missing field to an existing inline/out-of-line record, and preserve explicit existing values and unrelated annotations. They run only for beta when capability annotations are retained. The change does not edit production metadata snapshots, converter settings/source, permissions, flags, tenant-balance behavior, or reporting APIs.Public precedents: microsoftgraph/msgraph-metadata#473 and microsoftgraph/msgraph-metadata#792.
Observed Graph Explorer route coverage
All seven methods below are generated from the actual source transform using the checked-in
conversion-settings/graphexplorer.json. They are absent in the original baseline. The repository's key names are retained;/betais not a path prefix./copilot/costManagement/spendingPolicies/{spendingPolicy-id}/microsoft.graph.selectedGroupsSpendingPolicy/assignedGroups/copilot/costManagement/spendingPolicies/{spendingPolicy-id}/microsoft.graph.selectedGroupsSpendingPolicy/assignedGroups/$ref/copilot/costManagement/spendingPolicies/{spendingPolicy-id}/microsoft.graph.selectedGroupsSpendingPolicy/assignedGroups/$ref/copilot/costManagement/spendingPolicies/{spendingPolicy-id}/microsoft.graph.selectedGroupsSpendingPolicy/assignedGroups/{group-id}/$ref/copilot/costManagement/spendingPolicies/{spendingPolicy-id}/emailThresholdSettings/recipients/$ref/copilot/costManagement/spendingPolicies/{spendingPolicy-id}/emailThresholdSettings/recipients/$ref/copilot/costManagement/spendingPolicies/{spendingPolicy-id}/emailThresholdSettings/recipients/{user-id}/$refVerification
19426105dd741181fffcd4972c8800b569360bed; unchanged full beta and v1.0 inputs.4cc70de79da099c47fd284e4227811cc874017db(treedd42b18102867a5b2d5da9e9f896a72174efc4c4).-addInnerErrorDescription $true -removeCapabilityAnnotations $falsewith explicit-csdlVersion beta/v1.0.1.6.24(Microsoft.OpenApi.OData/1.7.5, sourcec2dacfcf324a9f71d4ede0c44136fc021b6cd0ca, EDM7.21.6). This is not a claim about the deployed converter version.No new full cross-profile matrix, remote CI, Redocly lint, live endpoint, or production publishing success is claimed. The CLI-generated server remains
http://localhost, as in the baseline. Earlier matrix evidence covers only its original candidate, not this source revision.Known limitations — guidance requested
Route generation is not contract acceptance. Against the original Graph Explorer baseline, this PoC adds 36 path items / 59 operations and removes 2 path items / 4 operations; it changes no surviving operation objects or non-path document sections. Four existing path items change only in grouped-path documentation extensions.
Readable=falseannotation atmicrosoft.graph.GraphService/copilot/costManagement/spendingPolicies/microsoft.graph.selectedGroupsSpendingPolicy.assignedGroupsremains. Derived policy casts also expose inherited email-threshold, recipient, mailbox-setting, service-setting, count, and navigation operations. This PR does not approve that added surface..../emailThresholdSettings/recipients/{user-id}and.../recipients(userPrincipalName='{userPrincipalName}').DELETE .../$refoperations require query parameter@id: string: assigned groups and the three recipient locations. These are outside the seven target entries.StringCollectionResponse, whosevalueitems are strings, not@odata.idobjects. The successful response is200; POST and DELETE use204.refPostBodyis required, but itsReferenceCreateschema only declares an@odata.idstring property and has no schemarequiredlist requiring that property.RecordExpressionHasExtraProperties: the bundled EDM 7.21.6 record lacksReferenceable. Conversion uses the unchanged defaultVerifyEdmModel=false. This is a scoped bundled-vocabulary caveat, not a claim about every validator or production configuration.Please advise whether these property annotations are the appropriate metadata contract and which converter/schema work is required before a production-ready correction. This draft intentionally preserves the failures for review rather than suppressing operations or relaxing restrictions to make acceptance appear green.