Skip to main content

openai_core/resources/
admin.rs

1//! Admin resource namespace implementations.
2
3use http::Method;
4use serde_json::Value;
5
6use crate::pagination::Page;
7
8use super::{
9    AdminOrganizationAdminApiKeysResource, AdminOrganizationAuditLogsResource,
10    AdminOrganizationCertificatesResource, AdminOrganizationDataRetentionResource,
11    AdminOrganizationGroupRolesResource, AdminOrganizationGroupUsersResource,
12    AdminOrganizationGroupsResource, AdminOrganizationInvitesResource,
13    AdminOrganizationProjectsResource, AdminOrganizationResource, AdminOrganizationRolesResource,
14    AdminOrganizationSpendAlertsResource, AdminOrganizationUsageResource,
15    AdminOrganizationUserRolesResource, AdminOrganizationUsersResource,
16    AdminProjectApiKeysResource, AdminProjectCertificatesResource,
17    AdminProjectDataRetentionResource, AdminProjectGroupRolesResource, AdminProjectGroupsResource,
18    AdminProjectHostedToolPermissionsResource, AdminProjectModelPermissionsResource,
19    AdminProjectRateLimitsResource, AdminProjectRolesResource, AdminProjectServiceAccountsResource,
20    AdminProjectSpendAlertsResource, AdminProjectUserRolesResource, AdminProjectUsersResource,
21    AdminResource, JsonRequestBuilder, ListRequestBuilder, encode_path_segment,
22};
23
24fn enc(value: impl Into<String>) -> String {
25    encode_path_segment(value.into())
26}
27
28impl AdminResource {
29    /// Returns the organization admin namespace.
30    pub fn organization(&self) -> AdminOrganizationResource {
31        AdminOrganizationResource::new(self.client.clone())
32    }
33}
34
35impl AdminOrganizationResource {
36    /// Returns audit log resources.
37    pub fn audit_logs(&self) -> AdminOrganizationAuditLogsResource {
38        AdminOrganizationAuditLogsResource::new(self.client.clone())
39    }
40
41    /// Returns organization admin API key resources.
42    pub fn admin_api_keys(&self) -> AdminOrganizationAdminApiKeysResource {
43        AdminOrganizationAdminApiKeysResource::new(self.client.clone())
44    }
45
46    /// Returns organization usage resources.
47    pub fn usage(&self) -> AdminOrganizationUsageResource {
48        AdminOrganizationUsageResource::new(self.client.clone())
49    }
50
51    /// Returns organization invite resources.
52    pub fn invites(&self) -> AdminOrganizationInvitesResource {
53        AdminOrganizationInvitesResource::new(self.client.clone())
54    }
55
56    /// Returns organization user resources.
57    pub fn users(&self) -> AdminOrganizationUsersResource {
58        AdminOrganizationUsersResource::new(self.client.clone())
59    }
60
61    /// Returns organization group resources.
62    pub fn groups(&self) -> AdminOrganizationGroupsResource {
63        AdminOrganizationGroupsResource::new(self.client.clone())
64    }
65
66    /// Returns organization role resources.
67    pub fn roles(&self) -> AdminOrganizationRolesResource {
68        AdminOrganizationRolesResource::new(self.client.clone())
69    }
70
71    /// Returns organization data retention resources.
72    pub fn data_retention(&self) -> AdminOrganizationDataRetentionResource {
73        AdminOrganizationDataRetentionResource::new(self.client.clone())
74    }
75
76    /// Returns organization spend alert resources.
77    pub fn spend_alerts(&self) -> AdminOrganizationSpendAlertsResource {
78        AdminOrganizationSpendAlertsResource::new(self.client.clone())
79    }
80
81    /// Returns organization certificate resources.
82    pub fn certificates(&self) -> AdminOrganizationCertificatesResource {
83        AdminOrganizationCertificatesResource::new(self.client.clone())
84    }
85
86    /// Returns organization project resources.
87    pub fn projects(&self) -> AdminOrganizationProjectsResource {
88        AdminOrganizationProjectsResource::new(self.client.clone())
89    }
90}
91
92impl AdminOrganizationAdminApiKeysResource {
93    /// Creates an organization admin API key.
94    pub fn create(&self) -> JsonRequestBuilder<Value> {
95        JsonRequestBuilder::new(
96            self.client.clone(),
97            "admin.organization.admin_api_keys.create",
98            Method::POST,
99            "/organization/admin_api_keys",
100        )
101    }
102
103    /// Retrieves an organization admin API key.
104    pub fn retrieve(&self, key_id: impl Into<String>) -> JsonRequestBuilder<Value> {
105        JsonRequestBuilder::new(
106            self.client.clone(),
107            "admin.organization.admin_api_keys.retrieve",
108            Method::GET,
109            format!("/organization/admin_api_keys/{}", enc(key_id)),
110        )
111    }
112
113    /// Lists organization admin API keys.
114    pub fn list(&self) -> ListRequestBuilder<Value> {
115        ListRequestBuilder::new(
116            self.client.clone(),
117            "admin.organization.admin_api_keys.list",
118            "/organization/admin_api_keys",
119        )
120    }
121
122    /// Deletes an organization admin API key.
123    pub fn delete(&self, key_id: impl Into<String>) -> JsonRequestBuilder<Value> {
124        JsonRequestBuilder::new(
125            self.client.clone(),
126            "admin.organization.admin_api_keys.delete",
127            Method::DELETE,
128            format!("/organization/admin_api_keys/{}", enc(key_id)),
129        )
130    }
131}
132
133impl AdminOrganizationAuditLogsResource {
134    /// Lists organization audit logs.
135    pub fn list(&self) -> ListRequestBuilder<Value> {
136        ListRequestBuilder::new(
137            self.client.clone(),
138            "admin.organization.audit_logs.list",
139            "/organization/audit_logs",
140        )
141    }
142}
143
144impl AdminOrganizationUsageResource {
145    /// Retrieves audio speech usage.
146    pub fn audio_speeches(&self) -> JsonRequestBuilder<Value> {
147        usage_get(
148            self,
149            "admin.organization.usage.audio_speeches",
150            "/organization/usage/audio_speeches",
151        )
152    }
153
154    /// Retrieves audio transcription usage.
155    pub fn audio_transcriptions(&self) -> JsonRequestBuilder<Value> {
156        usage_get(
157            self,
158            "admin.organization.usage.audio_transcriptions",
159            "/organization/usage/audio_transcriptions",
160        )
161    }
162
163    /// Retrieves code interpreter session usage.
164    pub fn code_interpreter_sessions(&self) -> JsonRequestBuilder<Value> {
165        usage_get(
166            self,
167            "admin.organization.usage.code_interpreter_sessions",
168            "/organization/usage/code_interpreter_sessions",
169        )
170    }
171
172    /// Retrieves completion usage.
173    pub fn completions(&self) -> JsonRequestBuilder<Value> {
174        usage_get(
175            self,
176            "admin.organization.usage.completions",
177            "/organization/usage/completions",
178        )
179    }
180
181    /// Retrieves cost usage.
182    pub fn costs(&self) -> JsonRequestBuilder<Value> {
183        usage_get(
184            self,
185            "admin.organization.usage.costs",
186            "/organization/costs",
187        )
188    }
189
190    /// Retrieves embedding usage.
191    pub fn embeddings(&self) -> JsonRequestBuilder<Value> {
192        usage_get(
193            self,
194            "admin.organization.usage.embeddings",
195            "/organization/usage/embeddings",
196        )
197    }
198
199    /// Retrieves file search call usage.
200    pub fn file_search_calls(&self) -> JsonRequestBuilder<Value> {
201        usage_get(
202            self,
203            "admin.organization.usage.file_search_calls",
204            "/organization/usage/file_search_calls",
205        )
206    }
207
208    /// Retrieves image usage.
209    pub fn images(&self) -> JsonRequestBuilder<Value> {
210        usage_get(
211            self,
212            "admin.organization.usage.images",
213            "/organization/usage/images",
214        )
215    }
216
217    /// Retrieves moderation usage.
218    pub fn moderations(&self) -> JsonRequestBuilder<Value> {
219        usage_get(
220            self,
221            "admin.organization.usage.moderations",
222            "/organization/usage/moderations",
223        )
224    }
225
226    /// Retrieves vector store usage.
227    pub fn vector_stores(&self) -> JsonRequestBuilder<Value> {
228        usage_get(
229            self,
230            "admin.organization.usage.vector_stores",
231            "/organization/usage/vector_stores",
232        )
233    }
234
235    /// Retrieves web search call usage.
236    pub fn web_search_calls(&self) -> JsonRequestBuilder<Value> {
237        usage_get(
238            self,
239            "admin.organization.usage.web_search_calls",
240            "/organization/usage/web_search_calls",
241        )
242    }
243}
244
245fn usage_get(
246    resource: &AdminOrganizationUsageResource,
247    endpoint_id: &'static str,
248    path: &'static str,
249) -> JsonRequestBuilder<Value> {
250    JsonRequestBuilder::new(resource.client.clone(), endpoint_id, Method::GET, path)
251}
252
253impl AdminOrganizationInvitesResource {
254    /// Creates an organization invite.
255    pub fn create(&self) -> JsonRequestBuilder<Value> {
256        JsonRequestBuilder::new(
257            self.client.clone(),
258            "admin.organization.invites.create",
259            Method::POST,
260            "/organization/invites",
261        )
262    }
263
264    /// Retrieves an organization invite.
265    pub fn retrieve(&self, invite_id: impl Into<String>) -> JsonRequestBuilder<Value> {
266        JsonRequestBuilder::new(
267            self.client.clone(),
268            "admin.organization.invites.retrieve",
269            Method::GET,
270            format!("/organization/invites/{}", enc(invite_id)),
271        )
272    }
273
274    /// Lists organization invites.
275    pub fn list(&self) -> ListRequestBuilder<Value> {
276        ListRequestBuilder::new(
277            self.client.clone(),
278            "admin.organization.invites.list",
279            "/organization/invites",
280        )
281    }
282
283    /// Deletes an organization invite.
284    pub fn delete(&self, invite_id: impl Into<String>) -> JsonRequestBuilder<Value> {
285        JsonRequestBuilder::new(
286            self.client.clone(),
287            "admin.organization.invites.delete",
288            Method::DELETE,
289            format!("/organization/invites/{}", enc(invite_id)),
290        )
291    }
292}
293
294impl AdminOrganizationUsersResource {
295    /// Retrieves an organization user.
296    pub fn retrieve(&self, user_id: impl Into<String>) -> JsonRequestBuilder<Value> {
297        JsonRequestBuilder::new(
298            self.client.clone(),
299            "admin.organization.users.retrieve",
300            Method::GET,
301            format!("/organization/users/{}", enc(user_id)),
302        )
303    }
304
305    /// Updates an organization user.
306    pub fn update(&self, user_id: impl Into<String>) -> JsonRequestBuilder<Value> {
307        JsonRequestBuilder::new(
308            self.client.clone(),
309            "admin.organization.users.update",
310            Method::POST,
311            format!("/organization/users/{}", enc(user_id)),
312        )
313    }
314
315    /// Lists organization users.
316    pub fn list(&self) -> ListRequestBuilder<Value> {
317        ListRequestBuilder::new(
318            self.client.clone(),
319            "admin.organization.users.list",
320            "/organization/users",
321        )
322    }
323
324    /// Deletes an organization user.
325    pub fn delete(&self, user_id: impl Into<String>) -> JsonRequestBuilder<Value> {
326        JsonRequestBuilder::new(
327            self.client.clone(),
328            "admin.organization.users.delete",
329            Method::DELETE,
330            format!("/organization/users/{}", enc(user_id)),
331        )
332    }
333
334    /// Returns organization user role assignment resources.
335    pub fn roles(&self) -> AdminOrganizationUserRolesResource {
336        AdminOrganizationUserRolesResource::new(self.client.clone())
337    }
338}
339
340impl AdminOrganizationUserRolesResource {
341    /// Assigns an organization role to a user.
342    pub fn create(&self, user_id: impl Into<String>) -> JsonRequestBuilder<Value> {
343        JsonRequestBuilder::new(
344            self.client.clone(),
345            "admin.organization.users.roles.create",
346            Method::POST,
347            format!("/organization/users/{}/roles", enc(user_id)),
348        )
349    }
350
351    /// Retrieves an organization role assigned to a user.
352    pub fn retrieve(
353        &self,
354        user_id: impl Into<String>,
355        role_id: impl Into<String>,
356    ) -> JsonRequestBuilder<Value> {
357        JsonRequestBuilder::new(
358            self.client.clone(),
359            "admin.organization.users.roles.retrieve",
360            Method::GET,
361            format!(
362                "/organization/users/{}/roles/{}",
363                enc(user_id),
364                enc(role_id)
365            ),
366        )
367    }
368
369    /// Lists organization roles assigned to a user.
370    pub fn list(&self, user_id: impl Into<String>) -> ListRequestBuilder<Value> {
371        ListRequestBuilder::new(
372            self.client.clone(),
373            "admin.organization.users.roles.list",
374            format!("/organization/users/{}/roles", enc(user_id)),
375        )
376    }
377
378    /// Unassigns an organization role from a user.
379    pub fn delete(
380        &self,
381        user_id: impl Into<String>,
382        role_id: impl Into<String>,
383    ) -> JsonRequestBuilder<Value> {
384        JsonRequestBuilder::new(
385            self.client.clone(),
386            "admin.organization.users.roles.delete",
387            Method::DELETE,
388            format!(
389                "/organization/users/{}/roles/{}",
390                enc(user_id),
391                enc(role_id)
392            ),
393        )
394    }
395}
396
397impl AdminOrganizationGroupsResource {
398    /// Creates an organization group.
399    pub fn create(&self) -> JsonRequestBuilder<Value> {
400        JsonRequestBuilder::new(
401            self.client.clone(),
402            "admin.organization.groups.create",
403            Method::POST,
404            "/organization/groups",
405        )
406    }
407
408    /// Retrieves an organization group.
409    pub fn retrieve(&self, group_id: impl Into<String>) -> JsonRequestBuilder<Value> {
410        JsonRequestBuilder::new(
411            self.client.clone(),
412            "admin.organization.groups.retrieve",
413            Method::GET,
414            format!("/organization/groups/{}", enc(group_id)),
415        )
416    }
417
418    /// Updates an organization group.
419    pub fn update(&self, group_id: impl Into<String>) -> JsonRequestBuilder<Value> {
420        JsonRequestBuilder::new(
421            self.client.clone(),
422            "admin.organization.groups.update",
423            Method::POST,
424            format!("/organization/groups/{}", enc(group_id)),
425        )
426    }
427
428    /// Lists organization groups.
429    pub fn list(&self) -> ListRequestBuilder<Value> {
430        ListRequestBuilder::new(
431            self.client.clone(),
432            "admin.organization.groups.list",
433            "/organization/groups",
434        )
435    }
436
437    /// Deletes an organization group.
438    pub fn delete(&self, group_id: impl Into<String>) -> JsonRequestBuilder<Value> {
439        JsonRequestBuilder::new(
440            self.client.clone(),
441            "admin.organization.groups.delete",
442            Method::DELETE,
443            format!("/organization/groups/{}", enc(group_id)),
444        )
445    }
446
447    /// Returns organization group user assignment resources.
448    pub fn users(&self) -> AdminOrganizationGroupUsersResource {
449        AdminOrganizationGroupUsersResource::new(self.client.clone())
450    }
451
452    /// Returns organization group role assignment resources.
453    pub fn roles(&self) -> AdminOrganizationGroupRolesResource {
454        AdminOrganizationGroupRolesResource::new(self.client.clone())
455    }
456}
457
458impl AdminOrganizationGroupUsersResource {
459    /// Adds a user to an organization group.
460    pub fn create(&self, group_id: impl Into<String>) -> JsonRequestBuilder<Value> {
461        JsonRequestBuilder::new(
462            self.client.clone(),
463            "admin.organization.groups.users.create",
464            Method::POST,
465            format!("/organization/groups/{}/users", enc(group_id)),
466        )
467    }
468
469    /// Retrieves a user assigned to an organization group.
470    pub fn retrieve(
471        &self,
472        group_id: impl Into<String>,
473        user_id: impl Into<String>,
474    ) -> JsonRequestBuilder<Value> {
475        JsonRequestBuilder::new(
476            self.client.clone(),
477            "admin.organization.groups.users.retrieve",
478            Method::GET,
479            format!(
480                "/organization/groups/{}/users/{}",
481                enc(group_id),
482                enc(user_id)
483            ),
484        )
485    }
486
487    /// Lists users in an organization group.
488    pub fn list(&self, group_id: impl Into<String>) -> ListRequestBuilder<Value> {
489        ListRequestBuilder::new(
490            self.client.clone(),
491            "admin.organization.groups.users.list",
492            format!("/organization/groups/{}/users", enc(group_id)),
493        )
494    }
495
496    /// Removes a user from an organization group.
497    pub fn delete(
498        &self,
499        group_id: impl Into<String>,
500        user_id: impl Into<String>,
501    ) -> JsonRequestBuilder<Value> {
502        JsonRequestBuilder::new(
503            self.client.clone(),
504            "admin.organization.groups.users.delete",
505            Method::DELETE,
506            format!(
507                "/organization/groups/{}/users/{}",
508                enc(group_id),
509                enc(user_id)
510            ),
511        )
512    }
513}
514
515impl AdminOrganizationGroupRolesResource {
516    /// Assigns an organization role to a group.
517    pub fn create(&self, group_id: impl Into<String>) -> JsonRequestBuilder<Value> {
518        JsonRequestBuilder::new(
519            self.client.clone(),
520            "admin.organization.groups.roles.create",
521            Method::POST,
522            format!("/organization/groups/{}/roles", enc(group_id)),
523        )
524    }
525
526    /// Retrieves an organization role assigned to a group.
527    pub fn retrieve(
528        &self,
529        group_id: impl Into<String>,
530        role_id: impl Into<String>,
531    ) -> JsonRequestBuilder<Value> {
532        JsonRequestBuilder::new(
533            self.client.clone(),
534            "admin.organization.groups.roles.retrieve",
535            Method::GET,
536            format!(
537                "/organization/groups/{}/roles/{}",
538                enc(group_id),
539                enc(role_id)
540            ),
541        )
542    }
543
544    /// Lists organization roles assigned to a group.
545    pub fn list(&self, group_id: impl Into<String>) -> ListRequestBuilder<Value> {
546        ListRequestBuilder::new(
547            self.client.clone(),
548            "admin.organization.groups.roles.list",
549            format!("/organization/groups/{}/roles", enc(group_id)),
550        )
551    }
552
553    /// Unassigns an organization role from a group.
554    pub fn delete(
555        &self,
556        group_id: impl Into<String>,
557        role_id: impl Into<String>,
558    ) -> JsonRequestBuilder<Value> {
559        JsonRequestBuilder::new(
560            self.client.clone(),
561            "admin.organization.groups.roles.delete",
562            Method::DELETE,
563            format!(
564                "/organization/groups/{}/roles/{}",
565                enc(group_id),
566                enc(role_id)
567            ),
568        )
569    }
570}
571
572impl AdminOrganizationRolesResource {
573    /// Creates an organization role.
574    pub fn create(&self) -> JsonRequestBuilder<Value> {
575        JsonRequestBuilder::new(
576            self.client.clone(),
577            "admin.organization.roles.create",
578            Method::POST,
579            "/organization/roles",
580        )
581    }
582
583    /// Retrieves an organization role.
584    pub fn retrieve(&self, role_id: impl Into<String>) -> JsonRequestBuilder<Value> {
585        JsonRequestBuilder::new(
586            self.client.clone(),
587            "admin.organization.roles.retrieve",
588            Method::GET,
589            format!("/organization/roles/{}", enc(role_id)),
590        )
591    }
592
593    /// Updates an organization role.
594    pub fn update(&self, role_id: impl Into<String>) -> JsonRequestBuilder<Value> {
595        JsonRequestBuilder::new(
596            self.client.clone(),
597            "admin.organization.roles.update",
598            Method::POST,
599            format!("/organization/roles/{}", enc(role_id)),
600        )
601    }
602
603    /// Lists organization roles.
604    pub fn list(&self) -> ListRequestBuilder<Value> {
605        ListRequestBuilder::new(
606            self.client.clone(),
607            "admin.organization.roles.list",
608            "/organization/roles",
609        )
610    }
611
612    /// Deletes an organization role.
613    pub fn delete(&self, role_id: impl Into<String>) -> JsonRequestBuilder<Value> {
614        JsonRequestBuilder::new(
615            self.client.clone(),
616            "admin.organization.roles.delete",
617            Method::DELETE,
618            format!("/organization/roles/{}", enc(role_id)),
619        )
620    }
621}
622
623impl AdminOrganizationDataRetentionResource {
624    /// Retrieves organization data retention settings.
625    pub fn retrieve(&self) -> JsonRequestBuilder<Value> {
626        JsonRequestBuilder::new(
627            self.client.clone(),
628            "admin.organization.data_retention.retrieve",
629            Method::GET,
630            "/organization/data_retention",
631        )
632    }
633
634    /// Updates organization data retention settings.
635    pub fn update(&self) -> JsonRequestBuilder<Value> {
636        JsonRequestBuilder::new(
637            self.client.clone(),
638            "admin.organization.data_retention.update",
639            Method::POST,
640            "/organization/data_retention",
641        )
642    }
643}
644
645impl AdminOrganizationSpendAlertsResource {
646    /// Creates an organization spend alert.
647    pub fn create(&self) -> JsonRequestBuilder<Value> {
648        JsonRequestBuilder::new(
649            self.client.clone(),
650            "admin.organization.spend_alerts.create",
651            Method::POST,
652            "/organization/spend_alerts",
653        )
654    }
655
656    /// Updates an organization spend alert.
657    pub fn update(&self, alert_id: impl Into<String>) -> JsonRequestBuilder<Value> {
658        JsonRequestBuilder::new(
659            self.client.clone(),
660            "admin.organization.spend_alerts.update",
661            Method::POST,
662            format!("/organization/spend_alerts/{}", enc(alert_id)),
663        )
664    }
665
666    /// Lists organization spend alerts.
667    pub fn list(&self) -> ListRequestBuilder<Value> {
668        ListRequestBuilder::new(
669            self.client.clone(),
670            "admin.organization.spend_alerts.list",
671            "/organization/spend_alerts",
672        )
673    }
674
675    /// Deletes an organization spend alert.
676    pub fn delete(&self, alert_id: impl Into<String>) -> JsonRequestBuilder<Value> {
677        JsonRequestBuilder::new(
678            self.client.clone(),
679            "admin.organization.spend_alerts.delete",
680            Method::DELETE,
681            format!("/organization/spend_alerts/{}", enc(alert_id)),
682        )
683    }
684}
685
686impl AdminOrganizationCertificatesResource {
687    /// Creates an organization certificate.
688    pub fn create(&self) -> JsonRequestBuilder<Value> {
689        JsonRequestBuilder::new(
690            self.client.clone(),
691            "admin.organization.certificates.create",
692            Method::POST,
693            "/organization/certificates",
694        )
695    }
696
697    /// Retrieves an organization certificate.
698    pub fn retrieve(&self, certificate_id: impl Into<String>) -> JsonRequestBuilder<Value> {
699        JsonRequestBuilder::new(
700            self.client.clone(),
701            "admin.organization.certificates.retrieve",
702            Method::GET,
703            format!("/organization/certificates/{}", enc(certificate_id)),
704        )
705    }
706
707    /// Updates an organization certificate.
708    pub fn update(&self, certificate_id: impl Into<String>) -> JsonRequestBuilder<Value> {
709        JsonRequestBuilder::new(
710            self.client.clone(),
711            "admin.organization.certificates.update",
712            Method::POST,
713            format!("/organization/certificates/{}", enc(certificate_id)),
714        )
715    }
716
717    /// Lists organization certificates.
718    pub fn list(&self) -> ListRequestBuilder<Value> {
719        ListRequestBuilder::new(
720            self.client.clone(),
721            "admin.organization.certificates.list",
722            "/organization/certificates",
723        )
724    }
725
726    /// Deletes an organization certificate.
727    pub fn delete(&self, certificate_id: impl Into<String>) -> JsonRequestBuilder<Value> {
728        JsonRequestBuilder::new(
729            self.client.clone(),
730            "admin.organization.certificates.delete",
731            Method::DELETE,
732            format!("/organization/certificates/{}", enc(certificate_id)),
733        )
734    }
735
736    /// Activates organization certificates.
737    pub fn activate(&self) -> JsonRequestBuilder<Page<Value>> {
738        JsonRequestBuilder::new(
739            self.client.clone(),
740            "admin.organization.certificates.activate",
741            Method::POST,
742            "/organization/certificates/activate",
743        )
744    }
745
746    /// Deactivates organization certificates.
747    pub fn deactivate(&self) -> JsonRequestBuilder<Page<Value>> {
748        JsonRequestBuilder::new(
749            self.client.clone(),
750            "admin.organization.certificates.deactivate",
751            Method::POST,
752            "/organization/certificates/deactivate",
753        )
754    }
755}
756
757impl AdminOrganizationProjectsResource {
758    /// Creates an organization project.
759    pub fn create(&self) -> JsonRequestBuilder<Value> {
760        JsonRequestBuilder::new(
761            self.client.clone(),
762            "admin.organization.projects.create",
763            Method::POST,
764            "/organization/projects",
765        )
766    }
767
768    /// Retrieves an organization project.
769    pub fn retrieve(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
770        JsonRequestBuilder::new(
771            self.client.clone(),
772            "admin.organization.projects.retrieve",
773            Method::GET,
774            format!("/organization/projects/{}", enc(project_id)),
775        )
776    }
777
778    /// Updates an organization project.
779    pub fn update(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
780        JsonRequestBuilder::new(
781            self.client.clone(),
782            "admin.organization.projects.update",
783            Method::POST,
784            format!("/organization/projects/{}", enc(project_id)),
785        )
786    }
787
788    /// Lists organization projects.
789    pub fn list(&self) -> ListRequestBuilder<Value> {
790        ListRequestBuilder::new(
791            self.client.clone(),
792            "admin.organization.projects.list",
793            "/organization/projects",
794        )
795    }
796
797    /// Archives an organization project.
798    pub fn archive(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
799        JsonRequestBuilder::new(
800            self.client.clone(),
801            "admin.organization.projects.archive",
802            Method::POST,
803            format!("/organization/projects/{}/archive", enc(project_id)),
804        )
805    }
806
807    /// Returns project user resources.
808    pub fn users(&self) -> AdminProjectUsersResource {
809        AdminProjectUsersResource::new(self.client.clone())
810    }
811
812    /// Returns project service account resources.
813    pub fn service_accounts(&self) -> AdminProjectServiceAccountsResource {
814        AdminProjectServiceAccountsResource::new(self.client.clone())
815    }
816
817    /// Returns project API key resources.
818    pub fn api_keys(&self) -> AdminProjectApiKeysResource {
819        AdminProjectApiKeysResource::new(self.client.clone())
820    }
821
822    /// Returns project rate limit resources.
823    pub fn rate_limits(&self) -> AdminProjectRateLimitsResource {
824        AdminProjectRateLimitsResource::new(self.client.clone())
825    }
826
827    /// Returns project model permission resources.
828    pub fn model_permissions(&self) -> AdminProjectModelPermissionsResource {
829        AdminProjectModelPermissionsResource::new(self.client.clone())
830    }
831
832    /// Returns project hosted tool permission resources.
833    pub fn hosted_tool_permissions(&self) -> AdminProjectHostedToolPermissionsResource {
834        AdminProjectHostedToolPermissionsResource::new(self.client.clone())
835    }
836
837    /// Returns project group resources.
838    pub fn groups(&self) -> AdminProjectGroupsResource {
839        AdminProjectGroupsResource::new(self.client.clone())
840    }
841
842    /// Returns project role resources.
843    pub fn roles(&self) -> AdminProjectRolesResource {
844        AdminProjectRolesResource::new(self.client.clone())
845    }
846
847    /// Returns project data retention resources.
848    pub fn data_retention(&self) -> AdminProjectDataRetentionResource {
849        AdminProjectDataRetentionResource::new(self.client.clone())
850    }
851
852    /// Returns project spend alert resources.
853    pub fn spend_alerts(&self) -> AdminProjectSpendAlertsResource {
854        AdminProjectSpendAlertsResource::new(self.client.clone())
855    }
856
857    /// Returns project certificate resources.
858    pub fn certificates(&self) -> AdminProjectCertificatesResource {
859        AdminProjectCertificatesResource::new(self.client.clone())
860    }
861}
862
863impl AdminProjectApiKeysResource {
864    /// Retrieves a project API key.
865    pub fn retrieve(
866        &self,
867        project_id: impl Into<String>,
868        api_key_id: impl Into<String>,
869    ) -> JsonRequestBuilder<Value> {
870        JsonRequestBuilder::new(
871            self.client.clone(),
872            "admin.organization.projects.api_keys.retrieve",
873            Method::GET,
874            format!(
875                "/organization/projects/{}/api_keys/{}",
876                enc(project_id),
877                enc(api_key_id)
878            ),
879        )
880    }
881
882    /// Lists project API keys.
883    pub fn list(&self, project_id: impl Into<String>) -> ListRequestBuilder<Value> {
884        ListRequestBuilder::new(
885            self.client.clone(),
886            "admin.organization.projects.api_keys.list",
887            format!("/organization/projects/{}/api_keys", enc(project_id)),
888        )
889    }
890
891    /// Deletes a project API key.
892    pub fn delete(
893        &self,
894        project_id: impl Into<String>,
895        api_key_id: impl Into<String>,
896    ) -> JsonRequestBuilder<Value> {
897        JsonRequestBuilder::new(
898            self.client.clone(),
899            "admin.organization.projects.api_keys.delete",
900            Method::DELETE,
901            format!(
902                "/organization/projects/{}/api_keys/{}",
903                enc(project_id),
904                enc(api_key_id)
905            ),
906        )
907    }
908}
909
910impl AdminProjectRateLimitsResource {
911    /// Lists project rate limits.
912    pub fn list_rate_limits(&self, project_id: impl Into<String>) -> ListRequestBuilder<Value> {
913        ListRequestBuilder::new(
914            self.client.clone(),
915            "admin.organization.projects.rate_limits.list",
916            format!("/organization/projects/{}/rate_limits", enc(project_id)),
917        )
918    }
919
920    /// Updates a project rate limit.
921    pub fn update_rate_limit(
922        &self,
923        project_id: impl Into<String>,
924        rate_limit_id: impl Into<String>,
925    ) -> JsonRequestBuilder<Value> {
926        JsonRequestBuilder::new(
927            self.client.clone(),
928            "admin.organization.projects.rate_limits.update",
929            Method::POST,
930            format!(
931                "/organization/projects/{}/rate_limits/{}",
932                enc(project_id),
933                enc(rate_limit_id)
934            ),
935        )
936    }
937}
938
939impl AdminProjectServiceAccountsResource {
940    /// Creates a project service account.
941    pub fn create(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
942        JsonRequestBuilder::new(
943            self.client.clone(),
944            "admin.organization.projects.service_accounts.create",
945            Method::POST,
946            format!(
947                "/organization/projects/{}/service_accounts",
948                enc(project_id)
949            ),
950        )
951    }
952
953    /// Retrieves a project service account.
954    pub fn retrieve(
955        &self,
956        project_id: impl Into<String>,
957        service_account_id: impl Into<String>,
958    ) -> JsonRequestBuilder<Value> {
959        JsonRequestBuilder::new(
960            self.client.clone(),
961            "admin.organization.projects.service_accounts.retrieve",
962            Method::GET,
963            format!(
964                "/organization/projects/{}/service_accounts/{}",
965                enc(project_id),
966                enc(service_account_id)
967            ),
968        )
969    }
970
971    /// Updates a project service account.
972    pub fn update(
973        &self,
974        project_id: impl Into<String>,
975        service_account_id: impl Into<String>,
976    ) -> JsonRequestBuilder<Value> {
977        JsonRequestBuilder::new(
978            self.client.clone(),
979            "admin.organization.projects.service_accounts.update",
980            Method::POST,
981            format!(
982                "/organization/projects/{}/service_accounts/{}",
983                enc(project_id),
984                enc(service_account_id)
985            ),
986        )
987    }
988
989    /// Lists project service accounts.
990    pub fn list(&self, project_id: impl Into<String>) -> ListRequestBuilder<Value> {
991        ListRequestBuilder::new(
992            self.client.clone(),
993            "admin.organization.projects.service_accounts.list",
994            format!(
995                "/organization/projects/{}/service_accounts",
996                enc(project_id)
997            ),
998        )
999    }
1000
1001    /// Deletes a project service account.
1002    pub fn delete(
1003        &self,
1004        project_id: impl Into<String>,
1005        service_account_id: impl Into<String>,
1006    ) -> JsonRequestBuilder<Value> {
1007        JsonRequestBuilder::new(
1008            self.client.clone(),
1009            "admin.organization.projects.service_accounts.delete",
1010            Method::DELETE,
1011            format!(
1012                "/organization/projects/{}/service_accounts/{}",
1013                enc(project_id),
1014                enc(service_account_id)
1015            ),
1016        )
1017    }
1018}
1019
1020impl AdminProjectUsersResource {
1021    /// Adds a user to a project.
1022    pub fn create(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1023        JsonRequestBuilder::new(
1024            self.client.clone(),
1025            "admin.organization.projects.users.create",
1026            Method::POST,
1027            format!("/organization/projects/{}/users", enc(project_id)),
1028        )
1029    }
1030
1031    /// Retrieves a project user.
1032    pub fn retrieve(
1033        &self,
1034        project_id: impl Into<String>,
1035        user_id: impl Into<String>,
1036    ) -> JsonRequestBuilder<Value> {
1037        JsonRequestBuilder::new(
1038            self.client.clone(),
1039            "admin.organization.projects.users.retrieve",
1040            Method::GET,
1041            format!(
1042                "/organization/projects/{}/users/{}",
1043                enc(project_id),
1044                enc(user_id)
1045            ),
1046        )
1047    }
1048
1049    /// Updates a project user.
1050    pub fn update(
1051        &self,
1052        project_id: impl Into<String>,
1053        user_id: impl Into<String>,
1054    ) -> JsonRequestBuilder<Value> {
1055        JsonRequestBuilder::new(
1056            self.client.clone(),
1057            "admin.organization.projects.users.update",
1058            Method::POST,
1059            format!(
1060                "/organization/projects/{}/users/{}",
1061                enc(project_id),
1062                enc(user_id)
1063            ),
1064        )
1065    }
1066
1067    /// Lists project users.
1068    pub fn list(&self, project_id: impl Into<String>) -> ListRequestBuilder<Value> {
1069        ListRequestBuilder::new(
1070            self.client.clone(),
1071            "admin.organization.projects.users.list",
1072            format!("/organization/projects/{}/users", enc(project_id)),
1073        )
1074    }
1075
1076    /// Removes a user from a project.
1077    pub fn delete(
1078        &self,
1079        project_id: impl Into<String>,
1080        user_id: impl Into<String>,
1081    ) -> JsonRequestBuilder<Value> {
1082        JsonRequestBuilder::new(
1083            self.client.clone(),
1084            "admin.organization.projects.users.delete",
1085            Method::DELETE,
1086            format!(
1087                "/organization/projects/{}/users/{}",
1088                enc(project_id),
1089                enc(user_id)
1090            ),
1091        )
1092    }
1093
1094    /// Returns project user role assignment resources.
1095    pub fn roles(&self) -> AdminProjectUserRolesResource {
1096        AdminProjectUserRolesResource::new(self.client.clone())
1097    }
1098}
1099
1100impl AdminProjectUserRolesResource {
1101    /// Assigns a project role to a user.
1102    pub fn create(
1103        &self,
1104        project_id: impl Into<String>,
1105        user_id: impl Into<String>,
1106    ) -> JsonRequestBuilder<Value> {
1107        JsonRequestBuilder::new(
1108            self.client.clone(),
1109            "admin.organization.projects.users.roles.create",
1110            Method::POST,
1111            format!("/projects/{}/users/{}/roles", enc(project_id), enc(user_id)),
1112        )
1113    }
1114
1115    /// Retrieves a project role assigned to a user.
1116    pub fn retrieve(
1117        &self,
1118        project_id: impl Into<String>,
1119        user_id: impl Into<String>,
1120        role_id: impl Into<String>,
1121    ) -> JsonRequestBuilder<Value> {
1122        JsonRequestBuilder::new(
1123            self.client.clone(),
1124            "admin.organization.projects.users.roles.retrieve",
1125            Method::GET,
1126            format!(
1127                "/projects/{}/users/{}/roles/{}",
1128                enc(project_id),
1129                enc(user_id),
1130                enc(role_id)
1131            ),
1132        )
1133    }
1134
1135    /// Lists project roles assigned to a user.
1136    pub fn list(
1137        &self,
1138        project_id: impl Into<String>,
1139        user_id: impl Into<String>,
1140    ) -> ListRequestBuilder<Value> {
1141        ListRequestBuilder::new(
1142            self.client.clone(),
1143            "admin.organization.projects.users.roles.list",
1144            format!("/projects/{}/users/{}/roles", enc(project_id), enc(user_id)),
1145        )
1146    }
1147
1148    /// Unassigns a project role from a user.
1149    pub fn delete(
1150        &self,
1151        project_id: impl Into<String>,
1152        user_id: impl Into<String>,
1153        role_id: impl Into<String>,
1154    ) -> JsonRequestBuilder<Value> {
1155        JsonRequestBuilder::new(
1156            self.client.clone(),
1157            "admin.organization.projects.users.roles.delete",
1158            Method::DELETE,
1159            format!(
1160                "/projects/{}/users/{}/roles/{}",
1161                enc(project_id),
1162                enc(user_id),
1163                enc(role_id)
1164            ),
1165        )
1166    }
1167}
1168
1169impl AdminProjectGroupsResource {
1170    /// Grants a group access to a project.
1171    pub fn create(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1172        JsonRequestBuilder::new(
1173            self.client.clone(),
1174            "admin.organization.projects.groups.create",
1175            Method::POST,
1176            format!("/organization/projects/{}/groups", enc(project_id)),
1177        )
1178    }
1179
1180    /// Retrieves a project group.
1181    pub fn retrieve(
1182        &self,
1183        project_id: impl Into<String>,
1184        group_id: impl Into<String>,
1185    ) -> JsonRequestBuilder<Value> {
1186        JsonRequestBuilder::new(
1187            self.client.clone(),
1188            "admin.organization.projects.groups.retrieve",
1189            Method::GET,
1190            format!(
1191                "/organization/projects/{}/groups/{}",
1192                enc(project_id),
1193                enc(group_id)
1194            ),
1195        )
1196    }
1197
1198    /// Lists groups that have access to a project.
1199    pub fn list(&self, project_id: impl Into<String>) -> ListRequestBuilder<Value> {
1200        ListRequestBuilder::new(
1201            self.client.clone(),
1202            "admin.organization.projects.groups.list",
1203            format!("/organization/projects/{}/groups", enc(project_id)),
1204        )
1205    }
1206
1207    /// Revokes a group's access to a project.
1208    pub fn delete(
1209        &self,
1210        project_id: impl Into<String>,
1211        group_id: impl Into<String>,
1212    ) -> JsonRequestBuilder<Value> {
1213        JsonRequestBuilder::new(
1214            self.client.clone(),
1215            "admin.organization.projects.groups.delete",
1216            Method::DELETE,
1217            format!(
1218                "/organization/projects/{}/groups/{}",
1219                enc(project_id),
1220                enc(group_id)
1221            ),
1222        )
1223    }
1224
1225    /// Returns project group role assignment resources.
1226    pub fn roles(&self) -> AdminProjectGroupRolesResource {
1227        AdminProjectGroupRolesResource::new(self.client.clone())
1228    }
1229}
1230
1231impl AdminProjectGroupRolesResource {
1232    /// Assigns a project role to a group.
1233    pub fn create(
1234        &self,
1235        project_id: impl Into<String>,
1236        group_id: impl Into<String>,
1237    ) -> JsonRequestBuilder<Value> {
1238        JsonRequestBuilder::new(
1239            self.client.clone(),
1240            "admin.organization.projects.groups.roles.create",
1241            Method::POST,
1242            format!(
1243                "/projects/{}/groups/{}/roles",
1244                enc(project_id),
1245                enc(group_id)
1246            ),
1247        )
1248    }
1249
1250    /// Retrieves a project role assigned to a group.
1251    pub fn retrieve(
1252        &self,
1253        project_id: impl Into<String>,
1254        group_id: impl Into<String>,
1255        role_id: impl Into<String>,
1256    ) -> JsonRequestBuilder<Value> {
1257        JsonRequestBuilder::new(
1258            self.client.clone(),
1259            "admin.organization.projects.groups.roles.retrieve",
1260            Method::GET,
1261            format!(
1262                "/projects/{}/groups/{}/roles/{}",
1263                enc(project_id),
1264                enc(group_id),
1265                enc(role_id)
1266            ),
1267        )
1268    }
1269
1270    /// Lists project roles assigned to a group.
1271    pub fn list(
1272        &self,
1273        project_id: impl Into<String>,
1274        group_id: impl Into<String>,
1275    ) -> ListRequestBuilder<Value> {
1276        ListRequestBuilder::new(
1277            self.client.clone(),
1278            "admin.organization.projects.groups.roles.list",
1279            format!(
1280                "/projects/{}/groups/{}/roles",
1281                enc(project_id),
1282                enc(group_id)
1283            ),
1284        )
1285    }
1286
1287    /// Unassigns a project role from a group.
1288    pub fn delete(
1289        &self,
1290        project_id: impl Into<String>,
1291        group_id: impl Into<String>,
1292        role_id: impl Into<String>,
1293    ) -> JsonRequestBuilder<Value> {
1294        JsonRequestBuilder::new(
1295            self.client.clone(),
1296            "admin.organization.projects.groups.roles.delete",
1297            Method::DELETE,
1298            format!(
1299                "/projects/{}/groups/{}/roles/{}",
1300                enc(project_id),
1301                enc(group_id),
1302                enc(role_id)
1303            ),
1304        )
1305    }
1306}
1307
1308impl AdminProjectRolesResource {
1309    /// Creates a custom project role.
1310    pub fn create(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1311        JsonRequestBuilder::new(
1312            self.client.clone(),
1313            "admin.organization.projects.roles.create",
1314            Method::POST,
1315            format!("/projects/{}/roles", enc(project_id)),
1316        )
1317    }
1318
1319    /// Retrieves a project role.
1320    pub fn retrieve(
1321        &self,
1322        project_id: impl Into<String>,
1323        role_id: impl Into<String>,
1324    ) -> JsonRequestBuilder<Value> {
1325        JsonRequestBuilder::new(
1326            self.client.clone(),
1327            "admin.organization.projects.roles.retrieve",
1328            Method::GET,
1329            format!("/projects/{}/roles/{}", enc(project_id), enc(role_id)),
1330        )
1331    }
1332
1333    /// Updates a project role.
1334    pub fn update(
1335        &self,
1336        project_id: impl Into<String>,
1337        role_id: impl Into<String>,
1338    ) -> JsonRequestBuilder<Value> {
1339        JsonRequestBuilder::new(
1340            self.client.clone(),
1341            "admin.organization.projects.roles.update",
1342            Method::POST,
1343            format!("/projects/{}/roles/{}", enc(project_id), enc(role_id)),
1344        )
1345    }
1346
1347    /// Lists project roles.
1348    pub fn list(&self, project_id: impl Into<String>) -> ListRequestBuilder<Value> {
1349        ListRequestBuilder::new(
1350            self.client.clone(),
1351            "admin.organization.projects.roles.list",
1352            format!("/projects/{}/roles", enc(project_id)),
1353        )
1354    }
1355
1356    /// Deletes a project role.
1357    pub fn delete(
1358        &self,
1359        project_id: impl Into<String>,
1360        role_id: impl Into<String>,
1361    ) -> JsonRequestBuilder<Value> {
1362        JsonRequestBuilder::new(
1363            self.client.clone(),
1364            "admin.organization.projects.roles.delete",
1365            Method::DELETE,
1366            format!("/projects/{}/roles/{}", enc(project_id), enc(role_id)),
1367        )
1368    }
1369}
1370
1371impl AdminProjectDataRetentionResource {
1372    /// Retrieves project data retention settings.
1373    pub fn retrieve(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1374        JsonRequestBuilder::new(
1375            self.client.clone(),
1376            "admin.organization.projects.data_retention.retrieve",
1377            Method::GET,
1378            format!("/organization/projects/{}/data_retention", enc(project_id)),
1379        )
1380    }
1381
1382    /// Updates project data retention settings.
1383    pub fn update(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1384        JsonRequestBuilder::new(
1385            self.client.clone(),
1386            "admin.organization.projects.data_retention.update",
1387            Method::POST,
1388            format!("/organization/projects/{}/data_retention", enc(project_id)),
1389        )
1390    }
1391}
1392
1393impl AdminProjectSpendAlertsResource {
1394    /// Creates a project spend alert.
1395    pub fn create(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1396        JsonRequestBuilder::new(
1397            self.client.clone(),
1398            "admin.organization.projects.spend_alerts.create",
1399            Method::POST,
1400            format!("/organization/projects/{}/spend_alerts", enc(project_id)),
1401        )
1402    }
1403
1404    /// Updates a project spend alert.
1405    pub fn update(
1406        &self,
1407        project_id: impl Into<String>,
1408        alert_id: impl Into<String>,
1409    ) -> JsonRequestBuilder<Value> {
1410        JsonRequestBuilder::new(
1411            self.client.clone(),
1412            "admin.organization.projects.spend_alerts.update",
1413            Method::POST,
1414            format!(
1415                "/organization/projects/{}/spend_alerts/{}",
1416                enc(project_id),
1417                enc(alert_id)
1418            ),
1419        )
1420    }
1421
1422    /// Lists project spend alerts.
1423    pub fn list(&self, project_id: impl Into<String>) -> ListRequestBuilder<Value> {
1424        ListRequestBuilder::new(
1425            self.client.clone(),
1426            "admin.organization.projects.spend_alerts.list",
1427            format!("/organization/projects/{}/spend_alerts", enc(project_id)),
1428        )
1429    }
1430
1431    /// Deletes a project spend alert.
1432    pub fn delete(
1433        &self,
1434        project_id: impl Into<String>,
1435        alert_id: impl Into<String>,
1436    ) -> JsonRequestBuilder<Value> {
1437        JsonRequestBuilder::new(
1438            self.client.clone(),
1439            "admin.organization.projects.spend_alerts.delete",
1440            Method::DELETE,
1441            format!(
1442                "/organization/projects/{}/spend_alerts/{}",
1443                enc(project_id),
1444                enc(alert_id)
1445            ),
1446        )
1447    }
1448}
1449
1450impl AdminProjectCertificatesResource {
1451    /// Lists project certificates.
1452    pub fn list(&self, project_id: impl Into<String>) -> ListRequestBuilder<Value> {
1453        ListRequestBuilder::new(
1454            self.client.clone(),
1455            "admin.organization.projects.certificates.list",
1456            format!("/organization/projects/{}/certificates", enc(project_id)),
1457        )
1458    }
1459
1460    /// Activates project certificates.
1461    pub fn activate(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Page<Value>> {
1462        JsonRequestBuilder::new(
1463            self.client.clone(),
1464            "admin.organization.projects.certificates.activate",
1465            Method::POST,
1466            format!(
1467                "/organization/projects/{}/certificates/activate",
1468                enc(project_id)
1469            ),
1470        )
1471    }
1472
1473    /// Deactivates project certificates.
1474    pub fn deactivate(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Page<Value>> {
1475        JsonRequestBuilder::new(
1476            self.client.clone(),
1477            "admin.organization.projects.certificates.deactivate",
1478            Method::POST,
1479            format!(
1480                "/organization/projects/{}/certificates/deactivate",
1481                enc(project_id)
1482            ),
1483        )
1484    }
1485}
1486
1487impl AdminProjectModelPermissionsResource {
1488    /// Retrieves project model permissions.
1489    pub fn retrieve(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1490        JsonRequestBuilder::new(
1491            self.client.clone(),
1492            "admin.organization.projects.model_permissions.retrieve",
1493            Method::GET,
1494            format!(
1495                "/organization/projects/{}/model_permissions",
1496                enc(project_id)
1497            ),
1498        )
1499    }
1500
1501    /// Updates project model permissions.
1502    pub fn update(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1503        JsonRequestBuilder::new(
1504            self.client.clone(),
1505            "admin.organization.projects.model_permissions.update",
1506            Method::POST,
1507            format!(
1508                "/organization/projects/{}/model_permissions",
1509                enc(project_id)
1510            ),
1511        )
1512    }
1513
1514    /// Deletes project model permissions.
1515    pub fn delete(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1516        JsonRequestBuilder::new(
1517            self.client.clone(),
1518            "admin.organization.projects.model_permissions.delete",
1519            Method::DELETE,
1520            format!(
1521                "/organization/projects/{}/model_permissions",
1522                enc(project_id)
1523            ),
1524        )
1525    }
1526}
1527
1528impl AdminProjectHostedToolPermissionsResource {
1529    /// Retrieves project hosted tool permissions.
1530    pub fn retrieve(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1531        JsonRequestBuilder::new(
1532            self.client.clone(),
1533            "admin.organization.projects.hosted_tool_permissions.retrieve",
1534            Method::GET,
1535            format!(
1536                "/organization/projects/{}/hosted_tool_permissions",
1537                enc(project_id)
1538            ),
1539        )
1540    }
1541
1542    /// Updates project hosted tool permissions.
1543    pub fn update(&self, project_id: impl Into<String>) -> JsonRequestBuilder<Value> {
1544        JsonRequestBuilder::new(
1545            self.client.clone(),
1546            "admin.organization.projects.hosted_tool_permissions.update",
1547            Method::POST,
1548            format!(
1549                "/organization/projects/{}/hosted_tool_permissions",
1550                enc(project_id)
1551            ),
1552        )
1553    }
1554}