Move Organization, Identity, TrustCenter, and Viewer definitions to include all their connection fields directly, removing all extend type blocks for these hub types from entity files. This eliminates the Relay schemaExtensions constraint where extend type could only target types defined in the main schema file. Entity files now only define their own standalone types and extend type Mutation. Signed-off-by: Émile Ré <emile@getprobo.com>
692 lines
18 KiB
GraphQL
692 lines
18 KiB
GraphQL
enum AccessReviewCampaignStatus
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignStatus"
|
|
) {
|
|
DRAFT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignStatusDraft"
|
|
)
|
|
IN_PROGRESS
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignStatusInProgress"
|
|
)
|
|
PENDING_ACTIONS
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignStatusPendingActions"
|
|
)
|
|
FAILED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignStatusFailed"
|
|
)
|
|
COMPLETED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignStatusCompleted"
|
|
)
|
|
CANCELLED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignStatusCancelled"
|
|
)
|
|
}
|
|
|
|
enum AccessSourceCategory
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessSourceCategory"
|
|
) {
|
|
SAAS
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessSourceCategorySaaS"
|
|
)
|
|
CLOUD_INFRA
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessSourceCategoryCloudInfra"
|
|
)
|
|
SOURCE_CODE
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessSourceCategorySourceCode"
|
|
)
|
|
OTHER
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessSourceCategoryOther"
|
|
)
|
|
}
|
|
|
|
enum AccessReviewCampaignSourceFetchStatus
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignSourceFetchStatus"
|
|
) {
|
|
QUEUED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignSourceFetchStatusQueued"
|
|
)
|
|
FETCHING
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignSourceFetchStatusFetching"
|
|
)
|
|
SUCCESS
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignSourceFetchStatusSuccess"
|
|
)
|
|
FAILED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignSourceFetchStatusFailed"
|
|
)
|
|
}
|
|
|
|
enum AccessEntryFlag
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.AccessEntryFlag") {
|
|
NONE
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagNone"
|
|
)
|
|
ORPHANED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagOrphaned"
|
|
)
|
|
INACTIVE
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagInactive"
|
|
)
|
|
EXCESSIVE
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagExcessive"
|
|
)
|
|
ROLE_MISMATCH
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagRoleMismatch"
|
|
)
|
|
NEW
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagNew"
|
|
)
|
|
DORMANT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagDormant"
|
|
)
|
|
TERMINATED_USER
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagTerminatedUser"
|
|
)
|
|
CONTRACTOR_EXPIRED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagContractorExpired"
|
|
)
|
|
SOD_CONFLICT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagSoDConflict"
|
|
)
|
|
PRIVILEGED_ACCESS
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagPrivilegedAccess"
|
|
)
|
|
ROLE_CREEP
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagRoleCreep"
|
|
)
|
|
NO_BUSINESS_JUSTIFICATION
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagNoBusinessJustification"
|
|
)
|
|
OUT_OF_DEPARTMENT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagOutOfDepartment"
|
|
)
|
|
SHARED_ACCOUNT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryFlagSharedAccount"
|
|
)
|
|
}
|
|
|
|
enum AccessEntryDecision
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessEntryDecision"
|
|
) {
|
|
PENDING
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryDecisionPending"
|
|
)
|
|
APPROVED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryDecisionApproved"
|
|
)
|
|
REVOKE
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryDecisionRevoke"
|
|
)
|
|
DEFER
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryDecisionDefer"
|
|
)
|
|
ESCALATE
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryDecisionEscalate"
|
|
)
|
|
}
|
|
|
|
enum AccessEntryIncrementalTag
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.AccessEntryIncrementalTag") {
|
|
NEW
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryIncrementalTagNew"
|
|
)
|
|
REMOVED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryIncrementalTagRemoved"
|
|
)
|
|
UNCHANGED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryIncrementalTagUnchanged"
|
|
)
|
|
}
|
|
|
|
enum MfaStatus
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.MFAStatus") {
|
|
ENABLED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.MFAStatusEnabled"
|
|
)
|
|
DISABLED
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.MFAStatusDisabled"
|
|
)
|
|
UNKNOWN
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.MFAStatusUnknown"
|
|
)
|
|
}
|
|
|
|
enum AccessEntryAuthMethod
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessEntryAuthMethod"
|
|
) {
|
|
SSO
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryAuthMethodSSO"
|
|
)
|
|
PASSWORD
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryAuthMethodPassword"
|
|
)
|
|
API_KEY
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryAuthMethodAPIKey"
|
|
)
|
|
SERVICE_ACCOUNT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryAuthMethodServiceAccount"
|
|
)
|
|
UNKNOWN
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryAuthMethodUnknown"
|
|
)
|
|
}
|
|
|
|
enum AccessEntryAccountType
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessEntryAccountType"
|
|
) {
|
|
USER
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryAccountTypeUser"
|
|
)
|
|
SERVICE_ACCOUNT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.AccessEntryAccountTypeServiceAccount"
|
|
)
|
|
}
|
|
|
|
enum AccessSourceOrderField
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessSourceOrderField"
|
|
) {
|
|
CREATED_AT
|
|
}
|
|
|
|
enum AccessReviewCampaignOrderField
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessReviewCampaignOrderField"
|
|
) {
|
|
CREATED_AT
|
|
}
|
|
|
|
enum AccessEntryOrderField
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessEntryOrderField"
|
|
) {
|
|
CREATED_AT
|
|
}
|
|
|
|
enum AccessSourceConnectionStatus {
|
|
CONNECTED
|
|
DISCONNECTED
|
|
NOT_APPLICABLE
|
|
}
|
|
|
|
input AccessSourceOrder {
|
|
direction: OrderDirection!
|
|
field: AccessSourceOrderField!
|
|
}
|
|
|
|
input AccessReviewCampaignOrder {
|
|
direction: OrderDirection!
|
|
field: AccessReviewCampaignOrderField!
|
|
}
|
|
|
|
input AccessEntryOrder {
|
|
direction: OrderDirection!
|
|
field: AccessEntryOrderField!
|
|
}
|
|
|
|
input AccessEntryFilter
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/coredata.AccessEntryFilter"
|
|
) {
|
|
decision: AccessEntryDecision
|
|
flag: AccessEntryFlag
|
|
incrementalTag: AccessEntryIncrementalTag
|
|
isAdmin: Boolean
|
|
authMethod: AccessEntryAuthMethod
|
|
accountType: AccessEntryAccountType
|
|
}
|
|
|
|
type AccessReview implements Node {
|
|
id: ID!
|
|
organization: Organization! @goField(forceResolver: true)
|
|
identitySource: AccessSource @goField(forceResolver: true)
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
accessSources(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: AccessSourceOrder
|
|
): AccessSourceConnection! @goField(forceResolver: true)
|
|
|
|
campaigns(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: AccessReviewCampaignOrder
|
|
): AccessReviewCampaignConnection! @goField(forceResolver: true)
|
|
|
|
permission(action: String!): Boolean! @goField(forceResolver: true)
|
|
}
|
|
|
|
type ProviderOrganization {
|
|
slug: String!
|
|
displayName: String!
|
|
}
|
|
|
|
type AccessSource implements Node {
|
|
id: ID!
|
|
organization: Organization! @goField(forceResolver: true)
|
|
connectorId: ID
|
|
connector: Connector @goField(forceResolver: true)
|
|
name: String!
|
|
csvData: String
|
|
providerOrganizations: [ProviderOrganization!]! @goField(forceResolver: true)
|
|
needsConfiguration: Boolean! @goField(forceResolver: true)
|
|
connectionStatus: AccessSourceConnectionStatus! @goField(forceResolver: true)
|
|
selectedOrganization: String @goField(forceResolver: true)
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
permission(action: String!): Boolean! @goField(forceResolver: true)
|
|
}
|
|
|
|
type AccessReviewCampaignScopeSource
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AccessReviewCampaignScopeSource"
|
|
) {
|
|
id: ID!
|
|
source: AccessSource!
|
|
name: String!
|
|
fetchStatus: AccessReviewCampaignSourceFetchStatus!
|
|
fetchedAccountsCount: Int!
|
|
attemptCount: Int!
|
|
lastError: String
|
|
fetchStartedAt: Datetime
|
|
fetchCompletedAt: Datetime
|
|
|
|
entries(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: AccessEntryOrder
|
|
filter: AccessEntryFilter
|
|
): AccessEntryConnection! @goField(forceResolver: true)
|
|
|
|
statistics: AccessReviewCampaignStatistics! @goField(forceResolver: true)
|
|
}
|
|
|
|
type AccessReviewCampaign implements Node {
|
|
id: ID!
|
|
organization: Organization! @goField(forceResolver: true)
|
|
name: String!
|
|
description: String!
|
|
status: AccessReviewCampaignStatus!
|
|
startedAt: Datetime
|
|
completedAt: Datetime
|
|
frameworkControls: [String!]
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
scopeSources: [AccessReviewCampaignScopeSource!]! @goField(forceResolver: true)
|
|
|
|
entries(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: AccessEntryOrder
|
|
accessSourceId: ID
|
|
filter: AccessEntryFilter
|
|
): AccessEntryConnection! @goField(forceResolver: true)
|
|
|
|
pendingEntryCount: Int! @goField(forceResolver: true)
|
|
|
|
statistics: AccessReviewCampaignStatistics! @goField(forceResolver: true)
|
|
|
|
permission(action: String!): Boolean! @goField(forceResolver: true)
|
|
}
|
|
|
|
type AccessEntry implements Node {
|
|
id: ID!
|
|
campaign: AccessReviewCampaign! @goField(forceResolver: true)
|
|
accessSource: AccessSource! @goField(forceResolver: true)
|
|
email: String!
|
|
fullName: String!
|
|
role: String!
|
|
jobTitle: String!
|
|
isAdmin: Boolean!
|
|
mfaStatus: MfaStatus!
|
|
authMethod: AccessEntryAuthMethod!
|
|
accountType: AccessEntryAccountType!
|
|
lastLogin: Datetime
|
|
accountCreatedAt: Datetime
|
|
externalId: String!
|
|
incrementalTag: AccessEntryIncrementalTag!
|
|
flags: [AccessEntryFlag!]!
|
|
flagReasons: [String!]!
|
|
decision: AccessEntryDecision!
|
|
decisionNote: String
|
|
decidedBy: ID
|
|
decidedAt: Datetime
|
|
decisionHistory: [AccessEntryDecisionHistoryEntry!]!
|
|
@goField(forceResolver: true)
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
permission(action: String!): Boolean! @goField(forceResolver: true)
|
|
}
|
|
|
|
type AccessEntryDecisionHistoryEntry {
|
|
id: ID!
|
|
decision: AccessEntryDecision!
|
|
decisionNote: String
|
|
decidedBy: ID
|
|
decidedAt: Datetime!
|
|
createdAt: Datetime!
|
|
}
|
|
|
|
type AccessSourceConnection
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AccessSourceConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [AccessSourceEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type AccessSourceEdge {
|
|
cursor: CursorKey!
|
|
node: AccessSource!
|
|
}
|
|
|
|
type AccessReviewCampaignConnection
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AccessReviewCampaignConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [AccessReviewCampaignEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type AccessReviewCampaignEdge {
|
|
cursor: CursorKey!
|
|
node: AccessReviewCampaign!
|
|
}
|
|
|
|
type AccessEntryConnection
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/console/v1/types.AccessEntryConnection"
|
|
) {
|
|
totalCount: Int! @goField(forceResolver: true)
|
|
edges: [AccessEntryEdge!]!
|
|
pageInfo: PageInfo!
|
|
}
|
|
|
|
type AccessEntryEdge {
|
|
cursor: CursorKey!
|
|
node: AccessEntry!
|
|
}
|
|
|
|
type AccessReviewCampaignStatistics {
|
|
totalCount: Int!
|
|
decisionCounts: [AccessEntryDecisionCount!]!
|
|
flagCounts: [AccessEntryFlagCount!]!
|
|
incrementalTagCounts: [AccessEntryIncrementalTagCount!]!
|
|
}
|
|
|
|
type AccessEntryDecisionCount {
|
|
decision: AccessEntryDecision!
|
|
count: Int!
|
|
}
|
|
|
|
type AccessEntryFlagCount {
|
|
flag: AccessEntryFlag!
|
|
count: Int!
|
|
}
|
|
|
|
type AccessEntryIncrementalTagCount {
|
|
incrementalTag: AccessEntryIncrementalTag!
|
|
count: Int!
|
|
}
|
|
|
|
extend type Mutation {
|
|
createAccessSource(
|
|
input: CreateAccessSourceInput!
|
|
): CreateAccessSourcePayload!
|
|
updateAccessSource(
|
|
input: UpdateAccessSourceInput!
|
|
): UpdateAccessSourcePayload!
|
|
deleteAccessSource(
|
|
input: DeleteAccessSourceInput!
|
|
): DeleteAccessSourcePayload!
|
|
configureAccessSource(
|
|
input: ConfigureAccessSourceInput!
|
|
): ConfigureAccessSourcePayload!
|
|
createAccessReviewCampaign(
|
|
input: CreateAccessReviewCampaignInput!
|
|
): CreateAccessReviewCampaignPayload!
|
|
updateAccessReviewCampaign(
|
|
input: UpdateAccessReviewCampaignInput!
|
|
): UpdateAccessReviewCampaignPayload!
|
|
deleteAccessReviewCampaign(
|
|
input: DeleteAccessReviewCampaignInput!
|
|
): DeleteAccessReviewCampaignPayload!
|
|
startAccessReviewCampaign(
|
|
input: StartAccessReviewCampaignInput!
|
|
): StartAccessReviewCampaignPayload!
|
|
closeAccessReviewCampaign(
|
|
input: CloseAccessReviewCampaignInput!
|
|
): CloseAccessReviewCampaignPayload!
|
|
cancelAccessReviewCampaign(
|
|
input: CancelAccessReviewCampaignInput!
|
|
): CancelAccessReviewCampaignPayload!
|
|
addAccessReviewCampaignScopeSource(
|
|
input: AddAccessReviewCampaignScopeSourceInput!
|
|
): AddAccessReviewCampaignScopeSourcePayload!
|
|
removeAccessReviewCampaignScopeSource(
|
|
input: RemoveAccessReviewCampaignScopeSourceInput!
|
|
): RemoveAccessReviewCampaignScopeSourcePayload!
|
|
recordAccessEntryDecision(
|
|
input: RecordAccessEntryDecisionInput!
|
|
): RecordAccessEntryDecisionPayload!
|
|
recordAccessEntryDecisions(
|
|
input: RecordAccessEntryDecisionsInput!
|
|
): RecordAccessEntryDecisionsPayload!
|
|
flagAccessEntry(
|
|
input: FlagAccessEntryInput!
|
|
): FlagAccessEntryPayload!
|
|
}
|
|
|
|
input CreateAccessSourceInput {
|
|
organizationId: ID!
|
|
connectorId: ID
|
|
name: String!
|
|
csvData: String
|
|
}
|
|
|
|
type CreateAccessSourcePayload {
|
|
accessSourceEdge: AccessSourceEdge!
|
|
}
|
|
|
|
input UpdateAccessSourceInput {
|
|
accessSourceId: ID!
|
|
name: String @goField(omittable: true)
|
|
connectorId: ID @goField(omittable: true)
|
|
csvData: String @goField(omittable: true)
|
|
}
|
|
|
|
type UpdateAccessSourcePayload {
|
|
accessSource: AccessSource!
|
|
}
|
|
|
|
input DeleteAccessSourceInput {
|
|
accessSourceId: ID!
|
|
}
|
|
|
|
type DeleteAccessSourcePayload {
|
|
deletedAccessSourceId: ID!
|
|
}
|
|
|
|
input ConfigureAccessSourceInput {
|
|
accessSourceId: ID!
|
|
organizationSlug: String!
|
|
}
|
|
|
|
type ConfigureAccessSourcePayload {
|
|
accessSource: AccessSource!
|
|
}
|
|
|
|
input CreateAccessReviewCampaignInput {
|
|
organizationId: ID!
|
|
name: String!
|
|
description: String
|
|
frameworkControls: [String!]
|
|
accessSourceIds: [ID!]
|
|
}
|
|
|
|
type CreateAccessReviewCampaignPayload {
|
|
accessReviewCampaignEdge: AccessReviewCampaignEdge!
|
|
}
|
|
|
|
input UpdateAccessReviewCampaignInput {
|
|
accessReviewCampaignId: ID!
|
|
name: String @goField(omittable: true)
|
|
description: String @goField(omittable: true)
|
|
frameworkControls: [String!] @goField(omittable: true)
|
|
}
|
|
|
|
type UpdateAccessReviewCampaignPayload {
|
|
accessReviewCampaign: AccessReviewCampaign!
|
|
}
|
|
|
|
input DeleteAccessReviewCampaignInput {
|
|
accessReviewCampaignId: ID!
|
|
}
|
|
|
|
type DeleteAccessReviewCampaignPayload {
|
|
deletedAccessReviewCampaignId: ID!
|
|
}
|
|
|
|
input StartAccessReviewCampaignInput {
|
|
accessReviewCampaignId: ID!
|
|
}
|
|
|
|
type StartAccessReviewCampaignPayload {
|
|
accessReviewCampaign: AccessReviewCampaign!
|
|
}
|
|
|
|
input CloseAccessReviewCampaignInput {
|
|
accessReviewCampaignId: ID!
|
|
}
|
|
|
|
type CloseAccessReviewCampaignPayload {
|
|
accessReviewCampaign: AccessReviewCampaign!
|
|
}
|
|
|
|
input CancelAccessReviewCampaignInput {
|
|
accessReviewCampaignId: ID!
|
|
}
|
|
|
|
type CancelAccessReviewCampaignPayload {
|
|
accessReviewCampaign: AccessReviewCampaign!
|
|
}
|
|
|
|
input AddAccessReviewCampaignScopeSourceInput {
|
|
accessReviewCampaignId: ID!
|
|
accessSourceId: ID!
|
|
}
|
|
|
|
type AddAccessReviewCampaignScopeSourcePayload {
|
|
accessReviewCampaign: AccessReviewCampaign!
|
|
}
|
|
|
|
input RemoveAccessReviewCampaignScopeSourceInput {
|
|
accessReviewCampaignId: ID!
|
|
accessSourceId: ID!
|
|
}
|
|
|
|
type RemoveAccessReviewCampaignScopeSourcePayload {
|
|
accessReviewCampaign: AccessReviewCampaign!
|
|
}
|
|
|
|
input RecordAccessEntryDecisionInput {
|
|
accessEntryId: ID!
|
|
decision: AccessEntryDecision!
|
|
decisionNote: String
|
|
}
|
|
|
|
type RecordAccessEntryDecisionPayload {
|
|
accessEntry: AccessEntry!
|
|
}
|
|
|
|
input RecordAccessEntryDecisionsInput {
|
|
decisions: [AccessEntryDecisionInput!]!
|
|
}
|
|
|
|
input AccessEntryDecisionInput {
|
|
accessEntryId: ID!
|
|
decision: AccessEntryDecision!
|
|
decisionNote: String
|
|
}
|
|
|
|
type RecordAccessEntryDecisionsPayload {
|
|
accessEntries: [AccessEntry!]!
|
|
}
|
|
|
|
input FlagAccessEntryInput {
|
|
accessEntryId: ID!
|
|
flags: [AccessEntryFlag!]!
|
|
flagReasons: [String!]
|
|
}
|
|
|
|
type FlagAccessEntryPayload {
|
|
accessEntry: AccessEntry!
|
|
}
|