# -----------------------------------------------
# !!! THIS FILE WAS GENERATED BY TYPE-GRAPHQL !!!
# !!!   DO NOT MODIFY THIS FILE BY YOURSELF   !!!
# -----------------------------------------------

type AccessToken {
  accesToken: String!
  refreshToken: String!
}

"""Entity for Activity"""
type Activity {
  """BPMN 2.0 task type"""
  activityType: String

  """Approval line for handling the activity."""
  approvalLine: [ApprovalLineItem!]

  """Roles eligible to pick up activity from the activity bank."""
  assigneeRole: Role

  """Who to resolve for the activity."""
  assignees: [AssigneeItem!]

  """User assigned to the client application"""
  client: User
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  issuerRole: Role
  model: [ActivityModelItem!]

  """
  Parallel or sequential are properties as a multi-instance activity, otherwise it means a single instance.
  """
  multiple: String
  name: String
  priority: Float
  reportSource: String

  """The type of report to be shown when a task is approved"""
  reportType: String

  """Autostart schedule in crontab format"""
  schedule: String

  """ID of the autostart schedule registered in the schedule service"""
  scheduleId: String
  searchKeys: [ActivitySearchKeyItem!]

  """Standard time for this activity to be performed"""
  standardTime: Float

  """Whether the purpose of starting the activity is to issue or post"""
  startingType: String
  state: String

  """The final authority on a given activity."""
  supervisoryRole: Role
  thumbnail: String

  """Time zone to which automatic scheduling is applied"""
  timezone: String
  uiSource: String

  """The type of UI to be shown when a task is performed"""
  uiType: String
  updatedAt: Timestamp
  updater: User
  version: Float
  viewSource: String

  """The type of view to be shown when a task is approved"""
  viewType: String
}

"""Entity for ActivityApproval"""
type ActivityApproval {
  activityThread: ActivityThread
  approver: User
  comment: String
  createdAt: Timestamp
  creator: User
  derivedApprovals: [ActivityApproval!]!
  domain: Domain
  id: ID!
  judgment: String

  """Nth order approval for the given activity thread"""
  order: Float

  """delegator approval"""
  originalApproval: ActivityApproval
  round: Float
  terminatedAt: Timestamp
  terminator: User
  transaction: String
  updatedAt: Timestamp
  updater: User
}

type ActivityApprovalList {
  items: [ActivityApproval!]!
  total: Int!
}

type ActivityEvent {
  date: Timestamp
  id: String
  name: String
  priority: Float
  state: String
  type: String
}

"""Entity for ActivityInstance"""
type ActivityInstance {
  activity: Activity
  activityThreads: [ActivityThread!]!
  activityType: String
  adhocType: String
  approvalLine: [ApprovalLineItem!]
  assignedAt: Timestamp
  assigneeRole: Role
  assignees: [AssigneeItem!]
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  dueAt: Timestamp
  id: ID!
  input: Object
  issuedAt: Timestamp
  issuer: User
  key01: String
  key02: String
  key03: String
  key04: String
  key05: String
  name: String
  output: Object
  priority: Float
  reason: String
  refBy: String
  startedAt: Timestamp
  starter: User
  state: String
  supervisoryRole: Role
  terminatedAt: Timestamp
  terminator: User
  threadsMax: Int
  threadsMin: Int
  thumbnail: String
  transaction: String
  uiSource: String
  uiType: String
  updatedAt: Timestamp
  updater: User
  version: Float
  viewSource: String
  viewType: String
}

input ActivityInstanceDraft {
  activityId: String
  activityType: String
  adhocType: String
  approvalLine: Object
  assigneeRole: ObjectRef
  assignees: Object
  description: String
  dueAt: Date
  id: ID
  input: Object
  name: String!
  output: Object
  priority: Float
  reason: String
  refBy: String
  supervisoryRole: ObjectRef
  threadsMax: Int
  threadsMin: Int
  uiSource: String
  uiType: String
  viewSource: String
  viewType: String
}

input ActivityInstanceIssue {
  activityId: String
  activityType: String
  adhocType: String
  approvalLine: Object
  assigneeRole: ObjectRef
  assignees: Object
  description: String
  dueAt: Date
  id: ID
  input: Object
  name: String
  output: Object
  priority: Float
  reason: String
  refBy: String
  supervisoryRole: ObjectRef
  threadsMax: Int
  threadsMin: Int
  uiSource: String
  uiType: String
  viewSource: String
  viewType: String
}

type ActivityInstanceList {
  items: [ActivityInstance!]!
  total: Int!
}

type ActivityList {
  items: [Activity!]!
  total: Int!
}

"""Entity for ActivityModelItem"""
type ActivityModelItem {
  active: Boolean
  description: String
  hidden: Boolean
  inout: ActivityModelItemInoutType
  mandatory: Boolean
  name: String
  options: Object
  quantifier: [Int!]
  spec: Object
  tag: String
  type: String
  unit: String
}

"""inout enumeration of a activity-model-item"""
enum ActivityModelItemInoutType {
  in
  inout
  out
}

input ActivityPatch {
  activityType: String
  approvalLine: Object
  assigneeRole: ObjectRef
  assignees: Object
  cuFlag: String
  description: String
  id: ID
  issuerRole: ObjectRef
  model: Object
  multiple: String
  name: String
  priority: Float
  reportSource: String
  reportType: String
  schedule: String
  scheduleId: String
  searchKeys: Object
  standardTime: Float
  startingType: String
  state: String
  supervisoryRole: ObjectRef
  thumbnail: Upload
  timezone: String
  uiSource: String
  uiType: String
  viewSource: String
  viewType: String
}

"""Entity for ActivitySearchKeyItem"""
type ActivitySearchKeyItem {
  description: String
  inputKey: String
  name: String!
  tKey: String
}

"""Object Type for My Activity Summary"""
type ActivitySummary {
  numberOfApprovalPendings: Float
  numberOfDrafts: Float
  numberOfPicks: Float
  numberOfToDos: Float
}

"""Entity for ActivityTemplate"""
type ActivityTemplate {
  active: Boolean
  activityType: String
  category: String
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  model: [ActivityModelItem!]
  name: String
  reportSource: String
  reportType: String
  state: String
  thumbnail: String
  uiSource: String
  uiType: String
  updatedAt: Timestamp
  updater: User
  version: Float
  viewSource: String
  viewType: String
  visibility: String
}

type ActivityTemplateList {
  items: [ActivityTemplate!]!
  total: Int!
}

input ActivityTemplatePatch {
  active: Boolean
  activityType: String
  category: String
  cuFlag: String
  description: String
  id: ID
  model: Object
  name: String
  reportSource: String
  reportType: String
  state: String
  thumbnail: Upload
  uiSource: String
  uiType: String
  viewSource: String
  viewType: String
  visibility: String
}

"""Entity for ActivityThread"""
type ActivityThread {
  activityInstance: ActivityInstance
  assignedAt: Timestamp
  assignee: User
  createdAt: Timestamp
  creator: User
  domain: Domain
  dueAt: Timestamp
  id: ID!
  output: Object
  round: Float
  startedAt: Timestamp
  state: String
  terminatedAt: Timestamp
  terminator: User
  transaction: String
  updatedAt: Timestamp
  updater: User
  version: Float
}

type ActivityThreadList {
  items: [ActivityThread!]!
  total: Int!
}

input ActivityThreadSave {
  output: Object
}

"""Any Scalar type (String, Boolean, Int, Float, Object, List)"""
scalar Any

type AppBinding {
  application: Application
  createdAt: Timestamp
  creator: User!
  description: String
  domains: [Domain!]!
  email: String!
  id: ID!
  locale: String
  name: String!
  owner: Boolean
  reference: String
  refreshToken: String
  roles: [Role!]!
  scope: String
  status: String!
  updatedAt: Timestamp
  updater: User!
  userType: String
}

type AppBindingList {
  items: [AppBinding!]
  total: Int
}

type Appliance {
  accessToken: String
  brand: String
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain!
  id: ID!
  model: String
  name: String!
  netmask: String
  serialNo: String
  updatedAt: Timestamp
  updater: User
}

type ApplianceList {
  items: [Appliance!]
  total: Int
}

input AppliancePatch {
  brand: String
  description: String
  id: ID
  model: String
  name: String
  netmask: String
  serialNo: String
}

type Application {
  accessTokenUrl: String!
  appKey: String
  appSecret: String
  authUrl: String!
  availableScopes: String!
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain!
  email: String!
  icon: String
  id: ID!
  name: String!
  redirectUrl: String!
  status: String!
  type: String!
  updatedAt: Timestamp
  updater: User
  url: String!
  webhook: String
}

type ApplicationList {
  items: [Application!]
  total: Int
}

input ApplicationPatch {
  description: String
  email: String
  icon: String
  name: String
  redirectUrl: String
  type: ApplicationType
  url: String
  webhook: String
}

"""state enumeration of a application"""
enum ApplicationType {
  MMS
  OTHERS
  SELLERCRAFT
  SFTP
  XERO
  XILNEX
}

"""Entity for ApprovalLine"""
type ApprovalLine {
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  model: [ApprovalLineItem!]
  name: String
  owner: ApprovalLineOwner
  ownerEmployee: Employee
  ownerType: String
  ownerValue: String
  updatedAt: Timestamp
  updater: User
}

"""Entity for approval line item"""
type ApprovalLineItem {
  approver: OrgMemberTarget
  type: String
  value: String
}

type ApprovalLineList {
  items: [ApprovalLine!]!
  total: Int!
}

type ApprovalLineOwner {
  controlNo: String

  """Field description"""
  description: String

  """Field id"""
  id: ID!

  """Field name"""
  name: String
}

"""type enumeration of a approvalLineOwner"""
enum ApprovalLineOwnerType {
  Common
  Employee
}

input ApprovalLinePatch {
  cuFlag: String
  description: String
  id: ID
  model: Object
  name: String
  owner: ObjectRefApprovalLineOwnerType
  ownerType: ApprovalLineOwnerType
}

type AssigneeItem {
  assignee: OrgMemberTarget
  type: OrgMemberTargetType
  value: String
}

type Attachment {
  category: String
  createdAt: Timestamp!
  creator: User
  description: String
  domain: Domain!
  encoding: String!
  fullpath: String!
  id: ID!
  mimetype: String!
  name: String!
  path: String!
  refBy: String
  refType: String
  size: String!
  updatedAt: Timestamp!
  updater: User
}

type AttachmentList {
  items: [Attachment!]!
  total: Int!
}

input AttachmentPatch {
  category: String
  description: String
  encoding: String
  file: Upload
  mimetype: String
  name: String
  refBy: String
  refType: String
}

"""Entity for Visualization Board"""
type Board {
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  group: Group
  id: ID
  model: String
  name: String!
  playGroups: [PlayGroup!]
  thumbnail: String
  updatedAt: Timestamp
  updater: User
}

type BoardList {
  items: [Board!]!
  total: Int!
}

input BoardPatch {
  description: String
  groupId: String
  model: String
  name: String
  thumbnail: String
}

type BoardSetting {
  board: Board!
  id: ID!
  name: String!
  value: String!
}

"""Entity for CommonCode"""
type CommonCode {
  createdAt: Timestamp
  creator: User
  description: String
  details: [CommonCodeDetail!]!
  domain: Domain
  id: ID!
  name: String!
  updatedAt: Timestamp
  updater: User
}

"""Entity for CommonCodeDetail"""
type CommonCodeDetail {
  commonCode: CommonCode
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  name: String!
  rank: Float
  updatedAt: Timestamp
  updater: User
}

type CommonCodeDetailList {
  items: [CommonCodeDetail!]!
  total: Int!
}

input CommonCodeDetailPatch {
  commonCode: ObjectRef!
  cuFlag: String
  description: String
  id: ID
  name: String
  rank: Float
}

type CommonCodeList {
  items: [CommonCode!]!
  total: Int!
}

input CommonCodePatch {
  cuFlag: String
  description: String
  details: [String!]
  id: ID
  name: String
}

type Connection {
  active: Boolean
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  endpoint: String
  id: ID!
  name: String!
  params: String
  state: String
  type: String
  updatedAt: Timestamp
  updater: User
}

type ConnectionList {
  items: [Connection!]!
  total: Int!
}

input ConnectionPatch {
  active: Boolean
  cuFlag: String!
  description: String
  endpoint: String
  id: ID
  name: String
  params: String
  type: String
}

type ConnectionState {
  description: String
  domain: Domain
  id: String
  name: String
  state: String
  timestamp: Timestamp
  type: String
}

type ConnectorList {
  items: [ConnectorType!]!
  total: Int!
}

type ConnectorType {
  description: String
  help: String
  name: String!
  parameterSpec: [PropertySpec!]
  taskPrefixes: [String!]
}

"""Entity for Contact"""
type Contact {
  address: String
  company: String
  createdAt: Timestamp
  creator: User
  deletedAt: Timestamp
  department: String
  domain: Domain
  email: String
  id: ID!
  items: [ContactItem!]
  name: String
  note: String
  phone: String
  profile: Profile
  updatedAt: Timestamp
  updater: User
}

type ContactItem {
  label: String!
  type: String!
  value: String!
}

input ContactItemPatch {
  label: String!
  type: String!
  value: String!
}

type ContactList {
  items: [Contact!]!
  total: Int!
}

input ContactPatch {
  address: String
  company: String
  cuFlag: String
  department: String
  email: String
  id: ID
  items: [ContactItemPatch!]
  name: String
  note: String
  phone: String
  profile: ProfileInput
}

type Data {
  """Data delivered by subscription"""
  data: Object

  """The domain where the data originated"""
  domain: Domain

  """Tag name attached to data"""
  tag: String!
}

"""Entity for DataArchive"""
type DataArchive {
  createdAt: Timestamp
  creator: User
  domain: Domain
  downloadUrl: String
  id: ID!
  requestParams: Object
  status: String
  type: String
  updatedAt: Timestamp
  updater: User
}

type DataArchiveList {
  items: [DataArchive!]!
  total: Int!
}

input DataArchivePatch {
  cuFlag: String
  downloadUrl: String
  id: ID
  requestParams: Object
  status: String
  type: String
}

"""Entity for DataItem"""
type DataItem {
  active: Boolean
  description: String
  hidden: Boolean
  name: String!
  options: Object
  quota: Int
  reducer: String
  spec: Object
  tag: String
  type: String
  unit: String
}

input DataItemPatch {
  active: Boolean
  description: String
  hidden: Boolean
  name: String
  options: Object
  quota: Int
  spec: Object
  tag: String
  type: DataItemType
  unit: String
}

"""type enumeration of a data-item"""
enum DataItemType {
  boolean
  date
  datetime
  file
  number
  select
  text
}

"""Entity for DataKeyItem"""
type DataKeyItem {
  dataKey: String
  description: String
  name: String!
  tKey: String
}

input DataKeyItemPatch {
  dataKey: String
  description: String
  name: String
  tKey: String
}

"""Entity for DataKeySet"""
type DataKeySet {
  active: Boolean
  createdAt: Timestamp
  creator: User
  dataKeyItems: [DataKeyItem!]
  description: String
  domain: Domain
  id: ID!
  name: String!
  reportType: String
  reportView: String
  thumbnail: String
  updatedAt: Timestamp
  updater: User
}

type DataKeySetList {
  items: [DataKeySet!]!
  total: Int!
}

input DataKeySetPatch {
  active: Boolean
  cuFlag: String
  dataKeyItems: [DataKeyItemPatch!]
  description: String
  id: ID
  name: String
  reportType: String
  reportView: String
  thumbnail: Upload
}

"""Entity for Out of control data"""
type DataOoc {
  collectedAt: Timestamp
  correctedAt: Timestamp
  correctiveAction: String
  correctiveInstruction: String
  corrector: User
  createdAt: Timestamp
  creator: User
  data: Object
  dataItems: [DataItem!]
  dataSet: DataSet
  dataSetVersion: Float
  description: String
  domain: Domain
  history: Object
  id: ID!
  judgment: Object
  key01: String
  key02: String
  key03: String
  key04: String
  key05: String
  name: String!
  ooc: Boolean
  oos: Boolean
  partitionKeys: Object
  rawData: String
  reviewedAt: Timestamp
  reviewer: User
  source: String
  state: String
  type: String
  updatedAt: Timestamp
  updater: User
  useCase: String
  workDate: String
  workShift: String
}

type DataOocList {
  items: [DataOoc!]!
  total: Int!
}

input DataOocPatch {
  correctiveAction: String
  id: ID
  state: DataOocStatus
}

"""Out of control data corrective action process progress status"""
enum DataOocStatus {
  CORRECTED
  CREATED
  REVIEWED
}

"""Entity for DataSample"""
type DataSample {
  collectedAt: Timestamp
  createdAt: Timestamp
  creator: User
  data: Object
  dataItems: [DataItem!]
  dataSet: DataSet!
  dataSetVersion: Float
  description: String
  domain: Domain
  id: ID!
  judgment: Object
  key01: String
  key02: String
  key03: String
  key04: String
  key05: String
  name: String!
  ooc: Boolean
  oos: Boolean
  partitionKeys: Object
  rawData: String
  source: String
  type: String
  updatedAt: Timestamp
  updater: User
  useCase: String
  workDate: String
  workShift: String
}

type DataSampleList {
  items: [DataSample!]!
  total: Int!
}

"""Entity for DataSensor"""
type DataSensor {
  active: Boolean
  appliance: Appliance
  brand: String
  createdAt: Timestamp
  creator: User
  dataSet: DataSet
  description: String
  deviceId: String
  domain: Domain
  id: ID!
  model: String
  name: String!
  netmask: String
  refBy: String
  serialNo: String
  tag: String
  updatedAt: Timestamp
  updater: User
}

type DataSensorList {
  items: [DataSensor!]!
  total: Int!
}

input DataSensorPatch {
  active: Boolean
  appliance: ObjectRef
  brand: String
  cuFlag: String!
  dataSet: ObjectRef
  description: String
  deviceId: String
  id: ID
  model: String
  name: String
  netmask: String
  refBy: String
  serialNo: String
  tag: String
}

"""Entity for DataSet"""
type DataSet {
  active: Boolean

  """Approval line for handling OOC issues for that dataset"""
  approvalLine: [ApprovalLineItem!]

  """Who to contact for OOC issues"""
  assignees: [AssigneeItem!]
  createdAt: Timestamp
  creator: User
  dataItems: [DataItem!]
  dataKeySet: DataKeySet
  description: String
  domain: Domain
  entryBoard: Board

  """The person responsible for manually entering the data for that dataset"""
  entryRole: Role
  entryType: String
  entryView: String
  id: ID!
  latestCollectedAt: Timestamp
  monitorBoard: Board
  monitorType: String
  monitorView: String
  name: String!
  nextSchedule: Timestamp
  partitionKeys: Object
  prevSchedule: Timestamp
  reportTemplate: String
  reportType: String
  reportView: String
  schedule: String
  scheduleId: String
  status: DataSetState!

  """The final authority on issues related to that dataset."""
  supervisoryRole: Role
  timezone: String
  type: String
  updatedAt: Timestamp
  updater: User
  useCase: String
  version: Float
}

"""Entity for DataSetHistory"""
type DataSetHistory {
  active: Boolean
  createdAt: Timestamp
  creator: User
  dataItems: [DataItem!]
  dataKeySet: DataKeySet
  description: String
  domain: Domain
  entryBoard: Board
  entryRole: Role
  entryType: String
  entryView: String
  id: ID!
  monitorBoard: Board
  monitorType: String
  monitorView: String
  name: String!
  partitionKeys: Object
  reportTemplate: String
  reportType: String
  reportView: String
  schedule: String
  supervisoryRole: Role
  timestamp: User!
  timezone: String
  type: String
  updatedAt: Timestamp
  updater: User
  useCase: String
  version: Float
}

type DataSetHistoryList {
  items: [DataSetHistory!]!
  total: Int!
}

type DataSetList {
  items: [DataSet!]!
  total: Int!
}

input DataSetPatch {
  active: Boolean
  approvalLine: Object
  assignees: Object
  cuFlag: String!
  dataItems: [DataItemPatch!]
  dataKeySet: ObjectRef
  description: String
  entryRole: ObjectRef
  entryType: String
  entryView: String
  id: ID
  monitorType: String
  monitorView: String
  name: String
  partitionKeys: Object
  reportTemplate: Upload
  reportType: String
  reportView: String
  schedule: String
  supervisoryRole: ObjectRef
  timezone: String
  type: String
  useCase: String
}

type DataSetState {
  id: String!
  nextSchedule: Timestamp!
  scheduleId: String!
  startedAt: Timestamp!
  state: String!
}

type DataSpec {
  description: String
  help: String
  name: String!
  specItems: [DataSpecItem!]
}

type DataSpecItem {
  label: String!
  name: String!
  placeholder: String
  property: Object
  type: String!
}

type DataSpecList {
  items: [DataSpec!]!
  total: Int!
}

"""Entity for DataSummary"""
type DataSummary {
  count: Float
  countOoc: Float
  countOos: Float
  createdAt: Timestamp
  creator: User
  dataItems: [DataItem!]
  dataSet: DataSet!
  dataSetVersion: Float
  description: String
  domain: Domain
  id: ID!
  key01: String
  key02: String
  key03: String
  key04: String
  key05: String
  name: String
  summary: Object
  type: String
  updatedAt: Timestamp
  updater: User
  workDate: String
  workShift: String
}

type DataSummaryList {
  items: [DataSummary!]!
  total: Int!
}

"""Date custom scalar type"""
scalar Date

"""Entity for Department"""
type Department {
  active: Boolean
  children: [Department!]!
  controlNo: String!
  createdAt: Timestamp
  creator: User
  deletedAt: Timestamp
  description: String
  domain: Domain
  extension: String
  id: ID!
  manager: Employee
  members: [Employee!]!
  name: String
  parent: Department
  picture: String
  state: String
  updatedAt: Timestamp
  updater: User
  version: Float
}

type DepartmentList {
  items: [Department!]!
  total: Int!
}

input DepartmentPatch {
  active: Boolean
  controlNo: String
  cuFlag: String
  description: String
  id: ID
  manager: ObjectRefForEmployee
  name: String
  parent: ObjectRef
  picture: Upload
  state: DepartmentStatus
}

"""state enumeration of a department"""
enum DepartmentStatus {
  STATUS_A
  STATUS_B
}

type Domain {
  brandImage: String
  brandName: String
  contentImage: String
  createdAt: Timestamp
  description: String
  extType: String
  id: ID!
  name: String!
  owner: String
  ownerUser: User!
  subdomain: String
  systemFlag: Boolean
  theme: String
  timezone: String
  updatedAt: Timestamp
  workShifts: [WorkShift!]!
}

input DomainGeneratorInput {
  description: String
  name: String!
}

input DomainInput {
  description: String
  name: String!
}

type DomainList {
  items: [Domain!]
  total: Int
}

input DomainPatch {
  brandImage: String
  brandName: String
  contentImage: String
  description: String
  id: String
  name: String
  subdomain: String
  systemFlag: Boolean
  theme: String
  timezone: String
}

input DomainUserRoleInput {
  domain: DomainInput!
  roles: [NewRole!]!
  users: [NewUserByDomainWizardInput!]!
}

"""Entity for Employee"""
type Employee {
  active: Boolean
  address: String!
  approvalLines: [ApprovalLine!]!
  contact: Contact
  controlNo: String!
  createdAt: Timestamp
  creator: User
  deletedAt: Timestamp
  department: Department
  domain: Domain
  email: String
  extension: String
  hiredOn: String
  id: ID!
  manages: [Department!]!
  name: String
  note: String
  phone: String
  photo: String
  profile: Profile
  supervises: [Employee!]!
  supervisor: Employee
  type: String
  updatedAt: Timestamp
  updater: User
  user: User
  version: Float
}

type EmployeeList {
  items: [Employee!]!
  total: Int!
}

input EmployeePatch {
  active: Boolean
  controlNo: String
  cuFlag: String
  department: ObjectRef
  hiredOn: String
  id: ID
  name: String
  note: String
  photo: Upload
  supervisor: ObjectRefForEmployee
  type: EmployeeType
  user: ObjectRefForUser
}

"""type enumeration of a employee"""
enum EmployeeType {
  FULLTIME
  PARTTIME
  TEMPORARY
}

"""Entity for Entity"""
type Entity {
  active: Boolean
  association: String
  bundle: String!
  children: [Entity!]
  columns: [EntityColumn!]
  createdAt: Timestamp
  creator: User
  dataProp: String
  delStrategy: String
  description: String
  domain: Domain
  extEntity: Boolean
  fixedColumns: Float
  id: ID!
  idField: String
  idType: String
  master: Entity
  multiSaveUrl: String
  name: String!
  refField: String
  searchUrl: String
  tableName: String!
  titleField: String
  updatedAt: Timestamp
  updater: User
}

"""Entity for EntityColumn"""
type EntityColumn {
  colSize: Float
  colType: String!
  createdAt: Timestamp
  creator: User
  defVal: String
  description: String
  domain: Domain
  entity: Entity!
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Float
  gridValidator: String
  gridWidth: Float
  id: ID!
  ignoreOnSav: Boolean
  name: String!
  nullable: Boolean
  rangeVal: String
  rank: Float
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Float
  sortRank: Float
  term: String
  uniqRank: Float
  updatedAt: Timestamp
  updater: User
  virtualField: Boolean
}

type EntityColumnList {
  items: [EntityColumn!]!
  total: Int!
}

"""EntityColumn of Entity"""
type EntityColumnMetadata {
  enum: [Any!]
  generatedType: String
  isArray: Boolean
  isNullable: Boolean!
  isPrimary: Boolean
  isReadonly: Boolean
  isUpdateDate: Boolean
  isVersion: Boolean
  length: Float
  propertyName: String!
  referenceColumn: Any
  relationMetadata: EntityRelationMetadata
  target: Any
  type: Any!
  width: Int
}

input EntityColumnPatch {
  colSize: Int
  colType: String
  cuFlag: String
  defVal: String
  description: String
  entity: ObjectRef
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Int
  gridValidator: String
  gridWidth: Int
  id: ID
  ignoreOnSav: Boolean
  name: String
  nullable: Boolean
  rangeVal: String
  rank: Int
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Int
  sortRank: Float
  term: String
  uniqRank: Int
  virtualField: Boolean
}

type EntityList {
  items: [Entity!]!
  total: Int!
}

"""Entity for EntityMetadata"""
type EntityMetadata {
  columns: [EntityColumnMetadata!]
  name: String!
}

input EntityPatch {
  active: Boolean
  association: String
  bundle: String
  children: [String!]
  columns: [String!]
  cuFlag: String
  dataProp: String
  delStrategy: String
  description: String
  extEntity: Boolean
  fixedColumns: Int
  id: ID
  idField: String
  idType: String
  master: String
  multiSaveUrl: String
  name: String
  refField: String
  searchUrl: String
  tableName: String
  titleField: String
}

"""RelationType of EntityColumn"""
type EntityRelationMetadata {
  isManyToOne: Boolean
  isOneToMany: Boolean
  isOneToOne: Boolean
  joinColumns: [EntityColumnMetadata!]
  joinTableName: String
  relationType: Boolean
}

input Filter {
  name: String!
  operator: String!
  relation: Boolean
  value: Any
}

"""Entity for Font"""
type Font {
  active: Boolean!
  createdAt: Timestamp
  creator: User
  domain: Domain
  files: [Attachment!]
  id: ID!
  name: String!
  path: String
  provider: String!
  updatedAt: Timestamp
  updater: User
  uri: String
}

type FontList {
  items: [Font!]!
  total: Int!
}

input FontPatch {
  active: Boolean
  files: [Upload!]
  name: String
  path: String
  provider: String
  uri: String
}

type GrantedRole {
  domain: Domain!
  id: ID!
  role: Role!
}

"""Entity for Board Management Group"""
type Group {
  boards: [Board!]
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  name: String!
  updatedAt: Timestamp
  updater: User
}

type GroupList {
  items: [Group!]!
  total: Int!
}

input GroupPatch {
  description: String
  name: String
}

"""Entity for InstallableActivity"""
type InstallableActivity {
  activity: Activity
  activityType: String
  category: String
  description: String
  model: [ActivityModelItem!]

  """
  Parallel or sequential are properties as a multi-instance activity, otherwise it means a single instance.
  """
  multiple: String
  name: String
  priority: Float

  """Provider information of the Activity"""
  provider: String

  """Release information of the Activity"""
  release: String
  reportSource: String
  reportType: String
  startingType: String
  thumbnail: String
  uiSource: String
  uiType: String
  viewSource: String
  viewType: String
}

type InstallableActivityList {
  items: [InstallableActivity!]!
  total: Int!
}

"""Entity for InverterStatus"""
type InverterStatus {
  ac: Float
  acc: Float
  collectedAt: Timestamp
  com: String
  createdAt: Timestamp
  creator: User
  dc: Float
  domain: Domain
  ds: Float
  id: ID!
  ivtId: String
  rtuId: String
  run: String
  updatedAt: Timestamp
  updater: User
}

type InverterStatusList {
  items: [InverterStatus!]!
  total: Int!
}

input InverterStatusPatch {
  ac: Float
  acc: Float
  collectedAt: Timestamp
  com: String
  cuFlag: String
  dc: Float
  ds: Float
  id: ID
  ivtId: String
  rtuId: String
  run: String
}

type InverterStatusSummary {
  currentOutput: Float
  generationTime: Float
  inverterCommunicationStatus: Boolean
  inverterOperationStatus: Boolean
  inverters: [InverterStatus!]
  todaySmpIncome: Float
}

type Invitation {
  createdAt: Timestamp
  creator: User
  email: String!
  id: ID!
  reference: String!
  token: String!
  type: String!
  updatedAt: Timestamp
  updater: User
}

type InvitationList {
  items: [Invitation!]
  total: Int
}

"""Entity for LiteMenu"""
type LiteMenu {
  active: Boolean
  appName: String
  board: Board
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  icon: String
  id: ID!
  name: String!
  parent: String
  rank: Int
  type: String
  updatedAt: Timestamp
  updater: User
  value: String
}

type LiteMenuList {
  items: [LiteMenu!]!
  total: Int!
}

input LiteMenuPatch {
  active: Boolean
  appName: String
  description: String
  icon: String
  name: String
  parent: String
  rank: Int
  type: String
  value: String
}

type Log {
  """log level (error, warning, info, ..)"""
  level: String!

  """log body message"""
  message: String!

  """the source of the log"""
  source: Object!

  """timestamp the log occurred"""
  timestamp: String!
}

type LoginHistory {
  accessDomain: Domain!
  accessUser: User!
  accessedAt: Timestamp
  accessorIp: String
  id: ID!
}

"""Entity for Menu"""
type Menu {
  buttons: [MenuButton!]!
  category: String
  children: [Menu!]!
  columns: [MenuColumn!]!
  createdAt: Timestamp
  creator: User
  description: String
  detailFormId: String
  detailLayout: String
  domain: Domain
  fixedColumns: Float
  gridSaveUrl: String
  hiddenFlag: Boolean
  iconPath: String
  id: ID!
  idField: String
  itemsProp: String
  menuType: String
  name: String
  pagination: Boolean
  parent: Menu
  rank: Float
  resourceId: String
  resourceName: String
  resourceType: String
  resourceUrl: String
  role: Role
  roles: [Role!]
  routing: String
  routingType: String
  template: String
  titleField: String
  totalProp: String
  updatedAt: Timestamp
  updater: User
}

"""Entity for MenuButton"""
type MenuButton {
  auth: String
  createdAt: Timestamp
  creator: User
  domain: Domain
  icon: String
  id: ID!
  logic: String
  menu: Menu
  rank: Float
  style: String
  text: String
  updatedAt: Timestamp
  updater: User
}

type MenuButtonList {
  items: [MenuButton!]!
  total: Int!
}

input MenuButtonPatch {
  auth: String
  icon: String
  logic: String
  menu: String
  rank: Int
  style: String
  text: String
}

"""Entity for MenuColumn"""
type MenuColumn {
  colSize: Float
  colType: String
  createdAt: Timestamp
  creator: User
  defVal: String
  description: String
  domain: Domain
  extField: Boolean
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Float
  gridValidator: String
  gridWidth: Float
  id: ID!
  ignoreOnSave: Boolean
  menu: Menu
  name: String!
  nullable: Boolean
  rangeVal: String
  rank: Float
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Float
  sortRank: Float
  term: String
  uniqRank: Float
  updatedAt: Timestamp
  updater: User
  virtualField: Boolean
}

type MenuColumnList {
  items: [MenuColumn!]!
  total: Int!
}

input MenuColumnPatch {
  colSize: Int
  colType: String
  defVal: String
  description: String
  extField: Boolean
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Int
  gridValidator: String
  gridWidth: Int
  ignoreOnSave: Boolean
  menu: String
  name: String
  nullable: Boolean
  rangeVal: String
  rank: Int
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Int
  sortRank: Int
  term: String
  uniqRank: Int
  virtualField: Boolean
}

"""Entity for MenuDetail"""
type MenuDetail {
  association: String
  buttons: [MenuDetailButton!]
  columns: [MenuDetailColumn!]
  createdAt: Timestamp
  creator: User
  customView: String
  dataProp: String
  domain: Domain
  entityId: String
  id: ID!
  masterField: String
  menu: Menu
  name: String!
  saveUrl: String
  searchUrl: String
  updatedAt: Timestamp
  updater: User
  viewSection: String
}

"""Entity for MenuDetailButton"""
type MenuDetailButton {
  createdAt: Timestamp
  creator: User
  domain: Domain
  icon: String
  id: ID!
  logic: String
  menuDetail: MenuDetail
  rank: Float
  style: String
  text: String
  updatedAt: Timestamp
  updater: User
}

type MenuDetailButtonList {
  items: [MenuDetailButton!]!
  total: Int!
}

input MenuDetailButtonPatch {
  icon: String
  logic: String
  menuDetail: String
  rank: Int
  style: String
  text: String
}

"""Entity for MenuDetailColumn"""
type MenuDetailColumn {
  colSize: Float
  colType: String
  createdAt: Timestamp
  creator: User
  defVal: String
  description: String
  domain: Domain
  extField: Boolean
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Float
  gridValidator: String
  gridWidth: Float
  id: ID!
  ignoreOnSave: Boolean
  menuDetail: MenuDetail
  name: String
  nullable: Boolean
  rangeVal: String
  rank: Float
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Float
  sortRank: Float
  term: String
  uniqRank: Float
  updatedAt: Timestamp
  updater: User
  virtualField: Boolean
}

type MenuDetailColumnList {
  items: [MenuDetailColumn!]!
  total: Int!
}

input MenuDetailColumnPatch {
  colSize: Int
  colType: String!
  defVal: String
  description: String
  extField: Boolean
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Int
  gridValidator: String
  gridWidth: Int
  ignoreOnSave: Boolean
  menuDetail: String!
  name: String!
  nullable: Boolean
  rangeVal: String
  rank: Int
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Int
  sortRank: Int
  term: String
  uniqRank: Int
  virtualField: Boolean
}

type MenuDetailList {
  items: [MenuDetail!]!
  total: Int!
}

input MenuDetailPatch {
  association: String
  buttons: [String!]
  columns: [String!]
  customView: String
  dataProp: String
  entityId: String
  masterField: String
  menu: String
  name: String
  saveUrl: String
  searchUrl: String
  viewSection: String
}

type MenuList {
  items: [Menu!]!
  total: Int!
}

input MenuPatch {
  buttons: [ObjectRef!]
  category: String
  children: [ObjectRef!]
  columns: [ObjectRef!]
  cuFlag: String
  description: String
  detailFormId: String
  detailLayout: String
  fixedColumns: Int
  gridSaveUrl: String
  hiddenFlag: Boolean
  iconPath: String
  id: ID
  idField: String
  itemsProp: String
  menuType: String
  name: String
  pagination: Boolean
  parent: ObjectRef
  rank: Int
  resourceId: String
  resourceName: String
  resourceType: String
  resourceUrl: String
  role: ObjectRef
  routing: String
  routingType: String
  template: String
  titleField: String
  totalProp: String
}

type Mutation {
  """To abort a ActivityInstance"""
  abortActivityInstance(id: String!, reason: String): ActivityInstance!

  """To abort a ActivityThread"""
  abortActivityThread(id: String!, reason: String): ActivityThread!

  """To activate installable activity to Activity on given domain"""
  activateInstallableActivity(name: String!): Activity!

  """To activate user"""
  activateUser(userId: String!): Boolean!

  """To approve ActivityApproval"""
  approveActivityApproval(comment: String, id: String!): ActivityApproval

  """To assign a ActivityInstance"""
  assignActivityInstance(
    """Email of assignee users"""
    assignees: [String!]
    dueAt: Timestamp
    id: String!
    reason: String
  ): ActivityInstance!

  """To attach a contact on Employee"""
  attachContact(contactId: String!, id: String!): Employee!
  cancelInvitation(email: String!, reference: String!, type: String!): Boolean!

  """To connect a connection"""
  connectConnection(name: String!): Connection!

  """To copy multiple data-archives"""
  copyDataArchives(ids: [String!]!): [DataArchive!]!

  """To copy multiple data-sets"""
  copyDataSets(ids: [String!]!): [DataSet!]!

  """To import multiple scenarios"""
  copyScenarios(ids: [String!]!): [Scenario!]!

  """To create new Activity"""
  createActivity(activity: NewActivity!): Activity!

  """To create new ActivityTemplate"""
  createActivityTemplate(activityTemplate: NewActivityTemplate!): ActivityTemplate!

  """To create new appliance"""
  createAppliance(appliance: NewAppliance!): Appliance!

  """To create new application"""
  createApplication(application: NewApplication!): Application!

  """To create new ApprovalLine"""
  createApprovalLine(approvalLine: NewApprovalLine!): ApprovalLine!
  createAttachment(attachment: NewAttachment!): Attachment!
  createAttachments(attachments: [NewAttachment!]!): [Attachment!]!

  """To create new Board"""
  createBoard(board: NewBoard!): Board!

  """To create new CommonCode"""
  createCommonCode(commonCode: NewCommonCode!): CommonCode!

  """To create new CommonCodeDetail"""
  createCommonCodeDetail(commonCodeDetail: NewCommonCodeDetail!): CommonCodeDetail!

  """To create new connection"""
  createConnection(connection: NewConnection!): Connection!

  """To create new Contact"""
  createContact(contact: NewContact!): Contact!

  """To create new DataArchive"""
  createDataArchive(dataArchive: NewDataArchive!): DataArchive!

  """To create new DataKeySet"""
  createDataKeySet(dataKeySet: NewDataKeySet!): DataKeySet!

  """To create new DataOoc"""
  createDataOoc(dataOoc: NewDataOoc!): DataOoc!

  """To create new data sample"""
  createDataSample(dataSample: NewDataSample!): DataSample!

  """To create new DataSensor"""
  createDataSensor(dataSensor: NewDataSensor!): DataSensor!

  """To create new DataSet"""
  createDataSet(dataSet: NewDataSet!): DataSet!

  """To create new Department"""
  createDepartment(department: NewDepartment!): Department!

  """To create domain (Only superuser is granted this privilege.)"""
  createDomain(domainInput: DomainPatch!): Domain!

  """To create new Employee"""
  createEmployee(employee: NewEmployee!): Employee!

  """To create new Entity"""
  createEntity(entity: NewEntity!): Entity!

  """To create new EntityColumn"""
  createEntityColumn(entityColumn: NewEntityColumn!): EntityColumn!

  """To create new Font"""
  createFont(font: NewFont!): Font!

  """To create new Group"""
  createGroup(group: NewGroup!): Group

  """To create new InverterStatus"""
  createInverterStatus(inverter: NewInverterStatus!): InverterStatus!

  """To create new LiteMenu"""
  createLiteMenu(liteMenu: NewLiteMenu!): LiteMenu!

  """To create new Menu"""
  createMenu(menu: NewMenu!): Menu!

  """To create new MenuButton"""
  createMenuButton(menuButton: NewMenuButton!): MenuButton!

  """To create new MenuColumn"""
  createMenuColumn(menuColumn: NewMenuColumn!): MenuColumn!

  """To create new MenuDetail"""
  createMenuDetail(menuDetail: NewMenuDetail!): MenuDetail!

  """To create new MenuDetailButton"""
  createMenuDetailButton(menuDetailButton: NewMenuDetailButton!): MenuDetailButton!

  """To create new MenuDetailColumn"""
  createMenuDetailColumn(menuDetailColumn: NewMenuDetailColumn!): MenuDetailColumn!

  """To create new ApprovalLine for current user"""
  createMyApprovalLine(approvalLine: NewApprovalLine!): ApprovalLine!

  """To create new Oauth2Client"""
  createOauth2Client(oauth2Client: NewOauth2Client!): Oauth2Client!

  """To create new PayloadLog"""
  createPayloadLog(payloadLog: NewPayloadLog!): PayloadLog!

  """To create new PlayGroup"""
  createPlayGroup(playGroup: NewPlayGroup!): PlayGroup!

  """To create new privilege"""
  createPrivilege(privilege: NewPrivilege!): Privilege!

  """To create new user"""
  createRole(role: NewRole!): User!

  """To create new scenario"""
  createScenario(scenario: NewScenario!): Scenario!

  """To create new Setting"""
  createSetting(setting: NewSetting!): Setting!

  """To create new Terminology"""
  createTerminology(terminology: NewTerminology!): Terminology!

  """To create new user"""
  createUser(user: NewUser!): User!

  """To deactivate installable activity to Activity on given domain"""
  deactivateInstallableActivity(name: String!): Activity!

  """To delegate ActivityApproval"""
  delegateActivityApproval(comment: String, id: String!, to: ObjectRef!): ActivityApproval

  """To delegate a ActivityThread"""
  delegateActivityThread(assigneeRole: ObjectRef, dueAt: Timestamp, id: String!, reason: String): ActivityThread!

  """To delete multiple Activities"""
  deleteActivities(ids: [String!]!): Boolean!

  """To delete Activity"""
  deleteActivity(id: String!): Boolean!

  """To delete ActivityTemplate"""
  deleteActivityTemplate(id: String!): Boolean!

  """To delete multiple ActivityTemplates"""
  deleteActivityTemplates(ids: [String!]!): Boolean!
  deleteAppBinding(id: String!): Boolean!

  """To delete appliance"""
  deleteAppliance(id: String!): Boolean!

  """To delete application"""
  deleteApplication(id: String!): Boolean!

  """To delete ApprovalLine"""
  deleteApprovalLine(id: String!): Boolean!

  """To delete multiple ApprovalLines"""
  deleteApprovalLines(ids: [String!]!): Boolean!
  deleteAttachment(id: String!): Boolean!
  deleteAttachmentsByRef(refBys: [String!]!): Boolean!

  """To delete Board"""
  deleteBoard(id: String!): Boolean!

  """To delete CommonCode"""
  deleteCommonCode(id: String!): Boolean!

  """To delete CommonCodeDetail"""
  deleteCommonCodeDetail(id: String!): Boolean!

  """To delete multiple CommonCodeDetails"""
  deleteCommonCodeDetails(ids: [String!]!): Boolean!

  """To delete multiple CommonCodes"""
  deleteCommonCodes(ids: [String!]!): Boolean!

  """To delete connection"""
  deleteConnection(name: String!): Boolean!

  """To delete multiple connections"""
  deleteConnections(names: [String!]!): Boolean!

  """To delete Contact"""
  deleteContact(id: String!): Boolean!

  """To delete multiple Contacts"""
  deleteContacts(ids: [String!]!): Boolean!

  """To delete DataArchive"""
  deleteDataArchive(id: String!): Boolean!

  """To delete multiple dataArchives"""
  deleteDataArchives(ids: [String!]!): Boolean!

  """To delete DataKeySet"""
  deleteDataKeySet(id: String!): Boolean!

  """To delete multiple DataKeySets"""
  deleteDataKeySets(ids: [String!]!): Boolean!

  """To delete DataSensor"""
  deleteDataSensor(id: String!): Boolean!

  """To delete multiple dataSensors"""
  deleteDataSensors(ids: [String!]!): Boolean!

  """To delete DataSet"""
  deleteDataSet(id: String!): Boolean!

  """To delete multiple dataSets"""
  deleteDataSets(ids: [String!]!): Boolean!

  """To delete Department"""
  deleteDepartment(id: String!): Boolean!

  """To delete multiple Departments"""
  deleteDepartments(ids: [String!]!): Boolean!

  """To delete domain (Only superuser is granted this privilege.)"""
  deleteDomain(name: String!): Domain!

  """To delete domain user"""
  deleteDomainUser(email: String!): Boolean!

  """To delete multiple domains (Only superuser is granted this privilege.)"""
  deleteDomains(names: [String!]!): Boolean!

  """To delete Employee"""
  deleteEmployee(id: String!): Boolean!

  """To delete multiple Employees"""
  deleteEmployees(ids: [String!]!): Boolean!

  """To delete multiple Entities"""
  deleteEntities(ids: [String!]!): Boolean!

  """To delete Entity"""
  deleteEntity(id: String!): Boolean!

  """To delete EntityColumn"""
  deleteEntityColumn(id: String!): Boolean!

  """To delete multiple EntityColumns"""
  deleteEntityColumns(ids: [String!]!): Boolean!

  """To delete Font"""
  deleteFont(id: String!): Boolean!

  """To delete Group"""
  deleteGroup(id: String!): Boolean!

  """To delete LiteMenu"""
  deleteLiteMenu(id: String!): Boolean!

  """To delete Menu"""
  deleteMenu(id: String!): Boolean!

  """To delete MenuButton"""
  deleteMenuButton(id: String!): Boolean!

  """To delete multiple MenuButtons"""
  deleteMenuButtons(ids: [String!]!): Boolean!

  """To delete MenuColumn"""
  deleteMenuColumn(id: String!): Boolean!

  """To delete multiple MenuColumns"""
  deleteMenuColumns(ids: [String!]!): Boolean!

  """To delete MenuDetail"""
  deleteMenuDetail(id: String!): Boolean!

  """To delete MenuDetailButton"""
  deleteMenuDetailButton(id: String!): Boolean!

  """To delete multiple MenuDetailButtons"""
  deleteMenuDetailButtons(ids: [String!]!): Boolean!

  """To delete MenuDetailColumn"""
  deleteMenuDetailColumn(id: String!): Boolean!

  """To delete multiple MenuDetailColumns"""
  deleteMenuDetailColumns(ids: [String!]!): Boolean!

  """To delete multiple MenuDetails"""
  deleteMenuDetails(ids: [String!]!): Boolean!

  """To delete multiple Menus"""
  deleteMenus(ids: [String!]!): Boolean!

  """To delete ApprovalLine for current user"""
  deleteMyApprovalLine(id: String!): Boolean!

  """To delete multiple ApprovalLines for current user"""
  deleteMyApprovalLines(ids: [String!]!): Boolean!

  """To delete Oauth2Client"""
  deleteOauth2Client(id: String!): Boolean!

  """To delete multiple Oauth2Clients"""
  deleteOauth2Clients(ids: [String!]!): Boolean!

  """To delete multiple partnerSettings"""
  deletePartnerSettings(ids: [String!]!): Boolean!

  """To delete PayloadLog"""
  deletePayloadLog(id: String!): Boolean!

  """To delete multiple payloadLogs"""
  deletePayloadLogs(ids: [String!]!): Boolean!

  """To delete PlayGroup"""
  deletePlayGroup(id: String!): Boolean!

  """To delete privilege"""
  deletePrivilege(category: String!, name: String!): Boolean!

  """To delete role"""
  deleteRole(id: String!): Boolean!

  """To delete multiple roles"""
  deleteRoles(ids: [String!]!): Boolean!

  """To delete scenario"""
  deleteScenario(name: String!): Boolean!

  """To delete multiple scenarios"""
  deleteScenarios(ids: [String!]!): Boolean!

  """To delete Setting"""
  deleteSetting(name: String!): Boolean!

  """To delete multiple settings"""
  deleteSettings(names: [String!]!): Boolean!

  """To delete multiple steps"""
  deleteSteps(ids: [String!]!): Boolean!

  """To delete multiple Terminologies"""
  deleteTerminologies(ids: [String!]!): Boolean!

  """To delete Terminology"""
  deleteTerminology(id: String!): Boolean!

  """To delete a user"""
  deleteUser(email: String!): Boolean!

  """To delete some users"""
  deleteUsers(emails: [String!]!): Boolean!

  """To delete multiple workShifts"""
  deleteWorkShifts(ids: [String!]!): Boolean!

  """To detach a contact from Employee"""
  detachContact(id: String!): Employee!

  """To disconnect a connection"""
  disconnectConnection(name: String!): Connection!
  domainRegister(domainInput: DomainGeneratorInput!): Domain!
  domainUserRoleRegister(newDomainInfo: DomainUserRoleInput!): Domain!

  """To draft standard ActivityInstance"""
  draftActivityInstance(activityInstance: ActivityInstanceDraft!): ActivityInstance!

  """To end a ActivityInstance"""
  endActivityInstance(id: String!, output: Object, reason: String): ActivityInstance!

  """To end a ActivityThread"""
  endActivityThread(id: String!, output: Object, reason: String): ActivityThread!
  generateApplianceSecret(id: String!): Appliance!
  generateApplicationSecret(id: String!): Application!

  """To generate new Data Summaries"""
  generateDataSummaries(dataSetId: String!, workDate: String!, workShift: String!): Boolean!

  """To create new DataArchive"""
  generatePresignedUrl(patch: DataArchivePatch!): DataArchive!
  generateUploadURL(type: String!): UploadURL!

  """To get oauth2 auth URL"""
  getOauth2AuthUrl(id: String!): String!
  grantRoles(customerId: String!, roles: [RolePatch!]!): Boolean!

  """To import multiple Activities"""
  importActivities(activities: [ActivityPatch!]!): Boolean!

  """To import multiple ActivityTemplates"""
  importActivityTemplates(activityTemplates: [ActivityTemplatePatch!]!): Boolean!

  """To import multiple ApprovalLines"""
  importApprovalLines(approvalLines: [ApprovalLinePatch!]!): Boolean!

  """To import multiple CommonCodeDetails"""
  importCommonCodeDetails(commonCodeDetails: [CommonCodeDetailPatch!]!): Boolean!

  """To import multiple CommonCodes"""
  importCommonCodes(commonCodes: [CommonCodePatch!]!): Boolean!

  """To import multiple Contacts"""
  importContacts(contacts: [ContactPatch!]!): Boolean!

  """To import multiple data-archives"""
  importDataArchives(dataArchives: [DataArchivePatch!]!): Boolean!

  """To import multiple DataKeySets"""
  importDataKeySets(dataKeySets: [DataKeySetPatch!]!): Boolean!

  """To import multiple data-sets"""
  importDataSets(dataSets: [DataSetPatch!]!): Boolean!

  """To import multiple Departments"""
  importDepartments(departments: [DepartmentPatch!]!): Boolean!

  """To import multiple Employees"""
  importEmployees(employees: [EmployeePatch!]!): Boolean!

  """To import multiple MenuButtons"""
  importMenuButtons(menuButtons: [MenuButtonPatch!]!): Boolean!

  """To import multiple MenuColumns"""
  importMenuColumns(menuColumns: [MenuColumnPatch!]!): Boolean!

  """To import multiple MenuDetailButtons"""
  importMenuDetailButtons(menuDetailButtons: [MenuDetailButtonPatch!]!): Boolean!

  """To import multiple MenuDetailColumns"""
  importMenuDetailColumns(menuDetailColumns: [MenuDetailColumnPatch!]!): Boolean!

  """To import multiple MenuDetails"""
  importMenuDetails(menuDetails: [MenuDetailPatch!]!): Boolean!

  """To import multiple Menus"""
  importMenus(menus: [MenuPatch!]!): Boolean!

  """To import multiple Oauth2Clients"""
  importOauth2Clients(oauth2Clients: [Oauth2ClientPatch!]!): Boolean!

  """To import multiple scenarios"""
  importScenarios(scenarios: [ScenarioPatch!]!): Boolean!

  """To import multiple Terminologies"""
  importTerminologies(terminologies: [TerminologyPatch!]!): Boolean!

  """To inactivate user"""
  inactivateUser(userId: String!): Boolean!
  inviteCustomer(customerDomainName: String!): Boolean!

  """To invite new user"""
  inviteUser(email: String!): Boolean!

  """To issue standard ActivityInstance"""
  issueActivityInstance(activityInstance: ActivityInstanceIssue!): ActivityInstance!

  """To make the board to join the group"""
  joinGroup(boardIds: [String!]!, id: String!): Group!

  """To make the board to join the play group"""
  joinPlayGroup(boardIds: [String!]!, id: String!): PlayGroup!

  """To make the board to leave from the play group"""
  leavePlayGroup(boardIds: [String!]!, id: String!): PlayGroup!
  multipleUpload(files: [Upload!]!): [Attachment!]!

  """
  To pick an activity ActivityInstance voluntarily. [cautions] This resolver will return a assigned ActivityThread.
  """
  pickActivityInstance(id: String!): ActivityThread

  """To refresh oauth2 access token"""
  refreshOauth2AccessToken(id: String!): Oauth2Client!

  """To reject ActivityApproval"""
  rejectActivityApproval(comment: String, id: String!): ActivityApproval
  renewApplicationAccessToken(id: String!, scope: String!): AccessToken!

  """To reset password to default"""
  resetPasswordToDefault(userId: String!): Boolean!

  """To restart ActivityThread"""
  restartActivityThread(id: String!, output: Object, reason: String): ActivityThread

  """
  To run new scenario instance and will return the result after the scenario stop.
  """
  runScenario(instanceName: String, scenarioName: String!, variables: Object): ScenarioInstance!

  """To approve ActivityApproval"""
  saveActivityApproval(comment: String, id: String!): ActivityApproval

  """To save ActivityThread information"""
  saveActivityThread(id: String!, save: ActivityThreadSave!): ActivityThread!
  sendInvitation(email: String!, reference: String!, type: String!): Invitation!
  singleUpload(file: Upload!): Attachment!

  """To start posting activity based on the schedule of the given activity"""
  startActivitySchedule(activityId: String!): Activity!

  """To start ActivityThread"""
  startActivityThread(id: String!, output: Object, reason: String): ActivityThread

  """To start data collection schedule for the given dataset"""
  startDataCollectionSchedule(dataSetId: String!): DataSet!

  """To start new scenario instance"""
  startScenario(instanceName: String, scenarioName: String!, variables: Object): ScenarioInstance!

  """To start posting scenario based on the schedule of the given scenario"""
  startScenarioSchedule(scenarioId: String!): Scenario!

  """To stop posting activity based on the schedule of the given activity"""
  stopActivitySchedule(activityId: String!): Activity

  """To stop data collection schedule for the given dataset"""
  stopDataCollectionSchedule(dataSetId: String!): DataSet

  """To start new scenario instance"""
  stopScenario(instanceName: String): ScenarioInstance

  """To stop posting scenario based on the schedule of the given scenario"""
  stopScenarioSchedule(scenarioId: String!): Scenario

  """To submit a ActivityThread"""
  submitActivityThread(id: String!, output: Object, reason: String): ActivityThread!

  """
  To synchronize privilege master from graphql directives. Only superuser is permitted.
  """
  synchronizePrivilegeMaster(privilege: NewPrivilege!): Boolean!
  terminateContract(partnerName: String!): Boolean!

  """To transfer owner of domain"""
  transferOwner(email: String!): Boolean!

  """To modify Activity information"""
  updateActivity(id: String!, patch: ActivityPatch!): Activity!

  """To modify ActivityTemplate information"""
  updateActivityTemplate(id: String!, patch: ActivityTemplatePatch!): ActivityTemplate!
  updateAppliance(id: String!, patch: AppliancePatch!): Appliance!
  updateApplication(id: String!, patch: ApplicationPatch!): Application!

  """To modify ApprovalLine information"""
  updateApprovalLine(id: String!, patch: ApprovalLinePatch!): ApprovalLine!
  updateAttachment(id: String!, patch: AttachmentPatch!): Attachment!

  """To modify Board information"""
  updateBoard(id: String!, patch: BoardPatch!): Board!

  """To modify CommonCode information"""
  updateCommonCode(name: String!, patch: CommonCodePatch!): CommonCode!

  """To modify CommonCodeDetail information"""
  updateCommonCodeDetail(id: String!, patch: CommonCodeDetailPatch!): CommonCodeDetail!

  """To modify connection information"""
  updateConnection(name: String!, patch: ConnectionPatch!): Connection!

  """To modify Contact information"""
  updateContact(id: String!, patch: ContactPatch!): Contact!

  """To modify DataArchive information"""
  updateDataArchive(id: String!, patch: DataArchivePatch!): DataArchive!

  """To modify DataKeySet information"""
  updateDataKeySet(id: String!, patch: DataKeySetPatch!): DataKeySet!

  """To modify DataOoc information"""
  updateDataOoc(id: String!, patch: DataOocPatch!): DataOoc!

  """To modify DataSensor information"""
  updateDataSensor(id: String!, patch: DataSensorPatch!): DataSensor!

  """To modify DataSet information"""
  updateDataSet(id: String!, patch: DataSetPatch!): DataSet!

  """To modify Department information"""
  updateDepartment(id: String!, patch: DepartmentPatch!): Department!

  """To update domain (Only superuser is granted this privilege.)"""
  updateDomain(name: String!, patch: DomainPatch!): Domain!

  """To update multiple domains (Only superuser is granted this privilege.)"""
  updateDomains(patches: [DomainPatch!]!): Boolean!

  """To modify Employee information"""
  updateEmployee(id: String!, patch: EmployeePatch!): Employee!

  """To modify Entity' information"""
  updateEntity(id: String!, patch: EntityPatch!): Entity!

  """To modify EntityColumn information"""
  updateEntityColumn(id: String!, patch: EntityColumnPatch!): EntityColumn!

  """To modify Font information"""
  updateFont(id: String!, patch: FontPatch!): Font!

  """To modify Group information"""
  updateGroup(id: String!, patch: GroupPatch!): Group!

  """To modify InverterStatus information"""
  updateInverterStatus(id: String!, patch: InverterStatusPatch!): InverterStatus!

  """To modify LiteMenu information"""
  updateLiteMenu(id: String!, patch: LiteMenuPatch!): LiteMenu!

  """To modify Menu information"""
  updateMenu(id: String!, patch: MenuPatch!): Menu!

  """To modify MenuButton information"""
  updateMenuButton(id: String!, patch: MenuButtonPatch!): MenuButton!

  """To modify MenuColumn information"""
  updateMenuColumn(id: String!, patch: MenuColumnPatch!): MenuColumn!

  """To modify MenuDetail information"""
  updateMenuDetail(id: String!, patch: MenuDetailPatch!): MenuDetail!

  """To modify MenuDetailButton information"""
  updateMenuDetailButton(id: String!, patch: MenuDetailButtonPatch!): MenuDetailButton!

  """To modify MenuDetailColumn information"""
  updateMenuDetailColumn(id: String!, patch: MenuDetailColumnPatch!): MenuDetailColumn!

  """To modify multiple Activities' information"""
  updateMultipleActivity(patches: [ActivityPatch!]!): [Activity!]!

  """To modify multiple ActivityTemplates' information"""
  updateMultipleActivityTemplate(patches: [ActivityTemplatePatch!]!): [ActivityTemplate!]!

  """To modify multiple ApprovalLines' information"""
  updateMultipleApprovalLine(patches: [ApprovalLinePatch!]!): [ApprovalLine!]!

  """To modify multiple CommonCodes' information"""
  updateMultipleCommonCode(patches: [CommonCodePatch!]!): [CommonCode!]!

  """To modify multiple CommonCodeDetails' information"""
  updateMultipleCommonCodeDetail(patches: [CommonCodeDetailPatch!]!): [CommonCodeDetail!]!

  """To modify multiple connections' information"""
  updateMultipleConnection(patches: [ConnectionPatch!]!): [Connection!]!

  """To modify multiple Contacts' information"""
  updateMultipleContact(patches: [ContactPatch!]!): [Contact!]!

  """To modify multiple DataArchives' information"""
  updateMultipleDataArchive(patches: [DataArchivePatch!]!): [DataArchive!]!

  """To modify multiple DataKeySets' information"""
  updateMultipleDataKeySet(patches: [DataKeySetPatch!]!): [DataKeySet!]!

  """To modify multiple DataSensors' information"""
  updateMultipleDataSensor(patches: [DataSensorPatch!]!): [DataSensor!]!

  """To modify multiple DataSets' information"""
  updateMultipleDataSet(patches: [DataSetPatch!]!): [DataSet!]!

  """To modify multiple Departments' information"""
  updateMultipleDepartment(patches: [DepartmentPatch!]!): [Department!]!

  """To modify multiple Employees' information"""
  updateMultipleEmployee(patches: [EmployeePatch!]!): [Employee!]!

  """To modify multiple Entitys' information"""
  updateMultipleEntity(patches: [EntityPatch!]!): [Entity!]!

  """To modify multiple Entitys' information"""
  updateMultipleEntityColumn(patches: [EntityColumnPatch!]!): [EntityColumn!]!

  """To modify multiple Menus' information"""
  updateMultipleMenu(patches: [MenuPatch!]!): [Menu!]!

  """To modify multiple ApprovalLines' information for current user"""
  updateMultipleMyApprovalLine(patches: [ApprovalLinePatch!]!): [ApprovalLine!]!

  """To modify multiple PartnerSettings' information"""
  updateMultiplePartnerSetting(patches: [PartnerSettingPatch!]!): [PartnerSetting!]!

  """To modify multiple PayloadLogs' information"""
  updateMultiplePayloadLog(patches: [PayloadLogPatch!]!): [PayloadLog!]!

  """To modify multiple scenarios' information"""
  updateMultipleScenario(patches: [ScenarioPatch!]!): [Scenario!]!

  """To modify multiple Settings' information"""
  updateMultipleSetting(patches: [SettingPatch!]!): [Setting!]!

  """To modify multiple steps' in a scenario"""
  updateMultipleStep(patches: [StepPatch!]!, scenarioId: String!): [Step!]!

  """To modify multiple Terminologies' information"""
  updateMultipleTerminologies(patches: [TerminologyPatch!]!): [Terminology!]!

  """To modify multiple users information"""
  updateMultipleUser(patches: [UserPatch!]!): [User!]!

  """To modify multiple WorkShifts' information"""
  updateMultipleWorkShift(patches: [WorkShiftPatch!]!): [WorkShift!]!

  """To modify ApprovalLine information for current user"""
  updateMyApprovalLine(id: String!, patch: ApprovalLinePatch!): ApprovalLine!

  """To modify Oauth2Client information"""
  updateOauth2Client(id: String!, patch: Oauth2ClientPatch!): Oauth2Client!

  """To modify PayloadLog information"""
  updatePayloadLog(id: String!, patch: PayloadLogPatch!): PayloadLog!

  """To modify PlayGroup information"""
  updatePlayGroup(id: String!, patch: PlayGroupPatch!): PlayGroup!

  """To modify privilege information"""
  updatePrivilege(category: String!, name: String!, patch: PrivilegePatch!): Privilege!

  """To modify role information"""
  updateRole(id: String!, patch: RolePatch!): Role!

  """To update role Menu"""
  updateRoleMenu(isCheckedMenu: Boolean!, roleId: String!, targetMenuId: String!): Menu!

  """To update role Menu"""
  updateRoleMenus(isCheckedAll: Boolean!, parentMenuId: String!, roleId: String!): [Menu!]!

  """To modify scenario information"""
  updateScenario(name: String!, patch: ScenarioPatch!): Scenario!

  """To modify Setting information"""
  updateSetting(name: String!, patch: SettingPatch!): Setting!

  """To modify Terminology information"""
  updateTerminology(id: String!, patch: TerminologyPatch!): Terminology!

  """To modify user information"""
  updateUser(email: String!, patch: UserPatch!): User!

  """To update roles for a user"""
  updateUserRoles(availableRoles: [ObjectRef!]!, selectedRoles: [ObjectRef!]!, userId: String!): User!
}

input NewActivity {
  active: Boolean
  activityType: String
  approvalLine: Object
  assigneeRole: ObjectRef
  assignees: Object
  description: String
  issuerRole: ObjectRef
  model: Object
  multiple: String
  name: String!
  priority: Float
  reportSource: String
  reportType: String
  schedule: String
  scheduleId: String
  searchKeys: Object
  standardTime: Float
  startingType: String
  state: String
  supervisoryRole: ObjectRef
  thumbnail: Upload
  timezone: String
  uiSource: String
  uiType: String
  viewSource: String
  viewType: String
}

input NewActivityTemplate {
  active: Boolean
  activityType: String
  category: String
  description: String
  model: Object
  name: String!
  reportSource: String
  reportType: String
  state: String
  thumbnail: Upload
  uiSource: String
  uiType: String
  viewSource: String
  viewType: String
  visibility: String
}

input NewAppliance {
  brand: String!
  description: String
  model: String!
  name: String!
  netmask: String
  serialNo: String!
}

input NewApplication {
  description: String
  email: String
  icon: String
  name: String!
  redirectUrl: String
  type: ApplicationType
  url: String
  webhook: String
}

input NewApprovalLine {
  description: String
  model: Object
  name: String!
  owner: ObjectRefApprovalLineOwnerType!
  ownerType: ApprovalLineOwnerType!
}

input NewAttachment {
  category: String
  description: String
  file: Upload!
  refBy: String
  refType: String
}

input NewBoard {
  description: String
  groupId: String
  model: String!
  name: String!
  thumbnail: String
}

input NewCommonCode {
  description: String
  details: [String!]
  name: String!
}

input NewCommonCodeDetail {
  commonCode: ObjectRef!
  description: String
  name: String!
  rank: Float!
}

input NewConnection {
  description: String
  endpoint: String
  name: String!
  params: String
  type: String
}

input NewContact {
  address: String
  company: String
  department: String
  email: String
  items: [ContactItemPatch!]
  name: String!
  note: String
  phone: String
  profile: ProfileInput
}

input NewDataArchive {
  downloadUrl: String
  requestParams: Object
  status: String
  type: String
}

input NewDataKeySet {
  active: Boolean
  dataKeyItems: [DataKeyItemPatch!]
  description: String
  name: String!
  reportType: String
  reportView: String
  thumbnail: Upload
}

input NewDataOoc {
  collectedAt: Timestamp
  data: Object
  dataSample: ObjectRef
  dataSet: ObjectRef
  dataSetVersion: Float
  description: String
  name: String!
  ooc: Boolean
  oos: Boolean
  rawData: String
  source: String
  state: DataOocStatus
  workDate: String
  workShift: String
}

input NewDataSample {
  collectedAt: Timestamp
  data: Object
  dataSet: ObjectRef
  dataSetVersion: Float
  description: String
  name: String
  rawData: String
  source: String
  workDate: String
  workShift: String
}

input NewDataSensor {
  active: Boolean
  appliance: ObjectRef
  brand: String
  dataSet: ObjectRef
  description: String
  deviceId: String
  model: String
  name: String!
  netmask: String
  refBy: String
  serialNo: String
  tag: String
}

input NewDataSet {
  active: Boolean
  approvalLine: Object
  assignees: Object
  dataItems: [DataItemPatch!]
  dataKeySet: ObjectRef
  description: String
  entryRole: ObjectRef
  entryType: String
  entryView: String
  monitorType: String
  monitorView: String
  name: String!
  partitionKeys: Object
  reportTemplate: Upload
  reportType: String
  reportView: String
  schedule: String
  supervisoryRole: ObjectRef
  timezone: String
  type: String
  useCase: String
}

input NewDepartment {
  active: Boolean
  controlNo: String!
  description: String
  extension: String
  manager: ObjectRefForEmployee
  name: String!
  parent: ObjectRef
  picture: Upload
  state: DepartmentStatus
}

input NewEmployee {
  active: Boolean
  controlNo: String!
  department: ObjectRef
  extension: String
  hiredOn: String
  name: String!
  note: String
  photo: Upload
  supervisor: ObjectRefForEmployee
  type: EmployeeType
  user: ObjectRefForUser
}

input NewEntity {
  active: Boolean
  association: String
  bundle: String!
  columns: [String!]
  dataProp: String
  delStrategy: String
  description: String
  extEntity: Boolean
  fixedColumns: Int
  idField: String
  idType: String
  master: String
  multiSaveUrl: String
  name: String!
  refField: String
  searchUrl: String
  tableName: String!
  titleField: String
}

input NewEntityColumn {
  colSize: Float
  colType: String!
  defVal: String
  description: String
  entity: ObjectRef!
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Int
  gridValidator: String
  gridWidth: Int
  ignoreOnSav: Boolean
  name: String!
  nullable: Boolean
  rangeVal: String
  rank: Float
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Int
  sortRank: Int
  term: String
  uniqRank: Int
  virtualField: Boolean
}

input NewFont {
  active: Boolean
  files: [Upload!]
  name: String!
  path: String
  provider: String
  uri: String
}

input NewGroup {
  description: String
  name: String!
}

input NewInverterStatus {
  ac: Float
  acc: Float
  collectedAt: Timestamp
  com: String
  dc: Float
  ds: Float
  ivtId: String
  rtuId: String
  run: String
}

input NewLiteMenu {
  active: Boolean
  appName: String
  description: String
  icon: String
  name: String!
  parent: String
  rank: Int
  type: String
  value: String
}

input NewMenu {
  buttons: [ObjectRef!]
  category: String
  children: [ObjectRef!]
  columns: [ObjectRef!]
  description: String
  detailFormId: String
  detailLayout: String
  fixedColumns: Int
  gridSaveUrl: String
  hiddenFlag: Boolean
  iconPath: String
  idField: String
  itemsProp: String
  menuType: String!
  name: String!
  pagination: Boolean
  parent: ObjectRef
  rank: Int
  resourceId: String
  resourceName: String
  resourceType: String
  resourceUrl: String
  role: ObjectRef
  routing: String
  routingType: String
  template: String
  titleField: String
  totalProp: String
}

input NewMenuButton {
  auth: String
  icon: String
  logic: String
  menu: String!
  rank: Int
  style: String
  text: String!
}

input NewMenuColumn {
  colSize: Int
  colType: String!
  defVal: String
  description: String
  extField: Boolean
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Int
  gridValidator: String
  gridWidth: Int
  ignoreOnSave: Boolean
  menu: String!
  name: String!
  nullable: Boolean
  rangeVal: String
  rank: Int
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Int
  sortRank: Int
  term: String
  uniqRank: Int
  virtualField: Boolean
}

input NewMenuDetail {
  association: String
  buttons: [String!]
  columns: [String!]
  customView: String
  dataProp: String
  entityId: String
  masterField: String
  menu: String!
  name: String!
  saveUrl: String
  searchUrl: String
  viewSection: String!
}

input NewMenuDetailButton {
  icon: String
  logic: String
  menuDetail: String!
  rank: Int
  style: String
  text: String!
}

input NewMenuDetailColumn {
  colSize: Int
  colType: String
  defVal: String
  description: String
  extField: Boolean
  formEditor: String
  formFormat: String
  formValidator: String
  gridAlign: String
  gridEditor: String
  gridFormat: String
  gridRank: Int
  gridValidator: String
  gridWidth: Int
  ignoreOnSave: Boolean
  menuDetail: String
  name: String
  nullable: Boolean
  rangeVal: String
  rank: Int
  refName: String
  refParams: String
  refRelated: String
  refType: String
  refUrl: String
  reverseSort: Boolean
  searchEditor: String
  searchInitVal: String
  searchName: String
  searchOper: String
  searchRank: Int
  sortRank: Int
  term: String
  uniqRank: Int
  virtualField: Boolean
}

input NewOauth2Client {
  accessToken: String
  accessTokenUrl: String
  authUrl: String
  callbackUrl: String
  clientId: String
  clientSecret: String
  codeChallengeMethod: String
  codeVerifier: String
  description: String
  grantType: String
  icon: String
  jwtToken: String
  name: String!
  password: String
  refreshToken: String
  scopes: String
  username: String
  webhook: String
}

input NewPayloadLog {
  description: String
  name: String!
}

input NewPlayGroup {
  description: String
  name: String!
}

input NewPrivilege {
  category: String!
  description: String
  name: String!
  roles: [ObjectRef!]
}

input NewRole {
  description: String
  name: String!
  privileges: [ObjectRef!]
  users: [ObjectRef!]
}

input NewScenario {
  active: Boolean
  description: String
  name: String!
  schedule: String
  timezone: String
  type: String
}

input NewSetting {
  category: String!
  description: String
  name: String!
  value: String
}

input NewTerminology {
  category: String!
  description: String
  display: String!
  locale: String!
  name: String!
}

input NewUser {
  description: String
  email: String!
  name: String!
  password: String
  roles: [ObjectRef!]
  userType: String
}

input NewUserByDomainWizardInput {
  email: String!
  isInvitee: Boolean
  name: String!
  owner: Boolean!
  password: String
  roles: [NewRole!]!
}

type Notification {
  body: String!
  domain: Domain
  image: String
  property: Any
  subject: String
  timestamp: Date
  title: String!
  type: String
  url: String
}

"""Entity for Oauth2Client"""
type Oauth2Client {
  accessToken: String
  accessTokenUrl: String
  authUrl: String
  callbackUrl: String
  clientId: String
  clientSecret: String
  codeChallengeMethod: String
  codeVerifier: String
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  expires: Timestamp
  grantType: String
  icon: String
  id: ID!
  jwtToken: String
  name: String!
  password: String
  refreshToken: String
  scopes: String
  state: String
  tokenType: String
  updatedAt: Timestamp
  updater: User
  username: String
  webhook: String
}

type Oauth2ClientList {
  items: [Oauth2Client!]!
  total: Int!
}

input Oauth2ClientPatch {
  accessToken: String
  accessTokenUrl: String
  authUrl: String
  callbackUrl: String
  clientId: String
  clientSecret: String
  codeChallengeMethod: String
  codeVerifier: String
  description: String
  grantType: String
  icon: String
  jwtToken: String
  name: String
  password: String
  refreshToken: String
  scopes: String
  username: String
  webhook: String
}

"""Can be anything"""
scalar Object

input ObjectRef {
  """Field description"""
  description: String

  """Field id"""
  id: ID!

  """Field name"""
  name: String
}

input ObjectRefApprovalLineOwnerType {
  controlNo: String

  """Field description"""
  description: String

  """Field id"""
  id: ID!

  """Field name"""
  name: String
}

input ObjectRefForEmployee {
  controlNo: String

  """Field description"""
  description: String
  email: String

  """Field id"""
  id: ID!

  """Field name"""
  name: String
  photo: String
}

input ObjectRefForUser {
  """Field description"""
  description: String
  email: String

  """Field id"""
  id: ID!

  """Field name"""
  name: String
}

type OrgMemberTarget {
  controlNo: String

  """Field description"""
  description: String

  """Field id"""
  id: ID!

  """Field name"""
  name: String
}

"""type enumeration of a approval line item"""
enum OrgMemberTargetType {
  Department
  Employee
  MyDepartment
  MySupervisor
  Myself
  Role
}

input Pagination {
  limit: Int
  page: Int
}

type Partner {
  approvedAt: Timestamp!
  approver: User
  domain: Domain!
  id: ID!
  partnerDomain: Domain!
  requestedAt: Timestamp!
  requester: User
}

type PartnerList {
  items: [Partner!]
  total: Int
}

"""Entity for PartnerSetting"""
type PartnerSetting {
  category: String
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  name: String
  partnerDomain: Domain
  partnerDomainId: String
  setting: Setting
  settingId: String
  updatedAt: Timestamp
  updater: User
  value: String
}

type PartnerSettingList {
  items: [PartnerSetting!]!
  total: Int!
}

input PartnerSettingPatch {
  cuFlag: String!
  id: ID
  partnerDomain: ObjectRef
  setting: ObjectRef
  value: String
}

"""Entity for PayloadLog"""
type PayloadLog {
  createdAt: Timestamp
  creator: User
  domain: Domain
  endpoint: String!
  id: ID!
  name: String!
  request: String!
  response: String!
  src: String
  type: String!
  updatedAt: Timestamp
  updater: User
}

type PayloadLogList {
  items: [PayloadLog!]!
  total: Int!
}

input PayloadLogPatch {
  cuFlag: String!
  description: String
  id: ID
  name: String
}

type PendingObject {
  due: String!
  priority: Int!
  stuff: Object!
  tag: String
}

"""Entity for Board PlayGroup"""
type PlayGroup {
  boards: [Board!]
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  name: String!
  updatedAt: Timestamp
  updater: User
}

type PlayGroupList {
  items: [PlayGroup!]!
  total: Int!
}

input PlayGroupPatch {
  description: String
  name: String
}

type Privilege {
  category: String
  createdAt: Timestamp
  creator: User
  description: String
  id: ID!
  name: String!
  roles: [Role!]
  updatedAt: Timestamp
  updater: User
}

type PrivilegeList {
  items: [Privilege!]
  total: Int
}

input PrivilegePatch {
  category: String
  description: String
  id: String
  name: String
  roles: [ObjectRef!]
}

"""Object type for Profile"""
type Profile {
  left: Float
  picture: String
  top: Float
  zoom: Float
}

"""Input type for Profile"""
input ProfileInput {
  file: Upload
  left: Float
  picture: String
  top: Float
  zoom: Float
}

type PropertySpec {
  label: String!
  name: String!
  placeholder: String
  property: Object
  type: String!
}

type Query {
  """To fetch multiple Activities"""
  activities(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityList!

  """To fetch a Activity"""
  activity(id: String!): Activity

  """To fetch a ActivityApproval"""
  activityApproval(id: String!): ActivityApproval

  """To fetch multiple ActivityApprovals"""
  activityApprovals(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityApprovalList!

  """To fetch a Activity by name"""
  activityByName(name: String!): Activity

  """To fetch activity events by period"""
  activityEvents(from: String!, to: String!): [ActivityEvent!]!

  """To fetch a ActivityInstance"""
  activityInstance(id: String!): ActivityInstance

  """To fetch multiple ActivityInstances"""
  activityInstances(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityInstanceList!

  """To fetch multiple activity instances by activity"""
  activityInstancesByActivity(activityId: String!, filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityInstanceList!

  """To fetch a Activity Summary"""
  activitySummary: ActivitySummary

  """To fetch a ActivityTemplate"""
  activityTemplate(id: String!): ActivityTemplate

  """To fetch multiple ActivityTemplates"""
  activityTemplates(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityTemplateList!

  """To fetch a ActivityThread"""
  activityThread(id: String!): ActivityThread

  """To fetch multiple ActivityThreads"""
  activityThreads(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityThreadList!
  appBinding(id: String!): AppBinding!
  appBindings(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): AppBindingList!

  """ To fetch appliance"""
  appliance(id: String!): Appliance!

  """To fetch multiple appliance"""
  appliances(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ApplianceList!

  """To fetch application"""
  application(id: String!): Application!

  """To fetch multiple application"""
  applications(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ApplicationList!

  """To fetch the approvals(ActivityApprovals) which has done by me"""
  approvalDoneList(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityApprovalList!

  """To fetch a approval line"""
  approvalLine(id: String!): ApprovalLine

  """To fetch referable approval lines for the user"""
  approvalLineReferences(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ApprovalLineList!

  """To fetch multiple approval lines"""
  approvalLines(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ApprovalLineList!

  """To fetch the list of work results I need to review"""
  approvalPendingList(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityApprovalList!
  attachment(id: String!): Attachment!
  attachments(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): AttachmentList!

  """To fetch a Board"""
  board(id: String!): Board!

  """To fetch a BoardSettings"""
  boardSettings(names: [String!]): [BoardSetting!]!

  """To fetch multiple Boards"""
  boards(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): BoardList!

  """To fetch Boards created by me"""
  boardsCreatedByMe(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): BoardList!

  """To check if system would provide default password to create new user"""
  checkDefaultPassword: Boolean!

  """To check if system would provide default password to create new user"""
  checkResettablePasswordToDefault: Boolean!

  """To fetch the preset of role for new user"""
  checkRolePreset: [Role!]!

  """To check if current user is belongs to current domain"""
  checkUserBelongsDomain: Boolean!

  """..."""
  checkUserExistence(email: String!): Boolean!

  """To fetch common approval lines"""
  commonApprovalLines(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ApprovalLineList!

  """To fetch a CommonCode"""
  commonCode(name: String!): CommonCode

  """To fetch a CommonCodeDetail"""
  commonCodeDetail(id: String!): CommonCodeDetail!

  """To fetch multiple CommonCodeDetails"""
  commonCodeDetails(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): CommonCodeDetailList!

  """To fetch multiple CommonCodes"""
  commonCodes(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): CommonCodeList!

  """To fetch a connector"""
  connection(name: String!): ConnectorType!

  """To fetch multiple connections"""
  connections(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ConnectionList!

  """To fetch the connector from a connection"""
  connectorByConnection(connectionName: String!): ConnectorType!

  """To fetch multiple connector"""
  connectors: ConnectorList!

  """To fetch a Contact"""
  contact(id: String!): Contact

  """To fetch multiple Contacts"""
  contacts(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ContactList!
  customers: [Domain!]!

  """To fetch a DataArchive"""
  dataArchive(id: String!): DataArchive!

  """To fetch multiple DataArchives"""
  dataArchives(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataArchiveList!

  """To fetch a DataKeySet"""
  dataKeySet(id: String!): DataKeySet

  """To fetch multiple DataKeySets"""
  dataKeySets(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataKeySetList!

  """To fetch a DataOoc"""
  dataOoc(id: String!): DataOoc!

  """To fetch multiple DataOoc"""
  dataOocs(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataOocList!

  """To fetch a data sample"""
  dataSample(id: String!): DataSample!

  """To fetch multiple data samples"""
  dataSamples(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSampleList!

  """To fetch multiple data samples by data key set"""
  dataSamplesByDataKeySet(dataKeySetId: String!, filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSampleList!

  """To fetch a DataSensor"""
  dataSensor(id: String!): DataSensor!

  """To fetch multiple DataSensors"""
  dataSensors(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSensorList!

  """To fetch a DataSet"""
  dataSet(id: String!): DataSet!

  """To fetch a DataSet by name"""
  dataSetByName(name: String!): DataSet!

  """To fetch multiple DataSetHistories"""
  dataSetHistories(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSetHistoryList!

  """To fetch a DataSetHistory"""
  dataSetHistory(id: String!, timestamp: Date!): DataSetHistory!

  """To fetch multiple DataSets"""
  dataSets(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSetList!

  """To fetch multiple DataSets for data entry manually"""
  dataSetsForEntry(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSetList!

  """To fetch multiple DataSets to see data report"""
  dataSetsForReport(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSetList!

  """To fetch a data-spec"""
  dataSpec(name: String!): DataSpec!

  """To fetch all data-specs"""
  dataSpecs: DataSpecList!

  """To fetch multiple DataSummaries"""
  dataSummaries(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSummaryList!

  """To fetch multiple data summaries by data key set"""
  dataSummariesByDataKeySet(dataKeySetId: String!, filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DataSummaryList!

  """To fetch a DataSummary"""
  dataSummary(id: String!): DataSummary

  """To fetch a Department"""
  department(id: String!): Department

  """To fetch a Root Department"""
  departmentRoot: Department

  """To fetch multiple Departments"""
  departments(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DepartmentList!

  """To fetch domain"""
  domain(id: String!): Domain!

  """To fetch all domains (Only superuser is granted this privilege.)"""
  domains(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DomainList!

  """To fetch the tasks(ActivityThreads) which has done by me"""
  doneList(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityThreadList!

  """To fetch my own ActivityInstances"""
  draftList(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityInstanceList!

  """To fetch a Employee"""
  employee(id: String!): Employee

  """To fetch multiple Employees"""
  employees(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): EmployeeList!

  """To fetch multiple Entities"""
  entities(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): EntityList!

  """To fetch a Entity"""
  entity(id: String!): Entity!

  """To fetch a EntityColumn"""
  entityColumn(id: String!): EntityColumn!

  """To fetch multiple EntityColumns"""
  entityColumns(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): EntityColumnList!

  """To fetch a EntityMetadata"""
  entityMetadata(name: String!): EntityMetadata!

  """To fetch the state of a connection"""
  fetchConnectionState(name: String!): ConnectionState!

  """To fetch a Font"""
  font(id: String!): Font!

  """To fetch multiple Fonts"""
  fonts(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): FontList!

  """To fetch a work date and work shift for given datetime"""
  getWorkDateAndShift(dateTime: Timestamp!): WorkDateWorkShiftPair!

  """To fetch a Global Board Model"""
  globalBoardByName(name: String!): Board
  grantedRoles: [GrantedRole!]!
  grantingRoles(customerId: String!): [GrantedRole!]!

  """To fetch a Group"""
  group(id: String!): Group

  """To fetch multiple Groups"""
  groups(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): GroupList!

  """To query whether I have the given permission"""
  hasPrivilege(category: String!, name: String!): Boolean!

  """To fetch multiple InstallableActivitys"""
  installableActivities(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): InstallableActivityList!

  """To fetch a InstallableActivity"""
  installableActivity(name: String!): InstallableActivity

  """To fetch a InverterStatus"""
  inverter(id: String!): InverterStatus

  """To fetch a InverterStatus"""
  inverterSummary: InverterStatusSummary

  """To fetch multiple InverterStatuss"""
  inverters(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): InverterStatusList!
  invitation(email: String!, reference: String!, type: String!): Invitation!
  invitations(reference: String!, type: String!): InvitationList!

  """To fetch a LiteMenu"""
  liteMenu(id: String!): LiteMenu!

  """To fetch multiple LiteMenus"""
  liteMenus(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): LiteMenuList!

  """To fetch a Menu"""
  menu(id: String!): Menu!

  """To fetch a MenuButton"""
  menuButton(id: String!): MenuButton!

  """To fetch multiple MenuButtons"""
  menuButtons(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): MenuButtonList!

  """To fetch a Menu by routing"""
  menuByRouting(routing: String!): Menu!

  """To fetch a MenuColumn"""
  menuColumn(id: String!): MenuColumn!

  """To fetch multiple MenuColumns"""
  menuColumns(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): MenuColumnList!

  """To fetch a MenuDetail"""
  menuDetail(id: String!): MenuDetail!

  """To fetch a MenuDetailButton"""
  menuDetailButton(id: String!): MenuDetailButton!

  """To fetch multiple MenuDetailButtons"""
  menuDetailButtons(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): MenuDetailButtonList!

  """To fetch a MenuDetailColumn"""
  menuDetailColumn(id: String!): MenuDetailColumn!

  """To fetch multiple MenuDetailColumns"""
  menuDetailColumns(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): MenuDetailColumnList!

  """To fetch multiple MenuDetails"""
  menuDetails(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): MenuDetailList!

  """To fetch multiple Menus"""
  menus(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): MenuList!

  """To fetch approval lines only for to the user"""
  myApprovalLines(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ApprovalLineList!
  myLoginHistories(limit: Float!): [LoginHistory!]!

  """To fetch roles of current user"""
  myRoles: [Role!]!

  """To fetch a Oauth2Client"""
  oauth2Client(id: String!): Oauth2Client

  """To fetch multiple Oauth2Clients"""
  oauth2Clients(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): Oauth2ClientList!

  """To fetch specific domain's CommonCodes by given name"""
  partnerCommonCode(name: String!, partnerDomainId: String!): CommonCode!

  """To fetch a PartnerSetting"""
  partnerSetting(name: String!, partnerDomainId: String!): PartnerSetting!

  """To fetch multiple PartnerSettings"""
  partnerSettings(filters: [Filter!]!, pagination: Pagination!, partnerDomain: ObjectRef!, sortings: [Sorting!]!): PartnerSettingList!
  partners(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): PartnerList!

  """To fetch a PayloadLog"""
  payloadLog(id: String!): PayloadLog!

  """To fetch multiple PayloadLogs"""
  payloadLogs(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): PayloadLogList!

  """To get list of activity instance that a user can pick"""
  pickableActivityList(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityInstanceList!

  """To fetch a PlayGroup"""
  playGroup(id: String!): PlayGroup

  """To fetch multiple PlayGroups"""
  playGroups(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): PlayGroupList!

  """To fetch privilege"""
  privilege(category: String!, name: String!): Privilege!

  """To fetch multiple privileges"""
  privileges(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): PrivilegeList!

  """To query data in S3 using Amazon Athena SDK"""
  queryFromAthena(queryData: Object!): Any!

  """To fetch role"""
  role(name: String!): Role!

  """To fetch Menus by role"""
  roleMenus(roleId: String!): MenuList!

  """To fetch priviliges of a role"""
  rolePrivileges(roleId: String!): [RolePrivilege!]!

  """To fetch multiple users"""
  roles(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): RoleList!

  """To fetch a scenario"""
  scenario(id: String!): Scenario!

  """To fetch a scenario instance"""
  scenarioInstance(instanceName: String!): ScenarioInstance!

  """To fetch multiple scenario instances"""
  scenarioInstances(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ScenarioInstanceList!

  """To fetch multiple scenarios"""
  scenarios(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ScenarioList!
  searchCustomers(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): DomainList!

  """To fetch a Setting"""
  setting(name: String!, partnerDomainId: String): Setting!

  """To fetch multiple Settings"""
  settings(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): SettingList!

  """To fetch the list of activities I can start"""
  startableActivities(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityList!

  """To fetch a step"""
  step(name: String!): Step!

  """To fetch multiple steps"""
  steps(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): StepList!

  """To fetch the list of activities that I can report on"""
  supervisableActivities(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityList!

  """To fetch a task-type"""
  taskType(name: String!): TaskType!

  """To fetch multiple task-type"""
  taskTypes: TaskTypeList!

  """To fetch the connector from a task-type"""
  taskTypesByConnection(connectionName: String!): TaskTypeList!

  """To fetch multiple Terminologies"""
  terminologies(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): TerminologyList!

  """To fetch a Terminology"""
  terminology(id: String!): Terminology!

  """To fetch my own ActivityThreads"""
  todoList(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): ActivityThreadList!

  """To fetch user"""
  user(email: String!): User!

  """To fetch Menus by role"""
  userMenus: [Menu!]!

  """To fetch roles of a user"""
  userRoles(userId: String!): [UserRole!]!

  """To fetch multiple users"""
  users(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): UserList!
  vendors: [Domain!]!

  """To fetch multiple WorkShifts"""
  workShifts(filters: [Filter!], pagination: Pagination, sortings: [Sorting!]): WorkShiftList!
}

type Role {
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain!
  id: ID!
  name: String!
  privileges: [Privilege!]
  updatedAt: Timestamp
  updater: User
  users: [User!]
}

type RoleList {
  items: [Role!]
  total: Int
}

input RolePatch {
  cuFlag: String
  description: String
  id: String
  name: String
  privileges: [ObjectRef!]
  users: [ObjectRef!]
}

type RolePrivilege {
  assigned: Boolean
  category: String
  description: String
  id: String
  name: String
}

type Scenario {
  active: Boolean
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  instances: [ScenarioInstance!]
  name: String!
  schedule: String
  scheduleId: String
  state: String
  steps: [Step!]
  timezone: String
  type: String
  updatedAt: Timestamp
  updater: User
}

type ScenarioInstance {
  data: Object
  domain: Domain
  instanceName: String
  message: String
  progress: ScenarioInstanceProgress
  root: ScenarioInstance
  scenarioName: String
  state: String
  timestamp: Timestamp
  variables: Object
}

type ScenarioInstanceList {
  items: [ScenarioInstance!]!
  total: Int!
}

type ScenarioInstanceProgress {
  rate: Int!
  rounds: Int!
  step: Int!
  steps: Int!
}

type ScenarioInstanceState {
  data: Object
  domain: Domain
  instanceName: String
  message: String
  progress: ScenarioInstanceProgress
  scenarioName: String
  state: ScenarioInstanceStatus
  timestamp: Timestamp
  variables: Object
}

"""state enumeration of a scenario-instance"""
enum ScenarioInstanceStatus {
  HALTED
  READY
  STARTED
  STOPPED
  UNLOADED
}

type ScenarioList {
  items: [Scenario!]!
  total: Int!
}

input ScenarioPatch {
  active: Boolean
  cuFlag: String
  description: String
  id: ID
  name: String
  schedule: String
  steps: [StepPatch!]
  timezone: String
  type: String
}

type ScenarioQueueState {
  domain: Domain!
  queue: [PendingObject!]!
}

"""Entity for Setting"""
type Setting {
  category: String!
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  name: String!
  updatedAt: Timestamp
  updater: User
  value: String
}

type SettingList {
  items: [Setting!]!
  total: Int!
}

input SettingPatch {
  category: String
  cuFlag: String
  description: String
  id: ID
  name: String
  value: String
}

input Sorting {
  """
  Set to true if descending sort. Default is "false"
  """
  desc: Boolean

  """Field name to sort by"""
  name: String!
}

type Step {
  connection: String
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  id: ID!
  log: Boolean
  name: String!
  params: String
  scenario: Scenario
  sequence: Float
  skip: Boolean
  task: String
  updatedAt: Timestamp
  updater: User
}

type StepList {
  items: [Step!]!
  total: Int!
}

input StepPatch {
  connection: String
  cuFlag: String
  description: String
  id: ID
  log: Boolean
  name: String
  params: String
  sequence: Int
  skip: Boolean
  task: String
}

type Subscription {
  activityApproval: ActivityApproval!
  activityInstance: ActivityInstance!
  activityThread: ActivityThread!
  board(id: String!): Board!
  connectionLog(level: String): Log!
  connectionState(name: String): ConnectionState!
  data(tag: String!): Data!
  dataOoc: DataOoc!
  notification(subjects: [String!]): Notification!
  playGroup(id: String!): PlayGroup!
  scenarioInstanceLog(instanceName: String, level: String, scenarioName: String): Log!
  scenarioInstanceState(instanceName: String, scenarioName: String): ScenarioInstanceState!
  scenarioQueueState: ScenarioQueueState!
}

type TaskType {
  connectorFree: Boolean
  description: String
  help: String
  name: String!
  parameterSpec: [PropertySpec!]
}

type TaskTypeList {
  items: [TaskType!]!
  total: Int!
}

"""Entity for Terminology"""
type Terminology {
  category: String!
  createdAt: Timestamp
  description: String
  display: String!
  domain: Domain
  id: ID!
  locale: String!
  name: String!
  updatedAt: Timestamp
}

type TerminologyList {
  items: [Terminology!]!
  total: Int!
}

input TerminologyPatch {
  category: String!
  cuFlag: String
  description: String
  display: String!
  id: ID
  locale: String!
  name: String
}

"""
The javascript `Date` as integer. Type represents date and time as number of milliseconds from start of UNIX epoch.
"""
scalar Timestamp

"""The `Upload` scalar type represents a file upload."""
scalar Upload

type UploadURL {
  fields: Any!
  url: String!
}

type User {
  createdAt: Timestamp
  creator: User
  description: String
  domains: [Domain!]!
  email: String!
  id: ID!
  locale: String
  name: String!
  owner: Boolean
  reference: String
  roles: [Role!]!
  status: String!
  updatedAt: Timestamp
  updater: User
  userType: String
}

type UserList {
  items: [User!]
  total: Int
}

input UserPatch {
  cuFlag: String
  description: String
  domains: [ObjectRef!]
  email: String
  id: ID
  name: String
  password: String
  roles: [ObjectRef!]
  status: String
  userType: String
}

type UserRole {
  assigned: Boolean
  description: String
  id: String
  name: String
}

type WorkDateWorkShiftPair {
  workDate: String!
  workShift: String!
}

"""Entity for WorkShift"""
type WorkShift {
  createdAt: Timestamp
  creator: User
  description: String
  domain: Domain
  fromDate: Float
  fromTime: String
  id: ID!
  name: String!
  toDate: Float
  toTime: String
  updatedAt: Timestamp
  updater: User
}

type WorkShiftList {
  items: [WorkShift!]!
  total: Int!
}

input WorkShiftPatch {
  description: String
  fromDate: Float!
  fromTime: String!
  name: String!
  toDate: Float!
  toTime: String!
}