GraphQL API

GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API,  gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

Schema

extend type Query {
getQueue(queue: GetQueueInput!): Queue
getQueues(queues: GetQueuesInput!): [Queue]
getTaskById(taskId: ID!, tenantId: ID): TaskState
getTrigger(trigger: GetTriggerInput!): Trigger
getWizards(wizards: GetWizardsInput!): [Wizard]
}

extend type Mutation {
addQueue(queue: AddQueueInput): Queue
updateQueue(queue: UpdateQueueInput): Queue
addTask(task: AddTaskInput!): Task
reassignTaskToQueue(task: ReassignTaskToQueueInput!): Task
}

type Queue {
id: ID!
name: String!
tenantId: ID!
createdAt: DateTime!
isDeleted: Boolean
deletedAt: String
createdBy: String!
}

input GetQueueInput {
queueId: ID!
tenantId: ID
}

input GetQueuesInput {
tenantId: ID
filters: GetQueuesFilters
}

input AddQueueInput {
tenantId: ID
name: String!
}

input UpdateQueueInput {
queueId: ID!
tenantId: ID
name: String
}

input GetQueuesFilters {
name: StringFilter
createdBy: StringFilter
createdAt: DateTimeFilter
}

type Task {
id: ID!
name: String!
priority: Int!
queueId: ID!
tenantId: ID!
wizardId: ID!
state: String!
producerId: ID!
producerType: String!
ttl: String
operationalHours: String
retryLimit: Int!
retryTimes: Int!
avgTaskRun: Int!
createdAt: DateTime!
telemetry: TaskTelemetry
variables: [Variable]
notifications: Notifications
}

input AddTaskInput {
queueId: ID!
name: String!
wizardCustomName: String!
priority: Int!
tenantId: ID
variables: [VariableInput]
notifications: NotificationsInput
}

input ReassignTaskToQueueInput {
tenantId: ID
queueId: ID!
taskId: ID!
}

type TaskTelemetry {
waitTimeInQueue: Int
}

type TaskState {
id: ID!,
tenantId: ID!,
taskId: ID!,
queueId: ID!,
workflowId : ID!,
robotId : ID!,
producerId: ID!,
handlerId: ID!,
createdAt: DateTime!,
taskName: String!,
taskState: String!,
eventType: String!,
eventTime: DateTime!,
eventDetails: JSON,
wizardApplications: [String],
producerType: String!,
priority: String!,
taskConfiguration: Configuration!,
retryLimit: Int,
retryTimes: Int,
ttl: Int,
robotVersion: String!
avgTaskRun: Int,
extraData: JSON
}

type Configuration {
businessProcess
wizardId
wizardApplications
}

type Trigger {
active: Boolean!
queueId: ID!
queueName: String
avoidDuplicateRun: Boolean
creationDate: DateTime!
creationUser: String!
lastUpdateUser: String!
lastUpdateDate: DateTime!
lastTriggeredTime: DateTime
credentialId: Int
credentialDisplayName: String
id: ID!
metadata: JSON
name: String!
notifications: JSON
priority: Int!
running: Boolean!
type: String!
useVaultUser: Boolean
variables: JSON
wizardId: ID!
wizardName: String
}

input GetTriggerInput {
tenantId: ID
triggerId: ID!
}

type Wizard {
id: ID!
name: String!
}

input GetWizardsInput {
tenantId: ID
}

input NotificationsInput {
created: String,
ended: String,
started: String,
wizardError: String,
stoppedPausedResumed: String
}

input VariableInput {
name: String!,
value: String!
}

type Notifications {
created: String,
ended: String,
started: String,
wizardError: String,
stoppedPausedResumed: String
}

type Variable {
name: String!
value: String!
}

input StringFilter {
startsWith: String
endsWith: String
contains: String
equals: String
}

input DateTimeFilter {
from: String
to: String
}