import type { TypedDocumentNode as DocumentNode } from "@graphql-typed-document-node/core"; export type Maybe = T | null; export type InputMaybe = Maybe; export type Exact = { [K in keyof T]: T[K]; }; export type MakeOptional = Omit & { [SubKey in K]?: Maybe; }; export type MakeMaybe = Omit & { [SubKey in K]: Maybe; }; export type MakeEmpty = { [_ in K]?: never; }; export type Incremental = T | { [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never; }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: { input: string; output: string; }; String: { input: string; output: string; }; Boolean: { input: boolean; output: boolean; }; Int: { input: number; output: number; }; Float: { input: number; output: number; }; AccessLevelName: { input: string; output: string; }; AccessLevelRemoteId: { input: string; output: string; }; AccessReviewConnectionId: { input: string; output: string; }; AccessReviewConnectionUserId: { input: string; output: string; }; AccessReviewConnectionUserReviewerId: { input: string; output: string; }; AccessReviewEntityId: { input: string; output: string; }; AccessReviewGroupGroupId: { input: string; output: string; }; AccessReviewGroupId: { input: string; output: string; }; AccessReviewGroupResourceId: { input: string; output: string; }; AccessReviewGroupUserId: { input: string; output: string; }; AccessReviewGroupUserReviewerId: { input: string; output: string; }; AccessReviewId: { input: string; output: string; }; AccessReviewPrincipalId: { input: string; output: string; }; AccessReviewResourceId: { input: string; output: string; }; AccessReviewResourceUserId: { input: string; output: string; }; AccessReviewResourceUserReviewerId: { input: string; output: string; }; AccessReviewRoleAssignmentId: { input: string; output: string; }; AccessReviewRoleAssignmentReviewerId: { input: string; output: string; }; AccessReviewTemplateId: { input: string; output: string; }; AuditReportId: { input: string; output: string; }; AuthorizedAction: { input: string; output: string; }; BundleId: { input: string; output: string; }; BundleVisibilityGroupID: { input: string; output: string; }; ConfigTemplateTagId: { input: string; output: string; }; ConfigurationId: { input: string; output: string; }; ConnectionId: { input: string; output: string; }; EntityId: { input: string; output: string; }; EventFilterId: { input: string; output: string; }; EventId: { input: string; output: string; }; EventStreamId: { input: string; output: string; }; ExternalEventId: { input: any; output: any; }; FirstPartyTokenId: { input: string; output: string; }; GroupBindingId: { input: string; output: string; }; GroupBindingSuggestionId: { input: string; output: string; }; GroupFolderId: { input: string; output: string; }; GroupGroupId: { input: string; output: string; }; GroupId: { input: string; output: string; }; IdpConnectionId: { input: string; output: string; }; IdpConnectionUserAttributeImportMappingId: { input: string; output: string; }; IdpGroupMappingId: { input: string; output: string; }; IpZoneId: { input: any; output: any; }; MessageChannelId: { input: string; output: string; }; MessageChannelRemoteId: { input: string; output: string; }; OidcClientId: { input: string; output: string; }; OnCallScheduleId: { input: string; output: string; }; OnCallScheduleRemoteId: { input: string; output: string; }; OrganizationId: { input: string; output: string; }; OwnerId: { input: string; output: string; }; PrincipalId: { input: string; output: string; }; PubsubPublishConnectionCredentialId: { input: string; output: string; }; PubsubPublishConnectionId: { input: string; output: string; }; PubsubPublishMessageId: { input: string; output: string; }; PushTaskId: { input: string; output: string; }; RemoteEventId: { input: any; output: any; }; RemoteGroupId: { input: string; output: string; }; RemoteResourceId: { input: string; output: string; }; RequestCommentId: { input: string; output: string; }; RequestConfigurationId: { input: string; output: string; }; RequestId: { input: string; output: string; }; RequestReviewerDelegationId: { input: any; output: any; }; RequestTemplateCustomFieldId: { input: string; output: string; }; RequestTemplateId: { input: string; output: string; }; ResourceCustomAccessLevelId: { input: string; output: string; }; ResourceFolderId: { input: string; output: string; }; ResourceId: { input: string; output: string; }; ResourceProposalId: { input: string; output: string; }; ResourceTagId: { input: string; output: string; }; ReviewerStageId: { input: string; output: string; }; RoleAssignmentId: { input: string; output: string; }; RolePermissionId: { input: string; output: string; }; SavedQueryId: { input: any; output: any; }; SessionId: { input: string; output: string; }; StarlarkScriptId: { input: any; output: any; }; SubEventId: { input: string; output: string; }; SupportTicketId: { input: string; output: string; }; SupportTicketRemoteId: { input: string; output: string; }; SyncErrorId: { input: string; output: string; }; SyncTaskId: { input: string; output: string; }; TagId: { input: string; output: string; }; ThirdPartyTokenId: { input: string; output: string; }; TicketProjectId: { input: string; output: string; }; Time: { input: string; output: string; }; ToxicSetItemId: { input: string; output: string; }; UINotificationId: { input: string; output: string; }; UUID: { input: string; output: string; }; Upload: { input: File; output: File; }; UserFactorRemoteId: { input: string; output: string; }; UserId: { input: string; output: string; }; UserTagId: { input: string; output: string; }; }; export type AdConnectionCredentialsInput = { rootPassword: Scalars["String"]["input"]; rootUsername: Scalars["String"]["input"]; }; export type AdConnectionMetadata = { __typename?: "ADConnectionMetadata"; groupsDistinguishedName: Scalars["String"]["output"]; serverHostname: Scalars["String"]["output"]; serverPort: Scalars["Int"]["output"]; usersDistinguishedName: Scalars["String"]["output"]; }; export type AdConnectionMetadataInput = { groupsDistinguishedName: Scalars["String"]["input"]; serverHostname: Scalars["String"]["input"]; serverPort: Scalars["Int"]["input"]; usersDistinguishedName: Scalars["String"]["input"]; }; export type AwsConnectionCredentialsInput = { accessKeyId: Scalars["String"]["input"]; secretAccessKey: Scalars["String"]["input"]; }; export type AwsConnectionMetadataInput = { success?: InputMaybe; }; export declare enum AwsIdentityCenterImportSetting { All = "ALL", Manual = "MANUAL", Provisioned = "PROVISIONED" } /** Error indicating AWS role creation failed. */ export type AwsRoleCreationError = Error & { __typename?: "AWSRoleCreationError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Error indicating no reviewer is set for AWS role creation. */ export type AwsRoleCreationReviewerNotSetError = Error & { __typename?: "AWSRoleCreationReviewerNotSetError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Error indicating an AWS role policy is invalid. */ export type AwsRolePolicyInvalidError = Error & { __typename?: "AWSRolePolicyInvalidError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Metadata for a proposed AWS IAM role. */ export type AwsRoleProposalMetadata = { __typename?: "AWSRoleProposalMetadata"; /** Assume role policy document */ assumeRolePolicyDocument: Scalars["String"]["output"]; /** Description of the policy */ policyDescription: Scalars["String"]["output"]; /** JSON policy document */ policyDocument: Scalars["String"]["output"]; /** Name of the IAM policy */ policyName: Scalars["String"]["output"]; /** Description of the role */ roleDescription: Scalars["String"]["output"]; /** Name of the IAM role */ roleName: Scalars["String"]["output"]; /** Tags applied to the role */ tags: Array; }; /** Metadata for proposing a new AWS IAM role. */ export type AwsRoleProposalMetadataInput = { /** Assume role policy document */ assumeRolePolicyDocument: Scalars["String"]["input"]; /** Description of the policy */ policyDescription: Scalars["String"]["input"]; /** JSON policy document */ policyDocument: Scalars["String"]["input"]; /** Name of the IAM policy */ policyName: Scalars["String"]["input"]; /** Description of the role */ roleDescription: Scalars["String"]["input"]; /** Name of the IAM role */ roleName: Scalars["String"]["input"]; /** Tags to apply to the role */ tags: Array; }; export type AwsssoConnectionCredentialsInput = { accessKeyId?: InputMaybe; secretAccessKey?: InputMaybe; }; export type AwsssoConnectionMetadata = { __typename?: "AWSSSOConnectionMetadata"; accessPortalUrl: Scalars["String"]["output"]; awsIdentityCenterImportSetting: AwsIdentityCenterImportSetting; awsOrganizationEnabled: Scalars["Boolean"]["output"]; awsOrganizationImportSetting: ImportSetting; awsRegion: Scalars["String"]["output"]; awsSsoEnabled: Scalars["Boolean"]["output"]; cloudtrailEventsSqsUrl: Scalars["String"]["output"]; ec2RoleChainingEnabled: Scalars["Boolean"]["output"]; identityStoreId: Scalars["String"]["output"]; managementAccountId: Scalars["String"]["output"]; podRoleChainingEnabled: Scalars["Boolean"]["output"]; ssoInstanceArn: Scalars["String"]["output"]; }; export type AwsssoConnectionMetadataInput = { accessPortalUrl: Scalars["String"]["input"]; awsIdentityCenterImportSetting: AwsIdentityCenterImportSetting; awsOrganizationEnabled: Scalars["Boolean"]["input"]; awsOrganizationImportSetting: ImportSetting; awsRegion: Scalars["String"]["input"]; awsSsoEnabled: Scalars["Boolean"]["input"]; cloudtrailEventsSqsUrl: Scalars["String"]["input"]; ec2RoleChainingEnabled: Scalars["Boolean"]["input"]; identityStoreId: Scalars["String"]["input"]; managementAccountId: Scalars["String"]["input"]; podRoleChainingEnabled: Scalars["Boolean"]["input"]; ssoInstanceArn: Scalars["String"]["input"]; }; /** AWS tag key-value pair. */ export type AwsTag = { __typename?: "AWSTag"; /** Tag key */ key: Scalars["String"]["output"]; /** Tag value */ value?: Maybe; }; /** AWS tag key-value pair input. */ export type AwsTagInput = { /** Tag key */ key: Scalars["String"]["input"]; /** Tag value */ value?: InputMaybe; }; /** Represents access that a principal (user, group, or resource) has to an entity (resource or group). */ export type Access = { __typename?: "Access"; /** The access level granted to the principal. */ accessLevel: AccessLevel; /** * Describes attributes of `principalId`'s direct access to `entityId`. If unset, this user does not have * direct access to the resource. */ directAccessPoint?: Maybe; /** ID of the entity being accessed. */ entityId: Scalars["EntityId"]["output"]; /** Type of the entity being accessed. */ entityType: EntityType; /** * Describes attributes of `principalId`'s indirect access to `entityId`. If empty, this principal does not have * indirect access to the entity. */ indirectAccessPaths?: Maybe>; /** * Describes attributes of `principalId`'s inherited access to `entityId`. If empty, this user does not have * inherited access to the resource. */ inheritedAccessPoints: Array; /** * Describes attributes of `principalId`'s access to `entityId` for the path with the latest expiration. * This access might be direct or indirect. */ latestExpiringAccessPoint: AccessPoint; /** ID of the principal that has access. */ principalId: Scalars["EntityId"]["output"]; /** Type of the principal that has access. */ principalType: EntityType; }; export declare enum AccessChangeType { ConvertedToJit = "CONVERTED_TO_JIT", Extended = "EXTENDED", Other = "OTHER", Revoked = "REVOKED" } export type AccessEntity = { accessStats?: Maybe; associatedItems: AssociatedItemConnection; id: Scalars["UUID"]["output"]; maxDirectUsersAllowed?: Maybe; /** totalGroupAccessCount: total number of groups with access to the entity (direct or indirect) */ totalGroupAccessCount: Scalars["Int"]["output"]; /** totalNHIAccessCount: total number of non-human identities with access to the entity (direct or indirect) */ totalNHIAccessCount: Scalars["Int"]["output"]; /** * totalResourceCount: total number of resources associated to the entity (direct or indirect) * * Connections: any resource or group imported from the connection * * IDP Apps: any group associated to the resource via idp group mappings * * Resources with descendants: any resource children to the resource * * Other resources: should always be zero. */ totalResourceCount: Scalars["Int"]["output"]; /** totalUserAccessCount: total number of users with access to the entity (direct or indirect) */ totalUserAccessCount: Scalars["Int"]["output"]; }; export type AccessEntityAccessStatsArgs = { for?: InputMaybe; }; export type AccessEntityAssociatedItemsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; /** Error indicating that access expiring notification settings are invalid. */ export type AccessExpiringNotificationsInvalidError = Error & { __typename?: "AccessExpiringNotificationsInvalidError"; message: Scalars["String"]["output"]; }; /** Metrics about access granted times (time from request to provisioning). */ export type AccessGrantedTimesResult = { __typename?: "AccessGrantedTimesResult"; /** Time series data for access granted times. */ lineData: Array; }; /** Represents an access level with its name, remote ID, and optional metadata */ export type AccessLevel = { __typename?: "AccessLevel"; /** Optional metadata associated with the access level (e.g., impersonation metadata, session-ability for Azure SQL) */ accessLevelMetadata?: Maybe; /** The name of the access level */ accessLevelName: Scalars["AccessLevelName"]["output"]; /** The remote ID of the access level in the connected system */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["output"]; }; /** Possible filter values for access levels */ export declare enum AccessLevelFilter { /** All access levels */ All = "ALL", /** Access levels that are requestable to users */ Requestable = "REQUESTABLE", /** Access levels that are not requestable */ Unrequestable = "UNREQUESTABLE" } /** Input type for specifying an access level by its name and remote ID */ export type AccessLevelInput = { /** The name of the access level */ accessLevelName: Scalars["AccessLevelName"]["input"]; /** The remote ID of the access level in the connected system */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["input"]; }; /** Metadata associated with an access level. */ export type AccessLevelMetadata = ImpersonationAccessLevelMetadata; /** Filters for access levels. */ export type AccessLevelsFiltersInput = { /** Filter for access levels */ filter?: InputMaybe; /** Only show access levels requestable for this user */ requestableForUserId?: InputMaybe; /** * DEPRECATED: Use filter * Skip custom access levels */ skipCustomAccessLevels?: Scalars["Boolean"]["input"]; /** * DEPRECATED: Use filter * Skip remote access levels */ skipRemoteAccessLevels?: Scalars["Boolean"]["input"]; }; export type AccessNodePropertiesInput = { allOf?: InputMaybe>; anyOf?: InputMaybe>; entityConnections?: InputMaybe>; entityIDs?: InputMaybe>; entityItemTypes?: InputMaybe>; entityName?: InputMaybe; entityTag?: InputMaybe; }; /** Access filtering options for catalog items. */ export declare enum AccessOption { /** All items regardless of access. */ All = "ALL", /** Items that can be managed by the current user. */ Manageable = "MANAGEABLE", /** Items the current user has access to. */ Mine = "MINE", /** Items that can be requested. */ Requestable = "REQUESTABLE", /** * Unmanaged items (deprecated). * @deprecated no longer supported */ Unmanaged = "UNMANAGED" } /** Represents a point in an access path, describing how a principal has access to an entity. */ export type AccessPoint = { /** Access level at this point in the path. */ accessLevel?: Maybe; /** ID of the entity in this access point. */ entityId: Scalars["EntityId"]["output"]; /** Item type of the entity (e.g., ROLE, PERMISSION_SET). */ entityItemType: Scalars["String"]["output"]; /** Name of the entity in this access point. */ entityName: Scalars["String"]["output"]; /** Type of the entity in this access point. */ entityType: EntityType; /** When this access point expires, if applicable. */ expiration?: Maybe; /** ID of the principal in this access point. */ principalId: Scalars["EntityId"]["output"]; /** Name of the principal in this access point. */ principalName: Scalars["String"]["output"]; /** Type of the principal in this access point. */ principalType: EntityType; }; export type AccessQueryEngineEdge = Edge & { __typename?: "AccessQueryEngineEdge"; cursor: Scalars["String"]["output"]; node?: Maybe; }; export type AccessQueryEngineEntity = { id: Scalars["UUID"]["output"]; }; export type AccessQueryEngineInput = { after?: InputMaybe; before?: InputMaybe; filter?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; export type AccessQueryEngineResult = PageConnection & { __typename?: "AccessQueryEngineResult"; edges: Array; pageInfo: PageInfo; totalCount: Scalars["Int"]["output"]; }; export type AccessQueryFilter = { query?: InputMaybe; }; export type AccessQueryInput = { access?: InputMaybe; nodeProperties?: InputMaybe; }; export type AccessRelationshipInput = { allOf?: InputMaybe>; anyOf?: InputMaybe>; hasEntitlement?: InputMaybe; hasPrincipal?: InputMaybe; }; /** Error indicating that access request escalation period is invalid. */ export type AccessRequestEscalationPeriodInvalidError = Error & { __typename?: "AccessRequestEscalationPeriodInvalidError"; message: Scalars["String"]["output"]; }; /** An access review campaign to review and certify user access to resources, groups, and connections. */ export type AccessReview = Node & RolePermissionTargetEntity & { __typename?: "AccessReview"; /** The template this access review was created from, if applicable. */ accessReviewTemplate?: Maybe; /** The ID of the template this access review was created from, if applicable. */ accessReviewTemplateId?: Maybe; /** List of permissions the current user has on this access review. */ allowedPermissions: Array; /** Timestamp when this access review was created. */ createdAt: Scalars["Time"]["output"]; /** The deadline by which all reviews must be completed. */ deadline: Scalars["Time"]["output"]; /** Which view (resource-first or user-first) reviewers see by default. */ endUserView: AccessReviewEndUserView; /** Filters defining the scope of the access review. */ filters?: Maybe; /** Policy for which group resources are visible to reviewers. */ groupResourceVisibilityPolicy: AccessReviewGroupResourceVisibilityPolicy; /** Unique identifier for the access review. */ id: Scalars["UUID"]["output"]; /** Whether to include group bindings (nested groups) in the review. */ includeGroupBindings: Scalars["Boolean"]["output"]; /** Whether to instantly action reviews (propagate changes immediately). */ instantlyActionReviews: Scalars["Boolean"]["output"]; /** Statistics about items remaining to review in each tab. */ itemsToReviewStats?: Maybe; /** Timestamp of the last reminder that was sent. */ lastReminderAt?: Maybe; /** The name of the access review. */ name: Scalars["String"]["output"]; /** Paginated list of permission sources for this access review. */ permissionSources: PermissionSourceConnection; /** Whether to include the reviewer's manager in reminder notifications. */ reminderIncludeManager: Scalars["Boolean"]["output"]; /** Days before deadline when reminders should be sent. */ reminderSchedule: Array; /** Time of day when reminders should be sent. */ reminderTimeOfDay: Scalars["Time"]["output"]; /** The ID of the audit report generated for this access review, if available. */ reportId?: Maybe; /** Policy for assigning reviewers to access. */ reviewerAssignmentPolicy: AccessReviewReviewerAssignmentPolicy; /** List of all reviewers assigned to this access review. */ reviewers?: Maybe>; /** Whether to automatically revoke unreviewed items when the review ends. */ revokeUnactionedItems: Scalars["Boolean"]["output"]; /** Whether self-review is allowed (user reviewing their own access). */ selfReviewAllowed: Scalars["Boolean"]["output"]; /** Whether to send notifications when reviewers are assigned. */ sendReviewerAssignmentNotification: Scalars["Boolean"]["output"]; /** The user who started this access review. */ startedByUser?: Maybe; /** The ID of the user who started this access review. */ startedByUserId: Scalars["UserId"]["output"]; /** Comprehensive statistics for this access review. */ stats: AccessReviewStats; /** The user who stopped this access review, if it has been stopped. */ stoppedByUser?: Maybe; /** The ID of the user who stopped this access review, if it has been stopped. */ stoppedByUserId?: Maybe; /** The date when this access review was stopped, if applicable. */ stoppedDate?: Maybe; /** Timezone for scheduling reminders. */ timeZone: Scalars["String"]["output"]; /** Timestamp when this access review was last updated. */ updatedAt: Scalars["Time"]["output"]; /** Paginated list of users whose access is being reviewed. */ usersToReview: UserConnection; }; /** An access review campaign to review and certify user access to resources, groups, and connections. */ export type AccessReviewPermissionSourcesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; /** An access review campaign to review and certify user access to resources, groups, and connections. */ export type AccessReviewUsersToReviewArgs = { after?: InputMaybe; filters?: AccessReviewUserFilters; first?: InputMaybe; sortBy: UsersSortBy; }; /** Actions that can be taken on an access during review. */ export declare enum AccessReviewAction { /** Accept/approve the access as-is. */ Accept = "ACCEPT", /** Admin-initiated revocation (bypassing normal approval flow). */ AdminRevoke = "ADMIN_REVOKE", /** No action taken yet. */ NoAction = "NO_ACTION", /** Revoke the access. */ Revoke = "REVOKE", /** Update/modify the access (e.g., change access level). */ Update = "UPDATE" } /** Error returned when attempting to modify an access review that has already been stopped. */ export type AccessReviewAlreadyStoppedError = Error & { __typename?: "AccessReviewAlreadyStoppedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Status indicating whether a review item has been assigned to reviewers */ export declare enum AccessReviewAssignedStatus { /** The review item has been assigned to one or more reviewers */ Assigned = "ASSIGNED", /** The review item has not been assigned to any reviewers */ Unassigned = "UNASSIGNED" } /** Input for fetching changes for a specific entity in an access review. */ export type AccessReviewChangeInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** The entity ID to fetch changes for. */ entityId: EntityIdTupleInput; }; /** All changes for a specific item in an access review. */ export type AccessReviewChangeItem = { __typename?: "AccessReviewChangeItem"; /** Group-group memberships that were changed. */ groupGroups?: Maybe>; /** Group-resource accesses that were changed. */ groupResources?: Maybe>; /** The item that was reviewed. */ item: AccessReviewItem; /** NHI-related changes. */ nhis?: Maybe; /** User-related changes. */ users?: Maybe; }; /** NHI (non-human identity) related changes in an access review. */ export type AccessReviewChangeNhIs = { __typename?: "AccessReviewChangeNHIs"; /** Resource-resource (NHI) accesses that were changed. */ resourceResources?: Maybe>; }; /** Result containing user-related changes for a specific entity. */ export type AccessReviewChangeOutput = { __typename?: "AccessReviewChangeOutput"; /** User-related changes. */ users: AccessReviewChangeUsers; }; /** User-related changes in an access review. */ export type AccessReviewChangeUsers = { __typename?: "AccessReviewChangeUsers"; /** Connection-user accesses that were changed. */ connectionUsers?: Maybe>; /** Group-user memberships that were changed. */ groupUsers?: Maybe>; /** Resource-user accesses that were changed. */ resourceUsers?: Maybe>; }; /** Input for fetching all changes made during an access review. */ export type AccessReviewChangesInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; }; /** Result containing all changes made during an access review. */ export type AccessReviewChangesOutput = { __typename?: "AccessReviewChangesOutput"; /** List of items with their changes. */ items: Array; }; /** Represents a connection (app/integration) that is being reviewed in an access review. */ export type AccessReviewConnection = { __typename?: "AccessReviewConnection"; /** The access review this connection belongs to. */ accessReview?: Maybe; /** The ID of the access review this connection belongs to. */ accessReviewId: Scalars["AccessReviewId"]["output"]; /** Whether the current user can edit the reviewers for this connection. */ canEditReviewers: Scalars["Boolean"]["output"]; /** The connection being reviewed. */ connection?: Maybe; /** The ID of the connection being reviewed. */ connectionId: Scalars["ConnectionId"]["output"]; /** List of connection users being reviewed. */ connectionUsers?: Maybe>; /** Timestamp when this access review connection was created. */ createdAt: Scalars["Time"]["output"]; /** The current user's review status if they are a reviewer. */ currentUserReviewerStatus?: Maybe; /** Unique identifier for the access review connection. */ id: Scalars["AccessReviewConnectionId"]["output"]; /** The total number of connection users being reviewed. */ numConnectionUsers: Scalars["Int"]["output"]; /** List of reviewers assigned to review this connection. */ reviewerUsers: Array; /** The overall review status for this connection. */ status: AccessReviewSummaryStatus; /** Timestamp when this access review connection was last updated. */ updatedAt: Scalars["Time"]["output"]; /** List of warnings related to connection user reviews. */ warnings?: Maybe>; }; /** Input for fetching a single access review connection. */ export type AccessReviewConnectionInput = { /** The ID of the access review connection to fetch. */ id: Scalars["AccessReviewConnectionId"]["input"]; }; /** Error returned when the specified access review connection is not found */ export type AccessReviewConnectionNotFoundError = Error & { __typename?: "AccessReviewConnectionNotFoundError"; /** Description of the error */ message: Scalars["String"]["output"]; }; /** Result of fetching a single access review connection. */ export type AccessReviewConnectionOutput = AccessReviewConnectionNotFoundError | AccessReviewConnectionResult; /** Successful result containing the requested access review connection. */ export type AccessReviewConnectionResult = { __typename?: "AccessReviewConnectionResult"; /** The requested access review connection. */ accessReviewConnection: AccessReviewConnection; }; /** Tracks the review status for a reviewer assigned to a connection. */ export type AccessReviewConnectionReviewerStatus = { __typename?: "AccessReviewConnectionReviewerStatus"; /** The overall status of items assigned to this reviewer. */ itemStatus: AccessReviewItemStatus; /** The number of users assigned to this reviewer. */ numUsersAssigned: Scalars["Int"]["output"]; /** The number of users reviewed by this reviewer. */ numUsersReviewed: Scalars["Int"]["output"]; }; /** Represents a user's access to a connection being reviewed in an access review */ export type AccessReviewConnectionUser = { __typename?: "AccessReviewConnectionUser"; /** The ID of the parent access review connection */ accessReviewConnectionId: Scalars["AccessReviewConnectionId"]["output"]; /** The connection object */ connection?: Maybe; /** The ID of the connection */ connectionId: Scalars["ConnectionId"]["output"]; /** Timestamp when this entry was created */ createdAt: Scalars["Time"]["output"]; /** Error message if the review encountered an error */ errorMessage?: Maybe; /** The ID of the event associated with this review, if any */ eventId?: Maybe; /** Unique identifier for this access review connection user */ id: Scalars["AccessReviewConnectionUserId"]["output"]; /** Timestamp of the last sync, if applicable */ lastSynced?: Maybe; /** The list of reviewers assigned to review this user's connection access */ reviewerUsers?: Maybe>; /** The current status and outcome of this review item */ statusAndOutcome: AccessReviewItemStatusAndOutcome; /** The status code of the propagation, if applicable */ statusCode?: Maybe; /** The type of propagation task, if applicable */ taskType?: Maybe; /** Timestamp when this entry was last updated */ updatedAt: Scalars["Time"]["output"]; /** The user object */ user?: Maybe; /** The ID of the user whose access is being reviewed */ userId: Scalars["UserId"]["output"]; /** Any warnings associated with this connection user review */ warnings?: Maybe>; }; /** Represents a warning associated with a connection user review (e.g., reviewer conflicts) */ export type AccessReviewConnectionUserWarning = { __typename?: "AccessReviewConnectionUserWarning"; /** The ID of the access review connection */ accessReviewConnectionId: Scalars["AccessReviewConnectionId"]["output"]; /** The ID of the access review connection user */ accessReviewConnectionUserId: Scalars["AccessReviewConnectionUserId"]["output"]; /** The ID of the access review connection user reviewer associated with this warning */ accessReviewConnectionUserReviewerId: Scalars["AccessReviewConnectionUserReviewerId"]["output"]; /** The type of warning */ accessReviewUserWarningType: AccessReviewUserWarningType; /** Small connection object with basic info */ connection?: Maybe; /** The reviewer user object, if applicable */ reviewer?: Maybe; /** The ID of the reviewer, if applicable */ reviewerId?: Maybe; /** The user object */ user?: Maybe; /** The ID of the user whose access is being reviewed */ userId: Scalars["UserId"]["output"]; }; /** Union type for the result of querying connection users in an access review */ export type AccessReviewConnectionUsersOutput = AccessReviewConnectionUsersResult | AccessReviewNotFoundError; /** Result containing the list of connection users in an access review */ export type AccessReviewConnectionUsersResult = { __typename?: "AccessReviewConnectionUsersResult"; /** The list of connection users being reviewed */ accessReviewConnectionUsers?: Maybe>; }; /** Input for fetching all connections being reviewed in an access review. */ export type AccessReviewConnectionsInput = { /** The ID of the access review. */ id: Scalars["AccessReviewId"]["input"]; }; /** Result of fetching all connections being reviewed in an access review. */ export type AccessReviewConnectionsOutput = AccessReviewConnectionsResult | AccessReviewNotFoundError; /** Successful result containing all connections being reviewed. */ export type AccessReviewConnectionsResult = { __typename?: "AccessReviewConnectionsResult"; /** List of connections being reviewed. */ accessReviewConnections: Array; }; /** Identifier for an access review edge, combining ID and type. */ export type AccessReviewEdgeId = { __typename?: "AccessReviewEdgeId"; /** The unique ID. */ id: Scalars["UUID"]["output"]; /** The type of access being reviewed. */ type: AccessReviewType; }; /** The default view for end users performing reviews. */ export declare enum AccessReviewEndUserView { /** Resource-centric view (show resources first, then users with access). */ ResourceFirst = "RESOURCE_FIRST", /** User-centric view (show users first, then their access). */ UserFirst = "USER_FIRST" } /** Filters for access reviews. */ export type AccessReviewFilters = { __typename?: "AccessReviewFilters"; /** Filter by admin owner IDs. */ adminIDs: Array; /** Filter by connection IDs. */ connectionIDs: Array; /** Filter by entity IDs. */ entityIDs: Array; /** Filter by group types. */ groupTypes: Array; /** How to combine the filters. */ matchMode: FiltersMatchMode; /** Filter by names. */ names: Array; /** Filter by resource types. */ resourceTypes: Array; /** Filter by tags. */ tags: Array; /** Filter by user IDs. */ userIDs: Array; }; /** Represents a group that is being reviewed in an access review. */ export type AccessReviewGroup = { __typename?: "AccessReviewGroup"; /** The access review this group belongs to. */ accessReview?: Maybe; /** The ID of the access review this group belongs to. */ accessReviewId: Scalars["AccessReviewId"]["output"]; /** All group-resource relationships for this group. */ allGroupResources?: Maybe>; /** Whether the current user can edit the reviewers for this group. */ canEditReviewers: Scalars["Boolean"]["output"]; /** Timestamp when this access review group was created. */ createdAt: Scalars["Time"]["output"]; /** The current user's review status if they are a reviewer. */ currentUserReviewerStatus?: Maybe; /** The group being reviewed. */ group?: Maybe; /** List of groups this group is a member of. */ groupGroups?: Maybe>; /** The ID of the group being reviewed. */ groupId: Scalars["GroupId"]["output"]; /** List of resources this group has access to. */ groupResources?: Maybe>; /** Paginated list of users who are members of this group. */ groupUsers: AccessReviewGroupUserConnection; /** Unique identifier for the access review group. */ id: Scalars["AccessReviewGroupId"]["output"]; /** Whether the group has been deleted. */ isGroupDeleted: Scalars["Boolean"]["output"]; /** The total number of groups this group is a member of. */ numGroupGroups: Scalars["Int"]["output"]; /** The total number of resources this group has access to. */ numGroupResources: Scalars["Int"]["output"]; /** The total number of users in this group being reviewed. */ numGroupUsers: Scalars["Int"]["output"]; /** List of reviewers assigned to review this group. */ reviewerUsers: Array; /** The overall review status for this group. */ status: AccessReviewSummaryStatus; /** Timestamp when this access review group was last updated. */ updatedAt: Scalars["Time"]["output"]; /** List of warnings related to group-user reviews. */ warnings?: Maybe>; }; /** Represents a group that is being reviewed in an access review. */ export type AccessReviewGroupGroupUsersArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; /** * Represents a group-to-group membership that is being reviewed in an access review. * This tracks when one group (the member group) has membership in another group (the containing group). */ export type AccessReviewGroupGroup = { __typename?: "AccessReviewGroupGroup"; /** The access level the member group has in the containing group. */ accessLevel: GroupAccessLevel; /** The access review group for the containing group. */ accessReviewContainingGroup: AccessReviewGroup; /** The ID of the access review group for the containing group. */ accessReviewContainingGroupId: Scalars["AccessReviewGroupId"]["output"]; /** The ID of the access review this group-group relationship belongs to. */ accessReviewId: Scalars["AccessReviewId"]["output"]; /** The ID of the access review group for the member group. */ accessReviewMemberGroupId: Scalars["AccessReviewGroupId"]["output"]; /** The containing group. */ containingGroup: Group; /** The ID of the containing group. */ containingGroupId: Scalars["GroupId"]["output"]; /** Timestamp when this access review group-group was created. */ createdAt: Scalars["Time"]["output"]; /** Expiration time for this group membership, if applicable. */ expiration?: Maybe; /** The underlying group-group access record. */ groupGroupAccess?: Maybe; /** The access record associated with this group-group relationship. */ groupResourceAccess?: Maybe; /** Unique identifier for the access review group-group relationship. */ id: Scalars["AccessReviewGroupGroupId"]["output"]; /** Whether the containing group has been deleted. */ isContainingGroupDeleted: Scalars["Boolean"]["output"]; /** Whether the member group has been deleted. */ isMemberGroupDeleted: Scalars["Boolean"]["output"]; /** The ID of the member group. */ memberGroupId: Scalars["GroupId"]["output"]; /** List of reviewers assigned to review this group-group relationship. */ reviewerUsers?: Maybe>; /** The review status and outcome for this group-group relationship. */ statusAndOutcome: AccessReviewItemStatusAndOutcome; /** Timestamp when this access review group-group was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Input for fetching a single access review group. */ export type AccessReviewGroupInput = { /** The ID of the access review group to fetch. */ id: Scalars["AccessReviewGroupId"]["input"]; }; /** Represents a group's access to a resource or another group being reviewed in an access review */ export type AccessReviewGroupItemAssignment = Node & { __typename?: "AccessReviewGroupItemAssignment"; /** The name of the access level, if applicable */ accessLevelName?: Maybe; /** The remote ID of the access level, if applicable */ accessLevelRemoteId?: Maybe; /** The ID of the access review group */ accessReviewGroupId: Scalars["AccessReviewGroupId"]["output"]; /** The name of the connection, if applicable */ connectionName?: Maybe; /** The group whose access is being reviewed */ group: Group; /** The ID of the group whose access is being reviewed */ groupId: Scalars["GroupId"]["output"]; /** The name of the group */ groupName: Scalars["String"]["output"]; /** The type of the group */ groupType: GroupType; /** Unique identifier for this assignment */ id: Scalars["UUID"]["output"]; /** The entity (resource or group) that the group has access to */ item: AccessEntity; /** The ID of the item (resource or group) */ itemId: Scalars["UUID"]["output"]; /** The kind of item (resource or group) */ itemKind: AccessReviewGroupItemKind; /** The name of the item */ itemName: Scalars["String"]["output"]; /** The type of the item */ itemType: Scalars["String"]["output"]; /** The outcome of this review (e.g., approved, revoked) */ outcome: AccessReviewItemOutcome; /** The list of users assigned to review this assignment */ reviewerUsers?: Maybe>; /** The current status of this review item (e.g., pending, completed) */ status: AccessReviewItemStatus; }; /** Filter options for querying group item assignments in an access review */ export type AccessReviewGroupItemAssignmentFilters = { /** The ID of the access review to query assignments for */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** Filter by a specific admin owner ID */ adminOwnerId?: InputMaybe; /** Filter by assignment status (assigned or unassigned) */ assignedStatus?: InputMaybe; /** Filter to show only items where the current user has permission to assign reviewers */ canAssignReviewers?: InputMaybe; /** Filter by a specific connection ID */ connectionId?: InputMaybe; /** Filter by a specific group ID */ groupId?: InputMaybe; /** Filter by the type of the item */ itemType?: InputMaybe; /** Filter by the outcome of the review (e.g., approved, revoked) */ outcome?: InputMaybe; /** Filter by a specific reviewer ID */ reviewerId?: InputMaybe; /** Optional search query to filter by item or group name */ searchQuery?: InputMaybe; /** Filter by the status of the review item (e.g., pending, completed) */ status?: InputMaybe; }; /** Edge type for group item assignment pagination */ export type AccessReviewGroupItemAssignmentsEdge = Edge & { __typename?: "AccessReviewGroupItemAssignmentsEdge"; /** Cursor for pagination */ cursor: Scalars["String"]["output"]; /** The group item assignment node */ node: AccessReviewGroupItemAssignment; }; /** Paginated result set for group item assignments in an access review */ export type AccessReviewGroupItemAssignmentsResult = PageConnection & { __typename?: "AccessReviewGroupItemAssignmentsResult"; /** The list of group item assignment edges */ edges: Array; /** Pagination information */ pageInfo: PageInfo; /** The total number of edges in the current page */ totalCount: Scalars["Int"]["output"]; /** The total number of completed group assignments across all pages */ totalNumCompletedGroupAssignments: Scalars["Int"]["output"]; /** The total number of group item assignments across all pages */ totalNumGroupItemAssignments: Scalars["Int"]["output"]; }; /** The kind of item being reviewed in a group access review (either a resource or another group) */ export declare enum AccessReviewGroupItemKind { /** The item is a group */ Group = "GROUP", /** The item is a resource */ Resource = "RESOURCE" } /** Error returned when an access review group is not found. */ export type AccessReviewGroupNotFoundError = Error & { __typename?: "AccessReviewGroupNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of fetching a single access review group. */ export type AccessReviewGroupOutput = AccessReviewGroupNotFoundError | AccessReviewGroupResult; /** Represents a proposed change to a group user's reviewer. */ export type AccessReviewGroupProposedChange = { __typename?: "AccessReviewGroupProposedChange"; /** The current reviewer assigned. */ currentReviewer: ReviewerUser; /** The group being accessed. */ group: Group; /** The proposed new reviewer. */ proposedReviewer: ReviewerUser; /** The user whose access is being reviewed. */ user: UserSmall; }; /** Represents a group's access to a resource that is being reviewed in an access review. */ export type AccessReviewGroupResource = { __typename?: "AccessReviewGroupResource"; /** The access level the group has to the resource. */ accessLevel: ResourceAccessLevel; /** The ID of the access review group. */ accessReviewGroupId: Scalars["AccessReviewGroupId"]["output"]; /** The ID of the access review this group-resource belongs to. */ accessReviewId: Scalars["AccessReviewId"]["output"]; /** The access review resource, if the resource is being reviewed separately. */ accessReviewResource?: Maybe; /** * The ID of the access review resource, if the resource is also being reviewed separately. * This is nullable because this access review may not always include this resource. */ accessReviewResourceId?: Maybe; /** Timestamp when this access review group-resource was created. */ createdAt: Scalars["Time"]["output"]; /** Expiration time for this group-resource access, if applicable. */ expiration?: Maybe; /** The ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** The underlying group-resource access record. */ groupResourceAccess?: Maybe; /** Unique identifier for the access review group-resource. */ id: Scalars["AccessReviewGroupResourceId"]["output"]; /** Whether the group has been deleted. */ isGroupDeleted: Scalars["Boolean"]["output"]; /** Whether the resource has been deleted. */ isResourceDeleted: Scalars["Boolean"]["output"]; /** The resource being accessed by the group. */ resource?: Maybe; /** The ID of the resource. */ resourceId: Scalars["ResourceId"]["output"]; /** List of reviewers assigned to review this group-resource access. */ reviewerUsers?: Maybe>; /** The role assignment associated with this group-resource access. */ roleAssignment?: Maybe; /** The review status and outcome for this group-resource access. */ statusAndOutcome: AccessReviewItemStatusAndOutcome; /** Timestamp when this access review group-resource was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Policy controlling which group resources are visible to reviewers. */ export declare enum AccessReviewGroupResourceVisibilityPolicy { /** Only show group resources that are visible to the reviewer. */ Strict = "STRICT", /** Show all group resources regardless of reviewer visibility. */ ViewAll = "VIEW_ALL", /** Also show assigned group resources even if not normally visible. */ ViewVisibleAndAssigned = "VIEW_VISIBLE_AND_ASSIGNED" } /** Successful result containing the requested access review group. */ export type AccessReviewGroupResult = { __typename?: "AccessReviewGroupResult"; /** The requested access review group. */ accessReviewGroup: AccessReviewGroup; }; /** Tracks the review status for a reviewer assigned to a group. */ export type AccessReviewGroupReviewerStatus = { __typename?: "AccessReviewGroupReviewerStatus"; /** The overall status of items assigned to this reviewer. */ itemStatus: AccessReviewItemStatus; /** The number of groups assigned to this reviewer. */ numGroupsAssigned: Scalars["Int"]["output"]; /** The number of groups reviewed by this reviewer. */ numGroupsReviewed: Scalars["Int"]["output"]; /** The number of resources assigned to this reviewer. */ numResourcesAssigned: Scalars["Int"]["output"]; /** The number of resources reviewed by this reviewer. */ numResourcesReviewed: Scalars["Int"]["output"]; /** The number of users assigned to this reviewer. */ numUsersAssigned: Scalars["Int"]["output"]; /** The number of users reviewed by this reviewer. */ numUsersReviewed: Scalars["Int"]["output"]; }; /** Represents a user's membership in a group that is being reviewed in an access review. */ export type AccessReviewGroupUser = Node & { __typename?: "AccessReviewGroupUser"; /** The access level the user has in the group. */ accessLevel: GroupAccessLevel; /** The ID of the access review group. */ accessReviewGroupId: Scalars["AccessReviewGroupId"]["output"]; /** Timestamp when this access review group-user was created. */ createdAt: Scalars["Time"]["output"]; /** Error message if there was a problem with propagation. */ errorMessage?: Maybe; /** The group the user is a member of. */ group?: Maybe; /** The ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** The underlying group-user record. */ groupUser?: Maybe; /** Unique identifier for the access review group-user. */ id: Scalars["UUID"]["output"]; /** Whether the group has been deleted. */ isGroupDeleted: Scalars["Boolean"]["output"]; /** Timestamp of the last sync. */ lastSynced?: Maybe; /** The ID of the request that created this access, if applicable. */ requestId?: Maybe; /** List of reviewers assigned to review this user's group membership. */ reviewerUsers?: Maybe>; /** The role assignment associated with this group membership. */ roleAssignment?: Maybe; /** The review status and outcome for this user's group membership. */ statusAndOutcome: AccessReviewItemStatusAndOutcome; /** The status code of the propagation. */ statusCode?: Maybe; /** The type of propagation task. */ taskType?: Maybe; /** Timestamp when this access review group-user was last updated. */ updatedAt: Scalars["Time"]["output"]; /** The user being reviewed. */ user?: Maybe; /** The ID of the user. */ userId: Scalars["UserId"]["output"]; /** List of warnings related to this group-user review. */ warnings?: Maybe>; }; /** Paginated connection type for access review group-users. */ export type AccessReviewGroupUserConnection = PageConnection & { __typename?: "AccessReviewGroupUserConnection"; /** List of access review group-user edges. */ edges: Array; /** Pagination information. */ pageInfo: PageInfo; /** Total count of all group-users being reviewed. */ totalCount: Scalars["Int"]["output"]; }; /** Edge type for access review group-user pagination. */ export type AccessReviewGroupUserEdge = Edge & { __typename?: "AccessReviewGroupUserEdge"; /** Cursor for pagination. */ cursor: Scalars["String"]["output"]; /** The access review group-user node. */ node: AccessReviewGroupUser; }; /** Represents a warning related to a group-user review, such as self-review or reviewer visibility issues. */ export type AccessReviewGroupUserWarning = { __typename?: "AccessReviewGroupUserWarning"; /** The ID of the access review group. */ accessReviewGroupId: Scalars["AccessReviewGroupId"]["output"]; /** The ID of the access review group-user. */ accessReviewGroupUserId: Scalars["AccessReviewGroupUserId"]["output"]; /** The ID of the group-user reviewer associated with this warning. */ accessReviewGroupUserReviewerId: Scalars["AccessReviewGroupUserReviewerId"]["output"]; /** The type of warning. */ accessReviewUserWarningType: AccessReviewUserWarningType; /** The group being reviewed. */ group?: Maybe; /** The reviewer user, if applicable. */ reviewer?: Maybe; /** The ID of the reviewer, if applicable. */ reviewerId?: Maybe; /** The user being reviewed. */ user?: Maybe; /** The ID of the user being reviewed. */ userId: Scalars["UserId"]["output"]; }; /** Filters for fetching group users in an access review. */ export type AccessReviewGroupUsersFilters = { /** Filter by reviewer user ID. */ reviewerID?: InputMaybe; }; /** Result of fetching group-users being reviewed in an access review. */ export type AccessReviewGroupUsersOutput = AccessReviewGroupUsersResult | AccessReviewNotFoundError; /** Successful result containing paginated group-users being reviewed. */ export type AccessReviewGroupUsersResult = { __typename?: "AccessReviewGroupUsersResult"; /** Paginated connection of access review group-users. */ accessReviewGroupUsers: AccessReviewGroupUserConnection; }; /** Result of fetching all groups being reviewed in an access review. */ export type AccessReviewGroupsOutput = AccessReviewGroupsResult | AccessReviewNotFoundError; /** Successful result containing all groups being reviewed. */ export type AccessReviewGroupsResult = { __typename?: "AccessReviewGroupsResult"; /** List of groups being reviewed. */ accessReviewGroups: Array; }; /** Input for fetching a single access review. */ export type AccessReviewInput = { /** The ID of the access review to fetch. */ accessReviewId: Scalars["AccessReviewId"]["input"]; }; /** A wrapper for a resource, group, or connection being reviewed. */ export type AccessReviewItem = { __typename?: "AccessReviewItem"; /** The connection, if this is a connection review. */ connection?: Maybe; /** The group, if this is a group review. */ group?: Maybe; /** Unique key for this item. */ key: Scalars["String"]["output"]; /** The resource, if this is a resource review. */ resource?: Maybe; }; /** Paginated connection for access review items. */ export type AccessReviewItemConnection = PageConnection & { __typename?: "AccessReviewItemConnection"; /** List of access review item edges. */ edges: Array; /** Pagination information. */ pageInfo: PageInfo; /** Number of groups that have been reviewed. */ reviewedGroupCount: Scalars["Int"]["output"]; /** Number of resources that have been reviewed. */ reviewedResourceCount: Scalars["Int"]["output"]; /** Total count of all items. */ totalCount: Scalars["Int"]["output"]; /** Total count of groups being reviewed. */ totalGroupCount: Scalars["Int"]["output"]; /** Total count of resources being reviewed. */ totalResourceCount: Scalars["Int"]["output"]; }; /** Edge representing an accessible item in an access review with review decisions. */ export type AccessReviewItemEdge = Edge & { __typename?: "AccessReviewItemEdge"; /** The access level for this item. */ accessLevel: IAccessLevel; /** Pagination cursor. */ cursor: Scalars["String"]["output"]; /** The edge ID combining item ID and type. */ edgeId: AccessReviewEdgeId; /** The accessible item (resource, group, or connection). */ node: AccessibleItem; /** The role assignment, if applicable. */ roleAssignment?: Maybe; /** Updated access level if the reviewer modified the access. */ updatedAccessLevel?: Maybe; /** Updated resource if the reviewer modified the access. */ updatedResource?: Maybe; /** Updated resource ID if the reviewer modified the access. */ updatedResourceId?: Maybe; /** Note provided by the reviewer. */ userNote?: Maybe; /** The reviewer's decision status. */ userStatus: ReviewerUserStatus; }; /** The outcome/decision made on an access item after review. */ export declare enum AccessReviewItemOutcome { /** Item accepted. */ Accepted = "ACCEPTED", /** No outcome yet. */ None = "NONE", /** Item revoked. */ Revoked = "REVOKED", /** Item updated. */ Updated = "UPDATED" } /** * Aggregates the ReviewerUserStatus of multiple reviewers, at the item level. * For example: AccessReviewResourceUser (item level) has multiple AccessReviewResourceUserReviewer (reviewer level). */ export declare enum AccessReviewItemStatus { /** All reviewers have completed their reviews. */ Completed = "COMPLETED", /** This item has warnings. Takes precedence over all other statuses. */ NeedsAttention = "NEEDS_ATTENTION", /** * This item was revoked in Opal and is awaiting end-system revocation. Takes * precedence over all other statuses besides NEEDS_ATTENTION. */ NeedsEndSystemRevocation = "NEEDS_END_SYSTEM_REVOCATION", /** * This item was updated in Opal and the resulting access request needs to be * approved. Takes precedence over all other statuses besides NEEDS_ATTENTION. */ NeedsUpdateRequestApproval = "NEEDS_UPDATE_REQUEST_APPROVAL", /** No reviewers have completed any reviews yet. */ NotStarted = "NOT_STARTED", /** There are no items to review. */ NoReviewNeeded = "NO_REVIEW_NEEDED", /** Some reviewers have completed their reviews. */ PartiallyCompleted = "PARTIALLY_COMPLETED" } /** Combines the status and outcome for an access review item. */ export type AccessReviewItemStatusAndOutcome = { __typename?: "AccessReviewItemStatusAndOutcome"; /** The outcome/decision made. */ outcome: AccessReviewItemOutcome; /** The current status of the review. */ status: AccessReviewItemStatus; }; /** Filter options for access review items. */ export type AccessReviewItemsFilter = { /** Filter by specific access review ID. */ accessReviewId?: InputMaybe; }; /** Input for fetching access review items with filtering and sorting. */ export type AccessReviewItemsInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** Pagination cursor. */ cursor?: InputMaybe; /** Filter by reviewer. */ reviewerFilter?: InputMaybe; /** Search query to filter items. */ searchQuery?: InputMaybe; /** Sort configuration. */ sortBy?: InputMaybe; }; /** Result of fetching access review items. */ export type AccessReviewItemsResult = { __typename?: "AccessReviewItemsResult"; /** Pagination cursor for fetching more results. */ cursor?: Maybe; /** List of access review items. */ items: Array; }; /** Sort configuration for access review items. */ export type AccessReviewItemsSortBy = { /** The sort direction. */ direction?: InputMaybe; /** The field to sort by. */ field?: InputMaybe; }; /** Fields that access review items can be sorted by. */ export declare enum AccessReviewItemsSortByField { /** Sort by name. */ Name = "NAME", /** Sort by review status. */ Status = "STATUS" } /** Error returned when an access review is not found. */ export type AccessReviewNotFoundError = Error & { __typename?: "AccessReviewNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when an operation requires the access review to be stopped but it is still running. */ export type AccessReviewNotStoppedError = Error & { __typename?: "AccessReviewNotStoppedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of fetching a single access review. */ export type AccessReviewOutput = AccessReviewNotFoundError | AccessReviewResult; export type AccessReviewPreviewSortBy = { direction?: InputMaybe; field?: InputMaybe; }; export declare enum AccessReviewPreviewSortByField { EntityName = "ENTITY_NAME", ReviewCount = "REVIEW_COUNT" } /** Union type representing a proposed reviewer change for either a resource or group. */ export type AccessReviewProposedChange = AccessReviewGroupProposedChange | AccessReviewResourceProposedChange; /** Input for fetching proposed reviewer changes in an access review. */ export type AccessReviewProposedChangeInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** List of group-user reviewer IDs to check for proposed changes. */ groupUserReviewerIds?: InputMaybe>; /** List of resource-user reviewer IDs to check for proposed changes. */ resourceUserReviewerIds?: InputMaybe>; }; /** Result of fetching proposed reviewer changes. */ export type AccessReviewProposedChangesOutput = AccessReviewProposedChangesResult | NoProposedChangesError; /** Successful result containing proposed reviewer changes. */ export type AccessReviewProposedChangesResult = { __typename?: "AccessReviewProposedChangesResult"; /** List of proposed reviewer changes. */ proposedChanges?: Maybe>; }; /** Represents a resource that is being reviewed in an access review. */ export type AccessReviewResource = { __typename?: "AccessReviewResource"; /** The access review this resource belongs to. */ accessReview?: Maybe; /** The ID of the access review this resource belongs to. */ accessReviewId: Scalars["AccessReviewId"]["output"]; /** Whether the current user can edit the reviewers for this resource. */ canEditReviewers: Scalars["Boolean"]["output"]; /** Timestamp when this access review resource was created. */ createdAt: Scalars["Time"]["output"]; /** The current user's review status if they are a reviewer. */ currentUserReviewerStatus?: Maybe; /** Unique identifier for the access review resource. */ id: Scalars["AccessReviewResourceId"]["output"]; /** Whether the resource has been deleted. */ isResourceDeleted: Scalars["Boolean"]["output"]; /** The total number of users with access to this resource being reviewed. */ numResourceUsers: Scalars["Int"]["output"]; /** The resource being reviewed. */ resource?: Maybe; /** The ID of the resource being reviewed. */ resourceId: Scalars["ResourceId"]["output"]; /** List of resources (NHIs) that have access to this resource. */ resourceResources?: Maybe>; /** List of users who have access to this resource. */ resourceUsers?: Maybe>; /** List of reviewers assigned to review this resource. */ reviewerUsers: Array; /** The overall review status for this resource. */ status: AccessReviewSummaryStatus; /** Timestamp when this access review resource was last updated. */ updatedAt: Scalars["Time"]["output"]; /** List of warnings related to resource-user reviews. */ warnings?: Maybe>; }; /** Input for fetching a single access review resource. */ export type AccessReviewResourceInput = { /** The ID of the access review resource to fetch. */ id: Scalars["AccessReviewResourceId"]["input"]; }; /** Error returned when an access review resource is not found. */ export type AccessReviewResourceNotFoundError = Error & { __typename?: "AccessReviewResourceNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of fetching a single access review resource. */ export type AccessReviewResourceOutput = AccessReviewResourceNotFoundError | AccessReviewResourceResult; /** Represents a resource principal's (service account, managed identity) access to another resource being reviewed */ export type AccessReviewResourcePrincipalAssignment = Node & { __typename?: "AccessReviewResourcePrincipalAssignment"; /** The name of the access level, if applicable */ accessLevelName?: Maybe; /** The remote ID of the access level, if applicable */ accessLevelRemoteId?: Maybe; /** The entity that the principal has access to */ entity: AccessEntity; /** The ID of the entity */ entityId: Scalars["EntityId"]["output"]; /** The item type of the entity */ entityItemType: Scalars["String"]["output"]; /** The name of the entity */ entityName: Scalars["String"]["output"]; /** The type of the entity */ entityType: EntityType; /** Unique identifier for this assignment */ id: Scalars["UUID"]["output"]; /** The outcome of this review (e.g., approved, revoked) */ outcome: AccessReviewItemOutcome; /** The resource principal (service account, managed identity) whose access is being reviewed */ principal: Resource; /** The ID of the resource principal */ resourcePrincipalId: Scalars["ResourceId"]["output"]; /** The name of the resource principal */ resourcePrincipalName: Scalars["String"]["output"]; /** The type of the resource principal */ resourcePrincipalType: ResourceType; /** The list of users assigned to review this assignment */ reviewerUsers?: Maybe>; /** The current status of this review item (e.g., pending, completed) */ status: AccessReviewItemStatus; }; /** Edge type for resource principal assignment pagination */ export type AccessReviewResourcePrincipalAssignmentEdge = Edge & { __typename?: "AccessReviewResourcePrincipalAssignmentEdge"; /** Cursor for pagination */ cursor: Scalars["String"]["output"]; /** The resource principal assignment node */ node: AccessReviewResourcePrincipalAssignment; }; /** Filter options for querying resource principal assignments in an access review */ export type AccessReviewResourcePrincipalAssignmentsFilters = { /** The ID of the access review to query assignments for */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** Filter by a specific admin owner ID */ adminOwnerId?: InputMaybe; /** Filter by assignment status (assigned or unassigned) */ assignedStatus?: InputMaybe; /** Filter to show only items where the current user has permission to assign reviewers */ canAssignReviewers?: InputMaybe; /** Filter by the outcome of the review (e.g., approved, revoked) */ outcome?: InputMaybe; /** Filter by a specific resource principal ID */ resourcePrincipalID?: InputMaybe; /** Filter by a specific reviewer ID */ reviewerId?: InputMaybe; /** Optional search query to filter by principal or entity name */ searchQuery?: InputMaybe; /** Filter by the status of the review item (e.g., pending, completed) */ status?: InputMaybe; }; /** Paginated result set for resource principal assignments in an access review */ export type AccessReviewResourcePrincipalAssignmentsResult = PageConnection & { __typename?: "AccessReviewResourcePrincipalAssignmentsResult"; /** The list of resource principal assignment edges */ edges: Array; /** Pagination information */ pageInfo: PageInfo; /** The total number of edges in the current page */ totalCount: Scalars["Int"]["output"]; /** The total number of completed resource principal assignments across all pages */ totalNumCompletedResourcePrincipalAssignments: Scalars["Int"]["output"]; /** The total number of resource principal assignments across all pages */ totalNumResourcePrincipalAssignments: Scalars["Int"]["output"]; }; /** Represents a proposed change to a resource user's reviewer. */ export type AccessReviewResourceProposedChange = { __typename?: "AccessReviewResourceProposedChange"; /** The current reviewer assigned. */ currentReviewer: ReviewerUser; /** The proposed new reviewer. */ proposedReviewer: ReviewerUser; /** The resource being accessed. */ resource: ResourceSmall; /** The user whose access is being reviewed. */ user: UserSmall; }; /** * Represents a resource-to-resource access (NHI/non-human identity access) that is being reviewed in an access review. * This tracks when one resource (the principal) has access to another resource (the entity). */ export type AccessReviewResourceResource = { __typename?: "AccessReviewResourceResource"; /** The access level the principal resource has to the entity resource. */ accessLevel: ResourceAccessLevel; /** The ID of the access review this resource-resource relationship belongs to. */ accessReviewId: Scalars["AccessReviewId"]["output"]; /** The ID of the access review resource for the entity (target resource). */ accessReviewResourceEntityId?: Maybe; /** The ID of the access review resource for the principal (accessor resource). */ accessReviewResourcePrincipalId?: Maybe; /** Timestamp when this access review resource-resource was created. */ createdAt: Scalars["Time"]["output"]; /** Unique identifier for the access review resource-resource relationship. */ id: Scalars["AccessReviewRoleAssignmentId"]["output"]; /** Whether the entity resource has been deleted. */ isResourceEntityDeleted: Scalars["Boolean"]["output"]; /** Whether the principal resource has been deleted. */ isResourcePrincipalDeleted: Scalars["Boolean"]["output"]; /** The entity resource being accessed. */ resourceEntity?: Maybe; /** The ID of the entity resource being accessed. */ resourceEntityId: Scalars["ResourceId"]["output"]; /** The principal resource accessing the entity. */ resourcePrincipal?: Maybe; /** The ID of the principal resource accessing the entity. */ resourcePrincipalId: Scalars["ResourceId"]["output"]; /** The underlying resource-resource access record. */ resourceResourceAccess?: Maybe; /** List of reviewers assigned to review this resource-resource access. */ reviewerUsers?: Maybe>; /** The review status and outcome for this resource-resource access. */ statusAndOutcome: AccessReviewItemStatusAndOutcome; /** Timestamp when this access review resource-resource was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Successful result containing the requested access review resource. */ export type AccessReviewResourceResult = { __typename?: "AccessReviewResourceResult"; /** The requested access review resource. */ accessReviewResource: AccessReviewResource; }; /** Tracks the review status for a reviewer assigned to a resource. */ export type AccessReviewResourceReviewerStatus = { __typename?: "AccessReviewResourceReviewerStatus"; /** The overall status of items assigned to this reviewer. */ itemStatus: AccessReviewItemStatus; /** The number of NHIs (non-human identities) assigned to this reviewer. */ numNHIsAssigned: Scalars["Int"]["output"]; /** The number of NHIs (non-human identities) reviewed by this reviewer. */ numNHIsReviewed: Scalars["Int"]["output"]; /** The number of resources assigned to this reviewer. */ numResourcesAssigned: Scalars["Int"]["output"]; /** The number of resources reviewed by this reviewer. */ numResourcesReviewed: Scalars["Int"]["output"]; /** The number of users assigned to this reviewer. */ numUsersAssigned: Scalars["Int"]["output"]; /** The number of users reviewed by this reviewer. */ numUsersReviewed: Scalars["Int"]["output"]; }; /** Represents a user's access to a resource that is being reviewed in an access review. */ export type AccessReviewResourceUser = { __typename?: "AccessReviewResourceUser"; /** The access level the user has to the resource. */ accessLevel: ResourceAccessLevel; /** The ID of the access review resource. */ accessReviewResourceId: Scalars["AccessReviewResourceId"]["output"]; /** Timestamp when this access review resource-user was created. */ createdAt: Scalars["Time"]["output"]; /** Error message if there was a problem with propagation. */ errorMessage?: Maybe; /** Unique identifier for the access review resource-user. */ id: Scalars["AccessReviewResourceUserId"]["output"]; /** Whether the resource has been deleted. */ isResourceDeleted: Scalars["Boolean"]["output"]; /** Timestamp of the last sync. */ lastSynced?: Maybe; /** The ID of the request that created this access, if applicable. */ requestId?: Maybe; /** The resource being accessed by the user. */ resource?: Maybe; /** The ID of the resource. */ resourceId: Scalars["ResourceId"]["output"]; /** The underlying resource-user record. */ resourceUser?: Maybe; /** List of reviewers assigned to review this user's resource access. */ reviewerUsers?: Maybe>; /** The role assignment associated with this resource access. */ roleAssignment?: Maybe; /** The review status and outcome for this user's resource access. */ statusAndOutcome: AccessReviewItemStatusAndOutcome; /** The status code of the propagation. */ statusCode?: Maybe; /** The support ticket linked to this review, if applicable. */ supportTicket?: Maybe; /** The ID of the support ticket linked to this review, if applicable. */ supportTicketId?: Maybe; /** The type of propagation task. */ taskType?: Maybe; /** Timestamp when this access review resource-user was last updated. */ updatedAt: Scalars["Time"]["output"]; /** The user being reviewed. */ user?: Maybe; /** The ID of the user. */ userId: Scalars["UserId"]["output"]; /** List of warnings related to this resource-user review. */ warnings?: Maybe>; }; /** Represents a warning related to a resource-user review, such as self-review or reviewer visibility issues. */ export type AccessReviewResourceUserWarning = { __typename?: "AccessReviewResourceUserWarning"; /** The ID of the access review resource. */ accessReviewResourceId: Scalars["AccessReviewResourceId"]["output"]; /** The ID of the access review resource-user. */ accessReviewResourceUserId: Scalars["AccessReviewResourceUserId"]["output"]; /** The ID of the resource-user reviewer associated with this warning. */ accessReviewResourceUserReviewerId: Scalars["AccessReviewResourceUserReviewerId"]["output"]; /** The type of warning. */ accessReviewUserWarningType: AccessReviewUserWarningType; /** The resource being reviewed. */ resource?: Maybe; /** The reviewer user, if applicable. */ reviewer?: Maybe; /** The ID of the reviewer, if applicable. */ reviewerId?: Maybe; /** The user being reviewed. */ user?: Maybe; /** The ID of the user being reviewed. */ userId: Scalars["UserId"]["output"]; }; /** Result of fetching resource-users being reviewed in an access review. */ export type AccessReviewResourceUsersOutput = AccessReviewNotFoundError | AccessReviewResourceUsersResult; /** Successful result containing resource-users being reviewed. */ export type AccessReviewResourceUsersResult = { __typename?: "AccessReviewResourceUsersResult"; /** List of access review resource-users. */ accessReviewResourceUsers?: Maybe>; }; /** Input for fetching all resources being reviewed in an access review. */ export type AccessReviewResourcesInput = { /** The ID of the access review. */ id: Scalars["AccessReviewId"]["input"]; }; /** Result of fetching all resources being reviewed in an access review. */ export type AccessReviewResourcesOutput = AccessReviewNotFoundError | AccessReviewResourcesResult; /** Successful result containing all resources being reviewed. */ export type AccessReviewResourcesResult = { __typename?: "AccessReviewResourcesResult"; /** List of resources being reviewed. */ accessReviewResources: Array; }; /** Successful result containing the requested access review. */ export type AccessReviewResult = { __typename?: "AccessReviewResult"; /** The requested access review. */ accessReview: AccessReview; }; /** Information about a reviewer and their progress in an access review. */ export type AccessReviewReviewer = { __typename?: "AccessReviewReviewer"; /** Number of group resources this reviewer has completed reviewing. */ completedGroupResourcesCount: Scalars["Int"]["output"]; /** Number of items this reviewer has completed reviewing. */ completedItemsCount: Scalars["Int"]["output"]; /** Number of NHIs (non-human identities) this reviewer has completed reviewing. */ completedNHIsCount: Scalars["Int"]["output"]; /** Number of users this reviewer has completed reviewing. */ completedUsersCount: Scalars["Int"]["output"]; /** List of items assigned to this reviewer with their review status. */ items?: Maybe>; /** Total number of group resources assigned to this reviewer. */ totalGroupResourcesCount: Scalars["Int"]["output"]; /** Total number of items assigned to this reviewer. */ totalItemsCount: Scalars["Int"]["output"]; /** Total number of NHIs assigned to this reviewer. */ totalNHIsCount: Scalars["Int"]["output"]; /** Total number of users assigned to this reviewer. */ totalUsersCount: Scalars["Int"]["output"]; /** The reviewer user. */ user?: Maybe; /** The ID of the reviewer user. */ userId: Scalars["UserId"]["output"]; }; /** Policy for automatically assigning reviewers to access. */ export declare enum AccessReviewReviewerAssignmentPolicy { /** Assign to the access approvers. */ ByApprovers = "BY_APPROVERS", /** Assign to all access approvers. */ ByApproversAll = "BY_APPROVERS_ALL", /** Assign to the user's manager. */ ByManager = "BY_MANAGER", /** Assign to admins of the owning team. */ ByOwningTeamAdmin = "BY_OWNING_TEAM_ADMIN", /** Assign to all admins of the owning team. */ ByOwningTeamAdminAll = "BY_OWNING_TEAM_ADMIN_ALL", /** Reviewers are assigned manually. */ Manually = "MANUALLY" } /** Filter for access review items by reviewer. */ export type AccessReviewReviewerFilter = { /** Filter by reviewer user ID. */ userId?: InputMaybe; }; /** Input for fetching a specific reviewer's assignments and progress. */ export type AccessReviewReviewerInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** The ID of the reviewer user. */ userId: Scalars["UserId"]["input"]; }; /** An item assigned to a reviewer with its review status. */ export type AccessReviewReviewerItem = { __typename?: "AccessReviewReviewerItem"; /** The item being reviewed. */ item: AccessReviewItem; /** The review status for this item. */ reviewStatus: AccessReviewItemStatus; }; /** Result of fetching a specific reviewer's information. */ export type AccessReviewReviewerOutput = { __typename?: "AccessReviewReviewerOutput"; /** The reviewer's information and progress. */ reviewer: AccessReviewReviewer; }; /** Comprehensive statistics for an ongoing or completed access review. */ export type AccessReviewStats = { __typename?: "AccessReviewStats"; /** List of reviewers who have not completed their reviews. */ incompleteReviewers: Array; /** Number of connections that have been fully reviewed. */ numConnectionsReviewed: Scalars["Int"]["output"]; /** Total number of connections in the access review. */ numConnectionsTotal: Scalars["Int"]["output"]; /** Number of group-group assignments that have been completed. */ numGroupGroupAssignmentsCompleted: Scalars["Int"]["output"]; /** Number of group-group assignments currently in review. */ numGroupGroupAssignmentsInReview: Scalars["Int"]["output"]; /** Total number of group-to-group assignments being reviewed. */ numGroupGroupAssignmentsTotal: Scalars["Int"]["output"]; /** Number of group-resource assignments that have been completed. */ numGroupResourceAssignmentsCompleted: Scalars["Int"]["output"]; /** Number of group-resource assignments currently in review. */ numGroupResourceAssignmentsInReview: Scalars["Int"]["output"]; /** Total number of group-to-resource assignments being reviewed. */ numGroupResourceAssignmentsTotal: Scalars["Int"]["output"]; /** Number of groups that have been fully reviewed. */ numGroupsReviewed: Scalars["Int"]["output"]; /** Total number of groups in the access review. */ numGroupsTotal: Scalars["Int"]["output"]; /** Number of group-group assignments the current user has completed. */ numMyGroupGroupAssignmentsCompleted: Scalars["Int"]["output"]; /** Total number of group-group assignments assigned to the current user. */ numMyGroupGroupAssignmentsTotal: Scalars["Int"]["output"]; /** Number of group-resource assignments the current user has completed. */ numMyGroupResourceAssignmentsCompleted: Scalars["Int"]["output"]; /** Total number of group-resource assignments assigned to the current user. */ numMyGroupResourceAssignmentsTotal: Scalars["Int"]["output"]; /** Number of NHI assignments the current user has completed. */ numMyNHIAssignmentsCompleted: Scalars["Int"]["output"]; /** Total number of NHI assignments assigned to the current user. */ numMyNHIAssignmentsTotal: Scalars["Int"]["output"]; /** Number of user assignments the current user has completed. */ numMyUserAssignmentsCompleted: Scalars["Int"]["output"]; /** Total number of user assignments assigned to the current user. */ numMyUserAssignmentsTotal: Scalars["Int"]["output"]; /** Number of NHI assignments that have been completed. */ numNHIAssignmentsCompleted: Scalars["Int"]["output"]; /** Number of NHI assignments currently in review. */ numNHIAssignmentsInReview: Scalars["Int"]["output"]; /** Total number of NHI (non-human identity) assignments being reviewed. */ numNHIAssignmentsTotal: Scalars["Int"]["output"]; /** Number of resources that have been fully reviewed. */ numResourcesReviewed: Scalars["Int"]["output"]; /** Total number of resources in the access review. */ numResourcesTotal: Scalars["Int"]["output"]; /** Number of reviewers who have not completed their reviews. */ numReviewersIncomplete: Scalars["Int"]["output"]; /** Total number of reviewers assigned to the access review. */ numReviewersTotal: Scalars["Int"]["output"]; /** Number of user assignments that have been completed. */ numUserAssignmentsCompleted: Scalars["Int"]["output"]; /** Number of user assignments currently in review. */ numUserAssignmentsInReview: Scalars["Int"]["output"]; /** Total number of user-to-resource assignments being reviewed. */ numUserAssignmentsTotal: Scalars["Int"]["output"]; }; /** Input for fetching access review statistics. */ export type AccessReviewStatsInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; }; /** Output union for access review statistics. */ export type AccessReviewStatsOutput = AccessReviewNotFoundError | AccessReviewStatsResult; /** Result containing access review statistics. */ export type AccessReviewStatsResult = { __typename?: "AccessReviewStatsResult"; /** Statistics for the access review. */ accessReviewStats?: Maybe; }; /** The status of an access review. */ export declare enum AccessReviewStatus { /** The access review has been completed/stopped. */ Completed = "COMPLETED", /** The access review is currently in progress. */ Started = "STARTED" } /** * Aggregates the AccessReviewItemStatus of multiple items at the summary level. * For example: AccessReviewResource (summary level) has multiple AccessReviewResourceUser (item level). */ export declare enum AccessReviewSummaryStatus { /** All items' reviews are complete. */ Completed = "COMPLETED", /** Some item(s) have warnings. Takes precedence over all other statuses. */ NeedsAttention = "NEEDS_ATTENTION", /** * Some item(s) were revoked in Opal and are awaiting end-system revocation. * Takes precedence over all other statuses besides NEEDS_ATTENTION. */ NeedsEndSystemRevocation = "NEEDS_END_SYSTEM_REVOCATION", /** * This item was updated in Opal and the resulting access request needs to be * approved. Takes precedence over all other statuses besides NEEDS_ATTENTION. */ NeedsUpdateRequestApproval = "NEEDS_UPDATE_REQUEST_APPROVAL", /** No items' reviews are complete yet. */ NotStarted = "NOT_STARTED", /** There are no items to review. */ NoReviewNeeded = "NO_REVIEW_NEEDED", /** Some items' reviews are complete. */ PartiallyCompleted = "PARTIALLY_COMPLETED" } /** Enum representing the different tabs in an access review interface. */ export declare enum AccessReviewTab { /** App/connection-centric view. */ AppsTab = "APPS_TAB", /** Group-centric view. */ GroupsTab = "GROUPS_TAB", /** Resource-centric view. */ ResourceTab = "RESOURCE_TAB", /** User-centric view. */ UsersTab = "USERS_TAB" } /** A template for recurring access reviews, defining the schedule, scope, and policies. */ export type AccessReviewTemplate = Node & RolePermissionTargetEntity & { __typename?: "AccessReviewTemplate"; /** Duration in days for how long the access review should run. */ accessReviewDuration: Scalars["Int"]["output"]; /** List of permissions the current user has on this template. */ allowedPermissions: Array; /** Timestamp when this template was created. */ createdAt: Scalars["Time"]["output"]; /** The user who created this template. */ createdByUser?: Maybe; /** The ID of the user who created this template. */ createdByUserId: Scalars["UserId"]["output"]; /** Which view (resource-first or user-first) reviewers see by default. */ endUserView: AccessReviewEndUserView; /** Filters defining the scope of the access review. */ filters?: Maybe; /** Policy for which group resources are visible to reviewers. */ groupResourceVisibilityPolicy: AccessReviewGroupResourceVisibilityPolicy; /** Unique identifier for the access review template. */ id: Scalars["UUID"]["output"]; /** Whether to include group bindings (nested groups) in the review. */ includeGroupBindings: Scalars["Boolean"]["output"]; /** Months when the access review should run (1-12). */ monthSchedule: Array; /** The name of the access review template. */ name: Scalars["String"]["output"]; /** The next scheduled time this template will create an access review. */ nextScheduledRun: Scalars["Time"]["output"]; /** Paginated list of permission sources for this template. */ permissionSources: PermissionSourceConnection; /** Whether to include the reviewer's manager in reminder notifications. */ reminderIncludeManager: Scalars["Boolean"]["output"]; /** Days before deadline when reminders should be sent. */ reminderSchedule: Array; /** Time of day when reminders should be sent. */ reminderTimeOfDay: Scalars["Time"]["output"]; /** Policy for assigning reviewers to access. */ reviewerAssignmentPolicy: AccessReviewReviewerAssignmentPolicy; /** Number of apps/connections in scope for this template. */ scopeAppsCount: Scalars["Int"]["output"]; /** Number of groups in scope for this template. */ scopeGroupsCount: Scalars["Int"]["output"]; /** Number of resources in scope for this template. */ scopeResourcesCount: Scalars["Int"]["output"]; /** Whether self-review is allowed (user reviewing their own access). */ selfReviewAllowed: Scalars["Boolean"]["output"]; /** Whether to send notifications when reviewers are assigned. */ sendReviewerAssignmentNotification: Scalars["Boolean"]["output"]; /** Day of the month when the access review should start. */ startDayOfMonth: Scalars["Int"]["output"]; /** Timezone for scheduling the access review. */ timeZone: Scalars["String"]["output"]; /** Timestamp when this template was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** A template for recurring access reviews, defining the schedule, scope, and policies. */ export type AccessReviewTemplatePermissionSourcesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; /** Input for fetching a single access review template. */ export type AccessReviewTemplateInput = { /** The ID of the access review template to fetch. */ accessReviewTemplateId: Scalars["AccessReviewTemplateId"]["input"]; }; /** Error returned when an access review template is not found. */ export type AccessReviewTemplateNotFound = Error & { __typename?: "AccessReviewTemplateNotFound"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of fetching a single access review template. */ export type AccessReviewTemplateOutput = AccessReviewTemplateNotFound | AccessReviewTemplateResult; /** Successful result containing the requested access review template. */ export type AccessReviewTemplateResult = { __typename?: "AccessReviewTemplateResult"; /** The requested access review template. */ accessReviewTemplate: AccessReviewTemplate; }; /** Result of fetching all access review templates. */ export type AccessReviewTemplatesOutput = AccessReviewTemplatesResult; /** Successful result containing all access review templates. */ export type AccessReviewTemplatesResult = { __typename?: "AccessReviewTemplatesResult"; /** List of access review templates. */ accessReviewTemplates: Array; }; /** The type of access being reviewed. */ export declare enum AccessReviewType { /** User access to a connection/app. */ ConnectionUser = "CONNECTION_USER", /** Group membership in another group. */ GroupGroup = "GROUP_GROUP", /** Group access to a resource. */ GroupResource = "GROUP_RESOURCE", /** User membership in a group. */ GroupUser = "GROUP_USER", /** Resource (NHI) access to another resource. */ ResourceResource = "RESOURCE_RESOURCE", /** User access to a resource. */ ResourceUser = "RESOURCE_USER" } /** * A unified view of an access assignment in an access review. * This represents a role assignment and will be replaced when role assignments are fully supported in access reviews. */ export type AccessReviewUnifiedAssignment = Node & { __typename?: "AccessReviewUnifiedAssignment"; /** Name of the access level. */ accessLevelName?: Maybe; /** Remote ID of the access level, if applicable. */ accessLevelRemoteID?: Maybe; /** The entity object. */ entity: AccessEntity; /** ID of the entity (resource or group) being accessed. */ entityID: Scalars["ID"]["output"]; /** The item type of the entity. */ entityItemType?: Maybe; /** Name of the entity. */ entityName: Scalars["String"]["output"]; /** Type of the entity. */ entityType: EntityType; /** Unique identifier. */ id: Scalars["UUID"]["output"]; /** The type of item. */ itemType: EntityType; /** The outcome of the review. */ outcome?: Maybe; /** The principal object. */ principal: Principal; /** ID of the principal (user, group, or resource) with access. */ principalID: Scalars["ID"]["output"]; /** Name of the principal. */ principalName: Scalars["String"]["output"]; /** Type of the principal. */ principalType: EntityType; /** List of reviewers assigned to this assignment. */ reviewerUsers: Array; /** The review status for this assignment. */ status: AccessReviewItemStatus; }; /** Paginated connection for unified assignments. */ export type AccessReviewUnifiedAssignmentConnection = PageConnection & { __typename?: "AccessReviewUnifiedAssignmentConnection"; /** List of unified assignment edges. */ edges: Array; /** Pagination information. */ pageInfo: PageInfo; /** Total count of completed assignments. */ totalCompletedCount: Scalars["Int"]["output"]; /** Total count of all assignments. */ totalCount: Scalars["Int"]["output"]; /** Total count of group-related assignments (group-user, group-resource, group-group). */ totalGroupItemAssignments: Scalars["Int"]["output"]; /** Total count of resource-to-resource (NHI) assignments. */ totalResourcePrincipalAssignments: Scalars["Int"]["output"]; /** Total count of user-to-resource assignments. */ totalUserAssignments: Scalars["Int"]["output"]; }; /** Edge type for unified assignment pagination. */ export type AccessReviewUnifiedAssignmentEdge = Edge & { __typename?: "AccessReviewUnifiedAssignmentEdge"; /** Pagination cursor. */ cursor: Scalars["String"]["output"]; /** The unified assignment node. */ node: AccessReviewUnifiedAssignment; }; /** Filters for unified assignment queries. */ export type AccessReviewUnifiedAssignmentFilters = { /** The ID of the access review. */ accessReviewID: Scalars["ID"]["input"]; /** Filter by admin owner ID. */ adminOwnerID?: InputMaybe; /** Filter by assignment status. */ assignedStatus?: InputMaybe; /** Filter to assignments where the current user can assign reviewers. */ canAssignReviewers?: InputMaybe; /** Filter by review outcome. */ outcome?: InputMaybe; /** Filter by reviewer ID. */ reviewerID?: InputMaybe; /** Search query to filter assignments. */ searchQuery?: InputMaybe; /** Filter by review status. */ status?: InputMaybe; }; /** Represents a user's consolidated access across all resources and groups in an access review. */ export type AccessReviewUser = { __typename?: "AccessReviewUser"; /** The access review this user is part of. */ accessReview?: Maybe; /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["output"]; /** Whether the current user can edit the reviewers for this user's access. */ canEditReviewers: Scalars["Boolean"]["output"]; /** List of group memberships for this user being reviewed. */ groupUsers: Array; /** List of warnings related to this user's group membership reviews. */ groupWarnings: Array; /** List of resource accesses for this user being reviewed. */ resourceUsers: Array; /** List of warnings related to this user's resource access reviews. */ resourceWarnings: Array; /** List of reviewers assigned to review this user's access. */ reviewerUsers: Array; /** The overall review status for this user's access. */ status: AccessReviewSummaryStatus; /** The user being reviewed. */ user?: Maybe; /** The ID of the user. */ userId: Scalars["UserId"]["output"]; }; /** Represents a user's access assignment being reviewed in an access review */ export type AccessReviewUserAssignment = Node & { __typename?: "AccessReviewUserAssignment"; /** The name of the access level, if applicable */ accessLevelName?: Maybe; /** The remote ID of the access level, if applicable */ accessLevelRemoteId?: Maybe; /** The ID of the access review object (can be AccessReviewGroupId, AccessReviewResourceId, or AccessReviewConnectionId) */ accessReviewObjectId: Scalars["UUID"]["output"]; /** The connection ID if the entity is a connection */ connectionId?: Maybe; /** The type of the connection if the entity is a connection */ connectionType?: Maybe; /** The entity (resource, group, or connection) that the user has access to */ entity: AccessEntity; /** The name of the entity being reviewed */ entityName: Scalars["String"]["output"]; /** The group ID if the entity is a group */ groupId?: Maybe; /** The type of the group if the entity is a group */ groupType?: Maybe; /** Unique identifier for this assignment */ id: Scalars["UUID"]["output"]; /** The outcome of this review (e.g., approved, revoked) */ outcome: AccessReviewItemOutcome; /** The name of the parent resource, if applicable */ parentResourceName?: Maybe; /** The resource ID if the entity is a resource */ resourceId?: Maybe; /** The type of the resource if the entity is a resource */ resourceType?: Maybe; /** The list of users assigned to review this assignment */ reviewerUsers?: Maybe>; /** The current status of this review item (e.g., pending, completed) */ status: AccessReviewItemStatus; /** The user whose access is being reviewed */ user: User; /** The URL of the user's avatar */ userAvatarUrl: Scalars["String"]["output"]; /** The full name of the user */ userFullname: Scalars["String"]["output"]; /** The ID of the user whose access is being reviewed */ userId: Scalars["UserId"]["output"]; }; /** Edge type for user assignment pagination */ export type AccessReviewUserAssignmentEdge = Edge & { __typename?: "AccessReviewUserAssignmentEdge"; /** Cursor for pagination */ cursor: Scalars["String"]["output"]; /** The user assignment node */ node: AccessReviewUserAssignment; }; /** Filter options for querying user assignments in an access review */ export type AccessReviewUserAssignmentFilters = { /** The ID of the access review to query assignments for */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** Filter by a specific admin owner ID */ adminOwnerId?: InputMaybe; /** Filter by assignment status (assigned or unassigned) */ assignedStatus?: InputMaybe; /** Filter to show only items where the current user has permission to assign reviewers */ canAssignReviewers?: InputMaybe; /** Filter by a specific connection ID */ connectionId?: InputMaybe; /** Filter by the outcome of the review (e.g., approved, revoked) */ outcome?: InputMaybe; /** Filter by a specific reviewer ID */ reviewerId?: InputMaybe; /** Optional search query to filter by user or entity name */ searchQuery?: InputMaybe; /** Filter by the status of the review item (e.g., pending, completed) */ status?: InputMaybe; /** Filter by a specific user ID */ userId?: InputMaybe; }; /** Paginated result set for user assignments in an access review */ export type AccessReviewUserAssignmentsResult = PageConnection & { __typename?: "AccessReviewUserAssignmentsResult"; /** The list of user assignment edges */ edges: Array; /** Pagination information */ pageInfo: PageInfo; /** The total number of edges in the current page */ totalCount: Scalars["Int"]["output"]; /** The total number of completed user assignments across all pages */ totalNumCompletedUserAssignments: Scalars["Int"]["output"]; /** The total number of user assignments across all pages */ totalNumUserAssignments: Scalars["Int"]["output"]; }; /** Filters for access review users. */ export type AccessReviewUserFilters = { /** Filter for users being reviewed by this reviewer. */ for?: InputMaybe; /** Filter by review status. */ status?: InputMaybe>; /** Filter by user's full name. */ userFullName?: InputMaybe; }; /** Input for fetching a single user's consolidated access in an access review. */ export type AccessReviewUserInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** The ID of the user. */ userId: Scalars["UserId"]["input"]; }; /** Error returned when a user is not found in the access review. */ export type AccessReviewUserNotFoundError = Error & { __typename?: "AccessReviewUserNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of fetching a single user's access in an access review. */ export type AccessReviewUserOutput = AccessReviewUserNotFoundError | AccessReviewUserResult; /** Successful result containing the user's access review information. */ export type AccessReviewUserResult = { __typename?: "AccessReviewUserResult"; /** The user's consolidated access information. */ accessReviewUser: AccessReviewUser; }; /** Error returned when a support ticket is already linked to an access review user. */ export type AccessReviewUserSupportTicketAlreadyLinkedError = Error & { __typename?: "AccessReviewUserSupportTicketAlreadyLinkedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Types of warnings that can occur during access review. */ export declare enum AccessReviewUserWarningType { /** The assigned reviewer has been deleted. */ ReviewerDeleted = "REVIEWER_DELETED", /** The reviewer does not have visibility to the item being reviewed. */ ReviewerNoVisibility = "REVIEWER_NO_VISIBILITY", /** The reviewer is reviewing their own access, which may not be allowed. */ SelfReviewNotAllowed = "SELF_REVIEW_NOT_ALLOWED" } /** Input for fetching all users being reviewed in an access review. */ export type AccessReviewUsersInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; }; /** Result of fetching all users being reviewed in an access review. */ export type AccessReviewUsersOutput = AccessReviewNotFoundError | AccessReviewUsersResult; /** Successful result containing all users being reviewed. */ export type AccessReviewUsersResult = { __typename?: "AccessReviewUsersResult"; /** List of users being reviewed with their consolidated access. */ accessReviewUsers: Array; }; /** Input for fetching all access reviews with optional filtering. */ export type AccessReviewsInput = { /** Search query to filter access reviews by name. */ searchQuery?: InputMaybe; /** * status filter: by default, accessReviews will return ALL access reviews for * the org, otherwise it will only return access reviews with the given status */ status?: InputMaybe; }; /** Result of fetching all access reviews. */ export type AccessReviewsOutput = AccessReviewsResult; /** Successful result containing all access reviews. */ export type AccessReviewsResult = { __typename?: "AccessReviewsResult"; /** List of access reviews. */ accessReviews: Array; }; /** Filters for fetching access review templates. */ export type AccessReviewsTemplateFilters = { /** Search query to filter templates by name. */ searchQuery?: InputMaybe; }; /** Complete access rule condition including rule clauses and status. */ export type AccessRuleCondition = { __typename?: "AccessRuleCondition"; /** The rule clauses defining when this condition applies. */ ruleClauses: RuleClauses; /** Current status of the access rule. */ status: AccessRuleStatus; }; /** Input for creating or updating an access rule condition. */ export type AccessRuleConditionInput = { /** The rule clauses defining when this condition applies. */ ruleClauses?: InputMaybe; /** Status to set for the access rule. */ status?: InputMaybe; }; /** Status of an access rule indicating whether it is actively enforcing access conditions. */ export declare enum AccessRuleStatus { /** Rule is actively enforcing access conditions. */ Active = "ACTIVE", /** Rule is forced to active state and will be set back to active after first sync to prevent triggering the failsafe. */ ActiveForced = "ACTIVE_FORCED", /** Rule is temporarily paused and not enforcing conditions. */ Paused = "PAUSED", /** Rule was automatically paused by the failsafe mechanism. */ PausedByFailsafe = "PAUSED_BY_FAILSAFE" } /** Scope for filtering by access properties. */ export type AccessScope = { /** Filter for assignments created after this time. */ createdAfter?: InputMaybe; /** Filter for assignments expiring after this time. */ expiresAfter?: InputMaybe; /** Whether to show hidden grants. */ showHiddenGrants?: InputMaybe; /** Filter for assignments with specific vulnerabilities. */ vulnerabilities?: InputMaybe>; }; /** Access statistics showing how many users with similar attributes have access to an entity. */ export type AccessStats = { /** Number of users with the same manager who have access. */ managerAccessCount?: Maybe; /** Number of users on the same team who have access. */ teamAccessCount?: Maybe; /** Number of users with the same title who have access. */ titleAccessCount?: Maybe; /** Total number of users who have access. */ totalAccessCount?: Maybe; }; export type AccessibleItem = { accessStats?: Maybe; createdAt: Scalars["Time"]["output"]; id: Scalars["UUID"]["output"]; isManaged: Scalars["Boolean"]["output"]; name: Scalars["String"]["output"]; updatedAt: Scalars["Time"]["output"]; visibility: Visibility; }; /** Input for querying active group request configurations. */ export type ActiveGroupRequestConfigurationInput = { /** List of groups and access levels to get configurations for. */ groupInputs: Array; /** Target user ID to check configurations for. */ targetUserId?: InputMaybe; }; /** Input for querying active resource request configurations. */ export type ActiveResourceRequestConfigurationInput = { /** List of resources and access levels to get configurations for. */ resourceInputs: Array; /** Target user ID to check configurations for. */ targetUserId?: InputMaybe; }; /** Filter events by actor (user who performed the action). */ export type ActorFilter = { /** ID of the user who performed the action. */ userId: Scalars["UserId"]["input"]; }; /** Input for adding large amounts of test data to an organization. */ export type AddBigDataInput = { /** Number of app-user assignments to create. */ appUsersCount: Scalars["Int"]["input"]; /** Number of apps to create. */ appsCount: Scalars["Int"]["input"]; /** Number of app resources to create. */ appsResourcesCount?: Scalars["Int"]["input"]; /** Number of app visibility groups to create. */ appsVisibilityGroupsCount?: InputMaybe; /** Number of bundle-group associations to create. */ bundleGroupsCount: Scalars["Int"]["input"]; /** Number of bundle-resource associations to create. */ bundleResourcesCount: Scalars["Int"]["input"]; /** Number of bundles to create. */ bundlesCount: Scalars["Int"]["input"]; /** Number of group-resource assignments to create. */ groupResourcesCount: Scalars["Int"]["input"]; /** Number of group-user memberships to create. */ groupUsersCount: Scalars["Int"]["input"]; /** Number of groups to create. */ groupsCount: Scalars["Int"]["input"]; /** Number of group visibility groups to create. */ groupsVisibilityGroupsCount?: InputMaybe; /** Number of owner-user assignments to create. */ ownerUsersCount: Scalars["Int"]["input"]; /** Number of owners to create. */ ownersCount: Scalars["Int"]["input"]; /** Number of access requests to create. */ requestsCount: Scalars["Int"]["input"]; /** Number of resource-user assignments to create. */ resourceUsersCount: Scalars["Int"]["input"]; /** Number of resources to create. */ resourcesCount: Scalars["Int"]["input"]; /** Number of resource visibility groups to create. */ resourcesVisibilityGroupsCount?: InputMaybe; /** Number of sessions to create. */ sessionsCount: Scalars["Int"]["input"]; /** Number of tags to create. */ tagsCount: Scalars["Int"]["input"]; /** Number of users to create. */ usersCount: Scalars["Int"]["input"]; }; /** Output type for addBigData mutation. */ export type AddBigDataOutput = AddBigDataResult; /** Result of adding big data operation. */ export type AddBigDataResult = { __typename?: "AddBigDataResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for adding a single connection user. */ export type AddConnectionUserInput = { /** ID of the connection. */ connectionId: Scalars["ConnectionId"]["input"]; /** ID of the user to add. */ userId: Scalars["UserId"]["input"]; }; /** Input for adding connection users. */ export type AddConnectionUsersInput = { /** List of connection user associations to create. */ connectionUsers: Array; }; /** Output type for addConnectionUsers mutation. */ export type AddConnectionUsersOutput = AddConnectionUsersResult | ConnectionNotFoundError | ConnectionUserAlreadyExists; /** Result of adding connection users. */ export type AddConnectionUsersResult = { __typename?: "AddConnectionUsersResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; /** ID of the push task created to propagate the changes. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for adding a single resource to a group. */ export type AddGroupResourceInput = { /** Level of access to grant. */ accessLevel: ResourceAccessLevelInput; /** Optional duration in minutes for temporary access. */ durationInMinutes?: InputMaybe; /** ID of the group to add the resource to. */ groupId: Scalars["GroupId"]["input"]; /** ID of the resource to add. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Result for a single group-resource addition. */ export type AddGroupResourcesEntryOutput = AddGroupResourcesEntryResult; /** Successful result for a single group-resource addition. */ export type AddGroupResourcesEntryResult = { __typename?: "AddGroupResourcesEntryResult"; /** The created group-resource association. */ groupResource: GroupResource; }; /** Input for adding multiple resources to groups. */ export type AddGroupResourcesInput = { /** List of group-resource associations to create. */ groupResources: Array; }; /** Result of adding resources to groups. */ export type AddGroupResourcesOutput = AddGroupResourcesResult | CallToWebhookFailedError | GroupNotFoundError | GroupResourceAlreadyExists | UserFacingError; /** Successful result of adding resources to groups. */ export type AddGroupResourcesResult = { __typename?: "AddGroupResourcesResult"; /** Results for each group-resource association. */ entries: Array; /** ID of the push task for propagating changes to the remote system. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for adding a single tag to a group. */ export type AddGroupTagInput = { /** ID of the group to tag. */ groupId: Scalars["GroupId"]["input"]; /** ID of the tag to add. */ tagId: Scalars["TagId"]["input"]; }; /** Output for a single tag addition. */ export type AddGroupTagsEntryOutput = AddGroupTagsEntryResult; /** Result of adding a single tag to a group. */ export type AddGroupTagsEntryResult = { __typename?: "AddGroupTagsEntryResult"; /** The created group tag association. */ groupTag: GroupTag; }; /** Input for adding tags to groups. */ export type AddGroupTagsInput = { /** List of group-tag associations to add. */ groupTags: Array; }; /** Output for adding tags to groups. */ export type AddGroupTagsOutput = AddGroupTagsResult | GroupNotFoundError | TagNotFoundError; /** Result of adding tags to groups. */ export type AddGroupTagsResult = { __typename?: "AddGroupTagsResult"; /** List of results for each tag addition. */ entries: Array; }; /** Input for adding a single user to a group. */ export type AddGroupUserInput = { /** Level of access to grant. */ accessLevel: GroupAccessLevelInput; /** Optional duration in minutes for temporary access. */ durationInMinutes?: InputMaybe; /** ID of the group to add the user to. */ groupId: Scalars["GroupId"]["input"]; /** ID of the user to add. */ userId: Scalars["UserId"]["input"]; }; /** Result for a single user-group addition. */ export type AddGroupUsersEntryOutput = AddGroupUsersEntryResult; /** Successful result for a single user-group addition. */ export type AddGroupUsersEntryResult = { __typename?: "AddGroupUsersEntryResult"; /** The created user-group association. */ groupUser: GroupUser; }; /** Input for adding multiple users to groups. */ export type AddGroupUsersInput = { /** List of user-group associations to create. */ groupUsers: Array; }; /** Result of adding users to groups. */ export type AddGroupUsersOutput = AddGroupUsersResult | CallToWebhookFailedError | CannotAddSystemUserToGroupError | GroupNotFoundError | GroupUserAlreadyExists; /** Successful result of adding users to groups. */ export type AddGroupUsersResult = { __typename?: "AddGroupUsersResult"; /** Results for each user-group association. */ entries: Array; /** ID of the push task for propagating changes to the remote system. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for adding IDP group mappings to an app resource. */ export type AddIdpGroupMappingsInput = { /** ID of the app resource to add mappings to. */ appResourceId: Scalars["ResourceId"]["input"]; /** List of mappings to add. */ mappings: Array; }; /** Input for adding a single resource tag. */ export type AddResourceTagInput = { /** The resource ID to tag. */ resourceId: Scalars["ResourceId"]["input"]; /** The tag ID to add. */ tagId: Scalars["TagId"]["input"]; }; /** Result for a single resource tag addition. */ export type AddResourceTagsEntryOutput = AddResourceTagsEntryResult; /** Successfully added a resource tag. */ export type AddResourceTagsEntryResult = { __typename?: "AddResourceTagsEntryResult"; /** The created resource tag. */ resourceTag: ResourceTag; }; /** Input for adding resource tags. */ export type AddResourceTagsInput = { /** List of resource tags to add. */ resourceTags: Array; }; /** Result of adding resource tags. */ export type AddResourceTagsOutput = AddResourceTagsResult | ResourceNotFoundError | TagNotFoundError; /** Successfully added resource tags. */ export type AddResourceTagsResult = { __typename?: "AddResourceTagsResult"; /** Results for each resource tag added. */ entries: Array; }; /** Input for adding a single resource user. */ export type AddResourceUserInput = { /** The access level to grant. */ accessLevel: ResourceAccessLevelInput; /** Duration of the access in minutes (if temporary). */ durationInMinutes?: InputMaybe; /** The resource ID. */ resourceId: Scalars["ResourceId"]["input"]; /** The user ID to grant access to. */ userId: Scalars["UserId"]["input"]; }; /** Result for a single resource user addition. */ export type AddResourceUsersEntryOutput = AddResourceUsersEntryResult; /** Successfully added a resource user. */ export type AddResourceUsersEntryResult = { __typename?: "AddResourceUsersEntryResult"; /** The created resource user. */ resourceUser: ResourceUser; }; /** Input for adding resource users. */ export type AddResourceUsersInput = { /** List of resource users to add. */ resourceUsers: Array; }; /** Result of adding resource users. */ export type AddResourceUsersOutput = AddResourceUsersResult | CallToWebhookFailedError | CannotAddSystemUserToResourceError | OpalGlobalImpersonationResourceDirectAddNotAllowedError | ResourceNotFoundError | ResourceUserAlreadyExists; /** Successfully added resource users. */ export type AddResourceUsersResult = { __typename?: "AddResourceUsersResult"; /** Results for each resource user added. */ entries: Array; /** The push task ID for propagating the changes. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for adding a role assignment. */ export type AddRoleAssignmentInput = { /** The level of access to grant. */ accessLevel: AccessLevelInput; /** Optional duration of the access in minutes. */ durationInMinutes?: InputMaybe; /** The ID of the entity (resource or group) to grant access to. */ entityID: Scalars["EntityId"]["input"]; /** The type of the entity. */ entityType: EntityType; /** The ID of the principal (user or group) to grant access. */ principalID: Scalars["EntityId"]["input"]; /** The type of the principal. */ principalType: EntityType; }; /** Result of adding a single role assignment. */ export type AddRoleAssignmentsEntryOutput = AddRoleAssignmentsEntryResult; /** Successful result of adding a single role assignment. */ export type AddRoleAssignmentsEntryResult = { __typename?: "AddRoleAssignmentsEntryResult"; /** The added role assignment. */ roleAssignment: RoleAssignment; }; /** Input for adding multiple role assignments. */ export type AddRoleAssignmentsInput = { /** The list of role assignments to add. */ roleAssignments: Array; }; /** Result of adding role assignments. */ export type AddRoleAssignmentsOutput = AddRoleAssignmentsResult | GroupNestingNotAllowedError | RoleAssignmentAlreadyExists | UserFacingError; /** Successful result of adding role assignments. */ export type AddRoleAssignmentsResult = { __typename?: "AddRoleAssignmentsResult"; /** The added role assignments. */ entries: Array; /** IDs of push tasks initiated to propagate changes. */ taskIds: Array; }; /** Input for adding a single user tag. */ export type AddUserTagInput = { /** The tag ID to associate. */ tagId: Scalars["TagId"]["input"]; /** The user ID to associate the tag with. */ userId: Scalars["UserId"]["input"]; }; /** Result of adding a single user tag. */ export type AddUserTagsEntryOutput = AddUserTagsEntryResult; /** Successful result of adding a single user tag. */ export type AddUserTagsEntryResult = { __typename?: "AddUserTagsEntryResult"; /** The created user tag association. */ userTag: UserTag; }; /** Input for adding multiple user tags. */ export type AddUserTagsInput = { /** List of user tags to add. */ userTags: Array; }; /** Result of adding user tags. */ export type AddUserTagsOutput = AddUserTagsResult | TagNotFoundError | UserNotFoundError; /** Successful result of adding user tags. */ export type AddUserTagsResult = { __typename?: "AddUserTagsResult"; /** List of added user tag associations. */ entries: Array; }; /** Error indicating admin approval requires a reason. */ export type AdminApproveRequiresReasonError = Error & { __typename?: "AdminApproveRequiresReasonError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Input for admin revoking all unreviewed assignments. */ export type AdminRevokeUnreviewedAssignmentsInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; }; /** Result of admin revoking unreviewed assignments. */ export type AdminRevokeUnreviewedAssignmentsOutput = { __typename?: "AdminRevokeUnreviewedAssignmentsOutput"; /** Number of assignments that were revoked. */ revokedCount: Scalars["Int"]["output"]; }; /** Input for filtering by admin owners. */ export type AdminsFilterInput = { /** List of admin owner IDs to filter by. */ adminIDs: Array; }; /** Internal admin roles that can be assigned to users for testing and development purposes. */ export declare enum AldwinRole { /** Full administrative access. */ Admin = "ADMIN", /** Auditor access for reviewing access patterns. */ Auditor = "AUDITOR", /** Global requester role allowing requests across all resources. */ GlobalRequester = "GLOBAL_REQUESTER", /** Read-only administrative access. */ ReadOnlyAdmin = "READ_ONLY_ADMIN" } /** Result of checking if organization creation is allowed. */ export type AllowedToCreateOrganizationsOutput = AllowedToCreateOrganizationsResult; /** Whether the user is allowed to create organizations. */ export type AllowedToCreateOrganizationsResult = { __typename?: "AllowedToCreateOrganizationsResult"; /** Whether organization creation is allowed. */ allowed: Scalars["Boolean"]["output"]; }; /** Output type for checking if user is allowed to use internal admin features. */ export type AllowedToUseAldwinOutput = AllowedToUseAldwinResult; /** Result indicating if user is allowed to use internal admin features. */ export type AllowedToUseAldwinResult = { __typename?: "AllowedToUseAldwinResult"; /** Whether the user is allowed to use internal admin features. */ allowed: Scalars["Boolean"]["output"]; }; export type AnthropicConnectionCredentialsInput = { adminKey: Scalars["String"]["input"]; }; export type AnthropicConnectionMetadata = { __typename?: "AnthropicConnectionMetadata"; placeholder?: Maybe; }; export declare enum ApiAccessLevel { FullAccess = "FULL_ACCESS", ReadOnly = "READ_ONLY" } export declare enum ApiAuthType { Admin = "ADMIN", Auth = "AUTH", InternalMaybeAuth = "INTERNAL_MAYBE_AUTH", NonAdminDangerouslyAllowImpersonation = "NON_ADMIN_DANGEROUSLY_ALLOW_IMPERSONATION", OnPrem = "ON_PREM", Presigned = "PRESIGNED", ReadOnlyAdmin = "READ_ONLY_ADMIN", Unauth = "UNAUTH" } /** Filter events by API token. */ export type ApiTokenFilter = { /** Label of the API token. */ apiTokenLabel: Scalars["String"]["input"]; /** Preview of the API token value. */ apiTokenPreview: Scalars["String"]["input"]; }; /** Represents an application in the catalog that groups resources and groups. */ export type App = { __typename?: "App"; /** The underlying app data (Okta resource or connection). */ app: AppData; /** Number of groups with access to items in this app. */ groupAccessCount: Scalars["Int"]["output"]; /** Unique identifier for the app. */ id: Scalars["UUID"]["output"]; /** Get list of item types available in this app with counts. */ itemTypes: Array; /** Get items (resources and groups) in this app. */ items: AppItemsOutput; /** Name of the application. */ name: Scalars["String"]["output"]; /** * Get remote items that haven't been imported yet. Deprecated - use items instead. * @deprecated everything should have import-all now, use items instead */ remoteItems: RemoteAppItemsOutput; /** Total number of resources in this app. */ resourceCount: Scalars["Int"]["output"]; /** Security threats associated with this app. */ threats: Array; /** Number of users with access to items in this app. */ userAccessCount: Scalars["Int"]["output"]; /** Visibility setting for this app. */ visibility: Visibility; }; /** Represents an application in the catalog that groups resources and groups. */ export type AppItemTypesArgs = { access: AccessOption; ancestorResourceId?: InputMaybe; excludeComputedGroups?: InputMaybe; parentResourceId?: InputMaybe; showHiddenFromCatalog?: InputMaybe; }; /** Represents an application in the catalog that groups resources and groups. */ export type AppItemsArgs = { input: AppItemsInput; }; /** Represents an application in the catalog that groups resources and groups. */ export type AppRemoteItemsArgs = { input: RemoteAppItemsInput; }; /** Categories for organizing and filtering applications in the catalog. */ export declare enum AppCategory { /** All applications regardless of category. */ All = "ALL", /** Applications synced from Azure AD. */ AzureApp = "AZURE_APP", /** Cloud infrastructure providers (AWS, GCP, Azure). */ CloudProviders = "CLOUD_PROVIDERS", /** Custom applications and integrations. */ Custom = "CUSTOM", /** Database systems and services. */ Databases = "DATABASES", /** Developer tools and platforms. */ DeveloperTools = "DEVELOPER_TOOLS", /** Human resources systems. */ HrSystems = "HR_SYSTEMS", /** Identity and access management systems. */ Identity = "IDENTITY", /** Applications synced from Okta. */ OktaApp = "OKTA_APP", /** Software-as-a-Service applications. */ SaasApps = "SAAS_APPS" } /** Paginated connection of apps. */ export type AppConnection = PageConnection & { __typename?: "AppConnection"; /** List of app edges. */ edges: Array; /** Pagination information. */ pageInfo: PageInfo; /** Total number of apps matching the query. */ totalCount: Scalars["Int"]["output"]; }; /** Union of application data types. */ export type AppData = ConnectionApp | OktaResourceApp; /** Edge type for app connections in paginated results. */ export type AppEdge = Edge & { __typename?: "AppEdge"; /** Cursor for this edge. */ cursor: Scalars["String"]["output"]; /** The app entity. */ node: AppEntity; }; export type AppEntity = { accessStats?: Maybe; associatedItems: AssociatedItemConnection; displayName: Scalars["String"]["output"]; healthStatus?: Maybe; id: Scalars["UUID"]["output"]; imageUrl?: Maybe; isHiddenFromCatalog: Scalars["Boolean"]["output"]; maxDirectUsersAllowed?: Maybe; totalGroupAccessCount: Scalars["Int"]["output"]; totalNHIAccessCount: Scalars["Int"]["output"]; totalResourceCount: Scalars["Int"]["output"]; totalUserAccessCount: Scalars["Int"]["output"]; visibility: Visibility; }; export type AppEntityAccessStatsArgs = { for?: InputMaybe; }; export type AppEntityAssociatedItemsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; /** Input for identifying an application. */ export type AppIdInput = { /** ID of the application. */ id: Scalars["UUID"]["input"]; /** Type of the application. */ type: AppType; }; /** Information about the Opal application deployment and configuration. */ export type AppInfo = { __typename?: "AppInfo"; /** Whether any organization exists in this Opal instance. */ doesAnyOrgExist: Scalars["Boolean"]["output"]; /** Environment name (e.g., production, staging, development). */ environment: Scalars["String"]["output"]; /** Whether this is an on-premises deployment. */ isOnPrem: Scalars["Boolean"]["output"]; /** Whether this Opal instance is air-gapped (no internet connectivity). */ isOpalAirgapped: Scalars["Boolean"]["output"]; /** Whether remote logging to Opal cloud is enabled. */ isRemoteLoggingEnabled: Scalars["Boolean"]["output"]; /** Name of the customer for on-premises deployments. */ onPremCustomerName: Scalars["String"]["output"]; /** Version number of the Opal application. */ version: Scalars["String"]["output"]; }; /** Output type for appInfo query. */ export type AppInfoOutput = AppInfoResult; /** Result containing application information. */ export type AppInfoResult = { __typename?: "AppInfoResult"; /** Application information. */ appInfo: AppInfo; }; /** An item within an application (resource, group, or IDP group mapping). */ export type AppItem = { __typename?: "AppItem"; /** Group object if this item is a group. */ group?: Maybe; /** IDP group mapping if this item is an IDP group mapping. */ idpGroupMapping?: Maybe; /** Unique key for this item. */ key: Scalars["String"]["output"]; /** Resource object if this item is a resource. */ resource?: Maybe; }; /** Information about an item type within an app. */ export type AppItemType = { __typename?: "AppItemType"; /** Applied filters for this item type count. */ appliedFilters: AppItemTypeAppliedFilters; /** Number of items of this type. */ count: Scalars["Int"]["output"]; /** Human-readable display text for the item type. */ displayText: Scalars["String"]["output"]; /** Unique identifier for the item type. */ itemType: Scalars["String"]["output"]; }; export type AppItemTypeAppliedFilters = { __typename?: "AppItemTypeAppliedFilters"; /** Filter by access type. */ access: AccessOption; /** Filter by ancestor resource ID. */ ancestorResourceId?: Maybe; /** ID of the app. */ appID: Scalars["UUID"]["output"]; /** Whether to exclude computed groups. */ excludeComputedGroups?: Maybe; /** Filter by parent resource ID. */ parentResourceId?: Maybe; /** Whether to show items hidden from catalog. */ showHiddenFromCatalog?: Maybe; }; export type AppItemsAppliedFilters = { __typename?: "AppItemsAppliedFilters"; /** Filter by access type. */ access: AccessOption; /** Filter by ancestor resource ID. */ ancestorResourceId?: Maybe; /** Exclude computed groups from results. */ excludeComputedGroups?: Maybe; /** * Filter by specific group IDs. Used to load specific items for callbacks like * import. Ignored if searchQuery is set. Not applicable to Okta apps. */ groupIds?: Maybe>; /** Whether the connection has V3 import support. */ hasV3?: Maybe; /** Whether to include groups in results. */ includeGroups?: Maybe; /** Include only requestable items. */ includeOnlyRequestable?: Maybe; /** Include only unmanaged items. */ includeOnlyUnmanaged?: Maybe; /** Include only items visible to end users. */ includeOnlyVisibleToEndUsers?: Maybe; /** Filter by specific item type. */ itemType?: Maybe; /** Number of items per page. */ numItemsPerPage?: Maybe; /** Filter by parent resource ID. */ parentResourceId?: Maybe; /** Filter items requestable for a specific user. */ requestableFor?: Maybe; /** * Filter by specific resource IDs. Used to load specific items for callbacks * like import. Ignored if searchQuery is set. Not applicable to Okta apps. */ resourceIds?: Maybe>; /** Search query to filter items by name. */ searchQuery?: Maybe; /** Show items that are hidden from the catalog. */ showHiddenFromCatalog?: Maybe; }; /** Filters for app items. */ export type AppItemsFilters = { /** Search query to filter items by name. */ searchQuery?: InputMaybe; }; /** Input for querying items within an application. */ export type AppItemsInput = { /** Filter by access type. */ access: AccessOption; /** Filter by ancestor resource ID. */ ancestorResourceId?: InputMaybe; /** Pagination cursor. */ cursor?: InputMaybe; /** Exclude computed groups from results. */ excludeComputedGroups?: InputMaybe; /** * Filter by specific group IDs. Used to load specific items for callbacks like * import. Ignored if searchQuery is set. Not applicable to Okta apps. */ groupIds?: InputMaybe>; /** Whether the connection has V3 import support. */ hasV3?: InputMaybe; /** Whether to include groups in results. */ includeGroups?: InputMaybe; /** Include only requestable items. */ includeOnlyRequestable?: InputMaybe; /** Include only unmanaged items. */ includeOnlyUnmanaged?: InputMaybe; /** Include only items visible to end users. */ includeOnlyVisibleToEndUsers?: InputMaybe; /** Filter by specific item type. */ itemType?: InputMaybe; /** Number of items per page. */ numItemsPerPage?: InputMaybe; /** Filter by parent resource ID. */ parentResourceId?: InputMaybe; /** Filter items requestable for a specific user. */ requestableFor?: InputMaybe; /** * Filter by specific resource IDs. Used to load specific items for callbacks * like import. Ignored if searchQuery is set. Not applicable to Okta apps. */ resourceIds?: InputMaybe>; /** Search query to filter items by name. */ searchQuery?: InputMaybe; /** Show items that are hidden from the catalog. */ showHiddenFromCatalog?: InputMaybe; /** Sort configuration. */ sortBy?: InputMaybe; }; /** Paginated output of app items. */ export type AppItemsOutput = { __typename?: "AppItemsOutput"; /** ID of the app this page of items belongs to. */ appID: Scalars["ConnectionId"]["output"]; /** filters applied to this connection. */ appliedFilters: AppItemsAppliedFilters; /** Cursor for fetching the next page. */ cursor?: Maybe; /** List of items in this page. */ items?: Maybe>; /** Total number of items matching the query. */ totalNumItems: Scalars["Int"]["output"]; }; /** Sort configuration for app items. */ export type AppItemsSortBy = { /** Sort direction. */ direction?: InputMaybe; /** Field to sort by. */ field?: InputMaybe; }; /** Fields by which app items can be sorted. */ export declare enum AppItemsSortByField { /** Sort by creation timestamp. */ CreatedAt = "CREATED_AT", /** Sort by item name. */ Name = "NAME", /** Sort by remote ID in the source system. */ RemoteId = "REMOTE_ID" } /** Error returned when an app is not found. */ export type AppNotFoundError = Error & { __typename?: "AppNotFoundError"; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** Output type for app query. */ export type AppOutput = App | AppNotFoundError; /** Type of application. */ export declare enum AppType { /** Native Opal connection-based app. */ Native = "NATIVE", /** Okta-synced application. */ Okta = "OKTA" } /** Input for approving a request. */ export type ApproveRequestInput = { /** Optional comment */ comment?: InputMaybe; /** ID of the request to approve */ id: Scalars["RequestId"]["input"]; /** Decision level */ level?: InputMaybe; }; /** Result or error for approve request operation. */ export type ApproveRequestOutput = AwsRoleCreationError | AwsRolePolicyInvalidError | AdminApproveRequiresReasonError | ApproveRequestResult | GroupNestingNotAllowedError | MfaInvalidError | OrganizationInReadOnlyModeError | RequestAlreadyActionedError | RequestNotFoundError; /** Successful result of approving a request. */ export type ApproveRequestResult = { __typename?: "ApproveRequestResult"; /** The approved request */ request: Request; /** ID of the provisioning task, if applicable */ taskId?: Maybe; }; /** Filters for querying applications in the catalog. */ export type AppsFilters = { /** Filter by access type. */ access?: InputMaybe; /** Filter by app category. */ appCategory?: InputMaybe; /** Hide apps with no resources or groups. */ hideEmpty?: InputMaybe; /** When access is REQUESTABLE, specify which user to check requestability for. */ requestableFor?: InputMaybe; /** Search query to filter apps by name. */ searchQuery?: InputMaybe; /** Whether to show apps hidden from the catalog. */ showHiddenFromCatalog?: InputMaybe; }; /** Sort configuration for applications list. */ export type AppsSortBy = { /** Sort direction (ascending or descending). */ direction: SortDirection; /** Field to sort by. */ field: AppsSortByField; }; /** Fields by which applications can be sorted. */ export declare enum AppsSortByField { /** Sort by application name. */ Name = "NAME", /** Sort by number of resources in the application. */ ResourceCount = "RESOURCE_COUNT", /** Sort by application source/type. */ Source = "SOURCE", /** Sort by visibility setting. */ Visiblity = "VISIBLITY" } /** Sorting options for access review assignments */ export type AssignmentsSortBy = { /** The direction to sort (ascending or descending) */ direction?: InputMaybe; /** The field to sort by */ field?: InputMaybe; }; /** Fields available for sorting access review assignments */ export declare enum AssignmentsSortByField { /** Sort by the name of the entity being reviewed */ EntityName = "ENTITY_NAME", /** Sort by the name of the principal (user, group, or resource) */ PrincipalName = "PRINCIPAL_NAME", /** Sort by the name of the assigned reviewer */ ReviewerName = "REVIEWER_NAME", /** Sort by the type of the entity */ Type = "TYPE" } export type AssociatedItemConnection = PageConnection & { __typename?: "AssociatedItemConnection"; edges: Array; pageInfo: PageInfo; totalCount: Scalars["Int"]["output"]; }; export type AssociatedItemEdge = { cursor: Scalars["String"]["output"]; node: AccessibleItem; }; export type AssociatedItemsFilters = { access?: InputMaybe; endUserVisible?: InputMaybe; entityType?: InputMaybe; itemType?: InputMaybe; /** * If access = AccessOption.REQUESTABLE, you can specify requestableFor to get * which items are requestable for the given user. This is helpful for requests * on behalf of another user. Note that passing multiple userId for * requestableFor in the same query is not supported. */ requestableFor?: InputMaybe; searchQuery?: InputMaybe; }; export type AssociatedItemsSortBy = { direction: SortDirection; field: AssociatedItemsSortByField; }; export declare enum AssociatedItemsSortByField { CreatedAt = "CREATED_AT", ItemType = "ITEM_TYPE", Name = "NAME", Visibility = "VISIBILITY" } export type AssumeImpersonationInput = { userId: Scalars["UserId"]["input"]; }; export type AssumeImpersonationOutput = AssumeImpersonationResult; export type AssumeImpersonationResult = { __typename?: "AssumeImpersonationResult"; success: Scalars["Boolean"]["output"]; }; /** An attribute key-value pair. */ export type Attribute = { __typename?: "Attribute"; /** Attribute key */ key: Scalars["String"]["output"]; /** Attribute value */ value: Scalars["String"]["output"]; }; /** Counts of users with specific attributes. */ export type AttributeCounts = { __typename?: "AttributeCounts"; /** The attribute being counted */ attribute: Attribute; /** Total count of users with this attribute */ totalUserCountWithAttribute: Scalars["Int"]["output"]; /** Count of users with this attribute who have not used their access */ unusedUserCountWithAttribute: Scalars["Int"]["output"]; }; export type AuthCodeCallbackInput = { code: Scalars["String"]["input"]; nextUrl?: InputMaybe; state: Scalars["String"]["input"]; }; export type AuthCodeCallbackOutput = AuthCodeCallbackResult | SamlLoginRequiredError | UserAlreadyExistsInAnotherOrg | UserNotFoundError; export type AuthCodeCallbackResult = { __typename?: "AuthCodeCallbackResult"; user: AuthUser; }; /** The authentication flow type used to establish a third-party integration. */ export declare enum AuthFlowType { /** OAuth code flow requiring user authorization. */ Code = "CODE", /** Link-based authentication flow. */ Link = "LINK", /** Manual authentication using provided credentials or tokens. */ Manual = "MANUAL" } /** Information about the authentication provider configuration for Opal. */ export type AuthProviderInfo = { __typename?: "AuthProviderInfo"; /** Audience claim for JWT tokens. */ audience: Scalars["String"]["output"]; /** Client ID for OAuth/OIDC. */ clientId: Scalars["String"]["output"]; /** Domain for the authentication provider. */ domain: Scalars["String"]["output"]; /** URI to redirect to after logout. */ logoutUri: Scalars["String"]["output"]; /** Name of the authentication provider. */ providerName: Scalars["String"]["output"]; /** Redirect URI after authentication. */ redirectUri: Scalars["String"]["output"]; }; /** Output type for authProviderInfo query. */ export type AuthProviderInfoOutput = AuthProviderInfoResult | ThirdPartyClientNotFoundError; /** Result containing auth provider information. */ export type AuthProviderInfoResult = { __typename?: "AuthProviderInfoResult"; /** The auth provider configuration. */ providerInfo: AuthProviderInfo; }; /** Error indicating that auth session expiration is invalid. */ export type AuthSessionExpirationInvalidError = Error & { __typename?: "AuthSessionExpirationInvalidError"; message: Scalars["String"]["output"]; }; export declare enum AuthSessionStatus { SessionExpired = "SESSION_EXPIRED", SessionNotFound = "SESSION_NOT_FOUND", SessionValid = "SESSION_VALID" } export type AuthSessionStatusOutput = AuthSessionStatusResult; export type AuthSessionStatusResult = { __typename?: "AuthSessionStatusResult"; status: AuthSessionStatus; user?: Maybe; userImpersonator?: Maybe; }; export type AuthUser = { __typename?: "AuthUser"; isAdmin: Scalars["Boolean"]["output"]; isAuditor: Scalars["Boolean"]["output"]; isGlobalRequester: Scalars["Boolean"]["output"]; isReadOnlyAdmin: Scalars["Boolean"]["output"]; opalAdminExpirationTime?: Maybe; organization: Organization; scopedRolePermissions: Array; user: User; }; /** Error indicating that auto-cancel requests after minutes setting is invalid. */ export type AutoCancelRequestsAfterMinutesInvalidError = Error & { __typename?: "AutoCancelRequestsAfterMinutesInvalidError"; message: Scalars["String"]["output"]; }; export type AwsConnectionMetadata = { __typename?: "AwsConnectionMetadata"; success?: Maybe; }; /** AWS IAM federated session for EKS cluster access. */ export type AwsIamFederatedEksSession = AwsIamFederatedSession & { __typename?: "AwsIamFederatedEksSession"; /** The AWS access key ID. */ awsAccessKeyId: Scalars["String"]["output"]; /** The AWS secret access key. */ awsSecretAccessKey: Scalars["String"]["output"]; /** The AWS session token. */ awsSessionToken: Scalars["String"]["output"]; /** The EKS cluster name. */ clusterName: Scalars["String"]["output"]; /** The EKS cluster region. */ clusterRegion: Scalars["String"]["output"]; /** The federated ARN. */ federatedArn: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; }; /** AWS IAM federated session for RDS database access. */ export type AwsIamFederatedRdsSession = AwsIamFederatedSession & { __typename?: "AwsIamFederatedRdsSession"; /** The AWS access key ID. */ awsAccessKeyId: Scalars["String"]["output"]; /** The AWS secret access key. */ awsSecretAccessKey: Scalars["String"]["output"]; /** The AWS session token. */ awsSessionToken: Scalars["String"]["output"]; /** The database engine type. */ dbEngine: Scalars["String"]["output"]; /** The database hostname. */ dbHostname: Scalars["String"]["output"]; /** The RDS database instance ID. */ dbInstanceId: Scalars["String"]["output"]; /** The database name. */ dbName: Scalars["String"]["output"]; /** The database password. */ dbPassword: Scalars["String"]["output"]; /** The database port. */ dbPort: Scalars["Int"]["output"]; /** The database username. */ dbUser: Scalars["String"]["output"]; /** The federated ARN. */ federatedArn: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; }; /** AWS IAM federated role session with console access. */ export type AwsIamFederatedRoleSession = AwsIamFederatedSession & { __typename?: "AwsIamFederatedRoleSession"; /** The AWS access key ID. */ awsAccessKeyId: Scalars["String"]["output"]; /** URL to log in to the AWS console. */ awsLoginUrl: Scalars["String"]["output"]; /** The AWS secret access key. */ awsSecretAccessKey: Scalars["String"]["output"]; /** The AWS session token. */ awsSessionToken: Scalars["String"]["output"]; /** The federated ARN. */ federatedArn: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; }; /** AWS IAM federated session for SSM access to EC2 instances. */ export type AwsIamFederatedSsmSession = AwsIamFederatedSession & { __typename?: "AwsIamFederatedSSMSession"; /** The AWS access key ID. */ awsAccessKeyId: Scalars["String"]["output"]; /** URL to access the EC2 instance via SSM. */ awsLoginUrl: Scalars["String"]["output"]; /** The AWS secret access key. */ awsSecretAccessKey: Scalars["String"]["output"]; /** The AWS session token. */ awsSessionToken: Scalars["String"]["output"]; /** The EC2 instance ID. */ ec2InstanceId: Scalars["String"]["output"]; /** The EC2 instance region. */ ec2Region: Scalars["String"]["output"]; /** The federated ARN. */ federatedArn: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; }; /** Interface for AWS IAM federated sessions. */ export type AwsIamFederatedSession = { /** The AWS access key ID for the session. */ awsAccessKeyId: Scalars["String"]["output"]; /** The AWS secret access key for the session. */ awsSecretAccessKey: Scalars["String"]["output"]; /** The AWS session token. */ awsSessionToken: Scalars["String"]["output"]; }; /** Metadata for AWS IAM roles. */ export type AwsRoleMetadata = { __typename?: "AwsRoleMetadata"; /** Amazon Resource Name (ARN) of the role */ arn: Scalars["String"]["output"]; }; export declare enum AzureAdCloudType { Global = "GLOBAL", UsGovernment = "US_GOVERNMENT" } export type AzureAdConnectionCredentialsInput = { clientSecret: Scalars["String"]["input"]; }; export type AzureAdConnectionMetadata = { __typename?: "AzureADConnectionMetadata"; azureInfraEnabled: Scalars["Boolean"]["output"]; clientId: Scalars["String"]["output"]; cloudType: AzureAdCloudType; eventHub: Scalars["String"]["output"]; eventHubNamespace: Scalars["String"]["output"]; tenantId: Scalars["String"]["output"]; }; export type AzureAdConnectionMetadataInput = { azureInfraEnabled: Scalars["Boolean"]["input"]; clientId: Scalars["String"]["input"]; cloudType: AzureAdCloudType; eventHub: Scalars["String"]["input"]; eventHubNamespace: Scalars["String"]["input"]; tenantId: Scalars["String"]["input"]; }; /** Interface for Azure database sessions. */ export type AzureSession = { /** The database name. */ dbName: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; /** The JDBC connection URL. */ jdbcUrl: Scalars["String"]["output"]; /** The database server hostname. */ server: Scalars["String"]["output"]; }; /** Azure SQL database session. */ export type AzureSqlSession = AzureSession & { __typename?: "AzureSqlSession"; /** The database name. */ dbName: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; /** The JDBC connection URL. */ jdbcUrl: Scalars["String"]["output"]; /** The database server hostname. */ server: Scalars["String"]["output"]; }; /** Data for bar graph visualization with a label. */ export type BarGraphData = { __typename?: "BarGraphData"; /** List of data points. */ data: Array; /** Label for this bar (e.g., group name or resource name). */ label: Scalars["String"]["output"]; }; /** Basic implementation of an access point. */ export type BaseAccessPoint = AccessPoint & { __typename?: "BaseAccessPoint"; /** Access level at this point in the path. */ accessLevel?: Maybe; /** ID of the entity in this access point. */ entityId: Scalars["EntityId"]["output"]; /** Item type of the entity (e.g., ROLE, PERMISSION_SET). */ entityItemType: Scalars["String"]["output"]; /** Name of the entity in this access point. */ entityName: Scalars["String"]["output"]; /** Type of the entity in this access point. */ entityType: EntityType; /** When this access point expires, if applicable. */ expiration?: Maybe; /** ID of the principal in this access point. */ principalId: Scalars["EntityId"]["output"]; /** Name of the principal in this access point. */ principalName: Scalars["String"]["output"]; /** Type of the principal in this access point. */ principalType: EntityType; }; export type BaseEntity = { createdAt: Scalars["Time"]["output"]; id: Scalars["UUID"]["output"]; updatedAt: Scalars["Time"]["output"]; }; /** Filter for boolean fields. */ export type BooleanFilter = { /** Match boolean equal to this value. */ equals?: InputMaybe; /** Match boolean not equal to this value. */ not?: InputMaybe; }; /** Boolean field value. */ export type BooleanValue = { __typename?: "BooleanValue"; /** The boolean value */ value: Scalars["Boolean"]["output"]; }; /** Boolean field value input. */ export type BooleanValueInput = { /** The boolean value */ value: Scalars["Boolean"]["input"]; }; /** Metrics about break glass users by group. */ export type BreakGlassUsersByGroupResult = { __typename?: "BreakGlassUsersByGroupResult"; /** Bar graph data showing break glass users by group. */ barData: Array; }; /** Metrics about break glass user counts over time. */ export type BreakGlassUsersCountsResult = { __typename?: "BreakGlassUsersCountsResult"; /** Time series data for break glass user counts. */ lineData: Array; }; /** Error indicating the bulk request is too large. */ export type BulkRequestTooLargeError = Error & { __typename?: "BulkRequestTooLargeError"; /** Error message */ message: Scalars["String"]["output"]; }; export type BulkReviewerInputStage = { operator: ReviewStageOperator; ownerIds: Array; requireAdminApproval: Scalars["Boolean"]["input"]; requireManagerApproval: Scalars["Boolean"]["input"]; userIds?: InputMaybe>; }; export type BulkUpdateItemFilter = { connectionId: Scalars["ConnectionId"]["input"]; itemTypes?: InputMaybe>; searchQuery?: InputMaybe; }; export type BulkUpdateItemsInput = { fromSetup?: InputMaybe; groupIds?: InputMaybe>; importUnmanagedItems?: InputMaybe; importUnmanagedItemsFilter?: InputMaybe; resourceIds?: InputMaybe>; updateInfo: UpdateItemsInput; }; export type BulkUpdateItemsOutput = BulkUpdateItemsResult | CannotUpdateConfigurationTemplateError | GroupMaxDurationTooLargeError | GroupNotFoundError | InvalidReviewerSettingsError | InvalidUpdateGroupVisibilityGroupError | InvalidUpdateItemsInputError | InvalidUpdateResourceVisibilityGroupError | ResourceMaxDurationTooLargeError | ResourceNotFoundError | TagNotFoundError | TooManyGroupLeadersError; export type BulkUpdateItemsResult = { __typename?: "BulkUpdateItemsResult"; deferredUpdateCount: Scalars["Int"]["output"]; syncTasks?: Maybe>; updatedGroups?: Maybe>; updatedResources?: Maybe>; }; export type Bundle = BaseEntity & Node & RolePermissionTargetEntity & { __typename?: "Bundle"; adminOwner: Owner; adminOwnerId: Scalars["OwnerId"]["output"]; allowedPermissions: Array; connectionTypes?: Maybe>; createdAt: Scalars["Time"]["output"]; description?: Maybe; id: Scalars["UUID"]["output"]; items: BundleItemConnection; name: Scalars["String"]["output"]; permissionSources: PermissionSourceConnection; totalNumGroups: Scalars["Int"]["output"]; totalNumItems: Scalars["Int"]["output"]; totalNumResources: Scalars["Int"]["output"]; updatedAt: Scalars["Time"]["output"]; visibility: Visibility; visibilityGroups: Array; }; export type BundleItemsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: BundleItemsFilter; first?: InputMaybe; last?: InputMaybe; sortBy?: BundleItemsSortBy; }; export type BundlePermissionSourcesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; export type BundleConnection = PageConnection & { __typename?: "BundleConnection"; edges: Array; pageInfo: PageInfo; totalCount: Scalars["Int"]["output"]; }; export type BundleEdge = Edge & { __typename?: "BundleEdge"; cursor: Scalars["String"]["output"]; node: Bundle; }; export type BundleGroup = { __typename?: "BundleGroup"; accessLevelName: Scalars["String"]["output"]; accessLevelRemoteId: Scalars["String"]["output"]; bundleId: Scalars["BundleId"]["output"]; groupId: Scalars["GroupId"]["output"]; }; export type BundleGroupAlreadyExistsError = Error & { __typename?: "BundleGroupAlreadyExistsError"; message: Scalars["String"]["output"]; }; export type BundleGroupInput = { accessLevelName: Scalars["String"]["input"]; accessLevelRemoteId: Scalars["String"]["input"]; bundleId: Scalars["BundleId"]["input"]; groupId: Scalars["GroupId"]["input"]; }; export type BundleGroupsInput = { inputs?: InputMaybe>; }; export type BundleInput = { id: Scalars["BundleId"]["input"]; }; export type BundleItem = { __typename?: "BundleItem"; accessLevelName: Scalars["String"]["output"]; accessLevelRemoteId: Scalars["String"]["output"]; group?: Maybe; key: Scalars["String"]["output"]; resource?: Maybe; }; export type BundleItemConnection = PageConnection & { __typename?: "BundleItemConnection"; edges: Array; itemTypes: Array; pageInfo: PageInfo; totalCount: Scalars["Int"]["output"]; totalGroupsCount: Scalars["Int"]["output"]; totalResourcesCount: Scalars["Int"]["output"]; }; export type BundleItemEdge = Edge & { __typename?: "BundleItemEdge"; accessLevel: AccessLevel; cursor: Scalars["String"]["output"]; node: AccessibleItem; }; export type BundleItemsFilter = { entityType?: InputMaybe; searchQuery?: InputMaybe; }; export type BundleItemsInput = { bundleId: Scalars["BundleId"]["input"]; cursor?: InputMaybe; itemType?: InputMaybe; maxPageSize?: InputMaybe; searchQuery?: InputMaybe; sortBy?: InputMaybe; }; export type BundleItemsOutput = { __typename?: "BundleItemsOutput"; cursor?: Maybe; itemTypes?: Maybe>; items?: Maybe>; totalNumGroups: Scalars["Int"]["output"]; totalNumItems: Scalars["Int"]["output"]; totalNumResources: Scalars["Int"]["output"]; }; export type BundleItemsSortBy = { direction: SortDirection; field: BundleItemsSortByField; }; export declare enum BundleItemsSortByField { CreatedAt = "CREATED_AT", Name = "NAME", Role = "ROLE", Type = "TYPE" } export type BundleNameExistsError = Error & { __typename?: "BundleNameExistsError"; message: Scalars["String"]["output"]; }; export type BundleNotFoundError = Error & { __typename?: "BundleNotFoundError"; message: Scalars["String"]["output"]; }; export type BundleOutput = BundleNotFoundError | BundleResult; export type BundleResource = { __typename?: "BundleResource"; accessLevelName: Scalars["String"]["output"]; accessLevelRemoteId: Scalars["String"]["output"]; bundleId: Scalars["BundleId"]["output"]; resourceId: Scalars["ResourceId"]["output"]; }; export type BundleResourceAlreadyExistsError = Error & { __typename?: "BundleResourceAlreadyExistsError"; message: Scalars["String"]["output"]; }; export type BundleResourceInput = { accessLevelName: Scalars["String"]["input"]; accessLevelRemoteId: Scalars["String"]["input"]; bundleId: Scalars["BundleId"]["input"]; resourceId: Scalars["ResourceId"]["input"]; }; export type BundleResourcesInput = { inputs?: InputMaybe>; }; export type BundleResult = { __typename?: "BundleResult"; bundle: Bundle; }; /** Association between a bundle and a group that can see/request the bundle. */ export type BundleVisibilityGroup = { __typename?: "BundleVisibilityGroup"; /** ID of the bundle this visibility applies to. */ bundleId: Scalars["BundleId"]["output"]; /** When this association was created. */ createdAt: Scalars["Time"]["output"]; /** Unique identifier for this visibility group association. */ id: Scalars["BundleVisibilityGroupID"]["output"]; /** ID of the organization this association belongs to. */ organizationId: Scalars["OrganizationId"]["output"]; /** When this association was last updated. */ updatedAt: Scalars["Time"]["output"]; /** ID of the group that has visibility. */ visibilityGroupId: Scalars["GroupId"]["output"]; }; /** Error returned when a bundle visibility group is not found. */ export type BundleVisibilityGroupNotFoundError = Error & { __typename?: "BundleVisibilityGroupNotFoundError"; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** Output type for bundleVisibilityGroup query. */ export type BundleVisibilityGroupOutput = BundleVisibilityGroupNotFoundError | BundleVisibilityGroupResult; /** Input for querying a bundle visibility group. */ export type BundleVisibilityGroupQueryInput = { /** ID of the bundle visibility group to fetch. */ id: Scalars["BundleVisibilityGroupID"]["input"]; }; /** Result containing the bundle visibility group. */ export type BundleVisibilityGroupResult = { __typename?: "BundleVisibilityGroupResult"; /** The bundle visibility group. */ bundleVisibilityGroup: BundleVisibilityGroup; }; export type BundlesFilter = { bundleIds?: InputMaybe>; searchQuery?: InputMaybe; }; export type BundlesInput = { cursor?: InputMaybe; pageSize?: InputMaybe; searchQuery?: InputMaybe; sortBy?: InputMaybe; }; export type BundlesOutput = { __typename?: "BundlesOutput"; bundles: Array; cursor?: Maybe; totalNumBundles: Scalars["Int"]["output"]; }; export type BundlesSortBy = { direction: SortDirection; field: BundlesSortByField; }; export declare enum BundlesSortByField { CreatedAt = "CREATED_AT", Name = "NAME" } export type CliTokenExchangeInput = { accessToken: Scalars["String"]["input"]; state: Scalars["String"]["input"]; }; export type CliTokenExchangeOutput = { __typename?: "CLITokenExchangeOutput"; sessionID: Scalars["String"]["output"]; }; /** Error indicating that a call to the webhook endpoint failed. */ export type CallToWebhookFailedError = Error & { __typename?: "CallToWebhookFailedError"; message: Scalars["String"]["output"]; }; /** Input for canceling a request. */ export type CancelRequestInput = { /** ID of the request to cancel */ id: Scalars["RequestId"]["input"]; }; /** Result or error for cancel request operation. */ export type CancelRequestOutput = CancelRequestResult | RequestAlreadyActionedError | RequestNotFoundError; /** Successful result of canceling a request. */ export type CancelRequestResult = { __typename?: "CancelRequestResult"; /** The canceled request */ request: Request; }; /** Error returned when attempting to add a system user to a group. */ export type CannotAddSystemUserToGroupError = Error & { __typename?: "CannotAddSystemUserToGroupError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error indicating that system users cannot be added to owners. */ export type CannotAddSystemUserToOwnerError = Error & { __typename?: "CannotAddSystemUserToOwnerError"; message: Scalars["String"]["output"]; }; /** Error indicating that system users cannot be added to resources. */ export type CannotAddSystemUserToResourceError = Error & { __typename?: "CannotAddSystemUserToResourceError"; message: Scalars["String"]["output"]; }; /** Error indicating that users cannot be added to synced owners (owners synced from external systems). */ export type CannotAddUserToSyncedOwnerError = Error & { __typename?: "CannotAddUserToSyncedOwnerError"; /** The group entity of the synced owner's source group. */ group?: Maybe; /** The group ID of the synced owner's source group. */ groupId?: Maybe; message: Scalars["String"]["output"]; }; export type CannotUpdateConfigurationTemplateError = Error & { __typename?: "CannotUpdateConfigurationTemplateError"; message: Scalars["String"]["output"]; }; /** Interface for entities that can be shown or hidden in the catalog. */ export type CatalogEntity = { /** Whether this entity is hidden from the catalog view. */ isHiddenFromCatalog: Scalars["Boolean"]["output"]; }; /** Output type for catalog item query. Can be a connection, resource, group, or an error. */ export type CatalogItemOutput = Connection | Group | Resource | UserFacingError; export type CertIsTooLargeError = Error & { __typename?: "CertIsTooLargeError"; message: Scalars["String"]["output"]; }; /** Input for clearing propagation status. */ export type ClearPropagationStatusInput = { /** The access level remote ID. */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["input"]; /** The entity ID. */ entityId: Scalars["EntityId"]["input"]; /** The principal ID. */ principalId: Scalars["EntityId"]["input"]; }; /** Result of clearing propagation status. */ export type ClearPropagationStatusOutput = ClearPropagationStatusResult; /** Result of clearing propagation status. */ export type ClearPropagationStatusResult = { __typename?: "ClearPropagationStatusResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Metrics about closed requests broken down by approval type. */ export type ClosedRequestMetricsResult = { __typename?: "ClosedRequestMetricsResult"; /** Number of admin-approved requests. */ numAdminApproved: Scalars["Int"]["output"]; /** Number of auto-approved requests. */ numAutoApproved: Scalars["Int"]["output"]; /** Number of canceled requests. */ numCanceled: Scalars["Int"]["output"]; /** Number of denied requests. */ numDenied: Scalars["Int"]["output"]; /** Number of manually approved requests. */ numManualApproved: Scalars["Int"]["output"]; }; /** Input for OAuth code flow authentication. */ export type CodeFlowInput = { /** OAuth authorization code. */ code: Scalars["String"]["input"]; /** Installation ID for app-based integrations. */ installationId?: InputMaybe; /** OAuth state parameter for security validation. */ state: Scalars["String"]["input"]; }; export type CommonMetadata = { __typename?: "CommonMetadata"; matchRemoteDescription: Scalars["Boolean"]["output"]; matchRemoteName: Scalars["Boolean"]["output"]; }; export type CommonMetadataInput = { matchRemoteDescription?: InputMaybe; matchRemoteName?: InputMaybe; }; /** Association between a configuration template and a tag, with priority for automatic application. */ export type ConfigTemplateTag = { __typename?: "ConfigTemplateTag"; /** The configuration template to apply. */ configTemplate?: Maybe; /** Unique identifier for this association. */ id: Scalars["ConfigTemplateTagId"]["output"]; /** Priority order for applying this configuration template (lower numbers = higher priority). */ priority: Scalars["Int"]["output"]; /** The tag that triggers this configuration template. */ tag: Tag; }; /** Input for associating a configuration template with a tag. */ export type ConfigTemplateTagInput = { /** ID of the configuration template. */ configTemplateId: Scalars["ConfigurationId"]["input"]; /** Priority order for this association (lower = higher priority). */ priority: Scalars["Int"]["input"]; /** ID of the tag. */ tagId: Scalars["TagId"]["input"]; }; /** Output type for configTemplateTags query. */ export type ConfigTemplateTagsOutput = ConfigTemplateTagsResult; /** Result containing list of configuration template tags. */ export type ConfigTemplateTagsResult = { __typename?: "ConfigTemplateTagsResult"; /** List of configuration template tag associations. */ configTemplateTags: Array; }; /** Union of entities that can have request configurations. */ export type ConfigurableEntity = Group | Resource; export type ConfigurationInUseError = Error & { __typename?: "ConfigurationInUseError"; message: Scalars["String"]["output"]; }; export type ConfigurationTemplate = { __typename?: "ConfigurationTemplate"; adminOwner: Owner; adminOwnerId: Scalars["OwnerId"]["output"]; auditMessageChannels: Array; breakGlassUsers: Array; customRequestNotification?: Maybe; id: Scalars["ConfigurationId"]["output"]; maxDirectUsersAllowed?: Maybe; maxUsersExceededMessage?: Maybe; name: Scalars["String"]["output"]; onCallSchedules: Array; requestConfigs: Array; requireMfaToApprove: Scalars["Boolean"]["output"]; requireMfaToConnect: Scalars["Boolean"]["output"]; ticketPropagation?: Maybe; visibility: Visibility; visibilityGroups: Array; }; export type ConfigurationTemplateInput = { id: Scalars["ConfigurationId"]["input"]; }; export type ConfigurationTemplateNameExistsError = Error & { __typename?: "ConfigurationTemplateNameExistsError"; message: Scalars["String"]["output"]; }; export type ConfigurationTemplateNotFoundError = Error & { __typename?: "ConfigurationTemplateNotFoundError"; message: Scalars["String"]["output"]; }; export type ConfigurationTemplateOutput = ConfigurationTemplateNotFoundError | ConfigurationTemplateResult; export type ConfigurationTemplateResult = { __typename?: "ConfigurationTemplateResult"; configurationTemplate?: Maybe; }; export type ConfigurationTemplatesOutput = ConfigurationTemplatesResult; export type ConfigurationTemplatesResult = { __typename?: "ConfigurationTemplatesResult"; configurationTemplates: Array; }; /** Association between a configuration template and a group that can see/use the configuration. */ export type ConfigurationVisibilityGroup = { __typename?: "ConfigurationVisibilityGroup"; /** ID of the configuration template. */ configurationId: Scalars["ConfigurationId"]["output"]; /** The group object. */ visibilityGroup: Group; /** ID of the group that has visibility. */ visibilityGroupId: Scalars["GroupId"]["output"]; }; /** Error returned when a configuration visibility group is not found. */ export type ConfigurationVisibilityGroupNotFoundError = { __typename?: "ConfigurationVisibilityGroupNotFoundError"; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** Input for confirming that access has been revoked in the end system. */ export type ConfirmEndSystemRevocationInput = { /** List of access review resource-user IDs to link to a support ticket. */ linkedUARResourceUserIds?: InputMaybe>; /** List of access review resource-user IDs that have been revoked. */ revokedUARResourceUserIds: Array; /** The ID of the user to assign the ticket to. */ ticketAssigneeUserId?: InputMaybe; /** The ID of the ticket project. */ ticketProjectId?: InputMaybe; /** The third-party ticketing provider (e.g., Jira, ServiceNow). */ ticketProvider?: InputMaybe; }; /** Result of confirming end system revocation. */ export type ConfirmEndSystemRevocationOutput = AccessReviewAlreadyStoppedError | AccessReviewUserSupportTicketAlreadyLinkedError | ConfirmEndSystemRevocationResult | RemoteUserNotFoundError; /** Successful result of confirming end system revocation. */ export type ConfirmEndSystemRevocationResult = { __typename?: "ConfirmEndSystemRevocationResult"; /** List of access review resource-users that were updated. */ accessReviewResourceUsers?: Maybe>; }; export type Connection = AccessEntity & AppEntity & BaseEntity & CatalogEntity & DisplayableEntity & Node & RolePermissionTargetEntity & { __typename?: "Connection"; accessStats?: Maybe; adminOwner?: Maybe; adminOwnerId: Scalars["OwnerId"]["output"]; allowedPermissions: Array; associatedItems: AssociatedItemConnection; autoImportGroupResources: Scalars["Boolean"]["output"]; childrenDefaultConfigTemplate?: Maybe; connectionType: ConnectionType; connectionTypeMetadata: ConnectionTypeMetadata; connectionUsers: Array; createdAt: Scalars["Time"]["output"]; description: Scalars["String"]["output"]; displayName: Scalars["String"]["output"]; groups: Array; hasRequestableItems: Scalars["Boolean"]["output"]; healthStatus?: Maybe; iconUrl?: Maybe; id: Scalars["UUID"]["output"]; imageUrl?: Maybe; importNotificationOwner?: Maybe; importNotificationOwnerId?: Maybe; importSetting: ImportSetting; importVisibility: Visibility; importVisibilityGroups: Array; isDeleted: Scalars["Boolean"]["output"]; isHiddenFromCatalog: Scalars["Boolean"]["output"]; maxDirectUsersAllowed?: Maybe; metadata?: Maybe; name: Scalars["String"]["output"]; numGroups: Scalars["Int"]["output"]; numResources: Scalars["Int"]["output"]; numUsers: Scalars["Int"]["output"]; numVisibleGroups: Scalars["Int"]["output"]; numVisibleResources: Scalars["Int"]["output"]; permissionSources: PermissionSourceConnection; provisionConfigurationInfos: Array; resources: Array; totalGroupAccessCount: Scalars["Int"]["output"]; totalNHIAccessCount: Scalars["Int"]["output"]; totalResourceCount: Scalars["Int"]["output"]; totalUserAccessCount: Scalars["Int"]["output"]; updatedAt: Scalars["Time"]["output"]; validations?: Maybe>; visibility: Visibility; visibilityGroups: Array; webhookEnabled: Scalars["Boolean"]["output"]; }; export type ConnectionAccessStatsArgs = { for?: InputMaybe; }; export type ConnectionAssociatedItemsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; export type ConnectionPermissionSourcesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; /** Error returned when attempting to review a connection's access that has already been reviewed */ export type ConnectionAccessAlreadyReviewedError = Error & { __typename?: "ConnectionAccessAlreadyReviewedError"; /** Description of the error */ message: Scalars["String"]["output"]; }; /** Access statistics for a specific connection. */ export type ConnectionAccessStats = AccessStats & { __typename?: "ConnectionAccessStats"; /** ID of the connection these statistics apply to. */ connectionId: Scalars["ConnectionId"]["output"]; /** Number of users with the same manager who have access to this connection. */ managerAccessCount?: Maybe; /** Number of users on the same team who have access to this connection. */ teamAccessCount?: Maybe; /** Number of users with the same title who have access to this connection. */ titleAccessCount?: Maybe; /** Total number of users who have access to this connection. */ totalAccessCount?: Maybe; }; /** Application represented by a connection in Opal. */ export type ConnectionApp = { __typename?: "ConnectionApp"; /** The connection object. Do not query unless absolutely required. */ connection?: Maybe; /** URL of the connection icon. */ connectionIconUrl?: Maybe; /** ID of the connection representing this app. */ connectionId: Scalars["ConnectionId"]["output"]; /** Type of the connection. */ connectionType: ConnectionType; }; export type ConnectionAssociatedItemEdge = AssociatedItemEdge & Edge & { __typename?: "ConnectionAssociatedItemEdge"; cursor: Scalars["String"]["output"]; node: AccessibleItem; }; export type ConnectionBadMetadataError = Error & { __typename?: "ConnectionBadMetadataError"; message: Scalars["String"]["output"]; }; export type ConnectionCannotBeDeletedError = Error & { __typename?: "ConnectionCannotBeDeletedError"; message: Scalars["String"]["output"]; }; export type ConnectionCredentialsInput = { ad?: InputMaybe; anthropic?: InputMaybe; aws?: InputMaybe; awsSso?: InputMaybe; azureAd?: InputMaybe; coupa?: InputMaybe; cursor?: InputMaybe; customConnector?: InputMaybe; databricks?: InputMaybe; datastaxAstra?: InputMaybe; devin?: InputMaybe; duo?: InputMaybe; gcp?: InputMaybe; gitHub?: InputMaybe; gitLab?: InputMaybe; googleGroups?: InputMaybe; googleWorkspace?: InputMaybe; ilevel?: InputMaybe; incidentio?: InputMaybe; ldap?: InputMaybe; mongo?: InputMaybe; mongoAtlas?: InputMaybe; mySqlMariadb?: InputMaybe; oktaDirectory?: InputMaybe; openaiPlatform?: InputMaybe; oracleFusion?: InputMaybe; pagerDuty?: InputMaybe; postgres?: InputMaybe; salesforce?: InputMaybe; snowflake?: InputMaybe; tailscale?: InputMaybe; teleport?: InputMaybe; vault?: InputMaybe; workday?: InputMaybe; }; export type ConnectionExistsError = Error & { __typename?: "ConnectionExistsError"; message: Scalars["String"]["output"]; }; export type ConnectionImportNotificationInput = { recipientOwnerId?: InputMaybe; }; export type ConnectionInput = { id: Scalars["ConnectionId"]["input"]; }; export type ConnectionMetadataInput = { ad?: InputMaybe; aws?: InputMaybe; awsSso?: InputMaybe; azureAd?: InputMaybe; connectionType: ConnectionType; coupa?: InputMaybe; customConnector?: InputMaybe; databricks?: InputMaybe; duo?: InputMaybe; gcp?: InputMaybe; gitHub?: InputMaybe; gitLab?: InputMaybe; googleGroups?: InputMaybe; googleWorkspace?: InputMaybe; ilevel?: InputMaybe; ldap?: InputMaybe; mongo?: InputMaybe; mongoAtlas?: InputMaybe; mySqlMariadb?: InputMaybe; oktaDirectory?: InputMaybe; oracleFusion?: InputMaybe; postgres?: InputMaybe; salesforce?: InputMaybe; snowflake?: InputMaybe; tailscale?: InputMaybe; teleport?: InputMaybe; vault?: InputMaybe; workday?: InputMaybe; }; export type ConnectionMetadataOutput = AdConnectionMetadata | AwsssoConnectionMetadata | AnthropicConnectionMetadata | AwsConnectionMetadata | AzureAdConnectionMetadata | CoupaConnectionMetadata | CursorConnectionMetadata | CustomConnectorConnectionMetadata | DatabricksConnectionMetadata | DatastaxAstraConnectionMetadata | DevinConnectionMetadata | DuoConnectionMetadata | GcpConnectionMetadata | GitHubConnectionMetadata | GitLabConnectionMetadata | GoogleGroupsConnectionMetadata | GoogleWorkspaceConnectionMetadata | ILevelConnectionMetadata | IncidentioConnectionMetadata | LdapConnectionMetadata | MongoAtlasConnectionMetadata | MongoConnectionMetadata | MySqlMariaDbConnectionMetadata | OktaDirectoryConnectionMetadata | OpenaiPlatformConnectionMetadata | OracleFusionConnectionMetadata | PagerDutyConnectionMetadata | PostgresConnectionMetadata | PropagationTicketConnectionMetadata | SalesforceConnectionMetadata | SnowflakeConnectionMetadata | TailscaleConnectionMetadata | TeleportConnectionMetadata | VaultConnectionMetadata | WorkdayConnectionMetadata; export type ConnectionNotFoundError = Error & { __typename?: "ConnectionNotFoundError"; message: Scalars["String"]["output"]; }; export type ConnectionOutput = ConnectionNotFoundError | ConnectionResult; /** Preview information for a connection including user counts and review stats. */ export type ConnectionPreview = Node & { __typename?: "ConnectionPreview"; /** The connection being previewed. */ connection: Connection; /** Total number of users with access to this connection. */ connectionUserCount: Scalars["Int"]["output"]; /** Unique identifier for the connection preview. */ id: Scalars["UUID"]["output"]; /** Number of reviews associated with this connection. */ reviewCount: Scalars["Int"]["output"]; /** Truncated list of users with access to this connection. */ truncatedConnectionUsers: Array; }; /** Paginated connection type for connection previews. */ export type ConnectionPreviewConnection = PageConnection & { __typename?: "ConnectionPreviewConnection"; /** List of connection preview edges. */ edges: Array; /** Count of connections after filtering. */ filteredConnectionCount: Scalars["Int"]["output"]; /** Pagination information. */ pageInfo: PageInfo; /** Total count of all connection previews. */ totalCount: Scalars["Int"]["output"]; /** Total count of all reviews across connections. */ totalReviewCount: Scalars["Int"]["output"]; }; /** Edge type for connection preview pagination. */ export type ConnectionPreviewEdge = Edge & { __typename?: "ConnectionPreviewEdge"; /** Cursor for pagination. */ cursor: Scalars["String"]["output"]; /** The connection preview node. */ node: ConnectionPreview; }; /** Input for fetching connection previews with filtering and sorting. */ export type ConnectionPreviewInput = { /** Filters to apply to the connection list. */ filters?: FiltersInput; /** Whether to hide connections with no users. */ hideEmpty?: InputMaybe; /** Sort order for the connection list. */ sortBy: AccessReviewPreviewSortBy; }; export type ConnectionResult = { __typename?: "ConnectionResult"; connection: Connection; }; export type ConnectionSmall = { __typename?: "ConnectionSmall"; id: Scalars["ConnectionId"]["output"]; name: Scalars["String"]["output"]; }; export declare enum ConnectionType { ActiveDirectory = "ACTIVE_DIRECTORY", Anthropic = "ANTHROPIC", /** * Deprecated. Legacy integration no longer offered - use AWS_SSO instead. * @deprecated Legacy integration no longer offered - use AWS_SSO instead. */ Aws = "AWS", AwsSso = "AWS_SSO", AzureAd = "AZURE_AD", Coupa = "COUPA", Cursor = "CURSOR", Custom = "CUSTOM", CustomConnector = "CUSTOM_CONNECTOR", Databricks = "DATABRICKS", DatastaxAstra = "DATASTAX_ASTRA", Devin = "DEVIN", Duo = "DUO", Gcp = "GCP", GitHub = "GIT_HUB", GitLab = "GIT_LAB", GoogleGroups = "GOOGLE_GROUPS", GoogleWorkspace = "GOOGLE_WORKSPACE", Ilevel = "ILEVEL", Incidentio = "INCIDENTIO", Ldap = "LDAP", Mariadb = "MARIADB", Mongo = "MONGO", MongoAtlas = "MONGO_ATLAS", Mysql = "MYSQL", OktaCiam = "OKTA_CIAM", OktaDirectory = "OKTA_DIRECTORY", Opal = "OPAL", OpenaiPlatform = "OPENAI_PLATFORM", OracleFusion = "ORACLE_FUSION", Pagerduty = "PAGERDUTY", Postgres = "POSTGRES", Salesforce = "SALESFORCE", Snowflake = "SNOWFLAKE", Tailscale = "TAILSCALE", Teleport = "TELEPORT", Vault = "VAULT", Workday = "WORKDAY" } export type ConnectionTypeMetadata = { __typename?: "ConnectionTypeMetadata"; ingestsRemoteUsers: Scalars["Boolean"]["output"]; }; export type ConnectionUnhealthyError = Error & { __typename?: "ConnectionUnhealthyError"; message: Scalars["String"]["output"]; validations: Array; }; /** Association between a connection and a user who has been provisioned to that connection. */ export type ConnectionUser = { __typename?: "ConnectionUser"; /** ID of the connection. */ connectionId: Scalars["ConnectionId"]["output"]; /** Status of propagating this user to the connection. */ propagationStatus?: Maybe; /** The user object. */ user?: Maybe; /** ID of the user. */ userId: Scalars["UserId"]["output"]; }; /** Error returned when trying to add a connection user that already exists. */ export type ConnectionUserAlreadyExists = Error & { __typename?: "ConnectionUserAlreadyExists"; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** Error returned when a connection user is not found. */ export type ConnectionUserNotFound = Error & { __typename?: "ConnectionUserNotFound"; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** Propagation status for a connection user. */ export type ConnectionUserPropagationStatus = { __typename?: "ConnectionUserPropagationStatus"; /** The connection ID. */ connectionId: Scalars["ConnectionId"]["output"]; /** Error message if the propagation failed. */ errorMessage?: Maybe; /** When the propagation was last synced. */ lastSynced: Scalars["Time"]["output"]; /** The status code of the propagation. */ statusCode: PropagationStatusCode; /** The type of propagation task. */ taskType: PropagationTaskType; /** The user ID. */ userId: Scalars["UserId"]["output"]; }; /** Result of a connection user push task. */ export type ConnectionUserPushTaskResult = { __typename?: "ConnectionUserPushTaskResult"; /** Propagation statuses for connection users. */ propStatuses: Array; }; export type ConnectionValidation = { __typename?: "ConnectionValidation"; connectionId?: Maybe; createdAt?: Maybe; description?: Maybe; errorMessage?: Maybe; name: Scalars["String"]["output"]; severity: ConnectionValidationSeverity; status: ConnectionValidationStatus; updatedAt: Scalars["Time"]["output"]; }; export declare enum ConnectionValidationSeverity { Critical = "CRITICAL", High = "HIGH", Low = "LOW", Medium = "MEDIUM" } export declare enum ConnectionValidationStatus { Failed = "FAILED", Success = "SUCCESS" } export type ConnectionVisibilityGroup = { __typename?: "ConnectionVisibilityGroup"; connectionId: Scalars["ConnectionId"]["output"]; createdAt: Scalars["Time"]["output"]; visibilityGroup?: Maybe; visibilityGroupId: Scalars["GroupId"]["output"]; }; export type ConnectionVisibilityGroupNotFoundError = Error & { __typename?: "ConnectionVisibilityGroupNotFoundError"; message: Scalars["String"]["output"]; }; /** Input for filtering by connections. */ export type ConnectionsFilterInput = { /** List of connection IDs to filter by. */ connectionIDs: Array; }; export type ConnectionsInput = { connectionTypes?: InputMaybe>; }; export type ConnectionsOutput = ConnectionsResult; export type ConnectionsResult = { __typename?: "ConnectionsResult"; connections: Array; }; /** Input for counting filtered connections. */ export type CountFilteredConnectionsInput = { /** Filters to apply when counting connections. */ filters?: InputMaybe; }; /** Result of counting filtered connections. */ export type CountFilteredConnectionsOutput = { __typename?: "CountFilteredConnectionsOutput"; /** Total number of connections matching the filters. */ totalNumConnections: Scalars["Int"]["output"]; /** Total number of reviews across the filtered connections. */ totalNumReviews: Scalars["Int"]["output"]; }; /** Input for counting filtered groups. */ export type CountFilteredGroupsInput = { /** Filters to apply. */ filters?: InputMaybe; /** If true, include source groups from group bindings. */ includeSourceGroups?: InputMaybe; }; /** Result of counting filtered groups. */ export type CountFilteredGroupsOutput = CountFilteredGroupsResult; /** Successful result of counting filtered groups. */ export type CountFilteredGroupsResult = { __typename?: "CountFilteredGroupsResult"; /** Total number of groups matching the filters. */ totalNumGroups: Scalars["Int"]["output"]; }; /** Input for counting filtered resources. */ export type CountFilteredResourcesInput = { /** Filters to apply */ filters?: InputMaybe; }; /** Result for count filtered resources query. */ export type CountFilteredResourcesOutput = CountFilteredResourcesResult; /** Successful result of count filtered resources query. */ export type CountFilteredResourcesResult = { __typename?: "CountFilteredResourcesResult"; /** Total number of resources matching the filters */ totalNumResources: Scalars["Int"]["output"]; }; export type CoupaConnectionCredentialsInput = { clientId: Scalars["String"]["input"]; clientSecret: Scalars["String"]["input"]; }; export type CoupaConnectionMetadata = { __typename?: "CoupaConnectionMetadata"; hostname: Scalars["String"]["output"]; }; export type CoupaConnectionMetadataInput = { hostname: Scalars["String"]["input"]; }; /** Input for creating a new access review template. */ export type CreateAccessReviewTemplateInput = { /** Duration in days for how long the access review should run. */ accessReviewDuration: Scalars["Int"]["input"]; /** Which view (resource-first or user-first) reviewers see by default. */ endUserView: AccessReviewEndUserView; /** Filters defining the scope of the access review. */ filters?: InputMaybe; /** Policy for which group resources are visible to reviewers. */ groupResourceVisibilityPolicy: AccessReviewGroupResourceVisibilityPolicy; /** Whether to include group bindings (nested groups) in the review. */ includeGroupBindings: Scalars["Boolean"]["input"]; /** Months when the access review should run (1-12). */ monthSchedule?: InputMaybe>; /** The name of the access review template. */ name: Scalars["String"]["input"]; /** Whether to include the reviewer's manager in reminder notifications. */ reminderIncludeManager: Scalars["Boolean"]["input"]; /** Days before deadline when reminders should be sent. */ reminderSchedule?: InputMaybe>; /** Time of day when reminders should be sent. */ reminderTimeOfDay: Scalars["Time"]["input"]; /** Policy for assigning reviewers to access. */ reviewerAssignmentPolicy: AccessReviewReviewerAssignmentPolicy; /** Whether self-review is allowed (user reviewing their own access). */ selfReviewAllowed: Scalars["Boolean"]["input"]; /** Whether to send notifications when reviewers are assigned. */ sendReviewerAssignmentNotification: Scalars["Boolean"]["input"]; /** Day of the month when the access review should start. */ startDayOfMonth: Scalars["Int"]["input"]; /** Timezone for scheduling the access review. */ timeZone: Scalars["String"]["input"]; }; /** Result of creating an access review template. */ export type CreateAccessReviewTemplateOutput = CreateAccessReviewTemplateResult; /** Successful result containing the created access review template. */ export type CreateAccessReviewTemplateResult = { __typename?: "CreateAccessReviewTemplateResult"; /** The created access review template. */ accessReviewTemplate: AccessReviewTemplate; }; /** Input for creating a new auth provider application. */ export type CreateAuthProviderApplicationInput = { /** Hostname for the application (must be HTTPS). */ hostname: Scalars["String"]["input"]; /** Name of the organization. */ organizationName: Scalars["String"]["input"]; }; /** Output type for createAuthProviderApplication mutation. */ export type CreateAuthProviderApplicationOutput = CreateAuthProviderApplicationResult | HttpsHostnameRequiredError; /** Result of creating an auth provider application. */ export type CreateAuthProviderApplicationResult = { __typename?: "CreateAuthProviderApplicationResult"; /** Client secret for the application (only returned once). */ clientSecret: Scalars["String"]["output"]; /** The created auth provider configuration. */ providerInfo: AuthProviderInfo; }; export type CreateBundleGroupsOutput = BundleGroupAlreadyExistsError | CreateBundleGroupsResult; export type CreateBundleGroupsResult = { __typename?: "CreateBundleGroupsResult"; bundleGroups: Array; }; export type CreateBundleInput = { adminOwnerId: Scalars["OwnerId"]["input"]; description: Scalars["String"]["input"]; name: Scalars["String"]["input"]; visibility?: InputMaybe; visibilityGroupsIds?: InputMaybe>; }; export type CreateBundleOutput = BundleNameExistsError | CreateBundleResult; export type CreateBundleResourcesOutput = BundleResourceAlreadyExistsError | CreateBundleResourcesResult; export type CreateBundleResourcesResult = { __typename?: "CreateBundleResourcesResult"; bundleResources: Array; }; export type CreateBundleResult = { __typename?: "CreateBundleResult"; bundle: Bundle; }; export type CreateConfigurationTemplateInput = { adminOwnerId: Scalars["OwnerId"]["input"]; breakGlassUsersIds: Array; customRequestNotification?: InputMaybe; maxDirectUsersAllowed?: InputMaybe; maxUsersExceededMessage?: InputMaybe; messageChannelIds: Array; name: Scalars["String"]["input"]; onCallSchedules: Array; requestConfigs: Array; requireMfaToApprove: Scalars["Boolean"]["input"]; requireMfaToConnect: Scalars["Boolean"]["input"]; ticketPropagation: TicketPropagationInput; visibility: Visibility; visibilityGroupsIds: Array; }; export type CreateConfigurationTemplateOutput = ConfigurationTemplateNameExistsError | CreateConfigurationTemplateResult; export type CreateConfigurationTemplateResult = { __typename?: "CreateConfigurationTemplateResult"; configurationTemplate: ConfigurationTemplate; }; export type CreateConnectionForIdpInput = { adminOwnerId: Scalars["OwnerId"]["input"]; connectionImage?: InputMaybe; connectionType: ConnectionType; credentials?: InputMaybe; description: Scalars["String"]["input"]; idpConnectionType: IdpConnectionType; importVisibility: Visibility; metadata?: InputMaybe; name: Scalars["String"]["input"]; visibility: Visibility; visibilityGroupIds: Array; }; export type CreateConnectionInput = { adminOwnerId: Scalars["OwnerId"]["input"]; connectionImage?: InputMaybe; connectionType: ConnectionType; credentials?: InputMaybe; description: Scalars["String"]["input"]; importVisibility: Visibility; metadata?: InputMaybe; name: Scalars["String"]["input"]; visibility: Visibility; visibilityGroupIds: Array; }; export type CreateConnectionOutput = ConnectionBadMetadataError | ConnectionExistsError | ConnectionUnhealthyError | CreateConnectionResult | UserFacingError; export type CreateConnectionResult = { __typename?: "CreateConnectionResult"; connection: Connection; }; /** Input for creating a new event filter. */ export type CreateEventFilterInput = { /** Filter by specific actor user. */ actorId?: InputMaybe; /** Filter by API token information. */ apiToken?: InputMaybe; /** End date for filtering events. */ endDate?: InputMaybe; /** Filter by specific event types. */ eventTypes?: InputMaybe>; /** Name for the event filter. */ name: Scalars["String"]["input"]; /** Filter by specific object ID. */ objectId?: InputMaybe; /** Start date for filtering events. */ startDate?: InputMaybe; /** Whether to include system events. */ systemEvents?: InputMaybe; }; /** Output type for createEventFilter mutation. */ export type CreateEventFilterOutput = CreateEventFilterResult | EventFilterNotFoundError | InvalidEventFilterNameError; /** Result of creating an event filter. */ export type CreateEventFilterResult = { __typename?: "CreateEventFilterResult"; /** The created event filter. */ eventFilter: EventFilter; }; /** Error occurred while creating event stream. */ export type CreateEventStreamError = Error & { __typename?: "CreateEventStreamError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Input for creating a new event stream. */ export type CreateEventStreamInput = { /** Type of connection to create. */ connectionType: PubsubPublishConnectionType; /** Authentication credentials. */ credentials?: InputMaybe; /** Connection metadata. */ metadata?: InputMaybe; /** Name for the event stream. */ name: Scalars["String"]["input"]; }; /** Output for creating an event stream. */ export type CreateEventStreamOutput = CreateEventStreamError | CreateEventStreamResult; /** Result of creating an event stream. */ export type CreateEventStreamResult = { __typename?: "CreateEventStreamResult"; /** The newly created event stream. */ eventStream: EventStream; }; export type CreateFirstPartyTokenInput = { accessLevel: ApiAccessLevel; expiresAt?: InputMaybe; tokenLabel: Scalars["String"]["input"]; userId?: InputMaybe; }; export type CreateFirstPartyTokenOutput = CreateFirstPartyTokenResult; export type CreateFirstPartyTokenResult = { __typename?: "CreateFirstPartyTokenResult"; signedToken: Scalars["String"]["output"]; token: FirstPartyToken; }; /** Input for creating a single group binding. */ export type CreateGroupBindingInput = { /** IDs of the Opal groups to bind to the source group. */ groupIds: Array; /** ID of the source group. */ sourceGroupId: Scalars["GroupId"]["input"]; /** Optional suggestion ID if this binding was created from a suggestion. */ suggestionId?: InputMaybe; }; /** Input for creating multiple group bindings. */ export type CreateGroupBindingsInput = { /** List of group bindings to create. */ groupBindings: Array; }; /** Result of creating group bindings. */ export type CreateGroupBindingsOutput = CreateGroupBindingsResult | GroupAlreadyBelongsToBindingError | GroupBindingHasNoGroupsError; /** Successful result of creating group bindings. */ export type CreateGroupBindingsResult = { __typename?: "CreateGroupBindingsResult"; /** The created group bindings. */ groupBindings: Array; }; export type CreateGroupInfo = { connectionId: Scalars["ConnectionId"]["input"]; groupType: GroupType; metadata?: InputMaybe; name: Scalars["String"]["input"]; remoteId?: InputMaybe; }; /** Input for creating a new group. */ export type CreateGroupInput = { /** Access rule condition for computed groups. */ accessRuleCondition?: InputMaybe; /** ID of the admin owner. */ adminOwnerId: Scalars["OwnerId"]["input"]; /** ID of the connection to create the group in. */ connectionId: Scalars["ConnectionId"]["input"]; /** Description of the group. */ description: Scalars["String"]["input"]; /** Type of group to create. */ groupType: GroupType; /** Optional metadata for the group. */ metadata?: InputMaybe; /** Name of the group. */ name: Scalars["String"]["input"]; /** Visibility settings for the group. */ visibility: Visibility; }; /** Result of creating a group. */ export type CreateGroupOutput = CreateGroupResult | GoogleGroupError | OktaGroupError; /** Successful result of creating a group. */ export type CreateGroupResult = { __typename?: "CreateGroupResult"; /** The created group. */ group: Group; }; /** Input for creating a new IP zone. */ export type CreateIpaclEntryInput = { /** Optional description for this IP zone. */ description?: InputMaybe; /** List of IP addresses or CIDR ranges to allow (e.g., ["192.168.1.1", "10.0.0.0/24"]). */ ipAddresses: Array; /** Name of the IP zone (e.g., "Office Network", "VPN IPs"). */ name: Scalars["String"]["input"]; }; /** Result of creating an IP ACL entry. */ export type CreateIpaclEntryOutput = CreateIpaclEntryResult | IpaclEntryInvalidError; /** Successfully created IP ACL entry. */ export type CreateIpaclEntryResult = { __typename?: "CreateIPACLEntryResult"; /** The created IP ACL entry. */ entry: IpaclEntry; }; /** Input for creating an IdP connection. */ export type CreateIdpConnectionInput = { /** ID of the existing connection to use as the IdP. */ existingConnectionId: Scalars["ConnectionId"]["input"]; /** Type of IdP connection to create. */ idpConnectionType: IdpConnectionType; }; /** Result of creating an IdP connection. */ export type CreateIdpConnectionOutput = ConnectionBadMetadataError | ConnectionUnhealthyError | CreateIdpConnectionResult | IdpConnectionExistsError | UserFacingError; /** Successful result of creating an IdP connection. */ export type CreateIdpConnectionResult = { __typename?: "CreateIdpConnectionResult"; /** The created IdP connection. */ idpConnection: IdpConnection; }; /** Input for creating a user attribute import mapping. */ export type CreateIdpConnectionUserAttributeImportMappingInput = { /** ID of the IdP connection. */ idpConnectionId: Scalars["IdpConnectionId"]["input"]; /** The IdP attribute key to import. */ key: Scalars["String"]["input"]; /** How to use the imported attribute in Opal. */ useAs: IdpConnectionUserAttributeUseAs; }; /** Result of creating a user attribute import mapping. */ export type CreateIdpConnectionUserAttributeImportMappingOutput = CreateIdpConnectionUserAttributeImportMappingResult | IdpConnectionNotFoundError; /** Successful result of creating a user attribute import mapping. */ export type CreateIdpConnectionUserAttributeImportMappingResult = { __typename?: "CreateIdpConnectionUserAttributeImportMappingResult"; /** The created mapping. */ mapping: IdpConnectionUserAttributeImportMapping; }; export type CreateItemsInput = { groups?: InputMaybe>; resources?: InputMaybe>; updateInfo: UpdateItemsInput; }; export type CreateItemsOutput = CannotUpdateConfigurationTemplateError | ConnectionNotFoundError | CreateItemsResult | GroupMaxDurationTooLargeError | GroupNotFoundError | InvalidCreateItemInputError | InvalidReviewerSettingsError | InvalidUpdateGroupVisibilityGroupError | InvalidUpdateResourceVisibilityGroupError | ResourceMaxDurationTooLargeError | TagNotFoundError | TooManyGroupLeadersError; export type CreateItemsResult = { __typename?: "CreateItemsResult"; items?: Maybe>; }; /** Input for creating an Opal scoped role. */ export type CreateOpalScopedRoleInput = { /** The owner responsible for this role. */ adminOwnerId: Scalars["OwnerId"]["input"]; /** Description of the role. */ description: Scalars["String"]["input"]; /** The name of the role. */ name: Scalars["String"]["input"]; /** The permissions to grant with this role. */ permissions: Array; /** The visibility of this role. */ visibility: Visibility; }; /** Result of creating an Opal scoped role. */ export type CreateOpalScopedRoleOutput = { __typename?: "CreateOpalScopedRoleOutput"; /** The ID of the created role resource. */ resourceID: Scalars["ResourceId"]["output"]; }; /** Input for creating or updating an OIDC provider. */ export type CreateOrUpdateOidcProviderInput = { /** Client ID for the OIDC provider. */ clientId: Scalars["OidcClientId"]["input"]; /** Client secret for the OIDC provider. */ clientSecret: Scalars["String"]["input"]; /** Issuer URL for the OIDC provider. */ issuerUrl: Scalars["String"]["input"]; /** Type of OIDC provider. */ oidcProviderType: OidcProviderType; }; /** Result of creating or updating an OIDC provider. */ export type CreateOrUpdateOidcProviderOutput = CreateOrUpdateOidcProviderResult | OidcIssuerNotValidError; /** Successful result of creating or updating an OIDC provider. */ export type CreateOrUpdateOidcProviderResult = { __typename?: "CreateOrUpdateOidcProviderResult"; /** The created or updated OIDC provider configuration. */ oidcProvider: OidcProvider; }; /** Input for creating a new organization. */ export type CreateOrganizationInput = { /** Organization ID for on-premises deployments. */ onPremOrganizationID?: InputMaybe; /** The name of the organization. */ organizationName: Scalars["String"]["input"]; /** Email address for the organization admin user. */ userAdminEmail: Scalars["String"]["input"]; /** First name of the organization admin user. */ userAdminFirstName: Scalars["String"]["input"]; /** Last name of the organization admin user. */ userAdminLastName: Scalars["String"]["input"]; }; /** Result of creating an organization. */ export type CreateOrganizationOutput = CreateOrganizationResult | OrganizationExistsError; /** Successfully created an organization. */ export type CreateOrganizationResult = { __typename?: "CreateOrganizationResult"; /** Token for on-premises deployments. */ onPremToken?: Maybe; /** The created organization. */ organization: Organization; }; /** Information for creating a single owner. */ export type CreateOwnerInfo = { /** Time period in minutes before access requests are escalated. */ accessRequestEscalationPeriodInMinutes?: InputMaybe; /** A description of the owner's responsibilities. */ description: Scalars["String"]["input"]; /** The name of the owner. */ name: Scalars["String"]["input"]; /** Message channel ID for reviewer notifications. */ reviewerMessageChannelId?: InputMaybe; /** Initial set of user IDs to add to this owner. */ setUserIds: Array; /** Source group ID if syncing from an external group. */ sourceGroupId?: InputMaybe; }; /** Input for creating a new owner. */ export type CreateOwnerInput = { /** Time period in minutes before access requests are escalated. */ accessRequestEscalationPeriodInMinutes?: InputMaybe; /** A description of the owner's responsibilities. */ description: Scalars["String"]["input"]; /** The name of the owner. */ name: Scalars["String"]["input"]; /** Message channel ID for reviewer notifications. */ reviewerMessageChannelId?: InputMaybe; /** Initial set of user IDs to add to this owner. */ setUserIds: Array; /** Source group ID if syncing from an external group. */ sourceGroupId?: InputMaybe; }; /** Result of creating an owner. */ export type CreateOwnerOutput = CannotAddUserToSyncedOwnerError | CreateOwnerResult | GroupNotFoundError | MessageChannelNotFoundError | OwnerNameAlreadyExists; /** Successfully created an owner. */ export type CreateOwnerResult = { __typename?: "CreateOwnerResult"; /** The created owner. */ owner: Owner; }; /** Input for creating multiple owners. */ export type CreateOwnersInput = { /** List of owner creation information. */ createInfos: Array; }; /** Result of creating multiple owners. */ export type CreateOwnersOutput = CannotAddUserToSyncedOwnerError | CreateOwnersResult | GroupNotFoundError | MessageChannelNotFoundError | OwnerNameAlreadyExists; /** Successfully created multiple owners. */ export type CreateOwnersResult = { __typename?: "CreateOwnersResult"; /** The list of created owners. */ owners: Array; }; /** Input for creating a new remote message channel. */ export type CreateRemoteMessageChannelInput = { /** Custom name for the channel. */ customName: Scalars["String"]["input"]; /** Optional group ID if associating with a group. */ groupId?: InputMaybe; /** Whether the channel should be private. */ isPrivate: Scalars["Boolean"]["input"]; /** Name of the item to create a channel for. */ itemName: Scalars["String"]["input"]; /** Optional resource ID if associating with a resource. */ resourceId?: InputMaybe; /** Workspace ID where the channel should be created. */ workspaceId: Scalars["String"]["input"]; }; /** Result of creating a remote message channel. */ export type CreateRemoteMessageChannelOutput = CreateRemoteMessageChannelResult | MessageChannelInvalidNameError | MessageChannelMissingOAuthScopeError | MessageChannelNameTakenError | MessageChannelUserNotInWorkspaceError; /** Successful result of creating a remote message channel. */ export type CreateRemoteMessageChannelResult = { __typename?: "CreateRemoteMessageChannelResult"; /** The created message channel. */ messageChannel: MessageChannel; }; /** Input for creating a request comment. */ export type CreateRequestCommentInput = { /** The comment text. */ comment: Scalars["String"]["input"]; /** The request ID to comment on. */ requestId: Scalars["RequestId"]["input"]; }; /** Result of creating a request comment. */ export type CreateRequestCommentOutput = CreateRequestCommentResult | RequestNotFoundError; /** Successfully created a request comment. */ export type CreateRequestCommentResult = { __typename?: "CreateRequestCommentResult"; /** The request with the new comment added. */ request: Request; }; /** Input for creating a new access request. */ export type CreateRequestInput = { /** Custom metadata for the request */ customMetadata?: InputMaybe>; /** Duration of access in minutes */ durationInMinutes?: InputMaybe; /** Reason for the request */ reason: Scalars["String"]["input"]; /** Groups to request */ requestedGroups: Array; /** Resources to request */ requestedResources: Array; /** Source of the request */ source?: InputMaybe; /** Associated support ticket */ supportTicket?: InputMaybe; /** Target group ID for the request */ targetGroupId?: InputMaybe; /** Target user ID for the request */ targetUserId?: InputMaybe; }; /** Result or error for create request operation. */ export type CreateRequestOutput = BulkRequestTooLargeError | CreateRequestResult | GroupNestingNotAllowedError | ItemCannotBeRequestedError | ItemsAtCapacityError | LinkedGroupNotRequestableError | MfaInvalidError | NoManagerSetForRequestingUserError | NoReviewersSetForGroupError | NoReviewersSetForOwnerError | NoReviewersSetForResourceError | RequestDurationTooLargeError | RequestFieldValueMissingError | RequestReasonBelowMinLengthError | RequestReasonMissingError | RequestRequiresUserAuthTokenForConnectionError | TargetUserHasNestedAccessError | UserCannotRequestAccessForTargetGroupError; /** Input for creating a request to propose a new resource. */ export type CreateRequestProposalInput = { /** Admin owner ID for the proposed resource */ adminOwnerId: Scalars["OwnerId"]["input"]; /** Connection ID where the resource will be created */ connectionId: Scalars["ConnectionId"]["input"]; /** Duration of access in minutes */ durationInMinutes?: InputMaybe; /** Metadata about the proposed resource */ proposalMetadata: ResourceProposalMetadataInput; /** Reason for proposing the resource */ reason: Scalars["String"]["input"]; /** Type of resource being proposed */ resourceType: ResourceType; }; /** Result or error for create request proposal operation. */ export type CreateRequestProposalOutput = AwsRoleCreationError | AwsRoleCreationReviewerNotSetError | AwsRolePolicyInvalidError | CreateRequestProposalResult | NoManagerSetForRequestingUserError | NoReviewersSetForGroupError | NoReviewersSetForOwnerError | NoReviewersSetForResourceError; /** Successful result of creating a request proposal. */ export type CreateRequestProposalResult = { __typename?: "CreateRequestProposalResult"; /** The created request */ request: Request; }; /** Successful result of creating a request. */ export type CreateRequestResult = { __typename?: "CreateRequestResult"; /** The created request */ request: Request; }; /** Input for creating a request reviewer delegation. */ export type CreateRequestReviewerDelegationInput = { /** The user to delegate to. */ delegateUserId: Scalars["UserId"]["input"]; /** When the delegation ends. */ endTime: Scalars["Time"]["input"]; /** Reason for the delegation. */ reason: Scalars["String"]["input"]; /** When the delegation starts. */ startTime: Scalars["Time"]["input"]; /** The user to delegate for (defaults to current user). */ targetUserId?: InputMaybe; }; /** Error returned when creating an invalid request reviewer delegation. */ export type CreateRequestReviewerDelegationInvalidError = Error & { __typename?: "CreateRequestReviewerDelegationInvalidError"; message: Scalars["String"]["output"]; }; /** Result of creating a request reviewer delegation. */ export type CreateRequestReviewerDelegationOutput = CreateRequestReviewerDelegationInvalidError | CreateRequestReviewerDelegationResult; /** Successful result of creating a request reviewer delegation. */ export type CreateRequestReviewerDelegationResult = { __typename?: "CreateRequestReviewerDelegationResult"; /** The created delegation. */ delegation: RequestReviewerDelegation; }; /** Input for creating a request template. */ export type CreateRequestTemplateInput = { /** Custom fields to include in the template. */ customFields?: InputMaybe>; /** The name of the request template. */ name: Scalars["String"]["input"]; }; /** Result of creating a request template. */ export type CreateRequestTemplateOutput = CreateRequestTemplateResult | RequestTemplateNameExistsError; /** Successfully created a request template. */ export type CreateRequestTemplateResult = { __typename?: "CreateRequestTemplateResult"; /** The created request template. */ requestTemplate: RequestTemplate; }; /** Result for a single custom access level creation. */ export type CreateResourceCustomAccessLevelEntryOutput = CreateResourceCustomAccessLevelEntryResult; /** Successfully created a custom access level entry. */ export type CreateResourceCustomAccessLevelEntryResult = { __typename?: "CreateResourceCustomAccessLevelEntryResult"; /** The created custom access level. */ resourceCustomAccessLevel: ResourceCustomAccessLevel; }; /** Information for creating a single custom access level. */ export type CreateResourceCustomAccessLevelInfo = { /** The access level details. */ accessLevel: ResourceAccessLevelInput; /** The policy defining the custom access level. */ policy?: InputMaybe; /** The resource ID. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Input for creating a custom access level. */ export type CreateResourceCustomAccessLevelInput = { /** The access level details. */ accessLevel: ResourceAccessLevelInput; /** The policy defining the custom access level. */ policy?: InputMaybe; /** Priority of this custom access level. */ priority?: InputMaybe; /** The resource ID to create the custom access level for. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Result of creating a custom access level. */ export type CreateResourceCustomAccessLevelOutput = CreateResourceCustomAccessLevelResult | ResourceCustomAccessLevelAlreadyExistsError | ResourceCustomAccessLevelPriorityError; /** Successfully created a custom access level. */ export type CreateResourceCustomAccessLevelResult = { __typename?: "CreateResourceCustomAccessLevelResult"; /** The created custom access level. */ resourceCustomAccessLevel: ResourceCustomAccessLevel; }; /** Input for creating multiple custom access levels. */ export type CreateResourceCustomAccessLevelsInput = { /** List of custom access level creation information. */ createInfos: Array; }; /** Result of creating multiple custom access levels. */ export type CreateResourceCustomAccessLevelsOutput = CreateResourceCustomAccessLevelsResult; /** Successfully created multiple custom access levels. */ export type CreateResourceCustomAccessLevelsResult = { __typename?: "CreateResourceCustomAccessLevelsResult"; /** Results for each custom access level created. */ entries: Array; }; /** Result for a single resource creation. */ export type CreateResourceEntryOutput = CreateResourceEntryResult; /** Successful result of a single resource creation. */ export type CreateResourceEntryResult = { __typename?: "CreateResourceEntryResult"; /** The created resource */ resource: Resource; }; export type CreateResourceInfo = { connectionId: Scalars["ConnectionId"]["input"]; metadata?: InputMaybe; name: Scalars["String"]["input"]; remoteId?: InputMaybe; resourceType: ResourceType; }; /** Deprecated resource creation info. */ export type CreateResourceInfoDeprecated = { /** Admin owner ID */ adminOwnerId: Scalars["OwnerId"]["input"]; /** Common metadata */ commonMetadata?: InputMaybe; /** Connection ID */ connectionId: Scalars["ConnectionId"]["input"]; /** Description of the resource */ description: Scalars["String"]["input"]; /** Metadata about the resource */ metadata?: InputMaybe; /** Name of the resource */ name: Scalars["String"]["input"]; /** Parent resource ID, if applicable */ parentResourceId?: InputMaybe; /** Remote ID in the source system */ remoteId?: InputMaybe; /** Type of the resource */ resourceType: ResourceType; /** Visibility setting */ visibility: Visibility; }; /** Input for creating a resource. */ export type CreateResourceInput = { /** Admin owner ID */ adminOwnerId: Scalars["OwnerId"]["input"]; /** Connection ID */ connectionId: Scalars["ConnectionId"]["input"]; /** Custom request notification message */ customRequestNotification?: InputMaybe; /** Description of the resource */ description: Scalars["String"]["input"]; /** Name of the resource */ name: Scalars["String"]["input"]; /** Parent resource ID, if applicable */ parentResourceId?: InputMaybe; /** Remote ID in the source system */ remoteId?: InputMaybe; /** Type of the resource */ resourceType: ResourceType; /** Ticket propagation settings */ ticketPropagation?: InputMaybe; /** Visibility setting */ visibility: Visibility; }; /** Result or error for create resource operation. */ export type CreateResourceOutput = AwsRoleCreationError | AwsRolePolicyInvalidError | CreateResourceResult; /** Successful result of creating a resource. */ export type CreateResourceResult = { __typename?: "CreateResourceResult"; /** The created resource */ resource: Resource; }; /** Input for creating multiple resources. */ export type CreateResourcesInput = { /** Information for each resource to create */ createInfos: Array; }; /** Result for create resources operation. */ export type CreateResourcesOutput = CreateResourcesResult; /** Successful result of creating resources. */ export type CreateResourcesResult = { __typename?: "CreateResourcesResult"; /** Results for each resource creation */ entries: Array; /** Sync tasks triggered by the creation */ syncTasks?: Maybe>; }; export type CreateSamlConnectionInput = { certFile?: InputMaybe; restrictLoginToSaml?: InputMaybe; signInEndpointURL?: InputMaybe; }; export type CreateSamlConnectionOutput = CertIsTooLargeError | CreateSamlConnectionResult | InvalidEmailError; /** Input for creating a SAML connection proxy. */ export type CreateSamlConnectionProxyInput = { /** The Auth0 client ID. */ auth0ClientId: Scalars["String"]["input"]; /** The SAML certificate. */ certificate: Scalars["String"]["input"]; /** The domain for the SAML connection. */ domain: Scalars["String"]["input"]; /** The redirect URI for IDP-initiated login. */ idpInitiatedRedirectUri: Scalars["String"]["input"]; /** The organization ID. */ organizationId: Scalars["OrganizationId"]["input"]; /** The organization name. */ organizationName: Scalars["String"]["input"]; /** Optional provider ID. */ providerID?: InputMaybe; /** The sign-in endpoint URL. */ signInEndpointURL: Scalars["String"]["input"]; }; /** Output of creating a SAML connection proxy. */ export type CreateSamlConnectionProxyOutput = CreateSamlConnectionProxyResult; /** Result of creating a SAML connection proxy. */ export type CreateSamlConnectionProxyResult = { __typename?: "CreateSamlConnectionProxyResult"; /** The created on-premises organization SAML information. */ onPremOrganizationSamlInfo: OnPremOrganizationSamlInfo; }; export type CreateSamlConnectionResult = { __typename?: "CreateSamlConnectionResult"; organizationSamlInfo: OrganizationSamlInfo; }; /** Input for service user automation configuration. */ export type CreateServiceUserAutomationConfigurationInput = { starlark?: InputMaybe; /** Webhook configuration. */ webhook?: InputMaybe; }; /** Input for service user automation credentials. */ export type CreateServiceUserAutomationCredentialsInput = { starlark?: InputMaybe; /** Input for service user automation credentials. */ webhook?: InputMaybe; }; /** Input for webhook automation credentials. */ export type CreateServiceUserAutomationCredentialsWebhookInput = { /** The HMAC secret for webhook authentication. */ hmacSecret: Scalars["String"]["input"]; }; /** Input for creating a service user automation. */ export type CreateServiceUserAutomationInput = { /** The automation configuration. */ configuration: CreateServiceUserAutomationConfigurationInput; /** The automation credentials. Required for webhook automations, optional for starlark automations. */ credentials?: InputMaybe; /** The automation strategy to use. */ strategy: ServiceUserAutomationStrategy; /** The trigger event for the automation. */ trigger: ServiceUserAutomationTrigger; }; /** Input for creating a service user. */ export type CreateServiceUserInput = { /** Automations to configure for the service user. */ automations?: InputMaybe>; /** The name of the service user. */ name: Scalars["String"]["input"]; /** The owner of the service user. */ ownerId: Scalars["OwnerId"]["input"]; /** Role IDs to assign to the service user. */ roleIds?: InputMaybe>; }; export type CreateServiceUserStarlarkAutomationCredentialsInput = { placeholder?: InputMaybe; }; export type CreateServiceUserStarlarkAutomationInput = { /** The starlark script content. */ script: Scalars["String"]["input"]; }; /** Input for webhook automation configuration. */ export type CreateServiceUserWebhookAutomationInput = { /** The webhook endpoint URL. */ endpoint: Scalars["String"]["input"]; }; /** Input for creating a new session. */ export type CreateSessionInput = { /** The access level to use for the session. */ accessLevel?: InputMaybe; /** The duration of the session in minutes. */ durationInMinutes?: InputMaybe; /** The resource ID to create a session for. */ resourceId?: InputMaybe; /** Optional session ID to reference an existing session (used by CLI). */ sessionId?: InputMaybe; }; /** Result of creating a session. */ export type CreateSessionOutput = CreateSessionResult | EndSystemAuthorizationError | GroupNotFoundError | ImpersonationSessionLengthError | MfaInvalidError | NotSessionableError | OidcIdTokenNotFoundError | ResourceNotFoundError | SessionNotFoundError | UserFacingError | UserImpersonationDisabledError | VaultClientNotFoundError | VaultSessionError; /** Successful result of creating a session. */ export type CreateSessionResult = { __typename?: "CreateSessionResult"; /** The created session. */ session: Session; /** The session metadata containing credentials. */ sessionMetadata: SessionMetadata; }; /** Input for creating a new tag. */ export type CreateTagInput = { /** The tag key. */ key: Scalars["String"]["input"]; /** The tag value (optional). */ value?: InputMaybe; }; /** Result of creating a tag. */ export type CreateTagOutput = CreateTagResult | TagExistsError; /** Successful result of creating a tag. */ export type CreateTagResult = { __typename?: "CreateTagResult"; /** The created tag. */ tag: Tag; }; /** Result of creating a test organization. */ export type CreateTestOrgResult = { __typename?: "CreateTestOrgResult"; /** ID of the created organization. */ orgID: Scalars["OrganizationId"]["output"]; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for creating a new third-party integration. */ export type CreateThirdPartyIntegrationInput = { /** OAuth code flow credentials (if using code flow). */ codeFlow?: InputMaybe; /** Provider-specific metadata for the integration. */ metadata?: InputMaybe; /** Organization name for the integration (if applicable). */ orgName?: InputMaybe; /** The third-party provider to integrate with. */ thirdPartyProvider: ThirdPartyProvider; /** Manual authentication token (if using manual flow). */ token?: InputMaybe; }; /** Result of creating a third-party integration. */ export type CreateThirdPartyIntegrationOutput = CreateThirdPartyIntegrationResult | SlackOrganizationAlreadyExistsError | ThirdPartyConnectionAlreadyExistsError | ThirdPartyConnectionNotMatchedError | ThirdPartyUserNotMatchedError | UserFacingError; /** Successful result containing the created third-party integration. */ export type CreateThirdPartyIntegrationResult = { __typename?: "CreateThirdPartyIntegrationResult"; /** The newly created third-party integration. */ thirdPartyIntegration: ThirdPartyIntegration; }; /** Input for creating webhook configuration. */ export type CreateWebhookInfoInput = { /** The webhook endpoint URL. */ webhookEndpoint?: InputMaybe; }; /** Result of creating webhook configuration. */ export type CreateWebhookInfoOutput = CreateWebhookInfoResult; /** Successfully created webhook configuration. */ export type CreateWebhookInfoResult = { __typename?: "CreateWebhookInfoResult"; /** The created webhook information. */ webhookInfo: OrganizationWebhookInfo; }; /** Current user's access to a specific group. */ export type CurrentUserGroupAccess = { __typename?: "CurrentUserGroupAccess"; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** Group user entries for the current user (can have multiple access levels). */ groupUsers: Array; /** Whether the current user has break glass access to this group. */ hasBreakGlass: Scalars["Boolean"]["output"]; /** Pending access requests for this group by the current user. */ pendingRequests: Array; }; /** Information about the current user's access to a resource. */ export type CurrentUserResourceAccess = { __typename?: "CurrentUserResourceAccess"; /** Active sessions for this resource. */ activeSessions: Array; /** Number of available access levels for this resource. */ numAvailableAccessLevels: Scalars["Int"]["output"]; /** Pending access requests for this resource. */ pendingRequests: Array; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; /** * Resource users representing the current user's direct access. * Resources can have multiple access levels, so there may be multiple resource users. */ resourceUsers: Array; }; /** Statistics about the current user's activity and responsibilities in Opal. */ export type CurrentUserStats = { __typename?: "CurrentUserStats"; /** Number of groups administered by the current user. */ numGroupsAdmined: Scalars["Int"]["output"]; /** Total number of access requests sent by the current user (all statuses). */ numRequestsSent: Scalars["Int"]["output"]; /** Total number of access requests sent by the current user on behalf of another user (all statuses). */ numRequestsSentOnBehalfOfUser: Scalars["Int"]["output"]; /** Number of pending access requests sent by the current user. */ numRequestsSentPending: Scalars["Int"]["output"]; /** Number of pending access requests sent by the current user on behalf of another user. */ numRequestsSentPendingOnBehalfOfUser: Scalars["Int"]["output"]; /** Number of resources administered by the current user. */ numResourcesAdmined: Scalars["Int"]["output"]; /** Whether the current user reviews access requests. */ reviewsItems: Scalars["Boolean"]["output"]; }; /** Output type for currentUserStats query. */ export type CurrentUserStatsOutput = CurrentUserStatsResult; /** Result containing current user statistics. */ export type CurrentUserStatsResult = { __typename?: "CurrentUserStatsResult"; /** Statistics for the current user. */ currentUserStats?: Maybe; }; export type CursorConnectionCredentialsInput = { token: Scalars["String"]["input"]; }; export type CursorConnectionMetadata = { __typename?: "CursorConnectionMetadata"; placeholder?: Maybe; }; export type CustomConnectorConnectionMetadata = { __typename?: "CustomConnectorConnectionMetadata"; baseUrl: Scalars["String"]["output"]; identifier: Scalars["String"]["output"]; supportsEventIngestion: Scalars["Boolean"]["output"]; supportsGroups: Scalars["Boolean"]["output"]; supportsNestedGroups: Scalars["Boolean"]["output"]; supportsNestedResources: Scalars["Boolean"]["output"]; tlsCaCertContent?: Maybe; tlsMode: Scalars["Boolean"]["output"]; }; export type CustomConnectorCredentials = { signingSecret: Scalars["String"]["input"]; }; export type CustomConnectorMetadataInput = { baseUrl: Scalars["String"]["input"]; identifier: Scalars["String"]["input"]; supportsEventIngestion: Scalars["Boolean"]["input"]; supportsGroups: Scalars["Boolean"]["input"]; supportsNestedGroups: Scalars["Boolean"]["input"]; supportsNestedResources: Scalars["Boolean"]["input"]; tlsCaCertContent?: InputMaybe; tlsMode: Scalars["Boolean"]["input"]; }; /** Error indicating that a custom field with this name already exists in the template. */ export type CustomFieldExistsError = Error & { __typename?: "CustomFieldExistsError"; message: Scalars["String"]["output"]; }; /** Configuration for custom search links displayed in the UI. */ export type CustomSearchLink = { __typename?: "CustomSearchLink"; /** The URL for the custom search link. */ customSearchLink?: Maybe; /** A description of what the custom search link does. */ customSearchLinkDescription?: Maybe; /** The title displayed for the custom search link. */ customSearchLinkTitle?: Maybe; }; /** Input for configuring a custom search link. */ export type CustomSearchLinkInput = { /** A description of the custom search link. */ customSearchLinkDescription: Scalars["String"]["input"]; /** The title for the custom search link. */ customSearchLinkTitle: Scalars["String"]["input"]; /** Whether the custom search link is enabled. */ enabled: Scalars["Boolean"]["input"]; }; /** Error indicating that custom search link configuration is invalid. */ export type CustomSearchLinkInvalidError = Error & { __typename?: "CustomSearchLinkInvalidError"; message: Scalars["String"]["output"]; }; /** Error indicating that customer support settings are invalid. */ export type CustomerSupportSettingsInvalid = Error & { __typename?: "CustomerSupportSettingsInvalid"; message: Scalars["String"]["output"]; }; export type DatabricksConnectionCredentialsInput = { clientId: Scalars["String"]["input"]; clientSecret: Scalars["String"]["input"]; }; export type DatabricksConnectionMetadata = { __typename?: "DatabricksConnectionMetadata"; accountId: Scalars["String"]["output"]; accountLoginUrl: Scalars["String"]["output"]; }; export type DatabricksConnectionMetadataInput = { accountId: Scalars["String"]["input"]; accountLoginUrl: Scalars["String"]["input"]; }; export type DatastaxAstraConnectionCredentialsInput = { token: Scalars["String"]["input"]; }; export type DatastaxAstraConnectionMetadata = { __typename?: "DatastaxAstraConnectionMetadata"; placeholder?: Maybe; }; /** Configuration for default notification settings. */ export type DefaultNotification = { __typename?: "DefaultNotification"; /** Whether this notification type is enabled. */ enabled?: Maybe; /** The type of notification. */ type: NotificationType; }; /** Input for configuring default notification settings. */ export type DefaultNotificationsInput = { /** Whether to enable this notification type. */ enabled: Scalars["Boolean"]["input"]; /** The type of notification to configure. */ type: NotificationType; }; /** Input for deleting one or more access review templates. */ export type DeleteAccessReviewTemplatesInput = { /** List of access review template IDs to delete. */ ids: Array; }; /** Result of deleting access review templates. */ export type DeleteAccessReviewTemplatesOutput = AccessReviewTemplateNotFound | DeleteAccessReviewTemplatesResult; /** Successful result containing the deleted access review templates. */ export type DeleteAccessReviewTemplatesResult = { __typename?: "DeleteAccessReviewTemplatesResult"; /** The deleted access review templates. */ accessReviewTemplates: Array; }; export type DeleteBundleGroupInput = { accessLevelRemoteId: Scalars["String"]["input"]; bundleId: Scalars["BundleId"]["input"]; groupId: Scalars["GroupId"]["input"]; }; export type DeleteBundleGroupsInput = { inputs?: InputMaybe>; }; export type DeleteBundleInput = { id: Scalars["BundleId"]["input"]; }; export type DeleteBundleOutput = BundleNotFoundError | DeleteBundleResult; export type DeleteBundleResourceInput = { accessLevelRemoteId: Scalars["String"]["input"]; bundleId: Scalars["BundleId"]["input"]; resourceId: Scalars["ResourceId"]["input"]; }; export type DeleteBundleResourcesInput = { inputs?: InputMaybe>; }; export type DeleteBundleResult = { __typename?: "DeleteBundleResult"; bundle: Bundle; }; export type DeleteConfigurationTemplateInput = { id: Scalars["ConfigurationId"]["input"]; }; export type DeleteConfigurationTemplateOutput = ConfigurationInUseError | DeleteConfigurationTemplateResult; export type DeleteConfigurationTemplateResult = { __typename?: "DeleteConfigurationTemplateResult"; id: Scalars["ConfigurationId"]["output"]; }; export type DeleteConnectionInput = { id: Scalars["ConnectionId"]["input"]; }; export type DeleteConnectionOutput = ConnectionCannotBeDeletedError | ConnectionNotFoundError | DeleteConnectionResult; export type DeleteConnectionResult = { __typename?: "DeleteConnectionResult"; id: Scalars["ConnectionId"]["output"]; }; /** Input for deleting an event filter. */ export type DeleteEventFilterInput = { /** ID of the event filter to delete. */ id: Scalars["EventFilterId"]["input"]; }; /** Output type for deleteEventFilter mutation. */ export type DeleteEventFilterOutput = DeleteEventFilterResult | EventFilterInUseError | EventFilterNotFoundError; /** Result of deleting an event filter. */ export type DeleteEventFilterResult = { __typename?: "DeleteEventFilterResult"; /** The deleted event filter. */ deletedEventFilter: EventFilter; }; /** Input for deleting an event stream. */ export type DeleteEventStreamInput = { /** ID of the event stream to delete. */ id: Scalars["EventStreamId"]["input"]; }; /** Output for deleting an event stream. */ export type DeleteEventStreamOutput = DeleteEventStreamResult; /** Result of deleting an event stream. */ export type DeleteEventStreamResult = { __typename?: "DeleteEventStreamResult"; /** Whether deletion was successful. */ success: Scalars["Boolean"]["output"]; }; export type DeleteFirstPartyTokenEntryOutput = DeleteFirstPartyTokenEntryResult; export type DeleteFirstPartyTokenEntryResult = { __typename?: "DeleteFirstPartyTokenEntryResult"; id: Scalars["FirstPartyTokenId"]["output"]; }; export type DeleteFirstPartyTokensInput = { ids: Array; }; export type DeleteFirstPartyTokensOutput = DeleteFirstPartyTokensResult; export type DeleteFirstPartyTokensResult = { __typename?: "DeleteFirstPartyTokensResult"; entries: Array; }; /** Input for deleting group bindings. */ export type DeleteGroupBindingsInput = { /** IDs of the group bindings to delete. */ ids: Array; }; /** Result of deleting group bindings. */ export type DeleteGroupBindingsOutput = DeleteGroupBindingsResult | GroupBindingNotFoundError; /** Successful result of deleting group bindings. */ export type DeleteGroupBindingsResult = { __typename?: "DeleteGroupBindingsResult"; /** Whether the deletion was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for deleting a single group. */ export type DeleteGroupInput = { /** ID of the group to delete. */ id: Scalars["GroupId"]["input"]; }; /** Result of deleting a single group. */ export type DeleteGroupOutput = DeleteGroupResult | GroupHasChildrenError | GroupNotFoundError; /** Successful result of deleting a single group. */ export type DeleteGroupResult = { __typename?: "DeleteGroupResult"; /** Whether the deletion was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for deleting multiple groups. */ export type DeleteGroupsInput = { /** IDs of the groups to delete. */ ids: Array; }; /** Result of deleting multiple groups. */ export type DeleteGroupsOutput = DeleteGroupsResult | GroupHasChildrenError | GroupNotFoundError; /** Successful result of deleting multiple groups. */ export type DeleteGroupsResult = { __typename?: "DeleteGroupsResult"; /** Whether the deletion was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for deleting an IP ACL entry. */ export type DeleteIpaclEntryInput = { /** The ID of the entry to delete. */ id: Scalars["ID"]["input"]; }; /** Result of deleting an IP ACL entry. */ export type DeleteIpaclEntryOutput = DeleteIpaclEntryResult | IpaclEntryNotFoundError; /** Successfully deleted IP ACL entry. */ export type DeleteIpaclEntryResult = { __typename?: "DeleteIPACLEntryResult"; /** Whether the deletion was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for deleting an IdP connection. */ export type DeleteIdpConnectionInput = { /** ID of the IdP connection to delete. */ id: Scalars["IdpConnectionId"]["input"]; }; /** Result of deleting an IdP connection. */ export type DeleteIdpConnectionOutput = DeleteIdpConnectionResult | IdpConnectionNotFoundError; /** Successful result of deleting an IdP connection. */ export type DeleteIdpConnectionResult = { __typename?: "DeleteIdpConnectionResult"; /** ID of the deleted IdP connection. */ id: Scalars["IdpConnectionId"]["output"]; }; /** Input for deleting a user attribute import mapping. */ export type DeleteIdpConnectionUserAttributeImportMappingInput = { /** ID of the mapping to delete. */ id: Scalars["IdpConnectionUserAttributeImportMappingId"]["input"]; }; /** Result of deleting a user attribute import mapping. */ export type DeleteIdpConnectionUserAttributeImportMappingOutput = DeleteIdpConnectionUserAttributeImportMappingResult | IdpConnectionUserAttributeImportMappingNotFoundError; /** Successful result of deleting a user attribute import mapping. */ export type DeleteIdpConnectionUserAttributeImportMappingResult = { __typename?: "DeleteIdpConnectionUserAttributeImportMappingResult"; /** ID of the deleted mapping. */ id: Scalars["IdpConnectionUserAttributeImportMappingId"]["output"]; }; /** Input for deleting IDP group mappings. */ export type DeleteIdpGroupMappingsInput = { /** ID of the app resource. TODO: remove this field. */ appResourceId: Scalars["ResourceId"]["input"]; /** IDs of the mappings to delete. */ idpGroupMappingIds: Array; }; /** Result of deleting an organization. */ export type DeleteOrganizationOutput = DeleteOrganizationResult; /** Successfully deleted an organization. */ export type DeleteOrganizationResult = { __typename?: "DeleteOrganizationResult"; /** Whether the deletion was successful. */ success?: Maybe; }; /** Input for deleting a single owner. */ export type DeleteOwnerInput = { /** The owner ID to delete. */ id: Scalars["OwnerId"]["input"]; }; /** Result of deleting an owner. */ export type DeleteOwnerOutput = DeleteOwnerResult | OwnerNotFoundError | OwnerOwnsItemsError | OwnerReviewsItemsError; /** Successfully deleted an owner. */ export type DeleteOwnerResult = { __typename?: "DeleteOwnerResult"; /** The deleted owner. */ owner: Owner; }; /** Input for deleting multiple owners. */ export type DeleteOwnersInput = { /** The list of owner IDs to delete. */ ids: Array; }; /** Result of deleting multiple owners. */ export type DeleteOwnersOutput = DeleteOwnersResult | OwnerNotFoundError | OwnerOwnsItemsError | OwnerReviewsItemsError; /** Successfully deleted multiple owners. */ export type DeleteOwnersResult = { __typename?: "DeleteOwnersResult"; /** The list of deleted owners. */ owners: Array; }; /** Input for deleting a request reviewer delegation. */ export type DeleteRequestReviewerDelegationInput = { /** The delegation ID to delete. */ delegationId: Scalars["RequestReviewerDelegationId"]["input"]; }; /** Error returned when deleting an invalid request reviewer delegation. */ export type DeleteRequestReviewerDelegationInvalidError = Error & { __typename?: "DeleteRequestReviewerDelegationInvalidError"; message: Scalars["String"]["output"]; }; /** Result of deleting a request reviewer delegation. */ export type DeleteRequestReviewerDelegationOutput = DeleteRequestReviewerDelegationInvalidError | DeleteRequestReviewerDelegationResult; /** Successful result of deleting a request reviewer delegation. */ export type DeleteRequestReviewerDelegationResult = { __typename?: "DeleteRequestReviewerDelegationResult"; /** Whether the deletion was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for deleting a request template. */ export type DeleteRequestTemplateInput = { /** The request template ID to delete. */ id: Scalars["RequestTemplateId"]["input"]; }; /** Result of deleting a request template. */ export type DeleteRequestTemplateOutput = DeleteRequestTemplateResult; /** Successfully deleted a request template. */ export type DeleteRequestTemplateResult = { __typename?: "DeleteRequestTemplateResult"; /** The ID of the deleted request template. */ requestTemplateId: Scalars["RequestTemplateId"]["output"]; }; /** Result for a single custom access level deletion. */ export type DeleteResourceCustomAccessLevelsEntryResult = { __typename?: "DeleteResourceCustomAccessLevelsEntryResult"; /** The deleted custom access level. */ resourceCustomAccessLevel: ResourceCustomAccessLevel; }; /** Input for deleting custom access levels. */ export type DeleteResourceCustomAccessLevelsInput = { /** The list of custom access level IDs to delete. */ ids?: InputMaybe>; }; /** Result of deleting custom access levels. */ export type DeleteResourceCustomAccessLevelsOutput = DeleteResourceCustomAccessLevelsResult | ResourceCustomAccessLevelNotFoundError; /** Successfully deleted custom access levels. */ export type DeleteResourceCustomAccessLevelsResult = { __typename?: "DeleteResourceCustomAccessLevelsResult"; /** Results for each custom access level deleted. */ entries: Array; }; /** Input for deleting resources. */ export type DeleteResourcesInput = { /** IDs of resources to delete */ resourceIds: Array; }; /** Result or error for delete resources operation. */ export type DeleteResourcesOutput = DeleteResourcesResult | OpalResourceImmutableError | ResourceNotFoundError; /** Successful result of deleting resources. */ export type DeleteResourcesResult = { __typename?: "DeleteResourcesResult"; /** Whether the operation succeeded */ success: Scalars["Boolean"]["output"]; }; export type DeleteSamlConnectionOutput = DeleteSamlConnectionResult; /** Input for deleting a SAML connection proxy. */ export type DeleteSamlConnectionProxyInput = { /** The organization ID. */ id: Scalars["OrganizationId"]["input"]; /** The provider ID. */ providerID: Scalars["String"]["input"]; }; /** Output of deleting a SAML connection proxy. */ export type DeleteSamlConnectionProxyOutput = DeleteSamlConnectionProxyResult; /** Result of deleting a SAML connection proxy. */ export type DeleteSamlConnectionProxyResult = { __typename?: "DeleteSamlConnectionProxyResult"; /** The deleted on-premises organization SAML information. */ onPremOrganizationSamlInfo: OnPremOrganizationSamlInfo; }; export type DeleteSamlConnectionResult = { __typename?: "DeleteSamlConnectionResult"; organizationSamlInfo: OrganizationSamlInfo; }; /** Input for deleting a service user automation. */ export type DeleteServiceUserAutomationInput = { /** The trigger to delete. */ trigger: ServiceUserAutomationTrigger; /** The service user ID. */ userId: Scalars["UserId"]["input"]; }; /** Result of deleting a single tag. */ export type DeleteTagsEntryResult = { __typename?: "DeleteTagsEntryResult"; /** The deleted tag. */ tag: Tag; }; /** Input for deleting tags. */ export type DeleteTagsInput = { /** List of tag IDs to delete. */ ids: Array; }; /** Result of deleting tags. */ export type DeleteTagsOutput = DeleteTagsResult | TagNotFoundError; /** Successful result of deleting tags. */ export type DeleteTagsResult = { __typename?: "DeleteTagsResult"; /** List of deleted tags. */ entries: Array; }; /** Input for deleting a third-party integration. */ export type DeleteThirdPartyIntegrationInput = { /** Connection ID for connection-based integrations. */ connectionId?: InputMaybe; /** The third-party provider to remove the integration for. */ thirdPartyProvider: ThirdPartyProvider; }; /** Result of deleting a third-party integration. */ export type DeleteThirdPartyIntegrationOutput = DeleteThirdPartyIntegrationResult; /** Successful result containing the deleted third-party integration. */ export type DeleteThirdPartyIntegrationResult = { __typename?: "DeleteThirdPartyIntegrationResult"; /** The deleted third-party integration. */ thirdPartyIntegration: ThirdPartyIntegration; }; /** Input for deleting a user. */ export type DeleteUserInput = { /** ID of the user to delete. */ id: Scalars["UserId"]["input"]; }; /** Result of deleting a user. */ export type DeleteUserOutput = DeleteUserResult | OpalAdminRoleMustHaveAtLeastOneDirectUser | SystemUserIsImmutableError | UserIsAssignedToReviewerStagesError | UserNotFoundError; /** Successful result containing the deleted user. */ export type DeleteUserResult = { __typename?: "DeleteUserResult"; /** The deleted user. */ user: User; }; /** Input for bulk deleting multiple users. */ export type DeleteUsersInput = { /** IDs of users to delete. */ userIds: Array; }; /** Result of bulk deleting users. */ export type DeleteUsersOutput = DeleteUsersResult | UserBulkDeletionDisabledError; /** Successful result containing IDs of deleted users. */ export type DeleteUsersResult = { __typename?: "DeleteUsersResult"; /** IDs of successfully deleted users. */ userIds: Array; }; /** Result of deleting webhook configuration. */ export type DeleteWebhookInfoOutput = DeleteWebhookInfoResult; /** Successfully deleted webhook configuration. */ export type DeleteWebhookInfoResult = { __typename?: "DeleteWebhookInfoResult"; /** Whether the deletion was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for denying a request. */ export type DenyRequestInput = { /** Comment explaining the denial */ comment: Scalars["String"]["input"]; /** ID of the request to deny */ id: Scalars["RequestId"]["input"]; /** Decision level */ level?: InputMaybe; }; /** Result or error for deny request operation. */ export type DenyRequestOutput = DenyRequestResult | RequestAlreadyActionedError | RequestNotFoundError; /** Successful result of denying a request. */ export type DenyRequestResult = { __typename?: "DenyRequestResult"; /** The denied request */ request: Request; }; export type DevinConnectionCredentialsInput = { token: Scalars["String"]["input"]; }; export type DevinConnectionMetadata = { __typename?: "DevinConnectionMetadata"; placeholder?: Maybe; }; /** Represents a direct access point with additional metadata about when and how it was granted. */ export type DirectAccessPoint = AccessPoint & { __typename?: "DirectAccessPoint"; /** Access level at this point in the path. */ accessLevel?: Maybe; /** When this direct access was created. */ createdAt: Scalars["Time"]["output"]; /** ID of the entity in this access point. */ entityId: Scalars["EntityId"]["output"]; /** Item type of the entity (e.g., ROLE, PERMISSION_SET). */ entityItemType: Scalars["String"]["output"]; /** Name of the entity in this access point. */ entityName: Scalars["String"]["output"]; /** Type of the entity in this access point. */ entityType: EntityType; /** ID of the event that created this direct access. */ eventId: Scalars["EventId"]["output"]; /** When this access point expires, if applicable. */ expiration?: Maybe; /** ID of the principal in this access point. */ principalId: Scalars["EntityId"]["output"]; /** Name of the principal in this access point. */ principalName: Scalars["String"]["output"]; /** Type of the principal in this access point. */ principalType: EntityType; /** The support ticket associated with this access, if any. */ supportTicket?: Maybe; /** ID of the support ticket associated with this access, if any. */ supportTicketId?: Maybe; }; /** Input for querying direct role assignments. */ export type DirectRoleAssignmentsInput = { /** Cursor for pagination. */ after?: InputMaybe; /** Maximum number of results to return. */ first?: InputMaybe; /** Scope for filtering results. */ scope: RoleAssignmentScope; /** Sort configuration. */ sortBy?: InputMaybe; /** UI source that initiated the query. */ source?: UiSource; }; /** Input for dismissing group binding suggestions. */ export type DismissGroupBindingSuggestionsInput = { /** IDs of suggestions to dismiss. */ ids: Array; }; /** Output for dismissing group binding suggestions. */ export type DismissGroupBindingSuggestionsOutput = DismissGroupBindingSuggestionsResult | GroupBindingSuggestionNotFoundError; /** Result of dismissing group binding suggestions. */ export type DismissGroupBindingSuggestionsResult = { __typename?: "DismissGroupBindingSuggestionsResult"; /** Whether dismissal was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for dismissing recommendations subscores. */ export type DismissRecommendationsSubscoresInput = { /** List of entity keys to dismiss subscores for */ entityKeys: Array; /** Type of subscore to dismiss */ type: RecommendationsSubscoreType; }; /** Output indicating success or failure of dismissing subscores. */ export type DismissRecommendationsSubscoresOutput = { __typename?: "DismissRecommendationsSubscoresOutput"; /** Whether the operation succeeded */ success: Scalars["Boolean"]["output"]; }; /** Input for dismissing sync errors. */ export type DismissSyncErrorsInput = { /** List of sync error IDs to dismiss. */ ids: Array; }; /** Result of dismissing sync errors. */ export type DismissSyncErrorsOutput = DismissSyncErrorsResult | SyncErrorNotFoundError; /** Successful result of dismissing sync errors. */ export type DismissSyncErrorsResult = { __typename?: "DismissSyncErrorsResult"; /** IDs of the dismissed sync errors. */ ids: Array; }; export type DisplayableEntity = { displayName: Scalars["String"]["output"]; id: Scalars["UUID"]["output"]; imageUrl?: Maybe; }; export type DuoConnectionMetadata = { __typename?: "DuoConnectionMetadata"; apiHostname: Scalars["String"]["output"]; }; export type DuoConnectionMetadataInput = { apiHostname: Scalars["String"]["input"]; }; export type DuoCredentialsInput = { integrationKey: Scalars["String"]["input"]; secretKey: Scalars["String"]["input"]; }; /** A duration option available for requesting access. */ export type DurationOption = { __typename?: "DurationOption"; /** Duration in minutes */ durationInMinutes: Scalars["Int"]["output"]; /** Human-readable label for the duration */ label: Scalars["String"]["output"]; }; export type Edge = { cursor: Scalars["String"]["output"]; }; export type EmailAlreadySent = Error & { __typename?: "EmailAlreadySent"; message: Scalars["String"]["output"]; }; /** Error returned when enabling notifications for all users fails. */ export type EnableNotificationsForAllError = Error & { __typename?: "EnableNotificationsForAllError"; /** Error message describing what went wrong. */ message: Scalars["String"]["output"]; }; /** Output type for enableNotificationForAll mutation. */ export type EnableNotificationsForAllOutput = EnableNotificationsForAllError | EnableNotificationsForAllResult; /** Result of enabling notifications for all users. */ export type EnableNotificationsForAllResult = { __typename?: "EnableNotificationsForAllResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Filter events by end date. */ export type EndDateFilter = { /** End date for filtering events. */ date: Scalars["String"]["input"]; }; /** Error returned when authorization to the end system fails. */ export type EndSystemAuthorizationError = Error & { __typename?: "EndSystemAuthorizationError"; message: Scalars["String"]["output"]; }; /** Result containing entities within a specified risk score range. */ export type EntitiesForRiskScoreRangeResult = { __typename?: "EntitiesForRiskScoreRangeResult"; /** List of entities in the risk score range */ entities: Array; }; export type EntitlementRequirementInput = { entitlementNodeProperties?: InputMaybe; }; /** Display information for an entity involved in an event. */ export type EntityDisplayInfo = { __typename?: "EntityDisplayInfo"; /** Avatar URL for the entity. */ avatarURL?: Maybe; /** Connection type if entity is a connection. */ connectionType?: Maybe; /** Group type if entity is a group. */ groupType?: Maybe; /** Third-party provider if applicable. */ provider?: Maybe; /** Resource type if entity is a resource. */ resourceType?: Maybe; }; /** Input for filtering by entity IDs. */ export type EntityIDsFilterInput = { /** List of entity IDs to filter by. */ entityIDs: Array; }; export type EntityIdTuple = { __typename?: "EntityIdTuple"; entityId: Scalars["UUID"]["output"]; entityType: EntityType; }; export type EntityIdTupleInput = { entityId: Scalars["UUID"]["input"]; entityType: EntityType; }; export type EntityNameFilterInput = { string: Scalars["String"]["input"]; stringMatchType: StringMatchType; }; /** Edge representing a permission from one entity to another. */ export type EntityPermissionEdge = Edge & { __typename?: "EntityPermissionEdge"; /** Access details including duration and expiration. */ access?: Maybe; /** The level of access granted. */ accessLevel: AccessLevel; /** Cursor for pagination. */ cursor: Scalars["String"]["output"]; /** The entity granting the permission (e.g., the group). */ from: AccessibleItem; /** The entity receiving the permission (e.g., a resource or nested group). */ node: AccessibleItem; /** Current propagation status to the remote system. */ propagationStatus?: Maybe; }; /** Connection for paginated entity permissions. */ export type EntityPermissionsConnection = PageConnection & { __typename?: "EntityPermissionsConnection"; /** List of permission edges. */ edges: Array; /** Pagination information. */ pageInfo: PageInfo; /** Total count of permission edges (may include multiple access levels per entity). */ totalCount: Scalars["Int"]["output"]; /** Count of unique entities (may be less than totalCount due to stackable access levels). */ totalItemsCount: Scalars["Int"]["output"]; }; /** Filters for entity permissions query. */ export type EntityPermissionsFilters = { /** If true, only return direct permissions (not inherited). */ directAccessOnly?: Scalars["Boolean"]["input"]; /** Filter by entity type (group or resource). */ entityType?: InputMaybe; /** If true, include unmanaged entities. */ includeUnmanaged?: Scalars["Boolean"]["input"]; /** Filter by entity name. */ name?: InputMaybe; /** Filter by propagation status. */ propagationStatuses?: InputMaybe>; }; /** Sorting options for entity permissions. */ export type EntityPermissionsSortBy = { /** Sort direction. */ direction: SortDirection; /** Field to sort by. */ field: EntityPermissionsSortByField; }; /** Field to sort entity permissions by. */ export declare enum EntityPermissionsSortByField { /** Sort by access level name. */ AccessLevelName = "ACCESS_LEVEL_NAME", /** Sort by entity name. */ Name = "NAME" } /** Scope for filtering by entities. */ export type EntityScope = { /** Entity IDs to filter by. */ entityIDs?: InputMaybe>; /** Entity subtypes to filter by. */ entitySubtypes?: InputMaybe; /** Tag IDs to filter entities by. */ entityTagIDs?: InputMaybe>; /** Entity types to filter by. */ entityTypes?: InputMaybe>; }; /** Entity subtypes for filtering. */ export type EntitySubtypes = { /** Group types to filter by. */ groupTypes?: InputMaybe>; /** Resource types to filter by. */ resourceTypes?: InputMaybe>; }; export type EntityTagFilterInput = { connectionID?: InputMaybe; key: Scalars["String"]["input"]; value?: InputMaybe; }; export declare enum EntityType { AccessLevel = "ACCESS_LEVEL", AccessReview = "ACCESS_REVIEW", AccessReviewConnection = "ACCESS_REVIEW_CONNECTION", AccessReviewConnectionUser = "ACCESS_REVIEW_CONNECTION_USER", AccessReviewGroup = "ACCESS_REVIEW_GROUP", AccessReviewGroupGroup = "ACCESS_REVIEW_GROUP_GROUP", AccessReviewGroupResource = "ACCESS_REVIEW_GROUP_RESOURCE", AccessReviewGroupUser = "ACCESS_REVIEW_GROUP_USER", AccessReviewResource = "ACCESS_REVIEW_RESOURCE", AccessReviewResourceResource = "ACCESS_REVIEW_RESOURCE_RESOURCE", AccessReviewResourceUser = "ACCESS_REVIEW_RESOURCE_USER", AccessReviewTemplate = "ACCESS_REVIEW_TEMPLATE", Activity = "ACTIVITY", AuthToken = "AUTH_TOKEN", Bundle = "BUNDLE", ConfigurationTemplate = "CONFIGURATION_TEMPLATE", Connection = "CONNECTION", ConnectionUser = "CONNECTION_USER", Event = "EVENT", EventFilter = "EVENT_FILTER", EventStreamConnection = "EVENT_STREAM_CONNECTION", Group = "GROUP", GroupBinding = "GROUP_BINDING", GroupBindingSuggestion = "GROUP_BINDING_SUGGESTION", GroupFolder = "GROUP_FOLDER", IdpConnection = "IDP_CONNECTION", MessageChannel = "MESSAGE_CHANNEL", OnCallGroup = "ON_CALL_GROUP", OnCallSchedule = "ON_CALL_SCHEDULE", OrgSetting = "ORG_SETTING", Owner = "OWNER", Request = "REQUEST", RequestConfiguration = "REQUEST_CONFIGURATION", RequestTemplate = "REQUEST_TEMPLATE", Resource = "RESOURCE", ResourceFolder = "RESOURCE_FOLDER", ResourceProposal = "RESOURCE_PROPOSAL", ReviewerStage = "REVIEWER_STAGE", SavedQuery = "SAVED_QUERY", SearchQuery = "SEARCH_QUERY", Session = "SESSION", SupportTicket = "SUPPORT_TICKET", Tag = "TAG", User = "USER" } /** Filter for entity types. */ export type EntityTypeFilter = { /** Match entity type equal to this value. */ equals?: InputMaybe; /** Match entity type in this list. */ in?: InputMaybe>; /** Negate the filter. */ not?: InputMaybe; /** Match entity type not in this list. */ notIn?: InputMaybe>; }; export type Error = { message: Scalars["String"]["output"]; }; export type ErrorEntity = { __typename?: "ErrorEntity"; id: EntityIdTuple; name: Scalars["String"]["output"]; }; /** Determines how error notifications are sent within the organization. */ export declare enum ErrorNotificationSettingType { /** Disable error notifications. */ Disabled = "DISABLED", /** Send error notifications to all admins. */ NotifyAdmins = "NOTIFY_ADMINS", /** Send error notifications to the owner of the affected resource. */ NotifyOwner = "NOTIFY_OWNER" } /** Input for escalating a request to skip-level manager. */ export type EscalateRequestToSkipManagerInput = { /** ID of the request to escalate */ id: Scalars["RequestId"]["input"]; }; /** Result or error for escalate request to skip manager operation. */ export type EscalateRequestToSkipManagerOutput = EscalateRequestToSkipManagerResult | ManagerHasAlreadyApprovedError | NoManagerSetForRequestingUserError | NoSkipManagerSetForTargetUserError | RequestAlreadyEscalatedToSkipManagerError | RequestNotFoundError; /** Successful result of escalating a request to skip manager. */ export type EscalateRequestToSkipManagerResult = { __typename?: "EscalateRequestToSkipManagerResult"; /** Whether the operation succeeded */ success: Scalars["Boolean"]["output"]; }; /** An event representing an action or change in the system. */ export type Event = { __typename?: "Event"; /** IP address from which the action was performed. */ actorIP?: Maybe; /** User who performed the action. */ actorUser?: Maybe; /** User agent of the client that performed the action. */ actorUserAgent?: Maybe; /** ID of the user who performed the action. */ actorUserId: Scalars["UserId"]["output"]; /** Label of API token if action was performed via API. */ apiTokenLabel?: Maybe; /** Preview of API token value if action was performed via API. */ apiTokenPreview?: Maybe; /** When the event occurred. */ createdAt: Scalars["Time"]["output"]; /** Type of event. */ eventType: EventType; /** Unique identifier for the event. */ id: Scalars["EventId"]["output"]; /** Number of sub-events that resulted in errors. */ numErrorSubEvents: Scalars["Int"]["output"]; /** Total number of sub-events. */ numSubEvents: Scalars["Int"]["output"]; /** Paginated sub-events associated with this event. */ paginatedSubEvents: PaginatedSubEventsOutput; /** Source connection type that triggered the event. */ source: ConnectionType; /** * Sub-events associated with this event. * @deprecated Use paginatedSubEvents instead */ subEvents: Array; }; /** An event representing an action or change in the system. */ export type EventPaginatedSubEventsArgs = { input?: InputMaybe; }; /** Saved filter configuration for querying events in the audit log. */ export type EventFilter = { __typename?: "EventFilter"; /** The actor user object. */ actor?: Maybe; /** Filter by specific actor (user who performed the action). */ actorId?: Maybe; /** Filter by API token label. */ apiTokenLabel?: Maybe; /** Filter by API token preview (first/last chars). */ apiTokenPreview?: Maybe; /** When this filter was created. */ createdAt: Scalars["Time"]["output"]; /** The user who created this filter. */ creator: User; /** ID of the user who created this filter. */ creatorId: Scalars["UserId"]["output"]; /** End date for filtering events (ISO 8601 format). */ endDate?: Maybe; /** Filter by specific event types. */ eventTypes?: Maybe>; /** Unique identifier for this event filter. */ id: Scalars["EventFilterId"]["output"]; /** Name of the event filter. */ name: Scalars["String"]["output"]; /** Filter by specific object ID that was affected. */ objectId?: Maybe; /** ID of the organization this filter belongs to. */ organizationId: Scalars["OrganizationId"]["output"]; /** Start date for filtering events (ISO 8601 format). */ startDate?: Maybe; /** Whether to include system-generated events. */ systemEvents?: Maybe; }; /** Filter criteria for querying events. */ export type EventFilterFields = { /** Filter by actor. */ actors?: InputMaybe; /** Filter by API token. */ apiTokens?: InputMaybe; /** Filter by end date. */ endDate?: InputMaybe; /** Filter by event types. */ eventTypes?: InputMaybe; /** Filter by affected object. */ objects?: InputMaybe; /** Filter by start date. */ startDate?: InputMaybe; /** Filter system-generated events. */ systemEvents?: InputMaybe; }; /** Error returned when trying to delete an event filter that is currently in use. */ export type EventFilterInUseError = Error & { __typename?: "EventFilterInUseError"; /** List of entities that are using this event filter. */ entities: Array; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** Input for querying a specific event filter. */ export type EventFilterInput = { /** ID of the event filter to fetch. */ id: Scalars["EventFilterId"]["input"]; }; /** Error returned when an event filter is not found. */ export type EventFilterNotFoundError = Error & { __typename?: "EventFilterNotFoundError"; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** Output type for eventFilter query. */ export type EventFilterOutput = EventFilterNotFoundError | EventFilterResult; /** Result containing a single event filter. */ export type EventFilterResult = { __typename?: "EventFilterResult"; /** The event filter. */ eventFilter: EventFilter; }; /** Output type for eventFilters query. */ export type EventFiltersOutput = EventFiltersResult; /** Result containing list of event filters. */ export type EventFiltersResult = { __typename?: "EventFiltersResult"; /** List of event filters. */ eventFilters: Array; }; /** Input for querying a single event. */ export type EventInput = { /** ID of the event to retrieve. */ id: Scalars["EventId"]["input"]; }; /** Error indicating event was not found. */ export type EventNotFoundError = Error & { __typename?: "EventNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Output for querying a single event. */ export type EventOutput = EventNotFoundError | EventResult; /** Result containing a single event. */ export type EventResult = { __typename?: "EventResult"; /** The requested event. */ event: Event; }; /** Severity level for events in the system. */ export declare enum EventSeverity { /** Alert event that requires immediate attention. */ Alert = "ALERT", /** Informational event. */ Info = "INFO", /** Warning event that requires attention. */ Warning = "WARNING" } /** An event stream for publishing events to external systems. */ export type EventStream = { __typename?: "EventStream"; /** The underlying connection configuration. */ connection: PubsubPublishConnection; /** Unique identifier for the event stream. */ id: Scalars["EventStreamId"]["output"]; }; /** Types of events that can occur in the system, tracking all changes and activities. */ export declare enum EventType { AccessExtended = "ACCESS_EXTENDED", AccessReviewsCreated = "ACCESS_REVIEWS_CREATED", AccessReviewsReportUpdated = "ACCESS_REVIEWS_REPORT_UPDATED", AccessReviewsUpdated = "ACCESS_REVIEWS_UPDATED", AccessReviewAutoAssignReviewerByApprovers = "ACCESS_REVIEW_AUTO_ASSIGN_REVIEWER_BY_APPROVERS", AccessReviewAutoAssignReviewerByManager = "ACCESS_REVIEW_AUTO_ASSIGN_REVIEWER_BY_MANAGER", AccessReviewAutoAssignReviewerByOwningTeamAdmin = "ACCESS_REVIEW_AUTO_ASSIGN_REVIEWER_BY_OWNING_TEAM_ADMIN", AccessReviewConnectionReviewed = "ACCESS_REVIEW_CONNECTION_REVIEWED", AccessReviewConnectionReviewersUpdated = "ACCESS_REVIEW_CONNECTION_REVIEWERS_UPDATED", AccessReviewDelegationCreated = "ACCESS_REVIEW_DELEGATION_CREATED", AccessReviewDelegationDeleted = "ACCESS_REVIEW_DELEGATION_DELETED", AccessReviewGroupAccessToGroupAccepted = "ACCESS_REVIEW_GROUP_ACCESS_TO_GROUP_ACCEPTED", AccessReviewGroupAccessToGroupRevoked = "ACCESS_REVIEW_GROUP_ACCESS_TO_GROUP_REVOKED", AccessReviewGroupAccessToGroupRevokedDecision = "ACCESS_REVIEW_GROUP_ACCESS_TO_GROUP_REVOKED_DECISION", AccessReviewGroupReviewed = "ACCESS_REVIEW_GROUP_REVIEWED", AccessReviewGroupReviewersUpdated = "ACCESS_REVIEW_GROUP_REVIEWERS_UPDATED", AccessReviewNhiAccessToResourceAccepted = "ACCESS_REVIEW_NHI_ACCESS_TO_RESOURCE_ACCEPTED", AccessReviewNhiAccessToResourceRevoked = "ACCESS_REVIEW_NHI_ACCESS_TO_RESOURCE_REVOKED", AccessReviewNhiAccessToResourceRevokedDecision = "ACCESS_REVIEW_NHI_ACCESS_TO_RESOURCE_REVOKED_DECISION", AccessReviewResourceAccessToGroupAccepted = "ACCESS_REVIEW_RESOURCE_ACCESS_TO_GROUP_ACCEPTED", AccessReviewResourceAccessToGroupRevoked = "ACCESS_REVIEW_RESOURCE_ACCESS_TO_GROUP_REVOKED", AccessReviewResourceAccessToGroupRevokedDecision = "ACCESS_REVIEW_RESOURCE_ACCESS_TO_GROUP_REVOKED_DECISION", AccessReviewResourceReviewed = "ACCESS_REVIEW_RESOURCE_REVIEWED", AccessReviewResourceReviewersUpdated = "ACCESS_REVIEW_RESOURCE_REVIEWERS_UPDATED", AccessReviewResourceUserSupportTicketLinked = "ACCESS_REVIEW_RESOURCE_USER_SUPPORT_TICKET_LINKED", AccessReviewResourceUserSupportTicketUnlinked = "ACCESS_REVIEW_RESOURCE_USER_SUPPORT_TICKET_UNLINKED", AccessReviewReviewerForConnectionUserSet = "ACCESS_REVIEW_REVIEWER_FOR_CONNECTION_USER_SET", AccessReviewReviewerForGroupGroupSet = "ACCESS_REVIEW_REVIEWER_FOR_GROUP_GROUP_SET", AccessReviewReviewerForGroupResourceSet = "ACCESS_REVIEW_REVIEWER_FOR_GROUP_RESOURCE_SET", AccessReviewReviewerForGroupUserSet = "ACCESS_REVIEW_REVIEWER_FOR_GROUP_USER_SET", AccessReviewReviewerForResourceResourceSet = "ACCESS_REVIEW_REVIEWER_FOR_RESOURCE_RESOURCE_SET", AccessReviewReviewerForResourceUserSet = "ACCESS_REVIEW_REVIEWER_FOR_RESOURCE_USER_SET", AccessReviewReviewPerformed = "ACCESS_REVIEW_REVIEW_PERFORMED", AccessReviewStopped = "ACCESS_REVIEW_STOPPED", AccessReviewTemplatesCreated = "ACCESS_REVIEW_TEMPLATES_CREATED", AccessReviewTemplatesDeleted = "ACCESS_REVIEW_TEMPLATES_DELETED", AccessReviewTemplatesUpdated = "ACCESS_REVIEW_TEMPLATES_UPDATED", AccessReviewUserAccessToConnectionAccepted = "ACCESS_REVIEW_USER_ACCESS_TO_CONNECTION_ACCEPTED", AccessReviewUserAccessToConnectionRevoked = "ACCESS_REVIEW_USER_ACCESS_TO_CONNECTION_REVOKED", AccessReviewUserAccessToConnectionRevokedDecision = "ACCESS_REVIEW_USER_ACCESS_TO_CONNECTION_REVOKED_DECISION", AccessReviewUserAccessToGroupAccepted = "ACCESS_REVIEW_USER_ACCESS_TO_GROUP_ACCEPTED", AccessReviewUserAccessToGroupChanged = "ACCESS_REVIEW_USER_ACCESS_TO_GROUP_CHANGED", AccessReviewUserAccessToGroupChangedDecision = "ACCESS_REVIEW_USER_ACCESS_TO_GROUP_CHANGED_DECISION", AccessReviewUserAccessToGroupChangedFailure = "ACCESS_REVIEW_USER_ACCESS_TO_GROUP_CHANGED_FAILURE", AccessReviewUserAccessToGroupRevoked = "ACCESS_REVIEW_USER_ACCESS_TO_GROUP_REVOKED", AccessReviewUserAccessToGroupRevokedDecision = "ACCESS_REVIEW_USER_ACCESS_TO_GROUP_REVOKED_DECISION", AccessReviewUserAccessToGroupRevokedFromEndSystem = "ACCESS_REVIEW_USER_ACCESS_TO_GROUP_REVOKED_FROM_END_SYSTEM", AccessReviewUserAccessToResourceAccepted = "ACCESS_REVIEW_USER_ACCESS_TO_RESOURCE_ACCEPTED", AccessReviewUserAccessToResourceChanged = "ACCESS_REVIEW_USER_ACCESS_TO_RESOURCE_CHANGED", AccessReviewUserAccessToResourceChangedDecision = "ACCESS_REVIEW_USER_ACCESS_TO_RESOURCE_CHANGED_DECISION", AccessReviewUserAccessToResourceChangedFailure = "ACCESS_REVIEW_USER_ACCESS_TO_RESOURCE_CHANGED_FAILURE", AccessReviewUserAccessToResourceRevoked = "ACCESS_REVIEW_USER_ACCESS_TO_RESOURCE_REVOKED", AccessReviewUserAccessToResourceRevokedDecision = "ACCESS_REVIEW_USER_ACCESS_TO_RESOURCE_REVOKED_DECISION", AccessReviewUserAccessToResourceRevokedFromEndSystem = "ACCESS_REVIEW_USER_ACCESS_TO_RESOURCE_REVOKED_FROM_END_SYSTEM", AccessRuleFailsafeTriggered = "ACCESS_RULE_FAILSAFE_TRIGGERED", ApiTokenCreated = "API_TOKEN_CREATED", ApiTokenDeleted = "API_TOKEN_DELETED", BreakGlassUsed = "BREAK_GLASS_USED", BreakGlassUsersAddedToGroups = "BREAK_GLASS_USERS_ADDED_TO_GROUPS", BreakGlassUsersRemovedFromGroups = "BREAK_GLASS_USERS_REMOVED_FROM_GROUPS", BundlesCreated = "BUNDLES_CREATED", BundlesDeleted = "BUNDLES_DELETED", BundlesUpdated = "BUNDLES_UPDATED", BundleGroupsAdded = "BUNDLE_GROUPS_ADDED", BundleGroupsRemoved = "BUNDLE_GROUPS_REMOVED", BundleResourcesAdded = "BUNDLE_RESOURCES_ADDED", BundleResourcesRemoved = "BUNDLE_RESOURCES_REMOVED", CatalogItemHidden = "CATALOG_ITEM_HIDDEN", CatalogItemUnhidden = "CATALOG_ITEM_UNHIDDEN", CatalogUpdated = "CATALOG_UPDATED", ConfigurationTemplateAdminOwnerUpdated = "CONFIGURATION_TEMPLATE_ADMIN_OWNER_UPDATED", ConfigurationTemplateAuditMessageChannelUpdated = "CONFIGURATION_TEMPLATE_AUDIT_MESSAGE_CHANNEL_UPDATED", ConfigurationTemplateBreakGlassUsersUpdated = "CONFIGURATION_TEMPLATE_BREAK_GLASS_USERS_UPDATED", ConfigurationTemplateCreated = "CONFIGURATION_TEMPLATE_CREATED", ConfigurationTemplateCustomRequestNotificationUpdated = "CONFIGURATION_TEMPLATE_CUSTOM_REQUEST_NOTIFICATION_UPDATED", ConfigurationTemplateDeleted = "CONFIGURATION_TEMPLATE_DELETED", ConfigurationTemplateMaxDirectUsersAllowedUpdated = "CONFIGURATION_TEMPLATE_MAX_DIRECT_USERS_ALLOWED_UPDATED", ConfigurationTemplateMaxUsersExceededMessageUpdated = "CONFIGURATION_TEMPLATE_MAX_USERS_EXCEEDED_MESSAGE_UPDATED", ConfigurationTemplateNameUpdated = "CONFIGURATION_TEMPLATE_NAME_UPDATED", ConfigurationTemplateOncallSchedulesUpdated = "CONFIGURATION_TEMPLATE_ONCALL_SCHEDULES_UPDATED", ConfigurationTemplateRequestConfigDeleted = "CONFIGURATION_TEMPLATE_REQUEST_CONFIG_DELETED", ConfigurationTemplateRequestConfigUpdated = "CONFIGURATION_TEMPLATE_REQUEST_CONFIG_UPDATED", ConfigurationTemplateRequireMfaToApproveUpdated = "CONFIGURATION_TEMPLATE_REQUIRE_MFA_TO_APPROVE_UPDATED", ConfigurationTemplateRequireMfaToConnectUpdated = "CONFIGURATION_TEMPLATE_REQUIRE_MFA_TO_CONNECT_UPDATED", ConfigurationTemplateTicketPropagationUpdated = "CONFIGURATION_TEMPLATE_TICKET_PROPAGATION_UPDATED", ConfigurationTemplateUpdated = "CONFIGURATION_TEMPLATE_UPDATED", ConfigurationTemplateVisibilityGroupsUpdated = "CONFIGURATION_TEMPLATE_VISIBILITY_GROUPS_UPDATED", ConfigurationTemplateVisibilityUpdated = "CONFIGURATION_TEMPLATE_VISIBILITY_UPDATED", ConnectionsCreated = "CONNECTIONS_CREATED", ConnectionsDeleted = "CONNECTIONS_DELETED", ConnectionsUpdated = "CONNECTIONS_UPDATED", ConnectionAdminOwnerUpdated = "CONNECTION_ADMIN_OWNER_UPDATED", ConnectionAppVisibilityGroupsAdded = "CONNECTION_APP_VISIBILITY_GROUPS_ADDED", ConnectionAppVisibilityGroupsChanged = "CONNECTION_APP_VISIBILITY_GROUPS_CHANGED", ConnectionAppVisibilityGroupsRemoved = "CONNECTION_APP_VISIBILITY_GROUPS_REMOVED", ConnectionAutoImportConfigTemplateUpdated = "CONNECTION_AUTO_IMPORT_CONFIG_TEMPLATE_UPDATED", ConnectionAutoImportGroupResourcesUpdated = "CONNECTION_AUTO_IMPORT_GROUP_RESOURCES_UPDATED", ConnectionCredentialsUpdated = "CONNECTION_CREDENTIALS_UPDATED", ConnectionDescriptionUpdated = "CONNECTION_DESCRIPTION_UPDATED", ConnectionImportSettingUpdated = "CONNECTION_IMPORT_SETTING_UPDATED", ConnectionImportVisibilityUpdated = "CONNECTION_IMPORT_VISIBILITY_UPDATED", ConnectionMetadataUpdated = "CONNECTION_METADATA_UPDATED", ConnectionNameUpdated = "CONNECTION_NAME_UPDATED", ConnectionUsersUpdated = "CONNECTION_USERS_UPDATED", ConnectionVisibilityGroupsAdded = "CONNECTION_VISIBILITY_GROUPS_ADDED", ConnectionVisibilityGroupsRemoved = "CONNECTION_VISIBILITY_GROUPS_REMOVED", ConnectionVisibilityUpdated = "CONNECTION_VISIBILITY_UPDATED", ConnectionWebhookEnabledUpdated = "CONNECTION_WEBHOOK_ENABLED_UPDATED", EntityTagAdded = "ENTITY_TAG_ADDED", EntityTagRemoved = "ENTITY_TAG_REMOVED", EventMonitorEventsDetected = "EVENT_MONITOR_EVENTS_DETECTED", EventStreamConnectionsCreated = "EVENT_STREAM_CONNECTIONS_CREATED", EventStreamConnectionsDeleted = "EVENT_STREAM_CONNECTIONS_DELETED", EventStreamConnectionsTested = "EVENT_STREAM_CONNECTIONS_TESTED", EventStreamConnectionsUpdated = "EVENT_STREAM_CONNECTIONS_UPDATED", GroupsAddedToFolders = "GROUPS_ADDED_TO_FOLDERS", GroupsAddedToGroups = "GROUPS_ADDED_TO_GROUPS", GroupsCreated = "GROUPS_CREATED", GroupsDeleted = "GROUPS_DELETED", GroupsRemovedFromFolders = "GROUPS_REMOVED_FROM_FOLDERS", GroupsRemovedFromGroups = "GROUPS_REMOVED_FROM_GROUPS", GroupsUpdated = "GROUPS_UPDATED", GroupAccessRequestEscalationPeriodUpdated = "GROUP_ACCESS_REQUEST_ESCALATION_PERIOD_UPDATED", GroupAddedToBinding = "GROUP_ADDED_TO_BINDING", GroupAdminOwnerUpdated = "GROUP_ADMIN_OWNER_UPDATED", GroupAutoApprovalUpdated = "GROUP_AUTO_APPROVAL_UPDATED", GroupBindingCreated = "GROUP_BINDING_CREATED", GroupBindingDeleted = "GROUP_BINDING_DELETED", GroupBindingSourceGroupUpdated = "GROUP_BINDING_SOURCE_GROUP_UPDATED", GroupBindingUpdated = "GROUP_BINDING_UPDATED", GroupConfigurationTemplateUpdated = "GROUP_CONFIGURATION_TEMPLATE_UPDATED", GroupCustomRequestNotificationUpdated = "GROUP_CUSTOM_REQUEST_NOTIFICATION_UPDATED", GroupExtensionsDurationInMinutesUpdated = "GROUP_EXTENSIONS_DURATION_IN_MINUTES_UPDATED", GroupExtensionsEnabledUpdated = "GROUP_EXTENSIONS_ENABLED_UPDATED", GroupFoldersCreated = "GROUP_FOLDERS_CREATED", GroupFoldersDeleted = "GROUP_FOLDERS_DELETED", GroupFunctionUpdated = "GROUP_FUNCTION_UPDATED", GroupGroupsUpdated = "GROUP_GROUPS_UPDATED", GroupIsRequestableUpdated = "GROUP_IS_REQUESTABLE_UPDATED", GroupLeadersCreated = "GROUP_LEADERS_CREATED", GroupLeadersRemoved = "GROUP_LEADERS_REMOVED", GroupMaxDirectUsersAllowedUpdated = "GROUP_MAX_DIRECT_USERS_ALLOWED_UPDATED", GroupMaxDurationUpdated = "GROUP_MAX_DURATION_UPDATED", GroupMaxUsersExceededMessageUpdated = "GROUP_MAX_USERS_EXCEEDED_MESSAGE_UPDATED", GroupNameUpdated = "GROUP_NAME_UPDATED", GroupRecommendedDurationUpdated = "GROUP_RECOMMENDED_DURATION_UPDATED", GroupRemovedFromBinding = "GROUP_REMOVED_FROM_BINDING", GroupRequestRequireMfaUpdated = "GROUP_REQUEST_REQUIRE_MFA_UPDATED", GroupRequireManagerApprovalUpdated = "GROUP_REQUIRE_MANAGER_APPROVAL_UPDATED", GroupRequireMfaUpdated = "GROUP_REQUIRE_MFA_UPDATED", GroupRequireSupportTicketUpdated = "GROUP_REQUIRE_SUPPORT_TICKET_UPDATED", GroupResourcesUpdated = "GROUP_RESOURCES_UPDATED", GroupReviewerStageCreated = "GROUP_REVIEWER_STAGE_CREATED", GroupReviewerStageDeleted = "GROUP_REVIEWER_STAGE_DELETED", GroupReviewerStageUpdated = "GROUP_REVIEWER_STAGE_UPDATED", GroupUsersUpdated = "GROUP_USERS_UPDATED", GroupVisibilityGroupsAdded = "GROUP_VISIBILITY_GROUPS_ADDED", GroupVisibilityGroupsRemoved = "GROUP_VISIBILITY_GROUPS_REMOVED", GroupVisibilityUpdated = "GROUP_VISIBILITY_UPDATED", IdpConnectionsCreated = "IDP_CONNECTIONS_CREATED", IdpConnectionsDeleted = "IDP_CONNECTIONS_DELETED", IdpConnectionsUpdated = "IDP_CONNECTIONS_UPDATED", IdpConnectionUserAttributeMappingCreated = "IDP_CONNECTION_USER_ATTRIBUTE_MAPPING_CREATED", IdpConnectionUserAttributeMappingDeleted = "IDP_CONNECTION_USER_ATTRIBUTE_MAPPING_DELETED", IdpGroupMappingCreated = "IDP_GROUP_MAPPING_CREATED", IdpGroupMappingDeleted = "IDP_GROUP_MAPPING_DELETED", IdpGroupMappingSyncedOnGroupAccessChange = "IDP_GROUP_MAPPING_SYNCED_ON_GROUP_ACCESS_CHANGE", IdpGroupMappingUpdated = "IDP_GROUP_MAPPING_UPDATED", IdpStatusActive = "IDP_STATUS_ACTIVE", IdpStatusDeleted = "IDP_STATUS_DELETED", IdpStatusDeprovisioned = "IDP_STATUS_DEPROVISIONED", IdpStatusInactive = "IDP_STATUS_INACTIVE", IdpStatusNotFound = "IDP_STATUS_NOT_FOUND", ImpersonationSessionStarted = "IMPERSONATION_SESSION_STARTED", ImpersonationSessionStopped = "IMPERSONATION_SESSION_STOPPED", IpZoneCreated = "IP_ZONE_CREATED", IpZoneDeleted = "IP_ZONE_DELETED", IpZoneUpdated = "IP_ZONE_UPDATED", MessageChannelsAddedToGroups = "MESSAGE_CHANNELS_ADDED_TO_GROUPS", MessageChannelsAddedToResources = "MESSAGE_CHANNELS_ADDED_TO_RESOURCES", MessageChannelsCreated = "MESSAGE_CHANNELS_CREATED", MessageChannelsDeleted = "MESSAGE_CHANNELS_DELETED", MessageChannelsRemovedFromGroups = "MESSAGE_CHANNELS_REMOVED_FROM_GROUPS", MessageChannelsRemovedFromResources = "MESSAGE_CHANNELS_REMOVED_FROM_RESOURCES", MessageChannelsUpdated = "MESSAGE_CHANNELS_UPDATED", OnCallSchedulesAddedToGroups = "ON_CALL_SCHEDULES_ADDED_TO_GROUPS", OnCallSchedulesCreated = "ON_CALL_SCHEDULES_CREATED", OnCallSchedulesDeleted = "ON_CALL_SCHEDULES_DELETED", OnCallSchedulesRemovedFromGroups = "ON_CALL_SCHEDULES_REMOVED_FROM_GROUPS", OnCallSchedulesUpdated = "ON_CALL_SCHEDULES_UPDATED", OnCallSchedulesUpdatedForGroups = "ON_CALL_SCHEDULES_UPDATED_FOR_GROUPS", OrgSettingsUpdated = "ORG_SETTINGS_UPDATED", OwnersCreated = "OWNERS_CREATED", OwnersDeleted = "OWNERS_DELETED", OwnersUpdated = "OWNERS_UPDATED", OwnerReviewerChannelRemoved = "OWNER_REVIEWER_CHANNEL_REMOVED", OwnerReviewerChannelUpdated = "OWNER_REVIEWER_CHANNEL_UPDATED", OwnerSourceGroupRemoved = "OWNER_SOURCE_GROUP_REMOVED", OwnerSourceGroupUpdated = "OWNER_SOURCE_GROUP_UPDATED", OwnerUsersAdded = "OWNER_USERS_ADDED", OwnerUsersRemoved = "OWNER_USERS_REMOVED", OwnerUsersUpdated = "OWNER_USERS_UPDATED", PropagatedAddResourceToGroup = "PROPAGATED_ADD_RESOURCE_TO_GROUP", PropagatedAddUserToGroup = "PROPAGATED_ADD_USER_TO_GROUP", PropagatedAddUserToResource = "PROPAGATED_ADD_USER_TO_RESOURCE", PropagatedRemoveResourceFromGroup = "PROPAGATED_REMOVE_RESOURCE_FROM_GROUP", PropagatedRemoveUserFromConnection = "PROPAGATED_REMOVE_USER_FROM_CONNECTION", PropagatedRemoveUserFromGroup = "PROPAGATED_REMOVE_USER_FROM_GROUP", PropagatedRemoveUserFromResource = "PROPAGATED_REMOVE_USER_FROM_RESOURCE", PropagationComputeRemoteUserPushTasks = "PROPAGATION_COMPUTE_REMOTE_USER_PUSH_TASKS", PropagationFailureAddResourceToGroup = "PROPAGATION_FAILURE_ADD_RESOURCE_TO_GROUP", PropagationFailureAddUserToConnection = "PROPAGATION_FAILURE_ADD_USER_TO_CONNECTION", PropagationFailureAddUserToGroup = "PROPAGATION_FAILURE_ADD_USER_TO_GROUP", PropagationFailureAddUserToResource = "PROPAGATION_FAILURE_ADD_USER_TO_RESOURCE", PropagationFailureRemoveResourceFromGroup = "PROPAGATION_FAILURE_REMOVE_RESOURCE_FROM_GROUP", PropagationFailureRemoveUserFromConnection = "PROPAGATION_FAILURE_REMOVE_USER_FROM_CONNECTION", PropagationFailureRemoveUserFromGroup = "PROPAGATION_FAILURE_REMOVE_USER_FROM_GROUP", PropagationFailureRemoveUserFromResource = "PROPAGATION_FAILURE_REMOVE_USER_FROM_RESOURCE", PropagationFailureRoleAssignmentCreated = "PROPAGATION_FAILURE_ROLE_ASSIGNMENT_CREATED", PropagationFailureRoleAssignmentDeleted = "PROPAGATION_FAILURE_ROLE_ASSIGNMENT_DELETED", PropagationManualAddUserToResource = "PROPAGATION_MANUAL_ADD_USER_TO_RESOURCE", PropagationManualRemoveUserFromResource = "PROPAGATION_MANUAL_REMOVE_USER_FROM_RESOURCE", PropagationSuccessAddResourceToGroup = "PROPAGATION_SUCCESS_ADD_RESOURCE_TO_GROUP", PropagationSuccessAddUserToConnection = "PROPAGATION_SUCCESS_ADD_USER_TO_CONNECTION", PropagationSuccessAddUserToGroup = "PROPAGATION_SUCCESS_ADD_USER_TO_GROUP", PropagationSuccessAddUserToResource = "PROPAGATION_SUCCESS_ADD_USER_TO_RESOURCE", PropagationSuccessRemoveResourceFromGroup = "PROPAGATION_SUCCESS_REMOVE_RESOURCE_FROM_GROUP", PropagationSuccessRemoveUserFromConnection = "PROPAGATION_SUCCESS_REMOVE_USER_FROM_CONNECTION", PropagationSuccessRemoveUserFromGroup = "PROPAGATION_SUCCESS_REMOVE_USER_FROM_GROUP", PropagationSuccessRemoveUserFromResource = "PROPAGATION_SUCCESS_REMOVE_USER_FROM_RESOURCE", PropagationSuccessRoleAssignmentCreated = "PROPAGATION_SUCCESS_ROLE_ASSIGNMENT_CREATED", PropagationSuccessRoleAssignmentDeleted = "PROPAGATION_SUCCESS_ROLE_ASSIGNMENT_DELETED", PropagationTicketCreatedRemotely = "PROPAGATION_TICKET_CREATED_REMOTELY", PropagationTicketUpdatedRemotely = "PROPAGATION_TICKET_UPDATED_REMOTELY", PropagationTimedOut = "PROPAGATION_TIMED_OUT", QueryExported = "QUERY_EXPORTED", RemoteEventGroupsCreated = "REMOTE_EVENT_GROUPS_CREATED", RemoteEventGroupsDeleted = "REMOTE_EVENT_GROUPS_DELETED", /** Deprecated. Please use REMOTE_EVENT_USER_ADDED_TO_GROUP */ RemoteEventGroupAccessAdded = "REMOTE_EVENT_GROUP_ACCESS_ADDED", /** Deprecated. Please use REMOTE_EVENT_USER_REMOVED_FROM_GROUP */ RemoteEventGroupAccessRemoved = "REMOTE_EVENT_GROUP_ACCESS_REMOVED", RemoteEventGroupAddedToResource = "REMOTE_EVENT_GROUP_ADDED_TO_RESOURCE", RemoteEventGroupRemovedFromResource = "REMOTE_EVENT_GROUP_REMOVED_FROM_RESOURCE", RemoteEventGroupUsed = "REMOTE_EVENT_GROUP_USED", RemoteEventLoginSuccess = "REMOTE_EVENT_LOGIN_SUCCESS", RemoteEventResourcesCreated = "REMOTE_EVENT_RESOURCES_CREATED", RemoteEventResourcesDeleted = "REMOTE_EVENT_RESOURCES_DELETED", /** Deprecated. Please use REMOTE_EVENT_USER_ADDED_TO_RESOURCE */ RemoteEventResourceAccessAdded = "REMOTE_EVENT_RESOURCE_ACCESS_ADDED", /** Deprecated. Please use REMOTE_EVENT_USER_REMOVED_FROM_RESOURCE */ RemoteEventResourceAccessRemoved = "REMOTE_EVENT_RESOURCE_ACCESS_REMOVED", RemoteEventResourceRead = "REMOTE_EVENT_RESOURCE_READ", RemoteEventUserAddedToGroup = "REMOTE_EVENT_USER_ADDED_TO_GROUP", RemoteEventUserAddedToResource = "REMOTE_EVENT_USER_ADDED_TO_RESOURCE", RemoteEventUserPasswordExpired = "REMOTE_EVENT_USER_PASSWORD_EXPIRED", RemoteEventUserPasswordReset = "REMOTE_EVENT_USER_PASSWORD_RESET", RemoteEventUserPasswordUpdated = "REMOTE_EVENT_USER_PASSWORD_UPDATED", RemoteEventUserRemovedFromGroup = "REMOTE_EVENT_USER_REMOVED_FROM_GROUP", RemoteEventUserRemovedFromResource = "REMOTE_EVENT_USER_REMOVED_FROM_RESOURCE", RequestsAdminApproved = "REQUESTS_ADMIN_APPROVED", RequestsAdminDenied = "REQUESTS_ADMIN_DENIED", RequestsApproved = "REQUESTS_APPROVED", RequestsCanceled = "REQUESTS_CANCELED", RequestsCreated = "REQUESTS_CREATED", RequestsDenied = "REQUESTS_DENIED", RequestCommentAdded = "REQUEST_COMMENT_ADDED", RequestGroupRequested = "REQUEST_GROUP_REQUESTED", RequestResourceRequested = "REQUEST_RESOURCE_REQUESTED", RequestReviewersAddedToRequests = "REQUEST_REVIEWERS_ADDED_TO_REQUESTS", RequestReviewersApproved = "REQUEST_REVIEWERS_APPROVED", RequestReviewersApprovedOnBehalfOf = "REQUEST_REVIEWERS_APPROVED_ON_BEHALF_OF", RequestReviewersDenied = "REQUEST_REVIEWERS_DENIED", RequestSkipManagerAddedToRequests = "REQUEST_SKIP_MANAGER_ADDED_TO_REQUESTS", RequestSupportTicketAdded = "REQUEST_SUPPORT_TICKET_ADDED", RequestSyncTicketClosed = "REQUEST_SYNC_TICKET_CLOSED", RequestSyncTicketCommented = "REQUEST_SYNC_TICKET_COMMENTED", RequestSyncTicketCreated = "REQUEST_SYNC_TICKET_CREATED", RequestSyncTicketError = "REQUEST_SYNC_TICKET_ERROR", RequestSyncTicketUpdated = "REQUEST_SYNC_TICKET_UPDATED", ResourcesAddedToFolders = "RESOURCES_ADDED_TO_FOLDERS", ResourcesAddedToGroups = "RESOURCES_ADDED_TO_GROUPS", ResourcesCreated = "RESOURCES_CREATED", ResourcesDeleted = "RESOURCES_DELETED", ResourcesRemovedFromFolders = "RESOURCES_REMOVED_FROM_FOLDERS", ResourcesRemovedFromGroups = "RESOURCES_REMOVED_FROM_GROUPS", ResourcesUpdated = "RESOURCES_UPDATED", ResourceAdminOwnerUpdated = "RESOURCE_ADMIN_OWNER_UPDATED", ResourceApproveRequireMfaUpdated = "RESOURCE_APPROVE_REQUIRE_MFA_UPDATED", ResourceAutoApprovalUpdated = "RESOURCE_AUTO_APPROVAL_UPDATED", ResourceAutoImportConfigTemplateUpdated = "RESOURCE_AUTO_IMPORT_CONFIG_TEMPLATE_UPDATED", ResourceConfigurationTemplateUpdated = "RESOURCE_CONFIGURATION_TEMPLATE_UPDATED", ResourceConnectRequireMfaUpdated = "RESOURCE_CONNECT_REQUIRE_MFA_UPDATED", ResourceCustomRequestNotificationUpdated = "RESOURCE_CUSTOM_REQUEST_NOTIFICATION_UPDATED", ResourceExtensionsDurationInMinutesUpdated = "RESOURCE_EXTENSIONS_DURATION_IN_MINUTES_UPDATED", ResourceExtensionsEnabledUpdated = "RESOURCE_EXTENSIONS_ENABLED_UPDATED", ResourceFoldersCreated = "RESOURCE_FOLDERS_CREATED", ResourceFoldersDeleted = "RESOURCE_FOLDERS_DELETED", ResourceIsRequestableUpdated = "RESOURCE_IS_REQUESTABLE_UPDATED", ResourceMaxDirectUsersAllowedUpdated = "RESOURCE_MAX_DIRECT_USERS_ALLOWED_UPDATED", ResourceMaxDurationUpdated = "RESOURCE_MAX_DURATION_UPDATED", ResourceMaxUsersExceededMessageUpdated = "RESOURCE_MAX_USERS_EXCEEDED_MESSAGE_UPDATED", ResourceNameUpdated = "RESOURCE_NAME_UPDATED", ResourceRecommendedDurationUpdated = "RESOURCE_RECOMMENDED_DURATION_UPDATED", ResourceRequestRequireMfaUpdated = "RESOURCE_REQUEST_REQUIRE_MFA_UPDATED", ResourceRequireManagerApprovalUpdated = "RESOURCE_REQUIRE_MANAGER_APPROVAL_UPDATED", ResourceRequireSupportTicketUpdated = "RESOURCE_REQUIRE_SUPPORT_TICKET_UPDATED", ResourceReviewerStageCreated = "RESOURCE_REVIEWER_STAGE_CREATED", ResourceReviewerStageDeleted = "RESOURCE_REVIEWER_STAGE_DELETED", ResourceReviewerStageUpdated = "RESOURCE_REVIEWER_STAGE_UPDATED", ResourceTicketPropagationUpdated = "RESOURCE_TICKET_PROPAGATION_UPDATED", ResourceUsersUpdated = "RESOURCE_USERS_UPDATED", ResourceVisibilityGroupsAdded = "RESOURCE_VISIBILITY_GROUPS_ADDED", ResourceVisibilityGroupsRemoved = "RESOURCE_VISIBILITY_GROUPS_REMOVED", ResourceVisibilityUpdated = "RESOURCE_VISIBILITY_UPDATED", ReviewersAddedToGroups = "REVIEWERS_ADDED_TO_GROUPS", ReviewersAddedToResources = "REVIEWERS_ADDED_TO_RESOURCES", ReviewersEscalated = "REVIEWERS_ESCALATED", ReviewersReminded = "REVIEWERS_REMINDED", ReviewersRemovedFromGroups = "REVIEWERS_REMOVED_FROM_GROUPS", ReviewersRemovedFromResources = "REVIEWERS_REMOVED_FROM_RESOURCES", RoleAssignmentsCreated = "ROLE_ASSIGNMENTS_CREATED", RoleAssignmentsDeleted = "ROLE_ASSIGNMENTS_DELETED", RoleAssignmentsUpdated = "ROLE_ASSIGNMENTS_UPDATED", SessionsCreatedForResources = "SESSIONS_CREATED_FOR_RESOURCES", SoonToExpireNotification = "SOON_TO_EXPIRE_NOTIFICATION", ThirdPartyIntegrationCreated = "THIRD_PARTY_INTEGRATION_CREATED", ThirdPartyIntegrationDeleted = "THIRD_PARTY_INTEGRATION_DELETED", ToxicSetViolationsCreated = "TOXIC_SET_VIOLATIONS_CREATED", ToxicSetViolationsRemediated = "TOXIC_SET_VIOLATIONS_REMEDIATED", ToxicSetViolationsUpdated = "TOXIC_SET_VIOLATIONS_UPDATED", UsersAddedToConnections = "USERS_ADDED_TO_CONNECTIONS", UsersAddedToGroups = "USERS_ADDED_TO_GROUPS", UsersAddedToResources = "USERS_ADDED_TO_RESOURCES", UsersCreated = "USERS_CREATED", UsersDeleted = "USERS_DELETED", UsersRemovedFromConnections = "USERS_REMOVED_FROM_CONNECTIONS", UsersRemovedFromGroups = "USERS_REMOVED_FROM_GROUPS", UsersRemovedFromResources = "USERS_REMOVED_FROM_RESOURCES", UsersUpdated = "USERS_UPDATED", UserEmailUpdated = "USER_EMAIL_UPDATED", UserLoggedInOauth = "USER_LOGGED_IN_OAUTH", UserLoggedInSaml = "USER_LOGGED_IN_SAML", UserManagerUpdated = "USER_MANAGER_UPDATED", UserMerged = "USER_MERGED", UserMfaReset = "USER_MFA_RESET", UserNameUpdated = "USER_NAME_UPDATED", UserNotificationFailed = "USER_NOTIFICATION_FAILED", UserNotified = "USER_NOTIFIED", UserNotNotified = "USER_NOT_NOTIFIED", UserPositionUpdated = "USER_POSITION_UPDATED", UserRemoteIdUpdated = "USER_REMOTE_ID_UPDATED", UserTeamAttrUpdated = "USER_TEAM_ATTR_UPDATED", UserTeamUpdated = "USER_TEAM_UPDATED" } /** Filter events by event type. */ export type EventTypeFilter = { /** List of event types to filter by. */ eventTypes?: InputMaybe>; }; /** Input for querying multiple events. */ export type EventsInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Filter criteria. */ filter?: InputMaybe; /** Maximum number of entries to return. */ maxNumEntries?: InputMaybe; }; /** Output for querying multiple events. */ export type EventsOutput = EventsResult | InvalidObjectIdFilterError; /** Result containing list of events. */ export type EventsResult = { __typename?: "EventsResult"; /** Cursor for next page. */ cursor?: Maybe; /** List of events. */ events: Array; }; /** Exclusions applied to a rule. */ export type Exclusion = { __typename?: "Exclusion"; /** Users excluded from the rule */ users: Array; }; /** Result of extending a role assignment. */ export type ExtendRoleAssignmentOutput = RoleAssignment | UserFacingError; /** An event from an external system. */ export type ExternalEvent = Node & { __typename?: "ExternalEvent"; /** The actor (user or service account) who performed the action. */ actor: Principal; /** ID of the actor who performed the action. */ actorID?: Maybe; /** Connection where the event originated. */ connection: Connection; /** ID of the connection where the event originated. */ connectionID: Scalars["ConnectionId"]["output"]; /** When the event was recorded in Opal. */ createdAt: Scalars["Time"]["output"]; /** Display info for the primary entity. */ entity: EntityDisplayInfo; /** ID of the primary entity involved. */ entityID: EntityIdTuple; /** When the event occurred in the external system. */ eventTime: Scalars["Time"]["output"]; /** Type of event. */ eventType: ExternalEventType; /** Unique identifier for the external event. */ id: Scalars["UUID"]["output"]; /** Remote event ID from the external system. */ remoteID: Scalars["RemoteEventId"]["output"]; /** Display info for the secondary entity. */ secondaryEntity?: Maybe; /** ID of the secondary entity involved. */ secondaryEntityID?: Maybe; }; /** Connection type for paginated external events. */ export type ExternalEventConnection = PageConnection & { __typename?: "ExternalEventConnection"; /** List of external event edges. */ edges: Array; /** Page information for pagination. */ pageInfo: PageInfo; /** Total number of external events. */ totalCount: Scalars["Int"]["output"]; }; /** Edge type for external event connections. */ export type ExternalEventEdge = Edge & { __typename?: "ExternalEventEdge"; /** Cursor for pagination. */ cursor: Scalars["String"]["output"]; /** The external event node. */ node: ExternalEvent; }; /** Types of events that can be received from external systems. */ export declare enum ExternalEventType { /** Groups were created. */ GroupsCreated = "GROUPS_CREATED", /** Groups were deleted. */ GroupsDeleted = "GROUPS_DELETED", /** Group was added to a resource. */ GroupAddedToResource = "GROUP_ADDED_TO_RESOURCE", /** Group was removed from a resource. */ GroupRemovedFromResource = "GROUP_REMOVED_FROM_RESOURCE", /** Group was used/accessed. */ GroupUsed = "GROUP_USED", /** User logged in successfully. */ LoginSuccess = "LOGIN_SUCCESS", /** Resources were created. */ ResourcesCreated = "RESOURCES_CREATED", /** Resources were deleted. */ ResourcesDeleted = "RESOURCES_DELETED", /** Resource was read/accessed. */ ResourceRead = "RESOURCE_READ", /** User was added to a group. */ UserAddedToGroup = "USER_ADDED_TO_GROUP", /** User was added to a resource. */ UserAddedToResource = "USER_ADDED_TO_RESOURCE", /** User was removed from a group. */ UserRemovedFromGroup = "USER_REMOVED_FROM_GROUP", /** User was removed from a resource. */ UserRemovedFromResource = "USER_REMOVED_FROM_RESOURCE" } /** Filters for querying external events. */ export type ExternalEventsFilters = { /** Actor entity to filter by (optional). */ actor?: InputMaybe; /** Secondary entity to filter by (required). */ secondaryEntity: EntityIdTupleInput; }; /** Sort options for external events. */ export type ExternalEventsSortBy = { /** Sort direction. */ direction: SortDirection; /** Field to sort by. */ field: ExternalEventsSortByFields; }; /** Fields that can be used to sort external events. */ export declare enum ExternalEventsSortByFields { /** Sort by event time. */ EventTime = "EVENT_TIME" } /** A multi-factor authentication factor for a user. */ export type Factor = { __typename?: "Factor"; /** When the factor was created. */ factorCreatedAt?: Maybe; /** Remote ID of the factor in the identity provider. */ factorRemoteId: Scalars["UserFactorRemoteId"]["output"]; /** Type of MFA factor. */ factorType: FactorType; }; /** Error returned when an MFA factor is not found. */ export type FactorNotFoundError = Error & { __typename?: "FactorNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Type of MFA factor. */ export declare enum FactorType { /** Okta Push notification factor. */ OktaPush = "OKTA_PUSH", /** Okta TOTP (Time-based One-Time Password) factor. */ OktaTotp = "OKTA_TOTP" } /** Input for a single filter. Only one field should be set. */ export type FilterInput = { /** Filter by admins. */ adminsFilter?: InputMaybe; /** Filter by connections. */ connectionsFilter?: InputMaybe; /** Filter by entity IDs. */ entityIDsFilter?: InputMaybe; /** Nested filters with their own match mode. */ filtersFilter?: InputMaybe; /** Filter by group types. */ groupTypesFilter?: InputMaybe; /** Filter by names. */ namesFilter?: InputMaybe; /** Filter by resource types. */ resourceTypesFilter?: InputMaybe; /** Filter by tags. */ tagFilter?: InputMaybe; /** Filter by users. */ usersFilter?: InputMaybe; }; /** Rule for combining multiple filters. */ export declare enum FilterRule { MatchAll = "MATCH_ALL", MatchAny = "MATCH_ANY" } /** Input for fetching filtered connections. */ export type FilteredConnectionsInput = { /** Filters to apply when fetching connections. */ filters?: InputMaybe; }; /** Result of fetching filtered connections. */ export type FilteredConnectionsOutput = { __typename?: "FilteredConnectionsOutput"; /** List of connections matching the filters. */ connections: Array; }; /** Input for filtered groups query. */ export type FilteredGroupsInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Filters to apply. */ filters?: InputMaybe; /** If true, include source groups from group bindings. */ includeSourceGroups?: InputMaybe; /** Maximum number of groups to return. */ maxNumEntries?: InputMaybe; /** Sort direction. */ sort?: InputMaybe; }; /** Result of filtered groups query. */ export type FilteredGroupsOutput = FilteredGroupsResult; /** Successful result of filtered groups query. */ export type FilteredGroupsResult = { __typename?: "FilteredGroupsResult"; /** Cursor for the next page. */ cursor?: Maybe; /** List of filtered groups. */ groups: Array; /** Total number of groups matching the filters. */ totalNumGroups: Scalars["Int"]["output"]; }; /** Input for filtered resources query. */ export type FilteredResourcesInput = { /** Pagination cursor */ cursor?: InputMaybe; /** Filters to apply */ filters?: InputMaybe; /** Maximum number of entries to return */ maxNumEntries?: InputMaybe; /** Sort direction */ sort?: InputMaybe; }; /** Result for filtered resources query. */ export type FilteredResourcesOutput = FilteredResourcesResult; /** Successful result of filtered resources query. */ export type FilteredResourcesResult = { __typename?: "FilteredResourcesResult"; /** Pagination cursor */ cursor?: Maybe; /** List of resources */ resources: Array; /** Total number of resources matching the filters */ totalNumResources: Scalars["Int"]["output"]; }; /** Input for combining multiple filters with a match mode. */ export type FiltersInput = { /** List of filters to apply. */ filters: Array; /** How to combine the filters. */ matchMode: FiltersMatchMode; }; /** Match mode for combining multiple filters. */ export declare enum FiltersMatchMode { /** All filters must match (AND logic). */ All = "ALL", /** Any filter can match (OR logic). */ Any = "ANY" } export type FirstPartyToken = { __typename?: "FirstPartyToken"; accessLevel: ApiAccessLevel; createdAt: Scalars["Time"]["output"]; creatorUser?: Maybe; creatorUserId: Scalars["UserId"]["output"]; expiresAt?: Maybe; id: Scalars["FirstPartyTokenId"]["output"]; lastUsedAt?: Maybe; tokenLabel: Scalars["String"]["output"]; tokenPreview: Scalars["String"]["output"]; user: User; userId: Scalars["UserId"]["output"]; }; export type FirstPartyTokensOutput = FirstPartyTokensResult; export type FirstPartyTokensResult = { __typename?: "FirstPartyTokensResult"; tokens: Array; }; /** Error indicating that fiscal year start month is invalid. */ export type FiscalYearStartMonthInvalidError = Error & { __typename?: "FiscalYearStartMonthInvalidError"; message: Scalars["String"]["output"]; }; /** Input for forfeiting access to a group (removing the current user from the group). */ export type ForfeitGroupInput = { /** ID of the group to forfeit access to. */ groupId: Scalars["GroupId"]["input"]; }; /** Result of forfeiting group access. */ export type ForfeitGroupOutput = ForfeitGroupResult | GroupNotFoundError; /** Successful result of forfeiting group access. */ export type ForfeitGroupResult = { __typename?: "ForfeitGroupResult"; /** The group that was forfeited. */ group: Group; /** ID of the push task for propagating changes to the remote system. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for the current user to forfeit their access to a resource. */ export type ForfeitResourceInput = { /** The access level to forfeit. */ accessLevel: ResourceAccessLevelInput; /** The resource ID to forfeit access to. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Result of forfeiting resource access. */ export type ForfeitResourceOutput = ForfeitResourceResult | OidcIdTokenNotFoundError | OpalAdminRoleMustHaveAtLeastOneDirectUser | ResourceNotFoundError; /** Successfully forfeited resource access. */ export type ForfeitResourceResult = { __typename?: "ForfeitResourceResult"; /** The resource that access was forfeited to. */ resource: Resource; /** The push task ID for propagating the change. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Metadata input for FreshService integration configuration. */ export type FreshServiceMetadataInput = { /** FreshService instance hostname. */ hostname: Scalars["String"]["input"]; }; export type GcpConnectionMetadata = { __typename?: "GCPConnectionMetadata"; pubSubProjectId: Scalars["String"]["output"]; serviceAccount: GcpServiceAccount; subscriptionId: Scalars["String"]["output"]; }; export type GcpConnectionMetadataInput = { pubSubProjectId: Scalars["String"]["input"]; serviceAccount: GcpServiceAccountInput; subscriptionId: Scalars["String"]["input"]; }; export type GcpServiceAccount = { __typename?: "GCPServiceAccount"; authProviderX509CertUrl: Scalars["String"]["output"]; authUri: Scalars["String"]["output"]; clientEmail: Scalars["String"]["output"]; clientId: Scalars["String"]["output"]; clientX509CertUrl: Scalars["String"]["output"]; projectId: Scalars["String"]["output"]; tokenUri: Scalars["String"]["output"]; type: Scalars["String"]["output"]; }; export type GcpServiceAccountCredentialsInput = { privateKey: Scalars["String"]["input"]; privateKeyId: Scalars["String"]["input"]; }; export type GcpServiceAccountInput = { authProviderX509CertUrl: Scalars["String"]["input"]; authUri: Scalars["String"]["input"]; clientEmail: Scalars["String"]["input"]; clientId: Scalars["String"]["input"]; clientX509CertUrl: Scalars["String"]["input"]; projectId: Scalars["String"]["input"]; tokenUri: Scalars["String"]["input"]; type: Scalars["String"]["input"]; }; /** General settings that can be enabled or disabled for an organization. */ export declare enum GeneralSettingType { AccessExpiringNotifications = "ACCESS_EXPIRING_NOTIFICATIONS", AccessReviewReminders = "ACCESS_REVIEW_REMINDERS", AccessRuleFailsafe = "ACCESS_RULE_FAILSAFE", AiAccessRequestGrading = "AI_ACCESS_REQUEST_GRADING", AiAllFeatures = "AI_ALL_FEATURES", AiCustomRoleDescriptionGenerator = "AI_CUSTOM_ROLE_DESCRIPTION_GENERATOR", AiCustomRoleSummary = "AI_CUSTOM_ROLE_SUMMARY", AiRiskCenterAskOpal = "AI_RISK_CENTER_ASK_OPAL", AllowAllUsersToCreatePat = "ALLOW_ALL_USERS_TO_CREATE_PAT", AllowDelegationToAllUsers = "ALLOW_DELEGATION_TO_ALL_USERS", ApiIpAcl = "API_IP_ACL", AutoMergeUsersByEmail = "AUTO_MERGE_USERS_BY_EMAIL", DefaultRequestableItemsOnly = "DEFAULT_REQUESTABLE_ITEMS_ONLY", DisableNonAdminLogins = "DISABLE_NON_ADMIN_LOGINS", DisableRequestDelegation = "DISABLE_REQUEST_DELEGATION", GlobalRequesterRole = "GLOBAL_REQUESTER_ROLE", NestedGroups = "NESTED_GROUPS", OnlyAllowDelegationToActiveUsers = "ONLY_ALLOW_DELEGATION_TO_ACTIVE_USERS", RequireManagerCc = "REQUIRE_MANAGER_CC", RequireOpalMfaForLogins = "REQUIRE_OPAL_MFA_FOR_LOGINS", RequireSupportTicket = "REQUIRE_SUPPORT_TICKET", SlackApprovals = "SLACK_APPROVALS", ToxicSetBlockRequest = "TOXIC_SET_BLOCK_REQUEST", UserDeprovisionDeleteDeprovisioned = "USER_DEPROVISION_DELETE_DEPROVISIONED", UserImpersonation = "USER_IMPERSONATION", UserRevokeEndSystemAccessDeprovisioned = "USER_REVOKE_END_SYSTEM_ACCESS_DEPROVISIONED", UseOidcMfaForGatingOpalActions = "USE_OIDC_MFA_FOR_GATING_OPAL_ACTIONS", UseOktaMfaForGatingOpalActions = "USE_OKTA_MFA_FOR_GATING_OPAL_ACTIONS" } /** Input for generating a message channel name. */ export type GenerateChannelNameInput = { /** Type of channel to generate a name for. */ channelType: MessageChannelType; /** Name of the item to generate a channel name for. */ itemName: Scalars["String"]["input"]; }; export type GitHubConnectionCredentialsInput = { adminToken?: InputMaybe; appClientId?: InputMaybe; appClientSecret?: InputMaybe; clientId?: InputMaybe; clientSecret?: InputMaybe; privateKey?: InputMaybe; }; export type GitHubConnectionMetadata = { __typename?: "GitHubConnectionMetadata"; appName?: Maybe; installationId?: Maybe; orgName: Scalars["String"]["output"]; samlUserIngestionEnabled: Scalars["Boolean"]["output"]; }; export type GitHubConnectionMetadataInput = { appName?: InputMaybe; installationId?: InputMaybe; orgName: Scalars["String"]["input"]; samlUserIngestionEnabled: Scalars["Boolean"]["input"]; }; export type GitLabConnectionCredentialsInput = { appSecret: Scalars["String"]["input"]; }; export type GitLabConnectionMetadata = { __typename?: "GitLabConnectionMetadata"; appId: Scalars["String"]["output"]; hostName?: Maybe; includeForkedProjects: Scalars["Boolean"]["output"]; tlsCaCertContent?: Maybe; tlsMode: Scalars["Boolean"]["output"]; }; export type GitLabConnectionMetadataInput = { appId: Scalars["String"]["input"]; hostName?: InputMaybe; includeForkedProjects: Scalars["Boolean"]["input"]; tlsCaCertContent?: InputMaybe; tlsMode: Scalars["Boolean"]["input"]; }; /** Metadata input for Google Chat integration configuration. */ export type GoogleChatMetadataInput = { /** Admin user email for Google Chat integration. */ adminUserEmail: Scalars["String"]["input"]; /** GCP service account credentials. */ serviceAccountCredentials: GcpServiceAccountCredentialsInput; /** GCP service account metadata. */ serviceAccountMetadata: GcpServiceAccountInput; }; /** Error returned when a Google group operation fails. */ export type GoogleGroupError = Error & { __typename?: "GoogleGroupError"; /** Error message. */ message: Scalars["String"]["output"]; }; export type GoogleGroupsConnectionMetadata = { __typename?: "GoogleGroupsConnectionMetadata"; adminUserEmail: Scalars["String"]["output"]; domain: Scalars["String"]["output"]; opalGroupEmail: Scalars["String"]["output"]; serviceAccount: GcpServiceAccount; }; export type GoogleGroupsConnectionMetadataInput = { adminUserEmail: Scalars["String"]["input"]; domain?: InputMaybe; opalGroupEmail: Scalars["String"]["input"]; serviceAccount: GcpServiceAccountInput; }; export type GoogleWorkspaceConnectionMetadata = { __typename?: "GoogleWorkspaceConnectionMetadata"; adminUserEmail: Scalars["String"]["output"]; customerId: Scalars["String"]["output"]; serviceAccount: GcpServiceAccount; }; export type GoogleWorkspaceConnectionMetadataInput = { adminUserEmail: Scalars["String"]["input"]; customerId: Scalars["String"]["input"]; serviceAccount: GcpServiceAccountInput; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type Group = AccessEntity & AccessQueryEngineEntity & AccessibleItem & BaseEntity & CatalogEntity & ManagedEntity & Node & Principal & RoleAssignmentEntity & RolePermissionTargetEntity & { __typename?: "Group"; /** Available access levels for this group. */ accessLevels?: Maybe>; /** Access rule condition for computed groups. */ accessRuleCondition?: Maybe; /** Access statistics for this group. */ accessStats?: Maybe; /** The admin owner of the group. */ adminOwner?: Maybe; /** ID of the admin owner. */ adminOwnerId: Scalars["OwnerId"]["output"]; /** List of permissions allowed on this group. */ allowedPermissions: Array; /** Query associated items (resources and nested groups). */ associatedItems: AssociatedItemConnection; /** Audit message channels for this group. */ auditMessageChannels?: Maybe>; /** Break glass users who can access this group in emergencies. */ breakGlassUsers: Array; /** Whether the group can have usage data. */ canHaveUsageData: Scalars["Boolean"]["output"]; /** Common metadata for the group. */ commonMetadata: CommonMetadata; /** Configuration template for the group. */ configTemplate?: Maybe; /** The connection this group belongs to. */ connection?: Maybe; /** ID of the connection this group belongs to. */ connectionId: Scalars["ConnectionId"]["output"]; /** Groups that contain this group. */ containingGroups: Array; /** When the group was created in Opal. */ createdAt: Scalars["Time"]["output"]; /** Current user's access to this group. */ currentUserAccess: CurrentUserGroupAccess; /** Custom notification message for access requests. */ customRequestNotification?: Maybe; /** Description of the group. */ description: Scalars["String"]["output"]; /** Query entity permissions (what this group has access to). */ entityPermissions: EntityPermissionsConnection; /** Group binding, if any. */ groupBinding?: Maybe; /** ID of the group binding, if any. */ groupBindingId?: Maybe; /** * Groups that contain this group. * @deprecated Do not use groupGroups, use containingGroups instead. */ groupGroups: Array; /** Users designated as group leaders. */ groupLeaders: Array; /** Resources associated with this group. */ groupResources: Array; /** Type of group. */ groupType: GroupType; /** * Users who are members of this group. * @deprecated Use paginatedGroupUsers instead. */ groupUsers: Array; /** URL to the group's icon. */ iconUrl?: Maybe; /** Unique identifier for the group. */ id: Scalars["UUID"]["output"]; /** Insights into which users are not using their access. */ insights?: Maybe; /** Whether the group has been deleted. */ isDeleted: Scalars["Boolean"]["output"]; /** Whether the group is hidden from the catalog. */ isHiddenFromCatalog: Scalars["Boolean"]["output"]; /** Whether the group is managed by Opal. */ isManaged: Scalars["Boolean"]["output"]; /** Whether the group is synced with on-call schedules. */ isOnCallSynced: Scalars["Boolean"]["output"]; /** Whether the group is requestable by users. */ isRequestable: Scalars["Boolean"]["output"]; /** Maximum number of direct users allowed in the group. */ maxDirectUsersAllowed?: Maybe; /** Message to display when max users is exceeded. */ maxUsersExceededMessage?: Maybe; /** Groups that are members of this group. */ memberGroups: Array; /** Name of the group in Opal. */ name: Scalars["String"]["output"]; /** Number of users in the group. */ numGroupUsers: Scalars["Int"]["output"]; /** On-call schedules associated with this group. */ onCallSchedules?: Maybe>; /** Query group users with pagination and filters. */ paginatedGroupUsers: PaginatedGroupUsersOutput; /** Parent app for the group (particularly useful for Okta groups). */ parentApp?: Maybe; /** Sources of permissions for this group. */ permissionSources: PermissionSourceConnection; /** Role assignments for this group. */ principalAssignmentsForEntity: Array; /** Remote ID of the group in the source system. */ remoteId?: Maybe; /** Name of the group in the remote system. */ remoteName: Scalars["String"]["output"]; /** Remote rule representation for rule-based groups. */ remoteRule?: Maybe; /** Request configurations for this group. */ requestConfigs: Array; /** Whether MFA is required to approve requests for this group. */ requireMfaToApprove: Scalars["Boolean"]["output"]; /** Reviewer message channel. */ reviewerMessageChannel?: Maybe; /** ID of the reviewer message channel. */ reviewerMessageChannelId?: Maybe; /** Reviewer stages for access requests. */ reviewerStages: Array; /** Risk score for the group. */ riskScore?: Maybe; /** Risk sensitivity details for the group. */ riskSensitivity?: Maybe; /** Owners of the source group (for group bindings). */ sourceGroupOwners?: Maybe>; /** Tags associated with this group. */ tags: Array; /** Number of groups that contain this group. */ totalContainingGroupCount: Scalars["Int"]["output"]; /** Total number of groups that contain this group. */ totalGroupAccessCount: Scalars["Int"]["output"]; /** Number of non-human identities with access to the group. */ totalNHIAccessCount: Scalars["Int"]["output"]; /** Total number of resources connected to the group. */ totalResourceCount: Scalars["Int"]["output"]; /** Total number of users with access to the group (direct + indirect). */ totalUserAccessCount: Scalars["Int"]["output"]; /** When the group was last updated. */ updatedAt: Scalars["Time"]["output"]; /** Visibility settings for the group. */ visibility: Visibility; /** Groups that can see this group based on visibility settings. */ visibilityGroups: Array; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type GroupAccessLevelsArgs = { filters?: InputMaybe; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type GroupAccessStatsArgs = { for?: InputMaybe; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type GroupAssociatedItemsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type GroupContainingGroupsArgs = { includeUnmanaged?: InputMaybe; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type GroupEntityPermissionsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: EntityPermissionsFilters; first?: InputMaybe; last?: InputMaybe; sortBy?: EntityPermissionsSortBy; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type GroupGroupResourcesArgs = { includeUnmanaged?: InputMaybe; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type GroupPaginatedGroupUsersArgs = { input?: InputMaybe; }; /** * A group represents a collection of users with shared access to resources. * Groups can be synced from external identity providers or created within Opal. */ export type GroupPermissionSourcesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; /** Error returned when attempting to modify a group access that has already been reviewed. */ export type GroupAccessAlreadyReviewedError = Error & { __typename?: "GroupAccessAlreadyReviewedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** An access level that can be granted for a group. */ export type GroupAccessLevel = IAccessLevel & { __typename?: "GroupAccessLevel"; /** Human-readable name of the access level. */ accessLevelName: Scalars["AccessLevelName"]["output"]; /** Remote identifier for the access level in the external system. */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["output"]; }; /** Input for specifying a group access level. */ export type GroupAccessLevelInput = { /** Human-readable name of the access level. */ accessLevelName: Scalars["AccessLevelName"]["input"]; /** Remote identifier for the access level in the external system. */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["input"]; }; /** Input for querying group access levels. */ export type GroupAccessLevelsInput = { /** ID of the group to get access levels for. */ groupId: Scalars["GroupId"]["input"]; /** When set, only return access levels requestable for this user. */ onlyRequestableTargetUser?: InputMaybe; }; /** Output for querying group access levels. */ export type GroupAccessLevelsOutput = GroupAccessLevelsResult | GroupNotFoundError; /** Result containing group access levels. */ export type GroupAccessLevelsResult = { __typename?: "GroupAccessLevelsResult"; /** Available access levels for the group. */ accessLevels: Array; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; }; /** Error returned when access request frequency reminder is out of bounds. */ export type GroupAccessRequestFrequencyReminderOutOfBoundsError = Error & { __typename?: "GroupAccessRequestFrequencyReminderOutOfBoundsError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Access statistics for a specific group. */ export type GroupAccessStats = AccessStats & { __typename?: "GroupAccessStats"; /** ID of the group these statistics apply to. */ groupId: Scalars["GroupId"]["output"]; /** Number of users with the same manager who have access to this group. */ managerAccessCount?: Maybe; /** Number of users on the same team who have access to this group. */ teamAccessCount?: Maybe; /** Number of users with the same title who have access to this group. */ titleAccessCount?: Maybe; /** Total number of users who have access to this group. */ totalAccessCount?: Maybe; }; /** Error returned when a group already belongs to another binding. */ export type GroupAlreadyBelongsToBindingError = { __typename?: "GroupAlreadyBelongsToBindingError"; /** The group that already belongs to a binding. */ group?: Maybe; /** The existing binding. */ groupBinding?: Maybe; /** ID of the existing binding. */ groupBindingId?: Maybe; /** ID of the group that already belongs to a binding. */ groupId: Scalars["GroupId"]["output"]; /** Error message. */ message: Scalars["String"]["output"]; }; /** Edge type for associated items query on groups. */ export type GroupAssociatedItemEdge = AssociatedItemEdge & Edge & { __typename?: "GroupAssociatedItemEdge"; /** Alias name for the association. */ alias?: Maybe; /** Cursor for pagination. */ cursor: Scalars["String"]["output"]; /** Whether the association is hidden from end users. */ hiddenFromEndUser?: Maybe; /** IdP group mapping ID for groups that can be associated to app resources. */ idpGroupMappingId?: Maybe; /** The associated item node. */ node: AccessibleItem; }; /** * A group binding links a source group (typically from an external system) to one or more Opal groups, * enabling automatic synchronization of group memberships. */ export type GroupBinding = { __typename?: "GroupBinding"; /** When the binding was created. */ createdAt: Scalars["Time"]["output"]; /** The user who created this binding. */ createdByUser?: Maybe; /** ID of the user who created this binding. */ createdByUserId?: Maybe; /** The Opal groups that are bound to the source group. */ groups: Array; /** Unique identifier for the group binding. */ id: Scalars["GroupBindingId"]["output"]; /** The source group being bound. */ sourceGroup?: Maybe; /** ID of the source group being bound. */ sourceGroupId: Scalars["GroupId"]["output"]; /** When the binding was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error returned when attempting to create or update a group binding with no groups. */ export type GroupBindingHasNoGroupsError = { __typename?: "GroupBindingHasNoGroupsError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when a group binding is not found. */ export type GroupBindingNotFoundError = { __typename?: "GroupBindingNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of fetching a single group binding. */ export type GroupBindingOutput = GroupBinding | GroupBindingNotFoundError; /** A suggested binding between two groups that should potentially be linked. */ export type GroupBindingSuggestion = { __typename?: "GroupBindingSuggestion"; /** Unique identifier for the suggestion. */ id: Scalars["GroupBindingSuggestionId"]["output"]; /** Primary group details. */ primaryGroup?: Maybe; /** ID of the primary group. */ primaryGroupId: Scalars["GroupId"]["output"]; /** Secondary group details. */ secondaryGroup?: Maybe; /** ID of the secondary group. */ secondaryGroupId: Scalars["GroupId"]["output"]; /** When the suggestion was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating group binding suggestion was not found. */ export type GroupBindingSuggestionNotFoundError = Error & { __typename?: "GroupBindingSuggestionNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Output for querying a single group binding suggestion. */ export type GroupBindingSuggestionOutput = GroupBindingSuggestion | GroupBindingSuggestionNotFoundError; /** Filters for querying group binding suggestions. */ export type GroupBindingSuggestionsFiltersInput = { /** Filter by connection IDs. */ connectionIds?: InputMaybe>; /** Filter by group IDs. */ groupIds?: InputMaybe>; /** Filter by group types. */ groupTypes?: InputMaybe>; /** Search query to filter suggestions. */ searchQuery?: InputMaybe; }; /** Input for querying group binding suggestions. */ export type GroupBindingSuggestionsInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Filter criteria. */ filters?: InputMaybe; /** Number of suggestions per page. */ pageSize?: InputMaybe; /** Sort options. */ sortBy?: InputMaybe; }; /** Output for querying group binding suggestions. */ export type GroupBindingSuggestionsOutput = { __typename?: "GroupBindingSuggestionsOutput"; /** Cursor for next page. */ cursor?: Maybe; /** List of group binding suggestions. */ groupBindingSuggestions: Array; /** Total number of suggestions. */ totalNumItems: Scalars["Int"]["output"]; }; /** Sort options for group binding suggestions. */ export type GroupBindingSuggestionsSortBy = { /** Sort direction. */ direction: SortDirection; /** Field to sort by. */ field: GroupBindingSuggestionsSortByField; }; /** Fields that can be used to sort group binding suggestions. */ export declare enum GroupBindingSuggestionsSortByField { /** Sort by primary group name. */ PrimaryGroupName = "PRIMARY_GROUP_NAME", /** Sort by secondary group name. */ SecondaryGroupName = "SECONDARY_GROUP_NAME", /** Sort by last updated time. */ UpdatedAt = "UPDATED_AT" } /** Filters for querying group bindings. */ export type GroupBindingsFiltersInput = { /** Filter by connection IDs. */ connectionIds?: InputMaybe>; /** Filter by specific group binding IDs. */ groupBindingIds?: InputMaybe>; /** Filter by group IDs. */ groupIds?: InputMaybe>; /** Filter by group types. */ groupTypes?: InputMaybe>; /** Search query to filter by group name. */ searchQuery?: InputMaybe; }; /** Input for querying group bindings. */ export type GroupBindingsInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Filters to apply. */ filters?: InputMaybe; /** Maximum number of results per page. */ pageSize?: InputMaybe; /** Sorting options. */ sortBy?: InputMaybe; }; /** Result of querying group bindings. */ export type GroupBindingsOutput = { __typename?: "GroupBindingsOutput"; /** Cursor for the next page. */ cursor?: Maybe; /** List of group bindings. */ groupBindings: Array; /** Total number of group bindings matching the query. */ totalNumItems: Scalars["Int"]["output"]; }; /** Sorting options for group bindings. */ export type GroupBindingsSortBy = { /** Sort direction. */ direction: SortDirection; /** Field to sort by. */ field: GroupBindingsSortByField; }; /** Field to sort group bindings by. */ export declare enum GroupBindingsSortByField { /** Sort by creation date. */ CreatedAt = "CREATED_AT", /** Sort by creator. */ CreatedBy = "CREATED_BY", /** Sort by source group name. */ SourceGroupName = "SOURCE_GROUP_NAME", /** Sort by source group type. */ SourceGroupType = "SOURCE_GROUP_TYPE" } /** A user who has break glass access to a group. */ export type GroupBreakGlassUser = { __typename?: "GroupBreakGlassUser"; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** User details. */ user?: Maybe; /** ID of the user with break glass access. */ userId: Scalars["UserId"]["output"]; }; /** Represents a group-to-group membership (a group within another group). */ export type GroupGroup = { __typename?: "GroupGroup"; /** Access level of the membership. */ accessLevel: GroupAccessLevel; /** Containing group details. */ containingGroup?: Maybe; /** ID of the containing (parent) group. */ containingGroupId: Scalars["GroupId"]["output"]; /** Depth of nesting in the group hierarchy. */ depth: Scalars["Int"]["output"]; /** Member group details. */ memberGroup?: Maybe; /** ID of the member (child) group. */ memberGroupId: Scalars["GroupId"]["output"]; /** Status of propagation to external systems. */ propagationStatus?: Maybe; /** Quick access summary. */ quickAccess?: Maybe; }; /** Details about a group's access to another group (group-to-group membership). */ export type GroupGroupAccess = { __typename?: "GroupGroupAccess"; /** Access level of the membership. */ accessLevel: GroupAccessLevel; /** ID of the containing (parent) group. */ containingGroupId: Scalars["GroupId"]["output"]; /** * Describes attributes of `containingGroupId`'s direct access to * `memberGroupId`. If unset, this containingGroup does not have * direct access to the memberGroup. */ directAccessPoint?: Maybe; /** When the access expires. */ expiration?: Maybe; /** * Each item in this list describes one indirect path by which `containingGroupId` has access to `memberGroupId`. * If empty, this containingGroup does not have indirect access to the memberGroup. */ indirectAccessPointPaths: Array; /** ID of the member (child) group. */ memberGroupId: Scalars["GroupId"]["output"]; }; /** Input for querying group-to-group access. */ export type GroupGroupAccessInput = { /** ID of the containing (parent) group. */ containingGroupId: Scalars["GroupId"]["input"]; /** ID of the member (child) group. */ memberGroupId: Scalars["GroupId"]["input"]; }; /** Output for querying group-to-group access. */ export type GroupGroupAccessOutput = GroupGroupAccessResult | GroupGroupNotFound; /** A single access point describing how a group has access to another group. */ export type GroupGroupAccessPoint = { __typename?: "GroupGroupAccessPoint"; /** Access level of the membership. */ accessLevel: GroupAccessLevel; /** ID of the containing (parent) group. */ containingGroupId: Scalars["GroupId"]["output"]; /** Name of the containing group. */ containingGroupName: Scalars["String"]["output"]; /** When the access was granted. */ createdAt?: Maybe; /** Event that granted this access. */ eventId?: Maybe; /** When the access expires. */ expiration?: Maybe; /** ID of the member (child) group. */ memberGroupId: Scalars["GroupId"]["output"]; /** Name of the member group. */ memberGroupName: Scalars["String"]["output"]; /** Type of the member group. */ memberGroupType: GroupType; /** Support ticket details. */ supportTicket?: Maybe; /** Support ticket associated with the access. */ supportTicketId?: Maybe; }; /** Result containing group-to-group access details. */ export type GroupGroupAccessResult = { __typename?: "GroupGroupAccessResult"; /** Access details for the group-to-group relationship. */ access: GroupGroupAccess; }; /** Error indicating the group-to-group relationship was not found. */ export type GroupGroupNotFound = Error & { __typename?: "GroupGroupNotFound"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Quick summary of a group's access to another group. */ export type GroupGroupQuickAccess = { __typename?: "GroupGroupQuickAccess"; /** When the access expires. */ expiration?: Maybe; /** Whether there is direct access. */ hasDirectAccess: Scalars["Boolean"]["output"]; /** Number of inherited access paths. */ numInheritedAccess: Scalars["Int"]["output"]; /** Support ticket details. */ supportTicket?: Maybe; /** Support ticket associated with the access. */ supportTicketId?: Maybe; }; /** Error returned when attempting to delete a group that has child groups. */ export type GroupHasChildrenError = Error & { __typename?: "GroupHasChildrenError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Input for fetching a single group. */ export type GroupInput = { /** ID of the group to fetch. */ id?: InputMaybe; }; /** Error returned when a group's max duration is too large. */ export type GroupMaxDurationTooLargeError = Error & { __typename?: "GroupMaxDurationTooLargeError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Input for group metadata. */ export type GroupMetadataInput = { /** On-call metadata for the group. */ onCallMetadata?: InputMaybe; }; /** Error returned when a user must forfeit ownership before performing an action. */ export type GroupMustForfeitOwnershipError = Error & { __typename?: "GroupMustForfeitOwnershipError"; /** Entities that the user owns. */ entities: Array; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error indicating group nesting is not allowed in this configuration. */ export type GroupNestingNotAllowedError = Error & { __typename?: "GroupNestingNotAllowedError"; /** Source group details. */ fromGroup?: Maybe; /** ID of the source group. */ fromGroupId: Scalars["GroupId"]["output"]; /** Error message. */ message: Scalars["String"]["output"]; /** Target group details. */ toGroup?: Maybe; /** ID of the target group. */ toGroupId: Scalars["GroupId"]["output"]; }; /** Error returned when a group is not found. */ export type GroupNotFoundError = Error & { __typename?: "GroupNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Association between a group and an on-call schedule. */ export type GroupOnCallSchedule = { __typename?: "GroupOnCallSchedule"; /** The group associated with the schedule. */ group?: Maybe; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** The on-call schedule. */ onCallSchedule: OnCallSchedule; /** Priority of the schedule (lower number = higher priority). */ priority: Scalars["Int"]["output"]; }; /** Error returned when on-call schedule priorities are invalid. */ export type GroupOnCallSchedulePriorityError = Error & { __typename?: "GroupOnCallSchedulePriorityError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of querying group on-call schedules. */ export type GroupOnCallSchedulesOutput = GroupOnCallSchedulesResult; /** Successful result of querying group on-call schedules. */ export type GroupOnCallSchedulesResult = { __typename?: "GroupOnCallSchedulesResult"; /** List of group on-call schedule associations. */ groupOnCallSchedules: Array; }; /** Result of fetching a single group. */ export type GroupOutput = GroupNotFoundError | GroupResult; /** Preview information for a group including user counts, resource counts, and review stats. */ export type GroupPreview = Node & { __typename?: "GroupPreview"; /** The group being previewed. */ group: Group; /** Total number of groups this group is a member of. */ groupGroupCount: Scalars["Int"]["output"]; /** Total number of resources this group has access to. */ groupResourceCount: Scalars["Int"]["output"]; /** Total number of users in this group. */ groupUserCount: Scalars["Int"]["output"]; /** Unique identifier for the group preview. */ id: Scalars["UUID"]["output"]; /** Number of reviews associated with this group. */ reviewCount: Scalars["Int"]["output"]; /** Truncated list of groups this group is a member of. */ truncatedGroupGroups: Array; /** Truncated list of resources this group has access to. */ truncatedGroupResources: Array; /** Truncated list of users in this group. */ truncatedGroupUsers: Array; }; /** Paginated connection type for group previews. */ export type GroupPreviewConnection = PageConnection & { __typename?: "GroupPreviewConnection"; /** List of group preview edges. */ edges: Array; /** Count of groups after filtering. */ filteredGroupCount: Scalars["Int"]["output"]; /** Pagination information. */ pageInfo: PageInfo; /** Total count of all group previews. */ totalCount: Scalars["Int"]["output"]; /** Total count of all reviews across groups. */ totalReviewCount: Scalars["Int"]["output"]; }; /** Edge type for group preview pagination. */ export type GroupPreviewEdge = Edge & { __typename?: "GroupPreviewEdge"; /** Cursor for pagination. */ cursor: Scalars["String"]["output"]; /** The group preview node. */ node: GroupPreview; }; /** Filters for fetching group previews. */ export type GroupPreviewFilters = { /** Filters to apply to the group list. */ filters?: FiltersInput; /** Whether to hide groups with no users or resources. */ hideEmpty?: InputMaybe; /** Whether to include group bindings in the preview. */ includeGroupBindings?: Scalars["Boolean"]["input"]; }; /** Output pairing a group with its request configuration. */ export type GroupRequestConfigurationOutput = { __typename?: "GroupRequestConfigurationOutput"; /** The access level remote ID. */ accessLevelRemoteId?: Maybe; /** The group ID. */ groupId: Scalars["GroupId"]["output"]; /** The active request configuration for this group. */ requestConfiguration: RequestConfiguration; }; /** Input for querying request status counts for a group. */ export type GroupRequestStatusCountsInput = { /** ID of the group */ groupId: Scalars["GroupId"]["input"]; /** User ID to filter by */ userId?: InputMaybe; }; /** Result or error for group request status counts query. */ export type GroupRequestStatusCountsOutput = GroupNotFoundError | GroupRequestStatusCountsResult; /** Successful result for group request status counts. */ export type GroupRequestStatusCountsResult = { __typename?: "GroupRequestStatusCountsResult"; /** Request status counts for the group */ requestStatusCounts: RequestStatusCounts; }; /** Represents a resource that is associated with a group, granting all group members access to the resource. */ export type GroupResource = { __typename?: "GroupResource"; /** Access details including duration and expiration. */ access: Access; /** The level of access granted to the resource. */ accessLevel: ResourceAccessLevel; /** Duration in minutes for temporary access, if applicable. */ durationInMinutes?: Maybe; /** The group associated with this resource. */ group?: Maybe; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** When this resource was last used by any group member. */ lastUsedAt?: Maybe; /** Current propagation status to the remote system. */ propagationStatus?: Maybe; /** The resource associated with this group. */ resource?: Maybe; /** ID of the resource. */ resourceId: Scalars["ResourceId"]["output"]; /** Source of the group-resource relationship. */ source: GroupResourceSource; /** Number of users in the group who have used this resource. */ userUsage?: Maybe; }; /** Error returned when attempting to add a resource that already exists on the group. */ export type GroupResourceAlreadyExists = Error & { __typename?: "GroupResourceAlreadyExists"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Source of a group-resource relationship. */ export declare enum GroupResourceSource { /** GroupResource that's inherited from another remote resource */ Inherited = "INHERITED", /** Regular group-resource relationship. */ Regular = "REGULAR" } /** Successful result of fetching a single group. */ export type GroupResult = { __typename?: "GroupResult"; /** The requested group. */ group: Group; }; /** A suggestion for a group. */ export type GroupSuggestion = { __typename?: "GroupSuggestion"; /** The group entity. */ group?: Maybe; /** The group ID. */ groupId: Scalars["GroupId"]["output"]; /** * The group type. * @deprecated Use group.groupType instead */ groupType: GroupType; /** The group name. */ name: Scalars["String"]["output"]; }; /** A tag associated with a group. */ export type GroupTag = { __typename?: "GroupTag"; /** When the tag association was created. */ createdAt: Scalars["Time"]["output"]; /** ID of the user who created the tag association. */ creatorUserId: Scalars["UserId"]["output"]; /** Group details. */ group?: Maybe; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** Source service that created the tag association. */ source: ServiceType; /** Tag details. */ tag?: Maybe; /** ID of the tag. */ tagId: Scalars["TagId"]["output"]; /** When the tag association was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating a tag with the same key already exists for the group. */ export type GroupTagKeyExistsError = Error & { __typename?: "GroupTagKeyExistsError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Type of group from various identity providers and systems. */ export declare enum GroupType { /** Active Directory group. */ ActiveDirectoryGroup = "ACTIVE_DIRECTORY_GROUP", /** AWS SSO group. */ AwsSsoGroup = "AWS_SSO_GROUP", /** Azure AD Microsoft 365 group. */ AzureAdMicrosoft_365Group = "AZURE_AD_MICROSOFT_365_GROUP", /** Azure AD security group. */ AzureAdSecurityGroup = "AZURE_AD_SECURITY_GROUP", /** Connector group. */ ConnectorGroup = "CONNECTOR_GROUP", /** Databricks account group. */ DatabricksAccountGroup = "DATABRICKS_ACCOUNT_GROUP", DevinGroup = "DEVIN_GROUP", /** Duo group. */ DuoGroup = "DUO_GROUP", /** GitHub team. */ GitHubTeam = "GIT_HUB_TEAM", /** GitLab group. */ GitLabGroup = "GIT_LAB_GROUP", /** Google Groups GKE (Kubernetes Engine) group. */ GoogleGroupsGkeGroup = "GOOGLE_GROUPS_GKE_GROUP", /** Google Groups group. */ GoogleGroupsGroup = "GOOGLE_GROUPS_GROUP", /** Incident.io on-call schedule. */ IncidentioOnCallSchedule = "INCIDENTIO_ON_CALL_SCHEDULE", /** LDAP group. */ LdapGroup = "LDAP_GROUP", /** Okta group. */ OktaGroup = "OKTA_GROUP", /** Okta group rule. */ OktaGroupRule = "OKTA_GROUP_RULE", /** Opal access rule. */ OpalAccessRule = "OPAL_ACCESS_RULE", /** Opal-managed group. */ OpalGroup = "OPAL_GROUP", /** PagerDuty on-call schedule. */ PagerdutyOnCallSchedule = "PAGERDUTY_ON_CALL_SCHEDULE", /** Snowflake role. */ SnowflakeRole = "SNOWFLAKE_ROLE", /** Tailscale group. */ TailscaleGroup = "TAILSCALE_GROUP", /** Workday user security group. */ WorkdayUserSecurityGroup = "WORKDAY_USER_SECURITY_GROUP" } /** A group type with the count of groups of that type. */ export type GroupTypeWithCount = { __typename?: "GroupTypeWithCount"; /** Connection details. */ connection?: Maybe; /** ID of the connection (if type is specific to a connection). */ connectionId?: Maybe; /** The group type. */ groupType: GroupType; /** Number of groups of this type. */ numGroups: Scalars["Int"]["output"]; }; /** Input for filtering by group types. */ export type GroupTypesFilterInput = { /** List of group types to filter by. */ groupTypes: Array; }; /** Input for querying group types with counts. */ export type GroupTypesWithCountsInput = { /** Filter by connection IDs. */ connectionIds?: InputMaybe>; /** Whether to exclude computed/derived groups. */ excludeComputedGroups?: InputMaybe; /** Search query to filter group types. */ query?: InputMaybe; }; /** Output for querying group types with counts. */ export type GroupTypesWithCountsOutput = GroupTypesWithCountsResult; /** Result containing group types with counts. */ export type GroupTypesWithCountsResult = { __typename?: "GroupTypesWithCountsResult"; /** List of group types with their counts. */ groupTypesWithCounts: Array; }; /** Represents a user's membership in a group with a specific access level. */ export type GroupUser = { __typename?: "GroupUser"; /** Access details including duration and expiration. */ access?: Maybe; /** The level of access the user has to the group. */ accessLevel: GroupAccessLevel; /** Access statistics for this user-group relationship. */ accessStats?: Maybe; /** Configuration for whether this access can be extended. */ extendability: RequestConfiguration; /** The group the user belongs to. */ group?: Maybe; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** When this group was last used by the user. */ lastUsedAt?: Maybe; /** Current propagation status to the remote system. */ propagationStatus?: Maybe; /** Source of the group membership. */ source: GroupUserSource; /** The user who is a member of the group. */ user?: Maybe; /** ID of the user. */ userId: Scalars["UserId"]["output"]; }; /** Details about a user's access to a group, including direct and indirect paths. */ export type GroupUserAccess = { __typename?: "GroupUserAccess"; /** Access level the user has. */ accessLevel: GroupAccessLevel; /** * Describes attributes of `userId`'s direct access to `groupId`. If unset, this user does not have * direct access to the group. */ directAccessPoint?: Maybe; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** * Each item in this list describes one indirect path by which `userId` has access to `groupId`. * If empty, this user does not have indirect access to the group. */ indirectAccessPointPaths: Array; /** Whether the group is managed (vs. imported). */ isGroupManaged: Scalars["Boolean"]["output"]; /** * Describes attributes of `userId`'s access to `groupId` for the path with the latest expiration. * This access might be direct or indirect. */ latestExpiringAccessPoint: GroupUserAccessPoint; /** ID of the user. */ userId: Scalars["UserId"]["output"]; }; /** A single access point describing how a user has access to a group. */ export type GroupUserAccessPoint = { __typename?: "GroupUserAccessPoint"; /** Access level granted. */ accessLevel: GroupAccessLevel; /** When the access was granted. */ createdAt?: Maybe; /** Event that granted this access. */ eventId?: Maybe; /** When the access expires. */ expiration?: Maybe; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** Name of the group. */ groupName: Scalars["String"]["output"]; /** Type of the group. */ groupType: GroupType; /** Source of the access (e.g., direct, on-call, break glass). */ source?: Maybe; /** Support ticket details. */ supportTicket?: Maybe; /** Support ticket associated with the access. */ supportTicketId?: Maybe; /** ID of the user. */ userId: Scalars["UserId"]["output"]; }; /** Error returned when attempting to add a user that already exists in the group. */ export type GroupUserAlreadyExists = Error & { __typename?: "GroupUserAlreadyExists"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Filters for querying group users. Used by both paginatedGroupUsers and paginatedUserGroups queries. */ export type GroupUserFiltersInput = { /** Filter by access level remote IDs. */ accessLevelRemoteIds?: InputMaybe>; /** Filter by user attributes (tags). */ attributeFilters?: InputMaybe>; /** If true, only return users with direct access. */ directAccessOnly?: InputMaybe; /** Filter by specific group IDs (ignored in paginatedGroupUsers query). */ groupIds?: InputMaybe>; /** Filter by group name. */ groupName?: InputMaybe; /** Filter by group types (ignored in paginatedGroupUsers query). */ groupTypes?: InputMaybe>; /** If true, only return managed groups (ignored in paginatedGroupUsers query). */ isManagedOnly?: InputMaybe; /** Filter by user's manager. */ manager?: InputMaybe; /** If true, only return users who have never used the group. */ neverUsedOnly?: InputMaybe; /** If true, only return users with permanent access. */ permanentAccessOnly?: InputMaybe; /** Filter by propagation status. */ propagationStatuses?: InputMaybe>; /** Search across multiple fields (userFullName, userEmail, groupName, etc.). */ searchQuery?: InputMaybe; /** Filter by user's team. */ team?: InputMaybe; /** Filter by user's title. */ title?: InputMaybe; /** Filter by user full name (ignored in paginatedUserGroups query). */ userFullName?: InputMaybe; }; /** Insights about users in a group. */ export type GroupUserInsights = { __typename?: "GroupUserInsights"; /** Counts of attributes across group users */ attributeCounts: Array>; /** Number of group users with recorded usage */ numGroupUsersWithUsage: Scalars["Int"]["output"]; }; /** Field to sort group users by. */ export declare enum GroupUserSortByField { /** Sort by access level name. */ AccessLevelName = "ACCESS_LEVEL_NAME", /** Sort by expiration time. */ ExpiresAt = "EXPIRES_AT", /** Sort by group name. */ GroupName = "GROUP_NAME", /** Sort by last used time. */ LastUsedAt = "LAST_USED_AT", /** Sort by propagation status. */ PropagationStatus = "PROPAGATION_STATUS", /** Sort by source of access. */ SourceOfAccess = "SOURCE_OF_ACCESS", /** Sort by user email. */ UserEmail = "USER_EMAIL", /** Sort by user full name. */ UserFullName = "USER_FULL_NAME" } /** Source of a user's group membership. */ export declare enum GroupUserSource { /** Break glass emergency access. */ BreakGlass = "BREAK_GLASS", /** Membership through on-call schedule. */ OnCall = "ON_CALL", /** Regular direct membership. */ Regular = "REGULAR", /** Regular GroupUser derived from a containing group in Opal. */ RegularIndirect = "REGULAR_INDIRECT", /** Regular GroupUser that's imported from a nested group. */ RegularNested = "REGULAR_NESTED" } /** Input for querying multiple groups. */ export type GroupsInput = { /** Filter by connection IDs. */ connectionIds?: InputMaybe>; /** Filter by connection type. */ connectionType?: InputMaybe; /** Cursor for pagination. */ cursor?: InputMaybe; /** If true, exclude computed groups (e.g., access rules). */ excludeComputedGroups?: InputMaybe; /** Filter by specific group IDs. */ groupIds?: InputMaybe>; /** Filter by group type. */ groupType?: InputMaybe; /** If true, only return groups where the current user is a leader. */ leaderOfGroupsOnly?: InputMaybe; /** Maximum number of groups to return. */ maxNumEntries?: InputMaybe; /** Search query to filter groups by name. */ searchQuery?: InputMaybe; /** Filter by tag. */ tag?: InputMaybe; /** If true, only return unmanaged groups. */ unmanagedOnly?: InputMaybe; }; /** Result of querying multiple groups. */ export type GroupsOutput = GroupsResult; /** Result of querying multiple groups. */ export type GroupsResult = { __typename?: "GroupsResult"; /** Cursor for the next page. */ cursor?: Maybe; /** List of groups. */ groups: Array; /** Total number of groups matching the query. */ totalNumGroups: Scalars["Int"]["output"]; }; export declare enum HealthStatus { HasPropagationErrors = "HAS_PROPAGATION_ERRORS", HasSyncErrors = "HAS_SYNC_ERRORS", Healthy = "HEALTHY", OptionalValidationsFailing = "OPTIONAL_VALIDATIONS_FAILING", RequiredValidationsFailing = "REQUIRED_VALIDATIONS_FAILING" } /** User status pulled from an HR/IDP provider. */ export declare enum HrIdpStatus { /** User is a regular, active user. */ Active = "ACTIVE", /** * User is indefinitely deleted (usually because they left the company). Their access * should be deleted. */ Deleted = "DELETED", /** User is deprovisioned (usually because they left the company). Their access should be deleted. */ Deprovisioned = "DEPROVISIONED", /** User does not exist in the HR/IDP system. */ NotFound = "NOT_FOUND", /** * User is temporarily suspended (e.g. due to leave of absence). Their access should be * frozen but not deleted. */ Suspended = "SUSPENDED" } /** Error returned when HTTPS hostname is required but not provided. */ export type HttpsHostnameRequiredError = Error & { __typename?: "HttpsHostnameRequiredError"; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** * A reusable interface for access levels to combine the various GroupAccessLevel, * ResourceAccessLevel, etc. types into an interface */ export type IAccessLevel = { /** The name of the access level */ accessLevelName: Scalars["AccessLevelName"]["output"]; /** The remote ID of the access level in the connected system */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["output"]; }; export type ILevelConnectionCredentialsInput = { clientSecret: Scalars["String"]["input"]; }; export type ILevelConnectionMetadata = { __typename?: "ILevelConnectionMetadata"; clientId: Scalars["String"]["output"]; isSandbox: Scalars["Boolean"]["output"]; passwordStrategy: Scalars["String"]["output"]; }; export type ILevelConnectionMetadataInput = { clientId: Scalars["String"]["input"]; isSandbox: Scalars["Boolean"]["input"]; passwordStrategy: Scalars["String"]["input"]; }; /** An IP zone that defines a named collection of allowed IP addresses or CIDR ranges. */ export type IpaclEntry = { __typename?: "IPACLEntry"; /** When this zone was created. */ createdAt: Scalars["Time"]["output"]; /** User who created this zone. */ createdByUser: User; /** User who created this zone. */ createdByUserId: Scalars["UserId"]["output"]; /** Optional description for this IP zone. */ description?: Maybe; /** Unique identifier for this IP zone. */ id: Scalars["ID"]["output"]; /** List of IP addresses or CIDR ranges in this zone (e.g., ["192.168.1.1", "10.0.0.0/24"]). */ ipAddresses: Array; /** Name of this IP zone (e.g., "Office Network", "VPN IPs"). */ name: Scalars["String"]["output"]; /** When this zone was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating that the IP ACL entry is invalid (e.g., invalid IP format). */ export type IpaclEntryInvalidError = Error & { __typename?: "IPACLEntryInvalidError"; message: Scalars["String"]["output"]; }; /** Error indicating that an IP ACL entry was not found. */ export type IpaclEntryNotFoundError = Error & { __typename?: "IPACLEntryNotFoundError"; message: Scalars["String"]["output"]; }; /** An identity provider (IdP) connection that imports user attributes into Opal. */ export type IdpConnection = { __typename?: "IdpConnection"; /** The underlying connection. */ connection: Connection; /** ID of the underlying connection. */ connectionId: Scalars["ConnectionId"]["output"]; /** List of custom attributes allowed to be imported from the IdP. */ customAttributesAllowlist: Array; /** Unique identifier for the IdP connection. */ id: Scalars["IdpConnectionId"]["output"]; /** Type of IdP connection. */ idpConnectionType: IdpConnectionType; /** Whether the IdP connection has been deleted. */ isDeleted: Scalars["Boolean"]["output"]; /** Mappings of IdP attributes to Opal user attributes. */ userAttributeImportMappings: Array; }; /** Error returned when an IdP connection already exists. */ export type IdpConnectionExistsError = Error & { __typename?: "IdpConnectionExistsError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when an IdP connection is not found. */ export type IdpConnectionNotFoundError = Error & { __typename?: "IdpConnectionNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of fetching IdP connections. */ export type IdpConnectionOutput = IdpConnectionNotFoundError | IdpConnectionResult; /** Result of fetching IdP connections. */ export type IdpConnectionResult = { __typename?: "IdpConnectionResult"; /** List of IdP connections. */ idpConnections: Array; }; /** Type of identity provider connection. */ export declare enum IdpConnectionType { /** Active Directory identity provider. */ ActiveDirectory = "ACTIVE_DIRECTORY", /** Azure Active Directory identity provider. */ AzureAd = "AZURE_AD", /** Google Workspace identity provider. */ Google = "GOOGLE", /** Okta identity provider. */ Okta = "OKTA", /** Workday identity provider. */ Workday = "WORKDAY" } /** Mapping of an IdP attribute to how it should be used in Opal. */ export type IdpConnectionUserAttributeImportMapping = { __typename?: "IdpConnectionUserAttributeImportMapping"; /** Unique identifier for the mapping. */ id: Scalars["IdpConnectionUserAttributeImportMappingId"]["output"]; /** The IdP attribute key to import. */ key: Scalars["String"]["output"]; /** How to use the imported attribute in Opal. */ useAs: IdpConnectionUserAttributeUseAs; }; /** Error returned when a user attribute import mapping is not found. */ export type IdpConnectionUserAttributeImportMappingNotFoundError = Error & { __typename?: "IdpConnectionUserAttributeImportMappingNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Mapping of IDP user attributes to Opal user fields. */ export declare enum IdpConnectionUserAttributeUseAs { /** Custom attribute not mapped to a standard field. */ Custom = "CUSTOM", /** User's email address. */ Email = "EMAIL", /** User's first name. */ FirstName = "FIRST_NAME", /** User's GitHub username. */ GithubUsername = "GITHUB_USERNAME", /** User's last name. */ LastName = "LAST_NAME", /** Manager's email address. */ ManagerEmail = "MANAGER_EMAIL", /** User's profile URL. */ ProfileUrl = "PROFILE_URL", /** User's secondary email address. */ SecondaryEmail = "SECONDARY_EMAIL", /** User's team or department. */ Team = "TEAM", /** User's Teleport username. */ TeleportUsername = "TELEPORT_USERNAME", /** User's job title. */ Title = "TITLE" } /** Mapping between an IDP app resource and an Opal group, used for SSO group provisioning. */ export type IdpGroupMapping = { __typename?: "IdpGroupMapping"; /** Optional alias name for this mapping. */ alias?: Maybe; /** ID of the app resource this mapping belongs to. */ appResourceId: Scalars["ResourceId"]["output"]; /** The Opal group object. */ group?: Maybe; /** ID of the Opal group mapped to the IDP app. */ groupId: Scalars["GroupId"]["output"]; /** Whether this mapping is hidden from end users. */ hiddenFromEndUser?: Maybe; /** Unique identifier for this mapping. */ id: Scalars["IdpGroupMappingId"]["output"]; }; /** Input for creating an IDP group mapping. */ export type IdpGroupMappingInput = { /** Optional alias for the mapping. */ alias?: InputMaybe; /** ID of the group to map. */ groupId: Scalars["GroupId"]["input"]; }; /** Input for querying IDP group mappings. */ export type IdpGroupMappingsInput = { /** ID of the app resource to query mappings for. */ appResourceId: Scalars["ResourceId"]["input"]; /** Optional list of group IDs to filter by. */ groupIds?: InputMaybe>; }; /** Output for IDP group mapping mutations. */ export type IdpGroupMappingsOutput = { __typename?: "IdpGroupMappingsOutput"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for updating a single IDP group mapping. */ export type IdpGroupMappingsUpdate = { /** New alias for the mapping. */ alias?: InputMaybe; /** Whether to hide this mapping from end users. */ hiddenFromEndUser?: InputMaybe; /** ID of the mapping to update. */ idpGroupMappingId: Scalars["IdpGroupMappingId"]["input"]; }; /** Input for updating multiple IDP group mappings. */ export type IdpGroupMappingsUpdateInput = { /** List of mappings to update. */ items: Array; }; /** Filter for users by HR/IDP status. */ export type IdpStatusFilter = { /** Filter to users without an IDP status. */ statusUnset?: InputMaybe; /** Filter to users with these IDP statuses. */ statuses?: InputMaybe>; }; /** Metadata for impersonation access levels. */ export type ImpersonationAccessLevelMetadata = { __typename?: "ImpersonationAccessLevelMetadata"; /** Avatar URL for the impersonation target. */ avatarUrl: Scalars["String"]["output"]; }; /** Error returned when an impersonation session length is invalid. */ export type ImpersonationSessionLengthError = Error & { __typename?: "ImpersonationSessionLengthError"; message: Scalars["String"]["output"]; }; export type ImportAllInput = { connectionId: Scalars["ConnectionId"]["input"]; }; export type ImportAllOutput = BulkUpdateItemsResult | GroupNotFoundError | ResourceNotFoundError; /** Information for importing a custom resource. */ export type ImportCustomResourceInfo = { /** Description of the resource */ description?: InputMaybe; /** Name of the resource */ name: Scalars["String"]["input"]; /** * List of all users with some sort of access to the resource. Any users in userEmails * that aren't in this list will have their access removed. */ usersWithAccess: Array; }; /** User access information for importing custom resources. */ export type ImportCustomResourceUserInfo = { /** Access level name */ accessLevelName: Scalars["AccessLevelName"]["input"]; /** Access level remote ID */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["input"]; /** Deprecated: do not use. */ cellContent: Scalars["String"]["input"]; /** User email */ email: Scalars["String"]["input"]; }; /** Result or error for import custom resources dry run. */ export type ImportCustomResourcesDryRunOutput = ImportCustomResourcesDryRunResult | ImportCustomResourcesInputValidationError; /** Successful result of import custom resources dry run. */ export type ImportCustomResourcesDryRunResult = { __typename?: "ImportCustomResourcesDryRunResult"; /** List of names of existing resources */ existingResources: Array; /** List of names of resources to create */ resourcesToCreate: Array; }; /** Input for importing custom resources. */ export type ImportCustomResourcesInput = { /** Admin owner ID for imported resources */ adminOwnerId: Scalars["OwnerId"]["input"]; /** Connection ID to import into */ connectionId: Scalars["ConnectionId"]["input"]; /** Name of the import file */ filename?: InputMaybe; /** * List of all resources that we're importing permissions for. Resources in this list that * don't exist for the connection will be created. */ resources: Array; /** List of all user emails that we're importing permissions for. Resource users */ userEmails: Array; /** Visibility setting for imported resources */ visibility: Visibility; }; /** Error indicating validation failed for import custom resources input. */ export type ImportCustomResourcesInputValidationError = Error & { __typename?: "ImportCustomResourcesInputValidationError"; /** Error message */ message: Scalars["String"]["output"]; /** List of validation failure reasons */ reasons: Array; }; /** Result or error for import custom resources operation. */ export type ImportCustomResourcesOutput = ImportCustomResourcesInputValidationError | ImportCustomResourcesResult; /** Successful result of importing custom resources. */ export type ImportCustomResourcesResult = { __typename?: "ImportCustomResourcesResult"; /** Whether the operation succeeded */ success: Scalars["Boolean"]["output"]; }; export declare enum ImportSetting { All = "ALL", Manual = "MANUAL", None = "NONE", Tagged = "TAGGED" } export type IncidentioConnectionCredentialsInput = { apiKey: Scalars["String"]["input"]; }; export type IncidentioConnectionMetadata = { __typename?: "IncidentioConnectionMetadata"; placeholder?: Maybe; }; /** Information about a reviewer who has incomplete reviews. */ export type IncompleteAccessReviewer = { __typename?: "IncompleteAccessReviewer"; /** Number of connections this reviewer has not completed reviewing. */ incompleteConnections: Scalars["Int"]["output"]; /** Number of groups this reviewer has not completed reviewing. */ incompleteGroups: Scalars["Int"]["output"]; /** Number of resources this reviewer has not completed reviewing. */ incompleteResources: Scalars["Int"]["output"]; /** The reviewer user. */ user?: Maybe; /** The ID of the reviewer user. */ userId: Scalars["UserId"]["output"]; }; /** Represents an indirect access path showing how a principal indirectly has access to an entity through intermediary entities. */ export type IndirectAccessPath = { __typename?: "IndirectAccessPath"; /** The sorted path from the principal to the final entity, represented by a list of access points. */ accessPoints?: Maybe>; /** When this indirect access path expires (the earliest expiration in the path). */ expiration?: Maybe; }; /** A group in an indirect access path. */ export type IndirectGroupAccessPoint = { __typename?: "IndirectGroupAccessPoint"; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** Name of the group. */ groupName: Scalars["String"]["output"]; /** Type of the group. */ groupType: GroupType; }; /** Describes an indirect path by which a group has access to another group through nested groups. */ export type IndirectGroupGroupAccessPointPath = { __typename?: "IndirectGroupGroupAccessPointPath"; accessLevel: GroupAccessLevel; /** The final group in `indirectAccessPointPath`. This group has direct access to `memberGroupId`. */ endGroupId: Scalars["GroupId"]["output"]; /** The earliest time of any expiring groupgroup along the path making this path invalid */ expiration?: Maybe; /** The path of groups leading from `startGroupId` to `endGroupId`, inclusive. */ indirectAccessPointPath: Array; /** * Describes attributes of `startGroupId`'s indirect access to `endGroupId`. We call this "resolved" * because these attributes are computed based on following the path from start to end. */ resolvedAccessPoint: GroupGroupAccessPoint; /** * The first group in `indirectAccessPointPath`. This is the first group in the chain that has * access to `resourceId`. */ startGroupId: Scalars["GroupId"]["output"]; }; /** Describes an indirect path by which a user has access to a group through nested groups. */ export type IndirectGroupUserAccessPointPath = { __typename?: "IndirectGroupUserAccessPointPath"; /** * The final group in `indirectAccessPointPath`. This is at the end of the chain of groups that * `userId` has access to. */ endGroupId: Scalars["GroupId"]["output"]; /** The path of groups leading from `startGroupId` to `endGroupId`, inclusive. */ indirectAccessPointPath: Array; /** * Describes attributes of `userId`'s indirect access to `endGroupId`. We call this "resolved" * because these attributes are computed based on following the path from start to end. */ resolvedAccessPoint: GroupUserAccessPoint; /** * The first group in `indirectAccessPointPath`. This is also the group that `userId` has direct * access to. */ startGroupId: Scalars["GroupId"]["output"]; userId: Scalars["UserId"]["output"]; }; /** Input for initiating an OIDC authentication flow. */ export type InitOidcAuthFlowInput = { /** Type of OIDC provider to authenticate with. */ oidcProviderType: OidcProviderType; /** State parameter for OAuth flow. */ state: Scalars["String"]["input"]; }; /** Result of initiating an OIDC authentication flow. */ export type InitOidcAuthFlowOutput = InitOidcAuthFlowResult | OidcProviderNotFoundError; /** Successful result of initiating an OIDC authentication flow. */ export type InitOidcAuthFlowResult = { __typename?: "InitOidcAuthFlowResult"; /** Authorization URL to redirect the user to. */ authorizeUrl: Scalars["String"]["output"]; }; /** Input for initializing a third-party integration authentication flow. */ export type InitThirdPartyIntegrationAuthFlowInput = { /** Client credentials for the third-party service. */ clientInfo?: InputMaybe; /** Connection ID for connection-based integrations. */ connectionId?: InputMaybe; /** Organization name for the integration (if applicable). */ orgName?: InputMaybe; /** The type of integration being created. */ thirdPartyIntegrationType: IntegrationType; /** The third-party provider to authenticate with. */ thirdPartyProvider: ThirdPartyProvider; }; /** Result of initializing a third-party integration authentication flow. */ export type InitThirdPartyIntegrationAuthFlowOutput = ConnectionNotFoundError | InitThirdPartyIntegrationAuthFlowResult | ThirdPartyIntegrationNotFoundError; /** Successful result containing the authentication URL. */ export type InitThirdPartyIntegrationAuthFlowResult = { __typename?: "InitThirdPartyIntegrationAuthFlowResult"; /** URL to redirect the user to for authentication. */ url: Scalars["String"]["output"]; }; /** Result of initializing a third-party integration link authentication flow. */ export type InitThirdPartyIntegrationLinkAuthFlowOutput = InitThirdPartyIntegrationLinkAuthFlowResult; /** Successful result containing a link token. */ export type InitThirdPartyIntegrationLinkAuthFlowResult = { __typename?: "InitThirdPartyIntegrationLinkAuthFlowResult"; /** Link token for the authentication flow. */ linkToken: Scalars["String"]["output"]; }; export type InitiateUserLoginInput = { userEmail: Scalars["String"]["input"]; }; export type InitiateUserLoginOutput = EmailAlreadySent | InitiateUserLoginResult; export type InitiateUserLoginResult = { __typename?: "InitiateUserLoginResult"; emailVerified: Scalars["Boolean"]["output"]; success: Scalars["Boolean"]["output"]; }; /** The type of third-party integration, indicating whether it is user-specific, organization-wide, or connection-based. */ export declare enum IntegrationType { /** Connection-based integration for specific connection configurations. */ Connection = "CONNECTION", /** Organization-wide integration that applies to the entire organization. */ Org = "ORG", /** User-specific integration tied to an individual user. */ User = "USER" } export type InvalidCreateItemInputError = Error & { __typename?: "InvalidCreateItemInputError"; message: Scalars["String"]["output"]; }; export type InvalidEmailError = Error & { __typename?: "InvalidEmailError"; message: Scalars["String"]["output"]; }; /** Error returned when an event filter name is invalid. */ export type InvalidEventFilterNameError = Error & { __typename?: "InvalidEventFilterNameError"; /** Error message describing the issue. */ message: Scalars["String"]["output"]; }; /** Error indicating invalid object ID in filter. */ export type InvalidObjectIdFilterError = Error & { __typename?: "InvalidObjectIDFilterError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error indicating reviewer settings are invalid. */ export type InvalidReviewerSettingsError = Error & { __typename?: "InvalidReviewerSettingsError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Error returned when an invalid sync type is provided. */ export type InvalidSyncTypeError = Error & { __typename?: "InvalidSyncTypeError"; message: Scalars["String"]["output"]; }; /** Error returned when attempting to set invalid visibility groups. */ export type InvalidUpdateGroupVisibilityGroupError = Error & { __typename?: "InvalidUpdateGroupVisibilityGroupError"; /** Error message. */ message: Scalars["String"]["output"]; }; export type InvalidUpdateItemsInputError = Error & { __typename?: "InvalidUpdateItemsInputError"; message: Scalars["String"]["output"]; }; /** Error indicating invalid visibility group update. */ export type InvalidUpdateResourceVisibilityGroupError = Error & { __typename?: "InvalidUpdateResourceVisibilityGroupError"; /** Error message */ message: Scalars["String"]["output"]; }; export type InvalidUserCodeError = Error & { __typename?: "InvalidUserCodeError"; message: Scalars["String"]["output"]; }; /** Action to investigate a specific event. */ export type InvestigateEventAction = { __typename?: "InvestigateEventAction"; /** ID of the event to investigate */ eventID: Scalars["EventId"]["output"]; }; /** Input for inviting a single user. */ export type InviteUserInput = { /** The email address of the user to invite. */ email: Scalars["String"]["input"]; /** The user's first name. */ firstName: Scalars["String"]["input"]; /** The user's last name. */ lastName: Scalars["String"]["input"]; /** The product role to assign to the user. */ role: UserProductRole; /** Optional team to assign the user to. */ teamId?: InputMaybe; }; /** Input for inviting multiple users. */ export type InviteUsersInput = { /** List of user invitations to send. */ invites: Array; }; /** Result of inviting users. */ export type InviteUsersOutput = InviteUsersResult | UserAlreadyExistsInAnotherOrg; /** Successful result of inviting users. */ export type InviteUsersResult = { __typename?: "InviteUsersResult"; /** List of invited users. */ invitedUsers: Array; }; /** Result of listing IP ACL entries. */ export type IpAclEntriesOutput = IpAclEntriesResult; /** Successfully retrieved IP ACL entries. */ export type IpAclEntriesResult = { __typename?: "IpAclEntriesResult"; /** The list of IP ACL entries for the organization. */ entries: Array; }; /** Error returned when attempting to modify an item that has already been reviewed. */ export type ItemAccessAlreadyReviewedError = Error & { __typename?: "ItemAccessAlreadyReviewedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error indicating an item cannot be requested. */ export type ItemCannotBeRequestedError = Error & { __typename?: "ItemCannotBeRequestedError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Filter for item types. */ export type ItemTypeFilter = { /** Match item type equal to this value. */ equals?: InputMaybe; /** Match item type in this list. */ in?: InputMaybe>; /** Negate the filter. */ not?: InputMaybe; /** Match item type not in this list. */ notIn?: InputMaybe>; }; /** Error indicating one or more items are at capacity. */ export type ItemsAtCapacityError = Error & { __typename?: "ItemsAtCapacityError"; /** Group IDs at capacity */ groupIds?: Maybe>; /** Error message */ message: Scalars["String"]["output"]; /** Resource IDs at capacity */ resourceIds?: Maybe>; }; /** Metadata input for Jira integration configuration. */ export type JiraMetadataInput = { /** Email address for Jira authentication. */ email: Scalars["String"]["input"]; /** Jira organization URL. */ orgUrl: Scalars["String"]["input"]; }; export type LdapConnectionCredentialsInput = { rootPassword: Scalars["String"]["input"]; rootUserDistinguishedName: Scalars["String"]["input"]; }; export type LdapConnectionMetadata = { __typename?: "LDAPConnectionMetadata"; groupsDistinguishedName: Scalars["String"]["output"]; groupsUidKey: Scalars["String"]["output"]; serverHostname: Scalars["String"]["output"]; serverPort: Scalars["Int"]["output"]; tlsCaCertContent?: Maybe; tlsMode: Scalars["Boolean"]["output"]; usersDistinguishedName: Scalars["String"]["output"]; }; export type LdapConnectionMetadataInput = { groupsDistinguishedName: Scalars["String"]["input"]; groupsUidKey: Scalars["String"]["input"]; serverHostname: Scalars["String"]["input"]; serverPort: Scalars["Int"]["input"]; tlsCaCertContent?: InputMaybe; tlsMode: Scalars["Boolean"]["input"]; usersDistinguishedName: Scalars["String"]["input"]; }; /** Information about routes to display in the left sidebar navigation. */ export type LeftSidebarRoutes = { __typename?: "LeftSidebarRoutes"; /** Whether the current user has any owner roles. */ hasOwners: Scalars["Boolean"]["output"]; /** Whether the current user is a group leader. */ isGroupLeader: Scalars["Boolean"]["output"]; }; /** A single data point for line graph visualization. */ export type LineGraphData = { __typename?: "LineGraphData"; /** Timestamp of the data point. */ timestamp: Scalars["Time"]["output"]; /** Value at this timestamp. */ value: Scalars["Int"]["output"]; }; /** Input for linking an existing remote message channel. */ export type LinkExistingRemoteMessageChannelInput = { /** Optional group ID if associating with a group. */ groupId?: InputMaybe; /** Remote channel ID to link. */ remoteChannelId: Scalars["String"]["input"]; /** Optional resource ID if associating with a resource. */ resourceId?: InputMaybe; }; /** Result of linking an existing remote message channel. */ export type LinkExistingRemoteMessageChannelOutput = LinkExistingRemoteMessageChannelResult | MessageChannelMissingOAuthScopeError | RemoteMessageChannelAlreadyLinked | RemoteMessageChannelNotFound; /** Successful result of linking an existing remote message channel. */ export type LinkExistingRemoteMessageChannelResult = { __typename?: "LinkExistingRemoteMessageChannelResult"; /** The linked message channel. */ messageChannel: MessageChannel; }; /** Error indicating a linked group is not requestable. */ export type LinkedGroupNotRequestableError = Error & { __typename?: "LinkedGroupNotRequestableError"; /** ID of the group binding */ groupBindingId: Scalars["GroupBindingId"]["output"]; /** Error message */ message: Scalars["String"]["output"]; /** ID of the source group */ sourceGroupId: Scalars["GroupId"]["output"]; }; /** Input for listing event stream messages. */ export type ListEventStreamMessagesInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** ID of the event stream. */ eventStreamId: Scalars["EventStreamId"]["input"]; /** Filter by status code. */ statusCode: PubsubPublishMessageStatusCode; }; /** Output for listing event stream messages. */ export type ListEventStreamMessagesOutput = ListEventStreamMessagesResult; /** Result containing list of event stream messages. */ export type ListEventStreamMessagesResult = { __typename?: "ListEventStreamMessagesResult"; /** Cursor for next page. */ cursor?: Maybe; /** List of messages. */ messages: Array; /** Total number of messages. */ totalNumMessages: Scalars["Int"]["output"]; }; /** Output for listing event streams. */ export type ListEventStreamsOutput = ListEventStreamsResult; /** Result containing list of event streams. */ export type ListEventStreamsResult = { __typename?: "ListEventStreamsResult"; /** List of event streams. */ eventStreams: Array; }; /** Result of listing MFA factors. */ export type ListFactorsOutput = ConnectionUserNotFound | ListFactorsResult | MissingTokenPermissionError | NoIdpConfiguredError; /** Successful result of listing MFA factors. */ export type ListFactorsResult = { __typename?: "ListFactorsResult"; /** List of available MFA factors for the user. */ factors: Array; }; /** Input for logging entity remediation actions. */ export type LogEntityRemediationInput = { /** The entity being remediated */ entityKey: RecommendationsEntityKey; /** Number of access points converted to just-in-time */ jitCount: Scalars["Int"]["input"]; /** Number of access points converted to JIT from suggestions */ jitCountFromSuggestions: Scalars["Int"]["input"]; /** Type of remediation performed */ remediationType: RecommendationsSubscoreType; /** Number of access points revoked */ revokeCount: Scalars["Int"]["input"]; /** Number of access points revoked from suggestions */ revokeCountFromSuggestions: Scalars["Int"]["input"]; /** Total number of suggestions available */ totalSuggestionsCount: Scalars["Int"]["input"]; }; /** Output indicating success or failure of logging entity remediation. */ export type LogEntityRemediationOutput = { __typename?: "LogEntityRemediationOutput"; /** Whether the operation succeeded */ success: Scalars["Boolean"]["output"]; }; /** Long text field value. */ export type LongTextValue = { __typename?: "LongTextValue"; /** The long text value */ value: Scalars["String"]["output"]; }; /** Long text field value input. */ export type LongTextValueInput = { /** The long text value */ value: Scalars["String"]["input"]; }; /** Multi-factor authentication provider types supported by Opal. */ export declare enum MfaProvider { /** OpenID Connect MFA provider. */ Oidc = "OIDC", /** Okta MFA provider. */ Okta = "OKTA", /** Opal's native MFA provider. */ Opal = "OPAL" } /** Output containing list of available MFA providers. */ export type MfaProvidersOutput = { __typename?: "MFAProvidersOutput"; /** List of MFA providers configured for this organization. */ providers: Array; }; export type ManagedEntity = { createdAt: Scalars["Time"]["output"]; id: Scalars["UUID"]["output"]; isManaged: Scalars["Boolean"]["output"]; updatedAt: Scalars["Time"]["output"]; }; /** Error returned when attempting to modify user data managed by an HR/IDP system. */ export type ManagedHrDataIsImmutableError = Error & { __typename?: "ManagedHRDataIsImmutableError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Filter for users by manager. */ export type ManagerFilter = { /** Filter to users with this specific manager ID. */ managerId?: InputMaybe; /** Filter to users without a manager. */ managerUnset?: InputMaybe; }; /** Error indicating the manager has already approved the request. */ export type ManagerHasAlreadyApprovedError = Error & { __typename?: "ManagerHasAlreadyApprovedError"; /** Error message */ message: Scalars["String"]["output"]; }; /** A message channel for notifications (e.g., Slack channel). */ export type MessageChannel = { __typename?: "MessageChannel"; /** Unique identifier for the message channel. */ id: Scalars["MessageChannelId"]["output"]; /** Whether the channel is private. */ isPrivate: Scalars["Boolean"]["output"]; /** Name of the message channel. */ name: Scalars["String"]["output"]; /** Remote ID of the channel in the third-party provider. */ remoteId: Scalars["MessageChannelRemoteId"]["output"]; /** Third-party provider (e.g., Slack). */ thirdPartyProvider: ThirdPartyProvider; }; /** Error returned when the message channel name is invalid. */ export type MessageChannelInvalidNameError = Error & { __typename?: "MessageChannelInvalidNameError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when the Slack integration is missing required OAuth scopes. */ export type MessageChannelMissingOAuthScopeError = Error & { __typename?: "MessageChannelMissingOAuthScopeError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when the message channel name is already taken. */ export type MessageChannelNameTakenError = Error & { __typename?: "MessageChannelNameTakenError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when a message channel is not found. */ export type MessageChannelNotFoundError = Error & { __typename?: "MessageChannelNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when rate limited by the message channel provider. */ export type MessageChannelRateLimitedError = Error & { __typename?: "MessageChannelRateLimitedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Type of message channel based on its use case. */ export declare enum MessageChannelType { /** Channel for audit logs. */ Audit = "AUDIT", /** Channel for monitoring notifications. */ Monitor = "MONITOR", /** Channel for reviewer notifications. */ Reviewer = "REVIEWER" } /** Error returned when the user is not in the Slack workspace. */ export type MessageChannelUserNotInWorkspaceError = Error & { __typename?: "MessageChannelUserNotInWorkspaceError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Input for querying message channels. */ export type MessageChannelsInput = { /** Optional input to generate a channel name. */ generateChannelName?: InputMaybe; }; /** Result of querying message channels. */ export type MessageChannelsOutput = MessageChannelMissingOAuthScopeError | MessageChannelRateLimitedError | MessageChannelsResult; /** Result of querying message channels. */ export type MessageChannelsResult = { __typename?: "MessageChannelsResult"; /** Generated channel name, if requested. */ generatedChannelName?: Maybe; /** List of message channels. */ messageChannels: Array; }; /** Input for querying metrics data. */ export type MetricsInput = { /** Size of time buckets for aggregation. */ bucketSize?: InputMaybe; /** Filter by specific connection IDs. */ connectionIds?: InputMaybe>; /** Optional end date for the metrics query. */ endDate?: InputMaybe; /** Filter by specific group IDs. */ groupIds?: InputMaybe>; /** Filter by specific resource IDs. */ resourceIds?: InputMaybe>; /** Start date for the metrics query. */ startDate: Scalars["Time"]["input"]; /** Filter by specific tag IDs. */ tagIds?: InputMaybe>; }; export type MfaCallbackInput = { code: Scalars["String"]["input"]; state: Scalars["String"]["input"]; }; export type MfaCallbackOutput = MfaCallbackResult; export type MfaCallbackResult = { __typename?: "MfaCallbackResult"; mfaTime?: Maybe; }; /** Error returned when MFA validation fails. */ export type MfaInvalidError = Error & { __typename?: "MfaInvalidError"; message: Scalars["String"]["output"]; }; /** Error indicating missing IAM permissions. */ export type MissingIamPermissionError = Error & { __typename?: "MissingIAMPermissionError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Error returned when the API token is missing required permissions. */ export type MissingTokenPermissionError = Error & { __typename?: "MissingTokenPermissionError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Action to modify the duration of access. */ export type ModifyAccessAction = { __typename?: "ModifyAccessAction"; /** New duration in days */ durationInDays: Scalars["Int"]["output"]; }; /** Input for modifying recommendations edge hide actions. */ export type ModifyRecommendationsEdgeHideActionInput = { /** List of role assignment keys to modify */ roleAssignmentKeys: Array; }; /** Output for modify recommendations edge hide action operations. */ export type ModifyRecommendationsEdgeHideActionOutput = { __typename?: "ModifyRecommendationsEdgeHideActionOutput"; /** Updated role assignments */ roleAssignments: Array; }; export type MongoAtlasConnectionCredentialsInput = { privateKey: Scalars["String"]["input"]; projectID: Scalars["String"]["input"]; publicKey: Scalars["String"]["input"]; }; export type MongoAtlasConnectionMetadata = { __typename?: "MongoAtlasConnectionMetadata"; serverHostname: Scalars["String"]["output"]; }; export type MongoAtlasConnectionMetadataInput = { serverHostname: Scalars["String"]["input"]; }; export type MongoConnectionCredentialsInput = { rootPassword: Scalars["String"]["input"]; rootUserName: Scalars["String"]["input"]; }; export type MongoConnectionMetadata = { __typename?: "MongoConnectionMetadata"; serverHostname: Scalars["String"]["output"]; serverPort: Scalars["Int"]["output"]; tlsCaCertContent?: Maybe; tlsCertContent?: Maybe; tlsMode: Scalars["Boolean"]["output"]; }; export type MongoConnectionMetadataInput = { serverHostname: Scalars["String"]["input"]; serverPort: Scalars["Int"]["input"]; tlsCaCertContent?: InputMaybe; tlsCertContent?: InputMaybe; tlsMode: Scalars["Boolean"]["input"]; }; /** Metrics about the most requested items (resources or groups). */ export type MostRequestedItemsResult = { __typename?: "MostRequestedItemsResult"; /** Bar graph data showing request counts by item. */ barData: Array; }; /** Option for a multi-choice field. */ export type MultiChoiceOption = { __typename?: "MultiChoiceOption"; /** Display label for the option. */ label: Scalars["String"]["output"]; /** Value stored when this option is selected. */ value: Scalars["String"]["output"]; }; /** Input for a multi-choice option. */ export type MultiChoiceOptionInput = { /** Display label for the option. */ label: Scalars["String"]["input"]; /** Value stored when this option is selected. */ value: Scalars["String"]["input"]; }; /** Multiple choice field value. */ export type MultiChoiceValue = { __typename?: "MultiChoiceValue"; /** The selected choice */ value: Scalars["String"]["output"]; }; /** Multiple choice field value input. */ export type MultiChoiceValueInput = { /** The selected choice */ value: Scalars["String"]["input"]; }; /** Input for querying access levels for multiple groups. */ export type MultipleGroupAccessLevelsInput = { /** IDs of the groups to get access levels for. */ groupIds: Array; /** When set, only return access levels requestable for this user. */ onlyRequestableTargetUser?: InputMaybe; }; /** Output for querying access levels for multiple groups. */ export type MultipleGroupAccessLevelsOutput = GroupNotFoundError | MultipleGroupAccessLevelsResult; /** Result containing access levels for multiple groups. */ export type MultipleGroupAccessLevelsResult = { __typename?: "MultipleGroupAccessLevelsResult"; /** List of access level results for each group. */ results: Array; }; /** Input for querying access levels for multiple resources. */ export type MultipleResourceAccessLevelsInput = { /** If true, ignore remote access levels (only return Opal-managed access levels). */ ignoreRemoteAccessLevels?: Scalars["Boolean"]["input"]; /** When set, only return access levels requestable for this user. */ onlyRequestableTargetUser?: InputMaybe; /** The list of resource IDs to get access levels for. */ resourceIds: Array; }; /** Result of querying access levels for multiple resources. */ export type MultipleResourceAccessLevelsOutput = MultipleResourceAccessLevelsResult | ResourceNotFoundError; /** Successfully retrieved access levels for multiple resources. */ export type MultipleResourceAccessLevelsResult = { __typename?: "MultipleResourceAccessLevelsResult"; /** Results for each resource. */ results: Array; }; export type Mutation = { __typename?: "Mutation"; /** Add large amounts of test data to the current organization for performance testing. */ addBigData: AddBigDataOutput; /** Add users to a connection, provisioning them in the connected system. */ addConnectionUsers: AddConnectionUsersOutput; /** Add an entity to the current user's favorites. */ addFavorite?: Maybe; /** Add one or more resources to groups. */ addGroupResources: AddGroupResourcesOutput; /** Adds one or more tags to groups. */ addGroupTags: AddGroupTagsOutput; /** Add one or more users to groups. */ addGroupUsers: AddGroupUsersOutput; /** Add IDP group mappings to an app resource for SSO provisioning. */ addIdpGroupMappings: IdpGroupMappingsOutput; /** Adds tags to resources. */ addResourceTags: AddResourceTagsOutput; /** Adds users to resources with specified access levels. */ addResourceUsers: AddResourceUsersOutput; /** Add one or more role assignments. */ addRoleAssignments: AddRoleAssignmentsOutput; /** Add one or more user tags. */ addUserTags: AddUserTagsOutput; /** Admin action to revoke all unreviewed assignments in an access review. */ adminRevokeUnreviewedAssignments: AdminRevokeUnreviewedAssignmentsOutput; /** Approves a pending request. */ approveRequest: ApproveRequestOutput; assumeImpersonation: AssumeImpersonationOutput; authCodeCallback: AuthCodeCallbackOutput; bulkUpdateItems: BulkUpdateItemsOutput; /** Cancels a pending request. */ cancelRequest: CancelRequestOutput; /** Clears the propagation status for a specific role assignment. */ clearPropagationStatus: ClearPropagationStatusOutput; cliTokenExchange: CliTokenExchangeOutput; /** Confirms that revoked access has been removed in the end system. */ confirmEndSystemRevocation: ConfirmEndSystemRevocationOutput; /** Create a new auth provider application for an organization. */ createAuthProviderApplication: CreateAuthProviderApplicationOutput; createBundle: CreateBundleOutput; createBundleGroups: CreateBundleGroupsOutput; createBundleResources: CreateBundleResourcesOutput; createConfigurationTemplate: CreateConfigurationTemplateOutput; createConnection: CreateConnectionOutput; createConnectionForIdp: CreateIdpConnectionOutput; /** Create a test organization for E2E testing purposes. */ createE2ETestOrganization: CreateTestOrgResult; /** Create a new event filter for saving audit log query configurations. */ createEventFilter: CreateEventFilterOutput; /** Creates a new event stream for publishing events to external systems. */ createEventStream: CreateEventStreamOutput; createFirstPartyToken: CreateFirstPartyTokenOutput; /** * Create a new group. * @deprecated Use createItems instead. */ createGroup: CreateGroupOutput; /** Create one or more group bindings. */ createGroupBindings: CreateGroupBindingsOutput; /** Creates a new IP ACL entry. */ createIPACLEntry: CreateIpaclEntryOutput; /** Create a new IdP connection. */ createIdpConnection: CreateIdpConnectionOutput; /** Create a user attribute import mapping. */ createIdpConnectionUserAttributeImportMapping: CreateIdpConnectionUserAttributeImportMappingOutput; createItems: CreateItemsOutput; /** Create or update an OIDC provider configuration. */ createOrUpdateOidcProvider: CreateOrUpdateOidcProviderOutput; /** Creates a new organization. */ createOrganization: CreateOrganizationOutput; /** Creates a new owner. */ createOwner: CreateOwnerOutput; /** Creates multiple owners. */ createOwners: CreateOwnersOutput; /** Creates hide actions for recommendations edges. */ createRecommendationsEdgeHideAction: ModifyRecommendationsEdgeHideActionOutput; /** Create a new remote message channel (e.g., Slack channel). */ createRemoteMessageChannel: CreateRemoteMessageChannelOutput; /** Creates a new access request. */ createRequest: CreateRequestOutput; /** Creates a comment on an access request. */ createRequestComment: CreateRequestCommentOutput; /** Creates a request to propose a new resource. */ createRequestProposal: CreateRequestProposalOutput; /** Create a request reviewer delegation. */ createRequestReviewerDelegation: CreateRequestReviewerDelegationOutput; /** Creates a new request template. */ createRequestTemplate: CreateRequestTemplateOutput; /** * Deprecated: Use createItems instead. * Creates a new resource. * @deprecated Use createItems instead. */ createResource: CreateResourceOutput; /** Creates a custom access level for a resource. */ createResourceCustomAccessLevel: CreateResourceCustomAccessLevelOutput; /** Creates multiple custom access levels. */ createResourceCustomAccessLevels: CreateResourceCustomAccessLevelsOutput; /** * Deprecated: Use createItems instead. * Creates multiple resources. * @deprecated Use createItems instead. */ createResources: CreateResourcesOutput; createSamlConnection: CreateSamlConnectionOutput; /** Create a SAML connection proxy for on-premises deployments. */ createSamlConnectionProxy: CreateSamlConnectionProxyOutput; /** Create a new service user. */ createServiceUser: User; /** Create an automation for a service user. */ createServiceUserAutomation: ServiceUserAutomation; /** Create a new session for accessing a resource. */ createSession: CreateSessionOutput; /** Create a new tag. */ createTag: CreateTagOutput; /** Creates a new third-party integration after successful authentication. */ createThirdPartyIntegration: CreateThirdPartyIntegrationOutput; /** Creates webhook configuration for the organization. */ createWebhookInfo: CreateWebhookInfoOutput; /** Deletes one or more access review templates. */ deleteAccessReviewTemplates: DeleteAccessReviewTemplatesOutput; deleteBundle: DeleteBundleOutput; deleteBundleGroups: Scalars["Boolean"]["output"]; deleteBundleResources: Scalars["Boolean"]["output"]; deleteConfigurationTemplate: DeleteConfigurationTemplateOutput; deleteConnection: DeleteConnectionOutput; /** Delete an event filter. */ deleteEventFilter: DeleteEventFilterOutput; /** Deletes an event stream. */ deleteEventStream: DeleteEventStreamOutput; /** Remove an entity from the current user's favorites. */ deleteFavorite?: Maybe; deleteFirstPartyTokens: DeleteFirstPartyTokensOutput; /** Delete a single group. */ deleteGroup: DeleteGroupOutput; /** Delete one or more group bindings. */ deleteGroupBindings: DeleteGroupBindingsOutput; /** Delete multiple groups. */ deleteGroups: DeleteGroupsOutput; /** Deletes an IP ACL entry. */ deleteIPACLEntry: DeleteIpaclEntryOutput; /** Delete an IdP connection. */ deleteIdpConnection: DeleteIdpConnectionOutput; /** Delete a user attribute import mapping. */ deleteIdpConnectionUserAttributeImportMapping: DeleteIdpConnectionUserAttributeImportMappingOutput; /** Delete IDP group mappings from an app resource. */ deleteIdpGroupMappings: IdpGroupMappingsOutput; /** Deletes the current organization. This is a dangerous operation. */ deleteOrganization: DeleteOrganizationOutput; /** Deletes a single owner. */ deleteOwner: DeleteOwnerOutput; /** Deletes multiple owners. */ deleteOwners: DeleteOwnersOutput; /** Deletes hide actions for recommendations edges. */ deleteRecommendationsEdgeHideAction: ModifyRecommendationsEdgeHideActionOutput; /** Delete a request reviewer delegation. */ deleteRequestReviewerDelegation: DeleteRequestReviewerDelegationOutput; /** Deletes a request template. */ deleteRequestTemplate: DeleteRequestTemplateOutput; /** Deletes custom access levels. */ deleteResourceCustomAccessLevels: DeleteResourceCustomAccessLevelsOutput; /** Deletes one or more resources. */ deleteResources: DeleteResourcesOutput; deleteSamlConnection: DeleteSamlConnectionOutput; /** Delete a SAML connection proxy for on-premises deployments. */ deleteSamlConnectionProxy: DeleteSamlConnectionProxyOutput; deleteSavedQueries: Scalars["Boolean"]["output"]; /** Delete automations for service users. */ deleteServiceUserAutomations: Scalars["Boolean"]["output"]; /** Delete one or more tags. */ deleteTags: DeleteTagsOutput; /** Deletes an existing third-party integration. */ deleteThirdPartyIntegration: DeleteThirdPartyIntegrationOutput; /** Deletes a user from the organization. */ deleteUser: DeleteUserOutput; /** Bulk deletes multiple users from the organization. Only enabled when feature flag is active. */ deleteUsers: DeleteUsersOutput; /** Deletes webhook configuration for the organization. */ deleteWebhookInfo: DeleteWebhookInfoOutput; /** Denies a pending request. */ denyRequest: DenyRequestOutput; /** Dismisses one or more group binding suggestions. */ dismissGroupBindingSuggestions: DismissGroupBindingSuggestionsOutput; /** Dismisses recommendations subscores for the specified entities. */ dismissRecommendationsSubscores: DismissRecommendationsSubscoresOutput; /** Dismiss one or more sync errors. */ dismissSyncErrors: DismissSyncErrorsOutput; /** Enable a specific type of notification for all users in the organization. */ enableNotificationForAll: EnableNotificationsForAllOutput; /** Escalates a request to the requester's skip-level manager. */ escalateRequestToSkipManager: EscalateRequestToSkipManagerOutput; /** Extend the expiration of a role assignment. */ extendRoleAssignment: ExtendRoleAssignmentOutput; /** Forfeit access to a group (remove the current user from the group). */ forfeitGroup: ForfeitGroupOutput; /** Allows the current user to forfeit their own access to a resource. */ forfeitResource: ForfeitResourceOutput; /** Hide an item (connection, resource, or group) from the catalog view. */ hideFromCatalog?: Maybe; /** @deprecated Use bulkUpdateItems with importUnmanagedItems set to true */ importAll: ImportAllOutput; /** Import resources and their resource users for a custom connection */ importCustomResources: ImportCustomResourcesOutput; /** Import resources and their resource users for a custom connection (dry run) */ importCustomResourcesDryRun: ImportCustomResourcesDryRunOutput; /** Initiate an OIDC authentication flow (authenticated user). */ initOidcAuthFlow: InitOidcAuthFlowOutput; /** Initiate an OIDC authentication flow (presigned access). */ initOidcAuthFlowPresigned: InitOidcAuthFlowOutput; /** * Initializes the OAuth authentication flow for a third-party integration. * Returns a URL to redirect the user to for authentication. */ initThirdPartyIntegrationAuthFlow: InitThirdPartyIntegrationAuthFlowOutput; /** Initializes a link-based authentication flow for third-party integrations. */ initThirdPartyIntegrationLinkAuthFlow: InitThirdPartyIntegrationLinkAuthFlowOutput; initiateUserLogin: InitiateUserLoginOutput; /** Invite one or more users to the organization. */ inviteUsers: InviteUsersOutput; /** Link an existing remote message channel to an Opal resource or group. */ linkExistingRemoteMessageChannel: LinkExistingRemoteMessageChannelOutput; /** Logs remediation actions taken on an entity. */ logEntityRemediation: LogEntityRemediationOutput; mfaCallback: MfaCallbackOutput; /** Performs review actions (accept, revoke, update) on multiple items. */ performReview: PerformReviewOutput; /** Mark a UI notification as read by URL. */ readUINotification: ReadUiNotificationOutput; /** Mark multiple UI notifications as read. */ readUINotifications: ReadUiNotificationsOutput; /** Record that the current user viewed a group. */ recordGroupView: RecordGroupViewOutput; /** Records a view of a resource for analytics. */ recordResourceView: RecordResourceViewOutput; /** Regenerates the audit report for a completed access review. */ regenerateAccessReviewReport: RegenerateAccessReviewReportOutput; /** Regenerates the webhook signing secret. */ regenerateSigningSecret: RegenerateSigningSecretOutput; /** Adds group resources as part of remediation operations. */ remediateAddGroupResources: RemediateAddGroupResourcesOutput; /** Adds group users as part of remediation operations. */ remediateAddGroupUsers: RemediateAddGroupUsersOutput; /** Adds resource users as part of remediation operations. */ remediateAddResourceUsers: RemediateAddResourceUsersOutput; /** Adds role assignments as part of remediation operations. */ remediateAddRoleAssignments: RemediateAddRoleAssignmentsOutput; /** Remove users from a connection, deprovisioning them from the connected system. */ removeConnectionUsers: RemoveConnectionUsersOutput; /** Remove one or more resources from groups. */ removeGroupResources: RemoveGroupResourcesOutput; /** Removes one or more tags from groups. */ removeGroupTags: RemoveGroupTagsOutput; /** Remove one or more users from groups. */ removeGroupUsers: RemoveGroupUsersOutput; /** Removes tags from resources. */ removeResourceTags: RemoveResourceTagsOutput; /** Removes users from resources. */ removeResourceUsers: RemoveResourceUsersOutput; /** Remove one or more role assignments. */ removeRoleAssignments: RemoveRoleAssignmentsOutput; /** Remove one or more user tags. */ removeUserTags: RemoveUserTagsOutput; /** Reorder the priority of IdP connections for a user attribute. */ reorderUserAttributePriority: ReorderUserAttributePriorityOutput; /** Requeues failed event stream messages for retry. */ requeueEventStreamMessages: RequeueEventStreamMessagesOutput; /** Triggers recalculation of risk scores for an entity. */ rescoreEntity: RescoreEntityOutput; /** Rescore all recommendations in the current organization. */ rescoreRecommendations: RescoreRecommendationsOutput; /** * Reset the dataseed for the current organization. This is used for testing and development. * Note: resetDataseed needs to be type INTERNAL_MAYBE_AUTH to allow running it * from logged out view after organization purge. */ resetDataseed: ResetDataseedOutput; /** Reset all remediations in the current organization. */ resetRemediations: ResetRemediationsOutput; /** Resets a user's multi-factor authentication configuration. */ resetUserMFA: ResetUserMfaOutput; /** Creates a new access review template. */ saveAccessReviewTemplate: CreateAccessReviewTemplateOutput; saveQuery: SavedQuery; /** Sends reminder notifications to reviewers who have not completed their reviews. */ sendAccessReviewReminder: SendAccessReviewReminderOutput; /** Sends a manual reminder to reviewers of a pending request. */ sendManualRequestReminder: SendManualRequestReminderOutput; /** Sets a note on one or more access review items. */ setNote: SetNoteOutput; /** Sets the users for an owner, replacing any existing users. */ setOwnerUsers: SetOwnerUsersOutput; /** Set internal admin roles for a user. */ setRoles: SetRolesOutput; signIn: SignInOutput; signOut: SignOutOutput; /** Starts a new access review with the specified configuration. */ startAccessReview: StartAccessReviewOutput; /** Start a sync operation. */ startSync: StartSyncOutput; /** Stops an ongoing access review. */ stopAccessReview: StopAccessReviewOutput; stopImpersonation: StopImpersonationOutput; /** * Syncs and refreshes the list of Slack workspaces for an enterprise grid integration. * This should be called after new workspaces are added to the Slack Enterprise Grid. */ syncSlackWorkspaces: SyncSlackWorkspacesOutput; /** Unhide an item (connection, resource, or group) from the catalog view, making it visible again. */ unhideFromCatalog?: Maybe; /** Updates an existing access review's settings. */ updateAccessReview: UpdateAccessReviewOutput; /** Updates the reviewers assigned to review a group and its access. */ updateAccessReviewGroupReviewers: UpdateAccessReviewGroupReviewersOutput; /** Updates the reviewers assigned to review a resource and its access. */ updateAccessReviewResourceReviewers: UpdateAccessReviewResourceReviewersOutput; /** Update the reviewers assigned to specific items in an access review */ updateAccessReviewReviewers: UpdateAccessReviewReviewersOutput; /** Updates an existing access review template. */ updateAccessReviewTemplate: UpdateAccessReviewTemplateOutput; updateBundle: UpdateBundleOutput; /** Update the configuration template tag associations. */ updateConfigTemplateTags: UpdateConfigTemplateTagsOutput; updateConfigurationTemplate: UpdateConfigurationTemplateOutput; updateConnection: UpdateConnectionOutput; /** Update the reviewers assigned to a connection in an access review */ updateConnectionReviewers: UpdateConnectionReviewersOutput; /** Update the reviewers assigned to a specific user's access within a connection access review */ updateConnectionUserReviewers: UpdateConnectionUserReviewersOutput; /** Updates an existing event stream's configuration. */ updateEventStream: UpdateEventStreamOutput; /** * Update an existing group. * @deprecated Use bulkUpdateItems instead. */ updateGroup: UpdateGroupOutput; /** Update one or more group bindings. */ updateGroupBindings: UpdateGroupBindingsOutput; /** Updates the reviewers assigned to review a group-resource relationship. */ updateGroupResourceReviewers: UpdateGroupResourceReviewersOutput; /** Update one or more group-resource associations. */ updateGroupResources: UpdateGroupResourcesOutput; /** Updates the reviewers assigned to review a user's membership in a group. */ updateGroupUserReviewers: UpdateGroupUserReviewersOutput; /** Update one or more user-group associations. */ updateGroupUsers: UpdateGroupUsersOutput; /** Updates an existing IP ACL entry. */ updateIPACLEntry: UpdateIpaclEntryOutput; /** Update an IdP connection. */ updateIdpConnection: UpdateIdpConnectionOutput; /** Update IDP group mappings for an app resource. */ updateIdpGroupMappings: IdpGroupMappingsOutput; /** Updates organization settings. */ updateOrganizationSettings: UpdateOrganizationSettingsOutput; /** Updates an existing owner. */ updateOwner: UpdateOwnerOutput; /** Updates an existing request template. */ updateRequestTemplate: UpdateRequestTemplateOutput; /** Updates a custom access level. */ updateResourceCustomAccessLevel: UpdateResourceCustomAccessLevelOutput; /** Updates multiple custom access levels. */ updateResourceCustomAccessLevels: UpdateResourceCustomAccessLevelsOutput; /** Updates the reviewers assigned to review a user's access to a resource. */ updateResourceUserReviewers: UpdateResourceUserReviewersOutput; /** Updates resource user access (e.g., changing expiration times). */ updateResourceUsers: UpdateResourceUsersOutput; /** * Deprecated: Use bulkUpdateItems instead. * Updates one or more resources. * @deprecated Use bulkUpdateItems instead. */ updateResources: UpdateResourcesOutput; /** Update one or more role assignments. */ updateRoleAssignments: UpdateRoleAssignmentsOutput; updateSamlConnection: UpdateSamlConnectionOutput; updateSavedQuery: SavedQuery; /** Update an automation for a service user. */ updateServiceUserAutomation: ServiceUserAutomation; /** Updates a user's profile information such as position and manager. */ updateUser: UpdateUserOutput; /** Updates a user's manager assignment. */ updateUserManager: UpdateUserManagerOutput; /** Update user settings. */ updateUserSettings: UpdateUserSettingsOutput; /** Updates webhook configuration for the organization. */ updateWebhookInfo: UpdateWebhookInfoOutput; /** Uses break glass access to immediately gain access to a group in emergency situations. */ useGroupBreakGlass: UseGroupBreakGlassOutput; /** Validate an OAuth code and save the ID token (authenticated user). */ validateCodeAndSaveIdToken?: Maybe; /** Validate an OAuth code and save the ID token (presigned access). */ validateCodeAndSaveIdTokenPresigned?: Maybe; validateConnection: ValidateConnectionOutput; /** Asynchronously verify an MFA factor (e.g., push notification). */ verifyFactorAsync: VerifyFactorAsyncOutput; /** Synchronously verify an MFA factor (e.g., TOTP code). */ verifyFactorSync: VerifyFactorSyncOutput; }; export type MutationAddBigDataArgs = { input: AddBigDataInput; }; export type MutationAddConnectionUsersArgs = { input: AddConnectionUsersInput; }; export type MutationAddFavoriteArgs = { entityIdTuple?: InputMaybe; }; export type MutationAddGroupResourcesArgs = { input: AddGroupResourcesInput; }; export type MutationAddGroupTagsArgs = { input: AddGroupTagsInput; }; export type MutationAddGroupUsersArgs = { input: AddGroupUsersInput; }; export type MutationAddIdpGroupMappingsArgs = { input: AddIdpGroupMappingsInput; }; export type MutationAddResourceTagsArgs = { input: AddResourceTagsInput; }; export type MutationAddResourceUsersArgs = { input: AddResourceUsersInput; }; export type MutationAddRoleAssignmentsArgs = { input: AddRoleAssignmentsInput; }; export type MutationAddUserTagsArgs = { input: AddUserTagsInput; }; export type MutationAdminRevokeUnreviewedAssignmentsArgs = { input: AdminRevokeUnreviewedAssignmentsInput; }; export type MutationApproveRequestArgs = { input: ApproveRequestInput; }; export type MutationAssumeImpersonationArgs = { input: AssumeImpersonationInput; }; export type MutationAuthCodeCallbackArgs = { input: AuthCodeCallbackInput; }; export type MutationBulkUpdateItemsArgs = { input: BulkUpdateItemsInput; }; export type MutationCancelRequestArgs = { input: CancelRequestInput; }; export type MutationClearPropagationStatusArgs = { input: ClearPropagationStatusInput; }; export type MutationCliTokenExchangeArgs = { input: CliTokenExchangeInput; }; export type MutationConfirmEndSystemRevocationArgs = { input: ConfirmEndSystemRevocationInput; }; export type MutationCreateAuthProviderApplicationArgs = { input: CreateAuthProviderApplicationInput; }; export type MutationCreateBundleArgs = { input: CreateBundleInput; }; export type MutationCreateBundleGroupsArgs = { input: BundleGroupsInput; }; export type MutationCreateBundleResourcesArgs = { input: BundleResourcesInput; }; export type MutationCreateConfigurationTemplateArgs = { input: CreateConfigurationTemplateInput; }; export type MutationCreateConnectionArgs = { input: CreateConnectionInput; }; export type MutationCreateConnectionForIdpArgs = { input: CreateConnectionForIdpInput; }; export type MutationCreateEventFilterArgs = { input: CreateEventFilterInput; }; export type MutationCreateEventStreamArgs = { input: CreateEventStreamInput; }; export type MutationCreateFirstPartyTokenArgs = { input: CreateFirstPartyTokenInput; }; export type MutationCreateGroupArgs = { input: CreateGroupInput; }; export type MutationCreateGroupBindingsArgs = { input: CreateGroupBindingsInput; }; export type MutationCreateIpaclEntryArgs = { input: CreateIpaclEntryInput; }; export type MutationCreateIdpConnectionArgs = { input: CreateIdpConnectionInput; }; export type MutationCreateIdpConnectionUserAttributeImportMappingArgs = { input: CreateIdpConnectionUserAttributeImportMappingInput; }; export type MutationCreateItemsArgs = { input: CreateItemsInput; }; export type MutationCreateOrUpdateOidcProviderArgs = { input: CreateOrUpdateOidcProviderInput; }; export type MutationCreateOrganizationArgs = { input: CreateOrganizationInput; }; export type MutationCreateOwnerArgs = { input: CreateOwnerInput; }; export type MutationCreateOwnersArgs = { input: CreateOwnersInput; }; export type MutationCreateRecommendationsEdgeHideActionArgs = { input: ModifyRecommendationsEdgeHideActionInput; }; export type MutationCreateRemoteMessageChannelArgs = { input: CreateRemoteMessageChannelInput; }; export type MutationCreateRequestArgs = { input: CreateRequestInput; }; export type MutationCreateRequestCommentArgs = { input: CreateRequestCommentInput; }; export type MutationCreateRequestProposalArgs = { input: CreateRequestProposalInput; }; export type MutationCreateRequestReviewerDelegationArgs = { input: CreateRequestReviewerDelegationInput; }; export type MutationCreateRequestTemplateArgs = { input: CreateRequestTemplateInput; }; export type MutationCreateResourceArgs = { input: CreateResourceInput; }; export type MutationCreateResourceCustomAccessLevelArgs = { input: CreateResourceCustomAccessLevelInput; }; export type MutationCreateResourceCustomAccessLevelsArgs = { input: CreateResourceCustomAccessLevelsInput; }; export type MutationCreateResourcesArgs = { input: CreateResourcesInput; }; export type MutationCreateSamlConnectionArgs = { input: CreateSamlConnectionInput; }; export type MutationCreateSamlConnectionProxyArgs = { input: CreateSamlConnectionProxyInput; }; export type MutationCreateServiceUserArgs = { input: CreateServiceUserInput; }; export type MutationCreateServiceUserAutomationArgs = { input: CreateServiceUserAutomationInput; userId: Scalars["UserId"]["input"]; }; export type MutationCreateSessionArgs = { input: CreateSessionInput; }; export type MutationCreateTagArgs = { input: CreateTagInput; }; export type MutationCreateThirdPartyIntegrationArgs = { input: CreateThirdPartyIntegrationInput; }; export type MutationCreateWebhookInfoArgs = { input: CreateWebhookInfoInput; }; export type MutationDeleteAccessReviewTemplatesArgs = { input: DeleteAccessReviewTemplatesInput; }; export type MutationDeleteBundleArgs = { input: DeleteBundleInput; }; export type MutationDeleteBundleGroupsArgs = { input: DeleteBundleGroupsInput; }; export type MutationDeleteBundleResourcesArgs = { input: DeleteBundleResourcesInput; }; export type MutationDeleteConfigurationTemplateArgs = { input: DeleteConfigurationTemplateInput; }; export type MutationDeleteConnectionArgs = { input: DeleteConnectionInput; }; export type MutationDeleteEventFilterArgs = { input: DeleteEventFilterInput; }; export type MutationDeleteEventStreamArgs = { input: DeleteEventStreamInput; }; export type MutationDeleteFavoriteArgs = { entityIdTuple?: InputMaybe; }; export type MutationDeleteFirstPartyTokensArgs = { input: DeleteFirstPartyTokensInput; }; export type MutationDeleteGroupArgs = { input: DeleteGroupInput; }; export type MutationDeleteGroupBindingsArgs = { input: DeleteGroupBindingsInput; }; export type MutationDeleteGroupsArgs = { input: DeleteGroupsInput; }; export type MutationDeleteIpaclEntryArgs = { input: DeleteIpaclEntryInput; }; export type MutationDeleteIdpConnectionArgs = { input: DeleteIdpConnectionInput; }; export type MutationDeleteIdpConnectionUserAttributeImportMappingArgs = { input: DeleteIdpConnectionUserAttributeImportMappingInput; }; export type MutationDeleteIdpGroupMappingsArgs = { input: DeleteIdpGroupMappingsInput; }; export type MutationDeleteOwnerArgs = { input: DeleteOwnerInput; }; export type MutationDeleteOwnersArgs = { input: DeleteOwnersInput; }; export type MutationDeleteRecommendationsEdgeHideActionArgs = { input: ModifyRecommendationsEdgeHideActionInput; }; export type MutationDeleteRequestReviewerDelegationArgs = { input: DeleteRequestReviewerDelegationInput; }; export type MutationDeleteRequestTemplateArgs = { input: DeleteRequestTemplateInput; }; export type MutationDeleteResourceCustomAccessLevelsArgs = { input: DeleteResourceCustomAccessLevelsInput; }; export type MutationDeleteResourcesArgs = { input: DeleteResourcesInput; }; export type MutationDeleteSamlConnectionProxyArgs = { input: DeleteSamlConnectionProxyInput; }; export type MutationDeleteSavedQueriesArgs = { input: Array; }; export type MutationDeleteServiceUserAutomationsArgs = { inputs: Array; }; export type MutationDeleteTagsArgs = { input: DeleteTagsInput; }; export type MutationDeleteThirdPartyIntegrationArgs = { input: DeleteThirdPartyIntegrationInput; }; export type MutationDeleteUserArgs = { input: DeleteUserInput; }; export type MutationDeleteUsersArgs = { input: DeleteUsersInput; }; export type MutationDenyRequestArgs = { input: DenyRequestInput; }; export type MutationDismissGroupBindingSuggestionsArgs = { input: DismissGroupBindingSuggestionsInput; }; export type MutationDismissRecommendationsSubscoresArgs = { input: DismissRecommendationsSubscoresInput; }; export type MutationDismissSyncErrorsArgs = { input: DismissSyncErrorsInput; }; export type MutationEnableNotificationForAllArgs = { type: NotificationType; }; export type MutationEscalateRequestToSkipManagerArgs = { input: EscalateRequestToSkipManagerInput; }; export type MutationExtendRoleAssignmentArgs = { input: RoleAssignmentKeyInput; }; export type MutationForfeitGroupArgs = { input: ForfeitGroupInput; }; export type MutationForfeitResourceArgs = { input: ForfeitResourceInput; }; export type MutationHideFromCatalogArgs = { itemID?: InputMaybe; }; export type MutationImportAllArgs = { input: ImportAllInput; }; export type MutationImportCustomResourcesArgs = { input: ImportCustomResourcesInput; }; export type MutationImportCustomResourcesDryRunArgs = { input: ImportCustomResourcesInput; }; export type MutationInitOidcAuthFlowArgs = { input: InitOidcAuthFlowInput; }; export type MutationInitOidcAuthFlowPresignedArgs = { input: InitOidcAuthFlowInput; }; export type MutationInitThirdPartyIntegrationAuthFlowArgs = { input: InitThirdPartyIntegrationAuthFlowInput; }; export type MutationInitiateUserLoginArgs = { input: InitiateUserLoginInput; }; export type MutationInviteUsersArgs = { input: InviteUsersInput; }; export type MutationLinkExistingRemoteMessageChannelArgs = { input: LinkExistingRemoteMessageChannelInput; }; export type MutationLogEntityRemediationArgs = { input: LogEntityRemediationInput; }; export type MutationMfaCallbackArgs = { input: MfaCallbackInput; }; export type MutationPerformReviewArgs = { input: PerformReviewInput; }; export type MutationReadUiNotificationArgs = { input: ReadUiNotificationInput; }; export type MutationReadUiNotificationsArgs = { input: ReadUiNotificationsInput; }; export type MutationRecordGroupViewArgs = { input: RecordGroupViewInput; }; export type MutationRecordResourceViewArgs = { input: RecordResourceViewInput; }; export type MutationRegenerateAccessReviewReportArgs = { input: RegenerateAccessReviewReportInput; }; export type MutationRemediateAddGroupResourcesArgs = { input: AddGroupResourcesInput; }; export type MutationRemediateAddGroupUsersArgs = { input: AddGroupUsersInput; }; export type MutationRemediateAddResourceUsersArgs = { input: AddResourceUsersInput; }; export type MutationRemediateAddRoleAssignmentsArgs = { input: AddRoleAssignmentsInput; }; export type MutationRemoveConnectionUsersArgs = { input: RemoveConnectionUsersInput; }; export type MutationRemoveGroupResourcesArgs = { input: RemoveGroupResourcesInput; }; export type MutationRemoveGroupTagsArgs = { input: RemoveGroupTagsInput; }; export type MutationRemoveGroupUsersArgs = { input: RemoveGroupUsersInput; }; export type MutationRemoveResourceTagsArgs = { input: RemoveResourceTagsInput; }; export type MutationRemoveResourceUsersArgs = { input: RemoveResourceUsersInput; }; export type MutationRemoveRoleAssignmentsArgs = { input: RemoveRoleAssignmentsInput; }; export type MutationRemoveUserTagsArgs = { input: RemoveUserTagsInput; }; export type MutationReorderUserAttributePriorityArgs = { input: ReorderUserAttributePriorityInput; }; export type MutationRequeueEventStreamMessagesArgs = { input: RequeueEventStreamMessagesInput; }; export type MutationRescoreEntityArgs = { input: RecommendationsEntityKey; }; export type MutationResetUserMfaArgs = { input: ResetUserMfaInput; }; export type MutationSaveAccessReviewTemplateArgs = { input: CreateAccessReviewTemplateInput; }; export type MutationSaveQueryArgs = { input: SaveQueryInput; }; export type MutationSendAccessReviewReminderArgs = { input: SendAccessReviewReminderInput; }; export type MutationSendManualRequestReminderArgs = { input: SendManualRequestReminderInput; }; export type MutationSetNoteArgs = { input?: InputMaybe; }; export type MutationSetOwnerUsersArgs = { input: SetOwnerUsersInput; }; export type MutationSetRolesArgs = { input: SetRolesInput; }; export type MutationSignInArgs = { input: SignInInput; }; export type MutationStartAccessReviewArgs = { input: StartAccessReviewInput; }; export type MutationStartSyncArgs = { input: StartSyncInput; }; export type MutationStopAccessReviewArgs = { input: StopAccessReviewInput; }; export type MutationUnhideFromCatalogArgs = { itemID?: InputMaybe; }; export type MutationUpdateAccessReviewArgs = { input: UpdateAccessReviewInput; }; export type MutationUpdateAccessReviewGroupReviewersArgs = { input: UpdateAccessReviewGroupReviewersInput; }; export type MutationUpdateAccessReviewResourceReviewersArgs = { input: UpdateAccessReviewResourceReviewersInput; }; export type MutationUpdateAccessReviewReviewersArgs = { input: UpdateAccessReviewReviewersInput; }; export type MutationUpdateAccessReviewTemplateArgs = { input: UpdateAccessReviewTemplateInput; }; export type MutationUpdateBundleArgs = { input: UpdateBundleInput; }; export type MutationUpdateConfigTemplateTagsArgs = { input: UpdateConfigTemplateTagsInput; }; export type MutationUpdateConfigurationTemplateArgs = { input: UpdateConfigurationTemplateInput; }; export type MutationUpdateConnectionArgs = { input: UpdateConnectionInput; }; export type MutationUpdateConnectionReviewersArgs = { input: UpdateConnectionReviewersInput; }; export type MutationUpdateConnectionUserReviewersArgs = { input: UpdateConnectionUserReviewersInput; }; export type MutationUpdateEventStreamArgs = { input: UpdateEventStreamInput; }; export type MutationUpdateGroupArgs = { input: UpdateGroupInput; }; export type MutationUpdateGroupBindingsArgs = { input: UpdateGroupBindingsInput; }; export type MutationUpdateGroupResourceReviewersArgs = { input: UpdateGroupResourceReviewersInput; }; export type MutationUpdateGroupResourcesArgs = { input: UpdateGroupResourcesInput; }; export type MutationUpdateGroupUserReviewersArgs = { input: UpdateGroupUserReviewersInput; }; export type MutationUpdateGroupUsersArgs = { input: UpdateGroupUsersInput; }; export type MutationUpdateIpaclEntryArgs = { input: UpdateIpaclEntryInput; }; export type MutationUpdateIdpConnectionArgs = { input: UpdateIdpConnectionInput; }; export type MutationUpdateIdpGroupMappingsArgs = { input: IdpGroupMappingsUpdateInput; }; export type MutationUpdateOrganizationSettingsArgs = { input: UpdateOrganizationSettingsInput; }; export type MutationUpdateOwnerArgs = { input: UpdateOwnerInput; }; export type MutationUpdateRequestTemplateArgs = { input: UpdateRequestTemplateInput; }; export type MutationUpdateResourceCustomAccessLevelArgs = { input: UpdateResourceCustomAccessLevelInput; }; export type MutationUpdateResourceCustomAccessLevelsArgs = { input: UpdateResourceCustomAccessLevelsInput; }; export type MutationUpdateResourceUserReviewersArgs = { input: UpdateResourceUserReviewersInput; }; export type MutationUpdateResourceUsersArgs = { input: UpdateResourceUsersInput; }; export type MutationUpdateResourcesArgs = { input: UpdateResourcesInput; }; export type MutationUpdateRoleAssignmentsArgs = { input: UpdateRoleAssignmentsInput; }; export type MutationUpdateSamlConnectionArgs = { input: UpdateSamlConnectionInput; }; export type MutationUpdateSavedQueryArgs = { input: UpdateSavedQueryInput; }; export type MutationUpdateServiceUserAutomationArgs = { input: UpdateServiceUserAutomationInput; }; export type MutationUpdateUserArgs = { input: UpdateUserInput; }; export type MutationUpdateUserManagerArgs = { input: UpdateUserManagerInput; }; export type MutationUpdateUserSettingsArgs = { input: UpdateUserSettingsInput; }; export type MutationUpdateWebhookInfoArgs = { input: UpdateWebhookInfoInput; }; export type MutationUseGroupBreakGlassArgs = { input: UseGroupBreakGlassInput; }; export type MutationValidateCodeAndSaveIdTokenArgs = { input: ValidateCodeAndSaveIdTokenInput; }; export type MutationValidateCodeAndSaveIdTokenPresignedArgs = { input: ValidateCodeAndSaveIdTokenInput; }; export type MutationValidateConnectionArgs = { input: ValidateConnectionInput; }; export type MutationVerifyFactorAsyncArgs = { input: VerifyFactorAsyncInput; }; export type MutationVerifyFactorSyncArgs = { input: VerifyFactorSyncInput; }; /** Input for fetching the current user's assigned items in an access review. */ export type MyAccessReviewItemsInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; }; /** Output union for fetching the current user's review items. */ export type MyAccessReviewItemsOutput = AccessReviewNotFoundError | MyAccessReviewItemsResult; /** Result containing items assigned to the current user for review. */ export type MyAccessReviewItemsResult = { __typename?: "MyAccessReviewItemsResult"; /** Connections assigned to the current user. */ connections: Array; /** Groups assigned to the current user. */ groups: Array; /** Resources assigned to the current user. */ resources: Array; }; export type MySqlMariaDbConnectionCredentialsInput = { rootPassword: Scalars["String"]["input"]; rootUserName: Scalars["String"]["input"]; }; export type MySqlMariaDbConnectionMetadata = { __typename?: "MySQLMariaDBConnectionMetadata"; serverHostname: Scalars["String"]["output"]; serverPort: Scalars["Int"]["output"]; tlsCaCertContent?: Maybe; tlsCertContent?: Maybe; tlsMode: Scalars["Boolean"]["output"]; }; export type MySqlMariaDbConnectionMetadataInput = { serverHostname: Scalars["String"]["input"]; serverPort: Scalars["Int"]["input"]; tlsCaCertContent?: InputMaybe; tlsCertContent?: InputMaybe; tlsMode: Scalars["Boolean"]["input"]; }; /** Input for filtering by entity names. */ export type NamesFilterInput = { /** List of names to filter by. */ names: Array; }; /** Error returned when no access review is currently in progress. */ export type NoAccessReviewInProgressError = Error & { __typename?: "NoAccessReviewInProgressError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error indicating user does not have break glass access. */ export type NoBreakGlassAccessError = Error & { __typename?: "NoBreakGlassAccessError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when no identity provider is configured for MFA. */ export type NoIdpConfiguredError = Error & { __typename?: "NoIDPConfiguredError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error indicating no manager is set for the requesting user. */ export type NoManagerSetForRequestingUserError = Error & { __typename?: "NoManagerSetForRequestingUserError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Error returned when there are no proposed changes for the given input. */ export type NoProposedChangesError = Error & { __typename?: "NoProposedChangesError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error indicating no reviewers are set for a group. */ export type NoReviewersSetForGroupError = Error & { __typename?: "NoReviewersSetForGroupError"; /** The group */ group?: Maybe; /** ID of the group */ groupId: Scalars["GroupId"]["output"]; /** Error message */ message: Scalars["String"]["output"]; }; /** Error indicating no reviewers are set for an owner. */ export type NoReviewersSetForOwnerError = Error & { __typename?: "NoReviewersSetForOwnerError"; /** Error message */ message: Scalars["String"]["output"]; /** The owner */ owner?: Maybe; /** ID of the owner */ ownerId: Scalars["OwnerId"]["output"]; }; /** Error indicating no reviewers are set for a resource. */ export type NoReviewersSetForResourceError = Error & { __typename?: "NoReviewersSetForResourceError"; /** Error message */ message: Scalars["String"]["output"]; /** The resource */ resource?: Maybe; /** ID of the resource */ resourceId: Scalars["ResourceId"]["output"]; }; /** Error indicating no skip manager is set for the target user. */ export type NoSkipManagerSetForTargetUserError = Error & { __typename?: "NoSkipManagerSetForTargetUserError"; /** Error message */ message: Scalars["String"]["output"]; }; export type Node = { id: Scalars["UUID"]["output"]; }; /** Error returned when a resource is not sessionable. */ export type NotSessionableError = Error & { __typename?: "NotSessionableError"; message: Scalars["String"]["output"]; }; /** Preference for a specific notification type. */ export type NotificationPreference = { __typename?: "NotificationPreference"; /** Whether this is the default notification type. */ isDefault: Scalars["Boolean"]["output"]; /** Whether notifications of this type are enabled. */ isEnabled: Scalars["Boolean"]["output"]; /** Whether this notification type is integrated. */ isIntegrated: Scalars["Boolean"]["output"]; /** The notification type. */ type: NotificationType; }; /** Notification delivery method types. */ export declare enum NotificationType { Automation = "AUTOMATION", Email = "EMAIL", GoogleChat = "GOOGLE_CHAT", Slack = "SLACK" } /** Metadata input for Notion integration configuration. */ export type NotionMetadataInput = { /** Notion database ID to use for integration. */ databaseId: Scalars["String"]["input"]; }; export type NullableConfigurationId = { configurationId?: InputMaybe; }; export type NullableGroupId = { groupId?: InputMaybe; }; export type NullableInt = { int?: InputMaybe; }; export type NullableMessageChannelId = { channelId?: InputMaybe; }; export type NullableOwnerId = { ownerId?: InputMaybe; }; /** Nullable request template ID input. */ export type NullableRequestTemplateId = { /** The request template ID (can be null to clear). */ requestTemplateId?: InputMaybe; }; export type NullableResourceId = { resourceId?: InputMaybe; }; export type NullableString = { string?: InputMaybe; }; export type NullableStrings = { strings?: InputMaybe>; }; export type NullableTicketProvider = { ticketProviderInfo?: InputMaybe; }; export type NullableUserId = { userId?: InputMaybe; }; /** Type of OIDC provider based on its use case. */ export declare enum OidcProviderType { /** OIDC Provider used for AWS Orgs integration */ AwsSession = "AWS_SESSION", /** OIDC Provider used in optional MFA for resources / requests / approvals */ Mfa = "MFA", /** SIGNIN Provider used for signin in airgapped envs that use custom OIDC providers instead of Auth0 */ Signin = "SIGNIN" } /** Filter events by object (entity that was affected). */ export type ObjectFilter = { /** ID of the entity that was affected. */ objectId: Scalars["String"]["input"]; }; /** Error returned when an OIDC ID token is not found. */ export type OidcIdTokenNotFoundError = Error & { __typename?: "OidcIDTokenNotFoundError"; message: Scalars["String"]["output"]; }; /** Error returned when the OIDC issuer URL is not valid. */ export type OidcIssuerNotValidError = { __typename?: "OidcIssuerNotValidError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** An OIDC (OpenID Connect) provider configuration. */ export type OidcProvider = { __typename?: "OidcProvider"; /** Client ID for the OIDC provider. */ clientId: Scalars["String"]["output"]; /** Client secret for the OIDC provider. */ clientSecret: Scalars["String"]["output"]; /** Issuer URL for the OIDC provider. */ issuerUrl: Scalars["String"]["output"]; }; /** Input for fetching an OIDC provider by type. */ export type OidcProviderInput = { /** Type of OIDC provider to fetch. */ oidcProviderType: OidcProviderType; }; /** Error returned when an OIDC provider is not found. */ export type OidcProviderNotFoundError = { __typename?: "OidcProviderNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of fetching an OIDC provider. */ export type OidcProviderOutput = OidcProviderNotFoundError | OidcProviderResult; /** Successful result of fetching an OIDC provider. */ export type OidcProviderResult = { __typename?: "OidcProviderResult"; /** The OIDC provider configuration. */ oidcProvider: OidcProvider; }; /** OIDC session for identity provider integration. */ export type OidcSession = { __typename?: "OidcSession"; /** The connection ID. */ id: Scalars["ConnectionId"]["output"]; /** The OIDC ID token. */ idToken: Scalars["String"]["output"]; }; /** Metadata for Okta directory apps. */ export type OktaDirectoryAppMetadata = { __typename?: "OktaDirectoryAppMetadata"; /** Okta app ID */ appId: Scalars["String"]["output"]; /** Okta app name */ appName: Scalars["String"]["output"]; /** URL to app logo */ logoUrl?: Maybe; }; export type OktaDirectoryConnectionMetadata = { __typename?: "OktaDirectoryConnectionMetadata"; orgUrl: Scalars["String"]["output"]; useLoginAsEmail: Scalars["Boolean"]["output"]; }; export type OktaDirectoryConnectionMetadataInput = { orgUrl: Scalars["String"]["input"]; useLoginAsEmail: Scalars["Boolean"]["input"]; }; export type OktaDirectoryCredentialsInput = { adminToken: Scalars["String"]["input"]; }; /** Error returned when an Okta group operation fails. */ export type OktaGroupError = Error & { __typename?: "OktaGroupError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Application synced from Okta as a resource. */ export type OktaResourceApp = { __typename?: "OktaResourceApp"; /** URL of the app icon. */ iconUrl?: Maybe; /** Whether this app is visible to end users. */ isVisible: Scalars["Boolean"]["output"]; /** The resource object for this Okta app. */ resource?: Maybe; /** ID of the resource representing this Okta app. */ resourceId: Scalars["ResourceId"]["output"]; }; /** Metadata for Okta roles. */ export type OktaRoleMetadata = { __typename?: "OktaRoleMetadata"; /** Okta role ID */ roleId: Scalars["String"]["output"]; /** Okta role type */ roleType: Scalars["String"]["output"]; }; /** Input for on-call metadata. */ export type OnCallMetadataInput = { /** On-call schedule inputs. */ scheduleInputs: Array; }; /** An on-call schedule from a third-party provider (e.g., PagerDuty). */ export type OnCallSchedule = { __typename?: "OnCallSchedule"; /** Whether the schedule still exists in the remote system. */ existsInRemote: Scalars["Boolean"]["output"]; /** Name of the on-call schedule. */ name: Scalars["String"]["output"]; /** Remote ID of the schedule in the third-party provider. */ remoteId: Scalars["OnCallScheduleRemoteId"]["output"]; /** Third-party provider (e.g., PagerDuty). */ thirdPartyProvider: ThirdPartyProvider; }; /** Input for an on-call schedule. */ export type OnCallScheduleInput = { /** Remote ID of the schedule. */ remoteId: Scalars["OnCallScheduleRemoteId"]["input"]; /** Name of the schedule. */ scheduleName: Scalars["String"]["input"]; /** Third-party provider. */ thirdPartyProvider: ThirdPartyProvider; }; /** Result of querying on-call schedules. */ export type OnCallSchedulesOutput = OnCallSchedulesResult | UserFacingError; /** Successful result of querying on-call schedules. */ export type OnCallSchedulesResult = { __typename?: "OnCallSchedulesResult"; /** List of on-call schedules. */ onCallSchedules: Array; }; /** SAML information for an on-premises organization. */ export type OnPremOrganizationSamlInfo = { __typename?: "OnPremOrganizationSamlInfo"; /** The organization ID. */ id: Scalars["OrganizationId"]["output"]; /** The SAML provider ID. */ providerID: Scalars["String"]["output"]; }; /** Statistics for items remaining to review within a specific item (e.g., users in a resource). */ export type OngoingAccessReviewSubtabStats = { __typename?: "OngoingAccessReviewSubtabStats"; /** Number of groups with pending reviews within this item. */ numGroupsToReview: Scalars["Int"]["output"]; /** Number of resources with pending reviews within this item. */ numResourcesToReview: Scalars["Int"]["output"]; /** Number of users with pending reviews within this item. */ numUsersToReview: Scalars["Int"]["output"]; }; /** Input for fetching subtab-level statistics for a specific item in an ongoing access review. */ export type OngoingAccessReviewSubtabStatsInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** The ID of the specific item (resource, group, etc.) to get stats for. */ itemId: Scalars["UUID"]["input"]; /** The tab being viewed. */ tab: AccessReviewTab; }; /** Output union for ongoing access review subtab statistics. */ export type OngoingAccessReviewSubtabStatsOutput = AccessReviewAlreadyStoppedError | AccessReviewNotFoundError | OngoingAccessReviewSubtabStatsResult; /** Result containing subtab-level statistics. */ export type OngoingAccessReviewSubtabStatsResult = { __typename?: "OngoingAccessReviewSubtabStatsResult"; /** Statistics for the specific item. */ ongoingAccessReviewSubtabStats?: Maybe; }; /** Statistics for items remaining to review in each tab of an ongoing access review. */ export type OngoingAccessReviewTabStats = { __typename?: "OngoingAccessReviewTabStats"; /** Number of apps/connections with pending reviews. */ numAppsToReview: Scalars["Int"]["output"]; /** Number of group-to-group memberships with pending reviews. */ numGroupGroupsToReview: Scalars["Int"]["output"]; /** Number of groups with pending reviews. */ numGroupsToReview: Scalars["Int"]["output"]; /** Number of resources with pending reviews. */ numResourcesToReview: Scalars["Int"]["output"]; /** Number of users with pending reviews. */ numUsersToReview: Scalars["Int"]["output"]; }; /** Input for fetching tab-level statistics for an ongoing access review. */ export type OngoingAccessReviewTabStatsInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; }; /** Output union for ongoing access review tab statistics. */ export type OngoingAccessReviewTabStatsOutput = AccessReviewAlreadyStoppedError | AccessReviewNotFoundError | OngoingAccessReviewTabStatsResult; /** Result containing tab-level statistics. */ export type OngoingAccessReviewTabStatsResult = { __typename?: "OngoingAccessReviewTabStatsResult"; /** Statistics for each tab. */ ongoingAccessReviewTabStats?: Maybe; }; /** Error indicating that the Opal admin role must have at least one direct user. */ export type OpalAdminRoleMustHaveAtLeastOneDirectUser = Error & { __typename?: "OpalAdminRoleMustHaveAtLeastOneDirectUser"; message: Scalars["String"]["output"]; }; /** Error indicating direct add to global impersonation resource is not allowed. */ export type OpalGlobalImpersonationResourceDirectAddNotAllowedError = Error & { __typename?: "OpalGlobalImpersonationResourceDirectAddNotAllowedError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Session for Opal user impersonation. */ export type OpalImpersonationSession = { __typename?: "OpalImpersonationSession"; /** Whether the impersonation was successful. */ success?: Maybe; }; /** Error indicating Opal resource is immutable. */ export type OpalResourceImmutableError = Error & { __typename?: "OpalResourceImmutableError"; /** Error message */ message: Scalars["String"]["output"]; }; export type OpenaiPlatformConnectionCredentialsInput = { token: Scalars["String"]["input"]; }; export type OpenaiPlatformConnectionMetadata = { __typename?: "OpenaiPlatformConnectionMetadata"; placeholder?: Maybe; }; export type OracleFusionConnectionCredentialsInput = { password: Scalars["String"]["input"]; username: Scalars["String"]["input"]; }; export type OracleFusionConnectionMetadata = { __typename?: "OracleFusionConnectionMetadata"; baseUrl: Scalars["String"]["output"]; }; export type OracleFusionConnectionMetadataInput = { baseUrl: Scalars["String"]["input"]; }; /** Error indicating that organization max group duration is invalid. */ export type OrgMaxGroupDurationInvalidError = Error & { __typename?: "OrgMaxGroupDurationInvalidError"; message: Scalars["String"]["output"]; }; /** Error indicating that organization max resource duration is invalid. */ export type OrgMaxResourceDurationInvalidError = Error & { __typename?: "OrgMaxResourceDurationInvalidError"; message: Scalars["String"]["output"]; }; /** An organization in the Opal system. */ export type Organization = { __typename?: "Organization"; /** When the organization was created. */ createdAt: Scalars["Time"]["output"]; /** Unique identifier for the organization. */ id: Scalars["OrganizationId"]["output"]; /** Whether the organization has been deleted. */ isDeleted: Scalars["Boolean"]["output"]; /** The name of the organization. */ name: Scalars["String"]["output"]; /** The type of organization (cloud or on-premises). */ organizationType: OrganizationType; /** When the organization was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating that an organization with this name already exists. */ export type OrganizationExistsError = Error & { __typename?: "OrganizationExistsError"; message: Scalars["String"]["output"]; }; /** Error indicating that the organization is in read-only mode. */ export type OrganizationInReadOnlyModeError = Error & { __typename?: "OrganizationInReadOnlyModeError"; message: Scalars["String"]["output"]; }; /** SAML configuration information for an organization. */ export type OrganizationSamlInfo = { __typename?: "OrganizationSamlInfo"; /** When the SAML certificate expires. */ certExpiration: Scalars["Time"]["output"]; /** The email associated with the SAML configuration. */ email: Scalars["String"]["output"]; /** The SAML endpoint URL. */ endpoint: Scalars["String"]["output"]; /** The organization ID. */ id: Scalars["OrganizationId"]["output"]; /** Whether logins are restricted to SAML only. */ restrictLoginToSaml: Scalars["Boolean"]["output"]; /** Users allowed to bypass SAML authentication for break-glass access. */ samlBreakGlassUsers: Array; }; /** Organization-level configuration settings. */ export type OrganizationSettings = { __typename?: "OrganizationSettings"; /** Days before expiration when access expiring notifications should be sent. */ accessExpiringNotifications?: Maybe>; /** Ticket provider for audit trails. */ auditTicketProvider?: Maybe; /** Authentication session expiration time in minutes. */ authSessionExpirationInMinutes: Scalars["Int"]["output"]; /** Number of minutes after which pending requests are automatically canceled. */ autoCancelRequestsAfterMinutes?: Maybe; /** Whether users are automatically logged in. */ autoLoginUser: Scalars["Boolean"]["output"]; /** When these settings were created. */ createdAt: Scalars["Time"]["output"]; /** Custom banner message displayed to users. */ customBanner?: Maybe; /** Custom search link configuration. */ customSearchLink?: Maybe; /** When customer support access expires. */ customerSupportExpiresAt: Scalars["Time"]["output"]; /** Whether customer support gating is allowed. */ customerSupportGatingAllowed: Scalars["Boolean"]["output"]; /** Default notification settings for the organization. */ defaultNotifications?: Maybe>; /** Whether dry run mode is enabled (changes are not propagated to remote systems). */ dryRunModeEnabled?: Maybe; /** How error notifications should be handled. */ errorNotificationSetting: ErrorNotificationSettingType; /** The month (1-12) that starts the fiscal year for quarter and year calculations. */ fiscalYearStartMonth: Scalars["Int"]["output"]; /** List of enabled general settings for the organization. */ generalSettings: Array; /** Unique identifier for the organization. */ id: Scalars["OrganizationId"]["output"]; /** Whether remote systems are in read-only mode. */ isRemoteReadOnly?: Maybe; /** Maximum duration for group membership in minutes. */ maxGroupDurationInMinutes?: Maybe; /** Maximum duration for resource access in minutes. */ maxResourceDurationInMinutes?: Maybe; /** Message displayed when max users limit is exceeded. */ maxUsersExceededMessage?: Maybe; /** Permissions granted to owners. */ ownerPermissions?: Maybe>; /** Minimum word count required for access request reasons. */ reasonMinWordCount?: Maybe; /** Groups excluded from request delegation. */ requestDelegationExcludedGroupIDs?: Maybe>; /** Owner entity for the reviewer of role creation requests. */ roleCreationReviewerOwner?: Maybe; /** Owner ID for the reviewer of role creation requests. */ roleCreationReviewerOwnerId?: Maybe; /** Owner ID for handling sync errors. */ syncErrorHandlerOwnerId?: Maybe; /** Number of days after which access is considered unused. */ unusedAccessThresholdInDays: Scalars["Int"]["output"]; /** When these settings were last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating that organization settings were not found. */ export type OrganizationSettingsNotFoundError = Error & { __typename?: "OrganizationSettingsNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of querying organization settings. */ export type OrganizationSettingsOutput = OrganizationSettingsNotFoundError | OrganizationSettingsResult; /** Successfully retrieved organization settings. */ export type OrganizationSettingsResult = { __typename?: "OrganizationSettingsResult"; /** The organization settings. */ settings: OrganizationSettings; }; /** Type of organization deployment. */ export declare enum OrganizationType { /** Cloud-hosted organization. */ Cloud = "CLOUD", /** On-premises deployment. */ OnPrem = "ON_PREM" } /** Webhook configuration information for an organization. */ export type OrganizationWebhookInfo = { __typename?: "OrganizationWebhookInfo"; /** Whether the webhook is enabled. */ enableWebhook: Scalars["Boolean"]["output"]; /** The organization ID. */ id: Scalars["OrganizationId"]["output"]; /** The full signing secret used to verify webhook payloads. */ signingSecret?: Maybe; /** A preview of the signing secret (masked for security). */ signingSecretPreview?: Maybe; /** TLS CA certificate content for webhook endpoint verification. */ tlsCaCertContent?: Maybe; /** The webhook endpoint URL where events will be sent. */ webhookEndpointUrl: Scalars["String"]["output"]; }; /** A configuration template owned by an owner, with administrative and reviewer permissions. */ export type OwnedConfigurationTemplate = { __typename?: "OwnedConfigurationTemplate"; /** The configuration template entity. */ configurationTemplate: ConfigurationTemplate; /** Whether the owner has admin permissions for this configuration template. */ isAdmin: Scalars["Boolean"]["output"]; /** Whether the owner is a reviewer for this configuration template. */ isReviewer: Scalars["Boolean"]["output"]; }; /** A group owned by an owner, with administrative and reviewer permissions. */ export type OwnedGroup = { __typename?: "OwnedGroup"; /** The group entity. */ group: Group; /** Whether the owner has admin permissions for this group. */ isAdmin: Scalars["Boolean"]["output"]; /** Whether the owner is a reviewer for this group. */ isReviewer: Scalars["Boolean"]["output"]; }; /** A resource owned by an owner, with administrative and reviewer permissions. */ export type OwnedResource = { __typename?: "OwnedResource"; /** Whether the owner has admin permissions for this resource. */ isAdmin: Scalars["Boolean"]["output"]; /** Whether the owner is a reviewer for this resource. */ isReviewer: Scalars["Boolean"]["output"]; /** The resource entity. */ resource: Resource; }; /** An owner is a group of users responsible for managing and reviewing access to resources and groups. */ export type Owner = BaseEntity & Node & { __typename?: "Owner"; /** Time period in minutes before access requests are escalated if not reviewed. */ accessRequestEscalationPeriodInMinutes?: Maybe; /** When the owner was created. */ createdAt: Scalars["Time"]["output"]; /** A description of the owner's responsibilities. */ description: Scalars["String"]["output"]; /** Unique identifier for the owner. */ id: Scalars["UUID"]["output"]; /** Whether the owner has been deleted. */ isDeleted: Scalars["Boolean"]["output"]; /** The name of the owner. */ name: Scalars["String"]["output"]; /** Configuration templates owned by this owner. */ ownedConfigurationTemplates: Array; /** Groups owned by this owner. */ ownedGroups: Array; /** Number of groups owned by this owner. */ ownedGroupsCount: Scalars["Int"]["output"]; /** Resources owned by this owner. */ ownedResources: Array; /** Number of resources owned by this owner. */ ownedResourcesCount: Scalars["Int"]["output"]; /** Users that are members of this owner. */ ownerUsers: Array; /** Number of users in this owner. */ ownerUsersCount: Scalars["Int"]["output"]; /** Message channel for reviewer notifications. */ reviewerMessageChannel?: Maybe; /** Message channel ID for reviewer notifications. */ reviewerMessageChannelId?: Maybe; /** Source group if this owner is synced from an external group. */ sourceGroup?: Maybe; /** Source group ID if this owner is synced from an external group. */ sourceGroupId?: Maybe; /** When the owner was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating that the access request frequency reminder is out of bounds. */ export type OwnerAccessRequestFrequencyReminderOutOfBoundsError = Error & { __typename?: "OwnerAccessRequestFrequencyReminderOutOfBoundsError"; message: Scalars["String"]["output"]; }; /** Input for querying a single owner. */ export type OwnerInput = { /** The owner ID to retrieve. */ id: Scalars["OwnerId"]["input"]; }; /** Error indicating that an owner with this name already exists. */ export type OwnerNameAlreadyExists = Error & { __typename?: "OwnerNameAlreadyExists"; message: Scalars["String"]["output"]; }; /** Error indicating that the owner was not found. */ export type OwnerNotFoundError = Error & { __typename?: "OwnerNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of querying an owner. */ export type OwnerOutput = OwnerNotFoundError | OwnerResult; /** Error indicating that the owner owns items and cannot be deleted. */ export type OwnerOwnsItemsError = Error & { __typename?: "OwnerOwnsItemsError"; /** The entities owned by this owner. */ entities: Array; message: Scalars["String"]["output"]; }; /** Successfully retrieved an owner. */ export type OwnerResult = { __typename?: "OwnerResult"; /** The owner entity. */ owner: Owner; }; /** Error indicating that the owner reviews items and cannot be deleted. */ export type OwnerReviewsItemsError = Error & { __typename?: "OwnerReviewsItemsError"; /** The entities reviewed by this owner. */ entities: Array; message: Scalars["String"]["output"]; }; /** Association between an owner and a user, indicating the user is part of the owner group. */ export type OwnerUser = { __typename?: "OwnerUser"; /** The owner entity. */ owner?: Maybe; /** The owner ID. */ ownerId: Scalars["OwnerId"]["output"]; /** Priority of this user as a reviewer for the owner (lower numbers have higher priority). */ reviewerPriority: Scalars["Int"]["output"]; /** The user entity. */ user?: Maybe; /** The user ID. */ userId: Scalars["UserId"]["output"]; }; /** Error indicating that the owner user association already exists. */ export type OwnerUserAlreadyExists = Error & { __typename?: "OwnerUserAlreadyExists"; message: Scalars["String"]["output"]; }; /** Filters for querying owners. */ export type OwnersFiltersInput = { /** Search query to filter by owner name or description. */ searchQuery?: InputMaybe; /** Filter by source group IDs. */ sourceGroupIds?: InputMaybe>; /** Filter by user IDs that are members of the owner. */ userIds?: InputMaybe>; }; /** Input for querying a list of owners. */ export type OwnersInput = { /** Pagination cursor for fetching the next page of results. */ cursor?: InputMaybe; /** Filters to apply to the query. */ filters?: InputMaybe; /** If true, returns all owners regardless of whether the user can see them. */ includeAll?: InputMaybe; /** Maximum number of owners to return. */ maxNumEntries?: InputMaybe; /** Search query to filter owners. */ searchQuery?: InputMaybe; /** Sort order for the results. */ sortBy?: InputMaybe; }; /** Result of querying owners. */ export type OwnersOutput = OwnersResult; /** Successfully retrieved a list of owners. */ export type OwnersResult = { __typename?: "OwnersResult"; /** Cursor for pagination. */ cursor?: Maybe; /** The list of owners. */ owners: Array; /** Total number of owners matching the query. */ totalNumOwners: Scalars["Int"]["output"]; }; /** Sort criteria for owners. */ export type OwnersSortBy = { /** The sort direction. */ direction?: InputMaybe; /** The field to sort by. */ field?: InputMaybe; }; /** Fields that can be used to sort owners. */ export declare enum OwnersSortByField { /** Sort by creation date. */ CreatedAt = "CREATED_AT", /** Sort by owner name. */ Name = "NAME", /** Sort by source group name. */ SourceGroupName = "SOURCE_GROUP_NAME" } export type PageConnection = { pageInfo: PageInfo; totalCount: Scalars["Int"]["output"]; }; export type PageInfo = { __typename?: "PageInfo"; endCursor?: Maybe; hasNextPage: Scalars["Boolean"]["output"]; hasPreviousPage: Scalars["Boolean"]["output"]; startCursor?: Maybe; }; export type PagerDutyConnectionMetadata = { __typename?: "PagerDutyConnectionMetadata"; placeholder?: Maybe; }; export type PagerDutyCredentialsInput = { generalAccessToken: Scalars["String"]["input"]; }; /** Input for querying paginated group users. */ export type PaginatedGroupUsersInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Filters to apply. */ filters?: InputMaybe; /** Maximum number of users to return. */ maxNumEntries?: InputMaybe; /** Sorting options. */ sortBy?: InputMaybe; }; /** Result of querying paginated group users. */ export type PaginatedGroupUsersOutput = { __typename?: "PaginatedGroupUsersOutput"; /** Cursor for the next page. */ cursor?: Maybe; /** List of group users. */ groupUsers: Array; /** Total number of group users matching the query. */ totalNumGroupUsers: Scalars["Int"]["output"]; /** Unique access levels present in the results. */ uniqueAccessLevels: Array; }; /** Sorting options for paginated group users. */ export type PaginatedGroupUsersSortBy = { /** Sort direction. */ direction: SortDirection; /** Field to sort by. */ field: GroupUserSortByField; }; /** Input for paginated resource users query. */ export type PaginatedResourceUsersInput = { /** Pagination cursor */ cursor?: InputMaybe; /** Filters to apply */ filters?: InputMaybe; /** Maximum number of entries to return */ maxNumEntries?: InputMaybe; /** Sort order */ sortBy?: InputMaybe; }; /** Output for paginated resource users query. */ export type PaginatedResourceUsersOutput = { __typename?: "PaginatedResourceUsersOutput"; /** Pagination cursor */ cursor?: Maybe; /** List of resource users */ resourceUsers: Array; /** Total number of resource users (ResourceID-UserID-AccessLevel combinations) */ totalNumResourceUsers: Scalars["Int"]["output"]; /** Unique count of users (distinct UserID) with access to the resource */ totalNumUsers: Scalars["Int"]["output"]; /** Unique access levels in the result set */ uniqueAccessLevels: Array; }; /** Sort order for resource users. */ export type PaginatedResourceUsersSortBy = { /** Sort direction */ direction: SortDirection; /** Field to sort by */ field: ResourceUserSortByField; }; /** Input for paginated sub-events query. */ export type PaginatedSubEventsInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Maximum number of entries to return. */ maxNumEntries?: InputMaybe; /** Sort options. */ sortBy?: InputMaybe; }; /** Output for paginated sub-events query. */ export type PaginatedSubEventsOutput = { __typename?: "PaginatedSubEventsOutput"; /** Cursor for next page. */ cursor?: Maybe; /** List of sub-events. */ subEvents: Array; /** Total number of sub-events. */ totalNumSubEvents: Scalars["Int"]["output"]; }; /** Sort options for paginated sub-events. */ export type PaginatedSubEventsSortBy = { /** Sort direction. */ direction: SortDirection; /** Field to sort by. */ field: SubEventsSortByField; }; /** Input for paginated user groups query. */ export type PaginatedUserGroupsInput = { /** Pagination cursor for fetching the next page. */ cursor?: InputMaybe; /** Filters to apply to the group users list. */ filters?: GroupUserFiltersInput; /** Maximum number of entries to return per page. */ maxNumEntries?: InputMaybe; /** Field to sort the results by. */ sortBy?: InputMaybe; }; /** Paginated result of user groups. */ export type PaginatedUserGroupsOutput = { __typename?: "PaginatedUserGroupsOutput"; /** Cursor for fetching the next page of results. */ cursor?: Maybe; /** List of group users for the current page. */ groupUsers: Array; /** Total number of group users matching the query. */ totalNumGroupUsers: Scalars["Int"]["output"]; }; /** Input for paginated user resources query. */ export type PaginatedUserResourcesInput = { /** Pagination cursor for fetching the next page. */ cursor?: InputMaybe; /** Filters to apply to the resource users list. */ filters?: ResourceUserFiltersInput; /** Maximum number of entries to return per page. */ maxNumEntries?: InputMaybe; /** Field to sort the results by. */ sortBy?: InputMaybe; }; /** Paginated result of user resources. */ export type PaginatedUserResourcesOutput = { __typename?: "PaginatedUserResourcesOutput"; /** Cursor for fetching the next page of results. */ cursor?: Maybe; /** List of resource users for the current page. */ resourceUsers: Array; /** Total number of resource users matching the query. */ totalNumResourceUsers: Scalars["Int"]["output"]; }; /** * Wrapper to allow filtering by null parent resource. * This allows for ParentResourceInput{parentResourceId: null} to select resources without parents. */ export type ParentResourceInput = { /** Parent resource ID, or null for root resources */ parentResourceId?: InputMaybe; }; /** Input for performing reviews on multiple items. */ export type PerformReviewInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** Actions to take on connection-user accesses. */ connectionUserActions?: InputMaybe>; /** Actions to take on group-group memberships. */ groupGroupActions?: InputMaybe>; /** Actions to take on group-resource accesses. */ groupResourceActions?: InputMaybe>; /** Actions to take on group-user memberships. */ groupUserActions?: InputMaybe>; /** Actions to take on resource-resource (NHI) accesses. */ resourceResourceActions?: InputMaybe>; /** Actions to take on resource-user accesses. */ resourceUserActions?: InputMaybe>; }; /** Result of performing reviews. */ export type PerformReviewOutput = AccessReviewAlreadyStoppedError | AccessReviewNotFoundError | ItemCannotBeRequestedError | OidcIdTokenNotFoundError | PerformReviewResult; /** Successful result of performing reviews. */ export type PerformReviewResult = { __typename?: "PerformReviewResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; export type PermissionSourceConnection = PageConnection & { __typename?: "PermissionSourceConnection"; edges: Array; pageInfo: PageInfo; totalCount: Scalars["Int"]["output"]; }; export type PermissionSourceEdge = Edge & { __typename?: "PermissionSourceEdge"; cursor: Scalars["String"]["output"]; node: Resource; rolePermissions: Array; }; export type PostgresConnectionCredentialsInput = { rootPassword: Scalars["String"]["input"]; rootUserName: Scalars["String"]["input"]; }; export type PostgresConnectionMetadata = { __typename?: "PostgresConnectionMetadata"; serverHostname: Scalars["String"]["output"]; serverPort: Scalars["Int"]["output"]; tlsCaCertContent?: Maybe; tlsCertContent?: Maybe; tlsMode: Scalars["Boolean"]["output"]; }; export type PostgresConnectionMetadataInput = { serverHostname: Scalars["String"]["input"]; serverPort: Scalars["Int"]["input"]; tlsCaCertContent?: InputMaybe; tlsCertContent?: InputMaybe; tlsMode: Scalars["Boolean"]["input"]; }; export type Principal = { id: Scalars["UUID"]["output"]; }; /** Edge type for principal pagination. */ export type PrincipalEdge = Edge & { __typename?: "PrincipalEdge"; /** Cursor for this edge. */ cursor: Scalars["String"]["output"]; /** The principal node. */ node: Principal; }; export type PrincipalRequirementInput = { principalNodeProperties?: InputMaybe; }; /** Scope for filtering by principals. */ export type PrincipalScope = { /** Principal IDs to filter by. */ principalIDs?: InputMaybe>; /** Tag IDs to filter principals by. */ principalTagIDs?: InputMaybe>; /** Principal types to filter by. */ principalTypes?: InputMaybe>; }; /** Options for searching principals. */ export type PrincipalSearchOptions = { /** Whether to exclude users without a position. */ excludeUsersWithoutPosition: Scalars["Boolean"]["input"]; }; /** Input for querying principals. */ export type PrincipalsInput = { /** Pagination cursor. */ cursor?: InputMaybe; /** Filter for principals that can be attached to the given entity. */ entityID: Scalars["EntityId"]["input"]; /** The type of entity to filter principals for. */ entityType: EntityType; /** Maximum number of principals to return. */ maxNumEntries?: InputMaybe; /** Search query to filter principals. */ searchQuery?: InputMaybe; }; /** Result of querying principals. */ export type PrincipalsOutput = PrincipalsResult; /** Successfully retrieved principals. */ export type PrincipalsResult = { __typename?: "PrincipalsResult"; /** Pagination cursor for the next page. */ cursor?: Maybe; /** The list of principals. */ principals: Array; /** Total number of principals matching the query. */ totalNumPrincipals: Scalars["Int"]["output"]; }; /** Propagation status for a role assignment. */ export type PropagationStatus = { __typename?: "PropagationStatus"; /** The access level remote ID. */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["output"]; /** The entity ID. */ entityId: Scalars["EntityId"]["output"]; /** Error message if the propagation failed. */ errorMessage?: Maybe; /** When the propagation was last synced. */ lastSynced: Scalars["Time"]["output"]; /** The principal ID. */ principalId: Scalars["EntityId"]["output"]; /** The status code of the propagation. */ statusCode: PropagationStatusCode; /** The type of propagation task. */ taskType: PropagationTaskType; /** Metadata about ticket propagation. */ ticketPropagationMetadata?: Maybe; }; /** Status codes for propagation operations. */ export declare enum PropagationStatusCode { /** Dry run mode is enabled. */ ErrDryRunModeEnabled = "ERR_DRY_RUN_MODE_ENABLED", /** HR IDP provider is not linked. */ ErrHrIdpProviderNotLinked = "ERR_HR_IDP_PROVIDER_NOT_LINKED", /** IDP email update conflict. */ ErrIdpEmailUpdateConflict = "ERR_IDP_EMAIL_UPDATE_CONFLICT", /** Not authorized to query the resource. */ ErrNotAuthorizedToQueryResource = "ERR_NOT_AUTHORIZED_TO_QUERY_RESOURCE", /** Opal internal error occurred. */ ErrOpalInternalError = "ERR_OPAL_INTERNAL_ERROR", /** Operation is not supported. */ ErrOperationUnsupported = "ERR_OPERATION_UNSUPPORTED", /** Organization is in read-only mode. */ ErrOrgReadOnly = "ERR_ORG_READ_ONLY", /** Remote system internal error occurred. */ ErrRemoteInternalError = "ERR_REMOTE_INTERNAL_ERROR", /** Provisioning via IDP failed. */ ErrRemoteProvisioningViaIdpFailed = "ERR_REMOTE_PROVISIONING_VIA_IDP_FAILED", /** Remote resource was not found. */ ErrRemoteResourceNotFound = "ERR_REMOTE_RESOURCE_NOT_FOUND", /** Remote system is throttling requests. */ ErrRemoteThrottle = "ERR_REMOTE_THROTTLE", /** Remote ticket was not found. */ ErrRemoteTicketNotFound = "ERR_REMOTE_TICKET_NOT_FOUND", /** Remote unrecoverable error occurred. */ ErrRemoteUnrecoverableError = "ERR_REMOTE_UNRECOVERABLE_ERROR", /** Remote user was not found. */ ErrRemoteUserNotFound = "ERR_REMOTE_USER_NOT_FOUND", /** Remote user is not linked to the system. */ ErrRemoteUserNotLinked = "ERR_REMOTE_USER_NOT_LINKED", /** Ticket creation was skipped. */ ErrTicketCreationSkipped = "ERR_TICKET_CREATION_SKIPPED", /** Operation timed out. */ ErrTimeout = "ERR_TIMEOUT", /** Unknown error occurred. */ ErrUnknown = "ERR_UNKNOWN", /** Propagation is pending. */ Pending = "PENDING", /** Pending manual propagation. */ PendingManualPropagation = "PENDING_MANUAL_PROPAGATION", /** Pending ticket creation. */ PendingTicketCreation = "PENDING_TICKET_CREATION", /** Propagation completed successfully. */ Success = "SUCCESS" } /** Type of propagation task. */ export declare enum PropagationTaskType { /** Create entities for connections. */ ConnectionsCreateEntities = "CONNECTIONS_CREATE_ENTITIES", /** Delete users from connections. */ ConnectionsDeleteUsers = "CONNECTIONS_DELETE_USERS", /** Create groups. */ GroupsCreateGroups = "GROUPS_CREATE_GROUPS", /** Create resources for groups. */ GroupsCreateResources = "GROUPS_CREATE_RESOURCES", /** Create resource principals for groups. */ GroupsCreateResourcePrincipals = "GROUPS_CREATE_RESOURCE_PRINCIPALS", /** Create users for groups. */ GroupsCreateUsers = "GROUPS_CREATE_USERS", /** Delete groups. */ GroupsDeleteGroups = "GROUPS_DELETE_GROUPS", /** Delete resources from groups. */ GroupsDeleteResources = "GROUPS_DELETE_RESOURCES", /** Delete resource principals from groups. */ GroupsDeleteResourcePrincipals = "GROUPS_DELETE_RESOURCE_PRINCIPALS", /** Delete users from groups. */ GroupsDeleteUsers = "GROUPS_DELETE_USERS", /** Update resources for groups. */ GroupsUpdateResources = "GROUPS_UPDATE_RESOURCES", /** Update users for groups. */ GroupsUpdateUsers = "GROUPS_UPDATE_USERS", /** Create resources. */ ResourcesCreateResources = "RESOURCES_CREATE_RESOURCES", /** Create users for resources. */ ResourcesCreateUsers = "RESOURCES_CREATE_USERS", /** Delete resources. */ ResourcesDeleteResources = "RESOURCES_DELETE_RESOURCES", /** Delete users from resources. */ ResourcesDeleteUsers = "RESOURCES_DELETE_USERS", /** Update users for resources. */ ResourcesUpdateUsers = "RESOURCES_UPDATE_USERS" } /** Ticket associated with a propagation operation. */ export type PropagationTicket = { __typename?: "PropagationTicket"; /** The entity ID associated with the ticket. */ entityId: Scalars["EntityId"]["output"]; /** The support ticket entity. */ ticket?: Maybe; /** The support ticket ID. */ ticketId: Scalars["SupportTicketId"]["output"]; }; export type PropagationTicketConnectionMetadata = { __typename?: "PropagationTicketConnectionMetadata"; ticketProvider?: Maybe; }; /** Metadata for propagation ticket owners. */ export type PropagationTicketOwnerMetadata = { __typename?: "PropagationTicketOwnerMetadata"; /** The owner */ owner?: Maybe; /** Owner ID */ ownerId?: Maybe; }; /** Configuration for how entities are provisioned to a connection. */ export type ProvisionConfiguration = Node & { __typename?: "ProvisionConfiguration"; /** The connection ID this configuration applies to. */ connectionId: Scalars["ConnectionId"]["output"]; /** The entity item type (e.g., "USER", "GROUP"). */ entityItemType: Scalars["String"]["output"]; /** Display name for the entity item type. */ entityItemTypeDisplayName: Scalars["String"]["output"]; /** Unique identifier for the provision configuration. */ id: Scalars["UUID"]["output"]; /** The provisioning strategy to use. */ provisionStrategy: ProvisionStrategy; /** The provisioning action (create or delete). */ provisioningAction: ProvisioningAction; }; export type ProvisionConfigurationInfo = { __typename?: "ProvisionConfigurationInfo"; enabled: Scalars["Boolean"]["output"]; entityItemType: Scalars["String"]["output"]; entityItemTypeDisplayName: Scalars["String"]["output"]; provisionStrategy: ProvisionStrategy; provisioningAction: ProvisioningAction; }; export type ProvisionConfigurationInput = { entityItemType: Scalars["String"]["input"]; provisionStrategy: ProvisionStrategy; provisioningAction: ProvisioningAction; }; /** Status of a provisioning operation for an entity. */ export type ProvisionEntityStatus = { __typename?: "ProvisionEntityStatus"; /** The action being performed (e.g., "CREATE", "DELETE"). */ action: Scalars["String"]["output"]; /** The connection ID. */ connectionId: Scalars["ConnectionId"]["output"]; /** The entity ID being provisioned. */ entityId: Scalars["EntityId"]["output"]; /** The type of entity item (e.g., "USER", "GROUP"). */ entityItemType: Scalars["String"]["output"]; /** Error message if the provisioning failed. */ errorMessage?: Maybe; /** The status code of the provisioning operation. */ statusCode: PropagationStatusCode; }; /** The source of a role assignment provision. */ export declare enum ProvisionSource { External = "EXTERNAL", Opal = "OPAL", Unknown = "UNKNOWN" } /** Strategy for provisioning entities to connections. */ export declare enum ProvisionStrategy { /** No provisioning strategy (manual provisioning). */ None = "NONE", /** Push entity to the connection automatically. */ PushEntityToConnection = "PUSH_ENTITY_TO_CONNECTION" } /** Action to perform when provisioning. */ export declare enum ProvisioningAction { /** Create the entity. */ Create = "CREATE", /** Delete the entity. */ Delete = "DELETE" } /** Result of a provisioning push task. */ export type ProvisioningPushTaskResult = { __typename?: "ProvisioningPushTaskResult"; /** Provisioning statuses for entities. */ propStatuses: Array; }; /** A connection for publishing events to external systems. */ export type PubsubPublishConnection = { __typename?: "PubsubPublishConnection"; /** Type of connection (e.g., webhook). */ connectionType: PubsubPublishConnectionType; /** Authentication credentials for the connection. */ credentials: PubsubPublishConnectionCredentialOutput; /** Whether the connection is enabled. */ enabled: Scalars["Boolean"]["output"]; /** Number of failed message deliveries. */ failedDeliveryCount: Scalars["Int"]["output"]; /** Unique identifier for the connection. */ id: Scalars["PubsubPublishConnectionId"]["output"]; /** Connection metadata. */ metadata: PubsubPublishConnectionMetadataOutput; /** Name of the connection. */ name: Scalars["String"]["output"]; }; /** Connection credentials output, can be webhook or other types. */ export type PubsubPublishConnectionCredentialOutput = WebhookPubsubPublishConnectionCredentialsOutput; /** Input for connection metadata. */ export type PubsubPublishConnectionMetadataInput = { /** Type of connection being created. */ connectionType: PubsubPublishConnectionType; /** Webhook metadata if creating a webhook connection. */ webhook?: InputMaybe; }; /** Connection metadata output, can be webhook or other types. */ export type PubsubPublishConnectionMetadataOutput = WebhookPubsubPublishConnectionMetadata; /** Type of connection for publishing events to external systems. */ export declare enum PubsubPublishConnectionType { /** Webhook-based event stream connection. */ Webhook = "WEBHOOK" } /** Input for connection credentials. */ export type PubsubPublishConnectionsCredentialsInput = { /** Type of connection. */ connectionType: PubsubPublishConnectionType; /** Webhook credentials if using a webhook connection. */ webhook?: InputMaybe; }; /** A message published through an event stream. */ export type PubsubPublishMessage = { __typename?: "PubsubPublishMessage"; /** When the message was created. */ createdAt: Scalars["Time"]["output"]; /** Error message if delivery failed. */ error?: Maybe; /** Unique identifier for the message. */ id: Scalars["PubsubPublishMessageId"]["output"]; /** Message payload that was sent. */ payload: Scalars["String"]["output"]; /** The connection used to publish this message. */ pubsubPublishConnection: PubsubPublishConnection; /** ID of the connection used to publish. */ pubsubPublishConnectionId: Scalars["PubsubPublishConnectionId"]["output"]; /** Status code of the message delivery. */ statusCode: PubsubPublishMessageStatusCode; }; /** Status codes for pubsub publish messages. */ export declare enum PubsubPublishMessageStatusCode { /** Message processing was canceled. */ Canceled = "CANCELED", /** Message processing completed successfully. */ Completed = "COMPLETED", /** Message is pending processing. */ Pending = "PENDING", /** Message is currently being processed. */ Processing = "PROCESSING", /** Message is being retried after a failure. */ Retry = "RETRY" } /** Types of pubsub publish messages. */ export declare enum PubsubPublishMessageType { /** Event stream message type. */ EventStream = "EVENT_STREAM" } /** A push task represents an operation to propagate changes to a remote system. */ export type PushTask = PushTaskComplete | PushTaskPending; /** A push task that has completed execution. */ export type PushTaskComplete = { __typename?: "PushTaskComplete"; /** The authenticated user who initiated the task. */ authUser?: Maybe; /** Unique identifier for the push task. */ id: Scalars["PushTaskId"]["output"]; /** The result of the push task. */ result: PushTaskCompleteResult; /** The type of propagation task. */ taskType: PropagationTaskType; }; /** Result of a completed push task. */ export type PushTaskCompleteResult = ConnectionUserPushTaskResult | ProvisioningPushTaskResult | RoleAssignmentPushTaskResult; /** Input for querying a push task. */ export type PushTaskInput = { /** The push task ID to retrieve. */ id: Scalars["PushTaskId"]["input"]; }; /** Error indicating that the push task was not found. */ export type PushTaskNotFoundError = Error & { __typename?: "PushTaskNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of querying a push task. */ export type PushTaskOutput = PushTaskNotFoundError | PushTaskResult; /** A push task that is still pending execution. */ export type PushTaskPending = { __typename?: "PushTaskPending"; /** Unique identifier for the push task. */ id: Scalars["PushTaskId"]["output"]; /** When the task will be processed next. */ nextProcessAt?: Maybe; /** The type of propagation task. */ taskType: PropagationTaskType; }; /** Successfully retrieved a push task. */ export type PushTaskResult = { __typename?: "PushTaskResult"; /** The push task entity. */ pushTask: PushTask; }; export type Query = { __typename?: "Query"; /** Query metrics about access granted times (time from request to provisioning). */ accessGrantedTimes: AccessGrantedTimesResult; /** Gets access levels for a single resource. */ accessLevels: ResourceAccessLevelsOutput; accessQueryEngine: AccessQueryEngineResult; /** Fetches a single access review by ID. */ accessReview: AccessReviewOutput; /** Fetches changes for a specific entity in an access review. */ accessReviewChange: AccessReviewChangeOutput; /** Fetches all changes made during an access review. */ accessReviewChanges: AccessReviewChangesOutput; /** Fetches a single access review connection by ID. */ accessReviewConnection: AccessReviewConnectionOutput; /** Query all connection users being reviewed in a specific access review */ accessReviewConnectionUsers: AccessReviewConnectionUsersOutput; /** Fetches all connections being reviewed in an access review. */ accessReviewConnections: AccessReviewConnectionsOutput; /** Fetches a single access review group by ID. */ accessReviewGroup: AccessReviewGroupOutput; /** Query group item assignments in an access review with filtering, sorting, and pagination */ accessReviewGroupItemAssignments: AccessReviewGroupItemAssignmentsResult; /** Fetches paginated group-users being reviewed in an access review. */ accessReviewGroupUsers: AccessReviewGroupUsersOutput; /** Fetches all groups being reviewed in an access review. */ accessReviewGroups: AccessReviewGroupsOutput; /** Fetches access review items with filtering, sorting, and pagination. */ accessReviewItems: AccessReviewItemsResult; /** Fetches proposed reviewer changes for an access review. */ accessReviewProposedChanges: AccessReviewProposedChangesOutput; /** Fetches a single access review resource by ID. */ accessReviewResource: AccessReviewResourceOutput; /** Query resource principal assignments in an access review with filtering, sorting, and pagination */ accessReviewResourcePrincipalAssignments: AccessReviewResourcePrincipalAssignmentsResult; /** Fetches all resource-users being reviewed in an access review. */ accessReviewResourceUsers: AccessReviewResourceUsersOutput; /** Fetches all resources being reviewed in an access review. */ accessReviewResources: AccessReviewResourcesOutput; /** Fetches a specific reviewer's assignments and progress in an access review. */ accessReviewReviewer: AccessReviewReviewerOutput; /** Fetches comprehensive statistics for an access review. */ accessReviewStats: AccessReviewStatsOutput; /** Fetches a single access review template by ID. */ accessReviewTemplate: AccessReviewTemplateOutput; /** Fetches all access review templates with optional filtering. */ accessReviewTemplates: AccessReviewTemplatesOutput; /** Fetches unified assignments (role assignments) in an access review with filtering and pagination. */ accessReviewUnifiedAssignments: AccessReviewUnifiedAssignmentConnection; /** Fetches a single user's consolidated access in an access review. */ accessReviewUser: AccessReviewUserOutput; /** Query user assignments in an access review with filtering, sorting, and pagination */ accessReviewUserAssignments: AccessReviewUserAssignmentsResult; /** Fetches all users being reviewed in an access review. */ accessReviewUsers: AccessReviewUsersOutput; /** Fetches all access reviews with optional filtering by status and search query. */ accessReviews: AccessReviewsOutput; /** * Retrieves active request configurations for a set of groups. * Query is structured for bulk requests. */ activeGroupRequestConfigurations: Array; /** * Retrieves active request configurations for a set of resources. * Query is structured for bulk requests. */ activeResourceRequestConfigurations: Array; /** Query all request reviewer delegations with filters and pagination. */ allDelegations: RequestReviewerDelegationConnection; /** Checks if the current user is allowed to create organizations. */ allowedToCreateOrganizations: AllowedToCreateOrganizationsOutput; /** Check if the current user is allowed to use internal admin features. */ allowedToUseAldwin: AllowedToUseAldwinOutput; /** Get an application by ID. */ app: AppOutput; /** Get information about the Opal application deployment and configuration. */ appInfo: AppInfoOutput; /** Get a paginated list of applications in the catalog with filtering and sorting. */ appsV2: AppConnection; /** Get information about the configured authentication provider. */ authProviderInfo: AuthProviderInfoOutput; authSessionStatus: AuthSessionStatusOutput; /** Query metrics about break glass users by group. */ breakGlassUsersByGroup: BreakGlassUsersByGroupResult; /** Query metrics about break glass user counts over time. */ breakGlassUsersCounts: BreakGlassUsersCountsResult; bundle: BundleOutput; /** @deprecated Use bundle.items instead, which is relay compatible */ bundleItems: BundleItemsOutput; /** Get a bundle visibility group by ID. */ bundleVisibilityGroup: BundleVisibilityGroupOutput; /** @deprecated Use bundlesV2 instead, which is relay compatible */ bundles: BundlesOutput; bundlesV2: BundleConnection; /** * Query for a connection, resource, or group by ID. Note that it might be more * efficient to use the connection(), resource() or group() queries instead. */ catalogItem: CatalogItemOutput; /** Query metrics about closed requests broken down by approval type. */ closedRequestMetrics: ClosedRequestMetricsResult; /** Get all configuration template tag associations. */ configTemplateTags: ConfigTemplateTagsOutput; configurationTemplate: ConfigurationTemplateOutput; configurationTemplates: ConfigurationTemplatesOutput; connection: ConnectionOutput; /** Fetches paginated connection previews with filtering and sorting. */ connectionPreview: ConnectionPreviewConnection; connections: ConnectionsOutput; /** Counts connections matching the provided filters. */ countFilteredConnections: CountFilteredConnectionsOutput; /** Count groups matching filters. */ countFilteredGroups: CountFilteredGroupsOutput; /** Counts resources matching the specified filters. */ countFilteredResources: CountFilteredResourcesOutput; /** Get statistics about the current user's activity and responsibilities. */ currentUserStats: CurrentUserStatsOutput; /** Query direct role assignments with filtering and pagination. */ directRoleAssignments: RoleAssignmentConnection; /** Retrieves entities that fall within the specified risk score range. */ entitiesForRiskScoreRange: EntitiesForRiskScoreRangeResult; /** Retrieves entity details for remediation purposes. */ entityForRemediation: RecommendationsEntity; /** Retrieves a single event by ID. */ event: EventOutput; /** Get a specific event filter by ID. */ eventFilter: EventFilterOutput; /** Get all event filters for the current organization. */ eventFilters: EventFiltersOutput; /** Queries events with filtering, sorting, and pagination. */ events: EventsOutput; /** Queries external events with filtering, sorting, and pagination. */ externalEvents: ExternalEventConnection; /** Fetches connections matching the provided filters. */ filteredConnections: FilteredConnectionsOutput; /** Query groups with advanced filters. */ filteredGroups: FilteredGroupsOutput; /** Retrieves filtered resources. */ filteredResources: FilteredResourcesOutput; firstPartyTokens: FirstPartyTokensOutput; /** Fetch a single group by ID. */ group: GroupOutput; /** Gets access levels for a single group. */ groupAccessLevels: GroupAccessLevelsOutput; /** Fetch a single group binding by ID. */ groupBinding: GroupBindingOutput; /** Retrieves a single group binding suggestion by ID. */ groupBindingSuggestion: GroupBindingSuggestionOutput; /** Queries group binding suggestions with filtering, sorting, and pagination. */ groupBindingSuggestions: GroupBindingSuggestionsOutput; /** Query group bindings with filters and pagination. */ groupBindings: GroupBindingsOutput; /** Queries access details for a group-to-group membership relationship. */ groupGroupAccess: GroupGroupAccessOutput; /** Query all group on-call schedule associations. */ groupOnCallSchedules: GroupOnCallSchedulesOutput; /** Fetches paginated group previews with filtering and sorting. */ groupPreview: GroupPreviewConnection; /** Retrieves request status counts for a group. */ groupRequestStatusCounts: GroupRequestStatusCountsOutput; /** Queries group types with the count of groups for each type. */ groupTypesWithCounts: GroupTypesWithCountsOutput; /** Query multiple groups with filters. */ groups: GroupsOutput; hasValidOidcToken: Scalars["Boolean"]["output"]; /** Fetch all IdP connections. */ idpConnection: IdpConnectionOutput; /** Get a specific IDP group mapping by app resource and group ID. */ idpGroupMapping?: Maybe; /** Get IDP group mappings for an app resource. */ idpGroupMappings: Array; /** Retrieves all IP ACL entries for the current organization. */ ipAclEntries: IpAclEntriesOutput; lastMfaAt?: Maybe; /** Retrieves information about which routes should be displayed in the left sidebar for the current user. */ leftSidebarRoutes: LeftSidebarRoutes; /** Lists messages for a specific event stream, filterable by status code. */ listEventStreamMessages: ListEventStreamMessagesOutput; /** Lists all configured event streams. */ listEventStreams: ListEventStreamsOutput; /** List all MFA factors available for the current user. */ listFactors: ListFactorsOutput; /** Query message channels with optional channel name generation. */ messageChannels: MessageChannelsOutput; /** Get list of MFA providers configured for this organization. */ mfaProviders: MfaProvidersOutput; /** Query metrics about the most requested groups. */ mostRequestedGroups: MostRequestedItemsResult; /** Query metrics about the most requested resources. */ mostRequestedResources: MostRequestedItemsResult; /** Gets access levels for multiple resources. */ multipleAccessLevels: MultipleResourceAccessLevelsOutput; /** Gets access levels for multiple groups. */ multipleGroupAccessLevels: MultipleGroupAccessLevelsOutput; /** Fetches all items assigned to the current user for review. */ myAccessReviewItems: MyAccessReviewItemsOutput; /** Get the number of access requests waiting for the current user to review. */ numRequestsToReview: Scalars["Int"]["output"]; /** Fetch an OIDC provider configuration by type. */ oidcProvider: OidcProviderOutput; /** Query all available on-call schedules from connected providers. */ onCallSchedules: OnCallSchedulesOutput; /** Fetches subtab-level statistics for a specific item in an ongoing access review. */ ongoingAccessReviewSubtabStats: OngoingAccessReviewSubtabStatsOutput; /** Fetches tab-level statistics for an ongoing access review. */ ongoingAccessReviewTabStats: OngoingAccessReviewTabStatsOutput; /** Retrieves the organization settings for the current organization. */ organizationSettings: OrganizationSettingsOutput; /** Retrieves a single owner by ID. */ owner: OwnerOutput; /** Retrieves a list of owners with optional filtering and pagination. */ owners: OwnersOutput; /** Retrieves a list of principals that can be attached to a given entity. */ principals: PrincipalsOutput; /** Fetch the priority order of IdP connections for user attributes. */ priorityOrder: UserAttributePriorityOutput; /** Retrieves the provision configuration for a specific connection, entity type, and action. */ provisionConfiguration?: Maybe; /** Retrieves a push task by ID. */ pushTask: PushTaskOutput; /** Retrieves metrics data for the specified time period and metric types. */ recommendationsMetrics: Array>; /** * Deprecated: Use recommendationsMetrics instead. * Retrieves graph data for recommendations metrics. */ recommendationsMetricsGraph: RecommendationsMetricsGraph; /** Retrieves resources from a remote system. */ remoteResources: RemoteResourcesOutput; /** Retrieves a single request by ID. */ request: RequestOutput; /** Query metrics about request approval times. */ requestApprovalTimes: RequestApprovalTimesResult; /** Retrieves default values and constraints for creating a request. */ requestDefaults: RequestDefaults; /** Query metrics about access requests (approved, canceled, denied). */ requestMetrics: RequestMetricsResult; /** Retrieves a single request template by ID. */ requestTemplate: RequestTemplateOutput; /** Retrieves all request templates. */ requestTemplates: RequestTemplatesOutput; /** Retrieves request templates with their custom fields. */ requestTemplatesWithFields: RequestTemplatesWithFieldsOutput; /** Retrieves a list of requests based on the specified filters. */ requests: RequestsOutput; /** Retrieves requests using Relay-style pagination. */ requestsConnection: RequestConnection; /** Retrieves a single resource by ID. */ resource: ResourceOutput; /** Retrieves the ancestors of a resource. */ resourceAncestors: ResourcesOutput; /** Retrieves a single custom access level by ID. */ resourceCustomAccessLevel: ResourceCustomAccessLevelOutput; /** Retrieves all custom access levels for a resource. */ resourceCustomAccessLevels: ResourceCustomAccessLevelsOutput; /** Fetches paginated resource previews with filtering and sorting. */ resourcePreview: ResourcePreviewConnection; /** Retrieves request status counts for a resource. */ resourceRequestStatusCounts: ResourceRequestStatusCountsOutput; /** Retrieves tags for a resource. */ resourceTags: ResourceTagsOutput; /** Retrieves resource types along with the count of resources for each type. */ resourceTypesWithCounts: ResourceTypesWithCountsOutput; /** Retrieves usage logs for a resource. */ resourceUsage: ResourceUsageOutput; /** Retrieves a list of resources based on the specified filters. */ resources: ResourcesOutput; /** Retrieves risk score distribution data across all entities. */ riskScoreGraphData: RiskScoreGraphDataResult; samlConnection: SamlConnectionOutput; savedQueries: SavedQueriesOutput; savedQuery: SavedQueryOutput; /** Search across resources, groups, and users. */ search: SearchOutput; /** Get active sessions for a resource. */ sessions: SessionsOutput; /** Get the current state of the onboarding setup process. */ setupState: SetupStateResult; signInMethod?: Maybe; /** Fetches statistics before starting a new access review. */ startAccessReviewStats: StartAccessReviewStatsOutput; /** Get suggested or favorited resources and groups for the current user. */ suggestions: SuggestionsOutput; /** Get a specific support ticket by ID. */ supportTicket: SupportTicketOutput; /** Search for support tickets in an external system. */ supportTickets: SupportTicketsOutput; /** Get the sync status for a specific sync type and entity. */ syncStatus: SyncStatusOutput; /** Get a specific sync task by ID. */ syncTask: SyncTaskOutput; /** Get multiple sync tasks by IDs. */ syncTasks: SyncTasksOutput; /** Get a specific tag by ID. */ tag: TagOutput; /** Fetch tags with optional filtering and sorting. */ tags: TagsOutput; /** Fetch teams with optional filtering and pagination. */ teams: TeamsOutput; /** Retrieves a specific third-party integration based on provider and optional user/connection ID. */ thirdPartyIntegration: ThirdPartyIntegrationOutput; /** Retrieves all third-party integrations of a specific type. */ thirdPartyIntegrations: ThirdPartyIntegrationsOutput; /** Get available ticket projects from an external system. */ ticketProjects: TicketProjectsOutput; /** Fetch titles with optional filtering and pagination. */ titles: TitlesOutput; /** Retrieves top bulk suggestions with optional filtering and pagination. */ topBulkSuggestions: RecommendationsBulkSuggestionConnection; /** Get all UI notifications for the current user. */ uiNotifications: Array; /** Retrieves a single user by ID. */ user: UserOutput; /** Get all request reviewer delegations for the current user. */ userDelegations: UserDelegationsOutput; /** Get user settings for the current user or a specific user (admin only). */ userSettings: UserSettingsOutput; /** Get user tags with optional filtering. */ userTags: Array; /** Retrieves a list of users with optional filtering, sorting, and pagination. */ users: UsersOutput; /** Get Vault-managed sessions for a resource. */ vaultSessions: VaultSessionsOutput; /** Retrieves webhook configuration for the organization. */ webhookInfo: WebhookInfoOutput; }; export type QueryAccessGrantedTimesArgs = { input: MetricsInput; }; export type QueryAccessLevelsArgs = { input: ResourceAccessLevelsInput; }; export type QueryAccessQueryEngineArgs = { input: AccessQueryEngineInput; }; export type QueryAccessReviewArgs = { input: AccessReviewInput; }; export type QueryAccessReviewChangeArgs = { input: AccessReviewChangeInput; }; export type QueryAccessReviewChangesArgs = { input: AccessReviewChangesInput; }; export type QueryAccessReviewConnectionArgs = { input: AccessReviewConnectionInput; }; export type QueryAccessReviewConnectionUsersArgs = { input: AccessReviewInput; }; export type QueryAccessReviewConnectionsArgs = { input: AccessReviewConnectionsInput; }; export type QueryAccessReviewGroupArgs = { input: AccessReviewGroupInput; }; export type QueryAccessReviewGroupItemAssignmentsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; export type QueryAccessReviewGroupUsersArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; input: AccessReviewInput; last?: InputMaybe; }; export type QueryAccessReviewGroupsArgs = { id: Scalars["AccessReviewId"]["input"]; }; export type QueryAccessReviewItemsArgs = { input: AccessReviewItemsInput; }; export type QueryAccessReviewProposedChangesArgs = { input: AccessReviewProposedChangeInput; }; export type QueryAccessReviewResourceArgs = { input: AccessReviewResourceInput; }; export type QueryAccessReviewResourcePrincipalAssignmentsArgs = { after?: InputMaybe; before?: InputMaybe; filters: AccessReviewResourcePrincipalAssignmentsFilters; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; export type QueryAccessReviewResourceUsersArgs = { input: AccessReviewInput; }; export type QueryAccessReviewResourcesArgs = { input: AccessReviewResourcesInput; }; export type QueryAccessReviewReviewerArgs = { input: AccessReviewReviewerInput; }; export type QueryAccessReviewStatsArgs = { input: AccessReviewStatsInput; }; export type QueryAccessReviewTemplateArgs = { input: AccessReviewTemplateInput; }; export type QueryAccessReviewTemplatesArgs = { filters?: InputMaybe; }; export type QueryAccessReviewUnifiedAssignmentsArgs = { after?: InputMaybe; before?: InputMaybe; filters: AccessReviewUnifiedAssignmentFilters; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; export type QueryAccessReviewUserArgs = { input: AccessReviewUserInput; }; export type QueryAccessReviewUserAssignmentsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; export type QueryAccessReviewUsersArgs = { input: AccessReviewUsersInput; }; export type QueryAccessReviewsArgs = { input: AccessReviewsInput; }; export type QueryActiveGroupRequestConfigurationsArgs = { input: ActiveGroupRequestConfigurationInput; }; export type QueryActiveResourceRequestConfigurationsArgs = { input: ActiveResourceRequestConfigurationInput; }; export type QueryAllDelegationsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; export type QueryAppArgs = { id: Scalars["UUID"]["input"]; }; export type QueryAppsV2Args = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; export type QueryBreakGlassUsersByGroupArgs = { input: MetricsInput; }; export type QueryBreakGlassUsersCountsArgs = { input: MetricsInput; }; export type QueryBundleArgs = { input: BundleInput; }; export type QueryBundleItemsArgs = { input: BundleItemsInput; }; export type QueryBundleVisibilityGroupArgs = { input: BundleVisibilityGroupQueryInput; }; export type QueryBundlesArgs = { input: BundlesInput; }; export type QueryBundlesV2Args = { after?: InputMaybe; before?: InputMaybe; filters?: BundlesFilter; first?: InputMaybe; last?: InputMaybe; sortBy?: BundlesSortBy; }; export type QueryCatalogItemArgs = { id: Scalars["UUID"]["input"]; }; export type QueryClosedRequestMetricsArgs = { input: MetricsInput; }; export type QueryConfigurationTemplateArgs = { input: ConfigurationTemplateInput; }; export type QueryConnectionArgs = { input: ConnectionInput; }; export type QueryConnectionPreviewArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; input: ConnectionPreviewInput; last?: InputMaybe; }; export type QueryConnectionsArgs = { input: ConnectionsInput; }; export type QueryCountFilteredConnectionsArgs = { input: CountFilteredConnectionsInput; }; export type QueryCountFilteredGroupsArgs = { input: CountFilteredGroupsInput; }; export type QueryCountFilteredResourcesArgs = { input: CountFilteredResourcesInput; }; export type QueryDirectRoleAssignmentsArgs = { input?: InputMaybe; }; export type QueryEntitiesForRiskScoreRangeArgs = { maxRiskScore: Scalars["Int"]["input"]; minRiskScore: Scalars["Int"]["input"]; }; export type QueryEntityForRemediationArgs = { entityKey: RecommendationsEntityKey; }; export type QueryEventArgs = { input: EventInput; }; export type QueryEventFilterArgs = { input: EventFilterInput; }; export type QueryEventsArgs = { input: EventsInput; }; export type QueryExternalEventsArgs = { after?: InputMaybe; before?: InputMaybe; filters: ExternalEventsFilters; first?: InputMaybe; last?: InputMaybe; sortBy?: ExternalEventsSortBy; }; export type QueryFilteredConnectionsArgs = { input: FilteredConnectionsInput; }; export type QueryFilteredGroupsArgs = { input: FilteredGroupsInput; }; export type QueryFilteredResourcesArgs = { input: FilteredResourcesInput; }; export type QueryGroupArgs = { input: GroupInput; }; export type QueryGroupAccessLevelsArgs = { input: GroupAccessLevelsInput; }; export type QueryGroupBindingArgs = { input: Scalars["GroupBindingId"]["input"]; }; export type QueryGroupBindingSuggestionArgs = { input: Scalars["GroupBindingSuggestionId"]["input"]; }; export type QueryGroupBindingSuggestionsArgs = { input: GroupBindingSuggestionsInput; }; export type QueryGroupBindingsArgs = { input: GroupBindingsInput; }; export type QueryGroupGroupAccessArgs = { input: GroupGroupAccessInput; }; export type QueryGroupPreviewArgs = { after?: InputMaybe; before?: InputMaybe; filters: GroupPreviewFilters; first?: InputMaybe; last?: InputMaybe; sortBy: AccessReviewPreviewSortBy; }; export type QueryGroupRequestStatusCountsArgs = { input: GroupRequestStatusCountsInput; }; export type QueryGroupTypesWithCountsArgs = { input: GroupTypesWithCountsInput; }; export type QueryGroupsArgs = { input: GroupsInput; }; export type QueryHasValidOidcTokenArgs = { oidcProviderType: OidcProviderType; }; export type QueryIdpGroupMappingArgs = { appResourceId: Scalars["ResourceId"]["input"]; groupId: Scalars["GroupId"]["input"]; }; export type QueryIdpGroupMappingsArgs = { input?: InputMaybe; }; export type QueryListEventStreamMessagesArgs = { input?: InputMaybe; }; export type QueryMessageChannelsArgs = { input: MessageChannelsInput; }; export type QueryMostRequestedGroupsArgs = { input: MetricsInput; }; export type QueryMostRequestedResourcesArgs = { input: MetricsInput; }; export type QueryMultipleAccessLevelsArgs = { input: MultipleResourceAccessLevelsInput; }; export type QueryMultipleGroupAccessLevelsArgs = { input: MultipleGroupAccessLevelsInput; }; export type QueryMyAccessReviewItemsArgs = { input: MyAccessReviewItemsInput; }; export type QueryOidcProviderArgs = { input: OidcProviderInput; }; export type QueryOngoingAccessReviewSubtabStatsArgs = { input: OngoingAccessReviewSubtabStatsInput; }; export type QueryOngoingAccessReviewTabStatsArgs = { input: OngoingAccessReviewTabStatsInput; }; export type QueryOwnerArgs = { input: OwnerInput; }; export type QueryOwnersArgs = { input: OwnersInput; }; export type QueryPrincipalsArgs = { input: PrincipalsInput; }; export type QueryProvisionConfigurationArgs = { connectionId: Scalars["ConnectionId"]["input"]; entityItemType: Scalars["String"]["input"]; provisioningAction: ProvisioningAction; }; export type QueryPushTaskArgs = { input: PushTaskInput; }; export type QueryRecommendationsMetricsArgs = { metricTypes: Array; numDays: Scalars["Int"]["input"]; }; export type QueryRemoteResourcesArgs = { input: RemoteResourcesInput; }; export type QueryRequestArgs = { input: RequestInput; }; export type QueryRequestApprovalTimesArgs = { input: MetricsInput; }; export type QueryRequestDefaultsArgs = { input: RequestDefaultsInput; }; export type QueryRequestMetricsArgs = { input: MetricsInput; }; export type QueryRequestTemplateArgs = { input: RequestTemplateInput; }; export type QueryRequestTemplatesWithFieldsArgs = { input: RequestTemplatesWithFieldsInput; }; export type QueryRequestsArgs = { input: RequestsInput; }; export type QueryRequestsConnectionArgs = { input: RequestsRelayInput; }; export type QueryResourceArgs = { input: ResourceInput; }; export type QueryResourceAncestorsArgs = { input: ResourceInput; }; export type QueryResourceCustomAccessLevelArgs = { input: ResourceCustomAccessLevelInput; }; export type QueryResourceCustomAccessLevelsArgs = { input: ResourceCustomAccessLevelsInput; }; export type QueryResourcePreviewArgs = { after?: InputMaybe; before?: InputMaybe; filters: ResourcePreviewFilters; first?: InputMaybe; last?: InputMaybe; sortBy: AccessReviewPreviewSortBy; }; export type QueryResourceRequestStatusCountsArgs = { input: ResourceRequestStatusCountsInput; }; export type QueryResourceTagsArgs = { input: ResourceTagsInput; }; export type QueryResourceTypesWithCountsArgs = { input: ResourceTypesWithCountsInput; }; export type QueryResourceUsageArgs = { input: ResourceUsageInput; }; export type QueryResourcesArgs = { input: ResourcesInput; }; export type QuerySavedQueryArgs = { input: SavedQueryInput; }; export type QuerySearchArgs = { input: SearchInput; }; export type QuerySessionsArgs = { input: SessionsInput; }; export type QuerySignInMethodArgs = { input: SignInMethodInput; }; export type QueryStartAccessReviewStatsArgs = { input: StartAccessReviewStatsInput; }; export type QuerySuggestionsArgs = { input?: InputMaybe; }; export type QuerySupportTicketArgs = { input: SupportTicketByIdInput; }; export type QuerySupportTicketsArgs = { input: SupportTicketsInput; }; export type QuerySyncStatusArgs = { input: SyncStatusInput; }; export type QuerySyncTaskArgs = { input: SyncTaskInput; }; export type QuerySyncTasksArgs = { input: SyncTasksInput; }; export type QueryTagArgs = { input: TagInput; }; export type QueryTagsArgs = { input: TagsInput; }; export type QueryTeamsArgs = { input: TeamsInput; }; export type QueryThirdPartyIntegrationArgs = { input: ThirdPartyIntegrationInput; }; export type QueryThirdPartyIntegrationsArgs = { input: ThirdPartyIntegrationsInput; }; export type QueryTicketProjectsArgs = { input: SupportTicketsInput; }; export type QueryTitlesArgs = { input: TitlesInput; }; export type QueryTopBulkSuggestionsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; input: TopBulkSuggestionsInput; last?: InputMaybe; }; export type QueryUserArgs = { input: UserInput; }; export type QueryUserSettingsArgs = { id?: InputMaybe; }; export type QueryUserTagsArgs = { input: UserTagsInput; }; export type QueryUsersArgs = { input: UsersInput; }; export type QueryVaultSessionsArgs = { input?: InputMaybe; }; /** Input for marking a notification as read by URL. */ export type ReadUiNotificationInput = { /** The notification URL. */ url: Scalars["String"]["input"]; }; /** Result of marking a notification as read. */ export type ReadUiNotificationOutput = ReadUiNotificationResult; /** Successful result of marking a notification as read. */ export type ReadUiNotificationResult = { __typename?: "ReadUINotificationResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for marking multiple notifications as read. */ export type ReadUiNotificationsInput = { /** Whether to mark all notifications as read. */ markAllAsRead: Scalars["Boolean"]["input"]; /** List of notification IDs to mark as read. */ notificationIds: Array; }; /** Result of marking notifications as read. */ export type ReadUiNotificationsOutput = ReadUiNotificationsResult; /** Successful result of marking notifications as read. */ export type ReadUiNotificationsResult = { __typename?: "ReadUINotificationsResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Error indicating that reason minimum word count is invalid. */ export type ReasonMinWordCountInvalidError = Error & { __typename?: "ReasonMinWordCountInvalidError"; message: Scalars["String"]["output"]; }; /** Represents a bulk suggestion for recommendations with pagination support. */ export type RecommendationsBulkSuggestion = Edge & { __typename?: "RecommendationsBulkSuggestion"; /** Pagination cursor */ cursor: Scalars["String"]["output"]; /** The entity associated with this suggestion */ entity: RecommendationsEntity; /** Count information for this suggestion */ suggestionCounts: SuggestionCounts; /** Type of suggestion */ type: RecommendationsSubscoreType; }; /** Paginated connection for bulk suggestions. */ export type RecommendationsBulkSuggestionConnection = PageConnection & { __typename?: "RecommendationsBulkSuggestionConnection"; /** Pagination information */ pageInfo: PageInfo; /** List of suggestions */ suggestions: Array; /** Total count of suggestions */ totalCount: Scalars["Int"]["output"]; }; /** Union of entities that can have recommendations. */ export type RecommendationsEntity = Group | Resource; /** Input for identifying an entity in the recommendations system. */ export type RecommendationsEntityKey = { /** Unique identifier for the entity */ entityId: Scalars["UUID"]["input"]; /** Type of the entity */ entityType: RecommendationsEntityType; }; /** Output representation of an entity key (input types cannot be used as outputs). */ export type RecommendationsEntityKeyOutput = { __typename?: "RecommendationsEntityKeyOutput"; /** Unique identifier for the entity */ entityId: Scalars["UUID"]["output"]; /** Type of the entity */ entityType: RecommendationsEntityType; }; /** Metadata about an entity in the recommendations system. */ export type RecommendationsEntityMetadata = { __typename?: "RecommendationsEntityMetadata"; /** The entity's identifying key */ entityKey: RecommendationsEntityKeyOutput; /** The entity's risk score */ riskScore: Scalars["Int"]["output"]; /** The type of suggestion for this entity */ suggestionType: RecommendationsSubscoreType; }; /** Types of entities that can be included in recommendations. */ export declare enum RecommendationsEntityType { /** An application entity */ App = "APP", /** A group entity */ Group = "GROUP", /** An organization entity */ Organization = "ORGANIZATION", /** A resource entity */ Resource = "RESOURCE", /** A user entity */ User = "USER" } /** Types of feedback actions that can be logged for recommendations. */ export declare enum RecommendationsFeedbackType { /** Dismiss suggestion for not using access */ DismissSuggestionNotUsingAccess = "DISMISS_SUGGESTION_NOT_USING_ACCESS", /** Dismiss suggestion for overprovisioned rule */ DismissSuggestionOverprovisionedRule = "DISMISS_SUGGESTION_OVERPROVISIONED_RULE", /** Dismiss suggestion for perpetual and unused access */ DismissSuggestionPerpetualAndUnusedAccess = "DISMISS_SUGGESTION_PERPETUAL_AND_UNUSED_ACCESS", /** Dismiss suggestion for unmanaged access */ DismissSuggestionUnmanagedAccess = "DISMISS_SUGGESTION_UNMANAGED_ACCESS", /** Dismiss suggestion for unused access */ DismissSuggestionUnusedAccess = "DISMISS_SUGGESTION_UNUSED_ACCESS", /** Remediate access that is not being used */ RemediateSuggestionNotUsingAccess = "REMEDIATE_SUGGESTION_NOT_USING_ACCESS", /** Remediate perpetual and unused access */ RemediateSuggestionPerpetualAndUnusedAccess = "REMEDIATE_SUGGESTION_PERPETUAL_AND_UNUSED_ACCESS", /** Remediate unmanaged access */ RemediateSuggestionUnmanagedAccess = "REMEDIATE_SUGGESTION_UNMANAGED_ACCESS", /** Remediate unused access */ RemediateSuggestionUnusedAccess = "REMEDIATE_SUGGESTION_UNUSED_ACCESS" } /** A single data point for a recommendations metric. */ export type RecommendationsMetricData = { __typename?: "RecommendationsMetricData"; /** Date this metric was recorded */ date: Scalars["Time"]["output"]; /** Type of metric */ metricType: RecommendationsMetricType; /** Metric value */ value: Scalars["Int"]["output"]; }; /** List of metric data points of the same type. */ export type RecommendationsMetricList = { __typename?: "RecommendationsMetricList"; /** List of metric data points */ data: Array; /** Type of metrics in this list */ metricType: RecommendationsMetricType; }; /** Types of metrics tracked by the recommendations system. */ export declare enum RecommendationsMetricType { /** Total access points converted to JIT */ AccessPointsConvertedToJit = "ACCESS_POINTS_CONVERTED_TO_JIT", /** Access points converted to JIT by threat center */ AccessPointsConvertedToJitByThreatCenter = "ACCESS_POINTS_CONVERTED_TO_JIT_BY_THREAT_CENTER", /** Access points converted to JIT from suggestions */ AccessPointsConvertedToJitFromSuggestions = "ACCESS_POINTS_CONVERTED_TO_JIT_FROM_SUGGESTIONS", /** Total access points revoked */ AccessPointsRevoked = "ACCESS_POINTS_REVOKED", /** Access points revoked by threat center */ AccessPointsRevokedByThreatCenter = "ACCESS_POINTS_REVOKED_BY_THREAT_CENTER", /** Access points revoked from suggestions */ AccessPointsRevokedFromSuggestions = "ACCESS_POINTS_REVOKED_FROM_SUGGESTIONS", /** Daily count of irregular user access */ DailyIrregularUserAccess = "DAILY_IRREGULAR_USER_ACCESS", /** Daily count of outside user access */ DailyOutsideUserAccess = "DAILY_OUTSIDE_USER_ACCESS", /** Daily count of perpetual user access */ DailyPerpetualUserAccess = "DAILY_PERPETUAL_USER_ACCESS", /** Daily count of unused non-human identity access */ DailyUnusedNhiAccess = "DAILY_UNUSED_NHI_ACCESS", /** Daily count of unused user access */ DailyUnusedUserAccess = "DAILY_UNUSED_USER_ACCESS", /** Count of entities with critical risk score */ EntitiesWithCriticalRiskScore = "ENTITIES_WITH_CRITICAL_RISK_SCORE", /** Count of entities with high risk score */ EntitiesWithHighRiskScore = "ENTITIES_WITH_HIGH_RISK_SCORE", /** Count of entities with low risk score */ EntitiesWithLowRiskScore = "ENTITIES_WITH_LOW_RISK_SCORE", /** Count of entities with medium risk score */ EntitiesWithMediumRiskScore = "ENTITIES_WITH_MEDIUM_RISK_SCORE", /** Total licenses revoked */ LicensesRevoked = "LICENSES_REVOKED", /** Licenses revoked by threat center */ LicensesRevokedByThreatCenter = "LICENSES_REVOKED_BY_THREAT_CENTER", /** Access points converted to JIT from not using access */ NotUsingAccessPointsConvertedToJit = "NOT_USING_ACCESS_POINTS_CONVERTED_TO_JIT", /** Access points revoked from not using access */ NotUsingAccessPointsRevoked = "NOT_USING_ACCESS_POINTS_REVOKED", /** Access points converted to JIT from perpetual and unused access */ PerpetualAndUnusedAccessPointsConvertedToJit = "PERPETUAL_AND_UNUSED_ACCESS_POINTS_CONVERTED_TO_JIT", /** Access points revoked from perpetual and unused access */ PerpetualAndUnusedAccessPointsRevoked = "PERPETUAL_AND_UNUSED_ACCESS_POINTS_REVOKED", /** Remediations performed for perpetual and unused access */ RemediationsPerformedSuggestionPerpetualAndUnusedAccess = "REMEDIATIONS_PERFORMED_SUGGESTION_PERPETUAL_AND_UNUSED_ACCESS", /** Remediations performed for not using access */ RemediationsPerformedSuggestionSuggestionNotUsingAccess = "REMEDIATIONS_PERFORMED_SUGGESTION_SUGGESTION_NOT_USING_ACCESS", /** Remediations performed for unused access */ RemediationsPerformedSuggestionSuggestionUnusedAccess = "REMEDIATIONS_PERFORMED_SUGGESTION_SUGGESTION_UNUSED_ACCESS", /** Remediations performed for unmanaged access */ RemediationsPerformedSuggestionUnmanagedAccess = "REMEDIATIONS_PERFORMED_SUGGESTION_UNMANAGED_ACCESS", /** Total count of perpetual access */ SumPerpetualAccess = "SUM_PERPETUAL_ACCESS", /** Total count of time-bound access */ SumTimeBoundAccess = "SUM_TIME_BOUND_ACCESS", /** Total count of unused access */ SumUnusedAccess = "SUM_UNUSED_ACCESS", /** Total count of detected threats */ TotalThreatCount = "TOTAL_THREAT_COUNT", /** Access points converted to JIT from unmanaged access */ UnmanagedAccessPointsConvertedToJit = "UNMANAGED_ACCESS_POINTS_CONVERTED_TO_JIT", /** Access points revoked from unmanaged access */ UnmanagedAccessPointsRevoked = "UNMANAGED_ACCESS_POINTS_REVOKED", /** Access points converted to JIT from unused access */ UnusedAccessPointsConvertedToJit = "UNUSED_ACCESS_POINTS_CONVERTED_TO_JIT", /** Access points revoked from unused access */ UnusedAccessPointsRevoked = "UNUSED_ACCESS_POINTS_REVOKED" } /** Graph data for perpetual and timebound access metrics. */ export type RecommendationsMetricsGraph = { __typename?: "RecommendationsMetricsGraph"; /** Time series data for perpetual access */ perpetualAccessGraph: Array; /** Time series data for timebound access */ timeboundAccessGraph: Array; }; /** Payload for recommendations subscore calculation tasks. */ export type RecommendationsSubscoreTaskPayload = { __typename?: "RecommendationsSubscoreTaskPayload"; /** Organization ID this task belongs to */ organizationId: Scalars["OrganizationId"]["output"]; /** Timestamp when the task was last updated */ updatedAt: Scalars["Time"]["output"]; }; /** Types of risk factors and suggestions identified by the recommendations system. */ export declare enum RecommendationsSubscoreType { /** Access that is used irregularly or outside normal patterns */ IrregularAccess = "IRREGULAR_ACCESS", /** Heuristic-based detection of irregular access patterns */ IrregularAccessHeuristic = "IRREGULAR_ACCESS_HEURISTIC", /** Access that never expires */ PerpetualAccess = "PERPETUAL_ACCESS", /** Resource has known vulnerabilities */ ResourceVulnerability = "RESOURCE_VULNERABILITY", /** Suggestion for access that is not being used */ SuggestionNotUsingAccess = "SUGGESTION_NOT_USING_ACCESS", /** Suggestion for over-provisioned rules that grant too much access */ SuggestionOverprovisionedRule = "SUGGESTION_OVERPROVISIONED_RULE", /** Suggestion to address perpetual and unused access */ SuggestionPerpetualAndUnusedAccess = "SUGGESTION_PERPETUAL_AND_UNUSED_ACCESS", /** Suggestion to address unmanaged access */ SuggestionUnmanagedAccess = "SUGGESTION_UNMANAGED_ACCESS", /** Suggestion to address unused access */ SuggestionUnusedAccess = "SUGGESTION_UNUSED_ACCESS", /** Access that is not managed through Opal */ UnmanagedAccess = "UNMANAGED_ACCESS", /** Access that has not been used */ UnusedAccess = "UNUSED_ACCESS" } /** Input for recording a group view. */ export type RecordGroupViewInput = { /** ID of the group that was viewed. */ groupId: Scalars["GroupId"]["input"]; }; /** Result of recording a group view. */ export type RecordGroupViewOutput = RecordGroupViewResult; /** Successful result of recording a group view. */ export type RecordGroupViewResult = { __typename?: "RecordGroupViewResult"; /** Whether the view was recorded successfully. */ success: Scalars["Boolean"]["output"]; }; /** Input for recording a resource view. */ export type RecordResourceViewInput = { /** ID of the resource being viewed */ resourceId: Scalars["ResourceId"]["input"]; }; /** Result for record resource view operation. */ export type RecordResourceViewOutput = RecordResourceViewResult; /** Successful result of recording a resource view. */ export type RecordResourceViewResult = { __typename?: "RecordResourceViewResult"; /** Whether the operation succeeded */ success: Scalars["Boolean"]["output"]; }; /** Input for regenerating the audit report for a completed access review. */ export type RegenerateAccessReviewReportInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; }; /** Result of regenerating an access review report. */ export type RegenerateAccessReviewReportOutput = AccessReviewNotFoundError | AccessReviewNotStoppedError | RegenerateAccessReviewReportResult; /** Successful result of regenerating an access review report. */ export type RegenerateAccessReviewReportResult = { __typename?: "RegenerateAccessReviewReportResult"; /** The access review with the regenerated report. */ accessReview: AccessReview; }; /** Result of regenerating the webhook signing secret. */ export type RegenerateSigningSecretOutput = RegenerateSigningSecretResult; /** Successfully regenerated the signing secret. */ export type RegenerateSigningSecretResult = { __typename?: "RegenerateSigningSecretResult"; /** The webhook information with the new signing secret. */ webhookInfo: OrganizationWebhookInfo; }; /** Result of remediating by adding group resources. */ export type RemediateAddGroupResourcesOutput = AddGroupResourcesResult | CallToWebhookFailedError | GroupNotFoundError | GroupResourceAlreadyExists | UserFacingError; /** Result of remediating by adding group users. */ export type RemediateAddGroupUsersOutput = AddGroupUsersResult | CallToWebhookFailedError | CannotAddSystemUserToGroupError | GroupNotFoundError | GroupUserAlreadyExists; /** Result of remediating by adding resource users. */ export type RemediateAddResourceUsersOutput = AddResourceUsersResult | CallToWebhookFailedError | CannotAddSystemUserToResourceError | OpalAdminRoleMustHaveAtLeastOneDirectUser | OpalGlobalImpersonationResourceDirectAddNotAllowedError | ResourceNotFoundError | ResourceUserAlreadyExists; /** Result of remediating by adding role assignments. */ export type RemediateAddRoleAssignmentsOutput = AddRoleAssignmentsResult | GroupNestingNotAllowedError | RoleAssignmentNotFoundError; /** Represents a remote item from the source system that hasn't been imported to Opal yet. */ export type RemoteAppItem = { __typename?: "RemoteAppItem"; /** ID of the connection this item belongs to. */ connectionId: Scalars["ConnectionId"]["output"]; /** Type of the connection this item belongs to. */ connectionType: ConnectionType; /** Group type if this is a group. */ groupType?: Maybe; /** URL of the item icon. */ iconUrl?: Maybe; /** Opal resource type prefix + remote ID. */ id: Scalars["String"]["output"]; /** Additional metadata about the remote item. */ metadata?: Maybe; /** ID of the item in the remote system. */ remoteId: Scalars["String"]["output"]; /** Name of the item in the remote system. */ remoteName: Scalars["String"]["output"]; /** Resource type if this is a resource. */ resourceType?: Maybe; }; /** Input for querying remote (not yet imported) app items. */ export type RemoteAppItemsInput = { /** Additional filters for the query. */ filters?: InputMaybe; /** Filter by group type. */ groupType?: InputMaybe; /** Filter by resource type. */ resourceType?: InputMaybe; }; /** Output type for remote app items query. */ export type RemoteAppItemsOutput = RemoteAppItemsResult | UserFacingError; /** Result containing list of remote app items. */ export type RemoteAppItemsResult = { __typename?: "RemoteAppItemsResult"; /** List of remote items. */ items?: Maybe>; }; /** A group from a remote system. */ export type RemoteGroup = { __typename?: "RemoteGroup"; /** Type of group. */ groupType: GroupType; /** URL to the group's icon. */ iconUrl?: Maybe; /** Remote ID of the group. */ id: Scalars["RemoteGroupId"]["output"]; /** Metadata about the group. */ metadata: Scalars["String"]["output"]; /** Name of the group. */ name: Scalars["String"]["output"]; }; /** Error returned when a remote message channel is already linked. */ export type RemoteMessageChannelAlreadyLinked = Error & { __typename?: "RemoteMessageChannelAlreadyLinked"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when a remote message channel is not found. */ export type RemoteMessageChannelNotFound = Error & { __typename?: "RemoteMessageChannelNotFound"; /** Error message. */ message: Scalars["String"]["output"]; }; /** A resource from a remote system. */ export type RemoteResource = { __typename?: "RemoteResource"; /** URL to resource icon */ iconUrl?: Maybe; /** Remote resource ID */ id: Scalars["RemoteResourceId"]["output"]; /** Metadata about the resource */ metadata: Scalars["String"]["output"]; /** Name of the resource */ name: Scalars["String"]["output"]; /** Type of the resource */ resourceType: ResourceType; }; /** Input for querying remote resources. */ export type RemoteResourcesInput = { /** Connection ID to query */ connectionId: Scalars["ConnectionId"]["input"]; /** Resource types to retrieve */ resourceTypes: Array; }; /** Result or error for remote resources query. */ export type RemoteResourcesOutput = ConnectionNotFoundError | MissingIamPermissionError | RemoteResourcesResult | UserFacingError; /** Successful result of querying remote resources. */ export type RemoteResourcesResult = { __typename?: "RemoteResourcesResult"; /** List of remote resources */ remoteResources: Array; }; /** Configuration for a remote rule. */ export type RemoteRule = { __typename?: "RemoteRule"; /** Optional exclusions for the rule */ exclusion?: Maybe; /** Rule expression */ expression: Scalars["String"]["output"]; }; /** Error indicating the remote user was not found. */ export type RemoteUserNotFound = Error & { __typename?: "RemoteUserNotFound"; /** Error message */ message: Scalars["String"]["output"]; }; /** Error returned when a remote user cannot be found in the third-party system. */ export type RemoteUserNotFoundError = Error & { __typename?: "RemoteUserNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Input for removing a single connection user. */ export type RemoveConnectionUserInput = { /** ID of the connection. */ connectionId: Scalars["ConnectionId"]["input"]; /** ID of the user to remove. */ userId: Scalars["UserId"]["input"]; }; /** Input for removing connection users. */ export type RemoveConnectionUsersInput = { /** List of connection user associations to remove. */ connectionUsers: Array; }; /** Output type for removeConnectionUsers mutation. */ export type RemoveConnectionUsersOutput = ConnectionNotFoundError | ConnectionUserNotFound | RemoveConnectionUsersResult | UserFacingError; /** Result of removing connection users. */ export type RemoveConnectionUsersResult = { __typename?: "RemoveConnectionUsersResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; /** ID of the push task created to propagate the changes. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for removing a single group-resource association. */ export type RemoveGroupResourceInput = { /** Level of access to remove. */ accessLevel: ResourceAccessLevelInput; /** ID of the group. */ groupId: Scalars["GroupId"]["input"]; /** ID of the resource. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Result for a single group-resource removal. */ export type RemoveGroupResourcesEntryOutput = RemoveGroupResourcesEntryResult; /** Successful result for a single group-resource removal. */ export type RemoveGroupResourcesEntryResult = { __typename?: "RemoveGroupResourcesEntryResult"; /** The removed group-resource association. */ groupResource: GroupResource; }; /** Input for removing multiple group-resource associations. */ export type RemoveGroupResourcesInput = { /** List of group-resource associations to remove. */ groupResources: Array; /** If true, don't push changes to the remote system. */ noPush?: InputMaybe; /** UI source that triggered the removal. */ source?: InputMaybe; }; /** Result of removing group-resource associations. */ export type RemoveGroupResourcesOutput = CallToWebhookFailedError | GroupNotFoundError | RemoveGroupResourcesResult | UserFacingError; /** Successful result of removing group-resource associations. */ export type RemoveGroupResourcesResult = { __typename?: "RemoveGroupResourcesResult"; /** Results for each group-resource removal. */ entries: Array; /** ID of the push task for propagating changes to the remote system. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for removing a single tag from a group. */ export type RemoveGroupTagInput = { /** ID of the group. */ groupId: Scalars["GroupId"]["input"]; /** ID of the tag to remove. */ tagId: Scalars["TagId"]["input"]; }; /** Input for removing tags from groups. */ export type RemoveGroupTagsInput = { /** List of group-tag associations to remove. */ groupTags: Array; }; /** Output for removing tags from groups. */ export type RemoveGroupTagsOutput = RemoveGroupTagsResult; /** Result of removing tags from groups. */ export type RemoveGroupTagsResult = { __typename?: "RemoveGroupTagsResult"; /** Whether removal was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for removing a single user from a group. */ export type RemoveGroupUserInput = { /** Level of access to remove. */ accessLevel: GroupAccessLevelInput; /** ID of the group. */ groupId: Scalars["GroupId"]["input"]; /** ID of the user. */ userId: Scalars["UserId"]["input"]; }; /** Result for a single user-group removal. */ export type RemoveGroupUsersEntryOutput = RemoveGroupUsersEntryResult; /** Successful result for a single user-group removal. */ export type RemoveGroupUsersEntryResult = { __typename?: "RemoveGroupUsersEntryResult"; /** The removed user-group association. */ groupUser: GroupUser; }; /** Input for removing multiple users from groups. */ export type RemoveGroupUsersInput = { /** List of user-group associations to remove. */ groupUsers: Array; /** If true, don't push changes to the remote system. */ noPush?: InputMaybe; /** UI source that triggered the removal. */ source?: InputMaybe; }; /** Result of removing users from groups. */ export type RemoveGroupUsersOutput = CallToWebhookFailedError | GroupNotFoundError | RemoveGroupUsersResult; /** Successful result of removing users from groups. */ export type RemoveGroupUsersResult = { __typename?: "RemoveGroupUsersResult"; /** Results for each user-group removal. */ entries: Array; /** ID of the push task for propagating changes to the remote system. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for removing a single resource tag. */ export type RemoveResourceTagInput = { /** The resource tag ID to remove. */ resourceTagId: Scalars["ResourceTagId"]["input"]; }; /** Result for a single resource tag removal. */ export type RemoveResourceTagsEntryOutput = RemoveResourceTagsEntryResult; /** Successfully removed a resource tag. */ export type RemoveResourceTagsEntryResult = { __typename?: "RemoveResourceTagsEntryResult"; /** The removed resource tag. */ resourceTag: ResourceTag; }; /** Input for removing resource tags. */ export type RemoveResourceTagsInput = { /** List of resource tags to remove. */ resourceTags: Array; }; /** Result of removing resource tags. */ export type RemoveResourceTagsOutput = RemoveResourceTagsResult | ResourceTagNotFoundError; /** Successfully removed resource tags. */ export type RemoveResourceTagsResult = { __typename?: "RemoveResourceTagsResult"; /** Results for each resource tag removed. */ entries: Array; }; /** Input for removing a single resource user. */ export type RemoveResourceUserInput = { /** The access level to remove. */ accessLevel: ResourceAccessLevelInput; /** The resource ID. */ resourceId: Scalars["ResourceId"]["input"]; /** The user ID to remove access from. */ userId: Scalars["UserId"]["input"]; }; /** Result for a single resource user removal. */ export type RemoveResourceUsersEntryOutput = RemoveResourceUsersEntryResult; /** Successfully removed a resource user. */ export type RemoveResourceUsersEntryResult = { __typename?: "RemoveResourceUsersEntryResult"; /** The removed resource user. */ resourceUser: ResourceUser; }; /** Input for removing resource users. */ export type RemoveResourceUsersInput = { /** If true, don't propagate the removal to the remote system. */ noPush?: InputMaybe; /** List of resource users to remove. */ resourceUsers: Array; /** The UI source of this removal (for tracking). */ source?: InputMaybe; }; /** Result of removing resource users. */ export type RemoveResourceUsersOutput = CallToWebhookFailedError | OidcIdTokenNotFoundError | OpalAdminRoleMustHaveAtLeastOneDirectUser | RemoveResourceUsersResult | ResourceNotFoundError; /** Successfully removed resource users. */ export type RemoveResourceUsersResult = { __typename?: "RemoveResourceUsersResult"; /** Results for each resource user removed. */ entries: Array; /** The push task ID for propagating the changes. */ taskId: Scalars["PushTaskId"]["output"]; }; /** Input for removing a role assignment. */ export type RemoveRoleAssignmentInput = { /** The level of access to remove. */ accessLevel?: InputMaybe; /** The ID of the entity. */ entityID: Scalars["EntityId"]["input"]; /** The type of the entity. */ entityType: EntityType; /** The ID of the principal. */ principalID: Scalars["EntityId"]["input"]; /** The type of the principal. */ principalType: EntityType; }; /** Result of removing a single role assignment. */ export type RemoveRoleAssignmentsEntryOutput = RemoveRoleAssignmentsEntryResult; /** Successful result of removing a single role assignment. */ export type RemoveRoleAssignmentsEntryResult = { __typename?: "RemoveRoleAssignmentsEntryResult"; /** The removed role assignment. */ roleAssignment: RoleAssignment; }; /** Input for removing multiple role assignments. */ export type RemoveRoleAssignmentsInput = { /** Whether to skip pushing the changes to end systems. */ noPush?: InputMaybe; /** The list of role assignments to remove. */ roleAssignments: Array; }; /** Result of removing role assignments. */ export type RemoveRoleAssignmentsOutput = RemoveRoleAssignmentsResult | UserFacingError; /** Successful result of removing role assignments. */ export type RemoveRoleAssignmentsResult = { __typename?: "RemoveRoleAssignmentsResult"; /** The removed role assignments. */ entries: Array; /** IDs of push tasks initiated to propagate changes. */ taskIds: Array; }; /** Input for removing a single user tag. */ export type RemoveUserTagInput = { /** The user tag association ID to remove. */ userTagId: Scalars["UserTagId"]["input"]; }; /** Result of removing a single user tag. */ export type RemoveUserTagsEntryOutput = RemoveUserTagsEntryResult; /** Successful result of removing a single user tag. */ export type RemoveUserTagsEntryResult = { __typename?: "RemoveUserTagsEntryResult"; /** The removed user tag association. */ userTag: UserTag; }; /** Input for removing multiple user tags. */ export type RemoveUserTagsInput = { /** List of user tags to remove. */ userTags: Array; }; /** Result of removing user tags. */ export type RemoveUserTagsOutput = RemoveUserTagsResult | UserTagNotFoundError; /** Successful result of removing user tags. */ export type RemoveUserTagsResult = { __typename?: "RemoveUserTagsResult"; /** List of removed user tag associations. */ entries: Array; }; /** Input for reordering user attribute priorities. */ export type ReorderUserAttributePriorityInput = { /** List of IdP connection IDs in the desired priority order. */ idpConnectionIds: Array; /** The user attribute to reorder priorities for. */ useAs: IdpConnectionUserAttributeUseAs; }; /** Result of reordering user attribute priorities. */ export type ReorderUserAttributePriorityOutput = { __typename?: "ReorderUserAttributePriorityOutput"; /** List of IdP connections in the new priority order. */ idpConnections: Array; /** The user attribute that was reordered. */ useAs: IdpConnectionUserAttributeUseAs; }; /** An access request in the system. */ export type Request = BaseEntity & Node & { __typename?: "Request"; /** Timestamp when the request was created */ createdAt: Scalars["Time"]["output"]; /** Custom metadata fields on the request */ customMetadata?: Maybe>; /** Duration of access in minutes */ durationInMinutes?: Maybe; /** Whether the request was escalated to skip manager */ escalatedToSkipManager: Scalars["Boolean"]["output"]; /** Unique identifier */ id: Scalars["UUID"]["output"]; /** Reason provided for the request */ reason: Scalars["String"]["output"]; /** Comments on the request */ requestComments: Array; /** Request tracking ticket */ requestTicket?: Maybe; /** ID of request tracking ticket */ requestTicketId?: Maybe; /** Groups being requested */ requestedGroups: Array; /** Resources being requested */ requestedResources: Array; /** User who created the request */ requester?: Maybe; /** ID of the user who created the request */ requesterId: Scalars["UserId"]["output"]; /** Resource proposal, if applicable */ resourceProposal?: Maybe; /** ID of resource proposal, if applicable */ resourceProposalId?: Maybe; /** Error message about reviewers, if any */ reviewersError?: Maybe; /** Source from which the request was created */ source?: Maybe; /** Review stages for each requested item */ stages: Array; /** Current status of the request */ status: RequestStatus; /** Associated support ticket */ supportTicket?: Maybe; /** ID of associated support ticket */ supportTicketId?: Maybe; /** Target group for the request */ targetGroup?: Maybe; /** ID of the target group for the request */ targetGroupId?: Maybe; /** Target user for the request */ targetUser?: Maybe; /** ID of the target user for the request */ targetUserId?: Maybe; /** Timestamp when the request was last updated */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating the request has already been actioned. */ export type RequestAlreadyActionedError = Error & { __typename?: "RequestAlreadyActionedError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Error indicating the request was already escalated to skip manager. */ export type RequestAlreadyEscalatedToSkipManagerError = Error & { __typename?: "RequestAlreadyEscalatedToSkipManagerError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Metrics about request approval times. */ export type RequestApprovalTimesResult = { __typename?: "RequestApprovalTimesResult"; /** Time series data for average approval times. */ lineData: Array; }; /** Type of approver for a request. */ export declare enum RequestApprovalType { /** Manager of the requesting user */ Manager = "MANAGER", /** Owner of the resource or group */ Owner = "OWNER", /** Skip-level manager of the requesting user */ SkipManager = "SKIP_MANAGER", /** Specific user assigned as reviewer */ User = "USER" } /** A comment on an access request. */ export type RequestComment = { __typename?: "RequestComment"; /** The comment text. */ comment: Scalars["String"]["output"]; /** When the comment was created. */ createdAt: Scalars["Time"]["output"]; /** Unique identifier for the request comment. */ id: Scalars["RequestCommentId"]["output"]; /** The user who created the comment. */ user?: Maybe; /** The user ID of the commenter. */ userId: Scalars["UserId"]["output"]; }; export type RequestConfigInput = { autoApprove?: InputMaybe; extensionsDurationInMinutes?: InputMaybe; extensionsEnabled?: InputMaybe; groupIds?: InputMaybe>; id?: InputMaybe; isRequestable?: InputMaybe; maxDurationInMinutes?: InputMaybe; priority?: InputMaybe; reasonOptional?: InputMaybe; recommendedDurationInMinutes?: InputMaybe; requestTemplateId?: InputMaybe; requireMfaToRequest?: InputMaybe; requireSupportTicket?: InputMaybe; reviewerStages?: InputMaybe>; roleIds?: InputMaybe>; }; /** Configuration that determines how access can be requested for resources or groups. */ export type RequestConfiguration = { __typename?: "RequestConfiguration"; /** Whether requests are automatically approved. */ autoApproval: Scalars["Boolean"]["output"]; /** Entities that this configuration applies to. */ configuredEntities?: Maybe>; /** Duration for access extensions in minutes. */ extensionsDurationInMinutes?: Maybe; /** Whether access extensions are enabled. */ extensionsEnabled: Scalars["Boolean"]["output"]; /** Group ID this configuration applies to (deprecated). */ groupId?: Maybe; /** Group IDs this configuration applies to. */ groupIds?: Maybe>; /** Unique identifier for the request configuration. */ id: Scalars["RequestConfigurationId"]["output"]; /** Whether this item can be requested. */ isRequestable: Scalars["Boolean"]["output"]; /** Maximum duration for the access in minutes. */ maxDurationInMinutes?: Maybe; /** Priority of this configuration (lower numbers have higher priority). */ priority: Scalars["Int"]["output"]; /** Whether a reason is optional for requests. */ reasonOptional: Scalars["Boolean"]["output"]; /** Recommended duration for the access in minutes. */ recommendedDurationInMinutes?: Maybe; /** Request template entity. */ requestTemplate?: Maybe; /** Request template ID if a custom template is used. */ requestTemplateId?: Maybe; /** Whether MFA is required to request access. */ requireMfaToRequest: Scalars["Boolean"]["output"]; /** Whether a support ticket is required for requests. */ requireSupportTicket: Scalars["Boolean"]["output"]; /** Reviewer stages that must approve the request. */ reviewerStages: Array; /** Role IDs (access level remote IDs) this configuration applies to. */ roleIds?: Maybe>; }; /** Input for specifying a group and access level for request configuration queries. */ export type RequestConfigurationGroupInput = { /** The access level remote ID (optional). */ accessLevelRemoteId?: InputMaybe; /** The group ID. */ groupId: Scalars["GroupId"]["input"]; }; /** Input for specifying a resource and access level for request configuration queries. */ export type RequestConfigurationResourceInput = { /** The access level remote ID (optional). */ accessLevelRemoteId?: InputMaybe; /** The resource ID. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Paginated connection for requests. */ export type RequestConnection = PageConnection & { __typename?: "RequestConnection"; /** List of request edges */ edges: Array; /** Pagination information */ pageInfo: PageInfo; /** Total count of requests */ totalCount: Scalars["Int"]["output"]; }; /** Custom metadata field on a request. */ export type RequestCustomMetadata = { __typename?: "RequestCustomMetadata"; /** Name of the field */ fieldName: Scalars["String"]["output"]; /** Type of the field */ fieldType: RequestTemplateCustomFieldType; /** Value of the field */ metadataValue?: Maybe; }; /** Custom metadata field on a request. */ export type RequestCustomMetadataInput = { /** Name of the field */ fieldName: Scalars["String"]["input"]; /** Type of the field */ fieldType: RequestTemplateCustomFieldType; /** Value of the field */ metadataValue: RequestCustomMetadataValueInput; }; /** Value of a custom metadata field. */ export type RequestCustomMetadataValue = { __typename?: "RequestCustomMetadataValue"; /** Boolean value */ booleanValue?: Maybe; /** Long text value */ longTextValue?: Maybe; /** Multiple choice value */ multiChoiceValue?: Maybe; /** Short text value */ shortTextValue?: Maybe; }; /** Value for a custom metadata field on a request. */ export type RequestCustomMetadataValueInput = { /** Boolean value */ booleanValue?: InputMaybe; /** Long text value */ longTextValue?: InputMaybe; /** Multiple choice value */ multiChoiceValue?: InputMaybe; /** Short text value */ shortTextValue?: InputMaybe; }; /** Default values and constraints for creating a request. */ export type RequestDefaults = { __typename?: "RequestDefaults"; /** Default duration in minutes */ defaultDurationInMinutes: Scalars["Int"]["output"]; /** Available duration options for the request */ durationOptions: Array; /** Maximum number of direct users allowed */ maxDirectUsersAllowed?: Maybe; /** Maximum allowed duration in minutes */ maxDurationInMinutes?: Maybe; /** Validation messages about the request */ messages: Array; /** Whether providing a reason is optional */ reasonOptional: Scalars["Boolean"]["output"]; /** Recommended duration in minutes */ recommendedDurationInMinutes?: Maybe; /** Whether the requester has admin privileges */ requesterIsAdmin: Scalars["Boolean"]["output"]; /** Whether a support ticket is required */ requireSupportTicket: Scalars["Boolean"]["output"]; }; /** Input for querying request defaults. */ export type RequestDefaultsInput = { /** Groups being requested */ requestedGroups: Array; /** Resources being requested */ requestedResources: Array; /** Target user ID */ targetUserId?: InputMaybe; }; /** Error indicating the request duration is too large. */ export type RequestDurationTooLargeError = Error & { __typename?: "RequestDurationTooLargeError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Request edge for Relay-style pagination. */ export type RequestEdge = Edge & { __typename?: "RequestEdge"; /** Pagination cursor */ cursor: Scalars["String"]["output"]; /** The request node */ node: Request; }; /** Error indicating a required field value is missing. */ export type RequestFieldValueMissingError = Error & { __typename?: "RequestFieldValueMissingError"; /** Name of the field */ fieldName: Scalars["String"]["output"]; /** Group IDs requiring the field */ groupIds?: Maybe>; /** Error message */ message: Scalars["String"]["output"]; /** ID of the request template */ requestTemplateID: Scalars["RequestTemplateId"]["output"]; /** Resource IDs requiring the field */ resourceIds?: Maybe>; }; /** Filters for querying requests. */ export type RequestFilters = { /** Filter by end date */ endDate?: InputMaybe; /** Search query string */ searchQuery?: InputMaybe; /** Show only pending requests */ showPendingOnly?: Scalars["Boolean"]["input"]; /** Filter by start date */ startDate?: InputMaybe; }; /** Input for querying a single request. */ export type RequestInput = { /** ID of the request */ id: Scalars["RequestId"]["input"]; }; /** Review stages for a single requested item. */ export type RequestItemStages = { __typename?: "RequestItemStages"; /** Access level being requested */ accessLevel: AccessLevel; /** The item being requested */ item?: Maybe; /** ID of the item */ itemId: Scalars["UUID"]["output"]; /** Name of the requested item */ requestedItemName: Scalars["String"]["output"]; /** Name of the requested role */ requestedRoleName?: Maybe; /** Review stages for this item */ stages: Array; }; /** A message providing information about a request validation issue. */ export type RequestMessage = { __typename?: "RequestMessage"; /** Specific code identifying the type of message */ code: RequestMessageCode; /** Entity ID associated with the message, if applicable */ entityId?: Maybe; /** Severity level of the message */ level: RequestMessageLevel; }; /** Specific codes for request validation messages. */ export declare enum RequestMessageCode { /** Entity cannot be requested */ EntityNotRequestable = "ENTITY_NOT_REQUESTABLE", /** Item has reached its capacity limit */ ItemAtCapacity = "ITEM_AT_CAPACITY", /** Linked group is not requestable */ LinkedGroupNotRequestable = "LINKED_GROUP_NOT_REQUESTABLE", /** Nested group access not allowed */ NestedGroupAccessNotAllowed = "NESTED_GROUP_ACCESS_NOT_ALLOWED", /** Request will reset existing access duration */ RequestResetsAccessDuration = "REQUEST_RESETS_ACCESS_DURATION", /** User authentication token required */ RequireUserAuthToken = "REQUIRE_USER_AUTH_TOKEN" } /** Severity level of a request message. */ export declare enum RequestMessageLevel { /** Error message */ Error = "ERROR", /** Informational message */ Info = "INFO", /** Warning message */ Warning = "WARNING" } /** Metrics about access requests (approved, canceled, denied). */ export type RequestMetricsResult = { __typename?: "RequestMetricsResult"; /** Time series data for approved requests. */ approvedLineData: Array; /** Time series data for canceled requests. */ canceledLineData: Array; /** Time series data for denied requests. */ deniedLineData: Array; /** Total number of approved requests. */ totalApproved: Scalars["Int"]["output"]; /** Total number of canceled requests. */ totalCanceled: Scalars["Int"]["output"]; /** Total number of denied requests. */ totalDenied: Scalars["Int"]["output"]; }; /** Error indicating the request was not found. */ export type RequestNotFoundError = Error & { __typename?: "RequestNotFoundError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Result or error for request query. */ export type RequestOutput = RequestNotFoundError | RequestResult; /** Error indicating the request reason is below minimum length. */ export type RequestReasonBelowMinLengthError = Error & { __typename?: "RequestReasonBelowMinLengthError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Error indicating the request reason is missing. */ export type RequestReasonMissingError = Error & { __typename?: "RequestReasonMissingError"; /** Group IDs requiring a reason */ groupIds?: Maybe>; /** Error message */ message: Scalars["String"]["output"]; /** Resource IDs requiring a reason */ resourceIds?: Maybe>; }; /** Filters for Relay-style request queries. */ export type RequestRelayFilters = { /** Filter by end date */ endDate?: InputMaybe; /** Filter by requester */ from?: InputMaybe; /** Filter by specific entities */ includedEntities?: InputMaybe>; /** Search query string */ searchQuery?: InputMaybe; /** Filter by start date */ startDate?: InputMaybe; /** Filter by status */ status?: InputMaybe; /** Filter by target user */ to?: InputMaybe; }; /** Error indicating a user authentication token is required for a connection. */ export type RequestRequiresUserAuthTokenForConnectionError = Error & { __typename?: "RequestRequiresUserAuthTokenForConnectionError"; /** The connection */ connection?: Maybe; /** ID of the connection */ connectionId: Scalars["ConnectionId"]["output"]; /** Error message */ message: Scalars["String"]["output"]; /** The user */ user?: Maybe; /** ID of the user */ userId: Scalars["UserId"]["output"]; }; /** Successful result of querying a request. */ export type RequestResult = { __typename?: "RequestResult"; /** The requested request */ request: Request; }; /** A reviewer assigned to review a request. */ export type RequestReviewer = { __typename?: "RequestReviewer"; /** Owner if the reviewer is an owner */ owner?: Maybe; /** Owner ID if the reviewer is an owner */ ownerId?: Maybe; /** Action taken by the reviewer */ reviewerAction?: Maybe; /** User if action was taken on behalf of another user */ reviewerActionOnBehalfOfUser?: Maybe; /** User ID if action was taken on behalf of another user */ reviewerActionOnBehalfOfUserId?: Maybe; /** Type of reviewer */ reviewerType: RequestApprovalType; /** User who is the reviewer */ user?: Maybe; /** User ID of the reviewer */ userId: Scalars["UserId"]["output"]; }; /** A delegation allowing another user to act as a reviewer on behalf of the delegator. */ export type RequestReviewerDelegation = { __typename?: "RequestReviewerDelegation"; /** When the delegation was created. */ createdAt: Scalars["Time"]["output"]; /** The delegate user entity. */ delegateUser: User; /** The user receiving the delegation. */ delegateUserId: Scalars["UserId"]["output"]; /** The delegator user entity. */ delegatorUser: User; /** The user delegating their reviewer responsibilities. */ delegatorUserId: Scalars["UserId"]["output"]; /** When the delegation ends. */ endTime: Scalars["Time"]["output"]; /** Unique identifier for the delegation. */ id: Scalars["RequestReviewerDelegationId"]["output"]; /** Reason for the delegation. */ reason: Scalars["String"]["output"]; /** When the delegation starts. */ startTime: Scalars["Time"]["output"]; /** When the delegation was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Connection for paginated request reviewer delegations. */ export type RequestReviewerDelegationConnection = PageConnection & { __typename?: "RequestReviewerDelegationConnection"; /** List of delegation edges. */ edges: Array; /** Pagination information. */ pageInfo: PageInfo; /** Total count of delegations. */ totalCount: Scalars["Int"]["output"]; }; /** Result of request reviewer delegation query edge. */ export type RequestReviewerDelegationEdge = Edge & { __typename?: "RequestReviewerDelegationEdge"; /** Cursor for pagination. */ cursor: Scalars["String"]["output"]; /** The delegation node. */ node: RequestReviewerDelegation; }; /** Filters for querying request reviewer delegations. */ export type RequestReviewerDelegationsFilter = { /** Filter delegations that start after this time. */ afterTime?: InputMaybe; /** Filter delegations that are active at this specific time. */ atTime?: InputMaybe; /** Filter delegations that end before this time. */ beforeTime?: InputMaybe; /** Search query to filter delegations by delegate name. */ searchQuery?: InputMaybe; }; /** Sorting options for request reviewer delegations. */ export type RequestReviewerDelegationsSortBy = { /** Sort direction. */ direction?: InputMaybe; /** Field to sort by. */ field?: InputMaybe; }; /** Field to sort request reviewer delegations by. */ export declare enum RequestReviewerDelegationsSortByField { /** Sort by delegation creation time. */ CreatedAt = "CREATED_AT", /** Sort by delegation end time. */ EndTime = "END_TIME", /** Sort by delegation start time. */ StartTime = "START_TIME" } /** Source from which a request was created. */ export declare enum RequestSource { /** Created via API */ Api = "API", /** Created via command-line interface */ Cli = "CLI", /** Created via Slack integration */ Slack = "SLACK", /** Created via web interface */ Web = "WEB" } /** A stage in the review process. */ export type RequestStage = { __typename?: "RequestStage"; /** Operator for combining reviewers in this stage */ operator: ReviewStageOperator; /** Reviewers in this stage */ reviewers: Array; /** Stage number */ stage: Scalars["Int"]["output"]; }; /** Status of an access request throughout its lifecycle. */ export declare enum RequestStatus { /** Request has been approved */ Approved = "APPROVED", /** Request has been canceled by the requester */ Canceled = "CANCELED", /** Request has been denied */ Denied = "DENIED", /** Request is awaiting approval */ Pending = "PENDING" } /** Counts of requests by status. */ export type RequestStatusCounts = { __typename?: "RequestStatusCounts"; /** Number of approved requests */ approved: Scalars["Int"]["output"]; /** Number of canceled requests */ canceled: Scalars["Int"]["output"]; /** Number of denied requests */ denied: Scalars["Int"]["output"]; /** Number of pending requests */ pending: Scalars["Int"]["output"]; }; /** Template for access requests, defining custom fields required for requests. */ export type RequestTemplate = { __typename?: "RequestTemplate"; /** Custom fields defined in this template. */ customFields?: Maybe>; /** Unique identifier for the request template. */ id: Scalars["RequestTemplateId"]["output"]; /** Whether the request template has been deleted. */ isDeleted?: Maybe; /** The name of the request template. */ name: Scalars["String"]["output"]; }; /** Custom field in a request template. */ export type RequestTemplateCustomField = { __typename?: "RequestTemplateCustomField"; /** Description of what this field is for. */ description?: Maybe; /** Unique identifier for the custom field. */ id: Scalars["RequestTemplateCustomFieldId"]["output"]; /** Additional metadata for the custom field. */ metadata?: Maybe; /** The name of the custom field. */ name: Scalars["String"]["output"]; /** Whether this field is required. */ required?: Maybe; /** The type of custom field. */ type: RequestTemplateCustomFieldType; }; /** Input for creating or updating a custom field. */ export type RequestTemplateCustomFieldInput = { /** Description of what this field is for. */ description?: InputMaybe; /** The custom field ID (for updates). */ id?: InputMaybe; /** Additional metadata for the custom field. */ metadata?: InputMaybe; /** The name of the custom field. */ name: Scalars["String"]["input"]; /** Whether this field is required. */ required?: InputMaybe; /** The type of custom field. */ type: RequestTemplateCustomFieldType; }; /** Metadata for a custom field. */ export type RequestTemplateCustomFieldMetadata = { __typename?: "RequestTemplateCustomFieldMetadata"; /** Data for multi-choice fields. */ multiChoiceData?: Maybe; }; /** Input for custom field metadata. */ export type RequestTemplateCustomFieldMetadataInput = { /** Data for multi-choice fields. */ multiChoiceData?: InputMaybe; }; /** Metadata for multi-choice custom fields. */ export type RequestTemplateCustomFieldMultiChoiceMetadata = { __typename?: "RequestTemplateCustomFieldMultiChoiceMetadata"; /** Available options for the multi-choice field. */ options?: Maybe>; }; /** Input for multi-choice field metadata. */ export type RequestTemplateCustomFieldMultiChoiceMetadataInput = { /** Available options for the multi-choice field. */ options?: InputMaybe>; }; /** Type of custom field in a request template. */ export declare enum RequestTemplateCustomFieldType { /** Boolean checkbox field. */ Boolean = "BOOLEAN", /** Long text field (multiple lines). */ LongText = "LONG_TEXT", /** Multiple choice dropdown field. */ MultiChoice = "MULTI_CHOICE", /** Short text field (single line). */ ShortText = "SHORT_TEXT" } /** Input for querying a single request template. */ export type RequestTemplateInput = { /** The request template ID to retrieve. */ id: Scalars["RequestTemplateId"]["input"]; }; /** Error indicating that a request template with this name already exists. */ export type RequestTemplateNameExistsError = Error & { __typename?: "RequestTemplateNameExistsError"; message: Scalars["String"]["output"]; }; /** Result of querying a single request template. */ export type RequestTemplateOutput = RequestTemplateResult; /** Successfully retrieved a request template. */ export type RequestTemplateResult = { __typename?: "RequestTemplateResult"; /** The request template (null if not found). */ requestTemplate?: Maybe; }; /** Result of querying request templates. */ export type RequestTemplatesOutput = RequestTemplatesResult; /** Successfully retrieved request templates. */ export type RequestTemplatesResult = { __typename?: "RequestTemplatesResult"; /** The list of request templates. */ requestTemplates: Array; }; /** Input for querying request templates with their custom fields. */ export type RequestTemplatesWithFieldsInput = { /** If true, fetch all request templates. */ fetchAll?: InputMaybe; /** Specific request template IDs to retrieve. */ ids?: InputMaybe>; }; /** Result of querying request templates with fields. */ export type RequestTemplatesWithFieldsOutput = RequestTemplatesWithFieldsResult; /** Successfully retrieved request templates with their fields. */ export type RequestTemplatesWithFieldsResult = { __typename?: "RequestTemplatesWithFieldsResult"; /** The list of request templates with custom fields. */ requestTemplates: Array; }; /** Direction of a request relative to the current user. */ export declare enum RequestType { /** Requests assigned to the user for review */ Incoming = "INCOMING", /** Requests created by the user */ Outgoing = "OUTGOING" } /** A group being requested with its access details. */ export type RequestedGroup = { __typename?: "RequestedGroup"; /** Access level being requested */ accessLevel: GroupAccessLevel; /** The group being requested */ group?: Maybe; /** ID of the group */ groupId: Scalars["GroupId"]["output"]; /** Propagation status of the access */ propagationStatus?: Maybe; /** Target user's current access to this group */ targetUserAccess?: Maybe; }; /** Input for requesting a group with a specific access level. */ export type RequestedGroupInput = { /** Access level to request */ accessLevel: GroupAccessLevelInput; /** ID of the group to request */ groupId: Scalars["GroupId"]["input"]; }; /** A resource being requested with its access details. */ export type RequestedResource = { __typename?: "RequestedResource"; /** Access level being requested */ accessLevel: ResourceAccessLevel; /** Propagation status of the access */ propagationStatus?: Maybe; /** The resource being requested */ resource?: Maybe; /** ID of the resource */ resourceId: Scalars["ResourceId"]["output"]; /** Target user's current access to this resource */ targetUserAccess?: Maybe; }; /** Input for requesting a resource with a specific access level. */ export type RequestedResourceInput = { /** Access level to request */ accessLevel: ResourceAccessLevelInput; /** ID of the resource to request */ resourceId: Scalars["ResourceId"]["input"]; }; /** Input for querying multiple requests. */ export type RequestsInput = { /** Pagination cursor */ cursor?: InputMaybe; /** Filter criteria */ filters?: RequestFilters; /** Maximum number of entries to return */ maxNumEntries?: InputMaybe; /** Type of requests to retrieve */ requestType?: InputMaybe; /** Sort order */ sortBy?: RequestsSortBy; }; /** Result for requests query. */ export type RequestsOutput = RequestsResult; /** Input for Relay-style request queries. */ export type RequestsRelayInput = { /** Cursor to start returning items after */ after?: InputMaybe; /** Cursor to start returning items before */ before?: InputMaybe; /** Filter criteria */ filters?: RequestRelayFilters; /** Number of items to return from the beginning */ first?: InputMaybe; /** Number of items to return from the end */ last?: InputMaybe; /** Sort order */ sortBy?: RequestsSortBy; }; /** Successful result of querying requests. */ export type RequestsResult = { __typename?: "RequestsResult"; /** Pagination cursor */ cursor?: Maybe; /** Type of requests returned */ requestType?: Maybe; /** List of requests */ requests: Array; }; /** Sort order for requests. */ export type RequestsSortBy = { /** Sort direction */ direction?: InputMaybe; /** Field to sort by */ field?: InputMaybe; }; /** Fields to sort requests by. */ export declare enum RequestsSortByField { /** Sort by creation timestamp */ CreatedAt = "CREATED_AT", /** Sort by access duration */ Duration = "DURATION", /** Sort by request status */ Status = "STATUS", /** Sort by target user or group */ Target = "TARGET", /** Sort by last update timestamp */ UpdatedAt = "UPDATED_AT" } /** Error occurred while requeuing messages. */ export type RequeueEventStreamMessagesError = Error & { __typename?: "RequeueEventStreamMessagesError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Input for requeuing failed event stream messages. */ export type RequeueEventStreamMessagesInput = { /** ID of the connection. */ connectionId: Scalars["PubsubPublishConnectionId"]["input"]; /** IDs of messages to requeue. */ messageIds: Array; }; /** Output for requeuing event stream messages. */ export type RequeueEventStreamMessagesOutput = RequeueEventStreamMessagesError | RequeueEventStreamMessagesResult; /** Result of requeuing messages. */ export type RequeueEventStreamMessagesResult = { __typename?: "RequeueEventStreamMessagesResult"; /** Whether requeuing was successful. */ success: Scalars["Boolean"]["output"]; }; /** Output indicating success or failure of rescoring an entity. */ export type RescoreEntityOutput = { __typename?: "RescoreEntityOutput"; /** Whether the operation succeeded */ success: Scalars["Boolean"]["output"]; }; /** Output type for rescoreRecommendations mutation. */ export type RescoreRecommendationsOutput = RescoreRecommendationsResult; /** Result of rescoring recommendations operation. */ export type RescoreRecommendationsResult = { __typename?: "RescoreRecommendationsResult"; /** Whether the rescoring was successful. */ success: Scalars["Boolean"]["output"]; }; /** Error returned when Auth0 MFA reset fails. */ export type ResetAuth0MfaError = Error & { __typename?: "ResetAuth0MFAError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Output type for resetDataseed mutation. */ export type ResetDataseedOutput = ResetDataseedResult; /** Result of resetting dataseed operation. */ export type ResetDataseedResult = { __typename?: "ResetDataseedResult"; /** Whether the reset was successful. */ success: Scalars["Boolean"]["output"]; }; /** Output type for resetRemediations mutation. */ export type ResetRemediationsOutput = ResetRemediationsResult; /** Result of resetting remediations operation. */ export type ResetRemediationsResult = { __typename?: "ResetRemediationsResult"; /** Whether the reset was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for resetting a user's MFA configuration. */ export type ResetUserMfaInput = { /** ID of the user whose MFA should be reset. */ id: Scalars["UserId"]["input"]; }; /** Result of resetting a user's MFA. */ export type ResetUserMfaOutput = ResetAuth0MfaError | ResetUserMfaResult | SystemUserIsImmutableError | UserNotFoundError; /** Successful result of MFA reset. */ export type ResetUserMfaResult = { __typename?: "ResetUserMFAResult"; /** Whether the MFA reset was successful. */ ok: Scalars["Boolean"]["output"]; }; /** A resource in the Opal system. */ export type Resource = AccessEntity & AccessQueryEngineEntity & AccessibleItem & AppEntity & BaseEntity & CatalogEntity & DisplayableEntity & ManagedEntity & Node & Principal & RoleAssignmentEntity & RolePermissionTargetEntity & { __typename?: "Resource"; /** Access levels available for this resource */ accessLevels?: Maybe>; /** Access statistics for the resource */ accessStats?: Maybe; /** Admin owner for the resource */ adminOwner?: Maybe; /** Admin owner ID for the resource */ adminOwnerId: Scalars["OwnerId"]["output"]; /** Permissions allowed on this resource */ allowedPermissions: Array; /** Path from root to this resource through parent hierarchy */ ancestorPathToResource?: Maybe; /** Retrieves items associated with this resource using Relay-style pagination. */ associatedItems: AssociatedItemConnection; /** Audit message channels for the resource */ auditMessageChannels?: Maybe>; /** Whether this resource can have usage data */ canHaveUsageData: Scalars["Boolean"]["output"]; /** Child resources of this resource */ childResources?: Maybe>; /** Common metadata for the resource */ commonMetadata: CommonMetadata; /** Configuration template, if this resource is a template */ configTemplate?: Maybe; /** The connection this resource belongs to */ connection?: Maybe; /** Connection ID this resource belongs to */ connectionId: Scalars["ConnectionId"]["output"]; /** Groups that contain this resource */ containingGroups: Array; /** Timestamp when the resource was created */ createdAt: Scalars["Time"]["output"]; /** Current user's access to this resource */ currentUserAccess: CurrentUserResourceAccess; /** Custom notification message for requests */ customRequestNotification?: Maybe; /** Description of the resource */ description: Scalars["String"]["output"]; /** Display name for the resource */ displayName: Scalars["String"]["output"]; /** Entity assignments where this resource is the principal */ entityAssignmentsForPrincipal: Array; /** Whether this resource has visible children */ hasVisibleChildren: Scalars["Boolean"]["output"]; /** Health status of the resource */ healthStatus?: Maybe; /** URL to resource icon */ iconUrl?: Maybe; /** Unique identifier */ id: Scalars["UUID"]["output"]; /** URL to resource icon or logo */ imageUrl?: Maybe; /** Whether the resource has been deleted */ isDeleted: Scalars["Boolean"]["output"]; /** Whether the resource is hidden from the catalog */ isHiddenFromCatalog: Scalars["Boolean"]["output"]; /** Whether the resource is managed by Opal */ isManaged: Scalars["Boolean"]["output"]; /** Whether this resource can be requested */ isRequestable: Scalars["Boolean"]["output"]; /** Maximum number of direct users allowed */ maxDirectUsersAllowed?: Maybe; /** Message shown when max users is exceeded */ maxUsersExceededMessage?: Maybe; /** Resource-specific metadata */ metadata?: Maybe; /** Name of the resource */ name: Scalars["String"]["output"]; /** * Deprecated: does not include non-visible resources * @deprecated do not use, it doesn't include non-visible resources */ numChildResources: Scalars["Int"]["output"]; /** * Deprecated: replaced by totalResourceCount * @deprecated do not use, replaced by totalResourceCount */ numDescendantResources: Scalars["Int"]["output"]; /** Count of entity assignments where this resource is the principal */ numEntityAssignmentsForPrincipal: Scalars["Int"]["output"]; /** * Deprecated: Use totalUserAccessCount instead * @deprecated Use totalUserAccessCount instead. */ numResourceUsers: Scalars["Int"]["output"]; /** * Deprecated: Use adminOwner instead * @deprecated Use adminOwner instead. */ ownerTeam?: Maybe; /** Retrieves users with access to this resource with pagination support. */ paginatedResourceUsers: PaginatedResourceUsersOutput; /** Parent resource, if this is a child resource */ parentResource?: Maybe; /** Parent resource ID, if this is a child resource */ parentResourceId?: Maybe; /** Sources of permissions for this resource */ permissionSources: PermissionSourceConnection; /** Principal assignments where this resource is the entity */ principalAssignmentsForEntity: Array; /** Remote ID in the source system */ remoteId: Scalars["RemoteResourceId"]["output"]; /** Remote name of the resource in the source system */ remoteName: Scalars["String"]["output"]; /** Request configurations for this resource */ requestConfigs: Array; /** Whether MFA is required to approve requests for this resource */ requireMfaToApprove: Scalars["Boolean"]["output"]; /** Whether MFA is required to connect to this resource */ requireMfaToConnect: Scalars["Boolean"]["output"]; /** Type of this resource */ resourceType: ResourceType; /** * Deprecated: Use paginatedResourceUsers instead * @deprecated Use paginatedResourceUsers instead. */ resourceUsers: Array; /** Risk score for this resource */ riskScore?: Maybe; /** Risk sensitivity configuration */ riskSensitivity?: Maybe; /** * The role permissions assigned to this resource. It will only be available if * ResourceType is OPAL_SCOPED_ROLE or OPAL_ROLE (simulated as scoped role) * * Params: * for: will allow you to get scoped role permissions for a specific entity, * this is helpful if you want to simulate "what permissions do I get on this * entity?" */ scopedRolePermissions: Array; /** Tags applied to this resource */ tags: Array; /** Ticket propagation settings */ ticketPropagation?: Maybe; /** Total number of groups with access */ totalGroupAccessCount: Scalars["Int"]["output"]; /** Total number of non-human identities with access */ totalNHIAccessCount: Scalars["Int"]["output"]; /** Total number of associated resources */ totalResourceCount: Scalars["Int"]["output"]; /** Total number of users with access (direct and indirect) */ totalUserAccessCount: Scalars["Int"]["output"]; /** Timestamp when the resource was last updated */ updatedAt: Scalars["Time"]["output"]; /** Visibility setting for the resource */ visibility: Visibility; /** Groups that can see this resource */ visibilityGroups: Array; }; /** A resource in the Opal system. */ export type ResourceAccessLevelsArgs = { filters?: InputMaybe; }; /** A resource in the Opal system. */ export type ResourceAccessStatsArgs = { for?: InputMaybe; }; /** A resource in the Opal system. */ export type ResourceAssociatedItemsArgs = { after?: InputMaybe; before?: InputMaybe; filters?: InputMaybe; first?: InputMaybe; last?: InputMaybe; sortBy?: InputMaybe; }; /** A resource in the Opal system. */ export type ResourcePaginatedResourceUsersArgs = { input?: InputMaybe; }; /** A resource in the Opal system. */ export type ResourcePermissionSourcesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; /** Error returned when attempting to modify a resource access that has already been reviewed. */ export type ResourceAccessAlreadyReviewedError = Error & { __typename?: "ResourceAccessAlreadyReviewedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** An access level for a resource (e.g., a role or permission). */ export type ResourceAccessLevel = IAccessLevel & { __typename?: "ResourceAccessLevel"; /** Additional metadata about the access level. */ accessLevelMetadata?: Maybe; /** The name of the access level. */ accessLevelName: Scalars["AccessLevelName"]["output"]; /** The remote ID of the access level. */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["output"]; /** Whether or not the access level is requestable by users */ isRequestable?: Maybe; /** the custom access level associated with this access level, if any. */ resourceCustomAccessLevel?: Maybe; /** The resource ID this access level applies to. */ resourceId: Scalars["ResourceId"]["output"]; }; /** Input for specifying a resource access level. */ export type ResourceAccessLevelInput = { /** The name of the access level. */ accessLevelName: Scalars["AccessLevelName"]["input"]; /** The remote ID of the access level. */ accessLevelRemoteId: Scalars["AccessLevelRemoteId"]["input"]; }; /** Input for querying access levels for a resource. */ export type ResourceAccessLevelsInput = { /** If true, only return access levels for the current user. */ onlyMine?: InputMaybe; /** When set, only return access levels requestable for this user. */ onlyRequestableTargetUser?: InputMaybe; /** The resource ID to get access levels for. */ resourceId: Scalars["ResourceId"]["input"]; /** If true, skip custom access levels. */ skipCustomAccessLevels?: InputMaybe; }; /** Result of querying resource access levels. */ export type ResourceAccessLevelsOutput = ResourceAccessLevelsResult | ResourceNotFoundError; /** Successfully retrieved resource access levels. */ export type ResourceAccessLevelsResult = { __typename?: "ResourceAccessLevelsResult"; /** The list of access levels for the resource. */ accessLevels: Array; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; }; /** Access statistics for a specific resource. */ export type ResourceAccessStats = AccessStats & { __typename?: "ResourceAccessStats"; /** Number of users with the same manager who have access to this resource. */ managerAccessCount?: Maybe; /** ID of the resource these statistics apply to. */ resourceId: Scalars["ResourceId"]["output"]; /** Number of users on the same team who have access to this resource. */ teamAccessCount?: Maybe; /** Number of users with the same title who have access to this resource. */ titleAccessCount?: Maybe; /** Total number of users who have access to this resource. */ totalAccessCount?: Maybe; }; /** Edge representing an associated item for a resource. */ export type ResourceAssociatedItemEdge = AssociatedItemEdge & Edge & { __typename?: "ResourceAssociatedItemEdge"; /** Alias name for the item */ alias?: Maybe; /** Pagination cursor */ cursor: Scalars["String"]["output"]; /** Whether the item is hidden from end users */ hiddenFromEndUser?: Maybe; /** ID of IDP group mapping (for app resources only) */ idpGroupMappingId?: Maybe; /** The associated item */ node: AccessibleItem; }; /** A custom access level for a resource, allowing for fine-grained permission control beyond standard access levels. */ export type ResourceCustomAccessLevel = { __typename?: "ResourceCustomAccessLevel"; /** The access level details. */ accessLevel: ResourceAccessLevel; /** Unique identifier for the custom access level. */ id: Scalars["ResourceCustomAccessLevelId"]["output"]; /** The policy defining the custom access level (e.g., IAM policy document). */ policy?: Maybe; /** Priority of this custom access level (lower numbers have higher priority). */ priority?: Maybe; /** Whether the access level is requestable for the default request configuration. */ requestableByDefault: Scalars["Boolean"]["output"]; /** The resource ID this custom access level applies to. */ resourceId: Scalars["ResourceId"]["output"]; /** When this custom access level was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating that a custom access level with this name already exists. */ export type ResourceCustomAccessLevelAlreadyExistsError = Error & { __typename?: "ResourceCustomAccessLevelAlreadyExistsError"; message: Scalars["String"]["output"]; }; /** Input for querying a single custom access level. */ export type ResourceCustomAccessLevelInput = { /** The custom access level ID to retrieve. */ id: Scalars["ResourceCustomAccessLevelId"]["input"]; }; /** Error indicating that the custom access level was not found. */ export type ResourceCustomAccessLevelNotFoundError = Error & { __typename?: "ResourceCustomAccessLevelNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of querying a custom access level. */ export type ResourceCustomAccessLevelOutput = ResourceCustomAccessLevelNotFoundError | ResourceCustomAccessLevelResult; /** Error indicating that the custom access level priority is invalid. */ export type ResourceCustomAccessLevelPriorityError = Error & { __typename?: "ResourceCustomAccessLevelPriorityError"; message: Scalars["String"]["output"]; }; /** Successfully retrieved a custom access level. */ export type ResourceCustomAccessLevelResult = { __typename?: "ResourceCustomAccessLevelResult"; /** The custom access level. */ resourceCustomAccessLevel: ResourceCustomAccessLevel; }; /** Input for querying custom access levels for a resource. */ export type ResourceCustomAccessLevelsInput = { /** The resource ID to get custom access levels for. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Result of querying custom access levels. */ export type ResourceCustomAccessLevelsOutput = ResourceCustomAccessLevelsResult; /** Successfully retrieved custom access levels. */ export type ResourceCustomAccessLevelsResult = { __typename?: "ResourceCustomAccessLevelsResult"; /** The list of custom access levels for the resource. */ resourceCustomAccessLevels: Array; }; /** Input for querying a single resource. */ export type ResourceInput = { /** ID of the resource */ id?: InputMaybe; }; /** Error indicating resource max duration is too large. */ export type ResourceMaxDurationTooLargeError = Error & { __typename?: "ResourceMaxDurationTooLargeError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Union of different resource metadata types. */ export type ResourceMetadata = AwsRoleMetadata | OktaDirectoryAppMetadata | OktaRoleMetadata | PropagationTicketOwnerMetadata; /** Error indicating the resource was not found. */ export type ResourceNotFoundError = Error & { __typename?: "ResourceNotFoundError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Result or error for resource query. */ export type ResourceOutput = ResourceNotFoundError | ResourceResult; /** Preview information for a resource including user counts, NHI counts, and review stats. */ export type ResourcePreview = Node & { __typename?: "ResourcePreview"; /** Total number of groups with access to this resource. */ groupResourceCount: Scalars["Int"]["output"]; /** Unique identifier for the resource preview. */ id: Scalars["UUID"]["output"]; /** The resource being previewed. */ resource: Resource; /** Total number of resource-to-resource assignments (NHIs). */ resourceToResourceAssignmentCount: Scalars["Int"]["output"]; /** Total number of users with access to this resource. */ resourceUserCount: Scalars["Int"]["output"]; /** Number of reviews associated with this resource. */ reviewCount: Scalars["Int"]["output"]; /** Truncated list of groups with access to this resource. */ truncatedGroupResources: Array; /** Truncated list of resource-to-resource role assignments. */ truncatedResourceToResourceAssignments: Array; /** Truncated list of users with access to this resource. */ truncatedResourceUsers: Array; }; /** Paginated connection type for resource previews. */ export type ResourcePreviewConnection = PageConnection & { __typename?: "ResourcePreviewConnection"; /** List of resource preview edges. */ edges: Array; /** Count of resources after filtering. */ filteredCount: Scalars["Int"]["output"]; /** Pagination information. */ pageInfo: PageInfo; /** Total count of all resource previews. */ totalCount: Scalars["Int"]["output"]; /** Total count of all reviews across resources. */ totalReviewCount: Scalars["Int"]["output"]; }; /** Edge type for resource preview pagination. */ export type ResourcePreviewEdge = Edge & { __typename?: "ResourcePreviewEdge"; /** Cursor for pagination. */ cursor: Scalars["String"]["output"]; /** The resource preview node. */ node: ResourcePreview; }; /** Filters for fetching resource previews. */ export type ResourcePreviewFilters = { /** Filters to apply to the resource list. */ filters?: FiltersInput; /** Whether to hide resources with no users or NHIs. */ hideEmpty?: InputMaybe; }; /** A proposal to create a new resource. */ export type ResourceProposal = { __typename?: "ResourceProposal"; /** Admin owner ID for the proposed resource */ adminOwnerId: Scalars["OwnerId"]["output"]; /** Connection ID where the resource will be created */ connectionId: Scalars["ConnectionId"]["output"]; /** Unique identifier for the proposal */ id: Scalars["ResourceProposalId"]["output"]; /** Metadata about the proposed resource */ metadata?: Maybe; /** Type of resource being proposed */ resourceType: ResourceType; }; /** Metadata for a proposed resource. */ export type ResourceProposalMetadata = AwsRoleProposalMetadata; /** Metadata for proposing a new resource. */ export type ResourceProposalMetadataInput = { /** AWS role proposal metadata, if applicable */ awsRole?: InputMaybe; }; /** Output pairing a resource with its request configuration. */ export type ResourceRequestConfigurationOutput = { __typename?: "ResourceRequestConfigurationOutput"; /** The access level remote ID. */ accessLevelRemoteId?: Maybe; /** The active request configuration for this resource. */ requestConfiguration: RequestConfiguration; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; }; /** Input for querying request status counts for a resource. */ export type ResourceRequestStatusCountsInput = { /** ID of the resource */ resourceId: Scalars["ResourceId"]["input"]; /** User ID to filter by */ userId?: InputMaybe; }; /** Result or error for resource request status counts query. */ export type ResourceRequestStatusCountsOutput = ResourceNotFoundError | ResourceRequestStatusCountsResult; /** Successful result for resource request status counts. */ export type ResourceRequestStatusCountsResult = { __typename?: "ResourceRequestStatusCountsResult"; /** Request status counts for the resource */ requestStatusCounts: RequestStatusCounts; }; /** Successful result of querying a resource. */ export type ResourceResult = { __typename?: "ResourceResult"; /** The requested resource */ resource: Resource; }; /** Minimal resource information. */ export type ResourceSmall = { __typename?: "ResourceSmall"; /** Resource ID */ id: Scalars["ResourceId"]["output"]; /** Resource name */ name: Scalars["String"]["output"]; }; /** A suggestion for a resource. */ export type ResourceSuggestion = { __typename?: "ResourceSuggestion"; /** The resource name. */ name: Scalars["String"]["output"]; /** * The parent resource name. * @deprecated Use resource.parentResource instead */ parentResourceName?: Maybe; /** The resource entity. */ resource?: Maybe; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; /** * The resource type. * @deprecated Use resource.resourceType instead */ resourceType: ResourceType; }; /** Association between a resource and a tag. */ export type ResourceTag = { __typename?: "ResourceTag"; /** When the resource tag was created. */ createdAt: Scalars["Time"]["output"]; /** The user ID who created this resource tag. */ creatorUserId: Scalars["UserId"]["output"]; /** Unique identifier for the resource tag. */ id: Scalars["ResourceTagId"]["output"]; /** The resource entity. */ resource?: Maybe; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; /** The source system type. */ source: ServiceType; /** The tag entity. */ tag?: Maybe; /** The tag ID. */ tagId: Scalars["TagId"]["output"]; /** When the resource tag was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Error indicating that a tag with this key already exists for the resource. */ export type ResourceTagKeyExistsError = Error & { __typename?: "ResourceTagKeyExistsError"; message: Scalars["String"]["output"]; }; /** Error indicating that the resource tag was not found. */ export type ResourceTagNotFoundError = Error & { __typename?: "ResourceTagNotFoundError"; message: Scalars["String"]["output"]; }; /** Input for querying resource tags. */ export type ResourceTagsInput = { /** The resource ID to get tags for. */ resourceId?: InputMaybe; }; /** Result of querying resource tags. */ export type ResourceTagsOutput = ResourceTagsResult; /** Successfully retrieved resource tags. */ export type ResourceTagsResult = { __typename?: "ResourceTagsResult"; /** The list of resource tags. */ resourceTags: Array; }; /** Types of resources that can be managed in Opal. */ export declare enum ResourceType { /** Anthropic Workspace */ AnthropicWorkspace = "ANTHROPIC_WORKSPACE", /** AWS Account */ AwsAccount = "AWS_ACCOUNT", /** AWS EC2 Instance */ AwsEc2Instance = "AWS_EC2_INSTANCE", /** AWS EKS Cluster */ AwsEksCluster = "AWS_EKS_CLUSTER", /** AWS IAM Role */ AwsIamRole = "AWS_IAM_ROLE", /** AWS Organizational Unit */ AwsOrganizationalUnit = "AWS_ORGANIZATIONAL_UNIT", /** AWS RDS MySQL Cluster */ AwsRdsMysqlCluster = "AWS_RDS_MYSQL_CLUSTER", /** AWS RDS MySQL Instance */ AwsRdsMysqlInstance = "AWS_RDS_MYSQL_INSTANCE", /** AWS RDS PostgreSQL Cluster */ AwsRdsPostgresCluster = "AWS_RDS_POSTGRES_CLUSTER", /** AWS RDS PostgreSQL Instance */ AwsRdsPostgresInstance = "AWS_RDS_POSTGRES_INSTANCE", /** AWS SSO Permission Set */ AwsSsoPermissionSet = "AWS_SSO_PERMISSION_SET", /** Azure Enterprise App */ AzureEnterpriseApp = "AZURE_ENTERPRISE_APP", /** Azure Entra ID Role */ AzureEntraIdRole = "AZURE_ENTRA_ID_ROLE", /** Azure Management Group */ AzureManagementGroup = "AZURE_MANAGEMENT_GROUP", /** Azure Resource Group */ AzureResourceGroup = "AZURE_RESOURCE_GROUP", /** Azure SQL Database */ AzureSqlDatabase = "AZURE_SQL_DATABASE", /** Azure SQL Managed Database */ AzureSqlManagedDatabase = "AZURE_SQL_MANAGED_DATABASE", /** Azure SQL Managed Instance */ AzureSqlManagedInstance = "AZURE_SQL_MANAGED_INSTANCE", /** Azure SQL Server */ AzureSqlServer = "AZURE_SQL_SERVER", /** Azure Storage Account */ AzureStorageAccount = "AZURE_STORAGE_ACCOUNT", /** Azure Storage Container */ AzureStorageContainer = "AZURE_STORAGE_CONTAINER", /** Azure Subscription */ AzureSubscription = "AZURE_SUBSCRIPTION", /** Azure User Assigned Managed Identity */ AzureUserAssignedManagedIdentity = "AZURE_USER_ASSIGNED_MANAGED_Identity", /** Azure Virtual Machine */ AzureVirtualMachine = "AZURE_VIRTUAL_MACHINE", /** Coupa Role */ CoupaRole = "COUPA_ROLE", /** Cursor Organization */ CursorOrganization = "CURSOR_ORGANIZATION", /** Custom Resource */ Custom = "CUSTOM", /** Custom Connector Resource */ CustomConnector = "CUSTOM_CONNECTOR", /** Databricks Account Service Principal */ DatabricksAccountServicePrincipal = "DATABRICKS_ACCOUNT_SERVICE_PRINCIPAL", /** DataStax Astra Role */ DatastaxAstraRole = "DATASTAX_ASTRA_ROLE", DevinOrganization = "DEVIN_ORGANIZATION", DevinRole = "DEVIN_ROLE", /** GCP BigQuery Dataset */ GcpBigQueryDataset = "GCP_BIG_QUERY_DATASET", /** GCP BigQuery Table */ GcpBigQueryTable = "GCP_BIG_QUERY_TABLE", /** GCP Storage Bucket */ GcpBucket = "GCP_BUCKET", /** GCP Cloud SQL MySQL Instance */ GcpCloudSqlMysqlInstance = "GCP_CLOUD_SQL_MYSQL_INSTANCE", /** GCP Cloud SQL PostgreSQL Instance */ GcpCloudSqlPostgresInstance = "GCP_CLOUD_SQL_POSTGRES_INSTANCE", /** GCP Compute Instance */ GcpComputeInstance = "GCP_COMPUTE_INSTANCE", /** GCP Folder */ GcpFolder = "GCP_FOLDER", /** GCP GKE Cluster (Deprecated, use GOOGLE_GROUPS_GKE_GROUP instead) */ GcpGkeCluster = "GCP_GKE_CLUSTER", /** GCP Organization */ GcpOrganization = "GCP_ORGANIZATION", /** GCP Project */ GcpProject = "GCP_PROJECT", /** GCP Service Account */ GcpServiceAccount = "GCP_SERVICE_ACCOUNT", /** GitHub Organization */ GitHubOrg = "GIT_HUB_ORG", /** GitHub Organization Role */ GitHubOrgRole = "GIT_HUB_ORG_ROLE", /** GitHub Repository */ GitHubRepo = "GIT_HUB_REPO", /** GitLab Project */ GitLabProject = "GIT_LAB_PROJECT", /** Google Workspace Role */ GoogleWorkspaceRole = "GOOGLE_WORKSPACE_ROLE", /** iLevel Advanced Role */ IlevelAdvancedRole = "ILEVEL_ADVANCED_ROLE", /** MariaDB Instance */ MariadbInstance = "MARIADB_INSTANCE", /** MongoDB Atlas Instance */ MongoAtlasInstance = "MONGO_ATLAS_INSTANCE", /** MongoDB Instance */ MongoInstance = "MONGO_INSTANCE", /** MySQL Instance */ MysqlInstance = "MYSQL_INSTANCE", /** Okta Application */ OktaApp = "OKTA_APP", /** Okta Role */ OktaRole = "OKTA_ROLE", /** Opal Role */ OpalRole = "OPAL_ROLE", /** Opal Scoped Role */ OpalScopedRole = "OPAL_SCOPED_ROLE", /** OpenAI Platform Project */ OpenaiPlatformProject = "OPENAI_PLATFORM_PROJECT", /** OpenAI Platform Service Account */ OpenaiPlatformServiceAccount = "OPENAI_PLATFORM_SERVICE_ACCOUNT", /** Oracle Fusion Role */ OracleFusionRole = "ORACLE_FUSION_ROLE", /** PagerDuty Role */ PagerdutyRole = "PAGERDUTY_ROLE", /** PostgreSQL Instance */ PostgresInstance = "POSTGRES_INSTANCE", /** Salesforce Permission Set */ SalesforcePermissionSet = "SALESFORCE_PERMISSION_SET", /** Salesforce Profile */ SalesforceProfile = "SALESFORCE_PROFILE", /** Salesforce Role */ SalesforceRole = "SALESFORCE_ROLE", /** Snowflake Database */ SnowflakeDatabase = "SNOWFLAKE_DATABASE", /** Snowflake Schema */ SnowflakeSchema = "SNOWFLAKE_SCHEMA", /** Snowflake Table */ SnowflakeTable = "SNOWFLAKE_TABLE", /** Tailscale SSH */ TailscaleSsh = "TAILSCALE_SSH", /** Teleport Role */ TeleportRole = "TELEPORT_ROLE", VaultOidcRole = "VAULT_OIDC_ROLE", VaultPolicy = "VAULT_POLICY", VaultSecret = "VAULT_SECRET", /** Workday Role */ WorkdayRole = "WORKDAY_ROLE" } /** A resource type with the count of resources of that type. */ export type ResourceTypeWithCount = { __typename?: "ResourceTypeWithCount"; /** The connection entity. */ connection?: Maybe; /** The connection ID. */ connectionId?: Maybe; /** Number of resources of this type. */ numResources: Scalars["Int"]["output"]; /** The resource type. */ resourceType: ResourceType; }; /** Input for filtering by resource types. */ export type ResourceTypesFilterInput = { /** List of resource types to filter by. */ resourceTypes: Array; }; /** Input for querying resource types with counts. */ export type ResourceTypesWithCountsInput = { /** Filter by connection IDs. */ connectionIds?: InputMaybe>; /** Filter by parent resource ID. */ parentResourceId?: InputMaybe; /** Search query to filter resource types. */ query?: InputMaybe; }; /** Result of querying resource types with counts. */ export type ResourceTypesWithCountsOutput = ResourceTypesWithCountsResult; /** Successfully retrieved resource types with counts. */ export type ResourceTypesWithCountsResult = { __typename?: "ResourceTypesWithCountsResult"; /** List of resource types with their counts. */ resourceTypesWithCounts: Array; }; /** Input for querying resource usage. */ export type ResourceUsageInput = { /** The resource ID to get usage logs for. */ id: Scalars["ResourceId"]["input"]; }; /** Log entry for resource usage by a user. */ export type ResourceUsageLog = { __typename?: "ResourceUsageLog"; /** Additional details about the usage. */ details?: Maybe; /** When the usage ended (if applicable). */ endDate?: Maybe; /** Unique identifier for the usage log entry. */ id: Scalars["String"]["output"]; /** Name associated with the usage. */ name?: Maybe; /** When the usage started. */ startDate: Scalars["Time"]["output"]; /** The user who accessed the resource. */ user?: Maybe; }; /** Result of querying resource usage. */ export type ResourceUsageOutput = ResourceNotFoundError | ResourceUsageResult | UserFacingError; /** Successfully retrieved resource usage. */ export type ResourceUsageResult = { __typename?: "ResourceUsageResult"; /** List of usage log entries for the resource. */ usageLogs?: Maybe>; }; /** Association between a user and a resource, representing access to a specific resource at a specific access level. */ export type ResourceUser = { __typename?: "ResourceUser"; /** Detailed access information for this resource user. */ access?: Maybe; /** The access level granted to the user. */ accessLevel: ResourceAccessLevel; /** Statistics about access usage. */ accessStats?: Maybe; /** Configuration for whether and how this access can be extended. */ extendability: RequestConfiguration; /** Unique identifier for the resource user. */ id: Scalars["UUID"]["output"]; /** When the most recent session ended (if applicable). */ mostRecentSessionEnded?: Maybe; /** Propagation status for pushing this access to the remote system. */ propagationStatus?: Maybe; /** The resource entity. */ resource?: Maybe; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; /** The source of this resource user (regular or inherited). */ source: ResourceUserSource; /** The user entity. */ user?: Maybe; /** The user ID. */ userId: Scalars["UserId"]["output"]; }; /** Detailed information about a user's access to a resource and access level. */ export type ResourceUserAccess = { __typename?: "ResourceUserAccess"; /** The access level. */ accessLevel: ResourceAccessLevel; /** * Describes attributes of userId's direct access to resourceId. If unset, this user does not have * direct access to the resource. */ directAccessPoint?: Maybe; /** * Each item in this list describes one indirect path (via groups) by which userId has access * to resourceId. Each GroupUserAccess describes a group that has direct access to this resource, * and that this user has either direct or indirect access to. * If empty, this user does not have indirect access to the resource. */ groupUserAccesses: Array; /** * Describes attributes of userId's inherited access to resourceId. If empty, this user does not have * inherited access to the resource. */ inheritedAccessPoints: Array; /** * Describes attributes of userId's access to resourceId for the path with the latest expiration. * This access might be direct or indirect. */ latestExpiringAccessPoint: ResourceUserAccessPoint; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; /** The user ID. */ userId: Scalars["UserId"]["output"]; }; /** Details about a specific access point for a user to a resource. */ export type ResourceUserAccessPoint = { __typename?: "ResourceUserAccessPoint"; /** The access level. */ accessLevel: ResourceAccessLevel; /** When this access point was created. */ createdAt?: Maybe; /** Event ID associated with this access point (if applicable). */ eventId?: Maybe; /** When this access expires (if applicable). */ expiration?: Maybe; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; /** The resource name. */ resourceName: Scalars["String"]["output"]; /** The resource type. */ resourceType: ResourceType; /** The source of this resource user access. */ source?: Maybe; /** Support ticket entity. */ supportTicket?: Maybe; /** Support ticket ID associated with this access (if applicable). */ supportTicketId?: Maybe; /** The user ID. */ userId: Scalars["UserId"]["output"]; }; /** Error indicating that the resource user already exists. */ export type ResourceUserAlreadyExists = Error & { __typename?: "ResourceUserAlreadyExists"; message: Scalars["String"]["output"]; }; /** * Filters for resource users. * ResourceUserFiltersInput is used to filter paginatedResourceUsers and paginatedUserResources. * Not all fields are used in each query, see each field for details. */ export type ResourceUserFiltersInput = { /** Filter by access level remote IDs */ accessLevelRemoteIds?: InputMaybe>; /** Return only users with at least one direct access */ directAccessOnly?: InputMaybe; /** Return only users with at least one managed resource access */ isManagedOnly?: InputMaybe; /** Return only users who have never used the resource */ neverUsedOnly?: InputMaybe; /** Return only users with at least one permanent access */ permanentAccessOnly?: InputMaybe; /** Filter by propagation statuses */ propagationStatuses?: InputMaybe>; /** Filter by resource IDs (ignored in paginatedResourceUsers query) */ resourceIds?: InputMaybe>; /** Filter by resource name (ignored in paginatedResourceUsers query) */ resourceName?: InputMaybe; /** Filter by resource types (ignored in paginatedResourceUsers query) */ resourceTypes?: InputMaybe>; /** Search across multiple fields (userFullName, userEmail, resourceName, etc.) */ searchQuery?: InputMaybe; /** Filter by user full name (ignored in paginatedUserResources query) */ userFullName?: InputMaybe; }; /** Fields to sort resource users by. */ export declare enum ResourceUserSortByField { /** Sort by access level name */ AccessLevelName = "ACCESS_LEVEL_NAME", /** Sort by expiration time */ ExpiresAt = "EXPIRES_AT", /** Sort by last used timestamp */ LastUsedAt = "LAST_USED_AT", /** Sort by propagation status */ PropagationStatus = "PROPAGATION_STATUS", /** Sort by resource name */ ResourceName = "RESOURCE_NAME", /** Sort by source of access */ SourceOfAccess = "SOURCE_OF_ACCESS", /** Sort by user email */ UserEmail = "USER_EMAIL", /** Sort by user full name */ UserFullName = "USER_FULL_NAME" } /** Source of a resource user assignment. */ export declare enum ResourceUserSource { /** ResourceUser that's inherited from another remote resource. */ Inherited = "INHERITED", /** Regular directly-assigned resource user. */ Regular = "REGULAR" } /** Input for querying multiple resources. */ export type ResourcesInput = { /** Filter by connection IDs */ connectionIds?: InputMaybe>; /** Filter by connection type */ connectionType?: InputMaybe; /** Pagination cursor */ cursor?: InputMaybe; /** Maximum number of entries to return */ maxNumEntries?: InputMaybe; /** Only show non-human identity resources */ nonHumanIdentitiesOnly?: InputMaybe; /** Only show resources the current user has access to */ onlyMine?: InputMaybe; /** Filter by parent resource */ parentResourceId?: InputMaybe; /** Filter by specific resource IDs */ resourceIds?: InputMaybe>; /** Filter by resource types */ resourceTypes?: InputMaybe>; /** Search query string */ searchQuery?: InputMaybe; /** Filter by tag */ tag?: InputMaybe; /** Only show unmanaged resources */ unmanagedOnly?: InputMaybe; }; /** Result for resources query. */ export type ResourcesOutput = ResourcesResult; /** Successful result of querying resources. */ export type ResourcesResult = { __typename?: "ResourcesResult"; /** Pagination cursor */ cursor?: Maybe; /** List of resources */ resources: Array; /** Total number of resources matching the query */ totalNumResources: Scalars["Int"]["output"]; }; /** Action to take on a connection-user access during review. */ export type ReviewConnectionUserAction = { /** The ID of the access review connection-user. */ accessReviewConnectionUserId: Scalars["AccessReviewConnectionUserId"]["input"]; /** The action to take (accept, revoke, etc.). */ action: AccessReviewAction; /** Optional note explaining the decision. */ note?: InputMaybe; }; /** Action to take on a group-group membership during review. */ export type ReviewGroupGroupAction = { /** The ID of the access review group-group. */ accessReviewGroupGroupId: Scalars["AccessReviewGroupGroupId"]["input"]; /** The action to take (accept, revoke, update, etc.). */ action: AccessReviewAction; /** Optional note explaining the decision. */ note?: InputMaybe; /** New access level in the containing group if updating. */ updatedContainingGroupAccessLevel?: InputMaybe; }; /** Action to take on a group-resource access during review. */ export type ReviewGroupResourceAction = { /** The ID of the access review group-resource. */ accessReviewGroupResourceId: Scalars["AccessReviewGroupResourceId"]["input"]; /** The action to take (accept, revoke, update, etc.). */ action: AccessReviewAction; /** Optional note explaining the decision. */ note?: InputMaybe; /** New access level if updating the access. */ updatedAccessLevel?: InputMaybe; }; /** Action to take on a group-user membership during review. */ export type ReviewGroupUserAction = { /** The ID of the access review group-user. */ accessReviewGroupUserId: Scalars["AccessReviewGroupUserId"]["input"]; /** The action to take (accept, revoke, update, etc.). */ action: AccessReviewAction; /** Optional note explaining the decision. */ note?: InputMaybe; /** New access level if updating the membership. */ updatedAccessLevel?: InputMaybe; }; /** Action to take on a resource-resource (NHI) access during review. */ export type ReviewResourceResourceAction = { /** The ID of the access review resource-resource. */ accessReviewResourceResourceId: Scalars["AccessReviewRoleAssignmentId"]["input"]; /** The action to take (accept, revoke, etc.). */ action: AccessReviewAction; /** Whether the access review resource is acting as the principal (accessor) in this relationship. */ isAccessReviewResourceActingAsPrincipal: Scalars["Boolean"]["input"]; /** Optional note explaining the decision. */ note?: InputMaybe; }; /** Action to take on a resource-user access during review. */ export type ReviewResourceUserAction = { /** The ID of the access review resource-user. */ accessReviewResourceUserId: Scalars["AccessReviewResourceUserId"]["input"]; /** The action to take (accept, revoke, update, etc.). */ action: AccessReviewAction; /** Optional note explaining the decision. */ note?: InputMaybe; /** New access level if updating the access. */ updatedAccessLevel?: InputMaybe; /** New resource if updating the access. */ updatedResource?: InputMaybe; }; /** Input for specifying an updated resource when modifying resource access. */ export type ReviewResourceUserActionUpdatedResourceInput = { /** The ID of the new resource. */ id: Scalars["ResourceId"]["input"]; /** The name of the new resource. */ name?: InputMaybe; }; export declare enum ReviewStageOperator { And = "AND", Or = "OR" } /** A reviewer assigned to a specific stage in the review process. */ export type Reviewer = { __typename?: "Reviewer"; /** When this reviewer assignment was created. */ createdAt: Scalars["Time"]["output"]; /** Whether this reviewer has been deleted. */ isDeleted: Scalars["Boolean"]["output"]; /** The owner entity assigned as a reviewer. */ owner?: Maybe; /** The ID of the owner assigned as a reviewer. */ ownerId: Scalars["OwnerId"]["output"]; /** The ID of the reviewer stage this reviewer belongs to. */ stageId: Scalars["ReviewerStageId"]["output"]; }; /** Actions a reviewer can take on a request. */ export declare enum ReviewerAction { /** Reviewer approved the request */ Approved = "APPROVED", /** Reviewer denied the request */ Denied = "DENIED" } /** Input for defining a reviewer stage. */ export type ReviewerInputStage = { /** The logical operator used when multiple reviewers are present. */ operator: ReviewStageOperator; /** The IDs of owners to assign as reviewers. */ ownerIds: Array; /** Whether this stage requires admin approval. */ requireAdminApproval: Scalars["Boolean"]["input"]; /** Whether this stage requires manager approval. */ requireManagerApproval: Scalars["Boolean"]["input"]; /** The IDs of users to assign as reviewers. */ userIds: Array; }; /** A stage in the review process for access requests. */ export type ReviewerStage = { __typename?: "ReviewerStage"; /** Unique identifier for the reviewer stage. */ id: Scalars["ReviewerStageId"]["output"]; /** The logical operator used when multiple reviewers are present. */ operator: ReviewStageOperator; /** The owners assigned as reviewers for this stage. */ owners: Array; /** The request configuration this reviewer stage belongs to. */ requestConfiguration: RequestConfiguration; /** Whether this stage requires admin approval. */ requireAdminApproval: Scalars["Boolean"]["output"]; /** Whether this stage requires manager approval. */ requireManagerApproval: Scalars["Boolean"]["output"]; /** The order of this stage in the review process. */ stage: Scalars["Int"]["output"]; /** The users assigned as reviewers for this stage. */ users: Array; }; /** Represents a reviewer's decision and any notes on an access item. */ export type ReviewerUser = { __typename?: "ReviewerUser"; /** The ID of the access review entity, if applicable. */ accessReviewEntityId?: Maybe; /** The ID of the access review principal, if applicable. */ accessReviewPrincipalId?: Maybe; /** The avatar URL of the reviewer. */ avatarUrl: Scalars["String"]["output"]; /** The ID of the entity (resource, group, etc.) being reviewed. */ entityId: Scalars["UUID"]["output"]; /** The type of entity being reviewed. */ entityType: EntityType; /** The name of the reviewer. */ name: Scalars["String"]["output"]; /** Optional note provided by the reviewer. */ note?: Maybe; /** The status of this reviewer's decision. */ status: ReviewerUserStatus; /** Updated access level if the reviewer modified the access. */ updatedAccessLevel?: Maybe; /** Updated resource if the reviewer modified the access. */ updatedResource?: Maybe; /** Updated resource ID if the reviewer modified the access. */ updatedResourceId?: Maybe; /** The ID of the reviewer user. */ userId: Scalars["UserId"]["output"]; }; /** Input for specifying a reviewer user and the entities they should review. */ export type ReviewerUserInput = { /** List of entity IDs (resources, groups, etc.) this reviewer should review. */ entityIds?: InputMaybe>; /** The ID of the user who will be the reviewer. */ userId: Scalars["UserId"]["input"]; }; /** The status of a single reviewer's decision on an access item. */ export declare enum ReviewerUserStatus { /** The reviewer accepted/approved the access. */ Accepted = "ACCEPTED", /** Admin revoked the access and it needs to be removed in the end system. */ AdminNeedsEndSystemRevocation = "ADMIN_NEEDS_END_SYSTEM_REVOCATION", /** Admin revoked the access. */ AdminRevoked = "ADMIN_REVOKED", /** The reviewer revoked the access and it needs to be removed in the end system. */ NeedsEndSystemRevocation = "NEEDS_END_SYSTEM_REVOCATION", /** The reviewer updated the access and the resulting request needs approval. */ NeedsUpdateRequestApproval = "NEEDS_UPDATE_REQUEST_APPROVAL", /** No review is required for this item. */ NotRequired = "NOT_REQUIRED", /** The reviewer has not started reviewing this item yet. */ NotStarted = "NOT_STARTED", /** The reviewer revoked the access. */ Revoked = "REVOKED", /** The reviewer updated/modified the access. */ Updated = "UPDATED" } /** Error indicating reviewers were already reminded. */ export type ReviewersAlreadyRemindedError = Error & { __typename?: "ReviewersAlreadyRemindedError"; /** Error message */ message: Scalars["String"]["output"]; }; /** Represents the severity level of a security risk or threat. */ export declare enum RiskLevel { /** Critical severity risk requiring immediate attention */ Critical = "CRITICAL", /** High severity risk */ High = "HIGH", /** Low severity risk */ Low = "LOW", /** Medium severity risk */ Medium = "MEDIUM", /** No risk identified */ None = "NONE", /** Unknown or unclassified risk level */ Unknown = "UNKNOWN" } /** Result containing risk score distribution data. */ export type RiskScoreGraphDataResult = { __typename?: "RiskScoreGraphDataResult"; /** Granularity of score buckets */ granularity: Scalars["Int"]["output"]; /** Array of entity counts per score bucket */ numEntitiesPerScore: Array; /** Overall risk score across all entities */ overallRiskScore: Scalars["Int"]["output"]; }; /** Contains details about risk sensitivity settings for an entity. */ export type RiskSensitivityDetails = { __typename?: "RiskSensitivityDetails"; /** Whether this is the default risk sensitivity setting */ isDefault: Scalars["Boolean"]["output"]; /** The configured risk level value */ value: RiskLevel; }; /** A role assignment representing access granted to a principal for an entity. */ export type RoleAssignment = { __typename?: "RoleAssignment"; /** Additional access information including paths and expiration. */ access?: Maybe; /** The level of access being granted. */ accessLevel: AccessLevel; /** The entity (resource or group) being accessed. */ entity?: Maybe; /** The ID of the entity (resource or group) being accessed. */ entityID: Scalars["EntityId"]["output"]; /** The type of the entity (resource or group). */ entityType: EntityType; /** Unique identifier for the role assignment. */ id: Scalars["RoleAssignmentId"]["output"]; /** Whether this assignment is hidden from UI display. */ isHidden?: Maybe; /** When this access was last used by the principal. */ lastUsedAt?: Maybe; /** The principal (user or group) being granted access. */ principal?: Maybe; /** The ID of the principal (user or group) being granted access. */ principalID: Scalars["EntityId"]["output"]; /** The type of the principal (user or group). */ principalType: EntityType; /** The status of propagating this access to the end system. */ propagationStatus?: Maybe; /** AI-generated suggestion information for this assignment. */ suggestion?: Maybe; }; /** Union of possible actions for a role assignment. */ export type RoleAssignmentAction = InvestigateEventAction | ModifyAccessAction | RuleInsightAction | SubmitHiddenGrantFeedback; /** Error returned when attempting to create a role assignment that already exists. */ export type RoleAssignmentAlreadyExists = Error & { __typename?: "RoleAssignmentAlreadyExists"; message: Scalars["String"]["output"]; }; /** Paginated connection of role assignments. */ export type RoleAssignmentConnection = PageConnection & { __typename?: "RoleAssignmentConnection"; /** Pagination information. */ pageInfo: PageInfo; /** List of role assignments. */ roleAssignments: Array; /** Total count of role assignments matching the scope. */ totalCount: Scalars["Int"]["output"]; }; /** Paginated connection of role assignments. */ export type RoleAssignmentConnectionTotalCountArgs = { scope?: InputMaybe; }; export type RoleAssignmentEntity = { accessLevels?: Maybe>; id: Scalars["UUID"]["output"]; principalAssignmentsForEntity: Array; }; export type RoleAssignmentEntityAccessLevelsArgs = { filters?: InputMaybe; }; /** Scope for filtering role assignments by specific entities. */ export type RoleAssignmentEntityScope = { /** Group IDs to filter by. */ groupIDs?: InputMaybe>; /** Resource IDs to filter by. */ resourceIDs?: InputMaybe>; }; /** Scope for filtering role assignments by entity types. */ export type RoleAssignmentEntityTypeScope = { /** Group types to filter by. */ groupTypes?: InputMaybe>; /** Resource types to filter by. */ resourceTypes?: InputMaybe>; }; /** Input identifying a specific role assignment. */ export type RoleAssignmentKeyInput = { /** The level of access. */ accessLevel: AccessLevelInput; /** The ID of the entity. */ entityID: Scalars["EntityId"]["input"]; /** The type of the entity. */ entityType: EntityType; /** The ID of the principal. */ principalID: Scalars["EntityId"]["input"]; /** The type of the principal. */ principalType: EntityType; }; /** Error returned when a role assignment is not found. */ export type RoleAssignmentNotFoundError = Error & { __typename?: "RoleAssignmentNotFoundError"; message: Scalars["String"]["output"]; }; /** Scope for filtering role assignments by principals. */ export type RoleAssignmentPrincipalScope = { /** Group IDs to filter by. */ groupIDs?: InputMaybe>; /** Additional options for filtering principals. */ options?: InputMaybe; /** User IDs to filter by. */ userIDs?: InputMaybe>; }; /** Result of a role assignment push task. */ export type RoleAssignmentPushTaskResult = { __typename?: "RoleAssignmentPushTaskResult"; /** Propagation statuses for role assignments. */ propStatuses: Array; }; /** A risk factor associated with a role assignment. */ export type RoleAssignmentRiskFactor = { __typename?: "RoleAssignmentRiskFactor"; /** Optional explanation of the risk factor */ reason?: Maybe; /** Type of risk factor */ riskFactor: RecommendationsSubscoreType; }; /** Comprehensive scope for filtering role assignments. */ export type RoleAssignmentScope = { /** Scope for filtering by access properties. */ accessScope: AccessScope; /** Scope for filtering by entities. */ entityScope: EntityScope; /** Rule for combining filters. */ filterRule?: InputMaybe; /** Scope for filtering by principals. */ principalScope: PrincipalScope; }; /** Scope for searching role assignments. */ export type RoleAssignmentSearchScope = { /** Scope for filtering by specific entities. */ entityScope?: InputMaybe; /** Scope for filtering by entity types. */ entityTypeScope?: InputMaybe; /** Scope for filtering by principals. */ principalScope?: InputMaybe; /** Principal types to filter by. */ principalTypes?: InputMaybe>; /** Risk factors to filter by. */ riskFactors?: InputMaybe>; /** Text search query. */ searchQuery?: InputMaybe; }; export declare enum RoleAssignmentSource { BreakGlass = "BREAK_GLASS", /** Resource assignment that's inherited from another resource */ Inherited = "INHERITED", OnCall = "ON_CALL", Regular = "REGULAR", /** Regular GroupUser derived from a containing group in Opal. */ RegularIndirect = "REGULAR_INDIRECT", /** Regular GroupUser that's imported from a nested group. */ RegularNested = "REGULAR_NESTED" } /** Suggested actions for a role assignment. */ export type RoleAssignmentSuggestion = { __typename?: "RoleAssignmentSuggestion"; /** Alternative actions available */ otherActions?: Maybe>; /** List of identified risk factors */ riskFactors?: Maybe>; /** Primary suggested action */ suggestedAction?: Maybe; }; /** Input for querying role assignments. */ export type RoleAssignmentsInput = { /** Cursor for pagination. */ after?: InputMaybe; /** Maximum number of results to return. */ first?: InputMaybe; /** Scope for filtering results. */ scope: RoleAssignmentSearchScope; /** Sort configuration. */ sortBy?: InputMaybe; /** UI source that initiated the query. */ source?: UiSource; }; /** Sorting configuration for role assignments. */ export type RoleAssignmentsSortBy = { /** Sort direction. */ direction: SortDirection; /** Field to sort by. */ field?: InputMaybe; }; /** Field to sort role assignments by. */ export declare enum RoleAssignmentsSortByField { EntityName = "ENTITY_NAME", EntitySensitivity = "ENTITY_SENSITIVITY", Expiration = "EXPIRATION", FirstGrantedAt = "FIRST_GRANTED_AT", LastUsedAt = "LAST_USED_AT", PrincipalName = "PRINCIPAL_NAME", Role = "ROLE", VulnerabilityCount = "VULNERABILITY_COUNT" } /** Permissions that can be granted on various target types in Opal. */ export declare enum RolePermission { AssignUarReviewers = "ASSIGN_UAR_REVIEWERS", Create = "CREATE", Delete = "DELETE", EditAssignments = "EDIT_ASSIGNMENTS", EditEventStream = "EDIT_EVENT_STREAM", EditRequestConfigurations = "EDIT_REQUEST_CONFIGURATIONS", EditSettings = "EDIT_SETTINGS", EditSyncSettings = "EDIT_SYNC_SETTINGS", EditTags = "EDIT_TAGS", EditTokens = "EDIT_TOKENS", Export = "EXPORT", Import = "IMPORT", Read = "READ", ReadAssignments = "READ_ASSIGNMENTS", ReadSettings = "READ_SETTINGS", ReadTokens = "READ_TOKENS", RequestOnBehalf = "REQUEST_ON_BEHALF", ResetMfa = "RESET_MFA", SendReminders = "SEND_REMINDERS", Stop = "STOP", Sync = "SYNC" } /** A key identifying a specific permission on a target type. */ export type RolePermissionKey = { __typename?: "RolePermissionKey"; /** The permission name. */ permissionName: RolePermission; /** The target type. */ targetType: RolePermissionTargetType; }; export type RolePermissionTargetEntity = { allowedPermissions: Array; id: Scalars["UUID"]["output"]; permissionSources: PermissionSourceConnection; }; export type RolePermissionTargetEntityPermissionSourcesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; /** Target types that permissions can be scoped to. */ export declare enum RolePermissionTargetType { AccessReview = "ACCESS_REVIEW", AccessReviewTemplate = "ACCESS_REVIEW_TEMPLATE", Bundle = "BUNDLE", ConfigurationTemplate = "CONFIGURATION_TEMPLATE", Connection = "CONNECTION", EventStream = "EVENT_STREAM", Group = "GROUP", Owner = "OWNER", PubsubPublishConnection = "PUBSUB_PUBLISH_CONNECTION", RequestTemplate = "REQUEST_TEMPLATE", Resource = "RESOURCE", User = "USER" } /** Defines when an access rule applies using positive and negative conditions. */ export type RuleClauses = { __typename?: "RuleClauses"; /** Conditions that, if met, prevent the rule from applying. */ unless?: Maybe; /** Conditions that must be met for the rule to apply. */ when: RuleConjunction; }; /** Input for defining when an access rule applies. */ export type RuleClausesInput = { /** Conditions that, if met, prevent the rule from applying. */ unless?: InputMaybe; /** Conditions that must be met for the rule to apply. */ when: RuleConjunctionInput; }; /** Conjunction (AND) of rule disjunctions - matches if all clauses match. */ export type RuleConjunction = { __typename?: "RuleConjunction"; /** List of disjunctions to evaluate with AND logic. */ clauses: Array; }; /** Input for a conjunction (AND) of rule disjunctions. */ export type RuleConjunctionInput = { /** List of disjunctions to evaluate with AND logic. */ clauses: Array; }; /** Disjunction (OR) of tag selectors - matches if any selector matches. */ export type RuleDisjunction = { __typename?: "RuleDisjunction"; /** List of tag selectors to evaluate with OR logic. */ selectors: Array; }; /** Input for a disjunction (OR) of tag selectors. */ export type RuleDisjunctionInput = { /** List of tag selectors to evaluate with OR logic. */ selectors: Array; }; /** Action to view insights about a rule. */ export type RuleInsightAction = { __typename?: "RuleInsightAction"; /** ID of the rule to view insights for */ ruleID: Scalars["GroupId"]["output"]; }; export type SalesforceConnectionMetadata = { __typename?: "SalesforceConnectionMetadata"; email: Scalars["String"]["output"]; hostname: Scalars["String"]["output"]; }; export type SalesforceCredentialsInput = { clientID: Scalars["String"]["input"]; clientSecret: Scalars["String"]["input"]; password: Scalars["String"]["input"]; }; export type SalesforceMetadataInput = { email: Scalars["String"]["input"]; hostname: Scalars["String"]["input"]; }; export type SamlConnectionOutput = SamlConnectionResult; export type SamlConnectionResult = { __typename?: "SamlConnectionResult"; organizationSamlInfo?: Maybe; }; export type SamlLoginRequiredError = Error & { __typename?: "SamlLoginRequiredError"; message: Scalars["String"]["output"]; }; /** Error indicating that SAML is not configured for this organization. */ export type SamlNotConfiguredForOrgError = Error & { __typename?: "SamlNotConfiguredForOrgError"; message: Scalars["String"]["output"]; }; export type SaveQueryInput = { description?: InputMaybe; name?: InputMaybe; query?: InputMaybe; shared?: InputMaybe; }; export type SavedQueriesError = Error & { __typename?: "SavedQueriesError"; message: Scalars["String"]["output"]; }; export type SavedQueriesOutput = SavedQueriesError | SavedQueriesResult; export type SavedQueriesResult = { __typename?: "SavedQueriesResult"; queries: Array; }; export type SavedQuery = BaseEntity & Node & { __typename?: "SavedQuery"; createdAt: Scalars["Time"]["output"]; creator: User; creatorId: Scalars["UserId"]["output"]; description?: Maybe; id: Scalars["UUID"]["output"]; name: Scalars["String"]["output"]; query: AccessQueryEngineEdge; shared: Scalars["Boolean"]["output"]; updatedAt: Scalars["Time"]["output"]; }; export type SavedQueryInput = { id: Scalars["SavedQueryId"]["input"]; }; export type SavedQueryNotFound = Error & { __typename?: "SavedQueryNotFound"; message: Scalars["String"]["output"]; }; export type SavedQueryOutput = SavedQuery | SavedQueryNotFound; /** A permission scoped to a specific target type and optionally to specific entities. */ export type ScopedRolePermission = { __typename?: "ScopedRolePermission"; /** Whether this permission applies to all entities of the target type. */ allowAll: Scalars["Boolean"]["output"]; /** The entities this permission applies to. */ entities: Array; /** Specific entity IDs this permission applies to (if not allowAll). */ entityIds: Array; /** The permission being granted. */ permissionName: RolePermission; /** The type of target this permission applies to. */ targetType: RolePermissionTargetType; }; /** Input for performing a search across resources, groups, and users. */ export type SearchInput = { after?: InputMaybe; /** Whether to only include requestable items in results. */ includeOnlyRequestable?: Scalars["Boolean"]["input"]; /** Maximum number of results to return. */ maxResults?: InputMaybe; /** The search query text. */ query: Scalars["String"]["input"]; }; /** Result of a search operation. */ export type SearchOutput = SearchResult; /** Successful search result containing matching entries. */ export type SearchResult = { __typename?: "SearchResult"; cursor?: Maybe; /** List of matching search results. */ entries: Array; /** Total number of results found. */ totalCount: Scalars["Int"]["output"]; }; /** A single search result entry representing a resource, group, or user. */ export type SearchResultEntry = { __typename?: "SearchResultEntry"; /** Additional text annotation for the result. */ annotationText?: Maybe; /** Avatar URL if the result is a user. */ avatarUrl?: Maybe; /** The connection entity if applicable. */ connection?: Maybe; /** Connection ID if applicable. */ connectionId?: Maybe; /** Email if the result is a user. */ email?: Maybe; /** The group entity if this is a group. */ group?: Maybe; /** Group type if the result is a group. */ groupType: GroupType; /** The name of the entity. */ name: Scalars["String"]["output"]; /** The ID tuple identifying the entity. */ objectId: EntityIdTuple; /** The resource entity if this is a resource. */ resource?: Maybe; /** Resource type if the result is a resource. */ resourceType: ResourceType; /** The type of search result. */ searchType: SearchType; /** Similarity score for the search match. */ similarityScore?: Maybe; }; export declare enum SearchType { Global = "GLOBAL", Local = "LOCAL" } /** Input for sending reminder notifications to reviewers. */ export type SendAccessReviewReminderInput = { /** The ID of the access review. */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** Optional custom message to include in the reminder. */ message?: InputMaybe; /** Whether to also notify the reviewer's manager. */ notifyReviewerManager: Scalars["Boolean"]["input"]; }; /** Result of sending access review reminders. */ export type SendAccessReviewReminderOutput = AccessReviewAlreadyStoppedError | AccessReviewNotFoundError | SendAccessReviewReminderResult; /** Successful result of sending reminders. */ export type SendAccessReviewReminderResult = { __typename?: "SendAccessReviewReminderResult"; /** The access review that reminders were sent for. */ accessReview: AccessReview; }; /** Input for sending a manual reminder to reviewers. */ export type SendManualRequestReminderInput = { /** ID of the request to send reminders for */ id: Scalars["RequestId"]["input"]; }; /** Result or error for send manual request reminder operation. */ export type SendManualRequestReminderOutput = RequestNotFoundError | ReviewersAlreadyRemindedError | SendManualRequestReminderResult; /** Successful result of sending a manual request reminder. */ export type SendManualRequestReminderResult = { __typename?: "SendManualRequestReminderResult"; /** Whether the operation succeeded */ success?: Maybe; }; /** ServiceNow credentials for authentication. */ export type ServiceNowCredentials = { __typename?: "ServiceNowCredentials"; /** ServiceNow OAuth client ID. */ clientId: Scalars["String"]["output"]; /** ServiceNow OAuth client secret. */ clientSecret: Scalars["String"]["output"]; /** ServiceNow user ID. */ userId: Scalars["String"]["output"]; /** ServiceNow user password. */ userPassword: Scalars["String"]["output"]; }; /** Metadata input for ServiceNow integration configuration. */ export type ServiceNowMetadataInput = { /** ServiceNow catalog item ID for access requests. */ catalogItemId: Scalars["String"]["input"]; /** ServiceNow instance hostname. */ hostname: Scalars["String"]["input"]; }; export declare enum ServiceType { ActiveDirectory = "ACTIVE_DIRECTORY", Anthropic = "ANTHROPIC", AwsIam = "AWS_IAM", AwsSso = "AWS_SSO", AzureAd = "AZURE_AD", Coupa = "COUPA", Cursor = "CURSOR", Custom = "CUSTOM", CustomConnector = "CUSTOM_CONNECTOR", Databricks = "DATABRICKS", DatastaxAstra = "DATASTAX_ASTRA", Devin = "DEVIN", Duo = "DUO", GcpBigQuery = "GCP_BIG_QUERY", GcpIam = "GCP_IAM", GcpStorage = "GCP_STORAGE", GitHub = "GIT_HUB", GitLab = "GIT_LAB", GoogleGroups = "GOOGLE_GROUPS", GoogleWorkspace = "GOOGLE_WORKSPACE", Incidentio = "INCIDENTIO", Kubernetes = "KUBERNETES", Ldap = "LDAP", Mariadb = "MARIADB", Mongo = "MONGO", MongoAtlas = "MONGO_ATLAS", Mysql = "MYSQL", OktaCiam = "OKTA_CIAM", OktaDirectory = "OKTA_DIRECTORY", Opal = "OPAL", OpenaiPlatform = "OPENAI_PLATFORM", OracleFusion = "ORACLE_FUSION", Pagerduty = "PAGERDUTY", Postgres = "POSTGRES", Salesforce = "SALESFORCE", Snowflake = "SNOWFLAKE", Ssh = "SSH", Tailscale = "TAILSCALE", Teleport = "TELEPORT", Unknown = "UNKNOWN", Vault = "VAULT", Workday = "WORKDAY" } /** An automation configured for a service user. */ export type ServiceUserAutomation = { __typename?: "ServiceUserAutomation"; /** The automation configuration. */ configuration: ServiceUserAutomationConfiguration; /** The automation strategy. */ strategy: ServiceUserAutomationStrategy; /** The trigger event. */ trigger: ServiceUserAutomationTrigger; /** The service user ID this automation belongs to. */ userId: Scalars["UserId"]["output"]; }; /** Configuration for a service user automation. */ export type ServiceUserAutomationConfiguration = ServiceUserStarlarkAutomationConfiguration | ServiceUserWebhookAutomationConfiguration; /** The strategy used for service user automation. */ export declare enum ServiceUserAutomationStrategy { Starlark = "STARLARK", Webhook = "WEBHOOK" } /** The trigger event for service user automation. */ export declare enum ServiceUserAutomationTrigger { RequestCreatedForReviewer = "REQUEST_CREATED_FOR_REVIEWER" } /** Configuration for a service user. */ export type ServiceUserConfiguration = { __typename?: "ServiceUserConfiguration"; /** Automations configured for this service user. */ automations?: Maybe>; /** The service user ID. */ id: Scalars["UserId"]["output"]; /** The owner entity. */ owner: Owner; /** The owner ID of the service user. */ ownerId: Scalars["OwnerId"]["output"]; }; export type ServiceUserStarlarkAutomationConfiguration = { __typename?: "ServiceUserStarlarkAutomationConfiguration"; /** The starlark script details. */ starlarkScript: StarlarkScript; }; /** Webhook automation configuration. */ export type ServiceUserWebhookAutomationConfiguration = { __typename?: "ServiceUserWebhookAutomationConfiguration"; /** The webhook endpoint URL. */ endpoint: Scalars["String"]["output"]; }; /** An active session for accessing a resource. */ export type Session = { __typename?: "Session"; /** The access level name for this session. */ accessLevel?: Maybe; /** The access level remote ID. */ accessLevelRemoteId?: Maybe; /** The connection entity. */ connection?: Maybe; /** The connection ID for this session. */ connectionId: Scalars["ConnectionId"]["output"]; /** When the session was created. */ createdAt: Scalars["Time"]["output"]; /** The duration of the session in minutes. */ durationInMinutes?: Maybe; /** When the session ends. */ endTime: Scalars["Time"]["output"]; /** Unique identifier for the session. */ id: Scalars["SessionId"]["output"]; /** Session-specific metadata (credentials, URLs, etc). */ metadata: SessionMetadata; /** The organization this session belongs to. */ organizationId: Scalars["OrganizationId"]["output"]; /** The resource entity being accessed. */ resource?: Maybe; /** The resource ID being accessed (if applicable). */ resourceId?: Maybe; /** The user entity. */ user?: Maybe; /** The user who owns this session. */ userId: Scalars["UserId"]["output"]; }; /** Metadata for different types of sessions. */ export type SessionMetadata = AwsIamFederatedEksSession | AwsIamFederatedRdsSession | AwsIamFederatedRoleSession | AwsIamFederatedSsmSession | AzureSqlSession | OidcSession | OpalImpersonationSession | VaultMongoAtlasSession | VaultMongoSession | VaultMySqlMariaDbSession | VaultPostgresSession | VaultSecretSession; /** Error returned when a session is not found. */ export type SessionNotFoundError = Error & { __typename?: "SessionNotFoundError"; message: Scalars["String"]["output"]; }; /** Input for fetching sessions for a resource. */ export type SessionsInput = { /** The resource ID to get sessions for. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Output of fetching sessions. */ export type SessionsOutput = SessionsResult; /** Result of fetching sessions. */ export type SessionsResult = { __typename?: "SessionsResult"; /** List of active sessions. */ sessions: Array; }; /** Input for setting a note on access review items. */ export type SetNoteInput = { /** The ID of the access review. */ accessReviewID: Scalars["AccessReviewId"]["input"]; /** The note text to add. */ note: Scalars["String"]["input"]; /** List of IDs of the items to add notes to. */ targetIDs?: InputMaybe>; /** The type of items being annotated. */ targetType: AccessReviewType; }; /** Output union for setting notes. */ export type SetNoteOutput = AccessReviewAlreadyStoppedError | AccessReviewNotFoundError | SetNoteResult; /** Result of setting a note. */ export type SetNoteResult = { __typename?: "SetNoteResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Input for setting the users for an owner. */ export type SetOwnerUsersInput = { /** The owner ID to set users for. */ ownerId: Scalars["OwnerId"]["input"]; /** The list of user IDs to assign to this owner. */ userIds: Array; }; /** Result of setting owner users. */ export type SetOwnerUsersOutput = CannotAddSystemUserToOwnerError | CannotAddUserToSyncedOwnerError | OwnerNotFoundError | UpdateOwnerUsersForOwnerResult | UserNotFoundError; /** Input for setting a scoped permission. */ export type SetRolePermissionInput = { /** Whether this permission applies to all entities. */ allowAll: Scalars["Boolean"]["input"]; /** Specific entity IDs this permission applies to (if not allowAll). */ entityIds?: InputMaybe>; /** The permission to set. */ permissionName: RolePermission; /** The target type this permission applies to. */ targetType: RolePermissionTargetType; }; /** Input for setting internal admin roles on a user. */ export type SetRolesInput = { /** List of roles to assign to the user. */ roles: Array; /** Whether to add the user to the owners list. */ shouldAddToOwners: Scalars["Boolean"]["input"]; /** Whether to remove the user from the owners list. */ shouldRemoveFromOwners: Scalars["Boolean"]["input"]; }; /** Output type for setRoles mutation. */ export type SetRolesOutput = SetRolesResult; /** Result of setting roles operation. */ export type SetRolesResult = { __typename?: "SetRolesResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; /** Entity counts during the setup process. */ export type SetupEntityCounts = { __typename?: "SetupEntityCounts"; /** Number of groups. */ numGroups: Scalars["Int"]["output"]; /** Number of users. */ numUsers: Scalars["Int"]["output"]; /** Resource counts by type. */ resourceCounts: Array; }; /** Count of resources by type during setup. */ export type SetupResourceCount = { __typename?: "SetupResourceCount"; /** Number of resources of this type. */ count: Scalars["Int"]["output"]; /** The resource type. */ resourceType: ResourceType; }; /** Current state of the onboarding setup process. */ export type SetupState = { __typename?: "SetupState"; /** The connection being set up. */ connection?: Maybe; /** The ID of the connection being set up. */ connectionId?: Maybe; /** Count of entities in the organization. */ entityCounts?: Maybe; /** The ID of the IDP connection. */ idpConnectionId?: Maybe; /** The type of IDP connection configured. */ idpConnectionType?: Maybe; /** Count of entities imported during setup. */ importEntityCounts?: Maybe; /** The status of the import process. */ importStatus?: Maybe; /** The minimum step the user has completed. */ minStep: Scalars["Int"]["output"]; }; /** Result containing the current setup state. */ export type SetupStateResult = { __typename?: "SetupStateResult"; /** The current setup state. */ state: SetupState; }; /** Short text field value. */ export type ShortTextValue = { __typename?: "ShortTextValue"; /** The short text value */ value: Scalars["String"]["output"]; }; /** Short text field value input. */ export type ShortTextValueInput = { /** The short text value */ value: Scalars["String"]["input"]; }; export type SignInInput = { organizationId: Scalars["OrganizationId"]["input"]; }; export type SignInMethodInput = { email: Scalars["String"]["input"]; userCode?: InputMaybe; }; export type SignInMethodOutput = InvalidEmailError | InvalidUserCodeError | SignInMethodResult; export type SignInMethodResult = { __typename?: "SignInMethodResult"; signInOrganizations: Array; }; export type SignInOrganization = { __typename?: "SignInOrganization"; cliClientId?: Maybe; enableOIDCSignIn: Scalars["Boolean"]["output"]; enableSAMLSignIn: Scalars["Boolean"]["output"]; organizationId: Scalars["OrganizationId"]["output"]; organizationName: Scalars["String"]["output"]; }; export type SignInOutput = SignInResult; export type SignInResult = { __typename?: "SignInResult"; authURL: Scalars["String"]["output"]; forceExtraStep: Scalars["Boolean"]["output"]; state: Scalars["String"]["output"]; }; export type SignOutOutput = SignOutResult; export type SignOutResult = { __typename?: "SignOutResult"; success?: Maybe; }; /** Error returned when attempting to create a Slack integration for an organization that already exists. */ export type SlackOrganizationAlreadyExistsError = Error & { __typename?: "SlackOrganizationAlreadyExistsError"; /** Error message. */ message: Scalars["String"]["output"]; }; export type SnowflakeConnectionCredentialsInput = { privateKey: Scalars["String"]["input"]; privateKeyPassword: Scalars["String"]["input"]; publicKey: Scalars["String"]["input"]; }; export type SnowflakeConnectionMetadata = { __typename?: "SnowflakeConnectionMetadata"; account: Scalars["String"]["output"]; accountIdentifier: Scalars["String"]["output"]; accountUrl: Scalars["String"]["output"]; enableResourceManagement: Scalars["Boolean"]["output"]; locator: Scalars["String"]["output"]; organization: Scalars["String"]["output"]; serviceAccountName: Scalars["String"]["output"]; serviceAccountRole: Scalars["String"]["output"]; }; export type SnowflakeConnectionMetadataInput = { account: Scalars["String"]["input"]; accountIdentifier: Scalars["String"]["input"]; accountUrl: Scalars["String"]["input"]; enableResourceManagement: Scalars["Boolean"]["input"]; locator: Scalars["String"]["input"]; organization: Scalars["String"]["input"]; serviceAccountName: Scalars["String"]["input"]; serviceAccountRole: Scalars["String"]["input"]; }; export declare enum SortDirection { Asc = "ASC", Desc = "DESC" } export type StarlarkScript = { __typename?: "StarlarkScript"; createdAt: Scalars["Time"]["output"]; id: Scalars["StarlarkScriptId"]["output"]; lastExecuted?: Maybe; lastExecutionErrorMessage?: Maybe; lastExecutionResult?: Maybe; lastExecutionRuntimeLengthMs?: Maybe; script: Scalars["String"]["output"]; scriptType: StarlarkScriptType; updatedAt: Scalars["Time"]["output"]; }; export declare enum StarlarkScriptExecutionResult { Fail = "FAIL", Success = "SUCCESS" } export type StarlarkScriptNotFoundError = Error & { __typename?: "StarlarkScriptNotFoundError"; message: Scalars["String"]["output"]; }; export declare enum StarlarkScriptType { RequestReview = "REQUEST_REVIEW" } /** Input for starting a new access review. */ export type StartAccessReviewInput = { /** The deadline by which all reviews must be completed. */ deadline: Scalars["Time"]["input"]; /** Which view (resource-first or user-first) reviewers see by default. */ endUserView: AccessReviewEndUserView; /** Filters defining the scope of the access review. */ filters?: InputMaybe; /** Policy for which group resources are visible to reviewers. */ groupResourceVisibilityPolicy: AccessReviewGroupResourceVisibilityPolicy; /** Whether to include group bindings (nested groups) in the review. */ includeGroupBindings: Scalars["Boolean"]["input"]; /** Whether to instantly action reviews (propagate changes immediately). */ instantlyActionReviews: Scalars["Boolean"]["input"]; /** The name of the access review. */ name: Scalars["String"]["input"]; /** Whether to include the reviewer's manager in reminder notifications. */ reminderIncludeManager: Scalars["Boolean"]["input"]; /** Days before deadline when reminders should be sent. */ reminderSchedule: Array; /** Time of day when reminders should be sent. */ reminderTimeOfDay: Scalars["Time"]["input"]; /** Policy for assigning reviewers to access. */ reviewerAssignmentPolicy: AccessReviewReviewerAssignmentPolicy; /** Whether self-review is allowed (user reviewing their own access). */ selfReviewAllowed: Scalars["Boolean"]["input"]; /** Whether to send notifications when reviewers are assigned. */ sendReviewerAssignmentNotification: Scalars["Boolean"]["input"]; /** Timezone for scheduling reminders. */ timeZone: Scalars["String"]["input"]; }; /** Result of starting an access review. */ export type StartAccessReviewOutput = StartAccessReviewResult; /** Successful result containing the started access review. */ export type StartAccessReviewResult = { __typename?: "StartAccessReviewResult"; /** The started access review. */ accessReview: AccessReview; }; /** Statistics about access reviews before starting a new one. */ export type StartAccessReviewStats = { __typename?: "StartAccessReviewStats"; /** Number of access reviews conducted this year. */ numAccessReviewsThisYear: Scalars["Int"]["output"]; /** Total number of access reviews ever conducted. */ numAccessReviewsTotal: Scalars["Int"]["output"]; /** Total number of groups in the organization. */ numGroups: Scalars["Int"]["output"]; /** Number of groups matching the tag filters. */ numGroupsInTagScope: Scalars["Int"]["output"]; /** Total number of resources in the organization. */ numResources: Scalars["Int"]["output"]; /** Number of resources matching the tag filters. */ numResourcesInTagScope: Scalars["Int"]["output"]; /** The most recent previous access review, if any. */ prevAccessReview?: Maybe; }; /** Input for fetching statistics before starting an access review. */ export type StartAccessReviewStatsInput = { /** Optional tag filters to scope the statistics. */ tagFilters?: InputMaybe>; }; /** Output union for start access review statistics. */ export type StartAccessReviewStatsOutput = StartAccessReviewStatsResult; /** Result containing statistics before starting an access review. */ export type StartAccessReviewStatsResult = { __typename?: "StartAccessReviewStatsResult"; /** Statistics about previous access reviews and current scope. */ startAccessReviewStats?: Maybe; }; /** Filter events by start date. */ export type StartDateFilter = { /** Start date for filtering events. */ date: Scalars["String"]["input"]; }; /** Input for starting a sync operation. */ export type StartSyncInput = { /** Access review ID to sync (if applicable). */ accessReviewId?: InputMaybe; /** Connection ID to sync (if applicable). */ connectionId?: InputMaybe; /** Group ID to sync (if applicable). */ groupId?: InputMaybe; /** Resource ID to sync (if applicable). */ resourceId?: InputMaybe; /** The type of sync to start. */ syncType: SyncType; }; /** Result of starting a sync operation. */ export type StartSyncOutput = AccessReviewNotFoundError | ConnectionNotFoundError | GroupNotFoundError | InvalidSyncTypeError | ResourceNotFoundError | StartSyncResult; /** Successful result of starting a sync operation. */ export type StartSyncResult = { __typename?: "StartSyncResult"; /** List of sync tasks that were started. */ syncTasks: Array; }; /** Input for stopping an access review. */ export type StopAccessReviewInput = { /** The ID of the access review to stop. */ id: Scalars["AccessReviewId"]["input"]; /** Whether to automatically revoke all unreviewed items. */ revokeUnreviewed?: InputMaybe; }; /** Result of stopping an access review. */ export type StopAccessReviewOutput = AccessReviewAlreadyStoppedError | AccessReviewNotFoundError | StopAccessReviewResult; /** Successful result containing the stopped access review. */ export type StopAccessReviewResult = { __typename?: "StopAccessReviewResult"; /** The stopped access review. */ accessReview: AccessReview; /** Number of items that were revoked (if revokeUnreviewed was true). */ revokedCount?: Maybe; }; export type StopImpersonationOutput = StopImpersonationResult; export type StopImpersonationResult = { __typename?: "StopImpersonationResult"; success: Scalars["Boolean"]["output"]; }; /** Filter for string fields with various matching options. */ export type StringFilter = { /** Match strings containing this substring. */ contains?: InputMaybe; /** Match strings ending with this value. */ endsWith?: InputMaybe; /** Match strings equal to this value. */ equals?: InputMaybe; /** Match strings in this list. */ in?: InputMaybe>; /** Negate the filter. */ not?: InputMaybe; /** Match strings not in this list. */ notIn?: InputMaybe>; /** Match strings starting with this value. */ startsWith?: InputMaybe; }; export declare enum StringFormatType { Email = "EMAIL" } export declare enum StringMatchType { Contains = "CONTAINS", EndsWith = "ENDS_WITH", Equals = "EQUALS", StartsWith = "STARTS_WITH" } /** A sub-event representing a specific detail within a larger event. */ export type SubEvent = { __typename?: "SubEvent"; /** When the sub-event occurred. */ createdAt: Scalars["Time"]["output"]; /** Unique identifier for the sub-event. */ id: Scalars["SubEventId"]["output"]; /** Additional metadata for the sub-event. */ metadata?: Maybe; /** Display info for the primary entity. */ object?: Maybe; /** Display info for the fourth entity. */ object4?: Maybe; /** ID of the fourth entity involved. */ object4Id?: Maybe; /** Name of the fourth entity. */ object4Name?: Maybe; /** ID of the primary entity involved. */ objectId: EntityIdTuple; /** Name of the primary entity. */ objectName?: Maybe; /** Display info for the secondary entity. */ secondaryObject?: Maybe; /** ID of the secondary entity involved. */ secondaryObjectId?: Maybe; /** Name of the secondary entity. */ secondaryObjectName?: Maybe; /** Type of sub-event. */ subEventType: EventType; /** Display info for the tertiary entity. */ tertiaryObject?: Maybe; /** ID of the tertiary entity involved. */ tertiaryObjectId?: Maybe; /** Name of the tertiary entity. */ tertiaryObjectName?: Maybe; }; /** Fields that can be used to sort sub-events. */ export declare enum SubEventsSortByField { /** Sort by creation time. */ CreatedAt = "CREATED_AT", /** Sort by first entity name. */ Entity_1Name = "ENTITY_1_NAME", /** Sort by second entity name. */ Entity_2Name = "ENTITY_2_NAME", /** Sort by third entity name. */ Entity_3Name = "ENTITY_3_NAME", /** Sort by fourth entity name. */ Entity_4Name = "ENTITY_4_NAME" } /** Feedback for a hidden grant. */ export type SubmitHiddenGrantFeedback = { __typename?: "SubmitHiddenGrantFeedback"; /** Whether the grant is hidden */ isHidden?: Maybe; }; /** A suggestion can be either a group or resource. */ export type Suggestion = GroupSuggestion | ResourceSuggestion; /** Counts of suggestions for an entity. */ export type SuggestionCounts = { __typename?: "SuggestionCounts"; /** Number of target suggestions */ targetCount: Scalars["Int"]["output"]; /** Total number of suggestions */ totalCount: Scalars["Int"]["output"]; }; /** Input for fetching suggestions. */ export type SuggestionsInput = { /** Whether to only show favorited items. */ favoritesOnly?: Scalars["Boolean"]["input"]; /** Maximum number of suggestions to return. */ numMaxSuggestions?: InputMaybe; }; /** Output of fetching suggestions. */ export type SuggestionsOutput = SuggestionsResult; /** Result containing suggestions. */ export type SuggestionsResult = { __typename?: "SuggestionsResult"; /** List of suggested or favorited items. */ suggestions: Array; }; /** A support ticket from an external ticketing system. */ export type SupportTicket = { __typename?: "SupportTicket"; /** The Opal ID for this ticket. */ id?: Maybe; /** The ticket identifier (e.g., JIRA-123). */ identifier: Scalars["String"]["output"]; /** The type of issue. */ issueType: Scalars["String"]["output"]; /** The project name this ticket belongs to. */ projectName: Scalars["String"]["output"]; /** The ticket ID in the external system. */ remoteId: Scalars["SupportTicketRemoteId"]["output"]; /** The ticket summary or title. */ summary: Scalars["String"]["output"]; /** The third-party provider this ticket is from. */ thirdPartyProvider: ThirdPartyProvider; /** The URL to view this ticket in the external system. */ url: Scalars["String"]["output"]; }; /** Error returned when the support ticket API key is not found. */ export type SupportTicketApiKeyNotFoundError = Error & { __typename?: "SupportTicketAPIKeyNotFoundError"; message: Scalars["String"]["output"]; }; /** Input for fetching a specific support ticket. */ export type SupportTicketByIdInput = { /** The Opal ticket ID. */ id: Scalars["SupportTicketId"]["input"]; }; /** Input for referencing a support ticket. */ export type SupportTicketInput = { /** The ticket identifier. */ identifier: Scalars["String"]["input"]; /** The ticket ID in the external system. */ remoteId: Scalars["SupportTicketRemoteId"]["input"]; /** The third-party provider. */ thirdPartyProvider: ThirdPartyProvider; /** The URL to view this ticket. */ url: Scalars["String"]["input"]; }; /** Error returned when a support ticket is not found. */ export type SupportTicketNotFoundError = Error & { __typename?: "SupportTicketNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of fetching a support ticket. */ export type SupportTicketOutput = SupportTicketNotFoundError | SupportTicketResult; /** Successful result of fetching a support ticket. */ export type SupportTicketResult = { __typename?: "SupportTicketResult"; /** The support ticket. */ ticket: SupportTicket; }; /** Input for searching support tickets. */ export type SupportTicketsInput = { /** Optional search query to filter tickets. */ searchQuery?: InputMaybe; /** The third-party provider to search in. */ thirdPartyProvider: ThirdPartyProvider; }; /** Result of searching support tickets. */ export type SupportTicketsOutput = SupportTicketApiKeyNotFoundError | SupportTicketsResult | UserFacingError; /** Successful result of searching support tickets. */ export type SupportTicketsResult = { __typename?: "SupportTicketsResult"; /** List of matching tickets. */ tickets: Array; }; /** An error that occurred during a sync operation. */ export type SyncError = { __typename?: "SyncError"; /** The connection entity if applicable. */ connection?: Maybe; /** Connection ID if the error is related to a connection. */ connectionId?: Maybe; /** When the error was created. */ createdAt: Scalars["Time"]["output"]; /** When the error was first seen. */ firstSeenAt: Scalars["Time"]["output"]; /** Unique identifier for the sync error. */ id: Scalars["SyncErrorId"]["output"]; /** Error message. */ message: Scalars["String"]["output"]; /** Stack trace of the error. */ stackTrace: Scalars["String"]["output"]; }; /** Error returned when a sync error is not found. */ export type SyncErrorNotFoundError = Error & { __typename?: "SyncErrorNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of syncing Slack workspaces. */ export type SyncSlackWorkspacesOutput = SyncSlackWorkspacesResult; /** Successful result containing the updated third-party integration with refreshed workspace data. */ export type SyncSlackWorkspacesResult = { __typename?: "SyncSlackWorkspacesResult"; /** The updated third-party integration with refreshed workspace information. */ thirdPartyIntegration: ThirdPartyIntegration; }; /** Input for checking sync status. */ export type SyncStatusInput = { /** Connection ID to check status for (if applicable). */ connectionId?: InputMaybe; /** Group ID to check status for (if applicable). */ groupId?: InputMaybe; /** Resource ID to check status for (if applicable). */ resourceId?: InputMaybe; /** The type of sync to check status for. */ syncType: SyncType; }; /** Result of checking sync status. */ export type SyncStatusOutput = AccessReviewNotFoundError | ConnectionNotFoundError | GroupNotFoundError | InvalidSyncTypeError | ResourceNotFoundError | SyncStatusResult; /** Successful result of checking sync status. */ export type SyncStatusResult = { __typename?: "SyncStatusResult"; /** The last successful sync task. */ lastSuccessfulSyncTask?: Maybe; /** The currently ongoing sync task, if any. */ ongoingSyncTask?: Maybe; /** Sync errors that occurred since the last successful sync. */ syncErrors: Array; }; /** A sync task that pulls data from end systems. */ export type SyncTask = { __typename?: "SyncTask"; /** When the task was created. */ createdAt: Scalars["Time"]["output"]; /** Unique identifier for the sync task. */ id: Scalars["SyncTaskId"]["output"]; /** Progress information for the task. */ progress?: Maybe; /** The user entity who started the task. */ startedByUser?: Maybe; /** The user who started this sync task. */ startedByUserId: Scalars["UserId"]["output"]; /** Current status of the sync task. */ status: SyncTaskStatus; /** The type of sync operation. */ syncType: SyncType; /** When the task was last updated. */ updatedAt: Scalars["Time"]["output"]; }; /** Input for fetching a sync task. */ export type SyncTaskInput = { /** The sync task ID. */ id: Scalars["SyncTaskId"]["input"]; }; /** Error returned when a sync task is not found. */ export type SyncTaskNotFoundError = Error & { __typename?: "SyncTaskNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of fetching a sync task. */ export type SyncTaskOutput = SyncTaskNotFoundError | SyncTaskResult; /** Progress information for a sync task. */ export type SyncTaskProgress = { __typename?: "SyncTaskProgress"; /** List of steps in the sync task. */ steps: Array; }; /** Successful result of fetching a sync task. */ export type SyncTaskResult = { __typename?: "SyncTaskResult"; /** The sync task. */ syncTask: SyncTask; }; /** Status of a sync task. */ export declare enum SyncTaskStatus { Completed = "COMPLETED", CompletedWithErrors = "COMPLETED_WITH_ERRORS", Started = "STARTED", TimedOut = "TIMED_OUT" } /** A step within a sync task. */ export type SyncTaskStep = { __typename?: "SyncTaskStep"; /** Name of the step. */ name: Scalars["String"]["output"]; /** Number of items completed so far. */ numItemsCompleted: Scalars["Int"]["output"]; /** Total number of items to process in this step. */ totalNumItems: Scalars["Int"]["output"]; }; /** Input for fetching multiple sync tasks. */ export type SyncTasksInput = { /** List of sync task IDs. */ ids?: InputMaybe>; }; /** Result of fetching multiple sync tasks. */ export type SyncTasksOutput = SyncTaskNotFoundError | SyncTasksResult; /** Successful result of fetching multiple sync tasks. */ export type SyncTasksResult = { __typename?: "SyncTasksResult"; /** List of sync tasks. */ syncTasks: Array; }; /** Types of sync operations supported by Opal. */ export declare enum SyncType { PullConnectionsAll = "PULL_CONNECTIONS_ALL", PullConnectionsAllConnectionUsers = "PULL_CONNECTIONS_ALL_CONNECTION_USERS", PullConnectionsAllGroups = "PULL_CONNECTIONS_ALL_GROUPS", PullConnectionsAllIncludeUnmanagedItems = "PULL_CONNECTIONS_ALL_INCLUDE_UNMANAGED_ITEMS", PullConnectionsAllIncludeUnmanagedItemsWithoutDetails = "PULL_CONNECTIONS_ALL_INCLUDE_UNMANAGED_ITEMS_WITHOUT_DETAILS", PullConnectionsAllResources = "PULL_CONNECTIONS_ALL_RESOURCES", PullConnectionsCustom = "PULL_CONNECTIONS_CUSTOM", PullConnectionsEventsOnly = "PULL_CONNECTIONS_EVENTS_ONLY", PullConnectionsSingleConnection = "PULL_CONNECTIONS_SINGLE_CONNECTION", PullConnectionsSingleConnectionFast = "PULL_CONNECTIONS_SINGLE_CONNECTION_FAST", PullConnectionsSingleGroup = "PULL_CONNECTIONS_SINGLE_GROUP", PullConnectionsSingleResource = "PULL_CONNECTIONS_SINGLE_RESOURCE", PullConnectionSetupImport = "PULL_CONNECTION_SETUP_IMPORT", PullHrIdpData = "PULL_HR_IDP_DATA", PullIdpConnection = "PULL_IDP_CONNECTION", PullOnCallGroups = "PULL_ON_CALL_GROUPS", PullPropagationTickets = "PULL_PROPAGATION_TICKETS", PullUarRemoteTickets = "PULL_UAR_REMOTE_TICKETS" } /** Error returned when attempting to modify the immutable Opal system user. */ export type SystemUserIsImmutableError = Error & { __typename?: "SystemUserIsImmutableError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** A tag that can be applied to users, resources, and groups. */ export type Tag = { __typename?: "Tag"; /** When the tag was created. */ createdAt: Scalars["Time"]["output"]; /** The creator user entity. */ creator?: Maybe; /** The user who created this tag. */ creatorUserId: Scalars["UserId"]["output"]; /** Unique identifier for the tag. */ id: Scalars["TagId"]["output"]; /** The tag key. */ key: Scalars["String"]["output"]; /** Group associations for this tag. */ tagGroups: Array; /** Resource associations for this tag. */ tagResources: Array; /** User associations for this tag. */ tagUsers: Array; /** When the tag was last updated. */ updatedAt: Scalars["Time"]["output"]; /** The tag value (optional). */ value?: Maybe; }; /** Error returned when attempting to create a tag that already exists. */ export type TagExistsError = Error & { __typename?: "TagExistsError"; message: Scalars["String"]["output"]; }; /** Tag filter for resources. */ export type TagFilter = { /** Tag key */ key: Scalars["String"]["input"]; /** Tag value */ value?: InputMaybe; }; /** Input for filtering by tags. */ export type TagFilterInput = { /** How to match tags. */ matchMode: TagFilterMatchMode; /** List of tags to filter by. */ tags: Array; }; /** Match mode for tag filtering. */ export declare enum TagFilterMatchMode { /** Match entities with all of the tags. */ All = "ALL", /** Match entities with any of the tags. */ Any = "ANY", /** Match entities with none of the tags. */ None = "NONE", /** Match entities that don't have all of the tags. */ NotAll = "NOT_ALL" } /** Input for fetching a specific tag. */ export type TagInput = { /** The tag ID. */ id: Scalars["TagId"]["input"]; }; /** Input for filtering by tag key and value. */ export type TagKeyFilterInput = { /** The tag key. */ key: Scalars["String"]["input"]; /** The tag value. */ value: Scalars["String"]["input"]; }; /** A key-value pair for a tag. */ export type TagKeyValue = { __typename?: "TagKeyValue"; /** The tag key. */ key: Scalars["String"]["output"]; /** The tag value (optional). */ value?: Maybe; }; /** Input for a tag key-value pair. */ export type TagKeyValueInput = { /** The tag key. */ key: Scalars["String"]["input"]; /** The tag value (optional). */ value?: InputMaybe; }; /** Error returned when a tag is not found. */ export type TagNotFoundError = Error & { __typename?: "TagNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of fetching a tag. */ export type TagOutput = TagNotFoundError | TagResult; /** Successful result of fetching a tag. */ export type TagResult = { __typename?: "TagResult"; /** The tag. */ tag: Tag; }; /** Selector that matches resources or groups based on a tag key-value pair within a connection. */ export type TagSelector = { __typename?: "TagSelector"; /** ID of the connection where this tag selector applies. */ connectionId: Scalars["ConnectionId"]["output"]; /** Tag key to match. */ key: Scalars["String"]["output"]; /** Tag value to match. */ value: Scalars["String"]["output"]; }; /** Input for specifying a tag selector to match resources or groups. */ export type TagSelectorInput = { /** ID of the connection where this tag selector applies. */ connectionId: Scalars["ConnectionId"]["input"]; /** Tag key to match. */ key: Scalars["String"]["input"]; /** Tag value to match. */ value: Scalars["String"]["input"]; }; /** Filters for fetching tags. */ export type TagsFilters = { /** Whether to only include user tags. */ onlyUserTags?: InputMaybe; }; /** Input for fetching tags with filtering and sorting. */ export type TagsInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Additional filters. */ filters?: InputMaybe; /** Maximum number of results to return. */ limit?: InputMaybe; /** Search query to filter tags. */ searchQuery?: InputMaybe; /** Sort configuration. */ sortBy?: InputMaybe; /** Specific tag IDs to fetch. */ tagIds?: InputMaybe>; }; /** Result of fetching tags. */ export type TagsOutput = TagsResult; /** Successful result of fetching tags. */ export type TagsResult = { __typename?: "TagsResult"; /** Cursor for pagination. */ cursor?: Maybe; /** List of tags. */ tags: Array; /** Total number of tags. */ totalNumTags: Scalars["Int"]["output"]; }; /** Sorting configuration for tags. */ export type TagsSortBy = { /** Sort direction. */ direction?: InputMaybe; /** Field to sort by. */ field?: InputMaybe; }; /** Field to sort tags by. */ export declare enum TagsSortByField { CreatedAt = "CREATED_AT", GroupCount = "GROUP_COUNT", Key = "KEY", ResourceCount = "RESOURCE_COUNT", UserCount = "USER_COUNT", Value = "VALUE" } export type TailscaleConnectionMetadata = { __typename?: "TailscaleConnectionMetadata"; tailnet: Scalars["String"]["output"]; }; export type TailscaleConnectionMetadataInput = { tailnet: Scalars["String"]["input"]; }; export type TailscaleCredentialsInput = { apiToken: Scalars["String"]["input"]; oauthClientId: Scalars["String"]["input"]; oauthClientSecret: Scalars["String"]["input"]; }; /** Error indicating the target user already has nested access. */ export type TargetUserHasNestedAccessError = Error & { __typename?: "TargetUserHasNestedAccessError"; /** Group IDs providing nested access */ groupIds?: Maybe>; /** Error message */ message: Scalars["String"]["output"]; }; export declare enum TaskTrigger { AccessExpired = "ACCESS_EXPIRED", AccessExtended = "ACCESS_EXTENDED", AccessReview = "ACCESS_REVIEW", AdminAction = "ADMIN_ACTION", BreakGlassUsed = "BREAK_GLASS_USED", ConnectionDeleted = "CONNECTION_DELETED", ConnectionPull = "CONNECTION_PULL", CustomAccessLevelDeleted = "CUSTOM_ACCESS_LEVEL_DELETED", CustomResourceImport = "CUSTOM_RESOURCE_IMPORT", Forfeit = "FORFEIT", GroupConverted = "GROUP_CONVERTED", GroupCreated = "GROUP_CREATED", GroupDeleted = "GROUP_DELETED", GroupGroupCreated = "GROUP_GROUP_CREATED", GroupGroupDeleted = "GROUP_GROUP_DELETED", GroupResourceCreated = "GROUP_RESOURCE_CREATED", GroupResourceDeleted = "GROUP_RESOURCE_DELETED", GroupSessionCreated = "GROUP_SESSION_CREATED", GroupUserCreated = "GROUP_USER_CREATED", GroupUserDeleted = "GROUP_USER_DELETED", IdpPull = "IDP_PULL", OnCallPull = "ON_CALL_PULL", PublicApiAction = "PUBLIC_API_ACTION", Remediation = "REMEDIATION", RemoteTicketApproved = "REMOTE_TICKET_APPROVED", RequestApproved = "REQUEST_APPROVED", RequestAutoApproved = "REQUEST_AUTO_APPROVED", ResourceCreated = "RESOURCE_CREATED", ResourceDeleted = "RESOURCE_DELETED", ScimPush = "SCIM_PUSH", ThirdPartyProviderPull = "THIRD_PARTY_PROVIDER_PULL", UserDeleted = "USER_DELETED" } /** A team within the organization. */ export type Team = { __typename?: "Team"; /** The team name. */ name: Scalars["String"]["output"]; /** Number of users in this team. */ numUsers: Scalars["Int"]["output"]; }; /** Filter for users by team. */ export type TeamFilter = { /** Filter to users without a team. */ teamUnset?: InputMaybe; /** Filter to users belonging to these teams. */ teams?: InputMaybe>; }; /** Input for fetching teams. */ export type TeamsInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Search query to filter teams. */ searchQuery?: InputMaybe; }; /** Result of fetching teams. */ export type TeamsOutput = TeamsResult; /** Successful result of fetching teams. */ export type TeamsResult = { __typename?: "TeamsResult"; /** Cursor for pagination. */ cursor?: Maybe; /** List of teams. */ teams: Array; }; export type TeleportConnectionCredentialsInput = { credentialsFile: Scalars["String"]["input"]; }; export type TeleportConnectionMetadata = { __typename?: "TeleportConnectionMetadata"; host: Scalars["String"]["output"]; tlsCaCertContent?: Maybe; tlsMode: Scalars["Boolean"]["output"]; }; export type TeleportConnectionMetadataInput = { host: Scalars["String"]["input"]; tlsCaCertContent?: InputMaybe; tlsMode: Scalars["Boolean"]["input"]; }; /** Client credentials for authenticating with a third-party service. */ export type ThirdPartyClientInput = { /** OAuth client ID. */ clientId: Scalars["String"]["input"]; /** Secondary authentication token (provider-specific). */ clientSecondaryToken?: InputMaybe; /** OAuth client secret. */ clientSecret: Scalars["String"]["input"]; /** Signing secret for webhook verification (e.g., Slack). */ signingSecret?: InputMaybe; }; /** Error returned when a third-party client configuration is not found. */ export type ThirdPartyClientNotFoundError = Error & { __typename?: "ThirdPartyClientNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when attempting to create a third-party connection that already exists. */ export type ThirdPartyConnectionAlreadyExistsError = Error & { __typename?: "ThirdPartyConnectionAlreadyExistsError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when the requested third-party connection does not exist. */ export type ThirdPartyConnectionNotFoundError = Error & { __typename?: "ThirdPartyConnectionNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when a third-party connection cannot be matched during authentication. */ export type ThirdPartyConnectionNotMatchedError = Error & { __typename?: "ThirdPartyConnectionNotMatchedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** A configured integration with a third-party service provider. */ export type ThirdPartyIntegration = { __typename?: "ThirdPartyIntegration"; /** The authentication flow type used for this integration. */ authFlowType: AuthFlowType; /** Indicates whether the connection is currently active. */ connectionActive?: Maybe; /** The connection ID associated with this integration, if applicable. */ connectionId?: Maybe; /** Unique identifier for the third-party integration. */ id: Scalars["ThirdPartyTokenId"]["output"]; /** The type of integration (user, organization, or connection). */ integrationType: IntegrationType; /** Provider-specific metadata for this integration. */ metadata?: Maybe; /** The third-party service provider for this integration. */ thirdPartyProvider: ThirdPartyProvider; }; /** Metadata specific to a GitHub integration, containing app name and target ID for redirect URL generation. */ export type ThirdPartyIntegrationGitHubMetadata = { __typename?: "ThirdPartyIntegrationGitHubMetadata"; /** GitHub app name. */ appName: Scalars["String"]["output"]; /** GitHub target ID used for redirect URL generation after app registration. */ targetId: Scalars["Int"]["output"]; }; /** Input for querying a specific third-party integration. */ export type ThirdPartyIntegrationInput = { /** Connection ID for connection-based integrations. */ connectionId?: InputMaybe; /** The third-party provider to query. */ thirdPartyProvider: ThirdPartyProvider; /** User ID for user-specific integrations. */ userId?: InputMaybe; }; /** Provider-specific metadata for third-party integrations. */ export type ThirdPartyIntegrationMetadata = ThirdPartyIntegrationGitHubMetadata | ThirdPartyIntegrationSlackMetadata; /** Provider-specific metadata input for third-party integrations. Only one provider field should be set. */ export type ThirdPartyIntegrationMetadataInput = { /** FreshService-specific metadata. */ freshservice?: InputMaybe; /** Google Chat-specific metadata. */ googlechat?: InputMaybe; /** Jira-specific metadata. */ jira?: InputMaybe; /** Notion-specific metadata. */ notion?: InputMaybe; /** ServiceNow-specific metadata. */ servicenow?: InputMaybe; }; /** Error returned when the requested third-party integration does not exist. */ export type ThirdPartyIntegrationNotFoundError = Error & { __typename?: "ThirdPartyIntegrationNotFoundError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of querying a third-party integration. */ export type ThirdPartyIntegrationOutput = ConnectionNotFoundError | ThirdPartyIntegrationNotFoundError | ThirdPartyIntegrationResult; /** Successful result containing the requested third-party integration. */ export type ThirdPartyIntegrationResult = { __typename?: "ThirdPartyIntegrationResult"; /** The requested third-party integration. */ thirdPartyIntegration: ThirdPartyIntegration; }; /** Metadata specific to a Slack integration, including workspace and enterprise information. */ export type ThirdPartyIntegrationSlackMetadata = { __typename?: "ThirdPartyIntegrationSlackMetadata"; /** Slack application ID. */ appId: Scalars["String"]["output"]; /** Slack enterprise ID, if the integration is with an enterprise grid. */ enterpriseId?: Maybe; /** Slack enterprise name, if the integration is with an enterprise grid. */ enterpriseName?: Maybe; /** List of Slack workspaces associated with this integration. */ workspaces: Array; }; /** A Slack workspace associated with an integration. */ export type ThirdPartyIntegrationSlackWorkspace = { __typename?: "ThirdPartyIntegrationSlackWorkspace"; /** Slack workspace ID. */ id: Scalars["String"]["output"]; /** Slack workspace name. */ name: Scalars["String"]["output"]; }; /** Input for querying multiple third-party integrations. */ export type ThirdPartyIntegrationsInput = { /** Filter integrations by type. */ integrationType: IntegrationType; }; /** Result of querying multiple third-party integrations. */ export type ThirdPartyIntegrationsOutput = ThirdPartyIntegrationsResult; /** Successful result containing a list of third-party integrations. */ export type ThirdPartyIntegrationsResult = { __typename?: "ThirdPartyIntegrationsResult"; /** List of third-party integrations matching the query. */ thirdPartyIntegrations: Array; }; /** Supported third-party service providers that can be integrated with Opal. */ export declare enum ThirdPartyProvider { /** Auth0 authentication provider. */ Auth0 = "AUTH0", /** FreshService IT service management platform integration. */ FreshService = "FRESH_SERVICE", /** GitHub integration for storing user mappings between Opal and GitHub users. */ GitHub = "GIT_HUB", /** GitHub connection integration for authentication after GitHub app installation. */ GitHubConnection = "GIT_HUB_CONNECTION", /** GitHub registration integration for handling redirects after GitHub app registration. */ GitHubRegistration = "GIT_HUB_REGISTRATION", /** GitLab integration for storing user mappings between Opal and GitLab SaaS users. */ GitLab = "GIT_LAB", /** GitLab connection integration for handling OAuth flow. */ GitLabConnection = "GIT_LAB_CONNECTION", /** Google Chat messaging platform integration. */ GoogleChat = "GOOGLE_CHAT", /** Jira project management and issue tracking integration. */ Jira = "JIRA", /** Linear project management and issue tracking integration. */ Linear = "LINEAR", /** Notion workspace and documentation integration. */ Notion = "NOTION", /** Opsgenie incident management platform integration. */ Opsgenie = "OPSGENIE", /** PagerDuty incident response platform integration. */ PagerDuty = "PAGER_DUTY", /** ServiceNow IT service management platform integration. */ ServiceNow = "SERVICE_NOW", /** Shortcut project management platform integration. */ Shortcut = "SHORTCUT", /** Slack messaging platform integration. */ Slack = "SLACK", /** Teleport access platform integration. */ Teleport = "TELEPORT" } /** Error returned when a third-party user cannot be matched to an Opal user. */ export type ThirdPartyUserNotMatchedError = Error & { __typename?: "ThirdPartyUserNotMatchedError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** A project in a ticketing system. */ export type TicketProject = { __typename?: "TicketProject"; /** Avatar URL for the project. */ avatarUrl?: Maybe; /** The project ID. */ id: Scalars["String"]["output"]; /** The project key. */ key: Scalars["String"]["output"]; /** The project name. */ name: Scalars["String"]["output"]; }; /** Result of fetching ticket projects. */ export type TicketProjectsOutput = SupportTicketApiKeyNotFoundError | TicketProjectsResult; /** Successful result of fetching ticket projects. */ export type TicketProjectsResult = { __typename?: "TicketProjectsResult"; /** List of available ticket projects. */ ticketProjects: Array; }; export type TicketPropagation = { __typename?: "TicketPropagation"; onGrant: Scalars["Boolean"]["output"]; onRevocation: Scalars["Boolean"]["output"]; ticketProvider?: Maybe; }; export type TicketPropagationInput = { onGrant: Scalars["Boolean"]["input"]; onRevocation: Scalars["Boolean"]["input"]; ticketProvider?: InputMaybe; }; /** Metadata about ticket propagation. */ export type TicketPropagationMetadata = { __typename?: "TicketPropagationMetadata"; /** List of tickets associated with the propagation. */ tickets: Array; }; export type TicketProvider = { __typename?: "TicketProvider"; ticketProjectId: Scalars["TicketProjectId"]["output"]; ticketProjectName: Scalars["String"]["output"]; ticketProvider: ThirdPartyProvider; }; export type TicketProviderInput = { ticketProjectId: Scalars["TicketProjectId"]["input"]; ticketProjectName: Scalars["String"]["input"]; ticketProvider: ThirdPartyProvider; }; /** Time bucket size for aggregating metrics data. */ export declare enum TimeBucket { /** Aggregate by day. */ Day = "DAY", /** Aggregate by month. */ Month = "MONTH", /** Aggregate by week. */ Week = "WEEK" } export declare enum TimePeriod { Day = "DAY", Hour = "HOUR", Month = "MONTH", Second = "SECOND", Week = "WEEK", Year = "YEAR" } /** A job title within the organization. */ export type Title = { __typename?: "Title"; /** The title name. */ name: Scalars["String"]["output"]; /** Number of users with this title. */ numUsers: Scalars["Int"]["output"]; }; /** Filter for users by job title. */ export type TitleFilter = { /** Filter to users without a job title. */ titleUnset?: InputMaybe; /** Filter to users with these job titles. */ titles?: InputMaybe>; }; /** Input for fetching titles. */ export type TitlesInput = { /** Cursor for pagination. */ cursor?: InputMaybe; /** Search query to filter titles. */ searchQuery?: InputMaybe; }; /** Result of fetching titles. */ export type TitlesOutput = TitlesResult; /** Successful result of fetching titles. */ export type TitlesResult = { __typename?: "TitlesResult"; /** Cursor for pagination. */ cursor?: Maybe; /** List of titles. */ titles: Array; }; /** TLS configuration for database connections. */ export type TlsConfig = { __typename?: "TlsConfig"; /** The TLS CA certificate content. */ tlsCaCertContent?: Maybe<Scalars["String"]["output"]>; /** Whether TLS is enabled. */ tlsMode: Scalars["Boolean"]["output"]; }; /** Error returned when too many group leaders are specified. */ export type TooManyGroupLeadersError = Error & { __typename?: "TooManyGroupLeadersError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Input filters for querying top bulk suggestions. */ export type TopBulkSuggestionsInput = { /** Filter by specific apps */ apps?: InputMaybe<Array<AppIdInput>>; /** Filter by group types */ groupType?: InputMaybe<Array<GroupType>>; /** Maximum risk score threshold */ maxRiskScore?: InputMaybe<Scalars["Int"]["input"]>; /** Minimum risk score threshold */ minRiskScore?: InputMaybe<Scalars["Int"]["input"]>; /** Filter by resource types */ resourceType?: InputMaybe<Array<ResourceType>>; /** Filter by risk types */ riskTypes?: InputMaybe<Array<RecommendationsSubscoreType>>; /** Search query string */ searchQuery?: InputMaybe<Scalars["String"]["input"]>; /** Filter by tags */ tags?: InputMaybe<Array<TagInput>>; }; /** A UI notification for a user. */ export type UiNotification = { __typename?: "UINotification"; /** The notification body text. */ body: Scalars["String"]["output"]; /** When the notification was created. */ createdAt: Scalars["Time"]["output"]; /** Unique identifier for the notification. */ id: Scalars["UINotificationId"]["output"]; /** When the notification was marked as read. */ readAt?: Maybe<Scalars["Time"]["output"]>; /** Optional tracking ID for analytics. */ trackingId?: Maybe<Scalars["UUID"]["output"]>; /** URL to navigate to when the notification is clicked. */ url: Scalars["String"]["output"]; /** The user who received this notification. */ userId: Scalars["UserId"]["output"]; }; export declare enum UiSource { Catalog = "CATALOG", PublicApi = "PUBLIC_API", ThreatCenter = "THREAT_CENTER", Unknown = "UNKNOWN" } /** Input for updating the reviewers assigned to a group in an access review. */ export type UpdateAccessReviewGroupReviewersInput = { /** The ID of the access review group to update. */ accessReviewGroupId: Scalars["AccessReviewGroupId"]["input"]; /** The list of reviewers to assign. */ reviewers: Array<ReviewerUserInput>; /** Whether to update reviewers only for specific entities within the group. */ updateOnlyForEntities: Scalars["Boolean"]["input"]; }; /** Result of updating access review group reviewers. */ export type UpdateAccessReviewGroupReviewersOutput = AccessReviewAlreadyStoppedError | UpdateAccessReviewGroupReviewersResult; /** Successful result of updating access review group reviewers. */ export type UpdateAccessReviewGroupReviewersResult = { __typename?: "UpdateAccessReviewGroupReviewersResult"; /** The updated access review group. */ accessReviewGroup: AccessReviewGroup; }; /** Input for updating an existing access review's settings. */ export type UpdateAccessReviewInput = { /** New deadline for the access review. */ deadline?: InputMaybe<Scalars["Time"]["input"]>; /** New default view for reviewers. */ endUserView?: InputMaybe<AccessReviewEndUserView>; /** The ID of the access review to update. */ id: Scalars["AccessReviewId"]["input"]; /** New name for the access review. */ name?: InputMaybe<Scalars["String"]["input"]>; /** New setting for including reviewer's manager in reminders. */ reminderIncludeManager?: InputMaybe<Scalars["Boolean"]["input"]>; /** New reminder schedule (days before deadline). */ reminderSchedule?: InputMaybe<Array<Scalars["Int"]["input"]>>; /** New time of day when reminders should be sent. */ reminderTimeOfDay?: InputMaybe<Scalars["Time"]["input"]>; /** New setting for sending reviewer assignment notifications. */ sendReviewerAssignmentNotification?: InputMaybe<Scalars["Boolean"]["input"]>; /** New timezone for scheduling reminders. */ timeZone?: InputMaybe<Scalars["String"]["input"]>; }; /** Result of updating an access review. */ export type UpdateAccessReviewOutput = AccessReviewAlreadyStoppedError | AccessReviewNotFoundError | UpdateAccessReviewResult; /** Input for updating the reviewers assigned to a resource in an access review. */ export type UpdateAccessReviewResourceReviewersInput = { /** The ID of the access review resource to update. */ accessReviewResourceId: Scalars["AccessReviewResourceId"]["input"]; /** The list of reviewers to assign. */ reviewers: Array<ReviewerUserInput>; /** Whether to update reviewers only for specific entities within the resource. */ updateOnlyForEntities: Scalars["Boolean"]["input"]; }; /** Result of updating access review resource reviewers. */ export type UpdateAccessReviewResourceReviewersOutput = AccessReviewAlreadyStoppedError | UpdateAccessReviewResourceReviewersResult; /** Successful result of updating access review resource reviewers. */ export type UpdateAccessReviewResourceReviewersResult = { __typename?: "UpdateAccessReviewResourceReviewersResult"; /** The updated access review resource. */ accessReviewResource: AccessReviewResource; }; /** Successful result containing the updated access review. */ export type UpdateAccessReviewResult = { __typename?: "UpdateAccessReviewResult"; /** The updated access review. */ accessReview: AccessReview; }; /** Input for updating reviewers assigned to access review items */ export type UpdateAccessReviewReviewersInput = { /** List of access review connection user IDs to update reviewers for */ accessReviewConnectionUserIds?: InputMaybe<Array<Scalars["AccessReviewConnectionUserId"]["input"]>>; /** List of access review group-group IDs to update reviewers for */ accessReviewGroupGroupIds?: InputMaybe<Array<Scalars["AccessReviewGroupGroupId"]["input"]>>; /** List of access review group resource IDs to update reviewers for */ accessReviewGroupResourceIds?: InputMaybe<Array<Scalars["AccessReviewGroupResourceId"]["input"]>>; /** List of access review group user IDs to update reviewers for */ accessReviewGroupUserIds?: InputMaybe<Array<Scalars["AccessReviewGroupUserId"]["input"]>>; /** The ID of the access review */ accessReviewId: Scalars["AccessReviewId"]["input"]; /** List of access review resource role assignment IDs to update reviewers for */ accessReviewResourceResourceIds?: InputMaybe<Array<Scalars["AccessReviewRoleAssignmentId"]["input"]>>; /** List of access review resource user IDs to update reviewers for */ accessReviewResourceUserIds?: InputMaybe<Array<Scalars["AccessReviewResourceUserId"]["input"]>>; /** The list of reviewers to assign */ reviewers: Array<ReviewerUserInput>; }; /** Union type for the result of updating access review reviewers */ export type UpdateAccessReviewReviewersOutput = AccessReviewAlreadyStoppedError | UpdateAccessReviewReviewersResult | UpdateAccessReviewReviewersValidationError; /** Result of successfully updating access review reviewers */ export type UpdateAccessReviewReviewersResult = { __typename?: "UpdateAccessReviewReviewersResult"; /** Indicates whether the update was successful */ success?: Maybe<Scalars["Boolean"]["output"]>; }; /** Error returned when reviewer assignment validation fails (e.g., self-assignment) */ export type UpdateAccessReviewReviewersValidationError = { __typename?: "UpdateAccessReviewReviewersValidationError"; /** Description of the validation error */ message: Scalars["String"]["output"]; }; /** Input for updating an existing access review template. */ export type UpdateAccessReviewTemplateInput = { /** New duration in days for how long the access review should run. */ accessReviewDuration?: InputMaybe<Scalars["Int"]["input"]>; /** New default view for reviewers. */ endUserView?: InputMaybe<AccessReviewEndUserView>; /** New filters defining the scope of the access review. */ filters?: InputMaybe<FiltersInput>; /** New policy for group resource visibility. */ groupResourceVisibilityPolicy?: InputMaybe<AccessReviewGroupResourceVisibilityPolicy>; /** The ID of the access review template to update. */ id: Scalars["AccessReviewTemplateId"]["input"]; /** New setting for including group bindings in the review. */ includeGroupBindings?: InputMaybe<Scalars["Boolean"]["input"]>; /** New months when the access review should run (1-12). */ monthSchedule?: InputMaybe<Array<Scalars["Int"]["input"]>>; /** The new name for the template. */ name?: InputMaybe<Scalars["String"]["input"]>; /** New setting for including the reviewer's manager in reminders. */ reminderIncludeManager?: InputMaybe<Scalars["Boolean"]["input"]>; /** New days before deadline when reminders should be sent. */ reminderSchedule?: InputMaybe<Array<Scalars["Int"]["input"]>>; /** New time of day when reminders should be sent. */ reminderTimeOfDay?: InputMaybe<Scalars["Time"]["input"]>; /** New policy for assigning reviewers to access. */ reviewerAssignmentPolicy?: InputMaybe<AccessReviewReviewerAssignmentPolicy>; /** New setting for allowing self-review. */ selfReviewAllowed?: InputMaybe<Scalars["Boolean"]["input"]>; /** New setting for sending reviewer assignment notifications. */ sendReviewerAssignmentNotification?: InputMaybe<Scalars["Boolean"]["input"]>; /** New day of the month when the access review should start. */ startDayOfMonth?: InputMaybe<Scalars["Int"]["input"]>; /** New timezone for scheduling the access review. */ timeZone?: InputMaybe<Scalars["String"]["input"]>; }; /** Result of updating an access review template. */ export type UpdateAccessReviewTemplateOutput = AccessReviewTemplateNotFound | UpdateAccessReviewTemplateResult; /** Successful result containing the updated access review template. */ export type UpdateAccessReviewTemplateResult = { __typename?: "UpdateAccessReviewTemplateResult"; /** The updated access review template. */ accessReviewTemplate: AccessReviewTemplate; }; export type UpdateBundleInput = { adminOwnerId?: InputMaybe<Scalars["OwnerId"]["input"]>; description?: InputMaybe<Scalars["String"]["input"]>; id: Scalars["BundleId"]["input"]; name?: InputMaybe<Scalars["String"]["input"]>; visibility?: InputMaybe<Visibility>; visibilityGroupsIds?: InputMaybe<Array<Scalars["GroupId"]["input"]>>; }; export type UpdateBundleOutput = BundleNameExistsError | BundleNotFoundError | UpdateBundleResult; export type UpdateBundleResult = { __typename?: "UpdateBundleResult"; bundle: Bundle; }; /** Input for updating configuration template tag associations. */ export type UpdateConfigTemplateTagsInput = { /** List of configuration template tag associations to set. */ configTemplateTags: Array<ConfigTemplateTagInput>; }; /** Output type for updateConfigTemplateTags mutation. */ export type UpdateConfigTemplateTagsOutput = UpdateConfigTemplateTagsResult; /** Result of updating configuration template tags. */ export type UpdateConfigTemplateTagsResult = { __typename?: "UpdateConfigTemplateTagsResult"; /** Whether the operation was successful. */ success: Scalars["Boolean"]["output"]; }; export type UpdateConfigurationTemplateInput = { adminOwnerId?: InputMaybe<Scalars["OwnerId"]["input"]>; breakGlassUsersIds?: InputMaybe<Array<Scalars["UserId"]["input"]>>; customRequestNotification?: InputMaybe<NullableString>; id: Scalars["ConfigurationId"]["input"]; maxDirectUsersAllowed?: InputMaybe<NullableInt>; maxUsersExceededMessage?: InputMaybe<NullableString>; messageChannelIds?: InputMaybe<Array<Scalars["MessageChannelId"]["input"]>>; name?: InputMaybe<Scalars["String"]["input"]>; onCallScheduleIds?: InputMaybe<Array<Scalars["OnCallScheduleId"]["input"]>>; onCallSchedules?: InputMaybe<Array<OnCallScheduleInput>>; requestConfigs?: InputMaybe<Array<RequestConfigInput>>; requireMfaToApprove?: InputMaybe<Scalars["Boolean"]["input"]>; requireMfaToConnect?: InputMaybe<Scalars["Boolean"]["input"]>; ticketPropagation?: InputMaybe<TicketPropagationInput>; visibility?: InputMaybe<Visibility>; visibilityGroupsIds?: InputMaybe<Array<Scalars["GroupId"]["input"]>>; }; export type UpdateConfigurationTemplateOutput = ConfigurationTemplateNameExistsError | UpdateConfigurationTemplateResult; export type UpdateConfigurationTemplateResult = { __typename?: "UpdateConfigurationTemplateResult"; configurationTemplate: ConfigurationTemplate; }; export type UpdateConnectionInput = { adminOwnerId?: InputMaybe<Scalars["OwnerId"]["input"]>; autoImportGroupResources?: InputMaybe<Scalars["Boolean"]["input"]>; childrenDefaultConfigTemplateId?: InputMaybe<NullableConfigurationId>; connectionImage?: InputMaybe<Scalars["Upload"]["input"]>; credentials?: InputMaybe<ConnectionCredentialsInput>; description?: InputMaybe<Scalars["String"]["input"]>; id: Scalars["ConnectionId"]["input"]; importNotification?: InputMaybe<ConnectionImportNotificationInput>; importSetting?: InputMaybe<ImportSetting>; importVisibility?: InputMaybe<Visibility>; importVisibilityGroupsIds?: InputMaybe<Array<Scalars["GroupId"]["input"]>>; metadata?: InputMaybe<ConnectionMetadataInput>; name?: InputMaybe<Scalars["String"]["input"]>; provisionConfigurations?: InputMaybe<Array<ProvisionConfigurationInput>>; visibility?: InputMaybe<Visibility>; visibilityGroupIds?: InputMaybe<Array<Scalars["GroupId"]["input"]>>; webhookEnabled?: InputMaybe<Scalars["Boolean"]["input"]>; }; export type UpdateConnectionOutput = ConnectionBadMetadataError | ConnectionNotFoundError | ConnectionUnhealthyError | ConnectionVisibilityGroupNotFoundError | UpdateConnectionResult | UserFacingError; export type UpdateConnectionResult = { __typename?: "UpdateConnectionResult"; connection: Connection; }; /** Input for updating reviewers assigned to a connection in an access review */ export type UpdateConnectionReviewersInput = { /** The ID of the access review connection */ accessReviewConnectionId: Scalars["AccessReviewConnectionId"]["input"]; /** The list of reviewers to assign */ reviewers: Array<ReviewerUserInput>; }; /** Union type for the result of updating connection reviewers */ export type UpdateConnectionReviewersOutput = AccessReviewAlreadyStoppedError | UpdateConnectionReviewersResult; /** Result of successfully updating connection reviewers */ export type UpdateConnectionReviewersResult = { __typename?: "UpdateConnectionReviewersResult"; /** The updated access review connection */ accessReviewConnection: AccessReviewConnection; }; /** Input for updating reviewers assigned to a specific user's access within a connection access review */ export type UpdateConnectionUserReviewersInput = { /** The ID of the access review connection user entry */ accessReviewConnectionUserId: Scalars["AccessReviewConnectionUserId"]["input"]; /** The list of reviewers to assign */ reviewers: Array<ReviewerUserInput>; }; /** Union type for the result of updating connection user reviewers */ export type UpdateConnectionUserReviewersOutput = AccessReviewAlreadyStoppedError | UpdateAccessReviewReviewersValidationError | UpdateConnectionUserReviewersResult; /** Result of successfully updating connection user reviewers */ export type UpdateConnectionUserReviewersResult = { __typename?: "UpdateConnectionUserReviewersResult"; /** The updated access review connection */ accessReviewConnection: AccessReviewConnection; }; /** Error occurred while updating event stream. */ export type UpdateEventStreamError = Error & { __typename?: "UpdateEventStreamError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Input for updating an event stream. */ export type UpdateEventStreamInput = { /** Updated authentication credentials. */ credentials?: InputMaybe<PubsubPublishConnectionsCredentialsInput>; /** Whether the event stream should be enabled. */ enabled?: InputMaybe<Scalars["Boolean"]["input"]>; /** ID of the event stream to update. */ id: Scalars["EventStreamId"]["input"]; /** Updated connection metadata. */ metadata?: InputMaybe<PubsubPublishConnectionMetadataInput>; /** New name for the event stream. */ name?: InputMaybe<Scalars["String"]["input"]>; }; /** Output for updating an event stream. */ export type UpdateEventStreamOutput = UpdateEventStreamError | UpdateEventStreamResult; /** Result of updating an event stream. */ export type UpdateEventStreamResult = { __typename?: "UpdateEventStreamResult"; /** The updated event stream. */ eventStream: EventStream; }; /** Input for updating a single group binding. */ export type UpdateGroupBindingInput = { /** IDs of the Opal groups to bind to the source group. */ groupIds: Array<Scalars["GroupId"]["input"]>; /** ID of the group binding to update. */ id: Scalars["GroupBindingId"]["input"]; /** ID of the source group. */ sourceGroupId: Scalars["GroupId"]["input"]; }; /** Input for updating multiple group bindings. */ export type UpdateGroupBindingsInput = { /** List of group bindings to update. */ groupBindings: Array<UpdateGroupBindingInput>; }; /** Result of updating group bindings. */ export type UpdateGroupBindingsOutput = GroupAlreadyBelongsToBindingError | GroupBindingHasNoGroupsError | GroupBindingNotFoundError | UpdateGroupBindingsResult; /** Successful result of updating group bindings. */ export type UpdateGroupBindingsResult = { __typename?: "UpdateGroupBindingsResult"; /** The updated group bindings. */ groupBindings: Array<GroupBinding>; }; /** Input for updating a group. */ export type UpdateGroupInput = { /** Updated common metadata. */ commonMetadata?: InputMaybe<CommonMetadataInput>; /** Updated description for the group. */ description?: InputMaybe<Scalars["String"]["input"]>; /** ID of the group to update. */ groupId: Scalars["GroupId"]["input"]; /** Updated name for the group. */ name?: InputMaybe<Scalars["String"]["input"]>; }; /** Result of updating a group. */ export type UpdateGroupOutput = GroupNotFoundError | UpdateGroupResult; /** Input for updating a single group-resource association. */ export type UpdateGroupResourceInput = { /** Updated level of access. */ accessLevel: ResourceAccessLevelInput; /** Updated duration in minutes, or null to remove expiration. */ durationInMinutes?: InputMaybe<NullableInt>; /** ID of the group. */ groupId: Scalars["GroupId"]["input"]; /** ID of the resource. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Input for updating the reviewers assigned to a group-resource relationship in an access review. */ export type UpdateGroupResourceReviewersInput = { /** The ID of the access review group-resource to update. */ accessReviewGroupResourceId: Scalars["AccessReviewGroupResourceId"]["input"]; /** The list of reviewers to assign. */ reviewers: Array<ReviewerUserInput>; }; /** Result of updating group-resource reviewers. */ export type UpdateGroupResourceReviewersOutput = AccessReviewAlreadyStoppedError | UpdateGroupResourceReviewersResult; /** Successful result of updating group-resource reviewers. */ export type UpdateGroupResourceReviewersResult = { __typename?: "UpdateGroupResourceReviewersResult"; /** The access review group containing the resource. */ accessReviewGroup: AccessReviewGroup; /** The updated access review group-resource. */ accessReviewGroupResource: AccessReviewGroupResource; }; /** Input for updating multiple group-resource associations. */ export type UpdateGroupResourcesInput = { /** List of group-resource associations to update. */ groupResources: Array<UpdateGroupResourceInput>; /** UI source that triggered the update. */ source?: InputMaybe<UiSource>; }; /** Result of updating group-resource associations. */ export type UpdateGroupResourcesOutput = CallToWebhookFailedError | GroupNotFoundError | ResourceNotFoundError | UpdateGroupResourcesResult | UserFacingError; /** Successful result of updating group-resource associations. */ export type UpdateGroupResourcesResult = { __typename?: "UpdateGroupResourcesResult"; /** Whether the update was successful. */ success: Scalars["Boolean"]["output"]; /** IDs of the push tasks for propagating changes to the remote system. */ taskIds: Array<Scalars["PushTaskId"]["output"]>; }; /** Successful result of updating a group. */ export type UpdateGroupResult = { __typename?: "UpdateGroupResult"; /** The updated group. */ group: Group; }; /** Input for updating a single user-group association. */ export type UpdateGroupUserInput = { /** Updated level of access. */ accessLevel: GroupAccessLevelInput; /** Updated duration in minutes, or null to remove expiration. */ durationInMinutes?: InputMaybe<NullableInt>; /** ID of the group. */ groupId: Scalars["GroupId"]["input"]; /** ID of the user. */ userId: Scalars["UserId"]["input"]; }; /** Input for updating the reviewers assigned to a group-user relationship in an access review. */ export type UpdateGroupUserReviewersInput = { /** The ID of the access review group-user to update. */ accessReviewGroupUserId: Scalars["AccessReviewGroupUserId"]["input"]; /** The list of reviewers to assign. */ reviewers: Array<ReviewerUserInput>; }; /** Result of updating group-user reviewers. */ export type UpdateGroupUserReviewersOutput = AccessReviewAlreadyStoppedError | UpdateAccessReviewReviewersValidationError | UpdateGroupUserReviewersResult; /** Successful result of updating group-user reviewers. */ export type UpdateGroupUserReviewersResult = { __typename?: "UpdateGroupUserReviewersResult"; /** The access review group containing the user. */ accessReviewGroup: AccessReviewGroup; /** The updated access review group-user. */ accessReviewGroupUser: AccessReviewGroupUser; }; /** Result for a single user-group update. */ export type UpdateGroupUsersEntryOutput = UpdateGroupUsersEntryResult; /** Successful result for a single user-group update. */ export type UpdateGroupUsersEntryResult = { __typename?: "UpdateGroupUsersEntryResult"; /** The updated user-group association. */ groupUser: GroupUser; }; /** Input for updating multiple user-group associations. */ export type UpdateGroupUsersInput = { /** List of user-group associations to update. */ groupUsers: Array<UpdateGroupUserInput>; /** UI source that triggered the update. */ source?: InputMaybe<UiSource>; }; /** Result of updating user-group associations. */ export type UpdateGroupUsersOutput = GroupNotFoundError | UpdateGroupUsersResult; /** Successful result of updating user-group associations. */ export type UpdateGroupUsersResult = { __typename?: "UpdateGroupUsersResult"; /** Results for each user-group update. */ entries: Array<UpdateGroupUsersEntryOutput>; /** IDs of the push tasks for propagating changes to the remote system. */ taskIds: Array<Scalars["PushTaskId"]["output"]>; }; /** Input for updating an IP zone. */ export type UpdateIpaclEntryInput = { /** Optional description for this IP zone. */ description?: InputMaybe<Scalars["String"]["input"]>; /** The ID of the zone to update. */ id: Scalars["ID"]["input"]; /** List of IP addresses or CIDR ranges to allow (e.g., ["192.168.1.1", "10.0.0.0/24"]). */ ipAddresses?: InputMaybe<Array<Scalars["String"]["input"]>>; /** Name of the IP zone (e.g., "Office Network", "VPN IPs"). */ name?: InputMaybe<Scalars["String"]["input"]>; }; /** Result of updating an IP ACL entry. */ export type UpdateIpaclEntryOutput = IpaclEntryInvalidError | IpaclEntryNotFoundError | UpdateIpaclEntryResult; /** Successfully updated IP ACL entry. */ export type UpdateIpaclEntryResult = { __typename?: "UpdateIPACLEntryResult"; /** The updated IP ACL entry. */ entry: IpaclEntry; }; /** Input for updating an IdP connection. */ export type UpdateIdpConnectionInput = { /** Updated list of custom attributes allowed to be imported. */ customAttributesAllowlist?: InputMaybe<NullableStrings>; /** ID of the IdP connection to update. */ id: Scalars["IdpConnectionId"]["input"]; }; /** Result of updating an IdP connection. */ export type UpdateIdpConnectionOutput = IdpConnectionNotFoundError | UpdateIdpConnectionResult; /** Successful result of updating an IdP connection. */ export type UpdateIdpConnectionResult = { __typename?: "UpdateIdpConnectionResult"; /** The updated IdP connection. */ idpConnection: IdpConnection; }; export type UpdateItemsInput = { adminOwnerId?: InputMaybe<Scalars["OwnerId"]["input"]>; breakGlassUsersIds?: InputMaybe<Array<Scalars["UserId"]["input"]>>; commonMetadata?: InputMaybe<CommonMetadataInput>; configurationId?: InputMaybe<NullableConfigurationId>; customRequestNotification?: InputMaybe<NullableString>; description?: InputMaybe<Scalars["String"]["input"]>; forkConfigurationTemplates?: InputMaybe<Scalars["Boolean"]["input"]>; groupAccessRuleCondition?: InputMaybe<AccessRuleConditionInput>; groupLeaderUserIds?: InputMaybe<Array<Scalars["UserId"]["input"]>>; maxDirectUsersAllowed?: InputMaybe<NullableInt>; maxUsersExceededMessage?: InputMaybe<NullableString>; messageChannelIds?: InputMaybe<Array<Scalars["MessageChannelId"]["input"]>>; name?: InputMaybe<Scalars["String"]["input"]>; onCallSchedules?: InputMaybe<Array<OnCallScheduleInput>>; requestConfigs?: InputMaybe<Array<RequestConfigInput>>; requireMfaToApprove?: InputMaybe<Scalars["Boolean"]["input"]>; requireMfaToConnect?: InputMaybe<Scalars["Boolean"]["input"]>; riskSensitivity?: InputMaybe<RiskLevel>; rolePermissions?: InputMaybe<Array<SetRolePermissionInput>>; tagIds?: InputMaybe<Array<Scalars["TagId"]["input"]>>; ticketPropagation?: InputMaybe<TicketPropagationInput>; visibility?: InputMaybe<Visibility>; visibilityGroupsIds?: InputMaybe<Array<Scalars["GroupId"]["input"]>>; }; /** Input for updating an Opal scoped role's permissions. */ export type UpdateOpalScopedRoleInput = { /** The new permissions for this role. */ permissions: Array<SetRolePermissionInput>; /** The ID of the role resource to update. */ resourceID: Scalars["ResourceId"]["input"]; }; /** Result of updating an Opal scoped role. */ export type UpdateOpalScopedRoleOutput = { __typename?: "UpdateOpalScopedRoleOutput"; /** The ID of the updated role resource. */ resourceID: Scalars["ResourceId"]["output"]; }; /** Input for updating organization settings. */ export type UpdateOrganizationSettingsInput = { accessExpiringNotifications?: InputMaybe<Array<Scalars["Int"]["input"]>>; auditTicketProvider?: InputMaybe<NullableTicketProvider>; authSessionExpirationInMinutes?: InputMaybe<Scalars["Int"]["input"]>; autoCancelRequestsAfterMinutes?: InputMaybe<NullableInt>; autoLoginUser?: InputMaybe<Scalars["Boolean"]["input"]>; createOrUpdateOidcProviderInput?: InputMaybe<CreateOrUpdateOidcProviderInput>; customBanner?: InputMaybe<Scalars["String"]["input"]>; customSearchLink?: InputMaybe<CustomSearchLinkInput>; customerSupportExpiresAt?: InputMaybe<Scalars["Time"]["input"]>; defaultNotifications?: InputMaybe<DefaultNotificationsInput>; dryRunModeEnabled?: InputMaybe<Scalars["Boolean"]["input"]>; errorNotificationSetting?: InputMaybe<ErrorNotificationSettingType>; fiscalYearStartMonth?: InputMaybe<Scalars["Int"]["input"]>; isRemoteReadOnly?: InputMaybe<Scalars["Boolean"]["input"]>; maxGroupDurationInMinutes?: InputMaybe<NullableInt>; maxResourceDurationInMinutes?: InputMaybe<NullableInt>; maxUsersExceededMessage?: InputMaybe<Scalars["String"]["input"]>; ownerPermissions?: InputMaybe<Array<RolePermission>>; reasonMinWordCount?: InputMaybe<NullableInt>; requestDelegationExcludedGroupIDs?: InputMaybe<Array<Scalars["GroupId"]["input"]>>; roleCreationReviewerOwnerId?: InputMaybe<NullableOwnerId>; settings?: InputMaybe<Array<GeneralSettingType>>; syncErrorHandlerOwnerId?: InputMaybe<NullableOwnerId>; unusedAccessThresholdInDays?: InputMaybe<Scalars["Int"]["input"]>; }; /** Result of updating organization settings. */ export type UpdateOrganizationSettingsOutput = AccessExpiringNotificationsInvalidError | AccessRequestEscalationPeriodInvalidError | AuthSessionExpirationInvalidError | AutoCancelRequestsAfterMinutesInvalidError | CustomSearchLinkInvalidError | CustomerSupportSettingsInvalid | FiscalYearStartMonthInvalidError | OidcIssuerNotValidError | OrgMaxGroupDurationInvalidError | OrgMaxResourceDurationInvalidError | OrganizationSettingsNotFoundError | ReasonMinWordCountInvalidError | UpdateOrganizationSettingsResult; /** Successfully updated organization settings. */ export type UpdateOrganizationSettingsResult = { __typename?: "UpdateOrganizationSettingsResult"; /** The updated organization settings. */ settings: OrganizationSettings; }; /** Input for updating an owner. */ export type UpdateOwnerInput = { /** The new escalation period in minutes. */ accessRequestEscalationPeriodInMinutes?: InputMaybe<NullableInt>; /** The new description for the owner. */ description?: InputMaybe<Scalars["String"]["input"]>; /** The new name for the owner. */ name?: InputMaybe<Scalars["String"]["input"]>; /** The owner ID to update. */ ownerId: Scalars["OwnerId"]["input"]; /** The new reviewer message channel ID. */ reviewerMessageChannelId?: InputMaybe<NullableMessageChannelId>; /** The new source group ID. */ sourceGroupId?: InputMaybe<NullableGroupId>; }; /** Result of updating an owner. */ export type UpdateOwnerOutput = CannotAddUserToSyncedOwnerError | GroupNotFoundError | MessageChannelNotFoundError | OwnerAccessRequestFrequencyReminderOutOfBoundsError | OwnerNotFoundError | UpdateOwnerResult; /** Successfully updated an owner. */ export type UpdateOwnerResult = { __typename?: "UpdateOwnerResult"; /** The updated owner. */ owner: Owner; }; /** Successfully updated owner users. */ export type UpdateOwnerUsersForOwnerResult = { __typename?: "UpdateOwnerUsersForOwnerResult"; /** The updated list of owner users. */ ownerUsers: Array<OwnerUser>; }; /** Input for updating a request template. */ export type UpdateRequestTemplateInput = { /** Updated custom fields for the template. */ customFields?: InputMaybe<Array<RequestTemplateCustomFieldInput>>; /** The request template ID to update. */ id: Scalars["RequestTemplateId"]["input"]; /** The new name for the request template. */ name?: InputMaybe<Scalars["String"]["input"]>; }; /** Result of updating a request template. */ export type UpdateRequestTemplateOutput = CustomFieldExistsError | RequestTemplateNameExistsError | UpdateRequestTemplateResult; /** Successfully updated a request template. */ export type UpdateRequestTemplateResult = { __typename?: "UpdateRequestTemplateResult"; /** The updated request template. */ requestTemplate: RequestTemplate; }; /** Input for updating a custom access level. */ export type UpdateResourceCustomAccessLevelInput = { /** The custom access level ID to update. */ id: Scalars["ResourceCustomAccessLevelId"]["input"]; /** The new policy. */ policy?: InputMaybe<Scalars["String"]["input"]>; /** The new priority. */ priority?: InputMaybe<Scalars["Int"]["input"]>; /** Whether the access level is requestable for the default request configuration. */ requestableByDefault?: InputMaybe<Scalars["Boolean"]["input"]>; }; /** Result of updating a custom access level. */ export type UpdateResourceCustomAccessLevelOutput = ResourceCustomAccessLevelNotFoundError | ResourceCustomAccessLevelPriorityError | UpdateResourceCustomAccessLevelResult; /** Successfully updated a custom access level. */ export type UpdateResourceCustomAccessLevelResult = { __typename?: "UpdateResourceCustomAccessLevelResult"; /** The updated custom access level. */ resourceCustomAccessLevel: ResourceCustomAccessLevel; }; /** Input for batch updating custom access levels. */ export type UpdateResourceCustomAccessLevelsInput = { /** List of custom access level update information. */ updateInfos: Array<UpdateResourceCustomAccessLevelInput>; }; /** Result of batch updating custom access levels. */ export type UpdateResourceCustomAccessLevelsOutput = ResourceCustomAccessLevelNotFoundError | ResourceCustomAccessLevelPriorityError | UpdateResourceCustomAccessLevelsResult; /** Successfully updated multiple custom access levels. */ export type UpdateResourceCustomAccessLevelsResult = { __typename?: "UpdateResourceCustomAccessLevelsResult"; /** The updated custom access levels. */ resourceCustomAccessLevels: Array<ResourceCustomAccessLevel>; }; /** Input for updating a single resource user. */ export type UpdateResourceUserInput = { /** The access level. */ accessLevel: ResourceAccessLevelInput; /** The new duration in minutes (use null to clear expiration). */ durationInMinutes?: InputMaybe<NullableInt>; /** The resource ID. */ resourceId: Scalars["ResourceId"]["input"]; /** The user ID. */ userId: Scalars["UserId"]["input"]; }; /** Input for updating the reviewers assigned to a resource-user relationship in an access review. */ export type UpdateResourceUserReviewersInput = { /** The ID of the access review resource-user to update. */ accessReviewResourceUserId: Scalars["AccessReviewResourceUserId"]["input"]; /** The list of reviewers to assign. */ reviewers: Array<ReviewerUserInput>; }; /** Result of updating resource-user reviewers. */ export type UpdateResourceUserReviewersOutput = AccessReviewAlreadyStoppedError | UpdateAccessReviewReviewersValidationError | UpdateResourceUserReviewersResult; /** Successful result of updating resource-user reviewers. */ export type UpdateResourceUserReviewersResult = { __typename?: "UpdateResourceUserReviewersResult"; /** The access review resource containing the user. */ accessReviewResource: AccessReviewResource; }; /** Input for updating resource users. */ export type UpdateResourceUsersInput = { /** List of resource users to update. */ resourceUsers?: InputMaybe<Array<UpdateResourceUserInput>>; /** The UI source of this update (for tracking). */ source?: InputMaybe<UiSource>; }; /** Result of updating resource users. */ export type UpdateResourceUsersOutput = ResourceNotFoundError | UpdateResourceUsersResult; /** Successfully updated resource users. */ export type UpdateResourceUsersResult = { __typename?: "UpdateResourceUsersResult"; /** The updated resource users. */ resourceUsers?: Maybe<Array<ResourceUser>>; /** The push task ID for propagating the changes (if applicable). */ taskId?: Maybe<Scalars["PushTaskId"]["output"]>; }; /** Input for updating resources. */ export type UpdateResourcesInput = { /** New common metadata */ commonMetadata?: InputMaybe<CommonMetadataInput>; /** Custom request notification message */ customRequestNotification?: InputMaybe<NullableString>; /** New description for the resources */ description?: InputMaybe<Scalars["String"]["input"]>; /** New name for the resources */ name?: InputMaybe<Scalars["String"]["input"]>; /** IDs of resources to update */ resourceIds: Array<Scalars["ResourceId"]["input"]>; }; /** Result or error for update resources operation. */ export type UpdateResourcesOutput = ConfigurationVisibilityGroupNotFoundError | InvalidUpdateResourceVisibilityGroupError | OpalResourceImmutableError | ResourceNotFoundError | UpdateResourcesResult; /** Successful result of updating resources. */ export type UpdateResourcesResult = { __typename?: "UpdateResourcesResult"; /** The updated resources */ resources: Array<Resource>; }; /** Input for updating the reviewer stages of a request configuration. */ export type UpdateReviewerStagesInput = { /** Whether requests should be auto-approved. */ autoApprove?: InputMaybe<Scalars["Boolean"]["input"]>; /** Whether the resource is requestable. */ isRequestable?: InputMaybe<Scalars["Boolean"]["input"]>; /** The ID of the request configuration to update. */ requestConfigurationID: Scalars["RequestConfigurationId"]["input"]; /** The reviewer stages to configure. */ stages?: InputMaybe<Array<ReviewerInputStage>>; }; /** Input for updating a role assignment. */ export type UpdateRoleAssignmentInput = { /** The level of access. */ accessLevel: AccessLevelInput; /** The ID of the entity. */ entityID: Scalars["EntityId"]["input"]; /** The type of the entity. */ entityType: EntityType; /** The new duration in minutes (nullable to allow removal). */ newDurationInMinutes?: InputMaybe<NullableInt>; /** The ID of the principal. */ principalID: Scalars["EntityId"]["input"]; /** The type of the principal. */ principalType: EntityType; }; /** Result of updating a single role assignment. */ export type UpdateRoleAssignmentResult = { __typename?: "UpdateRoleAssignmentResult"; /** The updated role assignment. */ roleAssignment: RoleAssignment; }; /** Input for updating multiple role assignments. */ export type UpdateRoleAssignmentsInput = { /** The list of role assignment updates to perform. */ roleAssignmentUpdates: Array<UpdateRoleAssignmentInput>; /** The UI source that initiated this update. */ source: UiSource; }; /** Result of updating role assignments. */ export type UpdateRoleAssignmentsOutput = GroupNestingNotAllowedError | UpdateRoleAssignmentsResult | UserFacingError; /** Successful result of updating role assignments. */ export type UpdateRoleAssignmentsResult = { __typename?: "UpdateRoleAssignmentsResult"; /** The updated role assignments. */ entries: Array<UpdateRoleAssignmentResult>; /** IDs of push tasks initiated to propagate changes. */ taskIds?: Maybe<Array<Scalars["PushTaskId"]["output"]>>; }; export type UpdateSamlBreakGlassUserInput = { userId: Scalars["UserId"]["input"]; }; export type UpdateSamlConnectionInput = { restrictLoginToSaml?: InputMaybe<Scalars["Boolean"]["input"]>; samlBreakGlassUsers?: InputMaybe<Array<UpdateSamlBreakGlassUserInput>>; }; export type UpdateSamlConnectionOutput = UpdateSamlConnectionResult; export type UpdateSamlConnectionResult = { __typename?: "UpdateSamlConnectionResult"; organizationSamlInfo: OrganizationSamlInfo; }; export type UpdateSavedQueryInput = { description?: InputMaybe<Scalars["String"]["input"]>; id: Scalars["SavedQueryId"]["input"]; name?: InputMaybe<Scalars["String"]["input"]>; query?: InputMaybe<AccessQueryInput>; shared?: InputMaybe<Scalars["Boolean"]["input"]>; }; /** Input for updating a service user automation. */ export type UpdateServiceUserAutomationInput = { /** The new configuration (optional). */ configuration?: InputMaybe<CreateServiceUserAutomationConfigurationInput>; /** The new credentials (optional). */ credentials?: InputMaybe<CreateServiceUserAutomationCredentialsInput>; /** The new strategy (optional). */ strategy?: InputMaybe<ServiceUserAutomationStrategy>; /** The trigger to update. */ trigger: ServiceUserAutomationTrigger; /** The service user ID. */ userId: Scalars["UserId"]["input"]; }; /** Input for updating a user's profile information. */ export type UpdateUserInput = { /** ID of the user to update. */ id: Scalars["UserId"]["input"]; /** New manager ID for the user (null to unset). */ managerId?: InputMaybe<NullableUserId>; /** New job title/position for the user. */ position?: InputMaybe<Scalars["String"]["input"]>; }; /** Input for updating a user's manager. */ export type UpdateUserManagerInput = { /** ID of the user to update. */ id: Scalars["UserId"]["input"]; /** New manager ID for the user (null to unset). */ managerId?: InputMaybe<NullableUserId>; }; /** Result of updating a user's manager. */ export type UpdateUserManagerOutput = ManagedHrDataIsImmutableError | SystemUserIsImmutableError | UpdateUserManagerResult | UserNotFoundError; /** Successful result containing the user with updated manager. */ export type UpdateUserManagerResult = { __typename?: "UpdateUserManagerResult"; /** The updated user. */ user: User; }; /** Result of updating a user. */ export type UpdateUserOutput = ManagedHrDataIsImmutableError | SystemUserIsImmutableError | UpdateUserResult | UserNotFoundError; /** Successful result containing the updated user. */ export type UpdateUserResult = { __typename?: "UpdateUserResult"; /** The updated user. */ user: User; }; /** Input for updating user settings. */ export type UpdateUserSettingsInput = { /** The notification types to enable. */ allNotifications: Array<NotificationType>; /** Optional user ID for admins updating another user's settings. */ userID?: InputMaybe<Scalars["UUID"]["input"]>; }; /** Result of updating user settings. */ export type UpdateUserSettingsOutput = UpdateUserSettingsResult | UserSettingsInvalidError | UserSettingsNotFoundError; /** Successful result of updating user settings. */ export type UpdateUserSettingsResult = { __typename?: "UpdateUserSettingsResult"; /** The updated user settings. */ userSettings: UserSettings; }; /** Input for updating webhook configuration. */ export type UpdateWebhookInfoInput = { /** Whether to enable or disable the webhook. */ enableWebhook?: InputMaybe<Scalars["Boolean"]["input"]>; /** TLS CA certificate content for endpoint verification. */ tlsCaCertContent?: InputMaybe<Scalars["String"]["input"]>; /** The webhook endpoint URL. */ webhookEndpoint?: InputMaybe<Scalars["String"]["input"]>; }; /** Result of updating webhook configuration. */ export type UpdateWebhookInfoOutput = UpdateWebhookInfoResult; /** Successfully updated webhook configuration. */ export type UpdateWebhookInfoResult = { __typename?: "UpdateWebhookInfoResult"; /** The updated webhook information. */ webhookInfo: OrganizationWebhookInfo; }; /** Denotes where the usage is stored or should be attributed to. */ export declare enum UsageAttributionType { /** Usage stored in event records */ Event = "EVENT", /** Usage stored in aggregated rollup records */ UsageRollup = "USAGE_ROLLUP" } /** Input for using break glass access to a group. */ export type UseGroupBreakGlassInput = { /** ID of the group to access. */ groupId: Scalars["GroupId"]["input"]; }; /** Output for using break glass access. */ export type UseGroupBreakGlassOutput = GroupNotFoundError | GroupUserAlreadyExists | NoBreakGlassAccessError | UseGroupBreakGlassResult; /** Result of using break glass access. */ export type UseGroupBreakGlassResult = { __typename?: "UseGroupBreakGlassResult"; /** The group that was accessed. */ group: Group; }; /** An Opal user representing a person or service account in the organization. */ export type User = AccessQueryEngineEntity & BaseEntity & DisplayableEntity & Node & Principal & RolePermissionTargetEntity & { __typename?: "User"; /** Access review items assigned to this user. */ accessReviewItems: AccessReviewItemConnection; /** Permissions this user has been granted. */ allowedPermissions: Array<RolePermissionKey>; /** * URL to the user's avatar. * @deprecated Use imageUrl instead */ avatarUrl: Scalars["String"]["output"]; /** Timestamp when the user was created. */ createdAt: Scalars["Time"]["output"]; /** List of users who report directly to this user. */ directReports: Array<User>; /** Display name for the user (typically first name + last name). */ displayName: Scalars["String"]["output"]; /** Primary email address of the user. */ email: Scalars["String"]["output"]; /** User's first name. */ firstName: Scalars["String"]["output"]; /** API tokens owned by this user. */ firstPartyTokens?: Maybe<Array<FirstPartyToken>>; /** * User's full name. * @deprecated Use displayName instead */ fullName: Scalars["String"]["output"]; /** User status from the HR/IDP provider. */ hrIdpStatus?: Maybe<HrIdpStatus>; /** Unique identifier for the user. */ id: Scalars["UUID"]["output"]; /** Third-party identities linked to this user. */ identities?: Maybe<UserIdentities>; /** URL to the user's profile image. */ imageUrl?: Maybe<Scalars["String"]["output"]>; /** Indicates whether the user has been deleted. */ isDeleted: Scalars["Boolean"]["output"]; /** Indicates whether this is the Opal system user. */ isSystemUser: Scalars["Boolean"]["output"]; /** User's last name. */ lastName: Scalars["String"]["output"]; /** Groups where this user is designated as a leader. */ leaderGroups?: Maybe<Array<Group>>; /** The user's manager. */ manager?: Maybe<User>; /** ID of the user's manager. */ managerId?: Maybe<Scalars["UserId"]["output"]>; /** Total number of groups the user belongs to. */ numGroups: Scalars["Int"]["output"]; /** Total number of resources the user has access to. */ numResources: Scalars["Int"]["output"]; /** The organization this user belongs to. */ organization: Organization; /** ID of the organization this user belongs to. */ organizationId: Scalars["OrganizationId"]["output"]; /** Paginated list of groups the user belongs to. */ paginatedUserGroups: PaginatedUserGroupsOutput; /** Paginated list of resources the user has access to. */ paginatedUserResources: PaginatedUserResourcesOutput; /** Sources of permissions for this user (direct assignments, group memberships, etc.). */ permissionSources: PermissionSourceConnection; /** User's job title or position. */ position: Scalars["String"]["output"]; /** Request reviewer delegations this user has given to others. */ requestReviewerDelegationsGiven: Array<RequestReviewerDelegation>; /** Request reviewer delegations this user has received from others. */ requestReviewerDelegationsReceived: Array<RequestReviewerDelegation>; /** Reviewer stages where this user is assigned as a reviewer. */ reviewerStages?: Maybe<Array<ReviewerStage>>; /** Additional email addresses associated with the user. */ secondaryEmails: Array<Scalars["String"]["output"]>; /** Configuration for service users (API tokens). */ serviceUserConfiguration?: Maybe<ServiceUserConfiguration>; /** User's Slack email address. */ slackEmail?: Maybe<Scalars["String"]["output"]>; /** User's team attribute (department or team name). */ teamAttr?: Maybe<Scalars["String"]["output"]>; /** Timestamp when the user was last updated. */ updatedAt: Scalars["Time"]["output"]; /** * List of groups the user belongs to. * @deprecated Use paginatedUserGroups instead */ userGroups: Array<GroupUser>; /** * List of resources the user has access to. * @deprecated Use paginatedUserResources instead */ userResources: Array<ResourceUser>; /** Tags associated with the user, optionally filtered by tag keys. */ userTags: Array<TagKeyValue>; }; /** An Opal user representing a person or service account in the organization. */ export type UserAccessReviewItemsArgs = { after?: InputMaybe<Scalars["String"]["input"]>; filters?: AccessReviewItemsFilter; first?: InputMaybe<Scalars["Int"]["input"]>; }; /** An Opal user representing a person or service account in the organization. */ export type UserPaginatedUserGroupsArgs = { input?: PaginatedUserGroupsInput; }; /** An Opal user representing a person or service account in the organization. */ export type UserPaginatedUserResourcesArgs = { input?: PaginatedUserResourcesInput; }; /** An Opal user representing a person or service account in the organization. */ export type UserPermissionSourcesArgs = { after?: InputMaybe<Scalars["String"]["input"]>; before?: InputMaybe<Scalars["String"]["input"]>; first?: InputMaybe<Scalars["Int"]["input"]>; last?: InputMaybe<Scalars["Int"]["input"]>; }; /** An Opal user representing a person or service account in the organization. */ export type UserUserTagsArgs = { input?: InputMaybe<UserTagsByTagInput>; }; /** Error returned when trying to invite a user who already exists in another organization. */ export type UserAlreadyExistsInAnotherOrg = Error & { __typename?: "UserAlreadyExistsInAnotherOrg"; message: Scalars["String"]["output"]; }; /** Priority ordering of IdP connections for a specific user attribute. */ export type UserAttributePriority = { __typename?: "UserAttributePriority"; /** List of IdP connections in priority order. */ idpConnections: Array<IdpConnection>; /** The user attribute this priority order applies to. */ useAs: IdpConnectionUserAttributeUseAs; }; /** Result of fetching user attribute priorities. */ export type UserAttributePriorityOutput = { __typename?: "UserAttributePriorityOutput"; /** List of user attribute priorities. */ idpUserAttributePriorities: Array<UserAttributePriority>; }; /** Error returned when bulk user deletion is disabled. */ export type UserBulkDeletionDisabledError = Error & { __typename?: "UserBulkDeletionDisabledError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error indicating a user cannot request access for a target group. */ export type UserCannotRequestAccessForTargetGroupError = Error & { __typename?: "UserCannotRequestAccessForTargetGroupError"; /** ID of the group */ groupId: Scalars["GroupId"]["output"]; /** Error message */ message: Scalars["String"]["output"]; /** ID of the user */ userId: Scalars["UserId"]["output"]; }; /** Paginated connection of users, used in access review contexts. */ export type UserConnection = PageConnection & { __typename?: "UserConnection"; /** Total number of users assigned for review (completed or not). */ assignedCount: Scalars["Int"]["output"]; /** List of user edges. */ edges: Array<UserEdge>; /** Pagination information. */ pageInfo: PageInfo; /** Number of users reviewed so far. */ reviewedCount: Scalars["Int"]["output"]; /** Total number of users matching the query. */ totalCount: Scalars["Int"]["output"]; }; /** Error returned when user delegations are not found. */ export type UserDelegationsNotFoundError = Error & { __typename?: "UserDelegationsNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of fetching user delegations. */ export type UserDelegationsOutput = UserDelegationsNotFoundError | UserDelegationsResult; /** Successful result of fetching user delegations. */ export type UserDelegationsResult = { __typename?: "UserDelegationsResult"; /** List of delegations. */ delegations: Array<RequestReviewerDelegation>; }; /** An edge in a user connection. */ export type UserEdge = Edge & { __typename?: "UserEdge"; /** Cursor for this edge. */ cursor: Scalars["String"]["output"]; /** The user node. */ node: User; }; /** Types of user-facing errors that may occur. */ export declare enum UserErrorType { /** Support ticket was not found. */ SupportTicketNotFound = "SUPPORT_TICKET_NOT_FOUND" } /** * User-facing error message that should be displayed to the user. * This error type should be used for errors that can be handled by the user, such as validation errors or API token errors. * This error type should not be used for internal errors. * The message should be in readable plain text with capitalization. */ export type UserFacingError = Error & { __typename?: "UserFacingError"; /** Human-readable error message explaining what went wrong. */ message: Scalars["String"]["output"]; /** Optional error type for client-side handling and categorization. */ type?: Maybe<UserErrorType>; }; /** A user's access to a specific group. */ export type UserGroupAccess = { __typename?: "UserGroupAccess"; /** ID of the group. */ groupId: Scalars["GroupId"]["output"]; /** Group user entry if the user has access. */ groupUser?: Maybe<GroupUser>; /** ID of the user. */ userId: Scalars["UserId"]["output"]; }; /** Collection of third-party identities linked to a user. */ export type UserIdentities = { __typename?: "UserIdentities"; /** GitHub username identity. */ gitHubUsername?: Maybe<UserIdentity>; /** GitLab user ID identity. */ gitLabUserId?: Maybe<UserIdentity>; /** Slack email identity. */ slackEmail?: Maybe<UserIdentity>; /** Teleport username identity. */ teleportUsername?: Maybe<UserIdentity>; }; /** A third-party identity value and visibility configuration. */ export type UserIdentity = { __typename?: "UserIdentity"; /** Whether this identity should be displayed in the UI. */ shouldShow: Scalars["Boolean"]["output"]; /** The identity value (username, email, ID, etc.). */ value: Scalars["String"]["output"]; }; /** Error returned when user impersonation is disabled. */ export type UserImpersonationDisabledError = Error & { __typename?: "UserImpersonationDisabledError"; message: Scalars["String"]["output"]; }; /** Input for querying a single user. */ export type UserInput = { /** User ID to query. */ id: Scalars["UserId"]["input"]; /** Whether to include deleted users in the query. */ includeDeleted?: InputMaybe<Scalars["Boolean"]["input"]>; }; /** Error returned when attempting to delete a user assigned to reviewer stages. */ export type UserIsAssignedToReviewerStagesError = Error & { __typename?: "UserIsAssignedToReviewerStagesError"; /** Error message. */ message: Scalars["String"]["output"]; }; /** Error returned when the requested user does not exist. */ export type UserNotFoundError = Error & { __typename?: "UserNotFoundError"; /** Email of the user that was not found, if available. */ email?: Maybe<Scalars["String"]["output"]>; /** Error message. */ message: Scalars["String"]["output"]; }; /** Result of querying a single user. */ export type UserOutput = UserNotFoundError | UserResult; /** The product role for a user in Opal. */ export declare enum UserProductRole { Admin = "ADMIN", Member = "MEMBER" } /** Information about a user's access to a resource. */ export type UserResourceAccess = { __typename?: "UserResourceAccess"; /** Number of available access levels for this resource. */ numAvailableAccessLevels: Scalars["Int"]["output"]; /** The resource ID. */ resourceId: Scalars["ResourceId"]["output"]; /** Resource users representing the user's access. */ resourceUsers: Array<ResourceUser>; /** The user ID. */ userId: Scalars["UserId"]["output"]; }; /** Successful result containing the requested user. */ export type UserResult = { __typename?: "UserResult"; /** The requested user. */ user: User; }; /** User settings and preferences. */ export type UserSettings = { __typename?: "UserSettings"; /** All enabled notification types. */ allNotifications?: Maybe<Array<NotificationType>>; /** When the settings were created. */ createdAt: Scalars["Time"]["output"]; /** The user ID these settings belong to. */ id: Scalars["UserId"]["output"]; /** Detailed notification preferences by type. */ notificationPreferences?: Maybe<Array<NotificationPreference>>; /** * When the settings were last updated. * @deprecated use notificationPreferences instead */ updatedAt: Scalars["Time"]["output"]; }; /** Error returned when user settings are invalid. */ export type UserSettingsInvalidError = Error & { __typename?: "UserSettingsInvalidError"; message: Scalars["String"]["output"]; }; /** Error returned when user settings are not found. */ export type UserSettingsNotFoundError = Error & { __typename?: "UserSettingsNotFoundError"; message: Scalars["String"]["output"]; }; /** Result of fetching user settings. */ export type UserSettingsOutput = UserSettingsInvalidError | UserSettingsNotFoundError | UserSettingsResult; /** Successful result of fetching user settings. */ export type UserSettingsResult = { __typename?: "UserSettingsResult"; /** The user settings. */ userSettings: UserSettings; }; /** Lightweight user object with minimal fields. */ export type UserSmall = { __typename?: "UserSmall"; /** URL to the user's avatar. */ avatarUrl: Scalars["String"]["output"]; /** User's full name. */ fullName: Scalars["String"]["output"]; /** User ID. */ id: Scalars["UserId"]["output"]; }; /** An association between a user and a tag. */ export type UserTag = { __typename?: "UserTag"; /** The connection entity. */ connection?: Maybe<Connection>; /** The connection ID this tag came from. */ connectionId: Scalars["ConnectionId"]["output"]; /** When the association was created. */ createdAt: Scalars["Time"]["output"]; /** The user who created this association. */ creatorUserId: Scalars["UserId"]["output"]; /** Unique identifier for the user tag association. */ id: Scalars["UserTagId"]["output"]; /** The source system this tag came from. */ source: ServiceType; /** The tag entity. */ tag?: Maybe<Tag>; /** The tag ID. */ tagId: Scalars["TagId"]["output"]; /** When the association was last updated. */ updatedAt: Scalars["Time"]["output"]; /** The user entity. */ user?: Maybe<User>; /** The user ID this tag is associated with. */ userId: Scalars["UserId"]["output"]; }; /** Error returned when attempting to add a user tag with a key that already exists for the user. */ export type UserTagKeyExistsError = Error & { __typename?: "UserTagKeyExistsError"; message: Scalars["String"]["output"]; }; /** Error returned when a user tag is not found. */ export type UserTagNotFoundError = Error & { __typename?: "UserTagNotFoundError"; message: Scalars["String"]["output"]; }; /** Input for filtering user tags by tag keys. */ export type UserTagsByTagInput = { /** List of tags to filter by. */ tags?: InputMaybe<Array<TagKeyValueInput>>; }; /** Input for fetching user tags. */ export type UserTagsInput = { /** Optional source to filter by. */ source?: InputMaybe<ServiceType>; /** Optional user ID to filter by. */ userId?: InputMaybe<Scalars["UserId"]["input"]>; }; /** Input for filtering by users. */ export type UsersFilterInput = { /** List of user IDs to filter by. */ userIDs: Array<Scalars["UserId"]["input"]>; }; /** Input for querying multiple users with filtering and pagination. */ export type UsersInput = { /** Pagination cursor for fetching the next page. */ cursor?: InputMaybe<Scalars["String"]["input"]>; /** Filter users by HR/IDP status. */ idpStatusFilter?: InputMaybe<IdpStatusFilter>; /** Whether to include deleted users. */ includeDeleted?: InputMaybe<Scalars["Boolean"]["input"]>; /** Whether to return only users who are managers of other users. */ includeOnlyManagers?: InputMaybe<Scalars["Boolean"]["input"]>; /** Whether to return only service users. */ includeOnlyServiceUsers?: InputMaybe<Scalars["Boolean"]["input"]>; /** Whether to include service users (API tokens). */ includeServiceUsers?: InputMaybe<Scalars["Boolean"]["input"]>; /** Whether to include the Opal system user. */ includeSystemUser?: InputMaybe<Scalars["Boolean"]["input"]>; /** Filter users by manager. */ managerFilter?: InputMaybe<ManagerFilter>; /** Maximum number of users to return per page. */ maxNumEntries?: InputMaybe<Scalars["Int"]["input"]>; /** Search query to filter users by name or email. */ searchQuery?: InputMaybe<Scalars["String"]["input"]>; /** Field and direction to sort results by. */ sortBy?: InputMaybe<UsersSortBy>; /** Filter users by team. */ teamFilter?: InputMaybe<TeamFilter>; /** Filter users by job title. */ titleFilter?: InputMaybe<TitleFilter>; /** Filter to users with these email addresses. */ userEmails?: InputMaybe<Array<Scalars["String"]["input"]>>; /** Filter to users with these IDs. */ userIds?: InputMaybe<Array<Scalars["UserId"]["input"]>>; }; /** Result of querying multiple users. */ export type UsersOutput = UsersResult; /** Successful result containing a list of users. */ export type UsersResult = { __typename?: "UsersResult"; /** Cursor for fetching the next page of results. */ cursor?: Maybe<Scalars["String"]["output"]>; /** Total number of users matching the query. */ totalNumUsers: Scalars["Int"]["output"]; /** List of users matching the query. */ users: Array<User>; }; /** Sort configuration for users query. */ export type UsersSortBy = { /** Sort direction (ascending or descending). */ direction?: InputMaybe<SortDirection>; /** Field to sort by. */ field?: InputMaybe<UsersSortByField>; }; /** Fields that users can be sorted by. */ export declare enum UsersSortByField { /** Sort by creation date. */ CreatedAt = "CREATED_AT", /** Sort by email address. */ Email = "EMAIL", /** Sort by first name. */ FirstName = "FIRST_NAME", /** Sort by full name. */ FullName = "FULL_NAME", /** Sort by HR/IDP status. */ HrIdpStatus = "HR_IDP_STATUS", /** Sort by last name. */ LastName = "LAST_NAME", /** Sort by manager name. */ Manager = "MANAGER", /** Sort by team. */ Team = "TEAM", /** Sort by job title. */ Title = "TITLE" } /** Input for validating an OAuth code and saving the ID token. */ export type ValidateCodeAndSaveIdTokenInput = { /** Authorization code from the OAuth flow. */ code: Scalars["String"]["input"]; /** Type of OIDC provider. */ oidcProviderType: OidcProviderType; /** State parameter from the OAuth flow. */ state: Scalars["String"]["input"]; }; export type ValidateConnectionInput = { connectionId: Scalars["ConnectionId"]["input"]; }; export type ValidateConnectionOutput = UserFacingError | ValidateConnectionResult; export type ValidateConnectionResult = { __typename?: "ValidateConnectionResult"; validations: Array<ConnectionValidation>; }; /** Error returned when a Vault client is not configured. */ export type VaultClientNotFoundError = Error & { __typename?: "VaultClientNotFoundError"; message: Scalars["String"]["output"]; }; export type VaultConnectionCredentialsInput = { appRoleId: Scalars["String"]["input"]; appRoleSecret: Scalars["String"]["input"]; }; export type VaultConnectionMetadata = { __typename?: "VaultConnectionMetadata"; address: Scalars["String"]["output"]; appRoleName: Scalars["String"]["output"]; }; export type VaultConnectionMetadataInput = { address: Scalars["String"]["input"]; appRoleName: Scalars["String"]["input"]; }; /** Vault session for MongoDB Atlas access. */ export type VaultMongoAtlasSession = { __typename?: "VaultMongoAtlasSession"; /** The authentication database name. */ authenticationDbName: Scalars["String"]["output"]; /** The database hostname. */ dbHostname: Scalars["String"]["output"]; /** The database password. */ dbPassword: Scalars["String"]["output"]; /** The database port. */ dbPort: Scalars["Int"]["output"]; /** The database username. */ dbUser: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; /** The initial database name. */ initDbName: Scalars["String"]["output"]; /** TLS configuration for the connection. */ tlsConfig: TlsConfig; }; /** Vault session for MongoDB access. */ export type VaultMongoSession = { __typename?: "VaultMongoSession"; /** The authentication database name. */ authenticationDbName: Scalars["String"]["output"]; /** The database hostname. */ dbHostname: Scalars["String"]["output"]; /** The database password. */ dbPassword: Scalars["String"]["output"]; /** The database port. */ dbPort: Scalars["Int"]["output"]; /** The database username. */ dbUser: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; /** TLS configuration for the connection. */ tlsConfig: TlsConfig; }; /** Vault session for MySQL or MariaDB access. */ export type VaultMySqlMariaDbSession = { __typename?: "VaultMySQLMariaDBSession"; /** The database hostname. */ dbHostname: Scalars["String"]["output"]; /** The database password. */ dbPassword: Scalars["String"]["output"]; /** The database port. */ dbPort: Scalars["Int"]["output"]; /** The database username. */ dbUser: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; /** TLS configuration for the connection. */ tlsConfig: TlsConfig; }; /** Vault session for PostgreSQL access. */ export type VaultPostgresSession = { __typename?: "VaultPostgresSession"; /** The database hostname. */ dbHostname: Scalars["String"]["output"]; /** The database password. */ dbPassword: Scalars["String"]["output"]; /** The database port. */ dbPort: Scalars["Int"]["output"]; /** The database username. */ dbUser: Scalars["String"]["output"]; /** The resource ID. */ id: Scalars["ResourceId"]["output"]; /** TLS configuration for the connection. */ tlsConfig: TlsConfig; }; export type VaultSecretSession = { __typename?: "VaultSecretSession"; id: Scalars["ResourceId"]["output"]; oidcRoleName: Scalars["String"]["output"]; }; /** Error returned when creating a Vault session fails. */ export type VaultSessionError = Error & { __typename?: "VaultSessionError"; /** The connection entity. */ connection?: Maybe<Connection>; /** The connection ID that failed. */ connectionId: Scalars["ConnectionId"]["output"]; message: Scalars["String"]["output"]; }; /** Input for fetching Vault-managed sessions. */ export type VaultSessionsInput = { /** The resource ID to get sessions for. */ resourceId: Scalars["ResourceId"]["input"]; }; /** Output of fetching Vault sessions. */ export type VaultSessionsOutput = VaultSessionsResult; /** Result of fetching Vault sessions. */ export type VaultSessionsResult = { __typename?: "VaultSessionsResult"; /** List of Vault-managed sessions. */ sessions: Array<Session>; }; /** Input for asynchronously verifying an MFA factor (e.g., push notification). */ export type VerifyFactorAsyncInput = { /** Remote ID of the factor to verify. */ factorRemoteId: Scalars["UserFactorRemoteId"]["input"]; /** Optional transaction ID for ongoing verification. */ transactionId?: InputMaybe<Scalars["String"]["input"]>; }; /** Result of asynchronously verifying an MFA factor. */ export type VerifyFactorAsyncOutput = ConnectionUserNotFound | FactorNotFoundError | MissingTokenPermissionError | VerifyFactorAsyncResult; /** Successful result of asynchronously verifying an MFA factor. */ export type VerifyFactorAsyncResult = { __typename?: "VerifyFactorAsyncResult"; /** Current status of the verification. */ status: VerifyFactorStatus; /** Transaction ID for tracking the verification. */ transactionId: Scalars["String"]["output"]; }; /** Status of MFA factor verification. */ export declare enum VerifyFactorStatus { /** Verification failed. */ Failed = "FAILED", /** Verification was rejected by the user. */ Rejected = "REJECTED", /** Verification was successful. */ Success = "SUCCESS", /** Verification timed out. */ Timeout = "TIMEOUT", /** Verification is waiting for user action. */ Waiting = "WAITING" } /** Input for synchronously verifying an MFA factor (e.g., TOTP code). */ export type VerifyFactorSyncInput = { /** Remote ID of the factor to verify. */ factorRemoteId: Scalars["UserFactorRemoteId"]["input"]; /** One-time passcode from the authenticator. */ passCode: Scalars["String"]["input"]; }; /** Result of synchronously verifying an MFA factor. */ export type VerifyFactorSyncOutput = ConnectionUserNotFound | FactorNotFoundError | MissingTokenPermissionError | VerifyFactorSyncResult; /** Successful result of synchronously verifying an MFA factor. */ export type VerifyFactorSyncResult = { __typename?: "VerifyFactorSyncResult"; /** Status of the verification. */ status: VerifyFactorStatus; }; export declare enum Visibility { Global = "GLOBAL", Team = "TEAM" } /** Input for API key credentials collection. */ export type WebhookApiKeyPubsubPublishConnectionCredentialsInput = { /** List of API key credentials. */ credentials: Array<WebhookPubsubPublishConnectionApiKeyCredentialsInput>; }; /** Input for HMAC credentials collection supporting rotation. */ export type WebhookHmacPubsubPublishConnectionCredentialsInput = { /** Primary HMAC credential. */ credential1?: InputMaybe<WebhookPubsubPublishConnectionHmacCredentialsInput>; /** Secondary HMAC credential for rotation. */ credential2?: InputMaybe<WebhookPubsubPublishConnectionHmacCredentialsInput>; }; /** Result of querying webhook information. */ export type WebhookInfoOutput = WebhookInfoResult; /** Successfully retrieved webhook information. */ export type WebhookInfoResult = { __typename?: "WebhookInfoResult"; /** The webhook information, or null if not configured. */ webhookInfo?: Maybe<OrganizationWebhookInfo>; }; /** API key credential for webhook authentication. */ export type WebhookPubsubPublishConnectionApiKeyCredentialOutput = { __typename?: "WebhookPubsubPublishConnectionApiKeyCredentialOutput"; /** Unique identifier for the credential. */ id: Scalars["PubsubPublishConnectionCredentialId"]["output"]; /** Location where the API key should be placed in requests. */ location: WebhookPubsubPublishConnectionApiKeyLocation; /** Name of the API key credential. */ name: Scalars["String"]["output"]; /** Value of the API key. */ value: Scalars["String"]["output"]; }; /** Input for an API key credential. */ export type WebhookPubsubPublishConnectionApiKeyCredentialsInput = { /** Unique identifier for the credential. */ id: Scalars["PubsubPublishConnectionCredentialId"]["input"]; /** Location where the API key should be placed in requests. */ location: WebhookPubsubPublishConnectionApiKeyLocation; /** Name of the API key credential. */ name: Scalars["String"]["input"]; /** Value of the API key. */ value: Scalars["String"]["input"]; }; /** Collection of API key credentials for webhook authentication. */ export type WebhookPubsubPublishConnectionApiKeyCredentialsOutput = { __typename?: "WebhookPubsubPublishConnectionApiKeyCredentialsOutput"; /** List of API key credentials. */ credentials: Array<WebhookPubsubPublishConnectionApiKeyCredentialOutput>; }; /** Location where API key should be placed in webhook requests. */ export declare enum WebhookPubsubPublishConnectionApiKeyLocation { /** API key in HTTP header. */ Header = "HEADER", /** API key in query parameter. */ QueryParam = "QUERY_PARAM" } /** Authentication type for webhook connections. */ export declare enum WebhookPubsubPublishConnectionAuthType { /** API key authentication. */ ApiKey = "API_KEY", /** HMAC signature authentication. */ Hmac = "HMAC", /** No authentication. */ None = "NONE" } /** Input for webhook authentication credentials. */ export type WebhookPubsubPublishConnectionCredentialsInput = { /** API key credentials if using API key authentication. */ apiKey?: InputMaybe<WebhookApiKeyPubsubPublishConnectionCredentialsInput>; /** Type of authentication being used. */ authType: WebhookPubsubPublishConnectionAuthType; /** HMAC credentials if using HMAC authentication. */ hmac?: InputMaybe<WebhookHmacPubsubPublishConnectionCredentialsInput>; }; /** Authentication credentials for webhook connections. */ export type WebhookPubsubPublishConnectionCredentialsOutput = { __typename?: "WebhookPubsubPublishConnectionCredentialsOutput"; /** API key credentials if using API key authentication. */ apiKey?: Maybe<WebhookPubsubPublishConnectionApiKeyCredentialsOutput>; /** Type of authentication being used. */ authType: WebhookPubsubPublishConnectionAuthType; /** HMAC credentials if using HMAC authentication. */ hmac?: Maybe<WebhookPubsubPublishConnectionHmacCredentialsOutput>; }; /** HMAC credential for webhook authentication. */ export type WebhookPubsubPublishConnectionHmacCredentialOutput = { __typename?: "WebhookPubsubPublishConnectionHmacCredentialOutput"; /** When the credential was created. */ createdAt: Scalars["Time"]["output"]; /** Unique identifier for the credential. */ id: Scalars["PubsubPublishConnectionCredentialId"]["output"]; /** HMAC secret value. */ secret: Scalars["String"]["output"]; }; /** Input for an HMAC credential. */ export type WebhookPubsubPublishConnectionHmacCredentialsInput = { /** When the credential was created. */ createdAt: Scalars["Time"]["input"]; /** Unique identifier for the credential. */ id: Scalars["PubsubPublishConnectionCredentialId"]["input"]; /** HMAC secret value. */ secret: Scalars["String"]["input"]; }; /** Collection of HMAC credentials for webhook authentication. Supports credential rotation with two slots. */ export type WebhookPubsubPublishConnectionHmacCredentialsOutput = { __typename?: "WebhookPubsubPublishConnectionHmacCredentialsOutput"; /** Primary HMAC credential. */ credential1?: Maybe<WebhookPubsubPublishConnectionHmacCredentialOutput>; /** Secondary HMAC credential for rotation. */ credential2?: Maybe<WebhookPubsubPublishConnectionHmacCredentialOutput>; }; /** Metadata for a webhook connection. */ export type WebhookPubsubPublishConnectionMetadata = { __typename?: "WebhookPubsubPublishConnectionMetadata"; /** Target URL for webhook delivery. */ url: Scalars["String"]["output"]; }; /** Input for webhook connection metadata. */ export type WebhookPubsubPublishConnectionMetadataInput = { /** Target URL for webhook delivery. */ url: Scalars["String"]["input"]; }; export type WorkdayConnectionMetadata = { __typename?: "WorkdayConnectionMetadata"; integrationSystemId: Scalars["String"]["output"]; securityGroupName?: Maybe<Scalars["String"]["output"]>; tenantName: Scalars["String"]["output"]; tenantUrl: Scalars["String"]["output"]; }; export type WorkdayConnectionMetadataInput = { integrationSystemId: Scalars["String"]["input"]; securityGroupName: Scalars["String"]["input"]; tenantName: Scalars["String"]["input"]; tenantUrl: Scalars["String"]["input"]; }; export type WorkdayCredentialsInput = { rootPassword: Scalars["String"]["input"]; rootUserName: Scalars["String"]["input"]; }; /** Level of decision authority for request approval/denial. */ export declare enum RequestDecisionLevel { /** Admin override approval */ Admin = "ADMIN", /** Regular reviewer approval */ Regular = "REGULAR" } export type GetGroupQueryVariables = Exact<{ id: Scalars["GroupId"]["input"]; }>; export type GetGroupQuery = { __typename?: "Query"; group: { __typename: "GroupNotFoundError"; message: string; } | { __typename: "GroupResult"; group: { __typename?: "Group"; name: string; id: string; description: string; groupType: GroupType; adminOwnerId: string; groupLeaders: Array<{ __typename?: "User"; fullName: string; email: string; id: string; }>; connection?: { __typename?: "Connection"; name: string; id: string; connectionType: ConnectionType; } | null; paginatedGroupUsers: { __typename?: "PaginatedGroupUsersOutput"; totalNumGroupUsers: number; groupUsers: Array<{ __typename?: "GroupUser"; user?: { __typename?: "User"; fullName: string; email: string; id: string; } | null; }>; }; }; }; }; export type CheckAuthSessionQueryQueryVariables = Exact<{ [key: string]: never; }>; export type CheckAuthSessionQueryQuery = { __typename?: "Query"; organizationSettings: { __typename?: "OrganizationSettingsNotFoundError"; } | { __typename?: "OrganizationSettingsResult"; settings: { __typename?: "OrganizationSettings"; id: string; }; }; }; export type GetLastMfaAtQueryVariables = Exact<{ [key: string]: never; }>; export type GetLastMfaAtQuery = { __typename?: "Query"; lastMfaAt?: string | null; }; export type HasValidOidcIdTokenQueryVariables = Exact<{ oidcProviderType: OidcProviderType; }>; export type HasValidOidcIdTokenQuery = { __typename?: "Query"; hasValidOidcToken: boolean; }; export type CreateRequestMutationVariables = Exact<{ requestedResources: Array<RequestedResourceInput> | RequestedResourceInput; requestedGroups: Array<RequestedGroupInput> | RequestedGroupInput; reason: Scalars["String"]["input"]; durationInMinutes?: InputMaybe<Scalars["Int"]["input"]>; }>; export type CreateRequestMutation = { __typename?: "Mutation"; createRequest: { __typename?: "BulkRequestTooLargeError"; message: string; } | { __typename?: "CreateRequestResult"; request: { __typename?: "Request"; id: string; status: RequestStatus; }; } | { __typename?: "GroupNestingNotAllowedError"; message: string; fromGroupId: string; toGroupId: string; } | { __typename?: "ItemCannotBeRequestedError"; message: string; } | { __typename?: "ItemsAtCapacityError"; } | { __typename?: "LinkedGroupNotRequestableError"; message: string; sourceGroupId: string; groupBindingId: string; } | { __typename?: "MfaInvalidError"; message: string; } | { __typename?: "NoManagerSetForRequestingUserError"; message: string; } | { __typename?: "NoReviewersSetForGroupError"; message: string; groupId: string; } | { __typename?: "NoReviewersSetForOwnerError"; message: string; ownerId: string; } | { __typename?: "NoReviewersSetForResourceError"; message: string; resourceId: string; } | { __typename?: "RequestDurationTooLargeError"; message: string; } | { __typename?: "RequestFieldValueMissingError"; message: string; fieldName: string; } | { __typename?: "RequestReasonBelowMinLengthError"; message: string; } | { __typename?: "RequestReasonMissingError"; message: string; } | { __typename?: "RequestRequiresUserAuthTokenForConnectionError"; message: string; } | { __typename?: "TargetUserHasNestedAccessError"; message: string; groupIds?: Array<string> | null; } | { __typename?: "UserCannotRequestAccessForTargetGroupError"; message: string; groupId: string; userId: string; }; }; export type GetRequestableAppsQueryQueryVariables = Exact<{ searchQuery?: InputMaybe<Scalars["String"]["input"]>; }>; export type GetRequestableAppsQueryQuery = { __typename?: "Query"; appsV2: { __typename?: "AppConnection"; edges: Array<{ __typename?: "AppEdge"; node: { __typename?: "Connection"; connectionType: ConnectionType; id: string; displayName: string; } | { __typename?: "Resource"; resourceType: ResourceType; id: string; displayName: string; }; }>; pageInfo: { __typename?: "PageInfo"; hasNextPage: boolean; hasPreviousPage: boolean; startCursor?: string | null; endCursor?: string | null; }; }; }; export type PaginatedEntityDropdownQueryVariables = Exact<{ id: Scalars["UUID"]["input"]; searchQuery?: InputMaybe<Scalars["String"]["input"]>; }>; export type PaginatedEntityDropdownQuery = { __typename?: "Query"; app: { __typename: "App"; id: string; items: { __typename?: "AppItemsOutput"; cursor?: string | null; items?: Array<{ __typename?: "AppItem"; key: string; resource?: { __typename?: "Resource"; id: string; name: string; resourceType: ResourceType; } | null; group?: { __typename?: "Group"; id: string; name: string; groupType: GroupType; } | null; }> | null; }; } | { __typename: "AppNotFoundError"; message: string; }; }; export type GetCatalogItemQueryVariables = Exact<{ uuid: Scalars["UUID"]["input"]; }>; export type GetCatalogItemQuery = { __typename?: "Query"; catalogItem: { __typename: "Connection"; id: string; displayName: string; } | { __typename: "Group"; id: string; name: string; connection?: { __typename?: "Connection"; id: string; displayName: string; } | null; accessLevels?: Array<{ __typename?: "GroupAccessLevel"; accessLevelName: string; accessLevelRemoteId: string; }> | null; } | { __typename: "Resource"; id: string; displayName: string; connection?: { __typename?: "Connection"; id: string; displayName: string; } | null; accessLevels?: Array<{ __typename?: "ResourceAccessLevel"; accessLevelName: string; accessLevelRemoteId: string; }> | null; } | { __typename: "UserFacingError"; message: string; }; }; export type RequestDefaultsQueryVariables = Exact<{ requestedResources: Array<RequestConfigurationResourceInput> | RequestConfigurationResourceInput; requestedGroups: Array<RequestConfigurationGroupInput> | RequestConfigurationGroupInput; }>; export type RequestDefaultsQuery = { __typename?: "Query"; requestDefaults: { __typename?: "RequestDefaults"; recommendedDurationInMinutes?: number | null; defaultDurationInMinutes: number; maxDurationInMinutes?: number | null; requireSupportTicket: boolean; reasonOptional: boolean; requesterIsAdmin: boolean; durationOptions: Array<{ __typename?: "DurationOption"; durationInMinutes: number; label: string; }>; messages: Array<{ __typename?: "RequestMessage"; entityId?: string | null; level: RequestMessageLevel; code: RequestMessageCode; }>; }; }; export type ResourceFieldsFragment = { __typename?: "Resource"; displayName: string; id: string; connectionId: string; connection?: { __typename?: "Connection"; name: string; connectionType: ConnectionType; } | null; } & { " $fragmentName"?: "ResourceFieldsFragment"; }; export type GroupFieldsFragment = { __typename?: "Group"; name: string; id: string; connectionId: string; connection?: { __typename?: "Connection"; name: string; connectionType: ConnectionType; } | null; } & { " $fragmentName"?: "GroupFieldsFragment"; }; export type RequestFieldsFragment = { __typename?: "Request"; id: string; createdAt: string; status: RequestStatus; durationInMinutes?: number | null; reason: string; requester?: { __typename?: "User"; displayName: string; } | null; targetUser?: { __typename?: "User"; displayName: string; } | null; requestedResources: Array<{ __typename?: "RequestedResource"; resource?: ({ __typename?: "Resource"; } & { " $fragmentRefs"?: { ResourceFieldsFragment: ResourceFieldsFragment; }; }) | null; accessLevel: { __typename?: "ResourceAccessLevel"; accessLevelName: string; accessLevelRemoteId: string; }; }>; requestedGroups: Array<{ __typename?: "RequestedGroup"; group?: ({ __typename?: "Group"; } & { " $fragmentRefs"?: { GroupFieldsFragment: GroupFieldsFragment; }; }) | null; accessLevel: { __typename?: "GroupAccessLevel"; accessLevelName: string; accessLevelRemoteId: string; }; }>; } & { " $fragmentName"?: "RequestFieldsFragment"; }; export type GetRequestQueryVariables = Exact<{ id: Scalars["RequestId"]["input"]; }>; export type GetRequestQuery = { __typename?: "Query"; request: { __typename: "RequestNotFoundError"; message: string; } | { __typename: "RequestResult"; request: { __typename?: "Request"; } & { " $fragmentRefs"?: { RequestFieldsFragment: RequestFieldsFragment; }; }; }; }; export type GetRequestsQueryVariables = Exact<{ showPendingOnly: Scalars["Boolean"]["input"]; pageSize?: InputMaybe<Scalars["Int"]["input"]>; }>; export type GetRequestsQuery = { __typename?: "Query"; requests: { __typename: "RequestsResult"; requestType?: RequestType | null; requests: Array<{ __typename?: "Request"; } & { " $fragmentRefs"?: { RequestFieldsFragment: RequestFieldsFragment; }; }>; }; }; export type GetBundleQueryVariables = Exact<{ id: Scalars["BundleId"]["input"]; }>; export type GetBundleQuery = { __typename?: "Query"; bundle: { __typename: "BundleNotFoundError"; message: string; } | { __typename: "BundleResult"; bundle: { __typename?: "Bundle"; name: string; id: string; items: { __typename?: "BundleItemConnection"; edges: Array<{ __typename?: "BundleItemEdge"; accessLevel: { __typename?: "AccessLevel"; accessLevelName: string; accessLevelRemoteId: string; }; node: ({ __typename?: "Group"; isRequestable: boolean; } & { " $fragmentRefs"?: { GroupFieldsFragment: GroupFieldsFragment; }; }) | ({ __typename?: "Resource"; isRequestable: boolean; } & { " $fragmentRefs"?: { ResourceFieldsFragment: ResourceFieldsFragment; }; }); }>; }; }; }; }; export type ResourceAccessLevelsQueryVariables = Exact<{ resourceId: Scalars["ResourceId"]["input"]; }>; export type ResourceAccessLevelsQuery = { __typename?: "Query"; accessLevels: { __typename: "ResourceAccessLevelsResult"; accessLevels: Array<{ __typename?: "ResourceAccessLevel"; accessLevelName: string; accessLevelRemoteId: string; }>; } | { __typename: "ResourceNotFoundError"; message: string; }; }; export type GroupAccessLevelsQueryVariables = Exact<{ groupId: Scalars["GroupId"]["input"]; }>; export type GroupAccessLevelsQuery = { __typename?: "Query"; groupAccessLevels: { __typename?: "GroupAccessLevelsResult"; groupId: string; accessLevels: Array<{ __typename?: "GroupAccessLevel"; accessLevelName: string; accessLevelRemoteId: string; }>; } | { __typename?: "GroupNotFoundError"; }; }; export type GetAssociatedItemsQueryVariables = Exact<{ resourceId: Scalars["ResourceId"]["input"]; searchQuery?: InputMaybe<Scalars["String"]["input"]>; }>; export type GetAssociatedItemsQuery = { __typename?: "Query"; resource: { __typename: "ResourceNotFoundError"; message: string; } | { __typename: "ResourceResult"; resource: { __typename?: "Resource"; associatedItems: { __typename?: "AssociatedItemConnection"; edges: Array<{ __typename: "ConnectionAssociatedItemEdge"; } | { __typename: "GroupAssociatedItemEdge"; } | { __typename: "ResourceAssociatedItemEdge"; alias?: string | null; node: { __typename: "Group"; groupType: GroupType; id: string; name: string; } | { __typename: "Resource"; resourceType: ResourceType; id: string; name: string; accessLevels?: Array<{ __typename: "ResourceAccessLevel"; accessLevelName: string; accessLevelRemoteId: string; }> | null; }; }>; }; }; }; }; export declare const ResourceFieldsFragmentDoc: DocumentNode<ResourceFieldsFragment, unknown>; export declare const GroupFieldsFragmentDoc: DocumentNode<GroupFieldsFragment, unknown>; export declare const RequestFieldsFragmentDoc: DocumentNode<RequestFieldsFragment, unknown>; export declare const GetGroupDocument: DocumentNode<GetGroupQuery, GetGroupQueryVariables>; export declare const CheckAuthSessionQueryDocument: DocumentNode<CheckAuthSessionQueryQuery, CheckAuthSessionQueryQueryVariables>; export declare const GetLastMfaAtDocument: DocumentNode<GetLastMfaAtQuery, GetLastMfaAtQueryVariables>; export declare const HasValidOidcIdTokenDocument: DocumentNode<HasValidOidcIdTokenQuery, HasValidOidcIdTokenQueryVariables>; export declare const CreateRequestDocument: DocumentNode<CreateRequestMutation, CreateRequestMutationVariables>; export declare const GetRequestableAppsQueryDocument: DocumentNode<GetRequestableAppsQueryQuery, GetRequestableAppsQueryQueryVariables>; export declare const PaginatedEntityDropdownDocument: DocumentNode<PaginatedEntityDropdownQuery, PaginatedEntityDropdownQueryVariables>; export declare const GetCatalogItemDocument: DocumentNode<GetCatalogItemQuery, GetCatalogItemQueryVariables>; export declare const RequestDefaultsDocument: DocumentNode<RequestDefaultsQuery, RequestDefaultsQueryVariables>; export declare const GetRequestDocument: DocumentNode<GetRequestQuery, GetRequestQueryVariables>; export declare const GetRequestsDocument: DocumentNode<GetRequestsQuery, GetRequestsQueryVariables>; export declare const GetBundleDocument: DocumentNode<GetBundleQuery, GetBundleQueryVariables>; export declare const ResourceAccessLevelsDocument: DocumentNode<ResourceAccessLevelsQuery, ResourceAccessLevelsQueryVariables>; export declare const GroupAccessLevelsDocument: DocumentNode<GroupAccessLevelsQuery, GroupAccessLevelsQueryVariables>; export declare const GetAssociatedItemsDocument: DocumentNode<GetAssociatedItemsQuery, GetAssociatedItemsQueryVariables>;