@leaflow/sdk 0.196.0 → 0.198.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 (47) hide show
  1. package/dist/billing/v1/generated/functions.d.ts +1 -1
  2. package/dist/billing/v1/generated/functions.js +1 -1
  3. package/dist/billing/v1/generated/models.d.ts +15 -6
  4. package/dist/billing/v1/generated/models.js +5 -5
  5. package/dist/billing/v1/generated/schemas.zod.d.ts +7 -1
  6. package/dist/billing/v1/generated/schemas.zod.js +9 -1
  7. package/dist/billing/v1/generated/validators/billingAccount.zod.js +2 -1
  8. package/dist/billing/v1/generated/validators/billingAccountStatus.zod.d.ts +15 -0
  9. package/dist/billing/v1/generated/validators/billingAccountStatus.zod.js +11 -0
  10. package/dist/billing/v1/generated/validators/listBillingAccountsParams.zod.d.ts +6 -0
  11. package/dist/billing/v1/generated/validators/listBillingAccountsParams.zod.js +3 -0
  12. package/dist/iam/v1/generated/functions.d.ts +46 -103
  13. package/dist/iam/v1/generated/functions.js +29 -114
  14. package/dist/iam/v1/generated/models.d.ts +53 -118
  15. package/dist/iam/v1/generated/models.js +2 -6
  16. package/dist/iam/v1/generated/schemas.zod.d.ts +31 -62
  17. package/dist/iam/v1/generated/schemas.zod.js +35 -53
  18. package/dist/iam/v1/generated/validators/{updatePolicyRequestBody.zod.d.ts → createMemberPermissionRequestBody.zod.d.ts} +9 -11
  19. package/dist/iam/v1/generated/validators/createMemberPermissionRequestBody.zod.js +36 -0
  20. package/dist/iam/v1/generated/validators/grantResource.zod.js +1 -1
  21. package/dist/iam/v1/generated/validators/lengthAwarePageMemberResource.zod.d.ts +12 -0
  22. package/dist/iam/v1/generated/validators/{listProjectInvitationsParams.zod.d.ts → listInvitationsParams.zod.d.ts} +8 -8
  23. package/dist/iam/v1/generated/validators/{listProjectInvitationsParams.zod.js → listInvitationsParams.zod.js} +11 -11
  24. package/dist/iam/v1/generated/validators/{policyListResponseBody.zod.d.ts → memberPermissionListResponseBody.zod.d.ts} +8 -14
  25. package/dist/iam/v1/generated/validators/{catalogListResponseBody.zod.js → memberPermissionListResponseBody.zod.js} +3 -3
  26. package/dist/iam/v1/generated/validators/{policyResource.zod.d.ts → memberPermissionResource.zod.d.ts} +11 -14
  27. package/dist/iam/v1/generated/validators/memberPermissionResource.zod.js +38 -0
  28. package/dist/iam/v1/generated/validators/memberResource.zod.d.ts +12 -0
  29. package/dist/iam/v1/generated/validators/memberResource.zod.js +5 -0
  30. package/dist/iam/v1/generated/validators/ownershipTransferResponseBody.zod.d.ts +24 -0
  31. package/dist/iam/v1/generated/validators/{catalogResource.zod.d.ts → permissionListResponseBody.zod.d.ts} +4 -8
  32. package/dist/iam/v1/generated/validators/{policyListResponseBody.zod.js → permissionListResponseBody.zod.js} +3 -3
  33. package/dist/routes.d.ts +7 -31
  34. package/dist/routes.js +7 -34
  35. package/package.json +1 -1
  36. package/dist/iam/v1/generated/validators/attachPolicyRequestBody.zod.d.ts +0 -33
  37. package/dist/iam/v1/generated/validators/attachPolicyRequestBody.zod.js +0 -43
  38. package/dist/iam/v1/generated/validators/catalogListResponseBody.zod.d.ts +0 -30
  39. package/dist/iam/v1/generated/validators/catalogResource.zod.js +0 -25
  40. package/dist/iam/v1/generated/validators/listPoliciesParams.zod.d.ts +0 -21
  41. package/dist/iam/v1/generated/validators/listPoliciesParams.zod.js +0 -23
  42. package/dist/iam/v1/generated/validators/policyResource.zod.js +0 -33
  43. package/dist/iam/v1/generated/validators/resourceTypeResource.zod.d.ts +0 -20
  44. package/dist/iam/v1/generated/validators/resourceTypeResource.zod.js +0 -20
  45. package/dist/iam/v1/generated/validators/setMemberPermissionsRequestBody.zod.d.ts +0 -20
  46. package/dist/iam/v1/generated/validators/setMemberPermissionsRequestBody.zod.js +0 -21
  47. package/dist/iam/v1/generated/validators/updatePolicyRequestBody.zod.js +0 -39
@@ -13,19 +13,17 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- import { AttachPolicyRequestBody } from "./validators/attachPolicyRequestBody.zod.js";
17
16
  import { BatchGetMembersRequestBody } from "./validators/batchGetMembersRequestBody.zod.js";
18
17
  import { CreateApplicationRequestBody } from "./validators/createApplicationRequestBody.zod.js";
18
+ import { CreateMemberPermissionRequestBody } from "./validators/createMemberPermissionRequestBody.zod.js";
19
19
  import { CreateRoleRequestBody } from "./validators/createRoleRequestBody.zod.js";
20
20
  import { CreateSSHKeyRequestBody } from "./validators/createSSHKeyRequestBody.zod.js";
21
21
  import { IssueInvitationRequestBody } from "./validators/issueInvitationRequestBody.zod.js";
22
22
  import { RenameSSHKeyRequestBody } from "./validators/renameSSHKeyRequestBody.zod.js";
23
- import { SetMemberPermissionsRequestBody } from "./validators/setMemberPermissionsRequestBody.zod.js";
24
23
  import { SetMemberRolesRequestBody } from "./validators/setMemberRolesRequestBody.zod.js";
25
24
  import { SetProjectSlugRequestBody } from "./validators/setProjectSlugRequestBody.zod.js";
26
25
  import { TransferOwnershipRequestBody } from "./validators/transferOwnershipRequestBody.zod.js";
27
26
  import { UpdateApplicationRequestBody } from "./validators/updateApplicationRequestBody.zod.js";
28
- import { UpdatePolicyRequestBody } from "./validators/updatePolicyRequestBody.zod.js";
29
27
  import { UpdateProjectRequestBody } from "./validators/updateProjectRequestBody.zod.js";
30
28
  import { UpdateRoleRequestBody } from "./validators/updateRoleRequestBody.zod.js";
31
29
  /**
@@ -51,23 +49,23 @@ export const SetProjectSlugBody = SetProjectSlugRequestBody;
51
49
  * Visible to any member, on the same rule as the member list. Who has been invited is part of who is in the project.
52
50
  * @summary List the invitations this project is still waiting on
53
51
  */
54
- export const listProjectInvitationsQueryLimitDefault = 50;
55
- export const listProjectInvitationsQueryLimitMax = 200;
56
- export const listProjectInvitationsQueryOffsetDefault = 0;
57
- export const listProjectInvitationsQueryOffsetMin = 0;
58
- export const listProjectInvitationsQueryOffsetMax = 10000;
59
- export const ListProjectInvitationsQueryParams = zod.strictObject({
52
+ export const listInvitationsQueryLimitDefault = 50;
53
+ export const listInvitationsQueryLimitMax = 200;
54
+ export const listInvitationsQueryOffsetDefault = 0;
55
+ export const listInvitationsQueryOffsetMin = 0;
56
+ export const listInvitationsQueryOffsetMax = 10000;
57
+ export const ListInvitationsQueryParams = zod.strictObject({
60
58
  limit: zod
61
59
  .int()
62
60
  .min(1)
63
- .max(listProjectInvitationsQueryLimitMax)
64
- .default(listProjectInvitationsQueryLimitDefault)
61
+ .max(listInvitationsQueryLimitMax)
62
+ .default(listInvitationsQueryLimitDefault)
65
63
  .describe("Items returned in this page. Defaults to 50; at most 200."),
66
64
  offset: zod
67
65
  .int()
68
- .min(listProjectInvitationsQueryOffsetMin)
69
- .max(listProjectInvitationsQueryOffsetMax)
70
- .default(listProjectInvitationsQueryOffsetDefault)
66
+ .min(listInvitationsQueryOffsetMin)
67
+ .max(listInvitationsQueryOffsetMax)
68
+ .default(listInvitationsQueryOffsetDefault)
71
69
  .describe("Items to skip. Defaults to 0; at most 10000."),
72
70
  });
73
71
  /**
@@ -136,52 +134,36 @@ export const SetMemberRolesParams = zod.strictObject({
136
134
  });
137
135
  export const SetMemberRolesBody = SetMemberRolesRequestBody;
138
136
  /**
139
- * Replaces, in full, the permissions attached directly to the base policy. A direct permission grants one person something without creating a role only they hold, and it does not follow later changes to any role. Requires `iam:members.manage`.
140
- * @summary Set the permissions attached directly to a member
141
- */
142
- export const setMemberPermissionsPathUserIdMax = 255;
143
- export const SetMemberPermissionsParams = zod.strictObject({
144
- userId: zod.string().max(setMemberPermissionsPathUserIdMax),
145
- });
146
- export const SetMemberPermissionsBody = SetMemberPermissionsRequestBody;
147
- /**
148
- * Visible to any member, on the same rule as the member list. What has been granted to whom is part of who is in the project.
149
- * @summary List the policies in this project
150
- */
151
- export const listPoliciesQueryUserIdMax = 255;
152
- export const ListPoliciesQueryParams = zod.strictObject({
153
- userId: zod
154
- .string()
155
- .max(listPoliciesQueryUserIdMax)
156
- .optional()
157
- .describe("Restricts the result to one person. Omitting it covers the whole project"),
158
- });
159
- /**
160
- * This creates an **additional** policy, which either carries a resource scope or has `deny` as its effect. An `allow` covering every resource is a base policy, of which each member holds exactly one, and it is changed with set-member-roles and set-member-permissions. `roles` cannot contain `OWNER` or `ADMIN`. Requires `iam:members.manage`.
161
- * @summary Attach a policy
162
- */
163
- export const AttachPolicyBody = AttachPolicyRequestBody;
164
- /**
165
- * Visible to any member, on the same rule as list-policies; no further permission is required.
166
- * @summary Get a policy
137
+ * Every row states one permission this person holds apart from their roles: project-wide when `resource_type` and `resource_id` are null, otherwise only on that resource. What a role grants is not listed here; the member's grant carries the roles and their compiled rules.
138
+ *
139
+ * Visible to any member, on the same rule as the member list.
140
+ * @summary List the permissions granted directly to a member
167
141
  */
168
- export const GetPolicyParams = zod.strictObject({
169
- policyId: zod.uuid(),
142
+ export const listMemberPermissionsPathUserIdMax = 255;
143
+ export const ListMemberPermissionsParams = zod.strictObject({
144
+ userId: zod.string().max(listMemberPermissionsPathUserIdMax),
170
145
  });
171
146
  /**
172
- * Replaced in full rather than field by field — `resources`, `roles` and `permissions` are each overwritten, and an omitted one becomes empty. The **kind** of a policy cannot change — a base policy (an `allow` covering every resource) cannot take a resource scope, and a scoped policy cannot have its scope cleared. Delete and recreate to change the kind. Requires `iam:members.manage`.
173
- * @summary Update a policy
147
+ * Creates one permission row. The same row twice answers 409; changing a grant means revoking the row and creating another, so that each row records when it was granted.
148
+ *
149
+ * `OWNER` and `ADMIN` cannot be granted here, being facts on the membership. A permission that carries no resource dimension cannot be scoped: IAM refuses the row at grant time rather than storing a scope that would never hold.
150
+ *
151
+ * Requires `iam:members.manage`.
152
+ * @summary Grant a permission to a member
174
153
  */
175
- export const UpdatePolicyParams = zod.strictObject({
176
- policyId: zod.uuid(),
154
+ export const createMemberPermissionPathUserIdMax = 255;
155
+ export const CreateMemberPermissionParams = zod.strictObject({
156
+ userId: zod.string().max(createMemberPermissionPathUserIdMax),
177
157
  });
178
- export const UpdatePolicyBody = UpdatePolicyRequestBody;
158
+ export const CreateMemberPermissionBody = CreateMemberPermissionRequestBody;
179
159
  /**
180
- * A base policy cannot be detached; it is where a member's roles sit. Use remove-member to take someone out of the project. Requires `iam:members.manage`.
181
- * @summary Detach a policy
160
+ * Removes that one row. Requires `iam:members.manage`.
161
+ * @summary Revoke a permission granted directly to a member
182
162
  */
183
- export const DetachPolicyParams = zod.strictObject({
184
- policyId: zod.uuid(),
163
+ export const deleteMemberPermissionPathUserIdMax = 255;
164
+ export const DeleteMemberPermissionParams = zod.strictObject({
165
+ userId: zod.string().max(deleteMemberPermissionPathUserIdMax),
166
+ permissionId: zod.uuid(),
185
167
  });
186
168
  /**
187
169
  * The only way `OWNER` moves, and only the owner can initiate it.
@@ -13,19 +13,17 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- export declare const updatePolicyRequestBodyDescriptionMax = 255;
17
- export declare const UpdatePolicyRequestBody: zod.ZodObject<{
18
- description: zod.ZodOptional<zod.ZodString>;
16
+ export declare const createMemberPermissionRequestBodyPermissionMax = 128;
17
+ export declare const createMemberPermissionRequestBodyResourceTypeMax = 128;
18
+ export declare const createMemberPermissionRequestBodyResourceIdMax = 255;
19
+ export declare const CreateMemberPermissionRequestBody: zod.ZodObject<{
20
+ permission: zod.ZodString;
19
21
  effect: zod.ZodEnum<{
20
22
  allow: "allow";
21
23
  deny: "deny";
22
24
  }>;
23
- permissions: zod.ZodOptional<zod.ZodNullable<zod.ZodArray<zod.ZodString>>>;
24
- resources: zod.ZodOptional<zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
25
- id: zod.ZodString;
26
- type: zod.ZodString;
27
- }, zod.z.core.$strict>>>>;
28
- roles: zod.ZodOptional<zod.ZodNullable<zod.ZodArray<zod.ZodString>>>;
25
+ resource_type: zod.ZodNullable<zod.ZodString>;
26
+ resource_id: zod.ZodNullable<zod.ZodString>;
29
27
  }, zod.z.core.$strict>;
30
- export type UpdatePolicyRequestBody = zod.input<typeof UpdatePolicyRequestBody>;
31
- export type UpdatePolicyRequestBodyOutput = zod.output<typeof UpdatePolicyRequestBody>;
28
+ export type CreateMemberPermissionRequestBody = zod.input<typeof CreateMemberPermissionRequestBody>;
29
+ export type CreateMemberPermissionRequestBodyOutput = zod.output<typeof CreateMemberPermissionRequestBody>;
@@ -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 the SSH keys the project shares.
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 createMemberPermissionRequestBodyPermissionMax = 128;
17
+ export const createMemberPermissionRequestBodyResourceTypeMax = 128;
18
+ export const createMemberPermissionRequestBodyResourceIdMax = 255;
19
+ export const CreateMemberPermissionRequestBody = zod.strictObject({
20
+ permission: zod
21
+ .string()
22
+ .min(1)
23
+ .max(createMemberPermissionRequestBodyPermissionMax)
24
+ .describe("The code of the permission to grant"),
25
+ effect: zod.enum(["allow", "deny"]),
26
+ resource_type: zod
27
+ .string()
28
+ .max(createMemberPermissionRequestBodyResourceTypeMax)
29
+ .nullable()
30
+ .describe("The kind of resource to hold on; give it together with `resource_id`. Both null grant the permission project-wide"),
31
+ resource_id: zod
32
+ .string()
33
+ .max(createMemberPermissionRequestBodyResourceIdMax)
34
+ .nullable()
35
+ .describe("The resource identifier to hold on, which may carry a glob. Give it together with `resource_type`"),
36
+ });
@@ -21,5 +21,5 @@ export const GrantResource = zod.strictObject({
21
21
  rules: zod
22
22
  .array(RuleResource)
23
23
  .nullable()
24
- .describe("**The rules compiled from every policy that applies. Do not walk them to reach a decision.** They are here to render what a user may do; each request is decided by the service handling it"),
24
+ .describe("**The rules compiled from the roles and grants that apply. Do not walk them to reach a decision.** They are here to render what a user may do; each request is decided by the service handling it"),
25
25
  });
@@ -37,6 +37,18 @@ export declare const LengthAwarePageMemberResource: zod.ZodObject<{
37
37
  }, zod.z.core.$strict>>>;
38
38
  }, zod.z.core.$strict>;
39
39
  last_name: zod.ZodString;
40
+ permissions: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
41
+ id: zod.ZodUUID;
42
+ permission: zod.ZodString;
43
+ effect: zod.ZodEnum<{
44
+ allow: "allow";
45
+ deny: "deny";
46
+ }>;
47
+ resource_type: zod.ZodNullable<zod.ZodString>;
48
+ resource_id: zod.ZodNullable<zod.ZodString>;
49
+ created_at: zod.z.ZodISODateTime;
50
+ updated_at: zod.z.ZodISODateTime;
51
+ }, zod.z.core.$strict>>>;
40
52
  user_id: zod.ZodString;
41
53
  }, zod.z.core.$strict>>;
42
54
  limit: zod.ZodInt;
@@ -13,14 +13,14 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- export declare const listProjectInvitationsParamsLimitDefault = 50;
17
- export declare const listProjectInvitationsParamsLimitMax = 200;
18
- export declare const listProjectInvitationsParamsOffsetDefault = 0;
19
- export declare const listProjectInvitationsParamsOffsetMin = 0;
20
- export declare const listProjectInvitationsParamsOffsetMax = 10000;
21
- export declare const ListProjectInvitationsParams: zod.ZodObject<{
16
+ export declare const listInvitationsParamsLimitDefault = 50;
17
+ export declare const listInvitationsParamsLimitMax = 200;
18
+ export declare const listInvitationsParamsOffsetDefault = 0;
19
+ export declare const listInvitationsParamsOffsetMin = 0;
20
+ export declare const listInvitationsParamsOffsetMax = 10000;
21
+ export declare const ListInvitationsParams: zod.ZodObject<{
22
22
  limit: zod.ZodDefault<zod.ZodInt>;
23
23
  offset: zod.ZodDefault<zod.ZodInt>;
24
24
  }, zod.z.core.$strict>;
25
- export type ListProjectInvitationsParams = zod.input<typeof ListProjectInvitationsParams>;
26
- export type ListProjectInvitationsParamsOutput = zod.output<typeof ListProjectInvitationsParams>;
25
+ export type ListInvitationsParams = zod.input<typeof ListInvitationsParams>;
26
+ export type ListInvitationsParamsOutput = zod.output<typeof ListInvitationsParams>;
@@ -13,20 +13,20 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- export const listProjectInvitationsParamsLimitDefault = 50;
17
- export const listProjectInvitationsParamsLimitMax = 200;
18
- export const listProjectInvitationsParamsOffsetDefault = 0;
19
- export const listProjectInvitationsParamsOffsetMin = 0;
20
- export const listProjectInvitationsParamsOffsetMax = 10000;
21
- export const ListProjectInvitationsParams = zod.strictObject({
16
+ export const listInvitationsParamsLimitDefault = 50;
17
+ export const listInvitationsParamsLimitMax = 200;
18
+ export const listInvitationsParamsOffsetDefault = 0;
19
+ export const listInvitationsParamsOffsetMin = 0;
20
+ export const listInvitationsParamsOffsetMax = 10000;
21
+ export const ListInvitationsParams = zod.strictObject({
22
22
  limit: zod
23
23
  .int()
24
24
  .min(1)
25
- .max(listProjectInvitationsParamsLimitMax)
26
- .default(listProjectInvitationsParamsLimitDefault),
25
+ .max(listInvitationsParamsLimitMax)
26
+ .default(listInvitationsParamsLimitDefault),
27
27
  offset: zod
28
28
  .int()
29
- .min(listProjectInvitationsParamsOffsetMin)
30
- .max(listProjectInvitationsParamsOffsetMax)
31
- .default(listProjectInvitationsParamsOffsetDefault),
29
+ .min(listInvitationsParamsOffsetMin)
30
+ .max(listInvitationsParamsOffsetMax)
31
+ .default(listInvitationsParamsOffsetDefault),
32
32
  });
@@ -13,25 +13,19 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- export declare const PolicyListResponseBody: zod.ZodObject<{
16
+ export declare const MemberPermissionListResponseBody: zod.ZodObject<{
17
17
  items: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
18
- base: zod.ZodBoolean;
19
- created_at: zod.z.ZodISODateTime;
20
- description: zod.ZodString;
18
+ id: zod.ZodUUID;
19
+ permission: zod.ZodString;
21
20
  effect: zod.ZodEnum<{
22
21
  allow: "allow";
23
22
  deny: "deny";
24
23
  }>;
25
- id: zod.ZodUUID;
26
- permissions: zod.ZodNullable<zod.ZodArray<zod.ZodString>>;
27
- resources: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
28
- id: zod.ZodString;
29
- type: zod.ZodString;
30
- }, zod.z.core.$strict>>>;
31
- roles: zod.ZodNullable<zod.ZodArray<zod.ZodString>>;
24
+ resource_type: zod.ZodNullable<zod.ZodString>;
25
+ resource_id: zod.ZodNullable<zod.ZodString>;
26
+ created_at: zod.z.ZodISODateTime;
32
27
  updated_at: zod.z.ZodISODateTime;
33
- user_id: zod.ZodString;
34
28
  }, zod.z.core.$strict>>>;
35
29
  }, zod.z.core.$strict>;
36
- export type PolicyListResponseBody = zod.input<typeof PolicyListResponseBody>;
37
- export type PolicyListResponseBodyOutput = zod.output<typeof PolicyListResponseBody>;
30
+ export type MemberPermissionListResponseBody = zod.input<typeof MemberPermissionListResponseBody>;
31
+ export type MemberPermissionListResponseBodyOutput = zod.output<typeof MemberPermissionListResponseBody>;
@@ -13,7 +13,7 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- import { CatalogResource } from "./catalogResource.zod.js";
17
- export const CatalogListResponseBody = zod.strictObject({
18
- items: zod.array(CatalogResource).nullable(),
16
+ import { MemberPermissionResource } from "./memberPermissionResource.zod.js";
17
+ export const MemberPermissionListResponseBody = zod.strictObject({
18
+ items: zod.array(MemberPermissionResource).nullable(),
19
19
  });
@@ -13,23 +13,20 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- export declare const PolicyResource: zod.ZodObject<{
17
- base: zod.ZodBoolean;
18
- created_at: zod.z.ZodISODateTime;
19
- description: zod.ZodString;
16
+ export declare const memberPermissionResourcePermissionMax = 128;
17
+ export declare const memberPermissionResourceResourceTypeMax = 128;
18
+ export declare const memberPermissionResourceResourceIdMax = 255;
19
+ export declare const MemberPermissionResource: zod.ZodObject<{
20
+ id: zod.ZodUUID;
21
+ permission: zod.ZodString;
20
22
  effect: zod.ZodEnum<{
21
23
  allow: "allow";
22
24
  deny: "deny";
23
25
  }>;
24
- id: zod.ZodUUID;
25
- permissions: zod.ZodNullable<zod.ZodArray<zod.ZodString>>;
26
- resources: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
27
- id: zod.ZodString;
28
- type: zod.ZodString;
29
- }, zod.z.core.$strict>>>;
30
- roles: zod.ZodNullable<zod.ZodArray<zod.ZodString>>;
26
+ resource_type: zod.ZodNullable<zod.ZodString>;
27
+ resource_id: zod.ZodNullable<zod.ZodString>;
28
+ created_at: zod.z.ZodISODateTime;
31
29
  updated_at: zod.z.ZodISODateTime;
32
- user_id: zod.ZodString;
33
30
  }, zod.z.core.$strict>;
34
- export type PolicyResource = zod.input<typeof PolicyResource>;
35
- export type PolicyResourceOutput = zod.output<typeof PolicyResource>;
31
+ export type MemberPermissionResource = zod.input<typeof MemberPermissionResource>;
32
+ export type MemberPermissionResourceOutput = zod.output<typeof MemberPermissionResource>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Generated by orval 🍺
3
+ * Do not edit manually.
4
+ * Leaflow IAM API
5
+ * What happens inside a project: members, roles, invitations and the SSH keys the project shares.
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 memberPermissionResourcePermissionMax = 128;
17
+ export const memberPermissionResourceResourceTypeMax = 128;
18
+ export const memberPermissionResourceResourceIdMax = 255;
19
+ export const MemberPermissionResource = zod.strictObject({
20
+ id: zod.uuid().describe("The id of this grant, used to revoke it"),
21
+ permission: zod
22
+ .string()
23
+ .max(memberPermissionResourcePermissionMax)
24
+ .describe("The code of the permission, such as compute:instance.delete"),
25
+ effect: zod.enum(["allow", "deny"]),
26
+ resource_type: zod
27
+ .string()
28
+ .max(memberPermissionResourceResourceTypeMax)
29
+ .nullable()
30
+ .describe("The kind of resource this grant holds on, such as fleet:machine. Null with `resource_id` means it holds project-wide"),
31
+ resource_id: zod
32
+ .string()
33
+ .max(memberPermissionResourceResourceIdMax)
34
+ .nullable()
35
+ .describe("The resource identifier, which may carry a glob. Null with `resource_type` means the grant holds project-wide"),
36
+ created_at: zod.iso.datetime({ offset: true }),
37
+ updated_at: zod.iso.datetime({ offset: true }),
38
+ });
@@ -36,6 +36,18 @@ export declare const MemberResource: zod.ZodObject<{
36
36
  }, zod.z.core.$strict>>>;
37
37
  }, zod.z.core.$strict>;
38
38
  last_name: zod.ZodString;
39
+ permissions: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
40
+ id: zod.ZodUUID;
41
+ permission: zod.ZodString;
42
+ effect: zod.ZodEnum<{
43
+ allow: "allow";
44
+ deny: "deny";
45
+ }>;
46
+ resource_type: zod.ZodNullable<zod.ZodString>;
47
+ resource_id: zod.ZodNullable<zod.ZodString>;
48
+ created_at: zod.z.ZodISODateTime;
49
+ updated_at: zod.z.ZodISODateTime;
50
+ }, zod.z.core.$strict>>>;
39
51
  user_id: zod.ZodString;
40
52
  }, zod.z.core.$strict>;
41
53
  export type MemberResource = zod.input<typeof MemberResource>;
@@ -14,6 +14,7 @@
14
14
  */
15
15
  import * as zod from "zod";
16
16
  import { GrantResource } from "./grantResource.zod.js";
17
+ import { MemberPermissionResource } from "./memberPermissionResource.zod.js";
17
18
  export const MemberResource = zod.strictObject({
18
19
  avatar_hash: zod
19
20
  .string()
@@ -24,5 +25,9 @@ export const MemberResource = zod.strictObject({
24
25
  first_name: zod.string(),
25
26
  grant: GrantResource,
26
27
  last_name: zod.string(),
28
+ permissions: zod
29
+ .array(MemberPermissionResource)
30
+ .nullable()
31
+ .describe("The permissions granted to this person directly, apart from their roles"),
27
32
  user_id: zod.string(),
28
33
  });
@@ -37,6 +37,18 @@ export declare const OwnershipTransferResponseBody: zod.ZodObject<{
37
37
  }, zod.z.core.$strict>>>;
38
38
  }, zod.z.core.$strict>;
39
39
  last_name: zod.ZodString;
40
+ permissions: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
41
+ id: zod.ZodUUID;
42
+ permission: zod.ZodString;
43
+ effect: zod.ZodEnum<{
44
+ allow: "allow";
45
+ deny: "deny";
46
+ }>;
47
+ resource_type: zod.ZodNullable<zod.ZodString>;
48
+ resource_id: zod.ZodNullable<zod.ZodString>;
49
+ created_at: zod.z.ZodISODateTime;
50
+ updated_at: zod.z.ZodISODateTime;
51
+ }, zod.z.core.$strict>>>;
40
52
  user_id: zod.ZodString;
41
53
  }, zod.z.core.$strict>;
42
54
  to: zod.ZodObject<{
@@ -62,6 +74,18 @@ export declare const OwnershipTransferResponseBody: zod.ZodObject<{
62
74
  }, zod.z.core.$strict>>>;
63
75
  }, zod.z.core.$strict>;
64
76
  last_name: zod.ZodString;
77
+ permissions: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
78
+ id: zod.ZodUUID;
79
+ permission: zod.ZodString;
80
+ effect: zod.ZodEnum<{
81
+ allow: "allow";
82
+ deny: "deny";
83
+ }>;
84
+ resource_type: zod.ZodNullable<zod.ZodString>;
85
+ resource_id: zod.ZodNullable<zod.ZodString>;
86
+ created_at: zod.z.ZodISODateTime;
87
+ updated_at: zod.z.ZodISODateTime;
88
+ }, zod.z.core.$strict>>>;
65
89
  user_id: zod.ZodString;
66
90
  }, zod.z.core.$strict>;
67
91
  }, zod.z.core.$strict>;
@@ -13,16 +13,12 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- export declare const CatalogResource: zod.ZodObject<{
17
- permissions: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
16
+ export declare const PermissionListResponseBody: zod.ZodObject<{
17
+ items: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
18
18
  name: zod.ZodString;
19
19
  owner_only: zod.ZodBoolean;
20
20
  resource_type: zod.ZodString;
21
21
  }, zod.z.core.$strict>>>;
22
- resource_types: zod.ZodNullable<zod.ZodArray<zod.ZodObject<{
23
- name: zod.ZodString;
24
- }, zod.z.core.$strict>>>;
25
- service: zod.ZodString;
26
22
  }, zod.z.core.$strict>;
27
- export type CatalogResource = zod.input<typeof CatalogResource>;
28
- export type CatalogResourceOutput = zod.output<typeof CatalogResource>;
23
+ export type PermissionListResponseBody = zod.input<typeof PermissionListResponseBody>;
24
+ export type PermissionListResponseBodyOutput = zod.output<typeof PermissionListResponseBody>;
@@ -13,7 +13,7 @@
13
13
  * OpenAPI spec version: 1.0.0
14
14
  */
15
15
  import * as zod from "zod";
16
- import { PolicyResource } from "./policyResource.zod.js";
17
- export const PolicyListResponseBody = zod.strictObject({
18
- items: zod.array(PolicyResource).nullable(),
16
+ import { PermissionResource } from "./permissionResource.zod.js";
17
+ export const PermissionListResponseBody = zod.strictObject({
18
+ items: zod.array(PermissionResource).nullable(),
19
19
  });
package/dist/routes.d.ts CHANGED
@@ -3410,7 +3410,7 @@ export declare const routes: readonly [{
3410
3410
  readonly contract: "iam";
3411
3411
  readonly method: "GET";
3412
3412
  readonly path: "/api/v1/invitations";
3413
- readonly operationId: "list-project-invitations";
3413
+ readonly operationId: "list-invitations";
3414
3414
  readonly securityScheme: "ScopedToken";
3415
3415
  readonly upstreamUrl: "https://iam.leaflow.cloud";
3416
3416
  }, {
@@ -3461,52 +3461,28 @@ export declare const routes: readonly [{
3461
3461
  readonly operationId: "set-member-roles";
3462
3462
  readonly securityScheme: "ScopedToken";
3463
3463
  readonly upstreamUrl: "https://iam.leaflow.cloud";
3464
- }, {
3465
- readonly service: "iam";
3466
- readonly contract: "iam";
3467
- readonly method: "PUT";
3468
- readonly path: "/api/v1/members/{userId}/permissions";
3469
- readonly operationId: "set-member-permissions";
3470
- readonly securityScheme: "ScopedToken";
3471
- readonly upstreamUrl: "https://iam.leaflow.cloud";
3472
3464
  }, {
3473
3465
  readonly service: "iam";
3474
3466
  readonly contract: "iam";
3475
3467
  readonly method: "GET";
3476
- readonly path: "/api/v1/policies";
3477
- readonly operationId: "list-policies";
3468
+ readonly path: "/api/v1/members/{userId}/permissions";
3469
+ readonly operationId: "list-member-permissions";
3478
3470
  readonly securityScheme: "ScopedToken";
3479
3471
  readonly upstreamUrl: "https://iam.leaflow.cloud";
3480
3472
  }, {
3481
3473
  readonly service: "iam";
3482
3474
  readonly contract: "iam";
3483
3475
  readonly method: "POST";
3484
- readonly path: "/api/v1/policies";
3485
- readonly operationId: "attach-policy";
3486
- readonly securityScheme: "ScopedToken";
3487
- readonly upstreamUrl: "https://iam.leaflow.cloud";
3488
- }, {
3489
- readonly service: "iam";
3490
- readonly contract: "iam";
3491
- readonly method: "GET";
3492
- readonly path: "/api/v1/policies/{policyId}";
3493
- readonly operationId: "get-policy";
3494
- readonly securityScheme: "ScopedToken";
3495
- readonly upstreamUrl: "https://iam.leaflow.cloud";
3496
- }, {
3497
- readonly service: "iam";
3498
- readonly contract: "iam";
3499
- readonly method: "PUT";
3500
- readonly path: "/api/v1/policies/{policyId}";
3501
- readonly operationId: "update-policy";
3476
+ readonly path: "/api/v1/members/{userId}/permissions";
3477
+ readonly operationId: "create-member-permission";
3502
3478
  readonly securityScheme: "ScopedToken";
3503
3479
  readonly upstreamUrl: "https://iam.leaflow.cloud";
3504
3480
  }, {
3505
3481
  readonly service: "iam";
3506
3482
  readonly contract: "iam";
3507
3483
  readonly method: "DELETE";
3508
- readonly path: "/api/v1/policies/{policyId}";
3509
- readonly operationId: "detach-policy";
3484
+ readonly path: "/api/v1/members/{userId}/permissions/{permissionId}";
3485
+ readonly operationId: "delete-member-permission";
3510
3486
  readonly securityScheme: "ScopedToken";
3511
3487
  readonly upstreamUrl: "https://iam.leaflow.cloud";
3512
3488
  }, {