1 | type Cloudflare = { |
2 | token: string; |
3 | email: string; |
4 | key: string; |
5 | }; |
6 | |
7 | * Update an Access identity provider |
8 | * Updates a configured identity provider. |
9 | */ |
10 | export async function main( |
11 | auth: Cloudflare, |
12 | uuid: string, |
13 | identifier: string, |
14 | body: |
15 | | ({ |
16 | config: { [k: string]: unknown }; |
17 | id?: string; |
18 | name: string; |
19 | scim_config?: { |
20 | enabled?: boolean; |
21 | group_member_deprovision?: boolean; |
22 | seat_deprovision?: boolean; |
23 | secret?: string; |
24 | user_deprovision?: boolean; |
25 | [k: string]: unknown; |
26 | }; |
27 | type: string; |
28 | [k: string]: unknown; |
29 | } & { |
30 | config?: { |
31 | client_id?: string; |
32 | client_secret?: string; |
33 | [k: string]: unknown; |
34 | } & { |
35 | conditional_access_enabled?: boolean; |
36 | directory_id?: string; |
37 | support_groups?: boolean; |
38 | [k: string]: unknown; |
39 | }; |
40 | [k: string]: unknown; |
41 | }) |
42 | | ({ |
43 | config: { [k: string]: unknown }; |
44 | id?: string; |
45 | name: string; |
46 | scim_config?: { |
47 | enabled?: boolean; |
48 | group_member_deprovision?: boolean; |
49 | seat_deprovision?: boolean; |
50 | secret?: string; |
51 | user_deprovision?: boolean; |
52 | [k: string]: unknown; |
53 | }; |
54 | type: string; |
55 | [k: string]: unknown; |
56 | } & { |
57 | config?: { |
58 | client_id?: string; |
59 | client_secret?: string; |
60 | [k: string]: unknown; |
61 | } & { |
62 | centrify_account?: string; |
63 | centrify_app_id?: string; |
64 | [k: string]: unknown; |
65 | }; |
66 | [k: string]: unknown; |
67 | }) |
68 | | ({ |
69 | config: { [k: string]: unknown }; |
70 | id?: string; |
71 | name: string; |
72 | scim_config?: { |
73 | enabled?: boolean; |
74 | group_member_deprovision?: boolean; |
75 | seat_deprovision?: boolean; |
76 | secret?: string; |
77 | user_deprovision?: boolean; |
78 | [k: string]: unknown; |
79 | }; |
80 | type: string; |
81 | [k: string]: unknown; |
82 | } & { |
83 | config?: { |
84 | client_id?: string; |
85 | client_secret?: string; |
86 | [k: string]: unknown; |
87 | }; |
88 | [k: string]: unknown; |
89 | }) |
90 | | ({ |
91 | config: { [k: string]: unknown }; |
92 | id?: string; |
93 | name: string; |
94 | scim_config?: { |
95 | enabled?: boolean; |
96 | group_member_deprovision?: boolean; |
97 | seat_deprovision?: boolean; |
98 | secret?: string; |
99 | user_deprovision?: boolean; |
100 | [k: string]: unknown; |
101 | }; |
102 | type: string; |
103 | [k: string]: unknown; |
104 | } & { |
105 | config?: { |
106 | client_id?: string; |
107 | client_secret?: string; |
108 | [k: string]: unknown; |
109 | }; |
110 | [k: string]: unknown; |
111 | }) |
112 | | ({ |
113 | config: { [k: string]: unknown }; |
114 | id?: string; |
115 | name: string; |
116 | scim_config?: { |
117 | enabled?: boolean; |
118 | group_member_deprovision?: boolean; |
119 | seat_deprovision?: boolean; |
120 | secret?: string; |
121 | user_deprovision?: boolean; |
122 | [k: string]: unknown; |
123 | }; |
124 | type: string; |
125 | [k: string]: unknown; |
126 | } & { |
127 | config?: { |
128 | client_id?: string; |
129 | client_secret?: string; |
130 | [k: string]: unknown; |
131 | }; |
132 | [k: string]: unknown; |
133 | }) |
134 | | ({ |
135 | config: { [k: string]: unknown }; |
136 | id?: string; |
137 | name: string; |
138 | scim_config?: { |
139 | enabled?: boolean; |
140 | group_member_deprovision?: boolean; |
141 | seat_deprovision?: boolean; |
142 | secret?: string; |
143 | user_deprovision?: boolean; |
144 | [k: string]: unknown; |
145 | }; |
146 | type: string; |
147 | [k: string]: unknown; |
148 | } & { |
149 | config?: { |
150 | client_id?: string; |
151 | client_secret?: string; |
152 | [k: string]: unknown; |
153 | } & { apps_domain?: string; [k: string]: unknown }; |
154 | [k: string]: unknown; |
155 | }) |
156 | | ({ |
157 | config: { [k: string]: unknown }; |
158 | id?: string; |
159 | name: string; |
160 | scim_config?: { |
161 | enabled?: boolean; |
162 | group_member_deprovision?: boolean; |
163 | seat_deprovision?: boolean; |
164 | secret?: string; |
165 | user_deprovision?: boolean; |
166 | [k: string]: unknown; |
167 | }; |
168 | type: string; |
169 | [k: string]: unknown; |
170 | } & { |
171 | config?: { |
172 | client_id?: string; |
173 | client_secret?: string; |
174 | [k: string]: unknown; |
175 | }; |
176 | [k: string]: unknown; |
177 | }) |
178 | | ({ |
179 | config: { [k: string]: unknown }; |
180 | id?: string; |
181 | name: string; |
182 | scim_config?: { |
183 | enabled?: boolean; |
184 | group_member_deprovision?: boolean; |
185 | seat_deprovision?: boolean; |
186 | secret?: string; |
187 | user_deprovision?: boolean; |
188 | [k: string]: unknown; |
189 | }; |
190 | type: string; |
191 | [k: string]: unknown; |
192 | } & { |
193 | config?: { |
194 | client_id?: string; |
195 | client_secret?: string; |
196 | [k: string]: unknown; |
197 | } & { |
198 | auth_url?: string; |
199 | certs_url?: string; |
200 | claims?: string[]; |
201 | scopes?: string[]; |
202 | token_url?: string; |
203 | [k: string]: unknown; |
204 | }; |
205 | [k: string]: unknown; |
206 | }) |
207 | | ({ |
208 | config: { [k: string]: unknown }; |
209 | id?: string; |
210 | name: string; |
211 | scim_config?: { |
212 | enabled?: boolean; |
213 | group_member_deprovision?: boolean; |
214 | seat_deprovision?: boolean; |
215 | secret?: string; |
216 | user_deprovision?: boolean; |
217 | [k: string]: unknown; |
218 | }; |
219 | type: string; |
220 | [k: string]: unknown; |
221 | } & { |
222 | config?: { |
223 | client_id?: string; |
224 | client_secret?: string; |
225 | [k: string]: unknown; |
226 | } & { okta_account?: string; [k: string]: unknown }; |
227 | [k: string]: unknown; |
228 | }) |
229 | | ({ |
230 | config: { [k: string]: unknown }; |
231 | id?: string; |
232 | name: string; |
233 | scim_config?: { |
234 | enabled?: boolean; |
235 | group_member_deprovision?: boolean; |
236 | seat_deprovision?: boolean; |
237 | secret?: string; |
238 | user_deprovision?: boolean; |
239 | [k: string]: unknown; |
240 | }; |
241 | type: string; |
242 | [k: string]: unknown; |
243 | } & { |
244 | config?: { |
245 | client_id?: string; |
246 | client_secret?: string; |
247 | [k: string]: unknown; |
248 | } & { onelogin_account?: string; [k: string]: unknown }; |
249 | [k: string]: unknown; |
250 | }) |
251 | | ({ |
252 | config: { [k: string]: unknown }; |
253 | id?: string; |
254 | name: string; |
255 | scim_config?: { |
256 | enabled?: boolean; |
257 | group_member_deprovision?: boolean; |
258 | seat_deprovision?: boolean; |
259 | secret?: string; |
260 | user_deprovision?: boolean; |
261 | [k: string]: unknown; |
262 | }; |
263 | type: string; |
264 | [k: string]: unknown; |
265 | } & { |
266 | config?: { |
267 | client_id?: string; |
268 | client_secret?: string; |
269 | [k: string]: unknown; |
270 | } & { ping_env_id?: string; [k: string]: unknown }; |
271 | [k: string]: unknown; |
272 | }) |
273 | | ({ |
274 | config: { [k: string]: unknown }; |
275 | id?: string; |
276 | name: string; |
277 | scim_config?: { |
278 | enabled?: boolean; |
279 | group_member_deprovision?: boolean; |
280 | seat_deprovision?: boolean; |
281 | secret?: string; |
282 | user_deprovision?: boolean; |
283 | [k: string]: unknown; |
284 | }; |
285 | type: string; |
286 | [k: string]: unknown; |
287 | } & { |
288 | config?: { |
289 | attributes?: string[]; |
290 | email_attribute_name?: string; |
291 | header_attributes?: { |
292 | attribute_name?: string; |
293 | header_name?: string; |
294 | [k: string]: unknown; |
295 | }[]; |
296 | idp_public_certs?: string[]; |
297 | issuer_url?: string; |
298 | sign_request?: boolean; |
299 | sso_target_url?: string; |
300 | [k: string]: unknown; |
301 | }; |
302 | [k: string]: unknown; |
303 | }) |
304 | | ({ |
305 | config: { [k: string]: unknown }; |
306 | id?: string; |
307 | name: string; |
308 | scim_config?: { |
309 | enabled?: boolean; |
310 | group_member_deprovision?: boolean; |
311 | seat_deprovision?: boolean; |
312 | secret?: string; |
313 | user_deprovision?: boolean; |
314 | [k: string]: unknown; |
315 | }; |
316 | type: string; |
317 | [k: string]: unknown; |
318 | } & { |
319 | config?: { |
320 | client_id?: string; |
321 | client_secret?: string; |
322 | [k: string]: unknown; |
323 | }; |
324 | [k: string]: unknown; |
325 | }) |
326 | ) { |
327 | const url = new URL( |
328 | `https://api.cloudflare.com/client/v4/zones/${identifier}/access/identity_providers/${uuid}` |
329 | ); |
330 |
|
331 | const response = await fetch(url, { |
332 | method: "PUT", |
333 | headers: { |
334 | "X-AUTH-EMAIL": auth.email, |
335 | "X-AUTH-KEY": auth.key, |
336 | "Content-Type": "application/json", |
337 | Authorization: "Bearer " + auth.token, |
338 | }, |
339 | body: JSON.stringify(body), |
340 | }); |
341 | if (!response.ok) { |
342 | const text = await response.text(); |
343 | throw new Error(`${response.status} ${text}`); |
344 | } |
345 | return await response.json(); |
346 | } |
347 |
|