Skip to content

Commit af0daa8

Browse files
Auto-generate (almost) all graph beta endpoints (#305)
This big huge massive PR does two things: a) updates the packages\graph-tools\src\allow-list.ts to include almost all endpoints b) adds auto-generated endpoints based on the latest beta schema For a), the allow-list was initially the following - super small to illustrate what the generated code looks like: ``` // the smallest API surface of the whole graph export const allowList = [/^\/privacy(.*)$/]; ``` Now it's changed to this to include almost everything: ``` // include anything but the /identityGovernance endpoints, as they pose MAX_PATH challenges export const allowList = [/^(?!\/identityGovernance).*$/]; ``` A separate PR will add special-treatment to identityGovernance so that we can support those also. For b) I picked the most recent openapi.yaml from https://github.com/microsoftgraph/msgraph-metadata/blob/master/openapi/beta/openapi.yaml and used that as input to auto-generate the endpoints. I'm not checking in that file though, as it's so big it doesn't really belong in git.
1 parent a9669af commit af0daa8

File tree

7,072 files changed

+1377053
-24768
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

7,072 files changed

+1377053
-24768
lines changed
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
import type { EndpointRequest, Operation } from './types/common.ts';
2+
3+
export interface IEndpoints {
4+
'DELETE /accessReviewDecisions/{accessReviewDecision-id}': Operation<
5+
'/accessReviewDecisions/{accessReviewDecision-id}',
6+
'delete'
7+
>;
8+
'GET /accessReviewDecisions': Operation<'/accessReviewDecisions', 'get'>;
9+
'GET /accessReviewDecisions/{accessReviewDecision-id}': Operation<
10+
'/accessReviewDecisions/{accessReviewDecision-id}',
11+
'get'
12+
>;
13+
'PATCH /accessReviewDecisions/{accessReviewDecision-id}': Operation<
14+
'/accessReviewDecisions/{accessReviewDecision-id}',
15+
'patch'
16+
>;
17+
'POST /accessReviewDecisions': Operation<'/accessReviewDecisions', 'post'>;
18+
}
19+
20+
/**
21+
* `DELETE /accessReviewDecisions/{accessReviewDecision-id}`
22+
*
23+
*/
24+
export function del(
25+
params?: IEndpoints['DELETE /accessReviewDecisions/{accessReviewDecision-id}']['parameters']
26+
): EndpointRequest<
27+
IEndpoints['DELETE /accessReviewDecisions/{accessReviewDecision-id}']['response']
28+
> {
29+
return {
30+
ver: 'beta',
31+
method: 'delete',
32+
path: '/accessReviewDecisions/{accessReviewDecision-id}',
33+
paramDefs: [
34+
{ name: 'If-Match', in: 'header' },
35+
{ name: 'accessReviewDecision-id', in: 'path' },
36+
],
37+
params,
38+
};
39+
}
40+
41+
/**
42+
* `GET /accessReviewDecisions`
43+
*
44+
*/
45+
export function list(
46+
params?: IEndpoints['GET /accessReviewDecisions']['parameters']
47+
): EndpointRequest<IEndpoints['GET /accessReviewDecisions']['response']> {
48+
return {
49+
ver: 'beta',
50+
method: 'get',
51+
path: '/accessReviewDecisions',
52+
paramDefs: [
53+
{ name: '$top', in: 'query' },
54+
{ name: '$skip', in: 'query' },
55+
{ name: '$search', in: 'query' },
56+
{ name: '$filter', in: 'query' },
57+
{ name: '$count', in: 'query' },
58+
{ name: '$orderby', in: 'query' },
59+
{ name: '$select', in: 'query' },
60+
{ name: '$expand', in: 'query' },
61+
],
62+
params,
63+
};
64+
}
65+
66+
/**
67+
* `GET /accessReviewDecisions/{accessReviewDecision-id}`
68+
*
69+
*/
70+
export function get(
71+
params?: IEndpoints['GET /accessReviewDecisions/{accessReviewDecision-id}']['parameters']
72+
): EndpointRequest<IEndpoints['GET /accessReviewDecisions/{accessReviewDecision-id}']['response']> {
73+
return {
74+
ver: 'beta',
75+
method: 'get',
76+
path: '/accessReviewDecisions/{accessReviewDecision-id}',
77+
paramDefs: [
78+
{ name: '$select', in: 'query' },
79+
{ name: '$expand', in: 'query' },
80+
{ name: 'accessReviewDecision-id', in: 'path' },
81+
],
82+
params,
83+
};
84+
}
85+
86+
/**
87+
* `PATCH /accessReviewDecisions/{accessReviewDecision-id}`
88+
*
89+
*/
90+
export function update(
91+
body: IEndpoints['PATCH /accessReviewDecisions/{accessReviewDecision-id}']['body'],
92+
params?: IEndpoints['PATCH /accessReviewDecisions/{accessReviewDecision-id}']['parameters']
93+
): EndpointRequest<
94+
IEndpoints['PATCH /accessReviewDecisions/{accessReviewDecision-id}']['response']
95+
> {
96+
return {
97+
ver: 'beta',
98+
method: 'patch',
99+
path: '/accessReviewDecisions/{accessReviewDecision-id}',
100+
paramDefs: [{ name: 'accessReviewDecision-id', in: 'path' }],
101+
params,
102+
body,
103+
};
104+
}
105+
106+
/**
107+
* `POST /accessReviewDecisions`
108+
*
109+
*/
110+
export function create(
111+
body: IEndpoints['POST /accessReviewDecisions']['body'],
112+
params?: IEndpoints['POST /accessReviewDecisions']['parameters']
113+
): EndpointRequest<IEndpoints['POST /accessReviewDecisions']['response']> {
114+
return {
115+
ver: 'beta',
116+
method: 'post',
117+
path: '/accessReviewDecisions',
118+
paramDefs: [],
119+
params,
120+
body,
121+
};
122+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import type { EndpointRequest, Operation } from './../types/common.ts';
2+
3+
export interface IEndpoints {
4+
'POST /accessReviews/{accessReview-id}/applyDecisions': Operation<
5+
'/accessReviews/{accessReview-id}/applyDecisions',
6+
'post'
7+
>;
8+
}
9+
10+
/**
11+
* `POST /accessReviews/{accessReview-id}/applyDecisions`
12+
*
13+
* In the Microsoft Entra access reviews feature, apply the decisions of a completed accessReview. The target object can be either a one-time access review, or an instance of a recurring access review. After an access review is finished, either because it reached the end date or an administrator stopped it manually, and auto-apply wasn&#x27;t configured for the review, you can call Apply to apply the changes. Until apply occurs, the decisions to remove access rights do not appear on the source resource, the users for instance retain their group memberships. By calling apply, the outcome of the review is implemented by updating the group or application. If a user&#x27;s access was denied in the review, when an administrator calls this API, Microsoft Entra ID removes their membership or application assignment. After an access review is finished, and auto-apply was configured, then the status of the review will change from Completed through intermediate states and finally will change to state Applied. You should expect to see denied users, if any, being removed from the resource group membership or app assignment in a few minutes. A configured auto applying review, or selecting Apply doesn&#x27;t have an effect on a group that originates in an on-premises directory or a dynamic group. If you want to change a group that originates on-premises, download the results and apply those changes to the representation of the group in that directory.
14+
*/
15+
export function create(
16+
body: IEndpoints['POST /accessReviews/{accessReview-id}/applyDecisions']['body'],
17+
params?: IEndpoints['POST /accessReviews/{accessReview-id}/applyDecisions']['parameters']
18+
): EndpointRequest<IEndpoints['POST /accessReviews/{accessReview-id}/applyDecisions']['response']> {
19+
return {
20+
ver: 'beta',
21+
method: 'post',
22+
path: '/accessReviews/{accessReview-id}/applyDecisions',
23+
paramDefs: [{ name: 'accessReview-id', in: 'path' }],
24+
params,
25+
body,
26+
};
27+
}
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
import type { EndpointRequest, Operation } from './../types/common.ts';
2+
3+
export interface IEndpoints {
4+
'DELETE /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}': Operation<
5+
'/accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}',
6+
'delete'
7+
>;
8+
'GET /accessReviews/{accessReview-id}/decisions': Operation<
9+
'/accessReviews/{accessReview-id}/decisions',
10+
'get'
11+
>;
12+
'GET /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}': Operation<
13+
'/accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}',
14+
'get'
15+
>;
16+
'PATCH /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}': Operation<
17+
'/accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}',
18+
'patch'
19+
>;
20+
'POST /accessReviews/{accessReview-id}/decisions': Operation<
21+
'/accessReviews/{accessReview-id}/decisions',
22+
'post'
23+
>;
24+
}
25+
26+
/**
27+
* `DELETE /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}`
28+
*
29+
*/
30+
export function del(
31+
params?: IEndpoints['DELETE /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}']['parameters']
32+
): EndpointRequest<
33+
IEndpoints['DELETE /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}']['response']
34+
> {
35+
return {
36+
ver: 'beta',
37+
method: 'delete',
38+
path: '/accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}',
39+
paramDefs: [
40+
{ name: 'If-Match', in: 'header' },
41+
{ name: 'accessReview-id', in: 'path' },
42+
{ name: 'accessReviewDecision-id', in: 'path' },
43+
],
44+
params,
45+
};
46+
}
47+
48+
/**
49+
* `GET /accessReviews/{accessReview-id}/decisions`
50+
*
51+
* In the Microsoft Entra access reviews feature, retrieve the decisions of an accessReview object. Note that a recurring access review will not have a decisions relationship. Instead, the caller must navigate the instance relationship to find an accessReview object for a current or past instance of the access review.
52+
*/
53+
export function list(
54+
params?: IEndpoints['GET /accessReviews/{accessReview-id}/decisions']['parameters']
55+
): EndpointRequest<IEndpoints['GET /accessReviews/{accessReview-id}/decisions']['response']> {
56+
return {
57+
ver: 'beta',
58+
method: 'get',
59+
path: '/accessReviews/{accessReview-id}/decisions',
60+
paramDefs: [
61+
{ name: '$top', in: 'query' },
62+
{ name: '$skip', in: 'query' },
63+
{ name: '$search', in: 'query' },
64+
{ name: '$filter', in: 'query' },
65+
{ name: '$count', in: 'query' },
66+
{ name: '$orderby', in: 'query' },
67+
{ name: '$select', in: 'query' },
68+
{ name: '$expand', in: 'query' },
69+
{ name: 'accessReview-id', in: 'path' },
70+
],
71+
params,
72+
};
73+
}
74+
75+
/**
76+
* `GET /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}`
77+
*
78+
* The collection of decisions for this access review.
79+
*/
80+
export function get(
81+
params?: IEndpoints['GET /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}']['parameters']
82+
): EndpointRequest<
83+
IEndpoints['GET /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}']['response']
84+
> {
85+
return {
86+
ver: 'beta',
87+
method: 'get',
88+
path: '/accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}',
89+
paramDefs: [
90+
{ name: '$select', in: 'query' },
91+
{ name: '$expand', in: 'query' },
92+
{ name: 'accessReview-id', in: 'path' },
93+
{ name: 'accessReviewDecision-id', in: 'path' },
94+
],
95+
params,
96+
};
97+
}
98+
99+
/**
100+
* `PATCH /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}`
101+
*
102+
*/
103+
export function update(
104+
body: IEndpoints['PATCH /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}']['body'],
105+
params?: IEndpoints['PATCH /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}']['parameters']
106+
): EndpointRequest<
107+
IEndpoints['PATCH /accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}']['response']
108+
> {
109+
return {
110+
ver: 'beta',
111+
method: 'patch',
112+
path: '/accessReviews/{accessReview-id}/decisions/{accessReviewDecision-id}',
113+
paramDefs: [
114+
{ name: 'accessReview-id', in: 'path' },
115+
{ name: 'accessReviewDecision-id', in: 'path' },
116+
],
117+
params,
118+
body,
119+
};
120+
}
121+
122+
/**
123+
* `POST /accessReviews/{accessReview-id}/decisions`
124+
*
125+
*/
126+
export function create(
127+
body: IEndpoints['POST /accessReviews/{accessReview-id}/decisions']['body'],
128+
params?: IEndpoints['POST /accessReviews/{accessReview-id}/decisions']['parameters']
129+
): EndpointRequest<IEndpoints['POST /accessReviews/{accessReview-id}/decisions']['response']> {
130+
return {
131+
ver: 'beta',
132+
method: 'post',
133+
path: '/accessReviews/{accessReview-id}/decisions',
134+
paramDefs: [{ name: 'accessReview-id', in: 'path' }],
135+
params,
136+
body,
137+
};
138+
}

0 commit comments

Comments
 (0)