@leaflow/sdk 0.177.1 → 0.178.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/iam/v1/generated/functions.d.ts +139 -1
  2. package/dist/iam/v1/generated/functions.js +151 -0
  3. package/dist/iam/v1/generated/models.d.ts +96 -0
  4. package/dist/iam/v1/generated/models.js +13 -0
  5. package/dist/iam/v1/generated/schemas.zod.d.ts +71 -0
  6. package/dist/iam/v1/generated/schemas.zod.js +76 -0
  7. package/dist/iam/v1/generated/validators/applicationResource.zod.d.ts +36 -0
  8. package/dist/iam/v1/generated/validators/applicationResource.zod.js +27 -0
  9. package/dist/iam/v1/generated/validators/createApplicationRequestBody.zod.d.ts +28 -0
  10. package/dist/iam/v1/generated/validators/createApplicationRequestBody.zod.js +26 -0
  11. package/dist/iam/v1/generated/validators/createApplicationResponseBody.zod.d.ts +39 -0
  12. package/dist/iam/v1/generated/validators/createApplicationResponseBody.zod.js +23 -0
  13. package/dist/iam/v1/generated/validators/lengthAwarePageApplicationResource.zod.d.ts +41 -0
  14. package/dist/iam/v1/generated/validators/lengthAwarePageApplicationResource.zod.js +22 -0
  15. package/dist/iam/v1/generated/validators/listApplicationsParams.zod.d.ts +28 -0
  16. package/dist/iam/v1/generated/validators/listApplicationsParams.zod.js +34 -0
  17. package/dist/iam/v1/generated/validators/rotateApplicationSecretResponseBody.zod.d.ts +21 -0
  18. package/dist/iam/v1/generated/validators/rotateApplicationSecretResponseBody.zod.js +19 -0
  19. package/dist/iam/v1/generated/validators/updateApplicationRequestBody.zod.d.ts +24 -0
  20. package/dist/iam/v1/generated/validators/updateApplicationRequestBody.zod.js +26 -0
  21. package/dist/monitoring/v1/generated/schemas.zod.d.ts +1 -1
  22. package/dist/monitoring/v1/generated/validators/lengthAwarePageServerResource.zod.d.ts +1 -1
  23. package/dist/monitoring/v1/generated/validators/listServersParams.zod.d.ts +1 -1
  24. package/dist/monitoring/v1/generated/validators/serverEnrollmentResponseBody.zod.d.ts +1 -1
  25. package/dist/monitoring/v1/generated/validators/serverResource.zod.d.ts +1 -1
  26. package/dist/routes.d.ts +48 -0
  27. package/dist/routes.js +54 -0
  28. package/package.json +1 -1
@@ -12,7 +12,7 @@
12
12
  * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
- import type { AttachPolicyRequestBody, BatchGetMembersRequestBody, BatchGetMembersResponseBody, CatalogListResponseBody, CreateRoleRequestBody, CreateSSHKeyRequestBody, Error, IssueInvitationRequestBody, IssuedInvitationResponseBody, LengthAwarePageInvitationResource, LengthAwarePageMemberResource, LengthAwarePageSSHKeyResource, ListMembersParams, ListPoliciesParams, ListProjectInvitationsParams, ListSshKeysParams, MemberResource, MembershipResource, OwnershipTransferResponseBody, PolicyListResponseBody, PolicyResource, ProjectAccessResource, QuotaListResponseBody, RenameSSHKeyRequestBody, RoleListResponseBody, RoleResource, SSHKeyResource, SetMemberPermissionsRequestBody, SetMemberRolesRequestBody, SetProjectSlugRequestBody, TransferOwnershipRequestBody, UpdatePolicyRequestBody, UpdateProjectRequestBody, UpdateRoleRequestBody } from "./models.js";
15
+ import type { ApplicationResource, AttachPolicyRequestBody, BatchGetMembersRequestBody, BatchGetMembersResponseBody, CatalogListResponseBody, CreateApplicationRequestBody, CreateApplicationResponseBody, CreateRoleRequestBody, CreateSSHKeyRequestBody, Error, IssueInvitationRequestBody, IssuedInvitationResponseBody, LengthAwarePageApplicationResource, LengthAwarePageInvitationResource, LengthAwarePageMemberResource, LengthAwarePageSSHKeyResource, ListApplicationsParams, ListMembersParams, ListPoliciesParams, ListProjectInvitationsParams, ListSshKeysParams, MemberResource, MembershipResource, OwnershipTransferResponseBody, PolicyListResponseBody, PolicyResource, ProjectAccessResource, QuotaListResponseBody, RenameSSHKeyRequestBody, RoleListResponseBody, RoleResource, RotateApplicationSecretResponseBody, SSHKeyResource, SetMemberPermissionsRequestBody, SetMemberRolesRequestBody, SetProjectSlugRequestBody, TransferOwnershipRequestBody, UpdateApplicationRequestBody, UpdatePolicyRequestBody, UpdateProjectRequestBody, UpdateRoleRequestBody } from "./models.js";
16
16
  export type HTTPStatusCode1xx = 100 | 101 | 102 | 103;
17
17
  export type HTTPStatusCode2xx = 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207;
18
18
  export type HTTPStatusCode3xx = 300 | 301 | 302 | 303 | 304 | 305 | 307 | 308;
@@ -677,3 +677,141 @@ export declare const getRevokeSshKeyUrl: (keyId: string) => string;
677
677
  * @summary Revoke an SSH key
678
678
  */
679
679
  export declare const revokeSshKey: (keyId: string, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<revokeSshKeyResponse>;
680
+ export type listApplicationsResponse200 = {
681
+ data: LengthAwarePageApplicationResource;
682
+ status: 200;
683
+ };
684
+ export type listApplicationsResponseDefault = {
685
+ data: Error;
686
+ status: Exclude<HTTPStatusCodes, 200>;
687
+ };
688
+ export type listApplicationsResponseSuccess = listApplicationsResponse200 & {
689
+ headers: Headers;
690
+ };
691
+ export type listApplicationsResponseError = listApplicationsResponseDefault & {
692
+ headers: Headers;
693
+ };
694
+ export type listApplicationsResponse = listApplicationsResponseSuccess | listApplicationsResponseError;
695
+ export declare const getListApplicationsUrl: (params?: ListApplicationsParams) => string;
696
+ /**
697
+ * Disabled applications are listed. Archived applications are omitted unless
698
+ * `include_archived` is true. An application that is still being created is not listed.
699
+ * @summary List the applications of this project
700
+ */
701
+ export declare const listApplications: (params?: ListApplicationsParams, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<listApplicationsResponse>;
702
+ export type createApplicationResponse201 = {
703
+ data: CreateApplicationResponseBody;
704
+ status: 201;
705
+ };
706
+ export type createApplicationResponseDefault = {
707
+ data: Error;
708
+ status: Exclude<HTTPStatusCodes, 201>;
709
+ };
710
+ export type createApplicationResponseSuccess = createApplicationResponse201 & {
711
+ headers: Headers;
712
+ };
713
+ export type createApplicationResponseError = createApplicationResponseDefault & {
714
+ headers: Headers;
715
+ };
716
+ export type createApplicationResponse = createApplicationResponseSuccess | createApplicationResponseError;
717
+ export declare const getCreateApplicationUrl: () => string;
718
+ /**
719
+ * Creates an OIDC client for an application of this project. Applications authenticate
720
+ * against `https://auth.leaflow.net/realms/user`.
721
+ *
722
+ * The `secret` is present only for a confidential application, and only in this response.
723
+ * It is not stored and cannot be read again; use `:rotateSecret` to obtain a new one.
724
+ *
725
+ * Any account of this platform may sign in to the application. Membership of this project
726
+ * is confirmed only when a token is exchanged for a scoped token.
727
+ * @summary Create an application
728
+ */
729
+ export declare const createApplication: (createApplicationRequestBody: CreateApplicationRequestBody, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<createApplicationResponse>;
730
+ export type getApplicationResponse200 = {
731
+ data: ApplicationResource;
732
+ status: 200;
733
+ };
734
+ export type getApplicationResponseDefault = {
735
+ data: Error;
736
+ status: Exclude<HTTPStatusCodes, 200>;
737
+ };
738
+ export type getApplicationResponseSuccess = getApplicationResponse200 & {
739
+ headers: Headers;
740
+ };
741
+ export type getApplicationResponseError = getApplicationResponseDefault & {
742
+ headers: Headers;
743
+ };
744
+ export type getApplicationResponse = getApplicationResponseSuccess | getApplicationResponseError;
745
+ export declare const getGetApplicationUrl: (applicationId: string) => string;
746
+ /**
747
+ * An application that has been deleted is still returned, with `status` `ARCHIVED`.
748
+ * @summary Get an application
749
+ */
750
+ export declare const getApplication: (applicationId: string, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<getApplicationResponse>;
751
+ export type updateApplicationResponse200 = {
752
+ data: ApplicationResource;
753
+ status: 200;
754
+ };
755
+ export type updateApplicationResponseDefault = {
756
+ data: Error;
757
+ status: Exclude<HTTPStatusCodes, 200>;
758
+ };
759
+ export type updateApplicationResponseSuccess = updateApplicationResponse200 & {
760
+ headers: Headers;
761
+ };
762
+ export type updateApplicationResponseError = updateApplicationResponseDefault & {
763
+ headers: Headers;
764
+ };
765
+ export type updateApplicationResponse = updateApplicationResponseSuccess | updateApplicationResponseError;
766
+ export declare const getUpdateApplicationUrl: (applicationId: string) => string;
767
+ /**
768
+ * Only the name and the redirect URIs can change. The type and `client_id` never change.
769
+ *
770
+ * An application that is disabled or deleted cannot be updated.
771
+ * @summary Update an application
772
+ */
773
+ export declare const updateApplication: (applicationId: string, updateApplicationRequestBody: UpdateApplicationRequestBody, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<updateApplicationResponse>;
774
+ export type deleteApplicationResponse200 = {
775
+ data: ApplicationResource;
776
+ status: 200;
777
+ };
778
+ export type deleteApplicationResponseDefault = {
779
+ data: Error;
780
+ status: Exclude<HTTPStatusCodes, 200>;
781
+ };
782
+ export type deleteApplicationResponseSuccess = deleteApplicationResponse200 & {
783
+ headers: Headers;
784
+ };
785
+ export type deleteApplicationResponseError = deleteApplicationResponseDefault & {
786
+ headers: Headers;
787
+ };
788
+ export type deleteApplicationResponse = deleteApplicationResponseSuccess | deleteApplicationResponseError;
789
+ export declare const getDeleteApplicationUrl: (applicationId: string) => string;
790
+ /**
791
+ * The application is removed from the identity provider and its row is retained with
792
+ * `status` `ARCHIVED`. Repeating the call returns the same resource.
793
+ * @summary Delete an application
794
+ */
795
+ export declare const deleteApplication: (applicationId: string, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<deleteApplicationResponse>;
796
+ export type rotateApplicationSecretResponse200 = {
797
+ data: RotateApplicationSecretResponseBody;
798
+ status: 200;
799
+ };
800
+ export type rotateApplicationSecretResponseDefault = {
801
+ data: Error;
802
+ status: Exclude<HTTPStatusCodes, 200>;
803
+ };
804
+ export type rotateApplicationSecretResponseSuccess = rotateApplicationSecretResponse200 & {
805
+ headers: Headers;
806
+ };
807
+ export type rotateApplicationSecretResponseError = rotateApplicationSecretResponseDefault & {
808
+ headers: Headers;
809
+ };
810
+ export type rotateApplicationSecretResponse = rotateApplicationSecretResponseSuccess | rotateApplicationSecretResponseError;
811
+ export declare const getRotateApplicationSecretUrl: (applicationId: string) => string;
812
+ /**
813
+ * Returns a new secret and invalidates the previous one immediately. Only an active
814
+ * confidential application has a secret; any other state answers 412.
815
+ * @summary Rotate the secret of an application
816
+ */
817
+ export declare const rotateApplicationSecret: (applicationId: string, options?: RequestInit, fetchFn?: typeof globalThis.fetch) => Promise<rotateApplicationSecretResponse>;
@@ -758,3 +758,154 @@ export const revokeSshKey = async (keyId, options, fetchFn) => {
758
758
  const data = body ? JSON.parse(body) : {};
759
759
  return { data, status: res.status, headers: res.headers };
760
760
  };
761
+ export const getListApplicationsUrl = (params) => {
762
+ const normalizedParams = new URLSearchParams();
763
+ Object.entries(params || {}).forEach(([key, value]) => {
764
+ if (value !== undefined) {
765
+ normalizedParams.append(key, value === null ? "null" : String(value));
766
+ }
767
+ });
768
+ const stringifiedParams = normalizedParams.toString();
769
+ return stringifiedParams.length > 0
770
+ ? `https://iam.leaflow.cloud/api/v1/applications?${stringifiedParams}`
771
+ : `https://iam.leaflow.cloud/api/v1/applications`;
772
+ };
773
+ /**
774
+ * Disabled applications are listed. Archived applications are omitted unless
775
+ * `include_archived` is true. An application that is still being created is not listed.
776
+ * @summary List the applications of this project
777
+ */
778
+ export const listApplications = async (params, options, fetchFn) => {
779
+ const res = await (fetchFn ?? fetch)(getListApplicationsUrl(params), {
780
+ ...options,
781
+ method: "GET",
782
+ });
783
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
784
+ const data = body ? JSON.parse(body) : {};
785
+ return { data, status: res.status, headers: res.headers };
786
+ };
787
+ export const getCreateApplicationUrl = () => {
788
+ return `https://iam.leaflow.cloud/api/v1/applications`;
789
+ };
790
+ /**
791
+ * Creates an OIDC client for an application of this project. Applications authenticate
792
+ * against `https://auth.leaflow.net/realms/user`.
793
+ *
794
+ * The `secret` is present only for a confidential application, and only in this response.
795
+ * It is not stored and cannot be read again; use `:rotateSecret` to obtain a new one.
796
+ *
797
+ * Any account of this platform may sign in to the application. Membership of this project
798
+ * is confirmed only when a token is exchanged for a scoped token.
799
+ * @summary Create an application
800
+ */
801
+ export const createApplication = async (createApplicationRequestBody, options, fetchFn) => {
802
+ const getHeaders = (h) => {
803
+ if (!h)
804
+ return {};
805
+ if (h instanceof Headers)
806
+ return Object.fromEntries(h.entries());
807
+ if (Symbol.iterator in h) {
808
+ return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
809
+ }
810
+ const headers = {};
811
+ for (const [name, value] of Object.entries(h)) {
812
+ if (value !== undefined)
813
+ headers[name] = value;
814
+ }
815
+ return headers;
816
+ };
817
+ const res = await (fetchFn ?? fetch)(getCreateApplicationUrl(), {
818
+ ...options,
819
+ method: "POST",
820
+ headers: { "Content-Type": "application/json", ...getHeaders(options?.headers) },
821
+ body: JSON.stringify(createApplicationRequestBody),
822
+ });
823
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
824
+ const data = body ? JSON.parse(body) : {};
825
+ return { data, status: res.status, headers: res.headers };
826
+ };
827
+ export const getGetApplicationUrl = (applicationId) => {
828
+ return `https://iam.leaflow.cloud/api/v1/applications/${encodeURIComponent(String(applicationId))}`;
829
+ };
830
+ /**
831
+ * An application that has been deleted is still returned, with `status` `ARCHIVED`.
832
+ * @summary Get an application
833
+ */
834
+ export const getApplication = async (applicationId, options, fetchFn) => {
835
+ const res = await (fetchFn ?? fetch)(getGetApplicationUrl(applicationId), {
836
+ ...options,
837
+ method: "GET",
838
+ });
839
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
840
+ const data = body ? JSON.parse(body) : {};
841
+ return { data, status: res.status, headers: res.headers };
842
+ };
843
+ export const getUpdateApplicationUrl = (applicationId) => {
844
+ return `https://iam.leaflow.cloud/api/v1/applications/${encodeURIComponent(String(applicationId))}`;
845
+ };
846
+ /**
847
+ * Only the name and the redirect URIs can change. The type and `client_id` never change.
848
+ *
849
+ * An application that is disabled or deleted cannot be updated.
850
+ * @summary Update an application
851
+ */
852
+ export const updateApplication = async (applicationId, updateApplicationRequestBody, options, fetchFn) => {
853
+ const getHeaders = (h) => {
854
+ if (!h)
855
+ return {};
856
+ if (h instanceof Headers)
857
+ return Object.fromEntries(h.entries());
858
+ if (Symbol.iterator in h) {
859
+ return Object.fromEntries(Array.from(h, (entry) => Array.from(entry)));
860
+ }
861
+ const headers = {};
862
+ for (const [name, value] of Object.entries(h)) {
863
+ if (value !== undefined)
864
+ headers[name] = value;
865
+ }
866
+ return headers;
867
+ };
868
+ const res = await (fetchFn ?? fetch)(getUpdateApplicationUrl(applicationId), {
869
+ ...options,
870
+ method: "PATCH",
871
+ headers: { "Content-Type": "application/json", ...getHeaders(options?.headers) },
872
+ body: JSON.stringify(updateApplicationRequestBody),
873
+ });
874
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
875
+ const data = body ? JSON.parse(body) : {};
876
+ return { data, status: res.status, headers: res.headers };
877
+ };
878
+ export const getDeleteApplicationUrl = (applicationId) => {
879
+ return `https://iam.leaflow.cloud/api/v1/applications/${encodeURIComponent(String(applicationId))}`;
880
+ };
881
+ /**
882
+ * The application is removed from the identity provider and its row is retained with
883
+ * `status` `ARCHIVED`. Repeating the call returns the same resource.
884
+ * @summary Delete an application
885
+ */
886
+ export const deleteApplication = async (applicationId, options, fetchFn) => {
887
+ const res = await (fetchFn ?? fetch)(getDeleteApplicationUrl(applicationId), {
888
+ ...options,
889
+ method: "DELETE",
890
+ });
891
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
892
+ const data = body ? JSON.parse(body) : {};
893
+ return { data, status: res.status, headers: res.headers };
894
+ };
895
+ export const getRotateApplicationSecretUrl = (applicationId) => {
896
+ return `https://iam.leaflow.cloud/api/v1/applications/${encodeURIComponent(String(applicationId))}:rotateSecret`;
897
+ };
898
+ /**
899
+ * Returns a new secret and invalidates the previous one immediately. Only an active
900
+ * confidential application has a secret; any other state answers 412.
901
+ * @summary Rotate the secret of an application
902
+ */
903
+ export const rotateApplicationSecret = async (applicationId, options, fetchFn) => {
904
+ const res = await (fetchFn ?? fetch)(getRotateApplicationSecretUrl(applicationId), {
905
+ ...options,
906
+ method: "POST",
907
+ });
908
+ const body = [204, 205, 304].includes(res.status) ? null : await res.text();
909
+ const data = body ? JSON.parse(body) : {};
910
+ return { data, status: res.status, headers: res.headers };
911
+ };
@@ -545,6 +545,84 @@ export interface RenameSSHKeyRequestBody {
545
545
  */
546
546
  name: string;
547
547
  }
548
+ export type ApplicationResourceType = (typeof ApplicationResourceType)[keyof typeof ApplicationResourceType];
549
+ export declare const ApplicationResourceType: {
550
+ readonly PUBLIC: "PUBLIC";
551
+ readonly CONFIDENTIAL: "CONFIDENTIAL";
552
+ };
553
+ export type ApplicationResourceStatus = (typeof ApplicationResourceStatus)[keyof typeof ApplicationResourceStatus];
554
+ export declare const ApplicationResourceStatus: {
555
+ readonly ACTIVE: "ACTIVE";
556
+ readonly DISABLED: "DISABLED";
557
+ readonly ARCHIVED: "ARCHIVED";
558
+ };
559
+ export interface ApplicationResource {
560
+ id: string;
561
+ name: string;
562
+ type: ApplicationResourceType;
563
+ client_id: string;
564
+ redirect_uris: string[];
565
+ status: ApplicationResourceStatus;
566
+ /** @nullable */
567
+ created_by: string | null;
568
+ created_at: string;
569
+ /** @nullable */
570
+ disabled_at: string | null;
571
+ /** @nullable */
572
+ secret_rotated_at: string | null;
573
+ }
574
+ export type CreateApplicationRequestBodyType = (typeof CreateApplicationRequestBodyType)[keyof typeof CreateApplicationRequestBodyType];
575
+ export declare const CreateApplicationRequestBodyType: {
576
+ readonly PUBLIC: "PUBLIC";
577
+ readonly CONFIDENTIAL: "CONFIDENTIAL";
578
+ };
579
+ export interface CreateApplicationRequestBody {
580
+ /**
581
+ * @minLength 1
582
+ * @maxLength 128
583
+ */
584
+ name: string;
585
+ type: CreateApplicationRequestBodyType;
586
+ /**
587
+ * @minItems 1
588
+ * @maxItems 10
589
+ * @items.minLength 1
590
+ * @items.maxLength 2048
591
+ */
592
+ redirect_uris: string[];
593
+ }
594
+ export interface CreateApplicationResponseBody {
595
+ application: ApplicationResource;
596
+ /**
597
+ * Present only for a confidential application, and only in this response
598
+ * @nullable
599
+ */
600
+ secret: string | null;
601
+ }
602
+ export interface UpdateApplicationRequestBody {
603
+ /**
604
+ * @minLength 1
605
+ * @maxLength 128
606
+ */
607
+ name?: string;
608
+ /**
609
+ * @minItems 1
610
+ * @maxItems 10
611
+ * @items.minLength 1
612
+ * @items.maxLength 2048
613
+ */
614
+ redirect_uris?: string[];
615
+ }
616
+ export interface RotateApplicationSecretResponseBody {
617
+ secret: string;
618
+ rotated_at: string;
619
+ }
620
+ export interface LengthAwarePageApplicationResource {
621
+ items: ApplicationResource[];
622
+ limit: number;
623
+ offset: number;
624
+ total: number;
625
+ }
548
626
  /**
549
627
  * Pagination metadata for stable numbered pages. total_count is returned only when the operation can determine it without an unbounded scan.
550
628
  */
@@ -633,3 +711,21 @@ export declare const ListSshKeysStatus: {
633
711
  readonly ACTIVE: "ACTIVE";
634
712
  readonly REVOKED: "REVOKED";
635
713
  };
714
+ export type ListApplicationsParams = {
715
+ /**
716
+ * Items returned in this page. Defaults to 50; at most 200.
717
+ * @minimum 1
718
+ * @maximum 200
719
+ */
720
+ limit?: number;
721
+ /**
722
+ * Items to skip. Defaults to 0; at most 10000.
723
+ * @minimum 0
724
+ * @maximum 10000
725
+ */
726
+ offset?: number;
727
+ /**
728
+ * Include applications that have been deleted
729
+ */
730
+ include_archived?: boolean;
731
+ };
@@ -31,6 +31,19 @@ export const CreateSSHKeyRequestBodyOwner = {
31
31
  me: "me",
32
32
  project: "project",
33
33
  };
34
+ export const ApplicationResourceType = {
35
+ PUBLIC: "PUBLIC",
36
+ CONFIDENTIAL: "CONFIDENTIAL",
37
+ };
38
+ export const ApplicationResourceStatus = {
39
+ ACTIVE: "ACTIVE",
40
+ DISABLED: "DISABLED",
41
+ ARCHIVED: "ARCHIVED",
42
+ };
43
+ export const CreateApplicationRequestBodyType = {
44
+ PUBLIC: "PUBLIC",
45
+ CONFIDENTIAL: "CONFIDENTIAL",
46
+ };
34
47
  export const ListSshKeysStatus = {
35
48
  ACTIVE: "ACTIVE",
36
49
  REVOKED: "REVOKED",
@@ -278,3 +278,74 @@ export declare const RenameSshKeyBody: zod.ZodObject<{
278
278
  export declare const RevokeSshKeyParams: zod.ZodObject<{
279
279
  keyId: zod.ZodUUID;
280
280
  }, zod.z.core.$strict>;
281
+ /**
282
+ * Disabled applications are listed. Archived applications are omitted unless
283
+ * `include_archived` is true. An application that is still being created is not listed.
284
+ * @summary List the applications of this project
285
+ */
286
+ export declare const listApplicationsQueryLimitDefault = 50;
287
+ export declare const listApplicationsQueryLimitMax = 200;
288
+ export declare const listApplicationsQueryOffsetDefault = 0;
289
+ export declare const listApplicationsQueryOffsetMin = 0;
290
+ export declare const listApplicationsQueryOffsetMax = 10000;
291
+ export declare const listApplicationsQueryIncludeArchivedDefault = false;
292
+ export declare const ListApplicationsQueryParams: zod.ZodObject<{
293
+ limit: zod.ZodDefault<zod.ZodInt>;
294
+ offset: zod.ZodDefault<zod.ZodInt>;
295
+ include_archived: zod.ZodDefault<zod.ZodBoolean>;
296
+ }, zod.z.core.$strict>;
297
+ /**
298
+ * Creates an OIDC client for an application of this project. Applications authenticate
299
+ * against `https://auth.leaflow.net/realms/user`.
300
+ *
301
+ * The `secret` is present only for a confidential application, and only in this response.
302
+ * It is not stored and cannot be read again; use `:rotateSecret` to obtain a new one.
303
+ *
304
+ * Any account of this platform may sign in to the application. Membership of this project
305
+ * is confirmed only when a token is exchanged for a scoped token.
306
+ * @summary Create an application
307
+ */
308
+ export declare const CreateApplicationBody: zod.ZodObject<{
309
+ name: zod.ZodString;
310
+ type: zod.ZodEnum<{
311
+ PUBLIC: "PUBLIC";
312
+ CONFIDENTIAL: "CONFIDENTIAL";
313
+ }>;
314
+ redirect_uris: zod.ZodArray<zod.ZodString>;
315
+ }, zod.z.core.$strict>;
316
+ /**
317
+ * An application that has been deleted is still returned, with `status` `ARCHIVED`.
318
+ * @summary Get an application
319
+ */
320
+ export declare const GetApplicationParams: zod.ZodObject<{
321
+ applicationId: zod.ZodUUID;
322
+ }, zod.z.core.$strict>;
323
+ /**
324
+ * Only the name and the redirect URIs can change. The type and `client_id` never change.
325
+ *
326
+ * An application that is disabled or deleted cannot be updated.
327
+ * @summary Update an application
328
+ */
329
+ export declare const UpdateApplicationParams: zod.ZodObject<{
330
+ applicationId: zod.ZodUUID;
331
+ }, zod.z.core.$strict>;
332
+ export declare const UpdateApplicationBody: zod.ZodObject<{
333
+ name: zod.ZodOptional<zod.ZodString>;
334
+ redirect_uris: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
335
+ }, zod.z.core.$strict>;
336
+ /**
337
+ * The application is removed from the identity provider and its row is retained with
338
+ * `status` `ARCHIVED`. Repeating the call returns the same resource.
339
+ * @summary Delete an application
340
+ */
341
+ export declare const DeleteApplicationParams: zod.ZodObject<{
342
+ applicationId: zod.ZodUUID;
343
+ }, zod.z.core.$strict>;
344
+ /**
345
+ * Returns a new secret and invalidates the previous one immediately. Only an active
346
+ * confidential application has a secret; any other state answers 412.
347
+ * @summary Rotate the secret of an application
348
+ */
349
+ export declare const RotateApplicationSecretParams: zod.ZodObject<{
350
+ applicationId: zod.ZodUUID;
351
+ }, zod.z.core.$strict>;
@@ -15,6 +15,7 @@
15
15
  import * as zod from "zod";
16
16
  import { AttachPolicyRequestBody } from "./validators/attachPolicyRequestBody.zod.js";
17
17
  import { BatchGetMembersRequestBody } from "./validators/batchGetMembersRequestBody.zod.js";
18
+ import { CreateApplicationRequestBody } from "./validators/createApplicationRequestBody.zod.js";
18
19
  import { CreateRoleRequestBody } from "./validators/createRoleRequestBody.zod.js";
19
20
  import { CreateSSHKeyRequestBody } from "./validators/createSSHKeyRequestBody.zod.js";
20
21
  import { IssueInvitationRequestBody } from "./validators/issueInvitationRequestBody.zod.js";
@@ -23,6 +24,7 @@ import { SetMemberPermissionsRequestBody } from "./validators/setMemberPermissio
23
24
  import { SetMemberRolesRequestBody } from "./validators/setMemberRolesRequestBody.zod.js";
24
25
  import { SetProjectSlugRequestBody } from "./validators/setProjectSlugRequestBody.zod.js";
25
26
  import { TransferOwnershipRequestBody } from "./validators/transferOwnershipRequestBody.zod.js";
27
+ import { UpdateApplicationRequestBody } from "./validators/updateApplicationRequestBody.zod.js";
26
28
  import { UpdatePolicyRequestBody } from "./validators/updatePolicyRequestBody.zod.js";
27
29
  import { UpdateProjectRequestBody } from "./validators/updateProjectRequestBody.zod.js";
28
30
  import { UpdateRoleRequestBody } from "./validators/updateRoleRequestBody.zod.js";
@@ -273,3 +275,77 @@ export const RenameSshKeyBody = RenameSSHKeyRequestBody;
273
275
  export const RevokeSshKeyParams = zod.strictObject({
274
276
  keyId: zod.uuid(),
275
277
  });
278
+ /**
279
+ * Disabled applications are listed. Archived applications are omitted unless
280
+ * `include_archived` is true. An application that is still being created is not listed.
281
+ * @summary List the applications of this project
282
+ */
283
+ export const listApplicationsQueryLimitDefault = 50;
284
+ export const listApplicationsQueryLimitMax = 200;
285
+ export const listApplicationsQueryOffsetDefault = 0;
286
+ export const listApplicationsQueryOffsetMin = 0;
287
+ export const listApplicationsQueryOffsetMax = 10000;
288
+ export const listApplicationsQueryIncludeArchivedDefault = false;
289
+ export const ListApplicationsQueryParams = zod.strictObject({
290
+ limit: zod
291
+ .int()
292
+ .min(1)
293
+ .max(listApplicationsQueryLimitMax)
294
+ .default(listApplicationsQueryLimitDefault)
295
+ .describe("Items returned in this page. Defaults to 50; at most 200."),
296
+ offset: zod
297
+ .int()
298
+ .min(listApplicationsQueryOffsetMin)
299
+ .max(listApplicationsQueryOffsetMax)
300
+ .default(listApplicationsQueryOffsetDefault)
301
+ .describe("Items to skip. Defaults to 0; at most 10000."),
302
+ include_archived: zod
303
+ .boolean()
304
+ .default(listApplicationsQueryIncludeArchivedDefault)
305
+ .describe("Include applications that have been deleted"),
306
+ });
307
+ /**
308
+ * Creates an OIDC client for an application of this project. Applications authenticate
309
+ * against `https://auth.leaflow.net/realms/user`.
310
+ *
311
+ * The `secret` is present only for a confidential application, and only in this response.
312
+ * It is not stored and cannot be read again; use `:rotateSecret` to obtain a new one.
313
+ *
314
+ * Any account of this platform may sign in to the application. Membership of this project
315
+ * is confirmed only when a token is exchanged for a scoped token.
316
+ * @summary Create an application
317
+ */
318
+ export const CreateApplicationBody = CreateApplicationRequestBody;
319
+ /**
320
+ * An application that has been deleted is still returned, with `status` `ARCHIVED`.
321
+ * @summary Get an application
322
+ */
323
+ export const GetApplicationParams = zod.strictObject({
324
+ applicationId: zod.uuid(),
325
+ });
326
+ /**
327
+ * Only the name and the redirect URIs can change. The type and `client_id` never change.
328
+ *
329
+ * An application that is disabled or deleted cannot be updated.
330
+ * @summary Update an application
331
+ */
332
+ export const UpdateApplicationParams = zod.strictObject({
333
+ applicationId: zod.uuid(),
334
+ });
335
+ export const UpdateApplicationBody = UpdateApplicationRequestBody;
336
+ /**
337
+ * The application is removed from the identity provider and its row is retained with
338
+ * `status` `ARCHIVED`. Repeating the call returns the same resource.
339
+ * @summary Delete an application
340
+ */
341
+ export const DeleteApplicationParams = zod.strictObject({
342
+ applicationId: zod.uuid(),
343
+ });
344
+ /**
345
+ * Returns a new secret and invalidates the previous one immediately. Only an active
346
+ * confidential application has a secret; any other state answers 412.
347
+ * @summary Rotate the secret of an application
348
+ */
349
+ export const RotateApplicationSecretParams = zod.strictObject({
350
+ applicationId: zod.uuid(),
351
+ });
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export declare const ApplicationResource: zod.ZodObject<{
17
+ id: zod.ZodUUID;
18
+ name: zod.ZodString;
19
+ type: zod.ZodEnum<{
20
+ PUBLIC: "PUBLIC";
21
+ CONFIDENTIAL: "CONFIDENTIAL";
22
+ }>;
23
+ client_id: zod.ZodString;
24
+ redirect_uris: zod.ZodArray<zod.ZodString>;
25
+ status: zod.ZodEnum<{
26
+ ACTIVE: "ACTIVE";
27
+ DISABLED: "DISABLED";
28
+ ARCHIVED: "ARCHIVED";
29
+ }>;
30
+ created_by: zod.ZodNullable<zod.ZodString>;
31
+ created_at: zod.z.ZodISODateTime;
32
+ disabled_at: zod.ZodNullable<zod.z.ZodISODateTime>;
33
+ secret_rotated_at: zod.ZodNullable<zod.z.ZodISODateTime>;
34
+ }, zod.z.core.$strict>;
35
+ export type ApplicationResource = zod.input<typeof ApplicationResource>;
36
+ export type ApplicationResourceOutput = zod.output<typeof ApplicationResource>;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export const ApplicationResource = zod.strictObject({
17
+ id: zod.uuid(),
18
+ name: zod.string(),
19
+ type: zod.enum(["PUBLIC", "CONFIDENTIAL"]),
20
+ client_id: zod.string(),
21
+ redirect_uris: zod.array(zod.string()),
22
+ status: zod.enum(["ACTIVE", "DISABLED", "ARCHIVED"]),
23
+ created_by: zod.string().nullable(),
24
+ created_at: zod.iso.datetime({ offset: true }),
25
+ disabled_at: zod.iso.datetime({ offset: true }).nullable(),
26
+ secret_rotated_at: zod.iso.datetime({ offset: true }).nullable(),
27
+ });
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export declare const createApplicationRequestBodyNameMax = 128;
17
+ export declare const createApplicationRequestBodyRedirectUrisItemMax = 2048;
18
+ export declare const createApplicationRequestBodyRedirectUrisMax = 10;
19
+ export declare const CreateApplicationRequestBody: zod.ZodObject<{
20
+ name: zod.ZodString;
21
+ type: zod.ZodEnum<{
22
+ PUBLIC: "PUBLIC";
23
+ CONFIDENTIAL: "CONFIDENTIAL";
24
+ }>;
25
+ redirect_uris: zod.ZodArray<zod.ZodString>;
26
+ }, zod.z.core.$strict>;
27
+ export type CreateApplicationRequestBody = zod.input<typeof CreateApplicationRequestBody>;
28
+ export type CreateApplicationRequestBodyOutput = zod.output<typeof CreateApplicationRequestBody>;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export const createApplicationRequestBodyNameMax = 128;
17
+ export const createApplicationRequestBodyRedirectUrisItemMax = 2048;
18
+ export const createApplicationRequestBodyRedirectUrisMax = 10;
19
+ export const CreateApplicationRequestBody = zod.strictObject({
20
+ name: zod.string().min(1).max(createApplicationRequestBodyNameMax),
21
+ type: zod.enum(["PUBLIC", "CONFIDENTIAL"]),
22
+ redirect_uris: zod
23
+ .array(zod.string().min(1).max(createApplicationRequestBodyRedirectUrisItemMax))
24
+ .min(1)
25
+ .max(createApplicationRequestBodyRedirectUrisMax),
26
+ });
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export declare const CreateApplicationResponseBody: zod.ZodObject<{
17
+ application: zod.ZodObject<{
18
+ id: zod.ZodUUID;
19
+ name: zod.ZodString;
20
+ type: zod.ZodEnum<{
21
+ PUBLIC: "PUBLIC";
22
+ CONFIDENTIAL: "CONFIDENTIAL";
23
+ }>;
24
+ client_id: zod.ZodString;
25
+ redirect_uris: zod.ZodArray<zod.ZodString>;
26
+ status: zod.ZodEnum<{
27
+ ACTIVE: "ACTIVE";
28
+ DISABLED: "DISABLED";
29
+ ARCHIVED: "ARCHIVED";
30
+ }>;
31
+ created_by: zod.ZodNullable<zod.ZodString>;
32
+ created_at: zod.z.ZodISODateTime;
33
+ disabled_at: zod.ZodNullable<zod.z.ZodISODateTime>;
34
+ secret_rotated_at: zod.ZodNullable<zod.z.ZodISODateTime>;
35
+ }, zod.z.core.$strict>;
36
+ secret: zod.ZodNullable<zod.ZodString>;
37
+ }, zod.z.core.$strict>;
38
+ export type CreateApplicationResponseBody = zod.input<typeof CreateApplicationResponseBody>;
39
+ export type CreateApplicationResponseBodyOutput = zod.output<typeof CreateApplicationResponseBody>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ import { ApplicationResource } from "./applicationResource.zod.js";
17
+ export const CreateApplicationResponseBody = zod.strictObject({
18
+ application: ApplicationResource,
19
+ secret: zod
20
+ .string()
21
+ .nullable()
22
+ .describe("Present only for a confidential application, and only in this response"),
23
+ });
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export declare const LengthAwarePageApplicationResource: zod.ZodObject<{
17
+ items: zod.ZodArray<zod.ZodObject<{
18
+ id: zod.ZodUUID;
19
+ name: zod.ZodString;
20
+ type: zod.ZodEnum<{
21
+ PUBLIC: "PUBLIC";
22
+ CONFIDENTIAL: "CONFIDENTIAL";
23
+ }>;
24
+ client_id: zod.ZodString;
25
+ redirect_uris: zod.ZodArray<zod.ZodString>;
26
+ status: zod.ZodEnum<{
27
+ ACTIVE: "ACTIVE";
28
+ DISABLED: "DISABLED";
29
+ ARCHIVED: "ARCHIVED";
30
+ }>;
31
+ created_by: zod.ZodNullable<zod.ZodString>;
32
+ created_at: zod.z.ZodISODateTime;
33
+ disabled_at: zod.ZodNullable<zod.z.ZodISODateTime>;
34
+ secret_rotated_at: zod.ZodNullable<zod.z.ZodISODateTime>;
35
+ }, zod.z.core.$strict>>;
36
+ limit: zod.ZodInt;
37
+ offset: zod.ZodInt;
38
+ total: zod.ZodInt;
39
+ }, zod.z.core.$strict>;
40
+ export type LengthAwarePageApplicationResource = zod.input<typeof LengthAwarePageApplicationResource>;
41
+ export type LengthAwarePageApplicationResourceOutput = zod.output<typeof LengthAwarePageApplicationResource>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ import { ApplicationResource } from "./applicationResource.zod.js";
17
+ export const LengthAwarePageApplicationResource = zod.strictObject({
18
+ items: zod.array(ApplicationResource),
19
+ limit: zod.int(),
20
+ offset: zod.int(),
21
+ total: zod.int(),
22
+ });
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export declare const listApplicationsParamsLimitDefault = 50;
17
+ export declare const listApplicationsParamsLimitMax = 200;
18
+ export declare const listApplicationsParamsOffsetDefault = 0;
19
+ export declare const listApplicationsParamsOffsetMin = 0;
20
+ export declare const listApplicationsParamsOffsetMax = 10000;
21
+ export declare const listApplicationsParamsIncludeArchivedDefault = false;
22
+ export declare const ListApplicationsParams: zod.ZodObject<{
23
+ limit: zod.ZodDefault<zod.ZodInt>;
24
+ offset: zod.ZodDefault<zod.ZodInt>;
25
+ include_archived: zod.ZodDefault<zod.ZodBoolean>;
26
+ }, zod.z.core.$strict>;
27
+ export type ListApplicationsParams = zod.input<typeof ListApplicationsParams>;
28
+ export type ListApplicationsParamsOutput = zod.output<typeof ListApplicationsParams>;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export const listApplicationsParamsLimitDefault = 50;
17
+ export const listApplicationsParamsLimitMax = 200;
18
+ export const listApplicationsParamsOffsetDefault = 0;
19
+ export const listApplicationsParamsOffsetMin = 0;
20
+ export const listApplicationsParamsOffsetMax = 10000;
21
+ export const listApplicationsParamsIncludeArchivedDefault = false;
22
+ export const ListApplicationsParams = zod.strictObject({
23
+ limit: zod
24
+ .int()
25
+ .min(1)
26
+ .max(listApplicationsParamsLimitMax)
27
+ .default(listApplicationsParamsLimitDefault),
28
+ offset: zod
29
+ .int()
30
+ .min(listApplicationsParamsOffsetMin)
31
+ .max(listApplicationsParamsOffsetMax)
32
+ .default(listApplicationsParamsOffsetDefault),
33
+ include_archived: zod.boolean().default(listApplicationsParamsIncludeArchivedDefault),
34
+ });
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export declare const RotateApplicationSecretResponseBody: zod.ZodObject<{
17
+ secret: zod.ZodString;
18
+ rotated_at: zod.z.ZodISODateTime;
19
+ }, zod.z.core.$strict>;
20
+ export type RotateApplicationSecretResponseBody = zod.input<typeof RotateApplicationSecretResponseBody>;
21
+ export type RotateApplicationSecretResponseBodyOutput = zod.output<typeof RotateApplicationSecretResponseBody>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export const RotateApplicationSecretResponseBody = zod.strictObject({
17
+ secret: zod.string(),
18
+ rotated_at: zod.iso.datetime({ offset: true }),
19
+ });
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export declare const updateApplicationRequestBodyNameMax = 128;
17
+ export declare const updateApplicationRequestBodyRedirectUrisItemMax = 2048;
18
+ export declare const updateApplicationRequestBodyRedirectUrisMax = 10;
19
+ export declare const UpdateApplicationRequestBody: zod.ZodObject<{
20
+ name: zod.ZodOptional<zod.ZodString>;
21
+ redirect_uris: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
22
+ }, zod.z.core.$strict>;
23
+ export type UpdateApplicationRequestBody = zod.input<typeof UpdateApplicationRequestBody>;
24
+ export type UpdateApplicationRequestBodyOutput = zod.output<typeof UpdateApplicationRequestBody>;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and SSH keys.
6
+ *
7
+ * Every request carries a scoped token; see the `bearerAuth` security scheme. No path carries a
8
+ * `projectId`, and the current project is the one the token states. Tokens are obtained from the
9
+ * account API.
10
+ *
11
+ * `GET /api/v1/membership` returns the roles and permissions the caller holds in the current
12
+ * project. It does not state whether a given operation is allowed; each service declares which permission its own operations require.
13
+ * OpenAPI spec version: 1.0.0
14
+ */
15
+ import * as zod from "zod";
16
+ export const updateApplicationRequestBodyNameMax = 128;
17
+ export const updateApplicationRequestBodyRedirectUrisItemMax = 2048;
18
+ export const updateApplicationRequestBodyRedirectUrisMax = 10;
19
+ export const UpdateApplicationRequestBody = zod.strictObject({
20
+ name: zod.string().min(1).max(updateApplicationRequestBodyNameMax).optional(),
21
+ redirect_uris: zod
22
+ .array(zod.string().min(1).max(updateApplicationRequestBodyRedirectUrisItemMax))
23
+ .min(1)
24
+ .max(updateApplicationRequestBodyRedirectUrisMax)
25
+ .optional(),
26
+ });
@@ -266,8 +266,8 @@ export declare const ListServersQueryParams: zod.ZodObject<{
266
266
  monitoring_status: zod.ZodOptional<zod.ZodEnum<{
267
267
  ACTIVE: "ACTIVE";
268
268
  PENDING: "PENDING";
269
- FAILED: "FAILED";
270
269
  DISABLED: "DISABLED";
270
+ FAILED: "FAILED";
271
271
  }>>;
272
272
  }, zod.z.core.$strict>;
273
273
  /**
@@ -38,8 +38,8 @@ export declare const LengthAwarePageServerResource: zod.ZodObject<{
38
38
  monitoring_status: zod.ZodEnum<{
39
39
  ACTIVE: "ACTIVE";
40
40
  PENDING: "PENDING";
41
- FAILED: "FAILED";
42
41
  DISABLED: "DISABLED";
42
+ FAILED: "FAILED";
43
43
  }>;
44
44
  name: zod.ZodString;
45
45
  project_id: zod.ZodUUID;
@@ -32,8 +32,8 @@ export declare const ListServersParams: zod.ZodObject<{
32
32
  monitoring_status: zod.ZodOptional<zod.ZodEnum<{
33
33
  ACTIVE: "ACTIVE";
34
34
  PENDING: "PENDING";
35
- FAILED: "FAILED";
36
35
  DISABLED: "DISABLED";
36
+ FAILED: "FAILED";
37
37
  }>>;
38
38
  }, zod.z.core.$strict>;
39
39
  export type ListServersParams = zod.input<typeof ListServersParams>;
@@ -46,8 +46,8 @@ export declare const ServerEnrollmentResponseBody: zod.ZodObject<{
46
46
  monitoring_status: zod.ZodEnum<{
47
47
  ACTIVE: "ACTIVE";
48
48
  PENDING: "PENDING";
49
- FAILED: "FAILED";
50
49
  DISABLED: "DISABLED";
50
+ FAILED: "FAILED";
51
51
  }>;
52
52
  name: zod.ZodString;
53
53
  project_id: zod.ZodUUID;
@@ -37,8 +37,8 @@ export declare const ServerResource: zod.ZodObject<{
37
37
  monitoring_status: zod.ZodEnum<{
38
38
  ACTIVE: "ACTIVE";
39
39
  PENDING: "PENDING";
40
- FAILED: "FAILED";
41
40
  DISABLED: "DISABLED";
41
+ FAILED: "FAILED";
42
42
  }>;
43
43
  name: zod.ZodString;
44
44
  project_id: zod.ZodUUID;
package/dist/routes.d.ts CHANGED
@@ -3069,6 +3069,54 @@ export declare const routes: readonly [{
3069
3069
  readonly operationId: "revoke-ssh-key";
3070
3070
  readonly securityScheme: "ScopedToken";
3071
3071
  readonly upstreamUrl: "https://iam.leaflow.cloud";
3072
+ }, {
3073
+ readonly service: "iam";
3074
+ readonly contract: "iam";
3075
+ readonly method: "GET";
3076
+ readonly path: "/api/v1/applications";
3077
+ readonly operationId: "list-applications";
3078
+ readonly securityScheme: "ScopedToken";
3079
+ readonly upstreamUrl: "https://iam.leaflow.cloud";
3080
+ }, {
3081
+ readonly service: "iam";
3082
+ readonly contract: "iam";
3083
+ readonly method: "POST";
3084
+ readonly path: "/api/v1/applications";
3085
+ readonly operationId: "create-application";
3086
+ readonly securityScheme: "ScopedToken";
3087
+ readonly upstreamUrl: "https://iam.leaflow.cloud";
3088
+ }, {
3089
+ readonly service: "iam";
3090
+ readonly contract: "iam";
3091
+ readonly method: "GET";
3092
+ readonly path: "/api/v1/applications/{applicationId}";
3093
+ readonly operationId: "get-application";
3094
+ readonly securityScheme: "ScopedToken";
3095
+ readonly upstreamUrl: "https://iam.leaflow.cloud";
3096
+ }, {
3097
+ readonly service: "iam";
3098
+ readonly contract: "iam";
3099
+ readonly method: "PATCH";
3100
+ readonly path: "/api/v1/applications/{applicationId}";
3101
+ readonly operationId: "update-application";
3102
+ readonly securityScheme: "ScopedToken";
3103
+ readonly upstreamUrl: "https://iam.leaflow.cloud";
3104
+ }, {
3105
+ readonly service: "iam";
3106
+ readonly contract: "iam";
3107
+ readonly method: "DELETE";
3108
+ readonly path: "/api/v1/applications/{applicationId}";
3109
+ readonly operationId: "delete-application";
3110
+ readonly securityScheme: "ScopedToken";
3111
+ readonly upstreamUrl: "https://iam.leaflow.cloud";
3112
+ }, {
3113
+ readonly service: "iam";
3114
+ readonly contract: "iam";
3115
+ readonly method: "POST";
3116
+ readonly path: "/api/v1/applications/{applicationId}:rotateSecret";
3117
+ readonly operationId: "rotate-application-secret";
3118
+ readonly securityScheme: "ScopedToken";
3119
+ readonly upstreamUrl: "https://iam.leaflow.cloud";
3072
3120
  }, {
3073
3121
  readonly service: "membership";
3074
3122
  readonly contract: "membership";
package/dist/routes.js CHANGED
@@ -3453,6 +3453,60 @@ export const routes = [
3453
3453
  securityScheme: "ScopedToken",
3454
3454
  upstreamUrl: "https://iam.leaflow.cloud",
3455
3455
  },
3456
+ {
3457
+ service: "iam",
3458
+ contract: "iam",
3459
+ method: "GET",
3460
+ path: "/api/v1/applications",
3461
+ operationId: "list-applications",
3462
+ securityScheme: "ScopedToken",
3463
+ upstreamUrl: "https://iam.leaflow.cloud",
3464
+ },
3465
+ {
3466
+ service: "iam",
3467
+ contract: "iam",
3468
+ method: "POST",
3469
+ path: "/api/v1/applications",
3470
+ operationId: "create-application",
3471
+ securityScheme: "ScopedToken",
3472
+ upstreamUrl: "https://iam.leaflow.cloud",
3473
+ },
3474
+ {
3475
+ service: "iam",
3476
+ contract: "iam",
3477
+ method: "GET",
3478
+ path: "/api/v1/applications/{applicationId}",
3479
+ operationId: "get-application",
3480
+ securityScheme: "ScopedToken",
3481
+ upstreamUrl: "https://iam.leaflow.cloud",
3482
+ },
3483
+ {
3484
+ service: "iam",
3485
+ contract: "iam",
3486
+ method: "PATCH",
3487
+ path: "/api/v1/applications/{applicationId}",
3488
+ operationId: "update-application",
3489
+ securityScheme: "ScopedToken",
3490
+ upstreamUrl: "https://iam.leaflow.cloud",
3491
+ },
3492
+ {
3493
+ service: "iam",
3494
+ contract: "iam",
3495
+ method: "DELETE",
3496
+ path: "/api/v1/applications/{applicationId}",
3497
+ operationId: "delete-application",
3498
+ securityScheme: "ScopedToken",
3499
+ upstreamUrl: "https://iam.leaflow.cloud",
3500
+ },
3501
+ {
3502
+ service: "iam",
3503
+ contract: "iam",
3504
+ method: "POST",
3505
+ path: "/api/v1/applications/{applicationId}:rotateSecret",
3506
+ operationId: "rotate-application-secret",
3507
+ securityScheme: "ScopedToken",
3508
+ upstreamUrl: "https://iam.leaflow.cloud",
3509
+ },
3456
3510
  {
3457
3511
  service: "membership",
3458
3512
  contract: "membership",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflow/sdk",
3
- "version": "0.177.1",
3
+ "version": "0.178.0",
4
4
  "description": "Leaflow 平台 API 的 TypeScript SDK",
5
5
  "license": "MIT",
6
6
  "repository": {