184 lines
4.9 KiB
GraphQL
184 lines
4.9 KiB
GraphQL
type SCIMConfiguration implements Node {
|
|
id: ID!
|
|
endpointUrl: String! @goField(forceResolver: true)
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
organization: Organization @goField(forceResolver: true)
|
|
|
|
bridge: SCIMBridge @goField(forceResolver: true)
|
|
|
|
events(
|
|
first: Int
|
|
after: CursorKey
|
|
last: Int
|
|
before: CursorKey
|
|
orderBy: SCIMEventOrder
|
|
): SCIMEventConnection @goField(forceResolver: true)
|
|
|
|
permission(action: String!): Boolean!
|
|
@goField(forceResolver: true)
|
|
@authentication(required: PRESENT)
|
|
}
|
|
|
|
type SCIMBridge implements Node {
|
|
id: ID!
|
|
state: SCIMBridgeState!
|
|
syncError: String
|
|
scimConfiguration: SCIMConfiguration @goField(forceResolver: true)
|
|
connector: Connector @goField(forceResolver: true)
|
|
type: SCIMBridgeType!
|
|
excludedUserNames: [String!]!
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
permission(action: String!): Boolean!
|
|
@goField(forceResolver: true)
|
|
@authentication(required: PRESENT)
|
|
}
|
|
|
|
type Connector implements Node {
|
|
id: ID!
|
|
provider: ConnectorProvider!
|
|
createdAt: Datetime!
|
|
updatedAt: Datetime!
|
|
|
|
permission(action: String!): Boolean!
|
|
@goField(forceResolver: true)
|
|
@authentication(required: PRESENT)
|
|
}
|
|
|
|
enum ConnectorProvider
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.ConnectorProvider") {
|
|
SLACK @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderSlack")
|
|
GOOGLE_WORKSPACE
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderGoogleWorkspace")
|
|
MICROSOFT_365
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderMicrosoft365")
|
|
BREX @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderBrex")
|
|
TALLY @goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderTally")
|
|
CLOUDFLARE
|
|
@goEnum(value: "go.probo.inc/probo/pkg/coredata.ConnectorProviderCloudflare")
|
|
}
|
|
|
|
enum SCIMBridgeType
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.SCIMBridgeType") {
|
|
GOOGLE_WORKSPACE @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeTypeGoogleWorkspace")
|
|
MICROSOFT_365 @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeTypeMicrosoft365")
|
|
}
|
|
|
|
type SCIMBridgeTypeInfo {
|
|
type: SCIMBridgeType!
|
|
oauth2Scopes: [String!]!
|
|
}
|
|
|
|
enum SCIMBridgeState
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.SCIMBridgeState") {
|
|
PENDING @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeStatePending")
|
|
SYNCING @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeStateSyncing")
|
|
ACTIVE @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeStateActive")
|
|
FAILED @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeStateFailed")
|
|
DISABLED @goEnum(value: "go.probo.inc/probo/pkg/coredata.SCIMBridgeStateDisabled")
|
|
}
|
|
|
|
type SCIMEvent implements Node {
|
|
id: ID!
|
|
method: String!
|
|
path: String!
|
|
statusCode: Int!
|
|
requestBody: String
|
|
responseBody: String
|
|
errorMessage: String
|
|
userName: String!
|
|
ipAddress: String!
|
|
createdAt: Datetime!
|
|
|
|
permission(action: String!): Boolean!
|
|
@goField(forceResolver: true)
|
|
@authentication(required: PRESENT)
|
|
}
|
|
|
|
enum SCIMEventOrderField
|
|
@goModel(model: "go.probo.inc/probo/pkg/coredata.SCIMEventOrderField") {
|
|
CREATED_AT
|
|
@goEnum(
|
|
value: "go.probo.inc/probo/pkg/coredata.SCIMEventOrderFieldCreatedAt"
|
|
)
|
|
}
|
|
|
|
input SCIMEventOrder
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/connect/v1/types.SCIMEventOrderBy"
|
|
) {
|
|
direction: OrderDirection!
|
|
field: SCIMEventOrderField!
|
|
}
|
|
|
|
type SCIMEventConnection
|
|
@goModel(
|
|
model: "go.probo.inc/probo/pkg/server/api/connect/v1/types.SCIMEventConnection"
|
|
) {
|
|
edges: [SCIMEventEdge!]!
|
|
pageInfo: PageInfo!
|
|
totalCount: Int @goField(forceResolver: true)
|
|
}
|
|
|
|
type SCIMEventEdge {
|
|
node: SCIMEvent!
|
|
cursor: CursorKey!
|
|
}
|
|
|
|
extend type Mutation {
|
|
createSCIMConfiguration(
|
|
input: CreateSCIMConfigurationInput!
|
|
): CreateSCIMConfigurationPayload @authentication(required: PRESENT) @sessionOnly
|
|
deleteSCIMConfiguration(
|
|
input: DeleteSCIMConfigurationInput!
|
|
): DeleteSCIMConfigurationPayload @authentication(required: PRESENT) @sessionOnly
|
|
regenerateSCIMToken(
|
|
input: RegenerateSCIMTokenInput!
|
|
): RegenerateSCIMTokenPayload @authentication(required: PRESENT) @sessionOnly
|
|
updateSCIMBridge(
|
|
input: UpdateSCIMBridgeInput!
|
|
): UpdateSCIMBridgePayload @authentication(required: PRESENT)
|
|
}
|
|
|
|
input CreateSCIMConfigurationInput {
|
|
organizationId: ID!
|
|
connectorId: ID
|
|
}
|
|
|
|
input DeleteSCIMConfigurationInput {
|
|
organizationId: ID!
|
|
scimConfigurationId: ID!
|
|
}
|
|
|
|
input RegenerateSCIMTokenInput {
|
|
organizationId: ID!
|
|
scimConfigurationId: ID!
|
|
}
|
|
|
|
input UpdateSCIMBridgeInput {
|
|
organizationId: ID!
|
|
scimBridgeId: ID!
|
|
excludedUserNames: [String!]!
|
|
}
|
|
|
|
type CreateSCIMConfigurationPayload {
|
|
scimConfiguration: SCIMConfiguration!
|
|
scimBridge: SCIMBridge
|
|
token: String!
|
|
}
|
|
|
|
type DeleteSCIMConfigurationPayload {
|
|
deletedScimConfigurationId: ID!
|
|
}
|
|
|
|
type RegenerateSCIMTokenPayload {
|
|
scimConfiguration: SCIMConfiguration!
|
|
token: String!
|
|
}
|
|
|
|
type UpdateSCIMBridgePayload {
|
|
scimBridge: SCIMBridge!
|
|
}
|