microsoftgraph / microsoftgraph/msgraph-metadata

`Restore` Action Should Only Be Bound On `directory/deletedItems`

Open
#169 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

priority:p1
Dominant language
XSLT
Stars
166
Forks
55
Avg merge
16h 12m
Merged PRs (30d)
14

Description

Restore action bound on directoryObject should only be applied to directory/deletedItems/{id} and not the derived types of directoryObject. See https://docs.microsoft.com/en-us/graph/api/directory-deleteditems-restore?view=graph-rest-1.0&tabs=http.

We currently don't have an OData capability annotation that we can use to restrict how OData actions and functions are bound.

The lack of this restriction results in a broken experience for customers using our SDKs since the generated actions bound on the derived types fail with a status code of 400.

Current representation in the CSDL
<Action Name="restore" IsBound="true">
  <Parameter Name="bindingParameter" Type="graph.directoryObject" Nullable="false" />
  <ReturnType Type="graph.directoryObject" />
</Action>

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the current CSDL representation of the bound restore action and review the linked Microsoft Graph directory/deletedItems/{id} documentation. Identify how action binding restrictions are represented or generated, then verify that derived directoryObject types no longer expose the action and that the resulting SDK experience avoids the reported 400 responses.

Written by the indexing model from the issue text.

Assessment

Domain
api, backend-api-design
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.