@grantjs/schema 1.1.7 → 1.2.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 (48) hide show
  1. package/package.json +1 -1
  2. package/src/generated/graphql.ts +1617 -126
  3. package/src/generated/resolvers.ts +495 -0
  4. package/src/generated/schema-types.ts +258 -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.graphql +3 -0
  23. package/src/schema/permissions/types/permission.graphql +2 -0
  24. package/src/schema/project-role-permissions/types/project-role-permission.graphql +27 -0
  25. package/src/schema/project-user-groups/types/project-user-group.graphql +27 -0
  26. package/src/schema/project-user-permissions/types/project-user-permission.graphql +27 -0
  27. package/src/schema/projects/inputs/sync-project-cdm.graphql +17 -0
  28. package/src/schema/role-permissions/inputs/assign-role-permission.graphql +5 -0
  29. package/src/schema/role-permissions/inputs/query-role-permissions.graphql +4 -0
  30. package/src/schema/role-permissions/inputs/revoke-role-permission.graphql +6 -0
  31. package/src/schema/role-permissions/mutations/assign-role-permission.graphql +3 -0
  32. package/src/schema/role-permissions/mutations/revoke-role-permission.graphql +3 -0
  33. package/src/schema/role-permissions/types/role-permission.graphql +10 -0
  34. package/src/schema/roles/inputs/create-role.graphql +1 -0
  35. package/src/schema/roles/types/role.graphql +5 -0
  36. package/src/schema/user-groups/inputs/add-user-group.graphql +4 -0
  37. package/src/schema/user-groups/inputs/query-user-groups.graphql +4 -0
  38. package/src/schema/user-groups/inputs/remove-user-group.graphql +4 -0
  39. package/src/schema/user-groups/types/user-group.graphql +10 -0
  40. package/src/schema/user-permissions/inputs/assign-user-permission.graphql +5 -0
  41. package/src/schema/user-permissions/inputs/query-user-permissions.graphql +4 -0
  42. package/src/schema/user-permissions/inputs/revoke-user-permission.graphql +6 -0
  43. package/src/schema/user-permissions/mutations/assign-user-permission.graphql +3 -0
  44. package/src/schema/user-permissions/mutations/revoke-user-permission.graphql +3 -0
  45. package/src/schema/user-permissions/types/user-permission.graphql +10 -0
  46. package/src/schema/users/inputs/create-user.graphql +2 -0
  47. package/src/schema/users/inputs/update-user.graphql +1 -0
  48. 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
  };
@@ -786,6 +827,13 @@ export type IsAuthorizedContextInput = {
786
827
  resource?: InputMaybe<Scalars['JSON']['input']>;
787
828
  };
788
829
 
830
+ /**
831
+ * Check whether the authenticated principal may perform an action on a resource.
832
+ *
833
+ * Unions Role → Group → Permission, User → Group → Permission, Role → Permission,
834
+ * and User → Permission before matching the requested resource and action.
835
+ * Conditional permissions are evaluated against role/group/user execution context.
836
+ */
789
837
  export type IsAuthorizedInput = {
790
838
  context: IsAuthorizedContextInput;
791
839
  permission: IsAuthorizedPermissionInput;
@@ -880,6 +928,8 @@ export type Mutation = {
880
928
  __typename?: 'Mutation';
881
929
  _empty?: Maybe<Scalars['String']['output']>;
882
930
  acceptInvitation: AcceptInvitationResult;
931
+ assignRolePermission: RolePermission;
932
+ assignUserPermission: UserPermission;
883
933
  /**
884
934
  * Cancel a pending or running project CDM sync job. Cancellation is
885
935
  * immediate when the job is still PENDING; if the job is already RUNNING, the
@@ -931,6 +981,8 @@ export type Mutation = {
931
981
  revokeApiKey: ApiKey;
932
982
  revokeInvitation: OrganizationInvitation;
933
983
  revokeMyUserSession: RevokeMyUserSessionResult;
984
+ revokeRolePermission: RolePermission;
985
+ revokeUserPermission: UserPermission;
934
986
  /**
935
987
  * Rotate the signing key for the given scope: create a new active key and mark the previous one as rotated.
936
988
  * Allowed scopes: accountProject, organizationProject only.
@@ -987,6 +1039,14 @@ export type MutationAcceptInvitationArgs = {
987
1039
  input: AcceptInvitationInput;
988
1040
  };
989
1041
 
1042
+ export type MutationAssignRolePermissionArgs = {
1043
+ input: AssignRolePermissionInput;
1044
+ };
1045
+
1046
+ export type MutationAssignUserPermissionArgs = {
1047
+ input: AssignUserPermissionInput;
1048
+ };
1049
+
990
1050
  export type MutationCancelProjectSyncArgs = {
991
1051
  id: Scalars['ID']['input'];
992
1052
  jobId: Scalars['ID']['input'];
@@ -1162,6 +1222,14 @@ export type MutationRevokeMyUserSessionArgs = {
1162
1222
  id: Scalars['ID']['input'];
1163
1223
  };
1164
1224
 
1225
+ export type MutationRevokeRolePermissionArgs = {
1226
+ input: RevokeRolePermissionInput;
1227
+ };
1228
+
1229
+ export type MutationRevokeUserPermissionArgs = {
1230
+ input: RevokeUserPermissionInput;
1231
+ };
1232
+
1165
1233
  export type MutationRotateSigningKeyArgs = {
1166
1234
  scope: Scope;
1167
1235
  };
@@ -1526,8 +1594,10 @@ export type Permission = Auditable & {
1526
1594
  id: Scalars['ID']['output'];
1527
1595
  metadata: Scalars['JSON']['output'];
1528
1596
  name: Scalars['String']['output'];
1597
+ primaryTag?: Maybe<Tag>;
1529
1598
  resource?: Maybe<Resource>;
1530
1599
  resourceId?: Maybe<Scalars['ID']['output']>;
1600
+ tagCount: Scalars['Int']['output'];
1531
1601
  tags?: Maybe<Array<Tag>>;
1532
1602
  updatedAt: Scalars['Date']['output'];
1533
1603
  };
@@ -1739,6 +1809,17 @@ export type ProjectRoleProjectArgs = {
1739
1809
  organizationId: Scalars['ID']['input'];
1740
1810
  };
1741
1811
 
1812
+ export type ProjectRolePermission = Auditable & {
1813
+ __typename?: 'ProjectRolePermission';
1814
+ createdAt: Scalars['Date']['output'];
1815
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1816
+ id: Scalars['ID']['output'];
1817
+ permissionId: Scalars['ID']['output'];
1818
+ projectId: Scalars['ID']['output'];
1819
+ roleId: Scalars['ID']['output'];
1820
+ updatedAt: Scalars['Date']['output'];
1821
+ };
1822
+
1742
1823
  export enum ProjectSearchableField {
1743
1824
  Description = 'description',
1744
1825
  Name = 'name',
@@ -1868,12 +1949,35 @@ export type ProjectUserApiKey = Auditable & {
1868
1949
  userId: Scalars['ID']['output'];
1869
1950
  };
1870
1951
 
1952
+ export type ProjectUserGroup = Auditable & {
1953
+ __typename?: 'ProjectUserGroup';
1954
+ createdAt: Scalars['Date']['output'];
1955
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1956
+ groupId: Scalars['ID']['output'];
1957
+ id: Scalars['ID']['output'];
1958
+ projectId: Scalars['ID']['output'];
1959
+ updatedAt: Scalars['Date']['output'];
1960
+ userId: Scalars['ID']['output'];
1961
+ };
1962
+
1963
+ export type ProjectUserPermission = Auditable & {
1964
+ __typename?: 'ProjectUserPermission';
1965
+ createdAt: Scalars['Date']['output'];
1966
+ deletedAt?: Maybe<Scalars['Date']['output']>;
1967
+ id: Scalars['ID']['output'];
1968
+ permissionId: Scalars['ID']['output'];
1969
+ projectId: Scalars['ID']['output'];
1970
+ updatedAt: Scalars['Date']['output'];
1971
+ userId: Scalars['ID']['output'];
1972
+ };
1973
+
1871
1974
  export type Query = {
1872
1975
  __typename?: 'Query';
1873
1976
  _empty?: Maybe<Scalars['String']['output']>;
1874
1977
  apiKeys: ApiKeyPage;
1875
1978
  groups: GroupPage;
1876
1979
  invitation?: Maybe<OrganizationInvitation>;
1980
+ /** Evaluate authorization for the current session or API key token. */
1877
1981
  isAuthorized: AuthorizationResult;
1878
1982
  me: MeResponse;
1879
1983
  myMfaDevices: Array<MfaDevice>;
@@ -2169,6 +2273,12 @@ export type QueryProjectResourcesInput = {
2169
2273
  resourceId?: InputMaybe<Scalars['ID']['input']>;
2170
2274
  };
2171
2275
 
2276
+ export type QueryProjectRolePermissionsInput = {
2277
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2278
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2279
+ roleId?: InputMaybe<Scalars['ID']['input']>;
2280
+ };
2281
+
2172
2282
  export type QueryProjectRolesInput = {
2173
2283
  projectId: Scalars['ID']['input'];
2174
2284
  };
@@ -2183,6 +2293,18 @@ export type QueryProjectUserApiKeysInput = {
2183
2293
  userId: Scalars['ID']['input'];
2184
2294
  };
2185
2295
 
2296
+ export type QueryProjectUserGroupsInput = {
2297
+ groupId?: InputMaybe<Scalars['ID']['input']>;
2298
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2299
+ userId?: InputMaybe<Scalars['ID']['input']>;
2300
+ };
2301
+
2302
+ export type QueryProjectUserPermissionsInput = {
2303
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2304
+ projectId?: InputMaybe<Scalars['ID']['input']>;
2305
+ userId?: InputMaybe<Scalars['ID']['input']>;
2306
+ };
2307
+
2186
2308
  export type QueryProjectUsersInput = {
2187
2309
  projectId?: InputMaybe<Scalars['ID']['input']>;
2188
2310
  userId?: InputMaybe<Scalars['ID']['input']>;
@@ -2198,11 +2320,26 @@ export type QueryRoleGroupsInput = {
2198
2320
  roleId?: InputMaybe<Scalars['ID']['input']>;
2199
2321
  };
2200
2322
 
2323
+ export type QueryRolePermissionsInput = {
2324
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2325
+ roleId?: InputMaybe<Scalars['ID']['input']>;
2326
+ };
2327
+
2201
2328
  export type QueryRoleTagsInput = {
2202
2329
  roleId?: InputMaybe<Scalars['ID']['input']>;
2203
2330
  tagId?: InputMaybe<Scalars['ID']['input']>;
2204
2331
  };
2205
2332
 
2333
+ export type QueryUserGroupsInput = {
2334
+ groupId?: InputMaybe<Scalars['ID']['input']>;
2335
+ userId?: InputMaybe<Scalars['ID']['input']>;
2336
+ };
2337
+
2338
+ export type QueryUserPermissionsInput = {
2339
+ permissionId?: InputMaybe<Scalars['ID']['input']>;
2340
+ userId?: InputMaybe<Scalars['ID']['input']>;
2341
+ };
2342
+
2206
2343
  export type QueryUserRolesInput = {
2207
2344
  roleId?: InputMaybe<Scalars['ID']['input']>;
2208
2345
  userId?: InputMaybe<Scalars['ID']['input']>;
@@ -2343,6 +2480,12 @@ export type RemoveProjectRoleInput = {
2343
2480
  roleId: Scalars['ID']['input'];
2344
2481
  };
2345
2482
 
2483
+ export type RemoveProjectRolePermissionInput = {
2484
+ permissionId: Scalars['ID']['input'];
2485
+ projectId: Scalars['ID']['input'];
2486
+ roleId: Scalars['ID']['input'];
2487
+ };
2488
+
2346
2489
  export type RemoveProjectTagInput = {
2347
2490
  projectId: Scalars['ID']['input'];
2348
2491
  tagId: Scalars['ID']['input'];
@@ -2354,11 +2497,23 @@ export type RemoveProjectUserApiKeyInput = {
2354
2497
  userId: Scalars['ID']['input'];
2355
2498
  };
2356
2499
 
2500
+ export type RemoveProjectUserGroupInput = {
2501
+ groupId: Scalars['ID']['input'];
2502
+ projectId: Scalars['ID']['input'];
2503
+ userId: Scalars['ID']['input'];
2504
+ };
2505
+
2357
2506
  export type RemoveProjectUserInput = {
2358
2507
  projectId: Scalars['ID']['input'];
2359
2508
  userId: Scalars['ID']['input'];
2360
2509
  };
2361
2510
 
2511
+ export type RemoveProjectUserPermissionInput = {
2512
+ permissionId: Scalars['ID']['input'];
2513
+ projectId: Scalars['ID']['input'];
2514
+ userId: Scalars['ID']['input'];
2515
+ };
2516
+
2362
2517
  export type RemoveResourceTagInput = {
2363
2518
  resourceId: Scalars['ID']['input'];
2364
2519
  tagId: Scalars['ID']['input'];
@@ -2374,6 +2529,11 @@ export type RemoveRoleTagInput = {
2374
2529
  tagId: Scalars['ID']['input'];
2375
2530
  };
2376
2531
 
2532
+ export type RemoveUserGroupInput = {
2533
+ groupId: Scalars['ID']['input'];
2534
+ userId: Scalars['ID']['input'];
2535
+ };
2536
+
2377
2537
  export type RemoveUserRoleInput = {
2378
2538
  roleId: Scalars['ID']['input'];
2379
2539
  userId: Scalars['ID']['input'];
@@ -2503,25 +2663,52 @@ export type RevokeMyUserSessionResult = {
2503
2663
  success: Scalars['Boolean']['output'];
2504
2664
  };
2505
2665
 
2666
+ export type RevokeRolePermissionInput = {
2667
+ hardDelete?: InputMaybe<Scalars['Boolean']['input']>;
2668
+ permissionId: Scalars['ID']['input'];
2669
+ roleId: Scalars['ID']['input'];
2670
+ scope: Scope;
2671
+ };
2672
+
2673
+ export type RevokeUserPermissionInput = {
2674
+ hardDelete?: InputMaybe<Scalars['Boolean']['input']>;
2675
+ permissionId: Scalars['ID']['input'];
2676
+ scope: Scope;
2677
+ userId: Scalars['ID']['input'];
2678
+ };
2679
+
2506
2680
  export type Role = Auditable & {
2507
2681
  __typename?: 'Role';
2508
2682
  createdAt: Scalars['Date']['output'];
2509
2683
  deletedAt?: Maybe<Scalars['Date']['output']>;
2510
2684
  description?: Maybe<Scalars['String']['output']>;
2685
+ groupCount: Scalars['Int']['output'];
2511
2686
  groups?: Maybe<Array<Group>>;
2512
2687
  id: Scalars['ID']['output'];
2513
2688
  metadata: Scalars['JSON']['output'];
2514
2689
  name: Scalars['String']['output'];
2690
+ permissionCount: Scalars['Int']['output'];
2691
+ primaryTag?: Maybe<Tag>;
2692
+ rolePermissions?: Maybe<Array<RolePermission>>;
2693
+ tagCount: Scalars['Int']['output'];
2515
2694
  tags?: Maybe<Array<Tag>>;
2516
2695
  updatedAt: Scalars['Date']['output'];
2517
2696
  };
2518
2697
 
2519
2698
  export type RoleCdmInput = {
2520
2699
  description?: InputMaybe<Scalars['String']['input']>;
2700
+ /**
2701
+ * Group keys from the `groups` section. When set, permissions are linked via
2702
+ * Role → Group → Permission. Omit to use direct `permissions` on the role.
2703
+ */
2521
2704
  groups?: InputMaybe<Array<Scalars['String']['input']>>;
2522
2705
  key: Scalars['String']['input'];
2523
2706
  metadata?: InputMaybe<Scalars['JSON']['input']>;
2524
2707
  name: Scalars['String']['input'];
2708
+ /**
2709
+ * Permission document keys or catalog refs (`resourceSlug:action`). Used for
2710
+ * direct Role → Permission when `groups` is empty.
2711
+ */
2525
2712
  permissions?: InputMaybe<Array<Scalars['String']['input']>>;
2526
2713
  primaryTag?: InputMaybe<Scalars['String']['input']>;
2527
2714
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
@@ -2554,6 +2741,26 @@ export type RolePage = PaginatedResults & {
2554
2741
  totalCount: Scalars['Int']['output'];
2555
2742
  };
2556
2743
 
2744
+ export type RolePermission = Auditable & {
2745
+ __typename?: 'RolePermission';
2746
+ createdAt: Scalars['Date']['output'];
2747
+ deletedAt?: Maybe<Scalars['Date']['output']>;
2748
+ id: Scalars['ID']['output'];
2749
+ permission?: Maybe<Permission>;
2750
+ permissionId: Scalars['ID']['output'];
2751
+ role?: Maybe<Role>;
2752
+ roleId: Scalars['ID']['output'];
2753
+ updatedAt: Scalars['Date']['output'];
2754
+ };
2755
+
2756
+ export type RolePermissionPermissionArgs = {
2757
+ scope: Scope;
2758
+ };
2759
+
2760
+ export type RolePermissionRoleArgs = {
2761
+ scope: Scope;
2762
+ };
2763
+
2557
2764
  export enum RoleSearchableField {
2558
2765
  Description = 'description',
2559
2766
  Name = 'name',
@@ -2950,6 +3157,7 @@ export type UpdateUserAuthenticationMethodInput = {
2950
3157
  };
2951
3158
 
2952
3159
  export type UpdateUserInput = {
3160
+ groupIds?: InputMaybe<Array<Scalars['ID']['input']>>;
2953
3161
  metadata?: InputMaybe<Scalars['JSON']['input']>;
2954
3162
  name?: InputMaybe<Scalars['String']['input']>;
2955
3163
  pictureUrl?: InputMaybe<Scalars['String']['input']>;
@@ -3001,10 +3209,17 @@ export type User = Auditable & {
3001
3209
  id: Scalars['ID']['output'];
3002
3210
  metadata: Scalars['JSON']['output'];
3003
3211
  name: Scalars['String']['output'];
3212
+ permissionCount: Scalars['Int']['output'];
3004
3213
  pictureUrl?: Maybe<Scalars['String']['output']>;
3214
+ primaryTag?: Maybe<Tag>;
3215
+ projectUserApiKeyCount: Scalars['Int']['output'];
3216
+ roleCount: Scalars['Int']['output'];
3005
3217
  roles?: Maybe<Array<Role>>;
3218
+ tagCount: Scalars['Int']['output'];
3006
3219
  tags?: Maybe<Array<Tag>>;
3007
3220
  updatedAt: Scalars['Date']['output'];
3221
+ userGroups?: Maybe<Array<UserGroup>>;
3222
+ userPermissions?: Maybe<Array<UserPermission>>;
3008
3223
  };
3009
3224
 
3010
3225
  export type UserApiKeyCdmInput = {
@@ -3047,12 +3262,15 @@ export enum UserAuthenticationMethodProvider {
3047
3262
 
3048
3263
  export type UserCdmInput = {
3049
3264
  apiKeys?: InputMaybe<Array<UserApiKeyCdmInput>>;
3265
+ /** Direct group assignment. Each key must appear in the document `groups` section. */
3050
3266
  groups?: InputMaybe<Array<Scalars['String']['input']>>;
3051
3267
  key: CdmKeyResolverInput;
3052
3268
  metadata?: InputMaybe<Scalars['JSON']['input']>;
3053
3269
  name: Scalars['String']['input'];
3270
+ /** Direct user → permission grants (document keys or catalog `resourceSlug:action` refs). */
3054
3271
  permissions?: InputMaybe<Array<Scalars['String']['input']>>;
3055
3272
  primaryTag?: InputMaybe<Scalars['String']['input']>;
3273
+ /** Role template keys from the `roles` section. */
3056
3274
  roles?: InputMaybe<Array<Scalars['String']['input']>>;
3057
3275
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
3058
3276
  };
@@ -3077,6 +3295,26 @@ export type UserExportData = {
3077
3295
  updatedAt: Scalars['Date']['output'];
3078
3296
  };
3079
3297
 
3298
+ export type UserGroup = Auditable & {
3299
+ __typename?: 'UserGroup';
3300
+ createdAt: Scalars['Date']['output'];
3301
+ deletedAt?: Maybe<Scalars['Date']['output']>;
3302
+ group?: Maybe<Group>;
3303
+ groupId: Scalars['ID']['output'];
3304
+ id: Scalars['ID']['output'];
3305
+ updatedAt: Scalars['Date']['output'];
3306
+ user?: Maybe<User>;
3307
+ userId: Scalars['ID']['output'];
3308
+ };
3309
+
3310
+ export type UserGroupGroupArgs = {
3311
+ scope: Scope;
3312
+ };
3313
+
3314
+ export type UserGroupUserArgs = {
3315
+ scope: Scope;
3316
+ };
3317
+
3080
3318
  export type UserPage = PaginatedResults & {
3081
3319
  __typename?: 'UserPage';
3082
3320
  hasNextPage: Scalars['Boolean']['output'];
@@ -3084,6 +3322,26 @@ export type UserPage = PaginatedResults & {
3084
3322
  users: Array<User>;
3085
3323
  };
3086
3324
 
3325
+ export type UserPermission = Auditable & {
3326
+ __typename?: 'UserPermission';
3327
+ createdAt: Scalars['Date']['output'];
3328
+ deletedAt?: Maybe<Scalars['Date']['output']>;
3329
+ id: Scalars['ID']['output'];
3330
+ permission?: Maybe<Permission>;
3331
+ permissionId: Scalars['ID']['output'];
3332
+ updatedAt: Scalars['Date']['output'];
3333
+ user?: Maybe<User>;
3334
+ userId: Scalars['ID']['output'];
3335
+ };
3336
+
3337
+ export type UserPermissionPermissionArgs = {
3338
+ scope: Scope;
3339
+ };
3340
+
3341
+ export type UserPermissionUserArgs = {
3342
+ scope: Scope;
3343
+ };
3344
+
3087
3345
  export type UserRegistrationData = {
3088
3346
  name: Scalars['String']['input'];
3089
3347
  password: Scalars['String']['input'];
@@ -3338,18 +3596,24 @@ export type ResolversInterfaceTypes<_RefType extends Record<string, unknown>> =
3338
3596
  | ProjectPermission
3339
3597
  | ProjectResource
3340
3598
  | ProjectRole
3599
+ | ProjectRolePermission
3341
3600
  | ProjectTag
3342
3601
  | ProjectUser
3343
3602
  | ProjectUserApiKey
3603
+ | ProjectUserGroup
3604
+ | ProjectUserPermission
3344
3605
  | Resource
3345
3606
  | ResourceTag
3346
3607
  | Role
3347
3608
  | RoleGroup
3609
+ | RolePermission
3348
3610
  | RoleTag
3349
3611
  | SigningKey
3350
3612
  | Tag
3351
3613
  | User
3352
3614
  | UserAuthenticationMethod
3615
+ | UserGroup
3616
+ | UserPermission
3353
3617
  | UserRole
3354
3618
  | UserSession
3355
3619
  | UserTag;
@@ -3408,12 +3672,16 @@ export type ResolversTypes = ResolversObject<{
3408
3672
  AddProjectPermissionInput: AddProjectPermissionInput;
3409
3673
  AddProjectResourceInput: AddProjectResourceInput;
3410
3674
  AddProjectRoleInput: AddProjectRoleInput;
3675
+ AddProjectRolePermissionInput: AddProjectRolePermissionInput;
3411
3676
  AddProjectTagInput: AddProjectTagInput;
3412
3677
  AddProjectUserApiKeyInput: AddProjectUserApiKeyInput;
3678
+ AddProjectUserGroupInput: AddProjectUserGroupInput;
3413
3679
  AddProjectUserInput: AddProjectUserInput;
3680
+ AddProjectUserPermissionInput: AddProjectUserPermissionInput;
3414
3681
  AddResourceTagInput: AddResourceTagInput;
3415
3682
  AddRoleGroupInput: AddRoleGroupInput;
3416
3683
  AddRoleTagInput: AddRoleTagInput;
3684
+ AddUserGroupInput: AddUserGroupInput;
3417
3685
  AddUserRoleInput: AddUserRoleInput;
3418
3686
  AddUserTagInput: AddUserTagInput;
3419
3687
  ApiKey: ResolverTypeWrapper<ApiKey>;
@@ -3421,6 +3689,8 @@ export type ResolversTypes = ResolversObject<{
3421
3689
  ApiKeySearchableField: ApiKeySearchableField;
3422
3690
  ApiKeySortInput: ApiKeySortInput;
3423
3691
  ApiKeySortableField: ApiKeySortableField;
3692
+ AssignRolePermissionInput: AssignRolePermissionInput;
3693
+ AssignUserPermissionInput: AssignUserPermissionInput;
3424
3694
  Auditable: ResolverTypeWrapper<ResolversInterfaceTypes<ResolversTypes>['Auditable']>;
3425
3695
  AuthenticationMethodExportData: ResolverTypeWrapper<AuthenticationMethodExportData>;
3426
3696
  AuthorizationReason: AuthorizationReason;
@@ -3540,6 +3810,7 @@ export type ResolversTypes = ResolversObject<{
3540
3810
  ProjectPermission: ResolverTypeWrapper<ProjectPermission>;
3541
3811
  ProjectResource: ResolverTypeWrapper<ProjectResource>;
3542
3812
  ProjectRole: ResolverTypeWrapper<ProjectRole>;
3813
+ ProjectRolePermission: ResolverTypeWrapper<ProjectRolePermission>;
3543
3814
  ProjectSearchableField: ProjectSearchableField;
3544
3815
  ProjectSortInput: ProjectSortInput;
3545
3816
  ProjectSortableField: ProjectSortableField;
@@ -3552,6 +3823,8 @@ export type ResolversTypes = ResolversObject<{
3552
3823
  ProjectTag: ResolverTypeWrapper<ProjectTag>;
3553
3824
  ProjectUser: ResolverTypeWrapper<ProjectUser>;
3554
3825
  ProjectUserApiKey: ResolverTypeWrapper<ProjectUserApiKey>;
3826
+ ProjectUserGroup: ResolverTypeWrapper<ProjectUserGroup>;
3827
+ ProjectUserPermission: ResolverTypeWrapper<ProjectUserPermission>;
3555
3828
  Query: ResolverTypeWrapper<Record<PropertyKey, never>>;
3556
3829
  QueryAccountProjectApiKeysInput: QueryAccountProjectApiKeysInput;
3557
3830
  QueryAccountProjectInput: QueryAccountProjectInput;
@@ -3575,13 +3848,19 @@ export type ResolversTypes = ResolversObject<{
3575
3848
  QueryProjectGroupsInput: QueryProjectGroupsInput;
3576
3849
  QueryProjectPermissionsInput: QueryProjectPermissionsInput;
3577
3850
  QueryProjectResourcesInput: QueryProjectResourcesInput;
3851
+ QueryProjectRolePermissionsInput: QueryProjectRolePermissionsInput;
3578
3852
  QueryProjectRolesInput: QueryProjectRolesInput;
3579
3853
  QueryProjectTagsInput: QueryProjectTagsInput;
3580
3854
  QueryProjectUserApiKeysInput: QueryProjectUserApiKeysInput;
3855
+ QueryProjectUserGroupsInput: QueryProjectUserGroupsInput;
3856
+ QueryProjectUserPermissionsInput: QueryProjectUserPermissionsInput;
3581
3857
  QueryProjectUsersInput: QueryProjectUsersInput;
3582
3858
  QueryResourceTagsInput: QueryResourceTagsInput;
3583
3859
  QueryRoleGroupsInput: QueryRoleGroupsInput;
3860
+ QueryRolePermissionsInput: QueryRolePermissionsInput;
3584
3861
  QueryRoleTagsInput: QueryRoleTagsInput;
3862
+ QueryUserGroupsInput: QueryUserGroupsInput;
3863
+ QueryUserPermissionsInput: QueryUserPermissionsInput;
3585
3864
  QueryUserRolesInput: QueryUserRolesInput;
3586
3865
  QueryUserTagsInput: QueryUserTagsInput;
3587
3866
  RefreshSessionResponse: ResolverTypeWrapper<RefreshSessionResponse>;
@@ -3609,12 +3888,16 @@ export type ResolversTypes = ResolversObject<{
3609
3888
  RemoveProjectPermissionInput: RemoveProjectPermissionInput;
3610
3889
  RemoveProjectResourceInput: RemoveProjectResourceInput;
3611
3890
  RemoveProjectRoleInput: RemoveProjectRoleInput;
3891
+ RemoveProjectRolePermissionInput: RemoveProjectRolePermissionInput;
3612
3892
  RemoveProjectTagInput: RemoveProjectTagInput;
3613
3893
  RemoveProjectUserApiKeyInput: RemoveProjectUserApiKeyInput;
3894
+ RemoveProjectUserGroupInput: RemoveProjectUserGroupInput;
3614
3895
  RemoveProjectUserInput: RemoveProjectUserInput;
3896
+ RemoveProjectUserPermissionInput: RemoveProjectUserPermissionInput;
3615
3897
  RemoveResourceTagInput: RemoveResourceTagInput;
3616
3898
  RemoveRoleGroupInput: RemoveRoleGroupInput;
3617
3899
  RemoveRoleTagInput: RemoveRoleTagInput;
3900
+ RemoveUserGroupInput: RemoveUserGroupInput;
3618
3901
  RemoveUserRoleInput: RemoveUserRoleInput;
3619
3902
  RemoveUserTagInput: RemoveUserTagInput;
3620
3903
  RequestPasswordResetInput: RequestPasswordResetInput;
@@ -3632,10 +3915,13 @@ export type ResolversTypes = ResolversObject<{
3632
3915
  ResourceTag: ResolverTypeWrapper<ResourceTag>;
3633
3916
  RevokeApiKeyInput: RevokeApiKeyInput;
3634
3917
  RevokeMyUserSessionResult: ResolverTypeWrapper<RevokeMyUserSessionResult>;
3918
+ RevokeRolePermissionInput: RevokeRolePermissionInput;
3919
+ RevokeUserPermissionInput: RevokeUserPermissionInput;
3635
3920
  Role: ResolverTypeWrapper<Role>;
3636
3921
  RoleCdmInput: RoleCdmInput;
3637
3922
  RoleGroup: ResolverTypeWrapper<RoleGroup>;
3638
3923
  RolePage: ResolverTypeWrapper<RolePage>;
3924
+ RolePermission: ResolverTypeWrapper<RolePermission>;
3639
3925
  RoleSearchableField: RoleSearchableField;
3640
3926
  RoleSortInput: RoleSortInput;
3641
3927
  RoleSortableField: RoleSortableField;
@@ -3695,7 +3981,9 @@ export type ResolversTypes = ResolversObject<{
3695
3981
  UserCdmInput: UserCdmInput;
3696
3982
  UserDataExport: ResolverTypeWrapper<UserDataExport>;
3697
3983
  UserExportData: ResolverTypeWrapper<UserExportData>;
3984
+ UserGroup: ResolverTypeWrapper<UserGroup>;
3698
3985
  UserPage: ResolverTypeWrapper<UserPage>;
3986
+ UserPermission: ResolverTypeWrapper<UserPermission>;
3699
3987
  UserRegistrationData: UserRegistrationData;
3700
3988
  UserRole: ResolverTypeWrapper<UserRole>;
3701
3989
  UserSearchableField: UserSearchableField;
@@ -3748,17 +4036,23 @@ export type ResolversParentTypes = ResolversObject<{
3748
4036
  AddProjectPermissionInput: AddProjectPermissionInput;
3749
4037
  AddProjectResourceInput: AddProjectResourceInput;
3750
4038
  AddProjectRoleInput: AddProjectRoleInput;
4039
+ AddProjectRolePermissionInput: AddProjectRolePermissionInput;
3751
4040
  AddProjectTagInput: AddProjectTagInput;
3752
4041
  AddProjectUserApiKeyInput: AddProjectUserApiKeyInput;
4042
+ AddProjectUserGroupInput: AddProjectUserGroupInput;
3753
4043
  AddProjectUserInput: AddProjectUserInput;
4044
+ AddProjectUserPermissionInput: AddProjectUserPermissionInput;
3754
4045
  AddResourceTagInput: AddResourceTagInput;
3755
4046
  AddRoleGroupInput: AddRoleGroupInput;
3756
4047
  AddRoleTagInput: AddRoleTagInput;
4048
+ AddUserGroupInput: AddUserGroupInput;
3757
4049
  AddUserRoleInput: AddUserRoleInput;
3758
4050
  AddUserTagInput: AddUserTagInput;
3759
4051
  ApiKey: ApiKey;
3760
4052
  ApiKeyPage: ApiKeyPage;
3761
4053
  ApiKeySortInput: ApiKeySortInput;
4054
+ AssignRolePermissionInput: AssignRolePermissionInput;
4055
+ AssignUserPermissionInput: AssignUserPermissionInput;
3762
4056
  Auditable: ResolversInterfaceTypes<ResolversParentTypes>['Auditable'];
3763
4057
  AuthenticationMethodExportData: AuthenticationMethodExportData;
3764
4058
  AuthorizationResult: AuthorizationResult;
@@ -3857,6 +4151,7 @@ export type ResolversParentTypes = ResolversObject<{
3857
4151
  ProjectPermission: ProjectPermission;
3858
4152
  ProjectResource: ProjectResource;
3859
4153
  ProjectRole: ProjectRole;
4154
+ ProjectRolePermission: ProjectRolePermission;
3860
4155
  ProjectSortInput: ProjectSortInput;
3861
4156
  ProjectSyncJob: ProjectSyncJob;
3862
4157
  ProjectSyncJobPage: ProjectSyncJobPage;
@@ -3864,6 +4159,8 @@ export type ResolversParentTypes = ResolversObject<{
3864
4159
  ProjectTag: ProjectTag;
3865
4160
  ProjectUser: ProjectUser;
3866
4161
  ProjectUserApiKey: ProjectUserApiKey;
4162
+ ProjectUserGroup: ProjectUserGroup;
4163
+ ProjectUserPermission: ProjectUserPermission;
3867
4164
  Query: Record<PropertyKey, never>;
3868
4165
  QueryAccountProjectApiKeysInput: QueryAccountProjectApiKeysInput;
3869
4166
  QueryAccountProjectInput: QueryAccountProjectInput;
@@ -3887,13 +4184,19 @@ export type ResolversParentTypes = ResolversObject<{
3887
4184
  QueryProjectGroupsInput: QueryProjectGroupsInput;
3888
4185
  QueryProjectPermissionsInput: QueryProjectPermissionsInput;
3889
4186
  QueryProjectResourcesInput: QueryProjectResourcesInput;
4187
+ QueryProjectRolePermissionsInput: QueryProjectRolePermissionsInput;
3890
4188
  QueryProjectRolesInput: QueryProjectRolesInput;
3891
4189
  QueryProjectTagsInput: QueryProjectTagsInput;
3892
4190
  QueryProjectUserApiKeysInput: QueryProjectUserApiKeysInput;
4191
+ QueryProjectUserGroupsInput: QueryProjectUserGroupsInput;
4192
+ QueryProjectUserPermissionsInput: QueryProjectUserPermissionsInput;
3893
4193
  QueryProjectUsersInput: QueryProjectUsersInput;
3894
4194
  QueryResourceTagsInput: QueryResourceTagsInput;
3895
4195
  QueryRoleGroupsInput: QueryRoleGroupsInput;
4196
+ QueryRolePermissionsInput: QueryRolePermissionsInput;
3896
4197
  QueryRoleTagsInput: QueryRoleTagsInput;
4198
+ QueryUserGroupsInput: QueryUserGroupsInput;
4199
+ QueryUserPermissionsInput: QueryUserPermissionsInput;
3897
4200
  QueryUserRolesInput: QueryUserRolesInput;
3898
4201
  QueryUserTagsInput: QueryUserTagsInput;
3899
4202
  RefreshSessionResponse: RefreshSessionResponse;
@@ -3921,12 +4224,16 @@ export type ResolversParentTypes = ResolversObject<{
3921
4224
  RemoveProjectPermissionInput: RemoveProjectPermissionInput;
3922
4225
  RemoveProjectResourceInput: RemoveProjectResourceInput;
3923
4226
  RemoveProjectRoleInput: RemoveProjectRoleInput;
4227
+ RemoveProjectRolePermissionInput: RemoveProjectRolePermissionInput;
3924
4228
  RemoveProjectTagInput: RemoveProjectTagInput;
3925
4229
  RemoveProjectUserApiKeyInput: RemoveProjectUserApiKeyInput;
4230
+ RemoveProjectUserGroupInput: RemoveProjectUserGroupInput;
3926
4231
  RemoveProjectUserInput: RemoveProjectUserInput;
4232
+ RemoveProjectUserPermissionInput: RemoveProjectUserPermissionInput;
3927
4233
  RemoveResourceTagInput: RemoveResourceTagInput;
3928
4234
  RemoveRoleGroupInput: RemoveRoleGroupInput;
3929
4235
  RemoveRoleTagInput: RemoveRoleTagInput;
4236
+ RemoveUserGroupInput: RemoveUserGroupInput;
3930
4237
  RemoveUserRoleInput: RemoveUserRoleInput;
3931
4238
  RemoveUserTagInput: RemoveUserTagInput;
3932
4239
  RequestPasswordResetInput: RequestPasswordResetInput;
@@ -3942,10 +4249,13 @@ export type ResolversParentTypes = ResolversObject<{
3942
4249
  ResourceTag: ResourceTag;
3943
4250
  RevokeApiKeyInput: RevokeApiKeyInput;
3944
4251
  RevokeMyUserSessionResult: RevokeMyUserSessionResult;
4252
+ RevokeRolePermissionInput: RevokeRolePermissionInput;
4253
+ RevokeUserPermissionInput: RevokeUserPermissionInput;
3945
4254
  Role: Role;
3946
4255
  RoleCdmInput: RoleCdmInput;
3947
4256
  RoleGroup: RoleGroup;
3948
4257
  RolePage: RolePage;
4258
+ RolePermission: RolePermission;
3949
4259
  RoleSortInput: RoleSortInput;
3950
4260
  RoleTag: RoleTag;
3951
4261
  Scope: Scope;
@@ -3996,7 +4306,9 @@ export type ResolversParentTypes = ResolversObject<{
3996
4306
  UserCdmInput: UserCdmInput;
3997
4307
  UserDataExport: UserDataExport;
3998
4308
  UserExportData: UserExportData;
4309
+ UserGroup: UserGroup;
3999
4310
  UserPage: UserPage;
4311
+ UserPermission: UserPermission;
4000
4312
  UserRegistrationData: UserRegistrationData;
4001
4313
  UserRole: UserRole;
4002
4314
  UserSession: UserSession;
@@ -4213,18 +4525,24 @@ export type AuditableResolvers<
4213
4525
  | 'ProjectPermission'
4214
4526
  | 'ProjectResource'
4215
4527
  | 'ProjectRole'
4528
+ | 'ProjectRolePermission'
4216
4529
  | 'ProjectTag'
4217
4530
  | 'ProjectUser'
4218
4531
  | 'ProjectUserApiKey'
4532
+ | 'ProjectUserGroup'
4533
+ | 'ProjectUserPermission'
4219
4534
  | 'Resource'
4220
4535
  | 'ResourceTag'
4221
4536
  | 'Role'
4222
4537
  | 'RoleGroup'
4538
+ | 'RolePermission'
4223
4539
  | 'RoleTag'
4224
4540
  | 'SigningKey'
4225
4541
  | 'Tag'
4226
4542
  | 'User'
4227
4543
  | 'UserAuthenticationMethod'
4544
+ | 'UserGroup'
4545
+ | 'UserPermission'
4228
4546
  | 'UserRole'
4229
4547
  | 'UserSession'
4230
4548
  | 'UserTag',
@@ -4349,7 +4667,10 @@ export type GroupResolvers<
4349
4667
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
4350
4668
  metadata?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
4351
4669
  name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
4670
+ permissionCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
4352
4671
  permissions?: Resolver<Maybe<Array<ResolversTypes['Permission']>>, ParentType, ContextType>;
4672
+ primaryTag?: Resolver<Maybe<ResolversTypes['Tag']>, ParentType, ContextType>;
4673
+ tagCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
4353
4674
  tags?: Resolver<Maybe<Array<ResolversTypes['Tag']>>, ParentType, ContextType>;
4354
4675
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
4355
4676
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -4523,6 +4844,18 @@ export type MutationResolvers<
4523
4844
  ContextType,
4524
4845
  RequireFields<MutationAcceptInvitationArgs, 'input'>
4525
4846
  >;
4847
+ assignRolePermission?: Resolver<
4848
+ ResolversTypes['RolePermission'],
4849
+ ParentType,
4850
+ ContextType,
4851
+ RequireFields<MutationAssignRolePermissionArgs, 'input'>
4852
+ >;
4853
+ assignUserPermission?: Resolver<
4854
+ ResolversTypes['UserPermission'],
4855
+ ParentType,
4856
+ ContextType,
4857
+ RequireFields<MutationAssignUserPermissionArgs, 'input'>
4858
+ >;
4526
4859
  cancelProjectSync?: Resolver<
4527
4860
  ResolversTypes['ProjectSyncJob'],
4528
4861
  ParentType,
@@ -4771,6 +5104,18 @@ export type MutationResolvers<
4771
5104
  ContextType,
4772
5105
  RequireFields<MutationRevokeMyUserSessionArgs, 'id'>
4773
5106
  >;
5107
+ revokeRolePermission?: Resolver<
5108
+ ResolversTypes['RolePermission'],
5109
+ ParentType,
5110
+ ContextType,
5111
+ RequireFields<MutationRevokeRolePermissionArgs, 'input'>
5112
+ >;
5113
+ revokeUserPermission?: Resolver<
5114
+ ResolversTypes['UserPermission'],
5115
+ ParentType,
5116
+ ContextType,
5117
+ RequireFields<MutationRevokeUserPermissionArgs, 'input'>
5118
+ >;
4774
5119
  rotateSigningKey?: Resolver<
4775
5120
  ResolversTypes['SigningKey'],
4776
5121
  ParentType,
@@ -5181,8 +5526,10 @@ export type PermissionResolvers<
5181
5526
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5182
5527
  metadata?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
5183
5528
  name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
5529
+ primaryTag?: Resolver<Maybe<ResolversTypes['Tag']>, ParentType, ContextType>;
5184
5530
  resource?: Resolver<Maybe<ResolversTypes['Resource']>, ParentType, ContextType>;
5185
5531
  resourceId?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType>;
5532
+ tagCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5186
5533
  tags?: Resolver<Maybe<Array<ResolversTypes['Tag']>>, ParentType, ContextType>;
5187
5534
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5188
5535
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -5392,6 +5739,21 @@ export type ProjectRoleResolvers<
5392
5739
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5393
5740
  }>;
5394
5741
 
5742
+ export type ProjectRolePermissionResolvers<
5743
+ ContextType = any,
5744
+ ParentType extends ResolversParentTypes['ProjectRolePermission'] =
5745
+ ResolversParentTypes['ProjectRolePermission'],
5746
+ > = ResolversObject<{
5747
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5748
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
5749
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5750
+ permissionId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5751
+ projectId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5752
+ roleId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5753
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5754
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5755
+ }>;
5756
+
5395
5757
  export type ProjectSyncJobResolvers<
5396
5758
  ContextType = any,
5397
5759
  ParentType extends ResolversParentTypes['ProjectSyncJob'] =
@@ -5489,6 +5851,36 @@ export type ProjectUserApiKeyResolvers<
5489
5851
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5490
5852
  }>;
5491
5853
 
5854
+ export type ProjectUserGroupResolvers<
5855
+ ContextType = any,
5856
+ ParentType extends ResolversParentTypes['ProjectUserGroup'] =
5857
+ ResolversParentTypes['ProjectUserGroup'],
5858
+ > = ResolversObject<{
5859
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5860
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
5861
+ groupId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5862
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5863
+ projectId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5864
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5865
+ userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5866
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5867
+ }>;
5868
+
5869
+ export type ProjectUserPermissionResolvers<
5870
+ ContextType = any,
5871
+ ParentType extends ResolversParentTypes['ProjectUserPermission'] =
5872
+ ResolversParentTypes['ProjectUserPermission'],
5873
+ > = ResolversObject<{
5874
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5875
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
5876
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5877
+ permissionId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5878
+ projectId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5879
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5880
+ userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5881
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5882
+ }>;
5883
+
5492
5884
  export type QueryResolvers<
5493
5885
  ContextType = any,
5494
5886
  ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query'],
@@ -5727,10 +6119,19 @@ export type RoleResolvers<
5727
6119
  createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5728
6120
  deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
5729
6121
  description?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
6122
+ groupCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5730
6123
  groups?: Resolver<Maybe<Array<ResolversTypes['Group']>>, ParentType, ContextType>;
5731
6124
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5732
6125
  metadata?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
5733
6126
  name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
6127
+ permissionCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
6128
+ primaryTag?: Resolver<Maybe<ResolversTypes['Tag']>, ParentType, ContextType>;
6129
+ rolePermissions?: Resolver<
6130
+ Maybe<Array<ResolversTypes['RolePermission']>>,
6131
+ ParentType,
6132
+ ContextType
6133
+ >;
6134
+ tagCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5734
6135
  tags?: Resolver<Maybe<Array<ResolversTypes['Tag']>>, ParentType, ContextType>;
5735
6136
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5736
6137
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
@@ -5771,6 +6172,32 @@ export type RolePageResolvers<
5771
6172
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5772
6173
  }>;
5773
6174
 
6175
+ export type RolePermissionResolvers<
6176
+ ContextType = any,
6177
+ ParentType extends ResolversParentTypes['RolePermission'] =
6178
+ ResolversParentTypes['RolePermission'],
6179
+ > = ResolversObject<{
6180
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6181
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
6182
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6183
+ permission?: Resolver<
6184
+ Maybe<ResolversTypes['Permission']>,
6185
+ ParentType,
6186
+ ContextType,
6187
+ RequireFields<RolePermissionPermissionArgs, 'scope'>
6188
+ >;
6189
+ permissionId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6190
+ role?: Resolver<
6191
+ Maybe<ResolversTypes['Role']>,
6192
+ ParentType,
6193
+ ContextType,
6194
+ RequireFields<RolePermissionRoleArgs, 'scope'>
6195
+ >;
6196
+ roleId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6197
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6198
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
6199
+ }>;
6200
+
5774
6201
  export type RoleTagResolvers<
5775
6202
  ContextType = any,
5776
6203
  ParentType extends ResolversParentTypes['RoleTag'] = ResolversParentTypes['RoleTag'],
@@ -5909,10 +6336,21 @@ export type UserResolvers<
5909
6336
  id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
5910
6337
  metadata?: Resolver<ResolversTypes['JSON'], ParentType, ContextType>;
5911
6338
  name?: Resolver<ResolversTypes['String'], ParentType, ContextType>;
6339
+ permissionCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5912
6340
  pictureUrl?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
6341
+ primaryTag?: Resolver<Maybe<ResolversTypes['Tag']>, ParentType, ContextType>;
6342
+ projectUserApiKeyCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
6343
+ roleCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5913
6344
  roles?: Resolver<Maybe<Array<ResolversTypes['Role']>>, ParentType, ContextType>;
6345
+ tagCount?: Resolver<ResolversTypes['Int'], ParentType, ContextType>;
5914
6346
  tags?: Resolver<Maybe<Array<ResolversTypes['Tag']>>, ParentType, ContextType>;
5915
6347
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6348
+ userGroups?: Resolver<Maybe<Array<ResolversTypes['UserGroup']>>, ParentType, ContextType>;
6349
+ userPermissions?: Resolver<
6350
+ Maybe<Array<ResolversTypes['UserPermission']>>,
6351
+ ParentType,
6352
+ ContextType
6353
+ >;
5916
6354
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5917
6355
  }>;
5918
6356
 
@@ -5974,6 +6412,31 @@ export type UserExportDataResolvers<
5974
6412
  updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
5975
6413
  }>;
5976
6414
 
6415
+ export type UserGroupResolvers<
6416
+ ContextType = any,
6417
+ ParentType extends ResolversParentTypes['UserGroup'] = ResolversParentTypes['UserGroup'],
6418
+ > = ResolversObject<{
6419
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6420
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
6421
+ group?: Resolver<
6422
+ Maybe<ResolversTypes['Group']>,
6423
+ ParentType,
6424
+ ContextType,
6425
+ RequireFields<UserGroupGroupArgs, 'scope'>
6426
+ >;
6427
+ groupId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6428
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6429
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6430
+ user?: Resolver<
6431
+ Maybe<ResolversTypes['User']>,
6432
+ ParentType,
6433
+ ContextType,
6434
+ RequireFields<UserGroupUserArgs, 'scope'>
6435
+ >;
6436
+ userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6437
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
6438
+ }>;
6439
+
5977
6440
  export type UserPageResolvers<
5978
6441
  ContextType = any,
5979
6442
  ParentType extends ResolversParentTypes['UserPage'] = ResolversParentTypes['UserPage'],
@@ -5984,6 +6447,32 @@ export type UserPageResolvers<
5984
6447
  __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
5985
6448
  }>;
5986
6449
 
6450
+ export type UserPermissionResolvers<
6451
+ ContextType = any,
6452
+ ParentType extends ResolversParentTypes['UserPermission'] =
6453
+ ResolversParentTypes['UserPermission'],
6454
+ > = ResolversObject<{
6455
+ createdAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6456
+ deletedAt?: Resolver<Maybe<ResolversTypes['Date']>, ParentType, ContextType>;
6457
+ id?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6458
+ permission?: Resolver<
6459
+ Maybe<ResolversTypes['Permission']>,
6460
+ ParentType,
6461
+ ContextType,
6462
+ RequireFields<UserPermissionPermissionArgs, 'scope'>
6463
+ >;
6464
+ permissionId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6465
+ updatedAt?: Resolver<ResolversTypes['Date'], ParentType, ContextType>;
6466
+ user?: Resolver<
6467
+ Maybe<ResolversTypes['User']>,
6468
+ ParentType,
6469
+ ContextType,
6470
+ RequireFields<UserPermissionUserArgs, 'scope'>
6471
+ >;
6472
+ userId?: Resolver<ResolversTypes['ID'], ParentType, ContextType>;
6473
+ __isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
6474
+ }>;
6475
+
5987
6476
  export type UserRoleResolvers<
5988
6477
  ContextType = any,
5989
6478
  ParentType extends ResolversParentTypes['UserRole'] = ResolversParentTypes['UserRole'],
@@ -6148,11 +6637,14 @@ export type Resolvers<ContextType = any> = ResolversObject<{
6148
6637
  ProjectPermission?: ProjectPermissionResolvers<ContextType>;
6149
6638
  ProjectResource?: ProjectResourceResolvers<ContextType>;
6150
6639
  ProjectRole?: ProjectRoleResolvers<ContextType>;
6640
+ ProjectRolePermission?: ProjectRolePermissionResolvers<ContextType>;
6151
6641
  ProjectSyncJob?: ProjectSyncJobResolvers<ContextType>;
6152
6642
  ProjectSyncJobPage?: ProjectSyncJobPageResolvers<ContextType>;
6153
6643
  ProjectTag?: ProjectTagResolvers<ContextType>;
6154
6644
  ProjectUser?: ProjectUserResolvers<ContextType>;
6155
6645
  ProjectUserApiKey?: ProjectUserApiKeyResolvers<ContextType>;
6646
+ ProjectUserGroup?: ProjectUserGroupResolvers<ContextType>;
6647
+ ProjectUserPermission?: ProjectUserPermissionResolvers<ContextType>;
6156
6648
  Query?: QueryResolvers<ContextType>;
6157
6649
  RefreshSessionResponse?: RefreshSessionResponseResolvers<ContextType>;
6158
6650
  RequestPasswordResetResponse?: RequestPasswordResetResponseResolvers<ContextType>;
@@ -6165,6 +6657,7 @@ export type Resolvers<ContextType = any> = ResolversObject<{
6165
6657
  Role?: RoleResolvers<ContextType>;
6166
6658
  RoleGroup?: RoleGroupResolvers<ContextType>;
6167
6659
  RolePage?: RolePageResolvers<ContextType>;
6660
+ RolePermission?: RolePermissionResolvers<ContextType>;
6168
6661
  RoleTag?: RoleTagResolvers<ContextType>;
6169
6662
  Searchable?: SearchableResolvers<ContextType>;
6170
6663
  SessionExportData?: SessionExportDataResolvers<ContextType>;
@@ -6177,7 +6670,9 @@ export type Resolvers<ContextType = any> = ResolversObject<{
6177
6670
  UserAuthenticationMethod?: UserAuthenticationMethodResolvers<ContextType>;
6178
6671
  UserDataExport?: UserDataExportResolvers<ContextType>;
6179
6672
  UserExportData?: UserExportDataResolvers<ContextType>;
6673
+ UserGroup?: UserGroupResolvers<ContextType>;
6180
6674
  UserPage?: UserPageResolvers<ContextType>;
6675
+ UserPermission?: UserPermissionResolvers<ContextType>;
6181
6676
  UserRole?: UserRoleResolvers<ContextType>;
6182
6677
  UserSession?: UserSessionResolvers<ContextType>;
6183
6678
  UserSessionPage?: UserSessionPageResolvers<ContextType>;