@grantjs/schema 1.1.7 → 1.3.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 (50) hide show
  1. package/package.json +7 -7
  2. package/src/generated/graphql.ts +1617 -126
  3. package/src/generated/resolvers.ts +505 -0
  4. package/src/generated/schema-types.ts +268 -0
  5. package/src/index.ts +2 -0
  6. package/src/operations/groups/getGroupsList.graphql +38 -0
  7. package/src/operations/groups/updateGroup.graphql +6 -0
  8. package/src/operations/me/me.graphql +4 -0
  9. package/src/operations/permissions/getPermissionsList.graphql +45 -0
  10. package/src/operations/permissions/updatePermission.graphql +6 -0
  11. package/src/operations/resources/updateResource.graphql +6 -0
  12. package/src/operations/role-permissions/role-permissions.graphql +39 -0
  13. package/src/operations/roles/getRoles.graphql +12 -0
  14. package/src/operations/roles/getRolesList.graphql +38 -0
  15. package/src/operations/roles/updateRole.graphql +6 -0
  16. package/src/operations/user-permissions/user-permissions.graphql +39 -0
  17. package/src/operations/users/getUsers.graphql +26 -0
  18. package/src/operations/users/getUsersList.graphql +43 -0
  19. package/src/operations/users/updateUser.graphql +6 -0
  20. package/src/schema/auth/inputs/is-authorized.graphql +7 -0
  21. package/src/schema/auth/queries/is-authorized.graphql +3 -0
  22. package/src/schema/groups/types/group-searchable-field.graphql +1 -0
  23. package/src/schema/groups/types/group.graphql +3 -0
  24. package/src/schema/permissions/types/permission.graphql +2 -0
  25. package/src/schema/project-role-permissions/types/project-role-permission.graphql +27 -0
  26. package/src/schema/project-user-groups/types/project-user-group.graphql +27 -0
  27. package/src/schema/project-user-permissions/types/project-user-permission.graphql +27 -0
  28. package/src/schema/projects/inputs/sync-project-cdm.graphql +27 -0
  29. package/src/schema/role-permissions/inputs/assign-role-permission.graphql +5 -0
  30. package/src/schema/role-permissions/inputs/query-role-permissions.graphql +4 -0
  31. package/src/schema/role-permissions/inputs/revoke-role-permission.graphql +6 -0
  32. package/src/schema/role-permissions/mutations/assign-role-permission.graphql +3 -0
  33. package/src/schema/role-permissions/mutations/revoke-role-permission.graphql +3 -0
  34. package/src/schema/role-permissions/types/role-permission.graphql +10 -0
  35. package/src/schema/roles/inputs/create-role.graphql +1 -0
  36. package/src/schema/roles/types/role-searchable-field.graphql +1 -0
  37. package/src/schema/roles/types/role.graphql +5 -0
  38. package/src/schema/user-groups/inputs/add-user-group.graphql +4 -0
  39. package/src/schema/user-groups/inputs/query-user-groups.graphql +4 -0
  40. package/src/schema/user-groups/inputs/remove-user-group.graphql +4 -0
  41. package/src/schema/user-groups/types/user-group.graphql +10 -0
  42. package/src/schema/user-permissions/inputs/assign-user-permission.graphql +5 -0
  43. package/src/schema/user-permissions/inputs/query-user-permissions.graphql +4 -0
  44. package/src/schema/user-permissions/inputs/revoke-user-permission.graphql +6 -0
  45. package/src/schema/user-permissions/mutations/assign-user-permission.graphql +3 -0
  46. package/src/schema/user-permissions/mutations/revoke-user-permission.graphql +3 -0
  47. package/src/schema/user-permissions/types/user-permission.graphql +10 -0
  48. package/src/schema/users/inputs/create-user.graphql +2 -0
  49. package/src/schema/users/inputs/update-user.graphql +1 -0
  50. package/src/schema/users/types/user.graphql +7 -0
@@ -262,6 +262,12 @@ export type AddProjectRoleInput = {
262
262
  roleId: Scalars['ID']['input'];
263
263
  };
264
264
 
265
+ export type AddProjectRolePermissionInput = {
266
+ permissionId: Scalars['ID']['input'];
267
+ projectId: Scalars['ID']['input'];
268
+ roleId: Scalars['ID']['input'];
269
+ };
270
+
265
271
  export type AddProjectTagInput = {
266
272
  isPrimary?: InputMaybe<Scalars['Boolean']['input']>;
267
273
  projectId: Scalars['ID']['input'];
@@ -276,12 +282,24 @@ export type AddProjectUserApiKeyInput = {
276
282
  userId: Scalars['ID']['input'];
277
283
  };
278
284
 
285
+ export type AddProjectUserGroupInput = {
286
+ groupId: Scalars['ID']['input'];
287
+ projectId: Scalars['ID']['input'];
288
+ userId: Scalars['ID']['input'];
289
+ };
290
+
279
291
  export type AddProjectUserInput = {
280
292
  metadata?: InputMaybe<Scalars['JSON']['input']>;
281
293
  projectId: Scalars['ID']['input'];
282
294
  userId: Scalars['ID']['input'];
283
295
  };
284
296
 
297
+ export type AddProjectUserPermissionInput = {
298
+ permissionId: Scalars['ID']['input'];
299
+ projectId: Scalars['ID']['input'];
300
+ userId: Scalars['ID']['input'];
301
+ };
302
+
285
303
  export type AddResourceTagInput = {
286
304
  isPrimary?: InputMaybe<Scalars['Boolean']['input']>;
287
305
  resourceId: Scalars['ID']['input'];
@@ -299,6 +317,11 @@ export type AddRoleTagInput = {
299
317
  tagId: Scalars['ID']['input'];
300
318
  };
301
319
 
320
+ export type AddUserGroupInput = {
321
+ groupId: Scalars['ID']['input'];
322
+ userId: Scalars['ID']['input'];
323
+ };
324
+
302
325
  export type AddUserRoleInput = {
303
326
  roleId: Scalars['ID']['input'];
304
327
  userId: Scalars['ID']['input'];
@@ -356,6 +379,18 @@ export enum ApiKeySortableField {
356
379
  Name = 'name',
357
380
  }
358
381
 
382
+ export type AssignRolePermissionInput = {
383
+ permissionId: Scalars['ID']['input'];
384
+ roleId: Scalars['ID']['input'];
385
+ scope: Scope;
386
+ };
387
+
388
+ export type AssignUserPermissionInput = {
389
+ permissionId: Scalars['ID']['input'];
390
+ scope: Scope;
391
+ userId: Scalars['ID']['input'];
392
+ };
393
+
359
394
  export type Auditable = {
360
395
  createdAt: Scalars['Date']['output'];
361
396
  deletedAt?: Maybe<Scalars['Date']['output']>;
@@ -597,6 +632,7 @@ export type CreateRoleInput = {
597
632
  groupIds?: InputMaybe<Array<Scalars['ID']['input']>>;
598
633
  metadata?: InputMaybe<Scalars['JSON']['input']>;
599
634
  name: Scalars['String']['input'];
635
+ permissionIds?: InputMaybe<Array<Scalars['ID']['input']>>;
600
636
  primaryTagId?: InputMaybe<Scalars['ID']['input']>;
601
637
  scope: Scope;
602
638
  tagIds?: InputMaybe<Array<Scalars['ID']['input']>>;
@@ -619,8 +655,10 @@ export type CreateUserAuthenticationMethodInput = {
619
655
  };
620
656
 
621
657
  export type CreateUserInput = {
658
+ groupIds?: InputMaybe<Array<Scalars['ID']['input']>>;
622
659
  metadata?: InputMaybe<Scalars['JSON']['input']>;
623
660
  name: Scalars['String']['input'];
661
+ permissionIds?: InputMaybe<Array<Scalars['ID']['input']>>;
624
662
  pictureUrl?: InputMaybe<Scalars['String']['input']>;
625
663
  primaryTagId?: InputMaybe<Scalars['ID']['input']>;
626
664
  roleIds?: InputMaybe<Array<Scalars['ID']['input']>>;
@@ -699,7 +737,10 @@ export type Group = Auditable & {
699
737
  id: Scalars['ID']['output'];
700
738
  metadata: Scalars['JSON']['output'];
701
739
  name: Scalars['String']['output'];
740
+ permissionCount: Scalars['Int']['output'];
702
741
  permissions?: Maybe<Array<Permission>>;
742
+ primaryTag?: Maybe<Tag>;
743
+ tagCount: Scalars['Int']['output'];
703
744
  tags?: Maybe<Array<Tag>>;
704
745
  updatedAt: Scalars['Date']['output'];
705
746
  };
@@ -711,6 +752,11 @@ export type GroupCdmInput = {
711
752
  name: Scalars['String']['input'];
712
753
  permissions?: InputMaybe<Array<Scalars['String']['input']>>;
713
754
  primaryTag?: InputMaybe<Scalars['String']['input']>;
755
+ /**
756
+ * Denormalized search tokens for list views (email, legacy ids, etc.).
757
+ * Also persisted under metadata.cdmSource.searchable on import.
758
+ */
759
+ searchable?: InputMaybe<Scalars['JSON']['input']>;
714
760
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
715
761
  };
716
762
 
@@ -744,6 +790,7 @@ export type GroupPermissionPermissionArgs = {
744
790
  export enum GroupSearchableField {
745
791
  Description = 'description',
746
792
  Name = 'name',
793
+ SearchDocument = 'searchDocument',
747
794
  }
748
795
 
749
796
  export type GroupSortInput = {
@@ -786,6 +833,13 @@ export type IsAuthorizedContextInput = {
786
833
  resource?: InputMaybe<Scalars['JSON']['input']>;
787
834
  };
788
835
 
836
+ /**
837
+ * Check whether the authenticated principal may perform an action on a resource.
838
+ *
839
+ * Unions Role → Group → Permission, User → Group → Permission, Role → Permission,
840
+ * and User → Permission before matching the requested resource and action.
841
+ * Conditional permissions are evaluated against role/group/user execution context.
842
+ */
789
843
  export type IsAuthorizedInput = {
790
844
  context: IsAuthorizedContextInput;
791
845
  permission: IsAuthorizedPermissionInput;
@@ -880,6 +934,8 @@ export type Mutation = {
880
934
  __typename?: 'Mutation';
881
935
  _empty?: Maybe<Scalars['String']['output']>;
882
936
  acceptInvitation: AcceptInvitationResult;
937
+ assignRolePermission: RolePermission;
938
+ assignUserPermission: UserPermission;
883
939
  /**
884
940
  * Cancel a pending or running project CDM sync job. Cancellation is
885
941
  * immediate when the job is still PENDING; if the job is already RUNNING, the
@@ -931,6 +987,8 @@ export type Mutation = {
931
987
  revokeApiKey: ApiKey;
932
988
  revokeInvitation: OrganizationInvitation;
933
989
  revokeMyUserSession: RevokeMyUserSessionResult;
990
+ revokeRolePermission: RolePermission;
991
+ revokeUserPermission: UserPermission;
934
992
  /**
935
993
  * Rotate the signing key for the given scope: create a new active key and mark the previous one as rotated.
936
994
  * Allowed scopes: accountProject, organizationProject only.
@@ -987,6 +1045,14 @@ export type MutationAcceptInvitationArgs = {
987
1045
  input: AcceptInvitationInput;
988
1046
  };
989
1047
 
1048
+ export type MutationAssignRolePermissionArgs = {
1049
+ input: AssignRolePermissionInput;
1050
+ };
1051
+
1052
+ export type MutationAssignUserPermissionArgs = {
1053
+ input: AssignUserPermissionInput;
1054
+ };
1055
+
990
1056
  export type MutationCancelProjectSyncArgs = {
991
1057
  id: Scalars['ID']['input'];
992
1058
  jobId: Scalars['ID']['input'];
@@ -1162,6 +1228,14 @@ export type MutationRevokeMyUserSessionArgs = {
1162
1228
  id: Scalars['ID']['input'];
1163
1229
  };
1164
1230
 
1231
+ export type MutationRevokeRolePermissionArgs = {
1232
+ input: RevokeRolePermissionInput;
1233
+ };
1234
+
1235
+ export type MutationRevokeUserPermissionArgs = {
1236
+ input: RevokeUserPermissionInput;
1237
+ };
1238
+
1165
1239
  export type MutationRotateSigningKeyArgs = {
1166
1240
  scope: Scope;
1167
1241
  };
@@ -1526,8 +1600,10 @@ export type Permission = Auditable & {
1526
1600
  id: Scalars['ID']['output'];
1527
1601
  metadata: Scalars['JSON']['output'];
1528
1602
  name: Scalars['String']['output'];
1603
+ primaryTag?: Maybe<Tag>;
1529
1604
  resource?: Maybe<Resource>;
1530
1605
  resourceId?: Maybe<Scalars['ID']['output']>;
1606
+ tagCount: Scalars['Int']['output'];
1531
1607
  tags?: Maybe<Array<Tag>>;
1532
1608
  updatedAt: Scalars['Date']['output'];
1533
1609
  };
@@ -1739,6 +1815,17 @@ export type ProjectRoleProjectArgs = {
1739
1815
  organizationId: Scalars['ID']['input'];
1740
1816
  };
1741
1817
 
1818
+ export type ProjectRolePermission = Auditable & {
1819
+ __typename?: 'ProjectRolePermission';
1820
+ createdAt: Scalars['Date']['output'];
1821
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1822
+ id: Scalars['ID']['output'];
1823
+ permissionId: Scalars['ID']['output'];
1824
+ projectId: Scalars['ID']['output'];
1825
+ roleId: Scalars['ID']['output'];
1826
+ updatedAt: Scalars['Date']['output'];
1827
+ };
1828
+
1742
1829
  export enum ProjectSearchableField {
1743
1830
  Description = 'description',
1744
1831
  Name = 'name',
@@ -1868,12 +1955,35 @@ export type ProjectUserApiKey = Auditable & {
1868
1955
  userId: Scalars['ID']['output'];
1869
1956
  };
1870
1957
 
1958
+ export type ProjectUserGroup = Auditable & {
1959
+ __typename?: 'ProjectUserGroup';
1960
+ createdAt: Scalars['Date']['output'];
1961
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1962
+ groupId: Scalars['ID']['output'];
1963
+ id: Scalars['ID']['output'];
1964
+ projectId: Scalars['ID']['output'];
1965
+ updatedAt: Scalars['Date']['output'];
1966
+ userId: Scalars['ID']['output'];
1967
+ };
1968
+
1969
+ export type ProjectUserPermission = Auditable & {
1970
+ __typename?: 'ProjectUserPermission';
1971
+ createdAt: Scalars['Date']['output'];
1972
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1973
+ id: Scalars['ID']['output'];
1974
+ permissionId: Scalars['ID']['output'];
1975
+ projectId: Scalars['ID']['output'];
1976
+ updatedAt: Scalars['Date']['output'];
1977
+ userId: Scalars['ID']['output'];
1978
+ };
1979
+
1871
1980
  export type Query = {
1872
1981
  __typename?: 'Query';
1873
1982
  _empty?: Maybe<Scalars['String']['output']>;
1874
1983
  apiKeys: ApiKeyPage;
1875
1984
  groups: GroupPage;
1876
1985
  invitation?: Maybe<OrganizationInvitation>;
1986
+ /** Evaluate authorization for the current session or API key token. */
1877
1987
  isAuthorized: AuthorizationResult;
1878
1988
  me: MeResponse;
1879
1989
  myMfaDevices: Array<MfaDevice>;
@@ -2169,6 +2279,12 @@ export type QueryProjectResourcesInput = {
2169
2279
  resourceId?: InputMaybe<Scalars['ID']['input']>;
2170
2280
  };
2171
2281
 
2282
+ export type QueryProjectRolePermissionsInput = {
2283
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2284
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2285
+ roleId?: InputMaybe<Scalars['ID']['input']>;
2286
+ };
2287
+
2172
2288
  export type QueryProjectRolesInput = {
2173
2289
  projectId: Scalars['ID']['input'];
2174
2290
  };
@@ -2183,6 +2299,18 @@ export type QueryProjectUserApiKeysInput = {
2183
2299
  userId: Scalars['ID']['input'];
2184
2300
  };
2185
2301
 
2302
+ export type QueryProjectUserGroupsInput = {
2303
+ groupId?: InputMaybe<Scalars['ID']['input']>;
2304
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2305
+ userId?: InputMaybe<Scalars['ID']['input']>;
2306
+ };
2307
+
2308
+ export type QueryProjectUserPermissionsInput = {
2309
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2310
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2311
+ userId?: InputMaybe<Scalars['ID']['input']>;
2312
+ };
2313
+
2186
2314
  export type QueryProjectUsersInput = {
2187
2315
  projectId?: InputMaybe<Scalars['ID']['input']>;
2188
2316
  userId?: InputMaybe<Scalars['ID']['input']>;
@@ -2198,11 +2326,26 @@ export type QueryRoleGroupsInput = {
2198
2326
  roleId?: InputMaybe<Scalars['ID']['input']>;
2199
2327
  };
2200
2328
 
2329
+ export type QueryRolePermissionsInput = {
2330
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2331
+ roleId?: InputMaybe<Scalars['ID']['input']>;
2332
+ };
2333
+
2201
2334
  export type QueryRoleTagsInput = {
2202
2335
  roleId?: InputMaybe<Scalars['ID']['input']>;
2203
2336
  tagId?: InputMaybe<Scalars['ID']['input']>;
2204
2337
  };
2205
2338
 
2339
+ export type QueryUserGroupsInput = {
2340
+ groupId?: InputMaybe<Scalars['ID']['input']>;
2341
+ userId?: InputMaybe<Scalars['ID']['input']>;
2342
+ };
2343
+
2344
+ export type QueryUserPermissionsInput = {
2345
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2346
+ userId?: InputMaybe<Scalars['ID']['input']>;
2347
+ };
2348
+
2206
2349
  export type QueryUserRolesInput = {
2207
2350
  roleId?: InputMaybe<Scalars['ID']['input']>;
2208
2351
  userId?: InputMaybe<Scalars['ID']['input']>;
@@ -2343,6 +2486,12 @@ export type RemoveProjectRoleInput = {
2343
2486
  roleId: Scalars['ID']['input'];
2344
2487
  };
2345
2488
 
2489
+ export type RemoveProjectRolePermissionInput = {
2490
+ permissionId: Scalars['ID']['input'];
2491
+ projectId: Scalars['ID']['input'];
2492
+ roleId: Scalars['ID']['input'];
2493
+ };
2494
+
2346
2495
  export type RemoveProjectTagInput = {
2347
2496
  projectId: Scalars['ID']['input'];
2348
2497
  tagId: Scalars['ID']['input'];
@@ -2354,11 +2503,23 @@ export type RemoveProjectUserApiKeyInput = {
2354
2503
  userId: Scalars['ID']['input'];
2355
2504
  };
2356
2505
 
2506
+ export type RemoveProjectUserGroupInput = {
2507
+ groupId: Scalars['ID']['input'];
2508
+ projectId: Scalars['ID']['input'];
2509
+ userId: Scalars['ID']['input'];
2510
+ };
2511
+
2357
2512
  export type RemoveProjectUserInput = {
2358
2513
  projectId: Scalars['ID']['input'];
2359
2514
  userId: Scalars['ID']['input'];
2360
2515
  };
2361
2516
 
2517
+ export type RemoveProjectUserPermissionInput = {
2518
+ permissionId: Scalars['ID']['input'];
2519
+ projectId: Scalars['ID']['input'];
2520
+ userId: Scalars['ID']['input'];
2521
+ };
2522
+
2362
2523
  export type RemoveResourceTagInput = {
2363
2524
  resourceId: Scalars['ID']['input'];
2364
2525
  tagId: Scalars['ID']['input'];
@@ -2374,6 +2535,11 @@ export type RemoveRoleTagInput = {
2374
2535
  tagId: Scalars['ID']['input'];
2375
2536
  };
2376
2537
 
2538
+ export type RemoveUserGroupInput = {
2539
+ groupId: Scalars['ID']['input'];
2540
+ userId: Scalars['ID']['input'];
2541
+ };
2542
+
2377
2543
  export type RemoveUserRoleInput = {
2378
2544
  roleId: Scalars['ID']['input'];
2379
2545
  userId: Scalars['ID']['input'];
@@ -2503,27 +2669,55 @@ export type RevokeMyUserSessionResult = {
2503
2669
  success: Scalars['Boolean']['output'];
2504
2670
  };
2505
2671
 
2672
+ export type RevokeRolePermissionInput = {
2673
+ hardDelete?: InputMaybe<Scalars['Boolean']['input']>;
2674
+ permissionId: Scalars['ID']['input'];
2675
+ roleId: Scalars['ID']['input'];
2676
+ scope: Scope;
2677
+ };
2678
+
2679
+ export type RevokeUserPermissionInput = {
2680
+ hardDelete?: InputMaybe<Scalars['Boolean']['input']>;
2681
+ permissionId: Scalars['ID']['input'];
2682
+ scope: Scope;
2683
+ userId: Scalars['ID']['input'];
2684
+ };
2685
+
2506
2686
  export type Role = Auditable & {
2507
2687
  __typename?: 'Role';
2508
2688
  createdAt: Scalars['Date']['output'];
2509
2689
  deletedAt?: Maybe<Scalars['Date']['output']>;
2510
2690
  description?: Maybe<Scalars['String']['output']>;
2691
+ groupCount: Scalars['Int']['output'];
2511
2692
  groups?: Maybe<Array<Group>>;
2512
2693
  id: Scalars['ID']['output'];
2513
2694
  metadata: Scalars['JSON']['output'];
2514
2695
  name: Scalars['String']['output'];
2696
+ permissionCount: Scalars['Int']['output'];
2697
+ primaryTag?: Maybe<Tag>;
2698
+ rolePermissions?: Maybe<Array<RolePermission>>;
2699
+ tagCount: Scalars['Int']['output'];
2515
2700
  tags?: Maybe<Array<Tag>>;
2516
2701
  updatedAt: Scalars['Date']['output'];
2517
2702
  };
2518
2703
 
2519
2704
  export type RoleCdmInput = {
2520
2705
  description?: InputMaybe<Scalars['String']['input']>;
2706
+ /**
2707
+ * Group keys from the `groups` section. When set, permissions are linked via
2708
+ * Role → Group → Permission. Omit to use direct `permissions` on the role.
2709
+ */
2521
2710
  groups?: InputMaybe<Array<Scalars['String']['input']>>;
2522
2711
  key: Scalars['String']['input'];
2523
2712
  metadata?: InputMaybe<Scalars['JSON']['input']>;
2524
2713
  name: Scalars['String']['input'];
2714
+ /**
2715
+ * Permission document keys or catalog refs (`resourceSlug:action`). Used for
2716
+ * direct Role → Permission when `groups` is empty.
2717
+ */
2525
2718
  permissions?: InputMaybe<Array<Scalars['String']['input']>>;
2526
2719
  primaryTag?: InputMaybe<Scalars['String']['input']>;
2720
+ searchable?: InputMaybe<Scalars['JSON']['input']>;
2527
2721
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
2528
2722
  };
2529
2723
 
@@ -2554,9 +2748,30 @@ export type RolePage = PaginatedResults & {
2554
2748
  totalCount: Scalars['Int']['output'];
2555
2749
  };
2556
2750
 
2751
+ export type RolePermission = Auditable & {
2752
+ __typename?: 'RolePermission';
2753
+ createdAt: Scalars['Date']['output'];
2754
+ deletedAt?: Maybe<Scalars['Date']['output']>;
2755
+ id: Scalars['ID']['output'];
2756
+ permission?: Maybe<Permission>;
2757
+ permissionId: Scalars['ID']['output'];
2758
+ role?: Maybe<Role>;
2759
+ roleId: Scalars['ID']['output'];
2760
+ updatedAt: Scalars['Date']['output'];
2761
+ };
2762
+
2763
+ export type RolePermissionPermissionArgs = {
2764
+ scope: Scope;
2765
+ };
2766
+
2767
+ export type RolePermissionRoleArgs = {
2768
+ scope: Scope;
2769
+ };
2770
+
2557
2771
  export enum RoleSearchableField {
2558
2772
  Description = 'description',
2559
2773
  Name = 'name',
2774
+ SearchDocument = 'searchDocument',
2560
2775
  }
2561
2776
 
2562
2777
  export type RoleSortInput = {
@@ -2950,6 +3165,7 @@ export type UpdateUserAuthenticationMethodInput = {
2950
3165
  };
2951
3166
 
2952
3167
  export type UpdateUserInput = {
3168
+ groupIds?: InputMaybe<Array<Scalars['ID']['input']>>;
2953
3169
  metadata?: InputMaybe<Scalars['JSON']['input']>;
2954
3170
  name?: InputMaybe<Scalars['String']['input']>;
2955
3171
  pictureUrl?: InputMaybe<Scalars['String']['input']>;
@@ -3001,10 +3217,17 @@ export type User = Auditable & {
3001
3217
  id: Scalars['ID']['output'];
3002
3218
  metadata: Scalars['JSON']['output'];
3003
3219
  name: Scalars['String']['output'];
3220
+ permissionCount: Scalars['Int']['output'];
3004
3221
  pictureUrl?: Maybe<Scalars['String']['output']>;
3222
+ primaryTag?: Maybe<Tag>;
3223
+ projectUserApiKeyCount: Scalars['Int']['output'];
3224
+ roleCount: Scalars['Int']['output'];
3005
3225
  roles?: Maybe<Array<Role>>;
3226
+ tagCount: Scalars['Int']['output'];
3006
3227
  tags?: Maybe<Array<Tag>>;
3007
3228
  updatedAt: Scalars['Date']['output'];
3229
+ userGroups?: Maybe<Array<UserGroup>>;
3230
+ userPermissions?: Maybe<Array<UserPermission>>;
3008
3231
  };
3009
3232
 
3010
3233
  export type UserApiKeyCdmInput = {
@@ -3047,13 +3270,18 @@ export enum UserAuthenticationMethodProvider {
3047
3270
 
3048
3271
  export type UserCdmInput = {
3049
3272
  apiKeys?: InputMaybe<Array<UserApiKeyCdmInput>>;
3273
+ /** Direct group assignment. Each key must appear in the document `groups` section. */
3050
3274
  groups?: InputMaybe<Array<Scalars['String']['input']>>;
3051
3275
  key: CdmKeyResolverInput;
3052
3276
  metadata?: InputMaybe<Scalars['JSON']['input']>;
3053
3277
  name: Scalars['String']['input'];
3278
+ /** Direct user → permission grants (document keys or catalog `resourceSlug:action` refs). */
3054
3279
  permissions?: InputMaybe<Array<Scalars['String']['input']>>;
3055
3280
  primaryTag?: InputMaybe<Scalars['String']['input']>;
3281
+ /** Role template keys from the `roles` section. */
3056
3282
  roles?: InputMaybe<Array<Scalars['String']['input']>>;
3283
+ /** Denormalized search tokens for project-scoped user list views. */
3284
+ searchable?: InputMaybe<Scalars['JSON']['input']>;
3057
3285
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
3058
3286
  };
3059
3287
 
@@ -3077,6 +3305,26 @@ export type UserExportData = {
3077
3305
  updatedAt: Scalars['Date']['output'];
3078
3306
  };
3079
3307
 
3308
+ export type UserGroup = Auditable & {
3309
+ __typename?: 'UserGroup';
3310
+ createdAt: Scalars['Date']['output'];
3311
+ deletedAt?: Maybe<Scalars['Date']['output']>;
3312
+ group?: Maybe<Group>;
3313
+ groupId: Scalars['ID']['output'];
3314
+ id: Scalars['ID']['output'];
3315
+ updatedAt: Scalars['Date']['output'];
3316
+ user?: Maybe<User>;
3317
+ userId: Scalars['ID']['output'];
3318
+ };
3319
+
3320
+ export type UserGroupGroupArgs = {
3321
+ scope: Scope;
3322
+ };
3323
+
3324
+ export type UserGroupUserArgs = {
3325
+ scope: Scope;
3326
+ };
3327
+
3080
3328
  export type UserPage = PaginatedResults & {
3081
3329
  __typename?: 'UserPage';
3082
3330
  hasNextPage: Scalars['Boolean']['output'];
@@ -3084,6 +3332,26 @@ export type UserPage = PaginatedResults & {
3084
3332
  users: Array<User>;
3085
3333
  };
3086
3334
 
3335
+ export type UserPermission = Auditable & {
3336
+ __typename?: 'UserPermission';
3337
+ createdAt: Scalars['Date']['output'];
3338
+ deletedAt?: Maybe<Scalars['Date']['output']>;
3339
+ id: Scalars['ID']['output'];
3340
+ permission?: Maybe<Permission>;
3341
+ permissionId: Scalars['ID']['output'];
3342
+ updatedAt: Scalars['Date']['output'];
3343
+ user?: Maybe<User>;
3344
+ userId: Scalars['ID']['output'];
3345
+ };
3346
+
3347
+ export type UserPermissionPermissionArgs = {
3348
+ scope: Scope;
3349
+ };
3350
+
3351
+ export type UserPermissionUserArgs = {
3352
+ scope: Scope;
3353
+ };
3354
+
3087
3355
  export type UserRegistrationData = {
3088
3356
  name: Scalars['String']['input'];
3089
3357
  password: Scalars['String']['input'];
@@ -3338,18 +3606,24 @@ export type ResolversInterfaceTypes<_RefType extends Record<string, unknown>> =
3338
3606
  | ProjectPermission
3339
3607
  | ProjectResource
3340
3608
  | ProjectRole
3609
+ | ProjectRolePermission
3341
3610
  | ProjectTag
3342
3611
  | ProjectUser
3343
3612
  | ProjectUserApiKey
3613
+ | ProjectUserGroup
3614
+ | ProjectUserPermission
3344
3615
  | Resource
3345
3616
  | ResourceTag
3346
3617
  | Role
3347
3618
  | RoleGroup
3619
+ | RolePermission
3348
3620
  | RoleTag
3349
3621
  | SigningKey
3350
3622
  | Tag
3351
3623
  | User
3352
3624
  | UserAuthenticationMethod
3625
+ | UserGroup
3626
+ | UserPermission
3353
3627
  | UserRole
3354
3628
  | UserSession
3355
3629
  | UserTag;
@@ -3408,12 +3682,16 @@ export type ResolversTypes = ResolversObject<{
3408
3682
  AddProjectPermissionInput: AddProjectPermissionInput;
3409
3683
  AddProjectResourceInput: AddProjectResourceInput;
3410
3684
  AddProjectRoleInput: AddProjectRoleInput;
3685
+ AddProjectRolePermissionInput: AddProjectRolePermissionInput;
3411
3686
  AddProjectTagInput: AddProjectTagInput;
3412
3687
  AddProjectUserApiKeyInput: AddProjectUserApiKeyInput;
3688
+ AddProjectUserGroupInput: AddProjectUserGroupInput;
3413
3689
  AddProjectUserInput: AddProjectUserInput;
3690
+ AddProjectUserPermissionInput: AddProjectUserPermissionInput;
3414
3691
  AddResourceTagInput: AddResourceTagInput;
3415
3692
  AddRoleGroupInput: AddRoleGroupInput;
3416
3693
  AddRoleTagInput: AddRoleTagInput;
3694
+ AddUserGroupInput: AddUserGroupInput;
3417
3695
  AddUserRoleInput: AddUserRoleInput;
3418
3696
  AddUserTagInput: AddUserTagInput;
3419
3697
  ApiKey: ResolverTypeWrapper<ApiKey>;
@@ -3421,6 +3699,8 @@ export type ResolversTypes = ResolversObject<{
3421
3699
  ApiKeySearchableField: ApiKeySearchableField;
3422
3700
  ApiKeySortInput: ApiKeySortInput;
3423
3701
  ApiKeySortableField: ApiKeySortableField;
3702
+ AssignRolePermissionInput: AssignRolePermissionInput;
3703
+ AssignUserPermissionInput: AssignUserPermissionInput;
3424
3704
  Auditable: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['Auditable']>;
3425
3705
  AuthenticationMethodExportData: ResolverTypeWrapper<AuthenticationMethodExportData>;
3426
3706
  AuthorizationReason: AuthorizationReason;
@@ -3540,6 +3820,7 @@ export type ResolversTypes = ResolversObject<{
3540
3820
  ProjectPermission: ResolverTypeWrapper<ProjectPermission>;
3541
3821
  ProjectResource: ResolverTypeWrapper<ProjectResource>;
3542
3822
  ProjectRole: ResolverTypeWrapper<ProjectRole>;
3823
+ ProjectRolePermission: ResolverTypeWrapper<ProjectRolePermission>;
3543
3824
  ProjectSearchableField: ProjectSearchableField;
3544
3825
  ProjectSortInput: ProjectSortInput;
3545
3826
  ProjectSortableField: ProjectSortableField;
@@ -3552,6 +3833,8 @@ export type ResolversTypes = ResolversObject<{
3552
3833
  ProjectTag: ResolverTypeWrapper<ProjectTag>;
3553
3834
  ProjectUser: ResolverTypeWrapper<ProjectUser>;
3554
3835
  ProjectUserApiKey: ResolverTypeWrapper<ProjectUserApiKey>;
3836
+ ProjectUserGroup: ResolverTypeWrapper<ProjectUserGroup>;
3837
+ ProjectUserPermission: ResolverTypeWrapper<ProjectUserPermission>;
3555
3838
  Query: ResolverTypeWrapper<Record<PropertyKey, never>>;
3556
3839
  QueryAccountProjectApiKeysInput: QueryAccountProjectApiKeysInput;
3557
3840
  QueryAccountProjectInput: QueryAccountProjectInput;
@@ -3575,13 +3858,19 @@ export type ResolversTypes = ResolversObject<{
3575
3858
  QueryProjectGroupsInput: QueryProjectGroupsInput;
3576
3859
  QueryProjectPermissionsInput: QueryProjectPermissionsInput;
3577
3860
  QueryProjectResourcesInput: QueryProjectResourcesInput;
3861
+ QueryProjectRolePermissionsInput: QueryProjectRolePermissionsInput;
3578
3862
  QueryProjectRolesInput: QueryProjectRolesInput;
3579
3863
  QueryProjectTagsInput: QueryProjectTagsInput;
3580
3864
  QueryProjectUserApiKeysInput: QueryProjectUserApiKeysInput;
3865
+ QueryProjectUserGroupsInput: QueryProjectUserGroupsInput;
3866
+ QueryProjectUserPermissionsInput: QueryProjectUserPermissionsInput;
3581
3867
  QueryProjectUsersInput: QueryProjectUsersInput;
3582
3868
  QueryResourceTagsInput: QueryResourceTagsInput;
3583
3869
  QueryRoleGroupsInput: QueryRoleGroupsInput;
3870
+ QueryRolePermissionsInput: QueryRolePermissionsInput;
3584
3871
  QueryRoleTagsInput: QueryRoleTagsInput;
3872
+ QueryUserGroupsInput: QueryUserGroupsInput;
3873
+ QueryUserPermissionsInput: QueryUserPermissionsInput;
3585
3874
  QueryUserRolesInput: QueryUserRolesInput;
3586
3875
  QueryUserTagsInput: QueryUserTagsInput;
3587
3876
  RefreshSessionResponse: ResolverTypeWrapper<RefreshSessionResponse>;
@@ -3609,12 +3898,16 @@ export type ResolversTypes = ResolversObject<{
3609
3898
  RemoveProjectPermissionInput: RemoveProjectPermissionInput;
3610
3899
  RemoveProjectResourceInput: RemoveProjectResourceInput;
3611
3900
  RemoveProjectRoleInput: RemoveProjectRoleInput;
3901
+ RemoveProjectRolePermissionInput: RemoveProjectRolePermissionInput;
3612
3902
  RemoveProjectTagInput: RemoveProjectTagInput;
3613
3903
  RemoveProjectUserApiKeyInput: RemoveProjectUserApiKeyInput;
3904
+ RemoveProjectUserGroupInput: RemoveProjectUserGroupInput;
3614
3905
  RemoveProjectUserInput: RemoveProjectUserInput;
3906
+ RemoveProjectUserPermissionInput: RemoveProjectUserPermissionInput;
3615
3907
  RemoveResourceTagInput: RemoveResourceTagInput;
3616
3908
  RemoveRoleGroupInput: RemoveRoleGroupInput;
3617
3909
  RemoveRoleTagInput: RemoveRoleTagInput;
3910
+ RemoveUserGroupInput: RemoveUserGroupInput;
3618
3911
  RemoveUserRoleInput: RemoveUserRoleInput;
3619
3912
  RemoveUserTagInput: RemoveUserTagInput;
3620
3913
  RequestPasswordResetInput: RequestPasswordResetInput;
@@ -3632,10 +3925,13 @@ export type ResolversTypes = ResolversObject<{
3632
3925
  ResourceTag: ResolverTypeWrapper<ResourceTag>;
3633
3926
  RevokeApiKeyInput: RevokeApiKeyInput;
3634
3927
  RevokeMyUserSessionResult: ResolverTypeWrapper<RevokeMyUserSessionResult>;
3928
+ RevokeRolePermissionInput: RevokeRolePermissionInput;
3929
+ RevokeUserPermissionInput: RevokeUserPermissionInput;
3635
3930
  Role: ResolverTypeWrapper<Role>;
3636
3931
  RoleCdmInput: RoleCdmInput;
3637
3932
  RoleGroup: ResolverTypeWrapper<RoleGroup>;
3638
3933
  RolePage: ResolverTypeWrapper<RolePage>;
3934
+ RolePermission: ResolverTypeWrapper<RolePermission>;
3639
3935
  RoleSearchableField: RoleSearchableField;
3640
3936
  RoleSortInput: RoleSortInput;
3641
3937
  RoleSortableField: RoleSortableField;
@@ -3695,7 +3991,9 @@ export type ResolversTypes = ResolversObject<{
3695
3991
  UserCdmInput: UserCdmInput;
3696
3992
  UserDataExport: ResolverTypeWrapper<UserDataExport>;
3697
3993
  UserExportData: ResolverTypeWrapper<UserExportData>;
3994
+ UserGroup: ResolverTypeWrapper<UserGroup>;
3698
3995
  UserPage: ResolverTypeWrapper<UserPage>;
3996
+ UserPermission: ResolverTypeWrapper<UserPermission>;
3699
3997
  UserRegistrationData: UserRegistrationData;
3700
3998
  UserRole: ResolverTypeWrapper<UserRole>;
3701
3999
  UserSearchableField: UserSearchableField;
@@ -3748,17 +4046,23 @@ export type ResolversParentTypes = ResolversObject<{
3748
4046
  AddProjectPermissionInput: AddProjectPermissionInput;
3749
4047
  AddProjectResourceInput: AddProjectResourceInput;
3750
4048
  AddProjectRoleInput: AddProjectRoleInput;
4049
+ AddProjectRolePermissionInput: AddProjectRolePermissionInput;
3751
4050
  AddProjectTagInput: AddProjectTagInput;
3752
4051
  AddProjectUserApiKeyInput: AddProjectUserApiKeyInput;
4052
+ AddProjectUserGroupInput: AddProjectUserGroupInput;
3753
4053
  AddProjectUserInput: AddProjectUserInput;
4054
+ AddProjectUserPermissionInput: AddProjectUserPermissionInput;
3754
4055
  AddResourceTagInput: AddResourceTagInput;
3755
4056
  AddRoleGroupInput: AddRoleGroupInput;
3756
4057
  AddRoleTagInput: AddRoleTagInput;
4058
+ AddUserGroupInput: AddUserGroupInput;
3757
4059
  AddUserRoleInput: AddUserRoleInput;
3758
4060
  AddUserTagInput: AddUserTagInput;
3759
4061
  ApiKey: ApiKey;
3760
4062
  ApiKeyPage: ApiKeyPage;
3761
4063
  ApiKeySortInput: ApiKeySortInput;
4064
+ AssignRolePermissionInput: AssignRolePermissionInput;
4065
+ AssignUserPermissionInput: AssignUserPermissionInput;
3762
4066
  Auditable: ResolversInterfaceTypes<ResolversParentTypes>['Auditable'];
3763
4067
  AuthenticationMethodExportData: AuthenticationMethodExportData;
3764
4068
  AuthorizationResult: AuthorizationResult;
@@ -3857,6 +4161,7 @@ export type ResolversParentTypes = ResolversObject<{
3857
4161
  ProjectPermission: ProjectPermission;
3858
4162
  ProjectResource: ProjectResource;
3859
4163
  ProjectRole: ProjectRole;
4164
+ ProjectRolePermission: ProjectRolePermission;
3860
4165
  ProjectSortInput: ProjectSortInput;
3861
4166
  ProjectSyncJob: ProjectSyncJob;
3862
4167
  ProjectSyncJobPage: ProjectSyncJobPage;
@@ -3864,6 +4169,8 @@ export type ResolversParentTypes = ResolversObject<{
3864
4169
  ProjectTag: ProjectTag;
3865
4170
  ProjectUser: ProjectUser;
3866
4171
  ProjectUserApiKey: ProjectUserApiKey;
4172
+ ProjectUserGroup: ProjectUserGroup;
4173
+ ProjectUserPermission: ProjectUserPermission;
3867
4174
  Query: Record<PropertyKey, never>;
3868
4175
  QueryAccountProjectApiKeysInput: QueryAccountProjectApiKeysInput;
3869
4176
  QueryAccountProjectInput: QueryAccountProjectInput;
@@ -3887,13 +4194,19 @@ export type ResolversParentTypes = ResolversObject<{
3887
4194
  QueryProjectGroupsInput: QueryProjectGroupsInput;
3888
4195
  QueryProjectPermissionsInput: QueryProjectPermissionsInput;
3889
4196
  QueryProjectResourcesInput: QueryProjectResourcesInput;
4197
+ QueryProjectRolePermissionsInput: QueryProjectRolePermissionsInput;
3890
4198
  QueryProjectRolesInput: QueryProjectRolesInput;
3891
4199
  QueryProjectTagsInput: QueryProjectTagsInput;
3892
4200
  QueryProjectUserApiKeysInput: QueryProjectUserApiKeysInput;
4201
+ QueryProjectUserGroupsInput: QueryProjectUserGroupsInput;
4202
+ QueryProjectUserPermissionsInput: QueryProjectUserPermissionsInput;
3893
4203
  QueryProjectUsersInput: QueryProjectUsersInput;
3894
4204
  QueryResourceTagsInput: QueryResourceTagsInput;
3895
4205
  QueryRoleGroupsInput: QueryRoleGroupsInput;
4206
+ QueryRolePermissionsInput: QueryRolePermissionsInput;
3896
4207
  QueryRoleTagsInput: QueryRoleTagsInput;
4208
+ QueryUserGroupsInput: QueryUserGroupsInput;
4209
+ QueryUserPermissionsInput: QueryUserPermissionsInput;
3897
4210
  QueryUserRolesInput: QueryUserRolesInput;
3898
4211
  QueryUserTagsInput: QueryUserTagsInput;
3899
4212
  RefreshSessionResponse: RefreshSessionResponse;
@@ -3921,12 +4234,16 @@ export type ResolversParentTypes = ResolversObject<{
3921
4234
  RemoveProjectPermissionInput: RemoveProjectPermissionInput;
3922
4235
  RemoveProjectResourceInput: RemoveProjectResourceInput;
3923
4236
  RemoveProjectRoleInput: RemoveProjectRoleInput;
4237
+ RemoveProjectRolePermissionInput: RemoveProjectRolePermissionInput;
3924
4238
  RemoveProjectTagInput: RemoveProjectTagInput;
3925
4239
  RemoveProjectUserApiKeyInput: RemoveProjectUserApiKeyInput;
4240
+ RemoveProjectUserGroupInput: RemoveProjectUserGroupInput;
3926
4241
  RemoveProjectUserInput: RemoveProjectUserInput;
4242
+ RemoveProjectUserPermissionInput: RemoveProjectUserPermissionInput;
3927
4243
  RemoveResourceTagInput: RemoveResourceTagInput;
3928
4244
  RemoveRoleGroupInput: RemoveRoleGroupInput;
3929
4245
  RemoveRoleTagInput: RemoveRoleTagInput;
4246
+ RemoveUserGroupInput: RemoveUserGroupInput;
3930
4247
  RemoveUserRoleInput: RemoveUserRoleInput;
3931
4248
  RemoveUserTagInput: RemoveUserTagInput;
3932
4249
  RequestPasswordResetInput: RequestPasswordResetInput;
@@ -3942,10 +4259,13 @@ export type ResolversParentTypes = ResolversObject<{
3942
4259
  ResourceTag: ResourceTag;
3943
4260
  RevokeApiKeyInput: RevokeApiKeyInput;
3944
4261
  RevokeMyUserSessionResult: RevokeMyUserSessionResult;
4262
+ RevokeRolePermissionInput: RevokeRolePermissionInput;
4263
+ RevokeUserPermissionInput: RevokeUserPermissionInput;
3945
4264
  Role: Role;
3946
4265
  RoleCdmInput: RoleCdmInput;
3947
4266
  RoleGroup: RoleGroup;
3948
4267
  RolePage: RolePage;
4268
+ RolePermission: RolePermission;
3949
4269
  RoleSortInput: RoleSortInput;
3950
4270
  RoleTag: RoleTag;
3951
4271
  Scope: Scope;
@@ -3996,7 +4316,9 @@ export type ResolversParentTypes = ResolversObject<{
3996
4316
  UserCdmInput: UserCdmInput;
3997
4317
  UserDataExport: UserDataExport;
3998
4318
  UserExportData: UserExportData;
4319
+ UserGroup: UserGroup;
3999
4320
  UserPage: UserPage;
4321
+ UserPermission: UserPermission;
4000
4322
  UserRegistrationData: UserRegistrationData;
4001
4323
  UserRole: UserRole;
4002
4324
  UserSession: UserSession;
@@ -4213,18 +4535,24 @@ export type AuditableResolvers<
4213
4535
  | 'ProjectPermission'
4214
4536
  | 'ProjectResource'
4215
4537
  | 'ProjectRole'
4538
+ | 'ProjectRolePermission'
4216
4539
  | 'ProjectTag'
4217
4540
  | 'ProjectUser'
4218
4541
  | 'ProjectUserApiKey'
4542
+ | 'ProjectUserGroup'
4543
+ | 'ProjectUserPermission'
4219
4544
  | 'Resource'
4220
4545
  | 'ResourceTag'
4221
4546
  | 'Role'
4222
4547
  | 'RoleGroup'
4548
+ | 'RolePermission'
4223
4549
  | 'RoleTag'
4224
4550
  | 'SigningKey'
4225
4551
  | 'Tag'
4226
4552
  | 'User'
4227
4553
  | 'UserAuthenticationMethod'
4554
+ | 'UserGroup'
4555
+ | 'UserPermission'
4228
4556
  | 'UserRole'
4229
4557
  | 'UserSession'
4230
4558
  | 'UserTag',
@@ -4349,7 +4677,10 @@ export type GroupResolvers<
4349
4677
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
4350
4678
  metadata?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
4351
4679
  name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
4680
+ permissionCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
4352
4681
  permissions?: Resolver<Maybe<Array<ResolversTypes['Permission']>>, ParentType, ContextType>;
4682
+ primaryTag?: Resolver<Maybe<ResolversTypes['Tag']>, ParentType, ContextType>;
4683
+ tagCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
4353
4684
  tags?: Resolver<Maybe<Array<ResolversTypes['Tag']>>, ParentType, ContextType>;
4354
4685
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
4355
4686
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -4523,6 +4854,18 @@ export type MutationResolvers<
4523
4854
  ContextType,
4524
4855
  RequireFields<MutationAcceptInvitationArgs, 'input'>
4525
4856
  >;
4857
+ assignRolePermission?: Resolver<
4858
+ ResolversTypes['RolePermission'],
4859
+ ParentType,
4860
+ ContextType,
4861
+ RequireFields<MutationAssignRolePermissionArgs, 'input'>
4862
+ >;
4863
+ assignUserPermission?: Resolver<
4864
+ ResolversTypes['UserPermission'],
4865
+ ParentType,
4866
+ ContextType,
4867
+ RequireFields<MutationAssignUserPermissionArgs, 'input'>
4868
+ >;
4526
4869
  cancelProjectSync?: Resolver<
4527
4870
  ResolversTypes['ProjectSyncJob'],
4528
4871
  ParentType,
@@ -4771,6 +5114,18 @@ export type MutationResolvers<
4771
5114
  ContextType,
4772
5115
  RequireFields<MutationRevokeMyUserSessionArgs, 'id'>
4773
5116
  >;
5117
+ revokeRolePermission?: Resolver<
5118
+ ResolversTypes['RolePermission'],
5119
+ ParentType,
5120
+ ContextType,
5121
+ RequireFields<MutationRevokeRolePermissionArgs, 'input'>
5122
+ >;
5123
+ revokeUserPermission?: Resolver<
5124
+ ResolversTypes['UserPermission'],
5125
+ ParentType,
5126
+ ContextType,
5127
+ RequireFields<MutationRevokeUserPermissionArgs, 'input'>
5128
+ >;
4774
5129
  rotateSigningKey?: Resolver<
4775
5130
  ResolversTypes['SigningKey'],
4776
5131
  ParentType,
@@ -5181,8 +5536,10 @@ export type PermissionResolvers<
5181
5536
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5182
5537
  metadata?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
5183
5538
  name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
5539
+ primaryTag?: Resolver<Maybe<ResolversTypes['Tag']>, ParentType, ContextType>;
5184
5540
  resource?: Resolver<Maybe<ResolversTypes['Resource']>, ParentType, ContextType>;
5185
5541
  resourceId?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
5542
+ tagCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5186
5543
  tags?: Resolver<Maybe<Array<ResolversTypes['Tag']>>, ParentType, ContextType>;
5187
5544
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5188
5545
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -5392,6 +5749,21 @@ export type ProjectRoleResolvers<
5392
5749
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5393
5750
  }>;
5394
5751
 
5752
+ export type ProjectRolePermissionResolvers<
5753
+ ContextType = any,
5754
+ ParentType extends ResolversParentTypes['ProjectRolePermission'] =
5755
+ ResolversParentTypes['ProjectRolePermission'],
5756
+ > = ResolversObject<{
5757
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5758
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
5759
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5760
+ permissionId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5761
+ projectId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5762
+ roleId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5763
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5764
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5765
+ }>;
5766
+
5395
5767
  export type ProjectSyncJobResolvers<
5396
5768
  ContextType = any,
5397
5769
  ParentType extends ResolversParentTypes['ProjectSyncJob'] =
@@ -5489,6 +5861,36 @@ export type ProjectUserApiKeyResolvers<
5489
5861
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5490
5862
  }>;
5491
5863
 
5864
+ export type ProjectUserGroupResolvers<
5865
+ ContextType = any,
5866
+ ParentType extends ResolversParentTypes['ProjectUserGroup'] =
5867
+ ResolversParentTypes['ProjectUserGroup'],
5868
+ > = ResolversObject<{
5869
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5870
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
5871
+ groupId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5872
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5873
+ projectId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5874
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5875
+ userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5876
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5877
+ }>;
5878
+
5879
+ export type ProjectUserPermissionResolvers<
5880
+ ContextType = any,
5881
+ ParentType extends ResolversParentTypes['ProjectUserPermission'] =
5882
+ ResolversParentTypes['ProjectUserPermission'],
5883
+ > = ResolversObject<{
5884
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5885
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
5886
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5887
+ permissionId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5888
+ projectId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5889
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5890
+ userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5891
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5892
+ }>;
5893
+
5492
5894
  export type QueryResolvers<
5493
5895
  ContextType = any,
5494
5896
  ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query'],
@@ -5727,10 +6129,19 @@ export type RoleResolvers<
5727
6129
  createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5728
6130
  deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
5729
6131
  description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
6132
+ groupCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5730
6133
  groups?: Resolver<Maybe<Array<ResolversTypes['Group']>>, ParentType, ContextType>;
5731
6134
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5732
6135
  metadata?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
5733
6136
  name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
6137
+ permissionCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
6138
+ primaryTag?: Resolver<Maybe<ResolversTypes['Tag']>, ParentType, ContextType>;
6139
+ rolePermissions?: Resolver<
6140
+ Maybe<Array<ResolversTypes['RolePermission']>>,
6141
+ ParentType,
6142
+ ContextType
6143
+ >;
6144
+ tagCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5734
6145
  tags?: Resolver<Maybe<Array<ResolversTypes['Tag']>>, ParentType, ContextType>;
5735
6146
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5736
6147
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -5771,6 +6182,32 @@ export type RolePageResolvers<
5771
6182
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5772
6183
  }>;
5773
6184
 
6185
+ export type RolePermissionResolvers<
6186
+ ContextType = any,
6187
+ ParentType extends ResolversParentTypes['RolePermission'] =
6188
+ ResolversParentTypes['RolePermission'],
6189
+ > = ResolversObject<{
6190
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6191
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
6192
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6193
+ permission?: Resolver<
6194
+ Maybe<ResolversTypes['Permission']>,
6195
+ ParentType,
6196
+ ContextType,
6197
+ RequireFields<RolePermissionPermissionArgs, 'scope'>
6198
+ >;
6199
+ permissionId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6200
+ role?: Resolver<
6201
+ Maybe<ResolversTypes['Role']>,
6202
+ ParentType,
6203
+ ContextType,
6204
+ RequireFields<RolePermissionRoleArgs, 'scope'>
6205
+ >;
6206
+ roleId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6207
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6208
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
6209
+ }>;
6210
+
5774
6211
  export type RoleTagResolvers<
5775
6212
  ContextType = any,
5776
6213
  ParentType extends ResolversParentTypes['RoleTag'] = ResolversParentTypes['RoleTag'],
@@ -5909,10 +6346,21 @@ export type UserResolvers<
5909
6346
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5910
6347
  metadata?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
5911
6348
  name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
6349
+ permissionCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5912
6350
  pictureUrl?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
6351
+ primaryTag?: Resolver<Maybe<ResolversTypes['Tag']>, ParentType, ContextType>;
6352
+ projectUserApiKeyCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
6353
+ roleCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5913
6354
  roles?: Resolver<Maybe<Array<ResolversTypes['Role']>>, ParentType, ContextType>;
6355
+ tagCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5914
6356
  tags?: Resolver<Maybe<Array<ResolversTypes['Tag']>>, ParentType, ContextType>;
5915
6357
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6358
+ userGroups?: Resolver<Maybe<Array<ResolversTypes['UserGroup']>>, ParentType, ContextType>;
6359
+ userPermissions?: Resolver<
6360
+ Maybe<Array<ResolversTypes['UserPermission']>>,
6361
+ ParentType,
6362
+ ContextType
6363
+ >;
5916
6364
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5917
6365
  }>;
5918
6366
 
@@ -5974,6 +6422,31 @@ export type UserExportDataResolvers<
5974
6422
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5975
6423
  }>;
5976
6424
 
6425
+ export type UserGroupResolvers<
6426
+ ContextType = any,
6427
+ ParentType extends ResolversParentTypes['UserGroup'] = ResolversParentTypes['UserGroup'],
6428
+ > = ResolversObject<{
6429
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6430
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
6431
+ group?: Resolver<
6432
+ Maybe<ResolversTypes['Group']>,
6433
+ ParentType,
6434
+ ContextType,
6435
+ RequireFields<UserGroupGroupArgs, 'scope'>
6436
+ >;
6437
+ groupId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6438
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6439
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6440
+ user?: Resolver<
6441
+ Maybe<ResolversTypes['User']>,
6442
+ ParentType,
6443
+ ContextType,
6444
+ RequireFields<UserGroupUserArgs, 'scope'>
6445
+ >;
6446
+ userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6447
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
6448
+ }>;
6449
+
5977
6450
  export type UserPageResolvers<
5978
6451
  ContextType = any,
5979
6452
  ParentType extends ResolversParentTypes['UserPage'] = ResolversParentTypes['UserPage'],
@@ -5984,6 +6457,32 @@ export type UserPageResolvers<
5984
6457
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5985
6458
  }>;
5986
6459
 
6460
+ export type UserPermissionResolvers<
6461
+ ContextType = any,
6462
+ ParentType extends ResolversParentTypes['UserPermission'] =
6463
+ ResolversParentTypes['UserPermission'],
6464
+ > = ResolversObject<{
6465
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6466
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
6467
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6468
+ permission?: Resolver<
6469
+ Maybe<ResolversTypes['Permission']>,
6470
+ ParentType,
6471
+ ContextType,
6472
+ RequireFields<UserPermissionPermissionArgs, 'scope'>
6473
+ >;
6474
+ permissionId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6475
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6476
+ user?: Resolver<
6477
+ Maybe<ResolversTypes['User']>,
6478
+ ParentType,
6479
+ ContextType,
6480
+ RequireFields<UserPermissionUserArgs, 'scope'>
6481
+ >;
6482
+ userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6483
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
6484
+ }>;
6485
+
5987
6486
  export type UserRoleResolvers<
5988
6487
  ContextType = any,
5989
6488
  ParentType extends ResolversParentTypes['UserRole'] = ResolversParentTypes['UserRole'],
@@ -6148,11 +6647,14 @@ export type Resolvers<ContextType = any> = ResolversObject<{
6148
6647
  ProjectPermission?: ProjectPermissionResolvers<ContextType>;
6149
6648
  ProjectResource?: ProjectResourceResolvers<ContextType>;
6150
6649
  ProjectRole?: ProjectRoleResolvers<ContextType>;
6650
+ ProjectRolePermission?: ProjectRolePermissionResolvers<ContextType>;
6151
6651
  ProjectSyncJob?: ProjectSyncJobResolvers<ContextType>;
6152
6652
  ProjectSyncJobPage?: ProjectSyncJobPageResolvers<ContextType>;
6153
6653
  ProjectTag?: ProjectTagResolvers<ContextType>;
6154
6654
  ProjectUser?: ProjectUserResolvers<ContextType>;
6155
6655
  ProjectUserApiKey?: ProjectUserApiKeyResolvers<ContextType>;
6656
+ ProjectUserGroup?: ProjectUserGroupResolvers<ContextType>;
6657
+ ProjectUserPermission?: ProjectUserPermissionResolvers<ContextType>;
6156
6658
  Query?: QueryResolvers<ContextType>;
6157
6659
  RefreshSessionResponse?: RefreshSessionResponseResolvers<ContextType>;
6158
6660
  RequestPasswordResetResponse?: RequestPasswordResetResponseResolvers<ContextType>;
@@ -6165,6 +6667,7 @@ export type Resolvers<ContextType = any> = ResolversObject<{
6165
6667
  Role?: RoleResolvers<ContextType>;
6166
6668
  RoleGroup?: RoleGroupResolvers<ContextType>;
6167
6669
  RolePage?: RolePageResolvers<ContextType>;
6670
+ RolePermission?: RolePermissionResolvers<ContextType>;
6168
6671
  RoleTag?: RoleTagResolvers<ContextType>;
6169
6672
  Searchable?: SearchableResolvers<ContextType>;
6170
6673
  SessionExportData?: SessionExportDataResolvers<ContextType>;
@@ -6177,7 +6680,9 @@ export type Resolvers<ContextType = any> = ResolversObject<{
6177
6680
  UserAuthenticationMethod?: UserAuthenticationMethodResolvers<ContextType>;
6178
6681
  UserDataExport?: UserDataExportResolvers<ContextType>;
6179
6682
  UserExportData?: UserExportDataResolvers<ContextType>;
6683
+ UserGroup?: UserGroupResolvers<ContextType>;
6180
6684
  UserPage?: UserPageResolvers<ContextType>;
6685
+ UserPermission?: UserPermissionResolvers<ContextType>;
6181
6686
  UserRole?: UserRoleResolvers<ContextType>;
6182
6687
  UserSession?: UserSessionResolvers<ContextType>;
6183
6688
  UserSessionPage?: UserSessionPageResolvers<ContextType>;