1use 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 pub fn organization(&self) -> AdminOrganizationResource {
31 AdminOrganizationResource::new(self.client.clone())
32 }
33}
34
35impl AdminOrganizationResource {
36 pub fn audit_logs(&self) -> AdminOrganizationAuditLogsResource {
38 AdminOrganizationAuditLogsResource::new(self.client.clone())
39 }
40
41 pub fn admin_api_keys(&self) -> AdminOrganizationAdminApiKeysResource {
43 AdminOrganizationAdminApiKeysResource::new(self.client.clone())
44 }
45
46 pub fn usage(&self) -> AdminOrganizationUsageResource {
48 AdminOrganizationUsageResource::new(self.client.clone())
49 }
50
51 pub fn invites(&self) -> AdminOrganizationInvitesResource {
53 AdminOrganizationInvitesResource::new(self.client.clone())
54 }
55
56 pub fn users(&self) -> AdminOrganizationUsersResource {
58 AdminOrganizationUsersResource::new(self.client.clone())
59 }
60
61 pub fn groups(&self) -> AdminOrganizationGroupsResource {
63 AdminOrganizationGroupsResource::new(self.client.clone())
64 }
65
66 pub fn roles(&self) -> AdminOrganizationRolesResource {
68 AdminOrganizationRolesResource::new(self.client.clone())
69 }
70
71 pub fn data_retention(&self) -> AdminOrganizationDataRetentionResource {
73 AdminOrganizationDataRetentionResource::new(self.client.clone())
74 }
75
76 pub fn spend_alerts(&self) -> AdminOrganizationSpendAlertsResource {
78 AdminOrganizationSpendAlertsResource::new(self.client.clone())
79 }
80
81 pub fn certificates(&self) -> AdminOrganizationCertificatesResource {
83 AdminOrganizationCertificatesResource::new(self.client.clone())
84 }
85
86 pub fn projects(&self) -> AdminOrganizationProjectsResource {
88 AdminOrganizationProjectsResource::new(self.client.clone())
89 }
90}
91
92impl AdminOrganizationAdminApiKeysResource {
93 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 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 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 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 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 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 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 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 pub fn completions(&self) -> JsonRequestBuilder<Value> {
174 usage_get(
175 self,
176 "admin.organization.usage.completions",
177 "/organization/usage/completions",
178 )
179 }
180
181 pub fn costs(&self) -> JsonRequestBuilder<Value> {
183 usage_get(
184 self,
185 "admin.organization.usage.costs",
186 "/organization/costs",
187 )
188 }
189
190 pub fn embeddings(&self) -> JsonRequestBuilder<Value> {
192 usage_get(
193 self,
194 "admin.organization.usage.embeddings",
195 "/organization/usage/embeddings",
196 )
197 }
198
199 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 pub fn images(&self) -> JsonRequestBuilder<Value> {
210 usage_get(
211 self,
212 "admin.organization.usage.images",
213 "/organization/usage/images",
214 )
215 }
216
217 pub fn moderations(&self) -> JsonRequestBuilder<Value> {
219 usage_get(
220 self,
221 "admin.organization.usage.moderations",
222 "/organization/usage/moderations",
223 )
224 }
225
226 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 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 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 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 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 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 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 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 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 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 pub fn roles(&self) -> AdminOrganizationUserRolesResource {
336 AdminOrganizationUserRolesResource::new(self.client.clone())
337 }
338}
339
340impl AdminOrganizationUserRolesResource {
341 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 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 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 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 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 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 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 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 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 pub fn users(&self) -> AdminOrganizationGroupUsersResource {
449 AdminOrganizationGroupUsersResource::new(self.client.clone())
450 }
451
452 pub fn roles(&self) -> AdminOrganizationGroupRolesResource {
454 AdminOrganizationGroupRolesResource::new(self.client.clone())
455 }
456}
457
458impl AdminOrganizationGroupUsersResource {
459 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 pub fn users(&self) -> AdminProjectUsersResource {
809 AdminProjectUsersResource::new(self.client.clone())
810 }
811
812 pub fn service_accounts(&self) -> AdminProjectServiceAccountsResource {
814 AdminProjectServiceAccountsResource::new(self.client.clone())
815 }
816
817 pub fn api_keys(&self) -> AdminProjectApiKeysResource {
819 AdminProjectApiKeysResource::new(self.client.clone())
820 }
821
822 pub fn rate_limits(&self) -> AdminProjectRateLimitsResource {
824 AdminProjectRateLimitsResource::new(self.client.clone())
825 }
826
827 pub fn model_permissions(&self) -> AdminProjectModelPermissionsResource {
829 AdminProjectModelPermissionsResource::new(self.client.clone())
830 }
831
832 pub fn hosted_tool_permissions(&self) -> AdminProjectHostedToolPermissionsResource {
834 AdminProjectHostedToolPermissionsResource::new(self.client.clone())
835 }
836
837 pub fn groups(&self) -> AdminProjectGroupsResource {
839 AdminProjectGroupsResource::new(self.client.clone())
840 }
841
842 pub fn roles(&self) -> AdminProjectRolesResource {
844 AdminProjectRolesResource::new(self.client.clone())
845 }
846
847 pub fn data_retention(&self) -> AdminProjectDataRetentionResource {
849 AdminProjectDataRetentionResource::new(self.client.clone())
850 }
851
852 pub fn spend_alerts(&self) -> AdminProjectSpendAlertsResource {
854 AdminProjectSpendAlertsResource::new(self.client.clone())
855 }
856
857 pub fn certificates(&self) -> AdminProjectCertificatesResource {
859 AdminProjectCertificatesResource::new(self.client.clone())
860 }
861}
862
863impl AdminProjectApiKeysResource {
864 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 pub fn roles(&self) -> AdminProjectUserRolesResource {
1096 AdminProjectUserRolesResource::new(self.client.clone())
1097 }
1098}
1099
1100impl AdminProjectUserRolesResource {
1101 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 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 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 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 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 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 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 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 pub fn roles(&self) -> AdminProjectGroupRolesResource {
1227 AdminProjectGroupRolesResource::new(self.client.clone())
1228 }
1229}
1230
1231impl AdminProjectGroupRolesResource {
1232 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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}