# Java enumeration mapping for com.jdisc.common.ssh.SshKeyType
enum SshKeyType {
  RSA,
  DSA,
  OPENSSH
}


# Java enumeration mapping for com.jdisc.inventory.common.constants.AddOnProduct
"""The available Add-On products"""
enum AddOnProduct {
  WEB_SERVICE_ADD_ON,
  DEPENDENCY_MAPPING,
  NETWORKING,
  HISTORY,
  SECURITY,
  SHI,
  MEASUREMENT,
  WEBUI
}


# Java enumeration mapping for com.jdisc.inventory.common.constants.FieldWidthEnum
"""Enumeration for field widths in the UI"""
enum FieldWidthEnum {
  checkbox,
  ip4Address,
  timestamp,
  tiny,
  verySmall,
  small,
  deviceType,
  medium,
  large,
  veryLarge,
  incrediblyLarge,
  ip6Address,
  ip6NetworkPrefix
}


# Java enumeration mapping for com.jdisc.inventory.common.datastructures.accounts.snmp.SnmpV3AuthProtocol
"""The SNMPv3 authentication protocol"""
enum SnmpV3AuthProtocol {
  None,
  SHA,
  MD5
}


# Java enumeration mapping for com.jdisc.inventory.common.datastructures.accounts.snmp.SnmpV3PrivProtocol
"""The SNMPv3 privacy/encryption protocol"""
enum SnmpV3PrivProtocol {
  None,
  DES,
  AES128,
  AES192,
  AES256
}


# Java enumeration mapping for com.jdisc.inventory.common.datastructures.customattributes.AttributeType
"""The custom attribute type"""
enum AttributeType {
  Integer,
  Long,
  SingleLineText,
  MultilineText,
  Datetime,
  Date,
  Time,
  Folder,
  Float,
  Enum,
  Currency,
  Boolean,
  Document,
  Table,
  Group,
  Any,
  SnmpGroup,
  SnmpTable
}


# Java enumeration mapping for com.jdisc.inventory.common.datastructures.java.JavaRiskSeverity
"""The java risk severity"""
enum JavaRiskSeverity {
  Ok,
  DontKnow,
  AtRisk
}


# Java enumeration mapping for com.jdisc.inventory.common.devicedata.ConnectionDirection
"""The direction of the relation. Forward means source initiated, Backward means destination initiated."""
enum ConnectionDirection {
  Forward,
  Backward
}


# Java enumeration mapping for com.jdisc.inventory.common.devicedata.ConnectorState
"""The state for a relation between two devices. This state is used
for instance for virtualation relations between the physical host and the VM
in order to indicate the virtual machine state"""
enum ConnectorState {
  Unknown,
  Running,
  Stopped,
  Suspended,
  Pending,
  Paused,
  Pausing,
  Resuming,
  Saving,
  Snapshotting,
  Starting,
  Stopping,
  Configured,
  Blocked,
  Dying,
  Crashed,
  Creating,
  Deallocating,
  Deallocated,
  Migrating,
  Rebuilding,
  Intune,
  Repairing,
  Suspending
}


# Java enumeration mapping for com.jdisc.inventory.common.devicedata.ConnectorType
"""The relation type for relations between two devices"""
enum ConnectorType {
  Unknown,
  Other,
  Male,
  Female,
  Shielded,
  Unshielded,
  SCSI_A_High_Density_50_pins,
  SCSI_A_Low_Density_50_pins,
  SCSI_P_High_Density_68_pins,
  SCSI_SCA_I_80_pins,
  SCSI_SCA_II_80_pins,
  SCSI_Fibre_Channel_DB_9_Copper,
  SCSI_Fibre_Channel_Fibre,
  SCSI_Fibre_Channel_SCA_II_40_pins,
  SCSI_Fibre_Channel_SCA_II_20_pins,
  SCSI_Fibre_Channel_BNC,
  ATA_3_1_2_Inch_40_pins,
  ATA_2_1_2_Inch_44_pins,
  ATA_2,
  ATA_3,
  ATA_66,
  DB_9,
  DB_15,
  DB_25,
  DB_36,
  RS_232C,
  RS_422,
  RS_423,
  RS_485,
  RS_449,
  V_35,
  X_21,
  IEEE_488,
  AUI,
  Category_3,
  Category_4,
  UTP_Category_5,
  BNC,
  RJ11,
  RJ45,
  Fiber_MIC,
  Apple_AUI,
  Apple_GeoPort,
  PCI,
  ISA,
  EISA,
  VESA,
  PCMCIA,
  PCMCIA_Type_I,
  PCMCIA_Type_II,
  PCMCIA_Type_III,
  ZV_Port,
  CardBus,
  USB,
  IEEE_1394,
  HIPPI,
  HSSDC_6_pins,
  GBIC,
  DIN,
  Mini_DIN,
  Micro_DIN,
  PS_2,
  Infrared,
  HP_HIL,
  Access_bus,
  NuBus,
  Centronics,
  Mini_Centronics,
  Mini_Centronics_Type_14,
  Mini_Centronics_Type_20,
  Mini_Centronics_Type_26,
  BusMouse,
  ADB,
  AGP,
  VME_Bus,
  VME64,
  Proprietary,
  Proprietary_Processor_Card_Slot,
  Proprietary_Memory_Card_Slot,
  Proprietary_IO_Riser_Slot,
  PCI_66,
  AGP2X,
  AGP4X,
  PC_98,
  PC_98_Hireso,
  PC_H98,
  PC_98Note,
  PC_98Full,
  PCI_X,
  SSA_SCSI,
  Circular,
  On_Board_IDE_Connector,
  On_Board_Floppy_Connector,
  Dual_Inline_9_Ping,
  Dual_Inline_25_Pin,
  Dual_Inline_50_Pin,
  Dual_Inline_68_Ping,
  On_Board_Sound_Connector,
  Mini_Jack,
  PCI_X2,
  Sbus_IEEE_1396_1993_32_Bit,
  Sbus_IEEE_1396_1993_64_Bit,
  MCA,
  GIO,
  XIO,
  HIO,
  NGIO,
  PMC,
  MTRJ,
  VF_45,
  Future_IO,
  SC,
  SG,
  Electrical,
  Optical,
  Ribbon,
  GLM,
  _1x9,
  Mini_SG,
  LC,
  HSSC,
  VHDCI_Shielded_68_pins,
  InfiniBand,
  AGP8X,
  PCI_E,
  VMwareVirtualInstance,
  MSVirtualServerInstance,
  SolarisZone,
  HPIntegrityVM,
  MSHyperVInstance,
  XenInstance,
  SolarisLDom,
  VirtualBoxInstance,
  KVMVirtualInstance,
  IbmLPar,
  CitrixXenInstance,
  HPIntegrityVPar,
  LXCVirtualInstance,
  DockerVirtualInstance,
  VFilerInstance,
  F5Appliance,
  NetAppVServerInstance,
  F5VirtualServer,
  CitrixNetScalerServer,
  ManagedVirtualizationServer,
  BladeChassisMember,
  DirectlyAttachedDevice,
  AttachedDiskArray,
  AttachedManagementDevice,
  StackedSwitch,
  AttachedComputeNode,
  DirectlyAttachedLocalVirtualSwitch,
  LLDPMED
}


# Java enumeration mapping for com.jdisc.inventory.common.devicedata.scheduledTasks.DeviceScheduledTaskLogonType
enum DeviceScheduledTaskLogonType {
  S4U,
  Password,
  InteractiveToken,
  InteractiveTokenOrPassword
}


# Java enumeration mapping for com.jdisc.inventory.common.devicedata.scheduledTasks.DeviceScheduledTaskRunLevelType
enum DeviceScheduledTaskRunLevelType {
  LeastPrivilege,
  HighestAvailable
}


# Java enumeration mapping for com.jdisc.inventory.common.devicedata.scheduledTasks.DeviceScheduledTaskTriggerFrequency
enum DeviceScheduledTaskTriggerFrequency {
  ScheduleByDay,
  ScheduleByWeek,
  ScheduleByMonth,
  ScheduleByMonthDayOfWeek
}


# Java enumeration mapping for com.jdisc.inventory.common.devicedata.scheduledTasks.DeviceScheduledTaskTriggerType
enum DeviceScheduledTaskTriggerType {
  AtSystemStartUp,
  AtRegistration,
  WhenIdle,
  TimeTrigger,
  WhenAnEventOccurs,
  AtLogonTime,
  WhenSessionStateChanged,
  CalendarTrigger,
  OnDemandOnly,
  WhenWnfStateChanged
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.ApplicationSource
"""The application source"""
enum ApplicationSource {
  AddRemovePrograms,
  App,
  RPM,
  DPKG,
  SWLIST,
  LSPP,
  PKGINFO,
  WindowsComponent,
  SystemComponent,
  Pacman,
  Equery,
  SWIDTAG,
  OracleCompsXmlFile,
  WSUS
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.CloudType
"""CloudType"""
enum CloudType {
  MSDN,
  AppleICloud,
  Teamviewer,
  Azure,
  AmazonAWS,
  CiscoMeraki,
  Hetzner,
  AdobeCreativeCloud,
  GoogleCloudPlatform
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.ClusterMemberType
"""The type of the cluster member relation"""
enum ClusterMemberType {
  ClusterMember,
  AssociatedVM
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.ClusterType
"""A cluster's type"""
enum ClusterType {
  VeritasCluster,
  ServiceGuard,
  MicrosoftCluster,
  OracleSolaris,
  RedHatCluster,
  VRRPCluster,
  HSRPCluster,
  CitrixXenServerCluster,
  VMwareCluster,
  ProxmoxCluster,
  AIXCluster,
  FortinetHA,
  JuniperHA,
  PacemakerCluster,
  SonicwallCluster,
  F5BigIPCluster,
  NutanixStorageCluster,
  NetApp,
  NetAppOntapSelect,
  WatchGuard,
  MicrosoftNLB,
  CiscoAPControllerCluster
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.CustomReportType
"""A custom report type"""
enum CustomReportType {
  CustomReport,
  Folder,
  SqlCustomReport
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DeviceRole
"""A device's role (such as Domain Controller, DNS Server, Database Server, ...)"""
enum DeviceRole {
  PrimaryDomainController,
  BackupDomainController,
  DNSServer,
  DatabaseServer,
  WebServer,
  VirtualServer,
  DirectoryService,
  GlobalCatalog,
  KerberosKeyDistributionCenter,
  TimeService,
  DomainController,
  ApplicationServer,
  MailServer,
  StorageManagement,
  TerminalServices,
  VirtualizationManagement,
  DeviceManagement,
  AccessPointController,
  Router,
  DhcpServer,
  TransactionServer
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DeviceTier
"""A device's tier"""
enum DeviceTier {
  Tier0,
  Tier1,
  Tier2,
  Tier3
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DeviceType
"""A device's type"""
enum DeviceType {
  AllDevices,
  NetworkingDevice,
  Hub,
  Router,
  Switch,
  RoutingSwitch,
  Firewall,
  AccessPoint,
  Modem,
  Analyser,
  Gateway,
  Concentrator,
  Bridge,
  Repeater,
  PortServer,
  ConsoleSwitch,
  ConsoleServer,
  BladeSwitch,
  ServerNetSwitch,
  BladeServerNetSwitch,
  InfiniBandSwitch,
  BladeInfiniBandSwitch,
  OpticalSwitch,
  PatchField,
  VPNRouter,
  AccessPointController,
  LoadBalancer,
  DeviceConnector,
  Receiver,
  CorrelationReceiver,
  WlanRepeater,
  NetworkMonitor,
  TimeServer,
  StackedSwitch,
  DslRouter,
  AggregationDevice,
  UMTSRouter,
  Chassis,
  RackChassis,
  DiskCage,
  ApplicationFirewall,
  WebApplicationFirewall,
  PacketBroker,
  VirtualSwitch,
  LocalVirtualSwitch,
  DistributedVirtualSwitch,
  ASAM,
  DWDMSwitch,
  Antenna,
  Computer,
  ClientComputer,
  Server,
  RackServer,
  BladeServer,
  Desktop,
  Laptop,
  PDAThinClient,
  MiniTower,
  Tower,
  DTC,
  MediaServer,
  TerminalServer,
  Workstation,
  Terminal,
  XTerminal,
  VirtualComputer,
  VMwareInstance,
  MiniTowerServer,
  TowerServer,
  MSVMInstance,
  ThinClient,
  SolarisZone,
  IBMLPar,
  IntegrityVM,
  MSHyperVInstance,
  XenInstance,
  KVMInstance,
  SunVirtualBoxInstance,
  VirtualIronInstance,
  ParallelsInstance,
  BladeWorkstation,
  SolarisLDom,
  MiniDesktop,
  VMwareWebGatewayAppliance,
  PizzaBox,
  BochsInstance,
  VMwareAppliance,
  VMwareManagementAppliance,
  MSHyperVAppliance,
  KVMAppliance,
  VMwareSecurityAppliance,
  TabletComputer,
  ChangeTerminalIdentityCard,
  CitrixXenInstance,
  IntegrityVPar,
  ContainerVirtualization,
  LxcContainer,
  VMwareIPGatewayAppliance,
  DockerContainer,
  ComputeNode,
  vFiler,
  RackPC,
  F5Appliance,
  MiniPC,
  vServer,
  NetAppvServer,
  VirtualAppliance,
  VirtualDiskArrayAppliance,
  VirtualSwitchAppliance,
  F5VirtualServer,
  XCPNGInstance,
  DSLModem,
  IndustrialPC,
  ZVMVirtualMachine,
  VirtualManagementAppliance,
  AccessPointControllerAppliance,
  MiniWorkstation,
  HandheldComputer,
  CloudVM,
  AWS,
  AmazonEC2Instance,
  AmazonEC2WorkspaceClient,
  FirewallAppliance,
  WebApplicationFirewallAppliance,
  VirtualRouterAppliance,
  VirtualSDWanAppliance,
  VirtualLoadBalancerAppliance,
  PolicyManagementAppliance,
  CitrixNetScalerVServer,
  GoogleCloudPlatformInstance,
  ImagingAndPrinting,
  Printer,
  Scanner,
  Fax,
  PrintServer,
  MultifunctionalDevice,
  Projector,
  DigitalSender,
  BarcodeScanner,
  ReceiptPrinter,
  CardPrinter,
  BarcodePositioningSystem,
  BarcodePrinter,
  PresentationGateway,
  LabelPrinter,
  StorageDevice,
  TapeLibrary,
  TapeLibraryExtension,
  FibreChannelHub,
  FibreChannelSwitch,
  FibreChannelBridge,
  FibreChannelAnalyser,
  DiskArray,
  TapeDrive,
  FibreChannelRouter,
  BackupDevice,
  BladeStorageDevice,
  BladeDiskArray,
  BladeTapeDrive,
  FibreChannelGateway,
  FibreChannelConverter,
  BladeFibreChannelSwitch,
  SASSwitch,
  BladeSASSwitch,
  NAS,
  RaidController,
  FloppyDiskDrive,
  USBStick,
  SanController,
  FlashArray,
  TelephonyDevice,
  IPTelephonyDevice,
  Phone,
  IPPhone,
  IPVoiceGateway,
  ISDNGateway,
  AccessNode,
  IPVoiceAdapter,
  DectAntenna,
  DoorPhone,
  MobileCard,
  DectStation,
  SMSModem,
  PABX,
  DSLAM,
  MSAN,
  SessionBorderController,
  TelephoneController,
  ManagementDevice,
  BladeEnclosure,
  WlanController,
  DiskArrayController,
  SecurityManagementDevice,
  UnassignedDevice,
  NoAgentDevice,
  UnknownDevice,
  PowerDevice,
  UPS,
  PDU,
  PowerSupply,
  BladePowerSupply,
  ATS,
  CoolingDevice,
  Fan,
  BladeFan,
  LiquidCoolingDevice,
  AirCondition,
  Rack,
  RackControl,
  Appliance,
  SecurityAppliance,
  WANAppliance,
  PrintServerAppliance,
  WebCachingAppliance,
  VpnAppliance,
  NetworkMonitoringAppliance,
  WebGatewayAppliance,
  EMailAppliance,
  NetworkAutomationAppliance,
  ManagementAppliance,
  PrinterManagementAppliance,
  VirtualNetworkingAppliance,
  WlanControllerAppliance,
  SDWanAppliance,
  VideoCommunication,
  VideoTelephone,
  VideoConferencingDevice,
  VideoServer,
  VideoRecorder,
  Monitor,
  TouchMonitor,
  SmartTV,
  DVBGateway,
  Converter,
  SurveillanceMonitor,
  DviAmplifier,
  SmartMonitor,
  IOModule,
  BladeIOModule,
  ClusterService,
  VeritasClusterService,
  ServiceGuardClusterPackage,
  RfidReader,
  CardReader,
  PinPad,
  SmartcardReader,
  MemoryCardReader,
  IndustrialControlSystem,
  FieldBusController,
  AutomationController,
  EnvironmentMonitor,
  CommunicationController,
  MultifunctionalTerminal,
  TemperatureSensor,
  FingerprintScanner,
  TimeManagementTerminal,
  PhotovoltaicController,
  ProgrammingDevice,
  PowerSensor,
  VideoEncoder,
  AlarmDevice,
  IntrudorDetectionDevice,
  IndustrialMonitoringDevice,
  Camera,
  WebCam,
  UsbCam,
  Camcorder,
  SurveillanceCamera,
  ThermalCamera,
  UsbDongle,
  UsbToEthernetAdapter,
  UsbUmtsAdapter,
  UsbToBluetoothAdapter,
  UsbToSerialAdapter,
  Smartphone,
  SmartWatch,
  NavigationDevice,
  InputDevice,
  Keyboard,
  Mouse,
  RemoteControl,
  Microphone,
  GameController,
  Headset,
  Pen,
  Tester,
  MediaRenderer,
  SmartSpeaker,
  SmartTVReceiver,
  AudioReceiver,
  InternetRadio,
  CloudService,
  CloudStorageService,
  CloudDatabaseService,
  MedicalDevice,
  DockingStation,
  HomeAutomationSystem,
  HomeAutomationController,
  HomeLightingController,
  HomeEnvironmentMonitor,
  HomeEnvironmentController,
  WeatherStation,
  HomeAppliance,
  Dishwasher,
  Clock,
  AlarmClock,
  RadioAlarmClock,
  PowerlineAdapter,
  PowerlineAccessPoint,
  WirelessRouter,
  WirelessDslRouter,
  WirelessCableRouter,
  WirelessFiberToTheHomeRouter
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DirectoryDiscoveryMode
"""The directory discovery mode"""
enum DirectoryDiscoveryMode {
  Disabled,
  None,
  Subtree,
  NodeOnly,
  SubtreeAlive,
  NodeOnlyAlive
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DirectoryType
"""The directory item type."""
enum DirectoryType {
  Container,
  OrganizationalUnit,
  DNSDomain
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DiscoveredUserRole
enum DiscoveredUserRole {
  LoggedOnUser,
  User,
  LastLoggedOnUser,
  ProcessUser,
  CloudUser
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DiscoveredUserStatus
enum DiscoveredUserStatus {
  Ok,
  LockedOut,
  Disabled
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DiscoveredUserType
enum DiscoveredUserType {
  InteractiveLogon,
  TerminalServices,
  TerminalServicesICA,
  TerminalServicesRDP,
  Daemon,
  Service,
  Batch,
  Ssh,
  Telnet,
  Cloud
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DiscoveryCategory
enum DiscoveryCategory {
  GeneralInfo,
  MemoryModule,
  Processor,
  PhysicalDisk,
  OperatingSystem,
  Application,
  Patch,
  Service,
  LogicalDisk,
  DiskPartition,
  ExecutableFile,
  VideoController,
  MappedPrinter,
  TpmModule,
  SystemBoard,
  SoundCard,
  Firmware,
  Driver
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DiskPartitionType
"""The disk parition type"""
enum DiskPartitionType {
  Other,
  GPT,
  MBR,
  IFS,
  SWAP
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DiskStatus
"""The physical disk represents a disk attached to a disk slot."""
enum DiskStatus {
  Active,
  HotSpare,
  Unassigned,
  Failed,
  Spare,
  Unknown,
  Inactive,
  Altsig,
  TooSmall,
  HistoryOfFailures,
  UnsupportedVersion,
  Degraded,
  Creating,
  Deleted,
  Deleting,
  Initialized,
  Damaged,
  Copying,
  Recovering,
  Unformatted
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.DuplexMode
"""The network interface duplex mode."""
enum DuplexMode {
  Unknown,
  AutoNegotiation,
  HalfDuplex,
  FullDuplex
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.InterfaceStatus
"""The network interface status."""
enum InterfaceStatus {
  Up,
  Down,
  Testing,
  Unknown,
  Dormant,
  NotPresent,
  LowerLayerDown,
  NonOperational,
  Unreachable,
  Disconnected,
  Connecting,
  Connected,
  Operational,
  Initialize,
  Backup,
  Bypassed,
  Diagnostics,
  Failure
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.InterfaceType
"""The network interface type."""
enum InterfaceType {
  unknown,
  other,
  regular1822,
  hdh1822,
  ddnX25,
  rfc877x25,
  ethernetCsmacd,
  iso88023Csmacd,
  iso88024TokenBus,
  iso88025TokenRing,
  iso88026Man,
  starLan,
  proteon10Mbit,
  proteon80Mbit,
  hyperchannel,
  fddi,
  lapb,
  sdlc,
  ds1,
  e1,
  basicISDN,
  primaryISDN,
  propPointToPointSerial,
  ppp,
  softwareLoopback,
  eon,
  ethernet3Mbit,
  nsip,
  slip,
  ultra,
  ds3,
  sip,
  frameRelay,
  rs232,
  para,
  arcnet,
  arcnetPlus,
  atm,
  miox25,
  sonet,
  x25ple,
  iso88022llc,
  localTalk,
  smdsDxi,
  frameRelayService,
  v35,
  hssi,
  hippi,
  modem,
  aal5,
  sonetPath,
  sonetVT,
  smdsIcip,
  propVirtual,
  propMultiplexor,
  ieee80212,
  fibreChannel,
  hippiInterface,
  frameRelayInterconnect,
  aflane8023,
  aflane8025,
  cctEmul,
  fastEther,
  isdn,
  v11,
  v36,
  g703at64k,
  g703at2mb,
  qllc,
  fastEtherFX,
  channel,
  ieee80211,
  ibm370parChan,
  escon,
  dlsw,
  isdns,
  isdnu,
  lapd,
  ipSwitch,
  rsrb,
  atmLogical,
  ds0,
  ds0Bundle,
  bsc,
  async,
  cnr,
  iso88025Dtr,
  eplrs,
  arap,
  propCnls,
  hostPad,
  termPad,
  frameRelayMPI,
  x213,
  adsl,
  radsl,
  sdsl,
  vdsl,
  iso88025CRFPInt,
  myrinet,
  voiceEM,
  voiceFXO,
  voiceFXS,
  voiceEncap,
  voiceOverIp,
  atmDxi,
  atmFuni,
  atmIma,
  pppMultilinkBundle,
  ipOverCdlc,
  ipOverClaw,
  stackToStack,
  virtualIpAddress,
  mpc,
  ipOverAtm,
  iso88025Fiber,
  tdlc,
  gigabitEthernet,
  hdlc,
  lapf,
  v37,
  x25mlp,
  x25huntGroup,
  trasnpHdlc,
  interleave,
  fast,
  ip,
  docsCableMaclayer,
  docsCableDownstream,
  docsCableUpstream,
  a12MppSwitch,
  tunnel,
  coffee,
  ces,
  atmSubInterface,
  l2vlan,
  l3ipvlan,
  l3ipxvlan,
  digitalPowerline,
  mediaMailOverIp,
  dtm,
  dcn,
  ipForward,
  msdsl,
  ieee1394,
  ifgsn,
  dvbRccMacLayer,
  dvbRccDownstream,
  dvbRccUpstream,
  atmVirtual,
  mplsTunnel,
  srp,
  voiceOverAtm,
  voiceOverFrameRelay,
  idsl,
  compositeLink,
  ss7SigLink,
  propWirelessP2P,
  frForward,
  rfc1483,
  usb,
  ieee8023adLag,
  bgppolicyaccounting,
  frf16MfrBundle,
  h323Gatekeeper,
  h323Proxy,
  mpls,
  mfSigLink,
  hdsl2,
  shdsl,
  ds1FDL,
  pos,
  dvbAsiIn,
  dvbAsiOut,
  plc,
  nfas,
  tr008,
  gr303RDT,
  gr303IDT,
  isup,
  propDocsWirelessMaclayer,
  propDocsWirelessDownstream,
  propDocsWirelessUpstream,
  hiperlan2,
  propBWAp2Mp,
  sonetOverheadChannel,
  digitalWrapperOverheadChannel,
  aal2,
  radioMAC,
  atmRadio,
  imt,
  mvl,
  reachDSL,
  frDlciEndPt,
  atmVciEndPt,
  opticalChannel,
  opticalTransport,
  propAtm,
  voiceOverCable,
  infiniband,
  teLink,
  q2931,
  virtualTg,
  sipTg,
  sipSig,
  docsCableUpstreamChannel,
  econet,
  pon155,
  pon622,
  bridge,
  linegroup,
  voiceEMFGD,
  voiceFGDEANA,
  voiceDID,
  mpegTransport,
  sixToFour,
  gtp,
  pdnEtherLoop1,
  pdnEtherLoop2,
  opticalChannelGroup,
  homepna,
  gfp,
  ciscoISLvlan,
  actelisMetaLOOP,
  fcipLink,
  rpr,
  qam,
  lmp,
  cblVectaStar,
  docsCableMCmtsDownstream,
  adsl2,
  macSecControlledIF,
  macSecUncontrolledIF,
  aviciOpticalEther,
  atmbond,
  voiceFGDOS,
  mocaVersion1,
  ieee80216WMAN,
  adsl2plus,
  dvbRcsMacLayer,
  dvbTdm,
  dvbRcsTdma,
  vrrpVirtualInterface,
  zoneVirtualInterface,
  briPort,
  dsPort,
  potPort
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.LicenseType
enum LicenseType {
  Evaluation,
  Standalone,
  Network,
  MultiSeatStandalone,
  Retail,
  MAK,
  KMS,
  Grace,
  Subscription,
  OEM,
  Volume,
  OpenSource,
  PublicDomain,
  KMS_B,
  KMS_C,
  MAK_B,
  OEM_SLP,
  OEM_NSLP,
  Licensed,
  UNWARRANTED,
  NOT_REGISTERED,
  DEVELOPER,
  RESTRICTED,
  TRIAL,
  CPU_OPTION,
  UNLICENSED,
  AUTHORIZED,
  AUTHORIZED_SINGLE_INSTALL,
  TERABYTE,
  USER,
  MANAGED,
  SERVER,
  FIXED,
  MSSQL_ENTERPRISE,
  MSSQL_STANDARD,
  MSSQL_WEB,
  MSSQL_DEVELOPER,
  MSSQL_EXPRESS,
  PER_USER,
  PER_DEVICE
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.LinkLayerNeighborProtocol
"""The protocol used to create a topology entry"""
enum LinkLayerNeighborProtocol {
  Lldp,
  Cdp,
  PortForwardingTable,
  VirtualizationInformation,
  PortForwardingTopology,
  Stp,
  WlanBssid,
  VirtualSwitchConnection,
  FibreChannelConnection
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.MemoryType
"""The memory module type"""
enum MemoryType {
  RAM,
  ROM
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.ProcessorStatus
enum ProcessorStatus {
  Enabled,
  DisabledByUserViaBIOS,
  DisabledByBiosPostError,
  Idle
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.ProductEdition
"""The product edition (should be professional or starter). The other ones are deprecated. """
enum ProductEdition {
  small,
  medium,
  enterprise,
  essential,
  professional,
  starter
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.Severity
"""A generic severity"""
enum Severity {
  Success,
  Info,
  Warning,
  Error
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.SoftwareInstanceType
"""The software instance type"""
enum SoftwareInstanceType {
  Database,
  WebServer,
  ApplicationServer,
  JEEApplication,
  JEEWebApplication,
  JBossServiceArchive,
  JAR,
  DatabaseComponent,
  DatabaseAnalysis,
  DatabaseReporting,
  DatabaseIntegrationServices,
  MasterDataServices,
  DataQualityServer
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.SoftwareLicenseStatus
enum SoftwareLicenseStatus {
  Unlicensed,
  Licensed,
  OOB_Grace,
  OOT_Grace,
  NonGenuinceGrace,
  Notification,
  Serialized,
  GracePeriod
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.SortOrder
"""The sort order within reports"""
enum SortOrder {
  ASCENDING,
  DESCENDING,
  UNSORTED
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.accounts.AccountType
"""The account's type"""
enum AccountType {
  User,
  Administrative,
  Discovered,
  Undefined,
  VmwareAPI,
  Http,
  DiscoveredCloud,
  Laps
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.aces.ACEAccessMask
"""The bit mask for different access levels"""
enum ACEAccessMask {
  FILE_READ_DATA,
  FILE_WRITE_DATA,
  FILE_APPEND_DATA,
  FILE_READ_EA,
  FILE_WRITE_EA,
  FILE_EXECUTE,
  FILE_DELETE_CHILD,
  FILE_READ_ATTRIBUTES,
  FILE_WRITE_ATTRIBUTES,
  DELETE,
  READ_CONTROL,
  WRITE_DAC,
  WRITE_OWNER,
  SYNCHRONIZE,
  FullControl,
  Modify,
  Read
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.aces.ACEFlags
"""The inheritance mask for Windows access permissions"""
enum ACEFlags {
  OBJECT_INHERIT_ACE,
  CONTAINER_INHERIT_ACE,
  NO_PROPAGATE_INHERIT_ACE,
  INHERIT_ONLY_ACE,
  INHERITED_ACE,
  SUCCESSFUL_ACCESS_ACE_FLAG,
  FAILED_ACCESS_ACE_FLAG
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.aces.ACEType
"""The access control entry type"""
enum ACEType {
  AccessAllow,
  AccessDenied,
  Audit
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.aces.SecurityDescriptorControlFlags
"""Windows security descriptor flags"""
enum SecurityDescriptorControlFlags {
  SE_OWNER_DEFAULTED,
  SE_GROUP_DEFAULTED,
  SE_DACL_PRESENT,
  SE_DACL_DEFAULTED,
  SE_SACL_PRESENT,
  SE_SACL_DEFAULTED,
  SE_DACL_AUTO_INHERIT_REQ,
  SE_SACL_AUTO_INHERIT_REQ,
  SE_DACL_AUTO_INHERITED,
  SE_SACL_AUTO_INHERITED,
  SE_DACL_PROTECTED,
  SE_SACL_PROTECTED,
  SE_SELF_RELATIVE
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.application.SoftwareInstanceState
"""The software instance state"""
enum SoftwareInstanceState {
  Stopped,
  Running,
  Disabled,
  Pausing,
  Paused,
  Standby
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.certificates.PublicKeyEncryptionType
"""The certificate type"""
enum PublicKeyEncryptionType {
  RSA,
  MD2WithRSA,
  MD4WithRSA,
  MD5WithRSA,
  SHA1WithRSA,
  RSAOAEP,
  RSAESOAEP,
  RSAMGF1,
  RSASZOID,
  RRSASSA_PSS,
  RSA_SHA256,
  RSA_SHA384,
  RSA_SHA512,
  RSA_SHA224,
  X9,
  SHA1ECDSA,
  SHA256ECDSA,
  SHA384ECDSA,
  SHA512ECDSA
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.connection.PortConnectionType
"""The port type."""
enum PortConnectionType {
  Tcp,
  Udp,
  Sctp
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.connection.TcpConnectionState
"""The TCP connection state."""
enum TcpConnectionState {
  closed,
  listen,
  synSent,
  synReceived,
  established,
  finWait1,
  finWait2,
  closeWait,
  lastAck,
  closing,
  timeWait,
  deleteTCB,
  bound,
  idle,
  deleteTcb,
  unknown
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.discovery.DiscoveryProtocol
"""The discovery protocols"""
enum DiscoveryProtocol {
  SNMPv1,
  SNMPv2,
  SNMPv3,
  WMI,
  Telnet,
  SSH,
  TelnetBannerDetection,
  SMBAnonymous,
  SMB,
  HTTP,
  WBEM,
  RemoteLogin,
  RemoteLoginAdmin,
  NetBIOSAnonymous,
  VMWareVIM,
  DNS,
  HTTPS,
  NetAppOntapAPI,
  S7,
  CDP,
  LLDP,
  RemoteRegistry,
  SNMP,
  UPNP,
  MDNS
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.discovery.DiscoveryProtocolStatusEnum
"""The protocol status enumeration"""
enum DiscoveryProtocolStatusEnum {
  DisabledOnDevice,
  NoPassword,
  Disabled,
  NotTested,
  Success,
  AccessDenied,
  RpcAccessDenied,
  WbemAccessDenied,
  WbemInvalidNamespace,
  WbemInvalidParameter,
  WbemOutOfMemory,
  WbemTransportFailure,
  WbemBadQuery,
  CannotConnect,
  Timeout,
  ProtocolNotSupported,
  UnknownTelnetBanner,
  COMError,
  Failure,
  InvalidNamespace,
  TransportFailure,
  OutOfMemory,
  CimOperationNotSupported,
  CimInvalidArgument,
  CimInvalidClass,
  CimInvalidNamespace,
  CimInvalidQuery,
  CimPropertyNoSuchProperty,
  CimQueryLanguageNotSupported,
  PortUnreachable,
  DeviceUnavailable,
  DeviceNotInDatabase,
  NoData,
  CannotCreateXMLParser,
  UnsupportedCharacterSet,
  XmlParseError,
  IOFailure,
  CannotResolveHostname,
  CorruptData,
  CannotCreateTempSessionDir,
  CannotStartShell,
  NotImplemented,
  UUEncodeMissing,
  FileNotFound,
  UUDecodeMissing,
  RpcServerUnavailable,
  VMwareComNotInstalled,
  SnmpV3UnsupportedSecurityLevel,
  SnmpV3NotInTimeWindows,
  SnmpV3UnknownUserNames,
  SnmpV3UnknownEngineId,
  SnmpV3DecryptionError,
  IPv6NotSupported,
  WmiQueriesFailed,
  LogonFailure,
  NotLicensed,
  UnameFailed,
  BadNetworkPath,
  BadNetName,
  NetNameDeleted,
  ServerServiceNotStarted,
  WorkstationServiceNotStarted,
  ServiceNotStarted,
  ClassNotRegistered,
  TrustedRelationshipFailure,
  ServiceRequestTimeout,
  AccountDisabled,
  AccountLockedOut,
  PasswordMustChange,
  ServiceDisabled,
  SessionCredentialConflict,
  NetLogonServiceNotStarted,
  NoLogonServers,
  ConnectionLost,
  InvalidUrl,
  ParsingFailure,
  OnlyCLIInterfaceSupported,
  RootAccessRequired,
  DeviceNotFound,
  UnsupportedDevice,
  PasswordMissing,
  InvalidPassphrase,
  CannotGetStreams,
  ConnectionRefused,
  CannotParsePrivateKey,
  HostnameNotFound,
  Disconnected,
  AuthenticationCanceled,
  FurtherAuthenticationRequired,
  SftpChannelOpenError,
  PermissionDenied,
  TransferCanceled,
  HttpRequestError,
  HttpProxyAuthenticationError,
  BadData,
  CannotRequestTerminal,
  CaptureRequired,
  CouldNotConnectToAnyWorker,
  AuthenticationNotSupported,
  PasswordChangeInProgress,
  NotFound,
  OnlyBasicCyberarkAccess,
  BadAccountDefinition,
  PasswordManagerError,
  ItemAlreadyInQueue,
  NotAddedToQueue,
  ExcludedByFilter,
  DoNotUserForIdentification,
  SameUser,
  ReconnectFailed
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.discovery.queue.DiscoveryProcessStatus
"""The application status status"""
enum DiscoveryProcessStatus {
  Idle,
  Running,
  Paused,
  Disabled,
  Pausing,
  Stopping,
  Starting,
  Down
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.discovery.queue.DiscoveryQueueItemStatus
"""The discovery queue item status. A queue item is blocked when a blackout perdiod blocks the scan for the specified item."""
enum DiscoveryQueueItemStatus {
  Pending,
  Processing,
  Processed,
  InCache,
  Blocked
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.discovery.queue.DiscoveryQueuePriority
enum DiscoveryQueuePriority {
  Lowest,
  AboveLowest,
  Normal,
  AboveNormal,
  Highest
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.discovery.queue.DiscoveryQueueSource
"""The source for the discovery queue item (eigher manually added or triggered by a discovery job)"""
enum DiscoveryQueueSource {
  DiscoveryCycle,
  ManuallyAdded
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.discovery.queue.DiscoveryQueueStatus
"""The discovery queue status."""
enum DiscoveryQueueStatus {
  Idle,
  Busy,
  Suspended,
  Stalled
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.discovery.status.DiscoveryStatusArea
"""An enumeration for each discovery status area"""
enum DiscoveryStatusArea {
  Nothing,
  Devices,
  Ping,
  NetworkNeighborhood,
  Directory,
  TopologyJobs,
  DeviceHistory,
  DiscoveryJobs,
  DataQuality,
  Database,
  MeasurementStatus,
  CloudStatus,
  All
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.events.EventSeverity
enum EventSeverity {
  Info,
  Major,
  Critical
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.events.EventType
"""The event type"""
enum EventType {
  DiscoveryStarted,
  DiscoveryCompleted,
  DiscoveryStopped,
  DiscoveryPaused,
  DiscoveryResumed,
  BackupStarted,
  BackupFinished,
  BackupFailed,
  CompactStarted,
  CompactFinished,
  CompactTableFailed,
  DeviceHistoryStarted,
  DeviceHistoryFinished,
  ReportExportFailed,
  DeviceDiscoveryFailed,
  DeviceNotWrittenToDatabase,
  DeviceFilterFailed,
  ReportExportStarted,
  MigrationEvent,
  DrsMigrationEvent,
  LiveMigrationEvent,
  OfflineMigrationEvent,
  RelocatedEvent,
  ShiExportEvent,
  MeasurementInstrumentationStarted,
  MeasurementInstrumentationFinished,
  MeasurementDataTransferStarted,
  MeasurementDataTransferFinished,
  MeasurementDataImportStarted,
  MeasurementDataImportFinished
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.grouping.DeviceGroupType
"""The device group type"""
enum DeviceGroupType {
  Simple,
  Network,
  Domain,
  Root,
  Directory
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.maps.dependencymaps.PortConnectionDirection
"""The connection direction."""
enum PortConnectionDirection {
  SourceInitiated,
  DestinationInitiated,
  Unknown
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.reports.ReportOwner
"""The report owner"""
enum ReportOwner {
  User,
  UserGroup,
  Global
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.scheduling.ScheduleType
"""The discovery job schedule type."""
enum ScheduleType {
  Daily,
  Weekly,
  Monthly,
  IntervalInSeconds,
  Once,
  NotScheduled
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.service.ServiceFailureAction
enum ServiceFailureAction {
  None,
  Restart,
  Reboot,
  RunCommand,
  NotifyUser
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.service.ServiceStartupMode
enum ServiceStartupMode {
  Automatic,
  Manual,
  Disabled,
  Undefined,
  Boot,
  System
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.service.ServiceStatus
enum ServiceStatus {
  Running,
  StartPending,
  Stopped,
  StopPending,
  Paused,
  PausePending,
  ContinuePending,
  Undefined,
  Degraded,
  Disabled,
  Maintenance,
  Uninitialized,
  Static
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.storage.BusType
enum BusType {
  Unknown,
  SCSI,
  ATAPI,
  ATA,
  IEEE1394,
  SSA,
  FibreChannel,
  USB,
  RAID,
  ISCSI,
  SAS,
  SATA,
  SD,
  MMC,
  FileBackedVirtual,
  StorageSpaces,
  NVMe
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.storage.DiskMediaType
enum DiskMediaType {
  Unknown,
  HDD,
  SSD,
  SCM
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.supportentitlement.SupportEntitlementState
enum SupportEntitlementState {
  Valid,
  ExpiresSoon,
  Expired
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.tasks.TaskStatus
"""A task status"""
enum TaskStatus {
  Stopped,
  Running,
  Paused,
  Stopping,
  Starting,
  Disabled,
  Error
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.users.InventoryUserRight
"""A user right assigned to a user"""
enum InventoryUserRight {
  ControlDiscovery,
  ChangeDiscoverySettings,
  ViewData,
  ManageUsers,
  ManageDevices,
  Admin,
  ManageMaps,
  CreateRemoveArchives,
  ManageInventoryServers,
  ManageCustomReports,
  ManageCustomAttributes,
  EditCustomAttributes,
  ManageCustomScripts,
  ManageDocuments,
  ViewDocuments,
  ManageHistory,
  BrowseWbemData,
  ManageNetworkLocations,
  DiscoverSingleDevice,
  CreateSupportZIP,
  ManageMailAccounts,
  ManageScheduledMailReportJobs,
  ManageScheduledReportExportJobs,
  ScheduleReports,
  ManageShiUploadJobs,
  ManageLogging,
  PollMeasurements,
  ChangeMeasurementConfiguration,
  DeleteMeasurementData,
  ManageApplications,
  ImportDevices,
  ManageIntegrations
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.users.UserProfileStatus
"""A user profile status"""
enum UserProfileStatus {
  Undefined,
  Temporary,
  Roaming,
  Mandatory,
  Corrupted
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.virtualization.DatacenterType
"""The virtual datacenter type"""
enum DatacenterType {
  VMware
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.windows.disk.DiskEncryptionAlgorithm
"""The logical disk encryption algorithm."""
enum DiskEncryptionAlgorithm {
  NONE,
  AES_128_WITH_DIFFUSER,
  AES_256_WITH_DIFFUSER,
  AES_128,
  AES_256,
  HARDWARE_ENCRYPTION,
  XTS_AES_128,
  XTS_AES_256
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.windows.disk.DiskEncryptionMethod
"""Defines how a logical drive is encrypted."""
enum DiskEncryptionMethod {
  None,
  Bitlocker,
  FileVault
}


# Java enumeration mapping for com.jdisc.inventory.common.enums.windows.share.NetworkShareType
"""The network shared resource type"""
enum NetworkShareType {
  DiskDrive,
  PrintQueue,
  Device,
  IPC,
  DiskDriveAdmin,
  PrintQueueAdmin,
  DeviceAdmin,
  IPCAdmin
}


# Java enumeration mapping for com.jdisc.inventory.common.logging.LogLevel
"""The log level"""
enum LogLevel {
  Error,
  Warning,
  Info,
  Trace,
  Debug
}


# Java enumeration mapping for com.jdisc.inventory.common.reporting.base.BuiltInReport
"""The constants for the built in reports"""
enum BuiltInReport {
  IP4_NETWORK_REPORT_ID,
  IP6_NETWORK_REPORT_ID,
  DEFAULT_GATEWAYS_REPORT_ID,
  DNS_SERVER_REPORT_ID,
  MISCONFIGURED_SUBNET_MASK_REPORT_ID,
  DHCP_SERVER_REPORT_ID,
  DIRECTORY_REPORT_ID,
  DIRECTORY_USER_REPORT_ID,
  NETWORK_NEIGHBORHOOD_REPORT_ID,
  DEVICE_REPORT_ID,
  DEVICE_HOSTNAME_REPORT_ID,
  DIRECTORY_COMPUTERACCOUNT_REPORT_ID,
  DEVICE_TIER_REPORT_ID,
  DEVICE_SHARE_REPORT_ID,
  DEVICE_GLOBAL_SHARE_REPORT_ID,
  DEVICE_MODEL_REPORT_ID,
  DEVICE_OSVERSION_REPORT_ID,
  DEVICE_OSVERSION_PATCH_REPORT_ID,
  DEVICE_OSFAMILY_REPORT_ID,
  DEVICE_TYPE_REPORT_ID,
  DUPLICATE_DEVICES_REPORT_ID,
  DEVICE_MANAGED_VIRTUALIZATION_SERVERS_REPORT_ID,
  DEVICE_MANAGED_VIRTUAL_INSTANCES_REPORT_ID,
  DEVICE_VM_MOTION_EVENT_REPORT_ID,
  DEVICE_MANAGED_DATACENTERS_REPORT_ID,
  RANGES_REPORT_ID,
  DEVICES_ROLES_REPORT_ID,
  DEVICE_BY_GROUP_REPORT_ID,
  DEVICE_LOAD_BALANCER_CONFIGURATION_ID,
  DEVICE_DELETION_LOG_REPORT_ID,
  DEVICE_VIRTUAL_SERVER_AND_INSTANCE_REPORT_ID,
  DEVICE_VIRTUAL_SERVER_REPORT_ID,
  DEVICE_VIRTUAL_DATACENTERS_REPORT_ID,
  DEVICE_VIRTUAL_INSTANCES_REPORT_ID,
  VIRTUAL_MANAGEMENT_REPORT_ID,
  DEVICE_MANAGED_DISTRIBUTED_SWITCHES_REPORT_ID,
  VIRTUALIZATION_EXPLORER_REPORT_ID,
  NETWORK_PROPERTIES_ID,
  ISCSI_IQN_REPORT_DESCRIPTION_ID,
  DEVICE_MANUFACTURER_REPORT_ID,
  DEVICE_DETAILS_ID,
  GENERAL_DEVICE_DATA_ID,
  DEVICE_SNMP_AGENT_DATA_ID,
  DEVICE_ANTIVIRUS_ID,
  DEVICE_IP4INTERFACE_ID,
  DEVICE_IPINTERFACE_CONFIG_ID,
  DEVICE_IP4INTERFACE_VLAN_ID,
  DEVICE_VLAN_REPORT_ID,
  DEVICE_DISCOVERY_LOG_ID,
  DEVICE_SYSTEMBOARD_ID,
  DEVICE_SOUNDCARD_ID,
  DEVICE_PROCESSOR_ID,
  DEVICE_MEMORY_MODULE_ID,
  DEVICE_PHYSICAL_DISK_ID,
  DEVICE_PHYSICAL_DISK_WITH_SLOT_ID,
  DEVICE_DISK_PARTITION_ID,
  DEVICE_ATTACHED_DISK_ARRAY_REPORT_ID,
  DEVICE_OPERATING_SYSTEM_ID,
  DEVICE_FIRMWARE_REPORT_ID,
  DEVICE_APPLICATION_REPORT_ID,
  DEVICE_EXECUTABLE_FILE_REPORT_ID,
  DEVICE_SERVICE_REPORT_ID,
  DEVICE_PATCH_REPORT_ID,
  DEVICE_PENDING_INSTALLATIONS_REPORT_ID,
  DEVICE_PROTOCOL_ID,
  DEVICE_DISCOVERY_TRAFFIC_ID,
  DEVICE_DETAILS_PARSING_ISSUES_REPORT,
  DEVICE_ROLES_REPORT_ID,
  DEVICE_GROUPS_REPORT_ID,
  ATTACHED_DEVICE_REPORT_ID,
  DEVICE_IP4NETWORK_REPORT_ID,
  DEVICE_IP6NETWORK_REPORT_ID,
  DEVICE_LOGICAL_DISK_ID,
  DEVICE_VIDEO_CONTROLLER_ID,
  DEVICE_LOGGED_ON_USER_REPORT_ID,
  DEVICE_PRINTER_INK_REPORT_ID,
  DEVICE_CLOUD_USER_REPORT_ID,
  DEVICE_LOCAL_USER_REPORT_ID,
  DEVICE_SECURITY_LOCAL_USER_REPORT_ID,
  DEVICE_LOCAL_USER_GROUP_REPORT_ID,
  DEVICE_LAST_LOGGED_ON_USER_ID,
  DEVICE_DRIVER_REPORT_ID,
  DEVICE_PROCESS_REPORT_ID,
  DEVICE_MODULES_REPORT_ID,
  DEVICE_CLUSTER_REPORT_ID,
  DEVICE_SHARED_RESOURCES_REPORT_ID,
  DEVICE_TPM_MODULE_REPORT_ID,
  DEVICE_WINDOWS_FEATURES_REPORT_ID,
  DEVICE_MAPPED_PRINTERS_ID,
  DEVICE_CERTIFICATES_REPORT_ID,
  DEVICE_SIMCARD_REPORT_ID,
  DEVICE_DATABASE_REPORT_ID,
  DEVICE_DATABASE_REPORT_LIST_ID,
  DEVICE_DATABASE_INSTANCE_LIST_REPORT_ID,
  DEVICE_DATABASE_SCHEMA_LIST_REPORT_ID,
  DEVICE_DATABASE_TABLE_LIST_REPORT_ID,
  DEVICE_DATABASE_FLAT_REPORT_LIST_ID,
  DEVICE_SUPPORT_ENTITLEMENT_ID,
  DEVICE_MEASUREMENT_COUNTER_TREE_REPORT_ID,
  DEVICE_DIRECTORY_INFORMATION_REPORT_ID,
  DEVICE_ISCSI_INITIATOR_REPORT_ID,
  DEVICE_ISCSI_TARGET_REPORT_ID,
  DEVICE_VMSNAPSHOT_REPORT_ID,
  DEVICE_FLAT_VMSNAPSHOT_REPORT_ID,
  DEVICE_VMWARE_SNAPSHOT_DETAILS_REPORT_ID,
  DEVICE_PROCESS_MODULES_REPORT_ID,
  DEVICE_JAVA_LICENSING_SUMMARY,
  DEVICE_JAVA_LICENSING_STATUS,
  DEVICE_JAVA_INSTALLATIONS_ID,
  DEVICE_JAVA_PROCESSES_ID,
  DEVICE_DISABLED_PROTOCOLS_ID,
  APPLICATION_ONLY_REPORT_ID,
  APPLICATION_REPORT_ID,
  PENDING_UPDATE_REPORT_ID,
  APPLICATION_PATH_REPORT_ID,
  APPLICATION_INSTANCE_REPORT_ID,
  DEVICE_APPLICATION_INSTANCE_REPORT_ID,
  PATCH_REPORT_ID,
  SERVICE_REPORT_ID,
  DRIVER_REPORT_ID,
  PROCESSES_REPORT_ID,
  CLUSTER_REPORT_ID,
  CLUSTER_SERVICES_REPORT_ID,
  EXECUTALE_FILE_REPORT_ID,
  WINDOWS_FEATURES_REPORT_ID,
  CERTIFICATES_REPORT_ID,
  SSH_IDENTIFIER_REPORT_ID,
  HTTP_IDENTIFIER_REPORT_ID,
  HTTPS_IDENTIFIER_REPORT_ID,
  JAVA_INSTALLATIONS_REPORT_ID,
  JAVA_PROCESS_REPORT_ID,
  ANTIVIRUS_INSTALLATIONS_REPORT_ID,
  ANTIVIRUS_SOFTWARE_REPORT_ID,
  SUPPORTED_DEVICES_REPORT_ID,
  SUPPORTED_DEVICES_TABLE_REPORT_ID,
  SUPPORTED_OS_TABLE_REPORT_ID,
  SUPPORTED_SW_TABLE_REPORT_ID,
  SUPPORTED_ITEMS_ISSUES_REPORT_ID,
  CUSTOM_ATTRIBUTES_ID,
  CUSTOM_ATTRIBUTES_TABLE_ID,
  DISCOVERY_PROTOCOL_STATUS_REPORT_ID,
  DEVICE_DISCOVERY_PROTOCOL_STATUS_REPORT_ID,
  DEVICE_DISCOVERY_PROTOCOL_STATUS_SUCCESS_REPORT_ID,
  DEVICE_DISCOVERY_PROTOCOL_STATUS_WARNING_REPORT_ID,
  DEVICE_DISCOVERY_PROTOCOL_STATUS_ERROR_REPORT_ID,
  UNKNOWN_SNMP_DEVICE_REPORT_ID,
  UNKNOWN_SNMP_DEVICE_SUPPORT_ZIP_REPORT_ID,
  UNKNOWN_PNP_DEVICE_REPORT_ID,
  UNKNOWN_UPNP_DEVICE_REPORT_ID,
  UNKNOWN_MDNS_DEVICE_REPORT_ID,
  SNMPWALK_REPORT_ID,
  DISCOVERY_EVENT_TYPES_REPORT_ID,
  DISCOVERY_EVENTS_REPORT_ID,
  DISCOVERY_DEVICE_QUEUE_REPORT_ID,
  DISCOVERY_PING_QUEUE_REPORT_ID,
  DISCOVERY_DOMAIN_QUEUE_REPORT_ID,
  DISCOVERY_DIRECTORY_QUEUE_REPORT_ID,
  UNKNOWN_TELNETBANNER_DEVICE_REPORT_ID,
  DEVICES_WITH_PARSING_ISSUES_REPORT_ID,
  GROUP_DEVICE_REPORT_ID,
  SHARED_RESOURCES_USER_PERMISSIONS,
  FILE_REPORT_ID,
  DEVICE_OPEN_PORTS_REPORT_ID,
  DEVICE_PORT_CONNECTIONS_REPORT_ID,
  OPEN_PORTS_REPORT_ID,
  DEVICE_CONNECTING_TO_PORTS_REPORT_ID,
  CONNECTION_STATISTIC_REPORT_ID,
  DEVICE_FIREWALL_CONFIGURATION_REPORT_ID,
  DEPENDENCY_MAP_REPORT_ID,
  TOPOLOGY_MAP_REPORT_ID,
  ROUTING_DEVICES_REPORT_ID,
  SWITCH_PORTS_REPORT_ID,
  CONNECTED_DEVICES_TO_MAC_REPORT_ID,
  VLAN_REPORT_ID,
  DEVICE_VLAN_PORT_ASSIGNMENT_REPORT_ID,
  DEVICE_MAC_FORWARDING_REPORT_ID,
  DEVICE_CDP_REPORT_ID,
  DEVICE_LLDP_REPORT_ID,
  DEVICE_DIAGNOSTICS_REPORT_ID,
  DISCOVERY_JOBS_REPORT_ID,
  DISCOVERY_JOBS_CYCLE_LOGS_REPORT_ID,
  DEVICE_TROUBLESHOOTING_REPORT_ID,
  TROUBLESHOOTING_DEVICE_DIAGNOSTICS_REPORT_ID,
  TROUBLESHOOTING_DEVICE_DIAGNOSTICS_BY_OS_FAMILY_REPORT_ID,
  USER_REPORT_ID,
  LOGGED_ON_USER_REPORT_ID,
  LAST_LOGGED_ON_USER_REPORT_ID,
  USER_ACCOUNT_REPORT_ID,
  DISCOVERY_LOGIN_CREDENTIAL_REPORT_ID,
  DISCOVERY_SNMPV1_CREDENTIAL_REPORT_ID,
  DISCOVERY_SNMPV3_CREDENTIAL_REPORT_ID,
  DISCOVERY_SSH_LOGIN_CREDENTIAL_REPORT_ID,
  DIRECTORY_MEMBER_REPORT_ID,
  GLOBAL_USER_REPORT_ID,
  GLOBAL_CLOUD_USER_REPORT_ID,
  LOGGED_ON_USER_DEVICE_REPORT_ID,
  LAST_LOGGED_ON_USER_DEVICE_REPORT_ID,
  USERS_IN_USERGROUP_REPORT_ID,
  OFFICE365_SUBSCRIBERS_FOR_SUBSCRIPTION_REPORT_ID,
  USERGROUP_FOR_USER_REPORT_ID,
  GLOBAL_USERGROUP_REPORT_ID,
  USERGROUP_USERGROUP_REPORT_ID,
  USER_GROUP_BROWSER_REPORT_ID,
  DOCUMENT_ASSIGNMENT_REPORT_ID,
  DEVICE_HISTORY_SNAPSHOTS_ID,
  DEVICE_HISTORY_REPORT_ID,
  DEVICE_HISTORY_OVERVIEW_REPORT_ID,
  TROUBLESHOOTING_OVERVIEW_ID,
  TROUBLESHOOTING_OVERVIEW_BY_OS_FAMILY_ID,
  WBEM_OBJECT_REPORT_ID,
  WLAN_REPORT_ID,
  WLAN_RECEIVING_DEVICES_REPORT_ID,
  WLAN_CONNECTED_DEVICES_REPORT_ID,
  DEVICE_WLAN_REPORT_ID,
  DEVICE_WLAN_ACCESS_POINT_REPORT_ID,
  WLAN_ACCESS_POINT_REPORT_ID,
  SCHEDULED_REPORT_EXPORT_JOB_ID,
  SCHEDULED_MAIL_REPORT_JOB_ID,
  QUALISYSTEMS_DEVICE_REPORT_ID,
  QUALISYSTEMS_DEVICE_IP4INTERFACE_VLAN_ID,
  QUALISYSTEMS_DEVICE_MODULES_REPORT_ID,
  QUALISYSTEMS_DEVICE_DELETION_LOG_REPORT_ID,
  QUALISYSTEMS_TOPOLOGY_REPORT_ID,
  EXCHANGE_SERVER_REPORT_ID,
  EXCHANGE_MAILBOX_REPORT_ID,
  MEASUREMENT_REPORT_ID,
  DEVICE_MEASUREMENT_RAW_DATA_REPORT_ID,
  DEVICE_MEASUREMENT_MIN_MAX_AVG_DATA_REPORT_ID,
  DEVICE_MEASUREMENT_EVENTS_ID,
  DEVICE_MEASUREMENT_EVENT_LOG_ID,
  MEASUREMENT_OVERVIEW_REPORT_DESCRIPTION,
  MEASUREMENT_EVENT_LOG_REPORT_DESCRIPTION,
  MEASUREMENT_CACHE_REPORT_DESCRIPTION,
  MEASUREMENT_SNAPSHOT_ID,
  DEVICE_MEASUREMENT_COUNTER_DATA_REPORT_ID,
  MEASUREMENT_TEMPLATE_REPORT_DESCRIPTION,
  MEASUREMENT_CREATE_TEMPLATE_REPORT_DESCRIPTION,
  MEASUREMENT_EDIT_TEMPLATE_REPORT_DESCRIPTION,
  MEASUREMENT_DELETE_TEMPLATE_REPORT_DESCRIPTION,
  MEASUREMENT_SCHEDULER_REPORT_DESCRIPTION,
  DEVICE_SCHEDULED_TASKS_REPORT_ID,
  DEVICE_SCHEDULED_TASKS_FLAT_REPORT_LIST_ID,
  DEVICE_SCHEDULED_TASKS_TABLE_LIST_ID,
  DEVICE_SCHEDULED_TASKS_TABLE_LIST2_ID,
  DEVICE_SCHEDULED_TASKS_TRIGGER_LIST_ID,
  DEVICE_SCHEDULED_TASKS_ACTION_LIST_ID,
  SUBSCRIPTIONS_REPORT_ID,
  CLOUD_USER_WITH_AD_USER_REPORT_ID,
  OFFICE365_SUBSCRIPTION_REPORT_ID,
  OFFICE365_FOR_TENANT_SUBSCRIPTION_REPORT_ID,
  DEVICE_SUBSCRIPTION_REPORT_ID,
  CLOUD_USER_NO_CLOUDTYPE_WITH_AD_USER_REPORT_ID,
  GLOBAL_CLOUD_USER_NO_CLOUDTYPE_REPORT_ID,
  OFFICE365_USER_SUBSCRIPTIONS_REPORT_ID,
  CLOUD_EXPLORER_TREE_REPORT_ID,
  OFFICE365_USER_SUBSCRIPTIONS_FOR_TENANT_REPORT_ID,
  AZURE_VIRTUAL_MACHINE_REPORT_ID,
  HETZNER_VIRTUAL_MACHINE_REPORT_ID,
  AZURE_INTUNE_DEVICES_REPORT_ID,
  AWS_VIRTUAL_MACHINE_REPORT_ID,
  AWS_UNASSIGNED_VIRTUAL_MACHINE_REPORT_ID,
  GOOGLE_CLOUD_VIRTUAL_MACHINE_BY_TENANT_REPORT_ID,
  GOOGLE_CLOUD_VIRTUAL_MACHINE_BY_TENANT_AND_PROJECT_REPORT_ID,
  GOOGLE_CLOUD_VIRTUAL_MACHINE_BY_TENANT_AND_PROJECT_AND_REGION_REPORT_ID,
  GOOGLE_CLOUD_VIRTUAL_MACHINE_BY_TENANT_AND_PROJECT_AND_REGION_AND_ZONE_REPORT_ID,
  SHI_VMWARE_DESCRIPTION,
  DEPENDENCIES_LICENSE_REPORT_ID,
  CUSTOM_REPORT
}


# Java enumeration mapping for com.jdisc.inventory.common.reporting.base.FieldNature
"""A field's nature"""
enum FieldNature {
  NormalField,
  IdField,
  InvisibleIdField,
  KeyField,
  AliasField
}


# Java enumeration mapping for com.jdisc.inventory.common.reporting.troubleshooting.discovery.DiscoveryJobLogsScope
"""Enumeration for the scope of discovery log"""
enum DiscoveryJobLogsScope {
  SCOPE_CONFIG,
  SCOPE_IP4PING,
  SCOPE_DIRECTORY,
  SCOPE_DIRECTORY_SYNC,
  SCOPE_NETWORK_SYNC,
  SCOPE_NETWORK_NEIGHBORHOOD,
  SCOPE_CLOUD
}


# Java enumeration mapping for com.jdisc.inventory.common.rmiinterface.admin.license.LicenseStatus
"""The license status"""
enum LicenseStatus {
  VALID,
  INVALID,
  INVALID_SIGNATURE,
  MACHINE_DATA_MISMATCH,
  INVALID_DATE,
  BEFORE_START_DATE,
  PAST_END_DATE,
  PRODUCT_NAME_MISMATCH,
  PRODUCT_VERSION_MISMATCH
}


# Java enumeration mapping for com.jdisc.inventory.common.server.plugin.ApplicationStartMode
"""Application start mode"""
enum ApplicationStartMode {
  Started,
  StartedReporting,
  Stopped
}


# Java enumeration mapping for com.jdisc.inventory.webui.datastructures.preferences.tree.TreeMode
"""The tree mode."""
enum TreeMode {
  FLAT,
  NESTED
}


# Java enumeration mapping for com.jdisc.inventory.webui.datastructures.preferences.uiprefs.DateFormat
"""The date format (medium=Jun 15, 2015, 9:03:01 AM, short=6/15/15, 9:03 AM.)"""
enum DateFormat {
  SHORT,
  MEDIUM
}


# Java enumeration mapping for com.jdisc.inventory.webui.datastructures.preferences.uiprefs.UIDensity
"""The table density in the web user interface."""
enum UIDensity {
  Compact,
  Cozy,
  Comfortable
}


# Java enumeration mapping for com.jdisc.inventory.webui.datastructures.preferences.uiprefs.UITheme
"""The web user interface theme name."""
enum UITheme {
  DARK,
  LIGHT
}


# Java enumeration mapping for com.jdisc.inventory.webui.datastructures.preferences.uiprefs.UserPreferencesNames
"""The keys for the user preferences."""
enum UserPreferencesNames {
  UIPreferences
}


# Java enumeration mapping for com.jdisc.measurement.common.enums.MeasureAggregateType
"""The measure aggregate type."""
enum MeasureAggregateType {
  NONE,
  AUDIT_TRAIL,
  ACTION_LOG,
  ATTRIBUTE,
  DEVICE_INFO,
  INSTRUMENTATION,
  POLLING,
  IMPORT,
  INTERVAL_SCHEDULED,
  CLEANUP,
  RESUME,
  PROVISION_STATUS,
  PROVISION_DUMP,
  PROVISION_INSTRUMENTATION,
  CUSTOM_TEMPLATE,
  TASK_QUALIFIER,
  UPDATE
}


# Java enumeration mapping for com.jdisc.measurement.common.enums.MeasurementJobStatus
"""The measurement job status."""
enum MeasurementJobStatus {
  UNKNOWN,
  RUNNING,
  SCHEDULED
}


# Java enumeration mapping for com.jdisc.webui.server.JwtAudienceType
"""Type of JWT to generate. API to be used for scripts, and UI for the browser client with WebSocket keep-alive feature"""
enum JwtAudienceType {
  API,
  UI,
  SECURED
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.common.Status
"""A generic status object"""
enum Status {
  Success,
  GeneralError,
  CertificateParsingError,
  PrivateKeyParsingError,
  CertificatePasswordError,
  NoMatchingCertificateFound,
  NoMatchingPrivateKeyFound,
  AmbiguousPrivateKey,
  CertificateChainError,
  WrongPassword
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.mutations.discovery.PauseDiscoveryProcessResult
"""The result of the startJob operation"""
enum PauseDiscoveryProcessResult {
  SUCCESS
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.mutations.discovery.ResumeDiscoveryProcessResult
"""The result of the startJob operation"""
enum ResumeDiscoveryProcessResult {
  SUCCESS
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.mutations.discovery.StartJobResult
"""The result of the startJob operation"""
enum StartJobResult {
  SUCCESS,
  ALREADY_RUNNING
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.mutations.discovery.StartJobsResult
"""The result of the startJobs operation"""
enum StartJobsResult {
  SUCCESS,
  ALREADY_RUNNING,
  PARTIAL_SUCCESS
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.mutations.discovery.StopJobResult
"""The result of the stopJob operation"""
enum StopJobResult {
  SUCCESS,
  ALREADY_STOPPED
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.mutations.discovery.StopJobsResult
"""The result of the stopJobs operation"""
enum StopJobsResult {
  SUCCESS,
  ALREADY_STOPPED,
  PARTIAL_SUCCESS
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.mutations.login.LoginResultStatus
"""The result when logging in"""
enum LoginResultStatus {
  SUCCESS,
  BAD_USERNAME_OR_PASSWORD,
  BAD_REFRESH_TOKEN
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.api.query.reporting.CustomReportVisibility
"""The visibility of the custom report"""
enum CustomReportVisibility {
  USER,
  USER_GROUP,
  GLOBAL
}


# Java enumeration mapping for com.jdisc.webui.server.graphql.resolver.subscription.update.UpdateTopic
"""Enumeration which defines the GRAPHQL topics on which a client can subscribe to"""
enum UpdateTopic {
  DISCOVERY_STATUS_OVERALL_PROCESS,
  DISCOVERY_STATUS_OVERALL_PROCESS_SUMMARY,
  DISCOVERY_STATUS_DEVICES,
  DISCOVERY_STATUS_DEVICES_DETAILS,
  DISCOVERY_STATUS_PING,
  DISCOVERY_STATUS_NETWORK_NEIGHTBORHOOD,
  DISCOVERY_STATUS_NETWORK_SYNC,
  DISCOVERY_STATUS_DIRECTORY,
  DISCOVERY_STATUS_DIRECTORY_SYNC,
  DISCOVERY_STATUS_TOPOLOGY_JOBS,
  DISCOVERY_STATUS_DEVICE_HISTORY,
  DISCOVERY_STATUS_DISCOVERY_JOBS,
  DISCOVERY_STATUS_MEASUREMENT,
  DISCOVERY_STATUS_CLOUD
}


# Java enumeration mapping for com.jdisc.webui.server.models.SessionState
"""The status of the backend and/or frontend session"""
enum SessionState {
  UNKNOWN,
  LIVE,
  RETRY,
  DEAD
}


# --------------- Built in Scalars ----------------------------------
scalar Date
scalar DateTime
scalar Object
scalar JSON
scalar Long

# Mapping for Java class 'com.jdisc.inventory.common.reporting.actions.ReportActionInterface'
interface ReportActionInterface {
  """Gets the icon action name"""
  actionName: String

  """Gets the report filters (if any) for open report actions..."""
  filters: [FieldFilter]

  """Gets the icon name from the swing client"""
  iconName: String

  """Gets the maximum number of selected rows in a table to be enabled"""
  maxSelectedRows: Int

  """Gets the menu label for this context menu"""
  menuLabel: String

  """Gets the minimum number of selected rows in a table to be enabled"""
  minSelectedRows: Int

  """Gets the report id for open report actions..."""
  reportId: BuiltInReport

  """Gets the required add-on for this menu item (if any)"""
  requiredAddOn: AddOnProduct

  """Returns the list of required rights"""
  requiredRights: [InventoryUserRight]

  """Gets the list of required application start modes"""
  requiredStartModes: [ApplicationStartMode]

  """Gets the icon name which should be used in the web client (if null, then map the swing client icon name)"""
  webIconName: String

  """Gets the flag whether this menu item is a separator"""
  isSeparator: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.ReportDescription'
"""The result type for different report description types"""
interface ReportDescription {
  """Gets a list of actions for this report"""
  actions: [ReportActionInterface]

  """The list of filters"""
  filters: [FieldFilter]

  """Returns the default action that gets executed when you doubleclick on a row in the table"""
  reportDefaultAction: ReportActionInterface

  """Gets the report identifier"""
  reportId: BuiltInReport

  """Gets the title for the report"""
  title: String

  """A flag whether the report supports history data"""
  hasHistory: Boolean

  """A flag whether the report is group aware or not."""
  isGroupAware: Boolean

  """A flag whether the report is splittable"""
  isSplittable: Boolean

  """A flag whether the report supports the starterGets the list of all columns"""
  supportsStarterEdition: Boolean

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.scalar.ScalarReportData'
"""A scalar key/value pair"""
interface ScalarReportData {
  """The number of versions in case the attribute has multiple versions"""
  numberOfVersions: Long

  """The field description for this key/value pair"""
  scalarField: ScalarFieldDescription

  """The value for this key/value pair"""
  value: Object

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.common.ProgressInfo'
"""This object contains information about background processes and their status/progress.
Lengthy operations can return a ProgressInfo object which holds the current state of the operation.
The client can poll with the instanceId the status of such an operation.

Once the operation has failed or finished, the result will stay on the server for a while and will then be deleted."""
interface ProgressInfo {
  """The current action being performed. Can be empty or null."""
  action: String

  """A message that describes the completion status once the task is completed or canceled."""
  completionMessage: String

  """The current value for the operation's progress. Together with the maxValue, you can calculate the percentage."""
  currentValue: Int

  """The error object. The error object type depends on the type of action."""
  errorObject: Object

  """Is the task failed?"""
  hasFailed: Boolean!

  """The instanceId identifies a specific operation. Use this instanceId to poll the current status."""
  instanceId: String

  """Is the task finished?"""
  isFinished: Boolean!

  """The maximum value for the operation's progress. A max value < 0 indicates, that the maximum value is not known for this operation."""
  maxValue: Int

  """The result if there is one."""
  resultObject: Object

  """The exception stack trace if there is a server exception."""
  stackTrace: String

  """The current sub-action being performed. Can be empty or null."""
  subAction: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.table.ReportConfig'
input ReportConfigInput {
  """The list of filters"""
  filters: [FieldFilterInput]

  """The paging configuration. When null, then it returns all data"""
  paging: PagingInput

  """The report cache id. Reports can be cached. When using the cacheId, then the server gets the cached report. Otherwise, it gets the report from the database."""
  reportCacheId: String

  """The paging configuration. When null, then it returns all data"""
  searchConfig: SearchConfigurationInput

  """The sort configuration"""
  sortConfiguration: [SortEntryInput]

}

# Mapping for Java class 'com.jdisc.common.net.ip4.IP4Address'
"""The IP4 Address"""
type IP4Address {
  """The long representation of the IP4 address"""
  addr: Long!

}

# Mapping for Java class 'com.jdisc.common.net.ip4.IP4Range'
"""The IP4 range"""
type IP4Range {
  """The IP4 first address"""
  from: IP4Address

  """The IP4 last address"""
  to: IP4Address

}

# Mapping for Java class 'com.jdisc.common.time.Duration'
"""The duration values stores the duration in milliseconds"""
type Duration {
  """The duration in milliseconds"""
  duration: Long!

}

# Mapping for Java class 'com.jdisc.common.time.ShortFormattedDuration'
"""A duration object which provides a formatter with a short toString() method in Java"""
type ShortFormattedDuration {
  """The duration in milliseconds"""
  duration: Long!

}

# Mapping for Java class 'com.jdisc.graphql.type.GraphQLNode'
type GraphQLNode {
  """Children of a tree node"""
  children: [Object]

  """Data of the tree node"""
  data: GraphQLNodeData

  """Label of the tree node"""
  label: String

}

# Mapping for Java class 'com.jdisc.graphql.type.GraphQLObject'
type GraphQLObject {
  """Name of the node"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.common.datastructures.discovery.queue.DeviceQueueItem'
"""This object represents an entry in the IP address queue."""
type DeviceQueueItem {
  """The unique database id within the device queue"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.common.datastructures.discovery.queue.DeviceQueueItem'
"""This object represents an entry in the IP address queue."""
input DeviceQueueItemInput {
  """The unique database id within the device queue"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.common.devicedata.customattr.ArrayAttribute'
"""An array of values together with the column headers"""
type ArrayAttribute {
  """the list of column headers"""
  columnHeaders: [String]

  """Gets the row count within this table"""
  rowCount: Int!

  """Returns the list of rows"""
  rows: [ArrayAttributeRow]

}

# Mapping for Java class 'com.jdisc.inventory.common.devicedata.customattr.ArrayAttribute'
"""An array of values together with the column headers"""
input ArrayAttributeInput {
  """the list of column headers"""
  columnHeaders: [String]

}

# Mapping for Java class 'com.jdisc.inventory.common.devicedata.customattr.ArrayAttributeRow'
"""a row with values"""
type ArrayAttributeRow {
  """Gets the list of values within this row"""
  values: [Object]

}

# Mapping for Java class 'com.jdisc.inventory.common.devicedata.customattr.ArrayAttributeRow'
"""a row with values"""
input ArrayAttributeRowInput {
  """Gets the list of values within this row"""
  values: [Object]

}

# Mapping for Java class 'com.jdisc.inventory.common.enums.discovery.DiscoveryProtocolStatus'
"""The discovery protocol status consisting of an enum for the status, a comError in case of COM Errors, a port, an identifier string (e.g. for SSH), and an individual message"""
type DiscoveryProtocolStatus {
  """The COM error in case of a COM error"""
  comError: Int!

  """An identifier string for protocols such as SSH or HTTP/HTTPS"""
  identifier: String

  """An individual additional message"""
  msg: String

  """The port used for this protocol (if any)"""
  port: Int

  """The status enumeration value"""
  status: DiscoveryProtocolStatusEnum

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.actions.ReportAction'
"""A report action"""
type ReportAction implements ReportActionInterface {
  """Gets the icon action name"""
  actionName: String

  """Gets the report filters (if any) for open report actions..."""
  filters: [FieldFilter]

  """Gets the icon name from the swing client"""
  iconName: String

  """Gets the maximum number of selected rows in a table to be enabled"""
  maxSelectedRows: Int

  """Gets the menu label for this context menu"""
  menuLabel: String

  """Gets the minimum number of selected rows in a table to be enabled"""
  minSelectedRows: Int

  """Gets the report id for open report actions..."""
  reportId: BuiltInReport

  """Gets the required add-on for this menu item (if any)"""
  requiredAddOn: AddOnProduct

  """Returns the list of required rights"""
  requiredRights: [InventoryUserRight]

  """Gets the list of required application start modes"""
  requiredStartModes: [ApplicationStartMode]

  """Gets the icon name which should be used in the web client (if null, then map the swing client icon name)"""
  webIconName: String

  """Gets the flag whether this menu item is a separator"""
  isSeparator: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.FieldDescription'
"""The FieldDescription describes a field within the application. The description includes an id, type"""
type FieldDescription {
  """Gets the canonical field type (FieldDescription, IdFieldDescription or KeyDescription)"""
  canonicalType: String

  """Gets the canonical field value type (e.g. Integer, Boolean, PercentValue, ...)"""
  canonicalValueType: String

  """Gets the label or column header within tables"""
  columnHeader: String

  """Gets the internal field id"""
  fieldId: String

  """The nature for a field"""
  nature: FieldNature

  """Gets the field type (FieldDescription, IdFieldDescription or KeyDescription)"""
  type: String

  """Gets the field value type (e.g. Integer, Boolean, PercentValue, ...)"""
  valueType: String

  """Gets the field default width as enumeration (which is later mapped to a style in the WEB UI)"""
  webFieldWidth: FieldWidthEnum

  """Returns whether a field value is encrypted within the database or not."""
  isEncrypted: Boolean

  """Checks whether a field is an enumeration value or not."""
  isEnumeration: Boolean

  """Checks whether a field is an id field or not."""
  isIdField: Boolean

  """Checks whether a field is a key field or not."""
  isKeyField: Boolean

  """A flag whether this field can contain line breaks"""
  isMultilineField: Boolean

  """Checks whether a field is a numeric field."""
  isNumeric: Boolean

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.FieldDescription'
"""The FieldDescription describes a field within the application. The description includes an id, type"""
input FieldDescriptionInput {
  """Gets the canonical field type (FieldDescription, IdFieldDescription or KeyDescription)"""
  canonicalType: String

  """Gets the canonical field value type (e.g. Integer, Boolean, PercentValue, ...)"""
  canonicalValueType: String

  """Gets the label or column header within tables"""
  columnHeader: String

  """Gets the internal field id"""
  fieldId: String!

  """The nature for a field"""
  nature: FieldNature

  """Gets the field type (FieldDescription, IdFieldDescription or KeyDescription)"""
  type: String

  """Gets the field value type (e.g. Integer, Boolean, PercentValue, ...)"""
  valueType: String

  """Gets the field default width as enumeration (which is later mapped to a style in the WEB UI)"""
  webFieldWidth: FieldWidthEnum

  """Returns whether a field value is encrypted within the database or not."""
  isEncrypted: Boolean

  """Checks whether a field is an enumeration value or not."""
  isEnumeration: Boolean

  """Checks whether a field is an id field or not."""
  isIdField: Boolean

  """Checks whether a field is a key field or not."""
  isKeyField: Boolean

  """A flag whether this field can contain line breaks"""
  isMultilineField: Boolean

  """Checks whether a field is a numeric field."""
  isNumeric: Boolean

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.FieldFilter'
"""A filter used to filter reports by criterias"""
type FieldFilter {
  """A display value in case the filter to display in the UI when the filterValue is just a database id or some other internal value"""
  displayValue: Object

  """The field description for this filter"""
  fieldDescription: FieldDescription

  """The filter value"""
  filterValue: Object

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.FieldFilter'
"""A filter used to filter reports by criterias"""
input FieldFilterInput {
  """A display value in case the filter to display in the UI when the filterValue is just a database id or some other internal value"""
  displayValue: Object

  """The field description for this filter"""
  fieldDescription: FieldDescriptionInput

  """The filter value"""
  filterValue: Object

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.custom.CustomReportDataField'
"""A custom report data field"""
type CustomReportDataField {
  """Whether the data field allows filters or not"""
  allowsFilter: Boolean!

  """The column header prefix of the data field"""
  columnHeaderPrefix: String

  """The data field description"""
  dbFieldDescr: FieldDescription

  """The custom report filters of the data field"""
  filters: [DataElementFilter]

  """The field name"""
  field: String

  """The description for a field within a table"""
  fieldDescription: FieldDescription

  """A flag whether this column is resizable or not"""
  isResizable: Boolean

  """A flag whether this column is sortable"""
  isSortable: Boolean

  """A flag whether this column can be sticky or not"""
  isSticky: Boolean

  """A flag whether this column is visible or not"""
  isVisible: Boolean

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.custom.CustomReportDescription'
"""A custom reports container"""
type CustomReportDescription implements ReportDescription {
  """Gets a list of actions for this report"""
  actions: [ReportActionInterface]

  """The list of filters"""
  filters: [FieldFilter]

  """Returns the default action that gets executed when you doubleclick on a row in the table"""
  reportDefaultAction: ReportActionInterface

  """Gets the report identifier"""
  reportId: BuiltInReport

  """Gets the title for the report"""
  title: String

  """A flag whether the report supports history data"""
  hasHistory: Boolean

  """A flag whether the report is group aware or not."""
  isGroupAware: Boolean

  """A flag whether the report is splittable"""
  isSplittable: Boolean

  """A flag whether the report supports the starterGets the list of all columns"""
  supportsStarterEdition: Boolean

  """The custom report active fields, if any"""
  activeFields: [CustomReportDataField]

  """The custom report can delete flag, which defines whether this user can delete the report (true), or not (false)"""
  canDelete: Boolean!

  """The custom report children reports, if any"""
  children: [CustomReportDescription]

  """The custom report column cache"""
  columnCache: [TableFieldDescription]

  """The custom report description"""
  description: String

  """The custom report field order"""
  fieldOrder: [CustomReportDataField]

  """The custom report id"""
  id: Long

  """The custom report name"""
  name: String

  """The custom report owner"""
  owner: ReportOwner

  """The custom report parent report, if any"""
  parent: CustomReportDescription

  """The custom report sql query, if any"""
  sqlQuery: String

  """The custom report owner"""
  type: CustomReportType

  """The custom report columns"""
  columns: [TableFieldDescription]

  """The default sort order"""
  defaultSortOrder: SortOrder

  """Gets the label for the plural for the items in the table"""
  plural: String

  """Gets the label for the singular for the items in the table"""
  singular: String

  """The custom report custom attributes"""
  hasCustomAttributes: Boolean!

  """When true, report is sql custom report"""
  isSqlCustomReport: Boolean!

  """The custom report xml description, if any"""
  toXml: String

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.custom.DataElementFilter'
"""A data field filter"""
type DataElementFilter {
  """A String representation of the element filters"""
  toString: String

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.scalar.ScalarFieldDescription'
"""A scalar field description"""
type ScalarFieldDescription {
  """The field description for this scalar value"""
  customAttributeId: Long

  """The field description for this scalar value"""
  fieldDescription: FieldDescription

  """A flag that indicates whether a filed is diffable or not"""
  isDiffable: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.scalar.ScalarLinkedReportData'
"""A scalar key/value pair with an action connected to the link"""
type ScalarLinkedReportData implements ScalarReportData {
  """The number of versions in case the attribute has multiple versions"""
  numberOfVersions: Long

  """The field description for this key/value pair"""
  scalarField: ScalarFieldDescription

  """The value for this key/value pair"""
  value: Object

  """Returns the action to execute for this link"""
  action: ReportAction

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.scalar.ScalarNoLinkReportData'
"""A scalar key/value pair without a link"""
type ScalarNoLinkReportData implements ScalarReportData {
  """The number of versions in case the attribute has multiple versions"""
  numberOfVersions: Long

  """The field description for this key/value pair"""
  scalarField: ScalarFieldDescription

  """The value for this key/value pair"""
  value: Object

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.scalar.ScalarReportDescription'
"""A description for a scalar report. Scalar reports provide simple key value pairs."""
type ScalarReportDescription implements ReportDescription {
  """Gets a list of actions for this report"""
  actions: [ReportActionInterface]

  """The list of filters"""
  filters: [FieldFilter]

  """Returns the default action that gets executed when you doubleclick on a row in the table"""
  reportDefaultAction: ReportActionInterface

  """Gets the report identifier"""
  reportId: BuiltInReport

  """Gets the title for the report"""
  title: String

  """A flag whether the report supports history data"""
  hasHistory: Boolean

  """A flag whether the report is group aware or not."""
  isGroupAware: Boolean

  """A flag whether the report is splittable"""
  isSplittable: Boolean

  """A flag whether the report supports the starterGets the list of all columns"""
  supportsStarterEdition: Boolean

  """A flag whether the panel with the values should be embedded in a scrollpane or not"""
  embedInScrollPane: Boolean

  """Returns the short title for the report (in some cases identical with the title)"""
  shortTitle: String

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.table.TableFieldDescription'
"""A description for a field within a table"""
type TableFieldDescription {
  """The field name"""
  field: String

  """The description for a field within a table"""
  fieldDescription: FieldDescription

  """A flag whether this column is resizable or not"""
  isResizable: Boolean

  """A flag whether this column is sortable"""
  isSortable: Boolean

  """A flag whether this column can be sticky or not"""
  isSticky: Boolean

  """A flag whether this column is visible or not"""
  isVisible: Boolean

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.table.TableReportDescription'
"""The description for a table based report"""
type TableReportDescription implements ReportDescription {
  """Gets a list of actions for this report"""
  actions: [ReportActionInterface]

  """The list of filters"""
  filters: [FieldFilter]

  """Returns the default action that gets executed when you doubleclick on a row in the table"""
  reportDefaultAction: ReportActionInterface

  """Gets the report identifier"""
  reportId: BuiltInReport

  """Gets the title for the report"""
  title: String

  """A flag whether the report supports history data"""
  hasHistory: Boolean

  """A flag whether the report is group aware or not."""
  isGroupAware: Boolean

  """A flag whether the report is splittable"""
  isSplittable: Boolean

  """A flag whether the report supports the starterGets the list of all columns"""
  supportsStarterEdition: Boolean

  """Gets the list of all columns"""
  columns: [TableFieldDescription]

  """The default sort order"""
  defaultSortOrder: SortOrder

  """Gets the label for the plural for the items in the table"""
  plural: String

  """Gets the label for the singular for the items in the table"""
  singular: String

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.base.tree.TreeReportDescription'
"""The description for a tree based report"""
type TreeReportDescription implements ReportDescription {
  """Gets a list of actions for this report"""
  actions: [ReportActionInterface]

  """The list of filters"""
  filters: [FieldFilter]

  """Returns the default action that gets executed when you doubleclick on a row in the table"""
  reportDefaultAction: ReportActionInterface

  """Gets the report identifier"""
  reportId: BuiltInReport

  """Gets the title for the report"""
  title: String

  """A flag whether the report supports history data"""
  hasHistory: Boolean

  """A flag whether the report is group aware or not."""
  isGroupAware: Boolean

  """A flag whether the report is splittable"""
  isSplittable: Boolean

  """A flag whether the report supports the starterGets the list of all columns"""
  supportsStarterEdition: Boolean

  """The default reportId to display in the main area"""
  defaultReportId: BuiltInReport

  """A flag whether multiple selected is allowed"""
  multipleSelectedAllowed: Boolean!

  """The size of the tree within the splitter."""
  widthInPercent: Int!

  """A flag whether to display the root node in the tree or not"""
  isRootVisible: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.common.reporting.device.devicedetails.DeviceDetailsReportDescription'
"""The device details report description"""
type DeviceDetailsReportDescription implements ReportDescription {
  """Gets a list of actions for this report"""
  actions: [ReportActionInterface]

  """The list of filters"""
  filters: [FieldFilter]

  """Returns the default action that gets executed when you doubleclick on a row in the table"""
  reportDefaultAction: ReportActionInterface

  """Gets the report identifier"""
  reportId: BuiltInReport

  """Gets the title for the report"""
  title: String

  """A flag whether the report supports history data"""
  hasHistory: Boolean

  """A flag whether the report is group aware or not."""
  isGroupAware: Boolean

  """A flag whether the report is splittable"""
  isSplittable: Boolean

  """A flag whether the report supports the starterGets the list of all columns"""
  supportsStarterEdition: Boolean

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.admin.license.DeviceCreditAllocation'
"""Gets the credit allocation for the different tiers"""
type DeviceCreditAllocation {
  """The credit allocation for the list of remaining SNMP devices (tier 0)"""
  baseAllocation: Int

  """The credit allocation for Windows computers and switches/routers (tier 1)"""
  tier1Allocation: Int

  """The credit allocation for Linux, MAC OS X, VMware ESX serverfs (tier 2)"""
  tier2Allocation: Int

  """The credit allocation for the HP-UX, Solaris, and AIX servers (tier 3)"""
  tier3Allocation: Int

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.admin.license.DeviceCreditCount'
"""The number of devices licensed per tier"""
type DeviceCreditCount {
  """The number of devices counted assigned to tier 0 licenses"""
  tier0Count: Long

  """The number of devices counted assigned to tier 1 licenses"""
  tier1Count: Long

  """The number of devices counted assigned to tier 2 licenses"""
  tier2Count: Long

  """The number of devices counted assigned to tier 3 licenses"""
  tier3Count: Long

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.admin.license.LicenseInfo'
"""The license information for the product"""
type LicenseInfo {
  """Gets the license expiration date. Null for perpetual licenses."""
  gqlLicenseEnd: DateTime

  """Gets the license start date. The license is not valid before that date."""
  gqlLicenseStart: DateTime

  """Gets the number of used credits."""
  calcUsedCredits: Long

  """Gets the list of license sections for the add-ons."""
  addOns: [LicenseSection]

  """Gets the credit allocation for the four tiers."""
  creditAllocation: DeviceCreditAllocation

  """Gets the current licensed device counts per tier."""
  creditCount: DeviceCreditCount

  """Gets the maximal number of licensed credits."""
  creditLimit: Long

  """Gets the maximal number of licensed devices."""
  deviceLimit: Int

  """Gets the maximal number of licensed credits."""
  edition: ProductEdition

  """Gets the list of installed add-ons."""
  installedAddOns: [AddOnProduct]

  """Gets the licensed sections (each product has its own section)"""
  licenseSections: [LicenseSection]

  """Gets the list of licensed add-ons."""
  licensedAddOns: [AddOnProduct]

  """Gets the license status."""
  status: LicenseStatus

  """Gets the number of used credits."""
  usedCredits: Long

  """Gets the list of devices used for the license (in case of device count based license)."""
  usedDevices: Int

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.admin.license.LicenseKeyValue'
"""A generic key value pair within the license"""
type LicenseKeyValue {
  """The key for the key/value pair"""
  key: String

  """The value for the key/value pair"""
  value: Object

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.admin.license.LicenseSection'
"""A license section within the license file"""
type LicenseSection {
  """Actual device values"""
  actualKeyValues: [LicenseKeyValue]

  """The license section label"""
  label: String

  """License key values"""
  licenseKeyValues: [LicenseKeyValue]

  """The license section name"""
  name: String

  """The license section status"""
  status: LicenseStatus

  """Flag whether the signature is valid"""
  validSignature: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.admin.users.InventoryUserGroupInfo'
"""User groups"""
type InventoryUserGroupInfo {
  """User group description"""
  descr: String

  """User group id"""
  id: Long

  """User group name"""
  name: String

  """User group rights"""
  rights: [InventoryUserRight]

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.CloudItemStatus'
"""CloudItemStatus"""
type CloudItemStatus {
  """discoveryJobName"""
  discoveryJobName: String

  """lastMessage"""
  lastMessage: String

  """name"""
  name: String

  """percentage"""
  percentage: Int!

  """status"""
  status: DiscoveryQueueItemStatus

  """type"""
  type: CloudType

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.CloudItemStatus'
"""CloudItemStatus"""
input CloudItemStatusInput {
  """discoveryJobName"""
  discoveryJobName: String

  """lastMessage"""
  lastMessage: String

  """name"""
  name: String

  """percentage"""
  percentage: Int!

  """status"""
  status: DiscoveryQueueItemStatus

  """type"""
  type: CloudType

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DeviceDiscoveryStatus'
"""The status for a single device being scanned"""
type DeviceDiscoveryStatus {
  """The discovery duration in milliseconds"""
  duration: Long!

  """The last log message"""
  lastLog: String

  """The device name"""
  name: String

  """The completion percentage"""
  percent: Int!

  """The target being scanned"""
  target: String

  """The device type"""
  type: DeviceType

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DeviceQueueStatus'
"""The status for the discovery device queue"""
type DeviceQueueStatus {
  """The average database time"""
  avgDatabaseTime: Long

  """The average discovery time"""
  avgDiscoveryTime: Long

  """The status for individual devices being scanned"""
  devices: [DeviceDiscoveryStatus]

  """The device queue's last action"""
  lastAction: String

  """The maximal number of concurrent device discoveries"""
  maxDevices: Int!

  """The device queue status"""
  status: DiscoveryQueueStatus

  """Gets the number of pending devices for manually triggered tasks"""
  manuallyTriggeredPendingTasks: Int!

  """Gets the number of processed devices for manually triggered tasks"""
  manuallyTriggeredProcessedTasks: Int!

  """Gets the number of pending devices for scheduled discoveries"""
  scheduledPendingTasks: Int!

  """Gets the number of processed devices for scheduled discoveries"""
  scheduledProcessedTasks: Int!

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DirectoryQueueStatus'
"""DirectoryQueueStatus"""
type DirectoryQueueStatus {
  """currentObject"""
  currentObject: DirectoryStatus

  """lastMessage"""
  lastMessage: String

  """objectsProcessed"""
  objectsProcessed: Int!

  """objectsToProcess"""
  objectsToProcess: Int!

  """status"""
  status: DiscoveryQueueStatus

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DirectoryQueueStatus'
"""DirectoryQueueStatus"""
input DirectoryQueueStatusInput {
  """currentObject"""
  currentObject: DirectoryStatusInput

  """lastMessage"""
  lastMessage: String

  """objectsProcessed"""
  objectsProcessed: Int!

  """objectsToProcess"""
  objectsToProcess: Int!

  """status"""
  status: DiscoveryQueueStatus

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DirectoryStatus'
"""DirectoryStatus"""
type DirectoryStatus {
  """cycleId"""
  cycleId: Long

  """members"""
  members: Int

  """mode"""
  mode: DirectoryDiscoveryMode

  """name"""
  name: String

  """source"""
  source: DiscoveryQueueSource

  """type"""
  type: DirectoryType

  """distinguishedNameString"""
  distinguishedNameString: String

  """guidString"""
  guidString: String

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DirectoryStatus'
"""DirectoryStatus"""
input DirectoryStatusInput {
  """cycleId"""
  cycleId: Long

  """members"""
  members: Int

  """mode"""
  mode: DirectoryDiscoveryMode

  """name"""
  name: String

  """source"""
  source: DiscoveryQueueSource

  """type"""
  type: DirectoryType

  """distinguishedNameString"""
  distinguishedNameString: String

  """guidString"""
  guidString: String

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DiscoveryCloudStatus'
"""DiscoveryCloudStatus"""
type DiscoveryCloudStatus {
  """items"""
  items: [CloudItemStatus]

  """majorMessage"""
  majorMessage: String

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DiscoveryCloudStatus'
"""DiscoveryCloudStatus"""
input DiscoveryCloudStatusInput {
  """items"""
  items: [CloudItemStatusInput]

  """majorMessage"""
  majorMessage: String

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DiscoveryCycleStatus'
"""The Discovery Job Cycle Status"""
type DiscoveryCycleStatus {
  """The description of the job"""
  description: String

  """The state of the job."""
  enabled: Boolean

  """The id of the Job"""
  id: Long

  """The name of the job"""
  name: String

  """The task status of the job"""
  status: TaskStatus

  """The date time of the last finish of the job"""
  lastFinishedAt: DateTime

  """The date time of the last start of the job"""
  lastStartedAt: DateTime

  """The date time of the next schedule of the job"""
  nextSchedule: DateTime

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DiscoveryCycleStatus'
"""The Discovery Job Cycle Status"""
input DiscoveryCycleStatusInput {
  """The description of the job"""
  description: String

  """The state of the job."""
  enabled: Boolean

  """The id of the Job"""
  id: Long

  """The name of the job"""
  name: String

  """The task status of the job"""
  status: TaskStatus

  """The date time of the last finish of the job"""
  lastFinishedAt: DateTime

  """The date time of the last start of the job"""
  lastStartedAt: DateTime

  """The date time of the next schedule of the job"""
  nextSchedule: DateTime

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DiscoveryStatusData'
"""The current discovery status"""
type DiscoveryStatusData {
  """The device queue status"""
  deviceQueueStatus: DeviceQueueStatus

  """The device number of discovered devices stored in db"""
  devicesInDb: Int!

  """The discovery process status"""
  discoveryProcessStatus: DiscoveryProcessStatus

  """The license status"""
  licenseStatus: LicenseStatusData

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DomainQueueStatus'
"""DomainQueueStatus"""
type DomainQueueStatus {
  """currentDomain"""
  currentDomain: DomainStatus

  """domainsProcessed"""
  domainsProcessed: Int!

  """domainsToProcess"""
  domainsToProcess: Int!

  """lastMessage"""
  lastMessage: String

  """status"""
  status: DiscoveryQueueStatus

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DomainQueueStatus'
"""DomainQueueStatus"""
input DomainQueueStatusInput {
  """currentDomain"""
  currentDomain: DomainStatusInput

  """domainsProcessed"""
  domainsProcessed: Int!

  """domainsToProcess"""
  domainsToProcess: Int!

  """lastMessage"""
  lastMessage: String

  """status"""
  status: DiscoveryQueueStatus

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DomainStatus'
"""DomainStatus"""
type DomainStatus {
  """currentPos"""
  currentPos: Int

  """cycleId"""
  cycleId: Long

  """domainName"""
  domainName: String

  """members"""
  members: Int

  """source"""
  source: DiscoveryQueueSource

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.DomainStatus'
"""DomainStatus"""
input DomainStatusInput {
  """currentPos"""
  currentPos: Int

  """cycleId"""
  cycleId: Long

  """domainName"""
  domainName: String

  """members"""
  members: Int

  """source"""
  source: DiscoveryQueueSource

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.LdapObjectDbSynchronizerControllerStatus'
"""LdapObjectDbSynchronizerControllerStatus"""
type LdapObjectDbSynchronizerControllerStatus {
  """addedObjects"""
  addedObjects: Int!

  """lastMessage"""
  lastMessage: String

  """removedObjects"""
  removedObjects: Int!

  """running"""
  running: Boolean!

  """synchronizedObjects"""
  synchronizedObjects: Int!

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.LdapObjectDbSynchronizerControllerStatus'
"""LdapObjectDbSynchronizerControllerStatus"""
input LdapObjectDbSynchronizerControllerStatusInput {
  """addedObjects"""
  addedObjects: Int!

  """lastMessage"""
  lastMessage: String

  """removedObjects"""
  removedObjects: Int!

  """running"""
  running: Boolean!

  """synchronizedObjects"""
  synchronizedObjects: Int!

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.LicenseStatusData'
"""The license status"""
type LicenseStatusData {
  """The license message (e.g. license invalid, ...)"""
  licenseMessage: String

  """The license warning message (e.g. > 90% used)"""
  licenseWarningMessage: String

  """A flag whether the license is valid or not"""
  isValid: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.MeasurementStatus'
"""MeasurementStatus"""
type MeasurementStatus {
  """getMeasureJobs"""
  measureJobs: [MeasurementJobDetails]

  """numberOfScheduledCleanupJobs"""
  numberOfScheduledCleanupJobs: Int!

  """numberOfScheduledInstrumentationJobs"""
  numberOfScheduledInstrumentationJobs: Int!

  """numberOfScheduledPollingJobs"""
  numberOfScheduledPollingJobs: Int!

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.MeasurementStatus'
"""MeasurementStatus"""
input MeasurementStatusInput {
  """numberOfScheduledCleanupJobs"""
  numberOfScheduledCleanupJobs: Int!

  """numberOfScheduledInstrumentationJobs"""
  numberOfScheduledInstrumentationJobs: Int!

  """numberOfScheduledPollingJobs"""
  numberOfScheduledPollingJobs: Int!

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.discovery.status.PingRangeStatus'
"""The ping range status"""
type PingRangeStatus {
  """The percent which is completed"""
  percentDone: Int!

  """The IP4 range"""
  range: IP4Range

  """The title of the range"""
  title: String

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.importing.ImportDeviceResult'
"""The result when importing a device into the database"""
type ImportDeviceResult {
  """The list of errors or empty when there successful"""
  errors: [String]

  """The list of warnings"""
  warnings: [String]

  """The log created when writing the device as XML file"""
  xmlLog: String

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.monitoring.memory.MemoryStatistics'
"""The memory statistics A cache statistics entry contains information about the number of items within a specific cache"""
type MemoryStatistics {
  """The currently used heap space in bytes"""
  freeHeap: Long!

  """The maximum number of heap space in bytes"""
  maxHeap: Long!

  """The currently used heap space in bytes"""
  numberOfThreads: Long!

  """The currently used heap space in bytes"""
  usedHeap: Long!

}

# Mapping for Java class 'com.jdisc.inventory.common.rmiinterface.reporting.CustomReportInfo'
"""A custom reports container"""
type CustomReportInfo {
  """The collection of global custom reports"""
  globalReports: [CustomReportDescription]

  """The collection of usergroup custom reports"""
  groupReports: [CustomReportDescription]

  """The collection of user private custom reports"""
  privateReports: [CustomReportDescription]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.Device'
"""The device object specifies a single physical or virtual device together with all its properties."""
type Device {
  """The non priviledged account that is being used for to logon (via either SSH, telnet or SMB) protocol"""
  account: Account

  """Gets all array attributes for this device (simple attached attributes or custom attributes)"""
  arrayAttributes: [DeviceArrayAttribute]

  """A device's asset tag"""
  assetTag: String

  """A device's BIOS"""
  bios: Bios

  """The clusters which this device belongs to"""
  clusters: [Cluster]

  """The associated computer account assigment from Microsoft's Active Directory."""
  computerAccountAssignment: [ComputerAccountDeviceAssignment]

  """A device's NetBIOS computername"""
  computername: String

  """The time when the device was scanned for the first time."""
  creationTime: DateTime

  """The duration in milliseconds that were required to write this device's data to the database"""
  databaseDuration: Long

  """Gets all device comparison summaries for this device. When there are multiple registered device s, then you get a response with changes for each of them."""
  deviceComparisonSummaries: [DeviceComparisonSummary]

  """The Discovery Log object."""
  deviceDiscoveryLog: DeviceDiscoveryLog

  """Gets the list of all devices which are assigned to this group."""
  deviceGroups: [DeviceGroup]

  """The directory item that this device belongs to."""
  directory: Directory

  """The list of disabled protocols for this device"""
  disabledProtocols: [DiscoveryProtocol]

  """The duration in milliseconds that were required to discover this device"""
  discoveryDuration: Long

  """The discovery log as XML string."""
  discoveryLog: String

  """The last discovery timestamp. This is the timestamp of the current data."""
  discoveryTime: DateTime

  """The list of disk partitions."""
  diskPartitions: [DiskPartition]

  """The list of physical disk slots."""
  diskSlots: [PhysicalDiskSlot]

  """Gets all hashes for this device"""
  hashes: [CurrentDeviceHash]

  """The HTTP(s) account that is being used for to logon to devices via either a REST interface or HTTP(s) basic authentication"""
  httpAccount: Account

  """A device's hardware version"""
  hwVersion: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The Java Risk summary for this device."""
  javaRiskSummary: JavaRiskSummary

  """The last seen timestamp. This timestamp defines when the device has been seen the last time directly or indirectly (e.g. via a VMware VCenter installation)."""
  lastSeenTime: DateTime

  """The time when the support entitlements have been read for the last time"""
  lastSupportEntitlementTime: DateTime

  """The list of TCP/IP ports that are in listen mode."""
  listeningPorts: [PortConnection]

  """The list of logical disks."""
  logicalDisks: [LogicalDisk]

  """A logical serial number is used by some vendors in order to inject a logical serial number into the BIOS and overwrite
the device's physical serial number. This approach is used by some devices to work around licenses that are tied to
the device's serial number."""
  logicalSerialNumber: String

  """The virtual datacenters that are managed by this device (e.g. by a VCenter installation running on this device)."""
  managedVirtualDatacenters: [VirtualDatacenter]

  """A device's manufacturer"""
  manufacturer: String

  """The manufacturing timestamp"""
  manufacturingTime: DateTime

  """The list of memory module slots with their memory modules (if populated)."""
  memoryModuleSlots: [MemoryModuleSlot]

  """The list of mobile broadband devices (modems)."""
  mobileBroadbandDevices: [MobileBroadbandDevice]

  """A device's model"""
  model: String

  """The list of module slots with their modules (if populated)."""
  moduleSlots: [ModuleSlot]

  """A device's name"""
  name: String

  """The list of network interfaces."""
  networkInterfaces: [NetworkInterface]

  """The network neighborhood/domain that this device belongs to."""
  networkNeighborhood: NetworkNeighborhood

  """A device's operating system"""
  operatingSystem: OperatingSystem

  """A device's part number"""
  partNumber: String

  """The priviledged account that is being used for to logon (via either SSH, telnet or SMB) protocol"""
  privAccount: Account

  """The list of processor slots with their processors (if populated)."""
  processorSlots: [ProcessorSlot]

  """The SNMP read community configured for this device"""
  readCommunity: SnmpCommunity

  """The set of roles for a device."""
  roles: [DeviceRole]

  """Gets all scalar attributes for this device (simple attached attributes or custom attributes)"""
  scalarAttributes: [DeviceAttribute]

  """The list of all scheduled tasks defined for this computer."""
  scheduledTasks: [ScheduledTask]

  """A device's serial number"""
  serialNumber: String

  """The basic SNMP agent information for this device."""
  snmpAgentData: SnmpAgentData

  """The SNMPv3 account configured for this device"""
  snmpV3Account: SnmpV3Account

  """The list of TCP/IP connections where the current device is initiating a TCP/IP connection."""
  sourceTcpIpPortConnections: [PortConnection]

  """Gets all support entitlements for this device"""
  supportEntitlements: [SupportEntitlement]

  """The system board for this device."""
  systemBoard: SystemBoard

  """The list of TCP/IP connections where the current device is the target of a TCP/IP connection."""
  targetTcpIpPortConnections: [PortConnection]

  """The total RAM for this device in MB"""
  totalRAM: Long

  """The TPM module for this device."""
  tpmModule: TpmModule

  """A device's type"""
  type: DeviceType

  """A device's unqiue id (if it exists)"""
  uniqueId: String

  """The list of video controller slots."""
  videoControllerSlots: [VideoControllerSlot]

  """The virtual datacenters that a device belongs to."""
  virtualDatacenters: [VirtualDatacenter]

  """The account that is being used for the VMware API access to VCenter installations or VMware ESXi server"""
  vmwareAccount: Account

  """Finds the array custom attribute values for a specific path"""
  arrayCustomAttributeByPath(path: String): DeviceArrayAttribute

  """Returns the list of attached devices.
Attached devices are usually monitors attached to a PC/laptop, local printers attached to a device etc.."""
  attachedDevices: [DeviceRelation]

  """Gets the comparison summaries for a specific device and integration."""
  deviceComparisonSummary(integrationUniqueId: String): DeviceComparisonSummary

  """Returns the discovery as parsed object with a hierarchy. This method is used by the UI to display a discovery log in a tree structure"""
  discoveryLogObject: Object

  """Returns the list of hosted virtual machines on this device."""
  hostedVirtualMachines: [DeviceRelation]

  """Gets the main IP4 transport (if there is any)"""
  mainIP4Transport: IP4Transport

  """Gets the main IP4 transport (if there is any)"""
  mainIP6Transport: IP6Transport

  """The main IP4 address for the device (if the IP4 address exists)."""
  mainIPAddress: String

  """Returns the list of managed virtualization servers.
For instance the list of managed ESX servers managed by a VCenter server."""
  managedVirtualizationServers: [DeviceRelation]

  """Finds the scalar custom attribute values for a specific path"""
  scalarCustomAttributeByPath(path: String): DeviceAttribute

  """The list of related devices where this device is the relation's source."""
  sourceRelatedDevices: [DeviceRelation]

  """The list of related devices where this device is the relation's source with a specific connector type."""
  sourceRelatedDevicesByConnectorType(type: ConnectorType): [DeviceRelation]

  """The list of related devices where this device is the relation's source with one of the specified connector types."""
  sourceRelatedDevicesByConnectorTypes(types: [ConnectorType]): [DeviceRelation]

  """Returns the list of stack members for a stacked switch.
A stacked switch is a virtual switch being created when stacking multiple physical switches together."""
  stackedSwitchMembers: [DeviceRelation]

  """The list of related devices where this device is the relation's target."""
  targetRelatedDevices: [DeviceRelation]

  """The list of related devices where this device is the relation's target with a specific connector type."""
  targetRelatedDevicesByConnectorType(type: ConnectorType): [DeviceRelation]

  """The list of related devices where this device is the relation's target with one of the specified connector types."""
  targetRelatedDevicesByConnectorTypes(types: [ConnectorType]): [DeviceRelation]

  """The list of TCP/IP ports and TCP/IP connections where the current device is either the source of the destination of a TCP/IP connection."""
  tcpIpConnections: [PortConnection]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.Device'
"""The device object specifies a single physical or virtual device together with all its properties."""
input DeviceInput {
  """The non priviledged account that is being used for to logon (via either SSH, telnet or SMB) protocol"""
  account: AccountInput

  """Gets all array attributes for this device (simple attached attributes or custom attributes)"""
  arrayAttributes: [DeviceArrayAttributeInput]

  """A device's asset tag"""
  assetTag: String

  """A device's BIOS"""
  bios: BiosInput

  """The clusters which this device belongs to"""
  clusters: [ClusterInput]

  """The associated computer account assigment from Microsoft's Active Directory."""
  computerAccountAssignment: [ComputerAccountDeviceAssignmentInput]

  """A device's NetBIOS computername"""
  computername: String

  """The time when the device was scanned for the first time."""
  creationTime: DateTime

  """The duration in milliseconds that were required to write this device's data to the database"""
  databaseDuration: Long

  """The Discovery Log object."""
  deviceDiscoveryLog: DeviceDiscoveryLogInput

  """Gets the list of all devices which are assigned to this group."""
  deviceGroups: [DeviceGroupInput]

  """The directory item that this device belongs to."""
  directory: DirectoryInput

  """The duration in milliseconds that were required to discover this device"""
  discoveryDuration: Long

  """The discovery log as XML string."""
  discoveryLog: String

  """The last discovery timestamp. This is the timestamp of the current data."""
  discoveryTime: DateTime

  """The list of disk partitions."""
  diskPartitions: [DiskPartitionInput]

  """The list of physical disk slots."""
  diskSlots: [PhysicalDiskSlotInput]

  """The HTTP(s) account that is being used for to logon to devices via either a REST interface or HTTP(s) basic authentication"""
  httpAccount: AccountInput

  """A device's hardware version"""
  hwVersion: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The last seen timestamp. This timestamp defines when the device has been seen the last time directly or indirectly (e.g. via a VMware VCenter installation)."""
  lastSeenTime: DateTime

  """The time when the support entitlements have been read for the last time"""
  lastSupportEntitlementTime: DateTime

  """The list of TCP/IP ports that are in listen mode."""
  listeningPorts: [PortConnectionInput]

  """The list of logical disks."""
  logicalDisks: [LogicalDiskInput]

  """A logical serial number is used by some vendors in order to inject a logical serial number into the BIOS and overwrite
the device's physical serial number. This approach is used by some devices to work around licenses that are tied to
the device's serial number."""
  logicalSerialNumber: String

  """The virtual datacenters that are managed by this device (e.g. by a VCenter installation running on this device)."""
  managedVirtualDatacenters: [VirtualDatacenterInput]

  """A device's manufacturer"""
  manufacturer: String

  """The manufacturing timestamp"""
  manufacturingTime: DateTime

  """The list of memory module slots with their memory modules (if populated)."""
  memoryModuleSlots: [MemoryModuleSlotInput]

  """The list of mobile broadband devices (modems)."""
  mobileBroadbandDevices: [MobileBroadbandDeviceInput]

  """A device's model"""
  model: String

  """The list of module slots with their modules (if populated)."""
  moduleSlots: [ModuleSlotInput]

  """A device's name"""
  name: String

  """The list of network interfaces."""
  networkInterfaces: [NetworkInterfaceInput]

  """The network neighborhood/domain that this device belongs to."""
  networkNeighborhood: NetworkNeighborhoodInput

  """A device's operating system"""
  operatingSystem: OperatingSystemInput

  """A device's part number"""
  partNumber: String

  """The priviledged account that is being used for to logon (via either SSH, telnet or SMB) protocol"""
  privAccount: AccountInput

  """The list of processor slots with their processors (if populated)."""
  processorSlots: [ProcessorSlotInput]

  """The SNMP read community configured for this device"""
  readCommunity: SnmpCommunityInput

  """The set of roles for a device."""
  roles: [DeviceRole]

  """Gets all scalar attributes for this device (simple attached attributes or custom attributes)"""
  scalarAttributes: [DeviceAttributeInput]

  """The list of all scheduled tasks defined for this computer."""
  scheduledTasks: [ScheduledTaskInput]

  """A device's serial number"""
  serialNumber: String

  """The basic SNMP agent information for this device."""
  snmpAgentData: SnmpAgentDataInput

  """The SNMPv3 account configured for this device"""
  snmpV3Account: SnmpV3AccountInput

  """Gets all support entitlements for this device"""
  supportEntitlements: [SupportEntitlementInput]

  """The system board for this device."""
  systemBoard: SystemBoardInput

  """The TPM module for this device."""
  tpmModule: TpmModuleInput

  """A device's type"""
  type: DeviceType

  """A device's unqiue id (if it exists)"""
  uniqueId: String

  """The list of video controller slots."""
  videoControllerSlots: [VideoControllerSlotInput]

  """The virtual datacenters that a device belongs to."""
  virtualDatacenters: [VirtualDatacenterInput]

  """The account that is being used for the VMware API access to VCenter installations or VMware ESXi server"""
  vmwareAccount: AccountInput

  """Returns the discovery as parsed object with a hierarchy. This method is used by the UI to display a discovery log in a tree structure"""
  discoveryLogObject: Object

  """The list of TCP/IP ports and TCP/IP connections where the current device is either the source of the destination of a TCP/IP connection."""
  tcpIpConnections: [PortConnectionInput]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.CustomAttribute'
"""A custom attribute definition"""
type CustomAttribute {
  """The custom attribute type"""
  attributeType: AttributeType

  """A flag whether this is a customer defined or built-in custom attribute"""
  builtIn: Boolean

  """The child attributes"""
  children: [CustomAttribute]

  """The custom attribute description"""
  description: String

  """The list of devices having this custom attribute."""
  devices: [Device]

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """Keep the history for this attribute for <n> hours"""
  keepHistoryForHours: Int

  """The custom attribute name"""
  name: String

  """The order number within the parent folder"""
  orderNumber: Int

  """The parent custom attribute"""
  parent: CustomAttribute

  """The full path of the attribute within the hierarchy"""
  path: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.CustomAttribute'
"""A custom attribute definition"""
input CustomAttributeInput {
  """The custom attribute type"""
  attributeType: AttributeType

  """A flag whether this is a customer defined or built-in custom attribute"""
  builtIn: Boolean

  """The child attributes"""
  children: [CustomAttributeInput]

  """The custom attribute description"""
  description: String

  """The list of devices having this custom attribute."""
  devices: [DeviceInput]

  """Keep the history for this attribute for <n> hours"""
  keepHistoryForHours: Int

  """The custom attribute name"""
  name: String

  """The order number within the parent folder"""
  orderNumber: Int

  """The parent custom attribute"""
  parent: CustomAttributeInput

  """The full path of the attribute within the hierarchy"""
  path: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.DeviceArrayAttribute'
"""a device array attribute"""
type DeviceArrayAttribute {
  """Gets the column names"""
  columnNames: [DeviceArrayAttributeColumnName]

  """The corresponding custom attribute definition"""
  customAttribute: CustomAttribute

  """The corresponding device"""
  device: Device

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The last update timestamp."""
  lastUpdate: DateTime

  """The name for device attributes which are no custom attributes."""
  name: String

  """The values as individual objects"""
  values: [DeviceArrayAttributeValue]

  """Gets the array attribute object with all values and column names"""
  array: ArrayAttribute

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.DeviceArrayAttribute'
"""a device array attribute"""
input DeviceArrayAttributeInput {
  """Gets the column names"""
  columnNames: [DeviceArrayAttributeColumnNameInput]

  """The corresponding custom attribute definition"""
  customAttribute: CustomAttributeInput

  """The corresponding device"""
  device: DeviceInput

  """The last update timestamp."""
  lastUpdate: DateTime

  """The name for device attributes which are no custom attributes."""
  name: String

  """The values as individual objects"""
  values: [DeviceArrayAttributeValueInput]

  """Gets the array attribute object with all values and column names"""
  array: ArrayAttributeInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.DeviceArrayAttributeColumnName'
"""a device array attribute value"""
type DeviceArrayAttributeColumnName {
  """Gets the column name for a specific column"""
  name: String

  """Gets the column index (starting with 0)"""
  index: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.DeviceArrayAttributeColumnName'
"""a device array attribute value"""
input DeviceArrayAttributeColumnNameInput {
  """Gets the column name for a specific column"""
  name: String

  """Gets the column index (starting with 0)"""
  index: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.DeviceArrayAttributeValue'
"""a device array attribute value"""
type DeviceArrayAttributeValue {
  """Gets the boolean value"""
  booleanValue: Boolean

  """Gets the float value"""
  floatValue: Float

  """Gets the integer value"""
  intValue: Int

  """Gets the long value"""
  longValue: Long

  """Gets the string value"""
  stringValue: String

  """Gets the timestamp value"""
  timestampValue: DateTime

  """The corresponding custom attribute definition"""
  value: Object

  """Gets the x position within the table (starting with 0)"""
  x: Int

  """Gets the y position within the table (starting with 0)"""
  y: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.DeviceArrayAttributeValue'
"""a device array attribute value"""
input DeviceArrayAttributeValueInput {
  """Gets the boolean value"""
  booleanValue: Boolean

  """Gets the float value"""
  floatValue: Float

  """Gets the integer value"""
  intValue: Int

  """Gets the long value"""
  longValue: Long

  """Gets the string value"""
  stringValue: String

  """Gets the timestamp value"""
  timestampValue: DateTime

  """The corresponding custom attribute definition"""
  value: Object

  """Gets the x position within the table (starting with 0)"""
  x: Int

  """Gets the y position within the table (starting with 0)"""
  y: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.DeviceAttribute'
"""a device attribute"""
type DeviceAttribute {
  """Gets the boolean value"""
  booleanValue: Boolean

  """The corresponding custom attribute definition"""
  customAttribute: CustomAttribute

  """The corresponding device"""
  device: Device

  """Gets the float value"""
  floatValue: Float

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """Gets the integer value"""
  intValue: Int

  """The last update timestamp."""
  lastUpdate: DateTime

  """Gets the long value"""
  longValue: Long

  """The name for device attributes which are no custom attributes."""
  name: String

  """Gets the string value"""
  stringValue: String

  """Gets the timestamp value"""
  timestampValue: DateTime

  """The corresponding custom attribute definition"""
  value: Object

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.attributes.custom.DeviceAttribute'
"""a device attribute"""
input DeviceAttributeInput {
  """Gets the boolean value"""
  booleanValue: Boolean

  """The corresponding custom attribute definition"""
  customAttribute: CustomAttributeInput

  """The corresponding device"""
  device: DeviceInput

  """Gets the float value"""
  floatValue: Float

  """Gets the integer value"""
  intValue: Int

  """The last update timestamp."""
  lastUpdate: DateTime

  """Gets the long value"""
  longValue: Long

  """The name for device attributes which are no custom attributes."""
  name: String

  """Gets the string value"""
  stringValue: String

  """Gets the timestamp value"""
  timestampValue: DateTime

  """The corresponding custom attribute definition"""
  value: Object

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.cluster.Cluster'
"""A cluster object."""
type Cluster {
  """A flag whether all cluster members have been found."""
  allMembersFound: Boolean

  """The associated cluster member virtual machines.
Note, that this is not the list of VMs running in this cluster.
It is more a configuration item in some virtualization environments (e.g. XenServer). You can associate a VM with a cluster
and then the cluster decides on which physical host of the cluster the VM gets started."""
  associatedVirtualMachines: [Device]

  """The cluster member devices"""
  clusterMembers: [Device]

  """The internal id for this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The cluster name."""
  name: String

  """The cluster type"""
  type: ClusterType

  """A cluster's unique id."""
  uniqueId: String

  """The virtual datacenter that a cluster belongs to."""
  virtualDatacenter: VirtualDatacenter

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.cluster.Cluster'
"""A cluster object."""
input ClusterInput {
  """A flag whether all cluster members have been found."""
  allMembersFound: Boolean

  """The associated cluster member virtual machines.
Note, that this is not the list of VMs running in this cluster.
It is more a configuration item in some virtualization environments (e.g. XenServer). You can associate a VM with a cluster
and then the cluster decides on which physical host of the cluster the VM gets started."""
  associatedVirtualMachines: [DeviceInput]

  """The cluster member devices"""
  clusterMembers: [DeviceInput]

  """The cluster name."""
  name: String

  """The cluster type"""
  type: ClusterType

  """A cluster's unique id."""
  uniqueId: String

  """The virtual datacenter that a cluster belongs to."""
  virtualDatacenter: VirtualDatacenterInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.directory.ComputerAccount'
"""A computer account object within Microsoft's Active Directory"""
type ComputerAccount {
  """The description."""
  description: String

  """The last logon time for this computer account. This is not the logon time for a user logging on. It is the logon time when the computer registers itself on the domain controller."""
  lastLogonTime: DateTime

  """The computer account's unique id."""
  uniqueId: String

  """The associated directory object."""
  directory: Directory

  """The associated hostname object."""
  hostname: Hostname

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.directory.ComputerAccount'
"""A computer account object within Microsoft's Active Directory"""
input ComputerAccountInput {
  """The description."""
  description: String

  """The last logon time for this computer account. This is not the logon time for a user logging on. It is the logon time when the computer registers itself on the domain controller."""
  lastLogonTime: DateTime

  """The computer account's unique id."""
  uniqueId: String

  """The associated directory object."""
  directory: DirectoryInput

  """The associated hostname object."""
  hostname: HostnameInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.directory.ComputerAccountDeviceAssignment'
"""A computer account object within Microsoft's Active Directory associated with a device"""
type ComputerAccountDeviceAssignment {
  """The associated computer account object"""
  computerAccount: ComputerAccount

  """The computer account name."""
  name: String

  """The associated device."""
  device: Device

  """The associated directory object."""
  directory: Directory

  """The associated hostname object."""
  hostname: Hostname

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.directory.ComputerAccountDeviceAssignment'
"""A computer account object within Microsoft's Active Directory associated with a device"""
input ComputerAccountDeviceAssignmentInput {
  """The associated computer account object"""
  computerAccount: ComputerAccountInput

  """The computer account name."""
  name: String

  """The associated device."""
  device: DeviceInput

  """The associated directory object."""
  directory: DirectoryInput

  """The associated hostname object."""
  hostname: HostnameInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.Directory'
"""A directory object"""
type Directory {
  """The directory canonical name."""
  canonicalName: String

  """The child directories."""
  children: [Directory]

  """The computer accounts associated with the directory."""
  computerAccounts: [ComputerAccount]

  """The last discovery timestamp. This is the timestamp when devices of this directory item has been scanned for the last time."""
  discoveryTime: DateTime

  """The directory distinguished name."""
  distinguishedName: String

  """The directory guid."""
  guid: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The directory name."""
  name: String

  """The directory netbios name."""
  netBiosName: String

  """The number of computer members."""
  numberOfComputerMembers: Int

  """The parent directory."""
  parentDirectory: Directory

  """The directory type."""
  type: DirectoryType

  """The directory unique id."""
  uniqueId: String

  """The list of users assigned to this directory object."""
  users: [User]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.Directory'
"""A directory object"""
input DirectoryInput {
  """The directory canonical name."""
  canonicalName: String

  """The child directories."""
  children: [DirectoryInput]

  """The computer accounts associated with the directory."""
  computerAccounts: [ComputerAccountInput]

  """The last discovery timestamp. This is the timestamp when devices of this directory item has been scanned for the last time."""
  discoveryTime: DateTime

  """The directory distinguished name."""
  distinguishedName: String

  """The directory guid."""
  guid: String

  """The directory name."""
  name: String

  """The directory netbios name."""
  netBiosName: String

  """The number of computer members."""
  numberOfComputerMembers: Int

  """The parent directory."""
  parentDirectory: DirectoryInput

  """The directory type."""
  type: DirectoryType

  """The directory unique id."""
  uniqueId: String

  """The list of users assigned to this directory object."""
  users: [UserInput]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.Hostname'
"""A hostname object"""
type Hostname {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The hostname."""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.Hostname'
"""A hostname object"""
input HostnameInput {
  """The hostname."""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP4DHCPConfiguration'
"""The DHCP configuration for an interface"""
type IP4DHCPConfiguration {
  """The dhcp servers's IP4 address."""
  dhcpServerIP4Address: String

  """The IP4 transport object of the DHCP server (if the DHCP server has been scanned)."""
  dhcpServerIP4Transport: IP4Transport

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The time when the DHCP lease will expire."""
  leaseExpires: DateTime

  """The time when the DHCP lease was obtained."""
  leaseObtained: DateTime

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP4DHCPConfiguration'
"""The DHCP configuration for an interface"""
input IP4DHCPConfigurationInput {
  """The dhcp servers's IP4 address."""
  dhcpServerIP4Address: String

  """The IP4 transport object of the DHCP server (if the DHCP server has been scanned)."""
  dhcpServerIP4Transport: IP4TransportInput

  """The time when the DHCP lease will expire."""
  leaseExpires: DateTime

  """The time when the DHCP lease was obtained."""
  leaseObtained: DateTime

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP4Network'
"""An IP4 network object holding the IP base address, subnet mask and the name"""
type IP4Network {
  """The list of devices belonging to this nework."""
  devices: [Device]

  """A network's first IP address."""
  firstAddress: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """A network's last IP4 address."""
  lastAddress: String

  """A network's name."""
  name: String

  """A flag that indicates whether the network's name has been configured manually or whether it has been discovered (e.g. via AD)."""
  nameManuallyConfigured: Boolean

  """The network base address."""
  networkBaseAddress: String

  """A network's parent network (if it exists)."""
  parentNetwork: IP4Network

  """The network subnet mask."""
  subnetMask: String

  """The list of IP4 transports associated with this network."""
  transports: [IP4Transport]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP4Network'
"""An IP4 network object holding the IP base address, subnet mask and the name"""
input IP4NetworkInput {
  """The list of devices belonging to this nework."""
  devices: [DeviceInput]

  """A network's first IP address."""
  firstAddress: String

  """A network's last IP4 address."""
  lastAddress: String

  """A network's name."""
  name: String

  """A flag that indicates whether the network's name has been configured manually or whether it has been discovered (e.g. via AD)."""
  nameManuallyConfigured: Boolean

  """The network base address."""
  networkBaseAddress: String

  """A network's parent network (if it exists)."""
  parentNetwork: IP4NetworkInput

  """The network subnet mask."""
  subnetMask: String

  """The list of IP4 transports associated with this network."""
  transports: [IP4TransportInput]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP4Transport'
"""An IP4 transport holding the IP address, subnet mask and hostnames"""
type IP4Transport {
  """The transport hostnames."""
  hostnames: [String]

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The transport's IP4 address."""
  ipAddress: String

  """A flag that indicates whether this is the device's main IP address."""
  isMainAddress: Boolean

  """A flag that indicates whether this transport is routing or not."""
  isRouting: Boolean

  """The assigned network for a transport."""
  network: IP4Network

  """The network interface where this transport is configured on."""
  networkInterface: NetworkInterface

  """The transport's configured IP4 subnet mask."""
  subnetMask: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP4Transport'
"""An IP4 transport holding the IP address, subnet mask and hostnames"""
input IP4TransportInput {
  """The transport hostnames."""
  hostnames: [String]

  """The transport's IP4 address."""
  ipAddress: String

  """A flag that indicates whether this is the device's main IP address."""
  isMainAddress: Boolean

  """A flag that indicates whether this transport is routing or not."""
  isRouting: Boolean

  """The assigned network for a transport."""
  network: IP4NetworkInput

  """The transport's configured IP4 subnet mask."""
  subnetMask: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP6Network'
"""An IP6 network holding the IP address base address, prefix length and network name"""
type IP6Network {
  """The list of devices belonging to this nework."""
  devices: [Device]

  """A network's first IP address."""
  firstAddress: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """A network's last IP address."""
  lastAddress: String

  """A network's name."""
  name: String

  """A flag that indicates whether the network's name has been configured manually or whether it has been discovered (e.g. via AD)."""
  nameManuallyConfigured: Boolean

  """An IP6 network's base address."""
  networkBaseAddress: String

  """A network's parent network (if it exists)."""
  parentNetwork: IP6Network

  """An IP6 network's configured prefix length."""
  prefixLength: Int

  """The list of IP6 transports associated with this network."""
  transports: [IP6Transport]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP6Network'
"""An IP6 network holding the IP address base address, prefix length and network name"""
input IP6NetworkInput {
  """The list of devices belonging to this nework."""
  devices: [DeviceInput]

  """A network's first IP address."""
  firstAddress: String

  """A network's last IP address."""
  lastAddress: String

  """A network's name."""
  name: String

  """A flag that indicates whether the network's name has been configured manually or whether it has been discovered (e.g. via AD)."""
  nameManuallyConfigured: Boolean

  """An IP6 network's base address."""
  networkBaseAddress: String

  """A network's parent network (if it exists)."""
  parentNetwork: IP6NetworkInput

  """An IP6 network's configured prefix length."""
  prefixLength: Int

  """The list of IP6 transports associated with this network."""
  transports: [IP6TransportInput]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP6Transport'
"""An IP6 transport holding the IP address, prefix length and hostnames"""
type IP6Transport {
  """The transport's configured prefix length."""
  configuredPrefixLength: Int

  """The transport hostnames."""
  hostnames: [String]

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The transport's IP6 address."""
  ipAddress: String

  """A flag that indicates whether this is the device's main IP address."""
  isMainAddress: Boolean

  """A flag that indicates whether this transport is routing or not."""
  isRouting: Boolean

  """The assigned network for a transport."""
  network: IP6Network

  """The network interface where this transport is configured on."""
  networkInterface: NetworkInterface

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IP6Transport'
"""An IP6 transport holding the IP address, prefix length and hostnames"""
input IP6TransportInput {
  """The transport's configured prefix length."""
  configuredPrefixLength: Int

  """The transport hostnames."""
  hostnames: [String]

  """The transport's IP6 address."""
  ipAddress: String

  """A flag that indicates whether this is the device's main IP address."""
  isMainAddress: Boolean

  """A flag that indicates whether this transport is routing or not."""
  isRouting: Boolean

  """The assigned network for a transport."""
  network: IP6NetworkInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IPDnsServerConfiguration'
"""The DNS server configuration for an interface"""
type IPDnsServerConfiguration {
  """The DNS server IP4 address."""
  dnsServerIP4Address: String

  """The assigned IP4 transport for the DNS server."""
  dnsServerIP4Transport: IP4Transport

  """The DNS server IP6 address."""
  dnsServerIP6Address: String

  """The assigned IP6 transport for the DNS server."""
  dnsServerIP6Transport: IP6Transport

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The location in the DNS server search order."""
  position: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.IPDnsServerConfiguration'
"""The DNS server configuration for an interface"""
input IPDnsServerConfigurationInput {
  """The DNS server IP4 address."""
  dnsServerIP4Address: String

  """The assigned IP4 transport for the DNS server."""
  dnsServerIP4Transport: IP4TransportInput

  """The DNS server IP6 address."""
  dnsServerIP6Address: String

  """The assigned IP6 transport for the DNS server."""
  dnsServerIP6Transport: IP6TransportInput

  """The location in the DNS server search order."""
  position: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.NetworkNeighborhood'
"""The network neighborhood (Windows domain)"""
type NetworkNeighborhood {
  """The license for a BIOS"""
  directory: Directory

  """The last discovery timestamp. This is the timestamp when the domain has been browsed for the last time."""
  discoveryTime: DateTime

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The network neighborhood/domain name."""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.NetworkNeighborhood'
"""The network neighborhood (Windows domain)"""
input NetworkNeighborhoodInput {
  """The license for a BIOS"""
  directory: DirectoryInput

  """The last discovery timestamp. This is the timestamp when the domain has been browsed for the last time."""
  discoveryTime: DateTime

  """The network neighborhood/domain name."""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.TopologyConnection'
"""A relation between two devices. The kind of relation is defined by the relation type."""
type TopologyConnection {
  """The timestamp when this connection was seen the last time"""
  lastSeenTimestamp: DateTime

  """The first network interface for the topology"""
  networkInterface1: NetworkInterface

  """The second network interface for the topology"""
  networkInterface2: NetworkInterface

  """The protocol which has been used to determine this connection"""
  protocol: LinkLayerNeighborProtocol

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.TopologyConnection'
"""A relation between two devices. The kind of relation is defined by the relation type."""
input TopologyConnectionInput {
  """The timestamp when this connection was seen the last time"""
  lastSeenTimestamp: DateTime

  """The first network interface for the topology"""
  networkInterface1: NetworkInterfaceInput

  """The second network interface for the topology"""
  networkInterface2: NetworkInterfaceInput

  """The protocol which has been used to determine this connection"""
  protocol: LinkLayerNeighborProtocol

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.Vlan'
"""A VLAN"""
type Vlan {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The vlan name."""
  name: String

  """The list of network interfaces using this vlan."""
  networkInterfaces: [NetworkInterface]

  """The numeric vlan id."""
  vlanId: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.network.Vlan'
"""A VLAN"""
input VlanInput {
  """The vlan name."""
  name: String

  """The numeric vlan id."""
  vlanId: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTask'
"""A scheduled task defined for a device"""
type ScheduledTask {
  """The scheduled task author."""
  author: String

  """The list of scheduled task Microsoft COM handler actions."""
  comHandlerActions: [ScheduledTaskComHandlerAction]

  """The scheduled task description."""
  description: String

  """The device to which this scheduled task belongs to."""
  device: Device

  """The list of scheduled task email actions."""
  emailActions: [ScheduledTaskEmailAction]

  """Flag whether the scheduled task is enabled."""
  enabled: Boolean

  """The list of scheduled task execute actions."""
  executeActions: [ScheduledTaskExecuteAction]

  """Flag whether the scheduled task is hidden."""
  hidden: Boolean

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The timestamp when the task has been executed for the last time."""
  lastExecutedTime: DateTime

  """The last execution result."""
  lastExecutionResult: Long

  """The scheduled task logon type."""
  logonType: DeviceScheduledTaskLogonType

  """The list of scheduled task email actions."""
  messageActions: [ScheduledTaskMessageAction]

  """The scheduled task registration date."""
  registrationDate: DateTime

  """The scheduled task logon type."""
  runlevel: DeviceScheduledTaskRunLevelType

  """The list of scheduled task triggers."""
  triggers: [ScheduledTaskTrigger]

  """The URI for the scheduled task."""
  uri: String

  """The user which thise user runs as."""
  user: User

  """The usergroup used to run this task."""
  userGroup: UserGroup

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTask'
"""A scheduled task defined for a device"""
input ScheduledTaskInput {
  """The scheduled task author."""
  author: String

  """The list of scheduled task Microsoft COM handler actions."""
  comHandlerActions: [ScheduledTaskComHandlerActionInput]

  """The scheduled task description."""
  description: String

  """The device to which this scheduled task belongs to."""
  device: DeviceInput

  """The list of scheduled task email actions."""
  emailActions: [ScheduledTaskEmailActionInput]

  """Flag whether the scheduled task is enabled."""
  enabled: Boolean

  """The list of scheduled task execute actions."""
  executeActions: [ScheduledTaskExecuteActionInput]

  """Flag whether the scheduled task is hidden."""
  hidden: Boolean

  """The timestamp when the task has been executed for the last time."""
  lastExecutedTime: DateTime

  """The last execution result."""
  lastExecutionResult: Long

  """The scheduled task logon type."""
  logonType: DeviceScheduledTaskLogonType

  """The list of scheduled task email actions."""
  messageActions: [ScheduledTaskMessageActionInput]

  """The scheduled task registration date."""
  registrationDate: DateTime

  """The scheduled task logon type."""
  runlevel: DeviceScheduledTaskRunLevelType

  """The list of scheduled task triggers."""
  triggers: [ScheduledTaskTriggerInput]

  """The URI for the scheduled task."""
  uri: String

  """The user which thise user runs as."""
  user: UserInput

  """The usergroup used to run this task."""
  userGroup: UserGroupInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskComHandlerAction'
"""The action associated with the scheduled task"""
type ScheduledTaskComHandlerAction {
  """The COM handler"""
  comHandler: String

  """Additional data for the COM handler action"""
  data: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The action's scheduled task."""
  scheduledTask: ScheduledTask

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskComHandlerAction'
"""The action associated with the scheduled task"""
input ScheduledTaskComHandlerActionInput {
  """The COM handler"""
  comHandler: String

  """Additional data for the COM handler action"""
  data: String

  """The action's scheduled task."""
  scheduledTask: ScheduledTaskInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskEmailAction'
"""The action associated with the scheduled task"""
type ScheduledTaskEmailAction {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The email receiver"""
  receiver: String

  """The action's scheduled task."""
  scheduledTask: ScheduledTask

  """The email subject"""
  subject: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskEmailAction'
"""The action associated with the scheduled task"""
input ScheduledTaskEmailActionInput {
  """The email receiver"""
  receiver: String

  """The action's scheduled task."""
  scheduledTask: ScheduledTaskInput

  """The email subject"""
  subject: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskExecuteAction'
"""The action associated with the scheduled task"""
type ScheduledTaskExecuteAction {
  """The command to execute this scheduled task"""
  command: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The action's scheduled task."""
  scheduledTask: ScheduledTask

  """The working directory for the action"""
  workingDirectory: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskExecuteAction'
"""The action associated with the scheduled task"""
input ScheduledTaskExecuteActionInput {
  """The command to execute this scheduled task"""
  command: String

  """The action's scheduled task."""
  scheduledTask: ScheduledTaskInput

  """The working directory for the action"""
  workingDirectory: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskMessageAction'
"""The action associated with the scheduled task"""
type ScheduledTaskMessageAction {
  """The message body"""
  body: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The action's scheduled task."""
  scheduledTask: ScheduledTask

  """The message title"""
  title: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskMessageAction'
"""The action associated with the scheduled task"""
input ScheduledTaskMessageActionInput {
  """The message body"""
  body: String

  """The action's scheduled task."""
  scheduledTask: ScheduledTaskInput

  """The message title"""
  title: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskTrigger'
"""A trigger for a scheduled task. Triggers define when a scheduled task is supposed to start"""
type ScheduledTaskTrigger {
  """The enabled flag for the trigge."""
  enabled: Boolean

  """The scheduled task's frequency."""
  frequency: DeviceScheduledTaskTriggerFrequency

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The trigger's scheduled task."""
  scheduledTask: ScheduledTask

  """The enabled flag for the trigger."""
  type: DeviceScheduledTaskTriggerType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.config.scheduledtasks.ScheduledTaskTrigger'
"""A trigger for a scheduled task. Triggers define when a scheduled task is supposed to start"""
input ScheduledTaskTriggerInput {
  """The enabled flag for the trigge."""
  enabled: Boolean

  """The scheduled task's frequency."""
  frequency: DeviceScheduledTaskTriggerFrequency

  """The trigger's scheduled task."""
  scheduledTask: ScheduledTaskInput

  """The enabled flag for the trigger."""
  type: DeviceScheduledTaskTriggerType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.Account'
"""An account object containing login, type and comment. The password is for security reasons not part of the object."""
type Account {
  """The account's comment string."""
  comment: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The account's password. IMPORTANT: This field is never populated when being read from the database. This field is only used when setting passwords from the UI"""
  password: String

  """The account's username."""
  type: AccountType

  """The account's username."""
  username: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.Account'
"""An account object containing login, type and comment. The password is for security reasons not part of the object."""
input AccountInput {
  """The account's comment string."""
  comment: String

  """The account's password. IMPORTANT: This field is never populated when being read from the database. This field is only used when setting passwords from the UI"""
  password: String

  """The account's username."""
  type: AccountType

  """The account's username."""
  username: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.SnmpCommunity'
"""An account object for the SNMPv3 community containing the community string and the comment."""
type SnmpCommunity {
  """The SNMP community comment."""
  comment: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The SNMP community string."""
  snmpCommunity: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.SnmpCommunity'
"""An account object for the SNMPv3 community containing the community string and the comment."""
input SnmpCommunityInput {
  """The SNMP community comment."""
  comment: String

  """The SNMP community string."""
  snmpCommunity: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.SnmpV3Account'
"""An account object for the SNMPv3 protocol containing login, password, auth type, priv type, priv password and comment. The password is for security reasons write-only."""
type SnmpV3Account {
  """The account's authentication protocol."""
  authProtocol: SnmpV3AuthProtocol

  """The account's comment string."""
  comment: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The account's login name."""
  login: String

  """The account's password. IMPORTANT: This field is never populated when being read from the database. This field is only used when setting passwords from the UI"""
  password: String

  """The account's encryption password. IMPORTANT: This field is never populated when being read from the database. This field is only used when setting passwords from the UI"""
  privPassword: String

  """The account's privacy/encryption protocol."""
  privProtocol: SnmpV3PrivProtocol

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.SnmpV3Account'
"""An account object for the SNMPv3 protocol containing login, password, auth type, priv type, priv password and comment. The password is for security reasons write-only."""
input SnmpV3AccountInput {
  """The account's authentication protocol."""
  authProtocol: SnmpV3AuthProtocol

  """The account's comment string."""
  comment: String

  """The account's login name."""
  login: String

  """The account's password. IMPORTANT: This field is never populated when being read from the database. This field is only used when setting passwords from the UI"""
  password: String

  """The account's encryption password. IMPORTANT: This field is never populated when being read from the database. This field is only used when setting passwords from the UI"""
  privPassword: String

  """The account's privacy/encryption protocol."""
  privProtocol: SnmpV3PrivProtocol

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.passwordstate.PasswordstateAccount'
"""This object contains information about the thycotic secret server."""
type PasswordstateAccount {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The account name"""
  name: String

  """The internal passwordstate account id"""
  passwordId: Long

  """The passwordstate secret server that this secret belongs to."""
  passwordstateServerConnection: PasswordstateServerConnection

  """The username used for this credential."""
  username: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.passwordstate.PasswordstateAccount'
"""This object contains information about the thycotic secret server."""
input PasswordstateAccountInput {
  """The account name"""
  name: String

  """The internal passwordstate account id"""
  passwordId: Long

  """The passwordstate secret server that this secret belongs to."""
  passwordstateServerConnection: PasswordstateServerConnectionInput

  """The username used for this credential."""
  username: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.passwordstate.PasswordstatePasswordList'
"""A password list within the Passwordstate password manager"""
type PasswordstatePasswordList {
  """The list of accounts managed by this password list"""
  accounts: [PasswordstateAccount]

  """The list's internal id in passwordstate"""
  listId: Long

  """The list's name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.passwordstate.PasswordstateServerConnection'
"""This object contains information about a passwordstate server connection (either a systemwide connection or to a single list)."""
type PasswordstateServerConnection {
  """The api key to authenticate against the passwordstate server."""
  apiKey: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The server's descriptive name as provided by the user."""
  name: String

  """When the API refers to a password list id, then this passwordListId refers to the internal list id within passwordstate."""
  passwordListId: Long

  """The port that the server is listening on."""
  port: Int

  """The server's address (IP address or hostname)."""
  serverAddress: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.passwordstate.PasswordstateServerConnection'
"""This object contains information about a passwordstate server connection (either a systemwide connection or to a single list)."""
input PasswordstateServerConnectionInput {
  """The api key to authenticate against the passwordstate server."""
  apiKey: String

  """The server's descriptive name as provided by the user."""
  name: String

  """When the API refers to a password list id, then this passwordListId refers to the internal list id within passwordstate."""
  passwordListId: Long

  """The port that the server is listening on."""
  port: Int

  """The server's address (IP address or hostname)."""
  serverAddress: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.thycotic.ThycoticFolder'
"""A folder within the Thycotic password management system"""
type ThycoticFolder {
  """The list of Thycotic accounts assigned to this folder"""
  accounts: [ThycoticSecretServerAccount]

  """The Thycotic folder ID"""
  id: Long

  """The folder name"""
  name: String

  """The list of Thycotic subfolders folder"""
  subfolders: [ThycoticFolder]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.thycotic.ThycoticFolder'
"""A folder within the Thycotic password management system"""
input ThycoticFolderInput {
  """The list of Thycotic accounts assigned to this folder"""
  accounts: [ThycoticSecretServerAccountInput]

  """The Thycotic folder ID"""
  id: Long

  """The folder name"""
  name: String

  """The list of Thycotic subfolders folder"""
  subfolders: [ThycoticFolderInput]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.thycotic.ThycoticSecretServer'
"""This object contains information about the thycotic secret server."""
type ThycoticSecretServer {
  """The list of folders"""
  folders: [ThycoticFolder]

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """A flag that indicates whether the Thychotic server is hosted in the cloud."""
  isCloudServer: Boolean

  """The server's descriptive name as provided by the user."""
  name: String

  """The account's password. IMPORTANT: This field is never populated when being read from the database. This field is only used when setting passwords from the UI"""
  password: String

  """The port that the server is listening on."""
  port: Int

  """The server's address (IP address or hostname)."""
  serverAddress: String

  """The username used to authenticate against the Thycotic server.."""
  username: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.thycotic.ThycoticSecretServer'
"""This object contains information about the thycotic secret server."""
input ThycoticSecretServerInput {
  """The list of folders"""
  folders: [ThycoticFolderInput]

  """A flag that indicates whether the Thychotic server is hosted in the cloud."""
  isCloudServer: Boolean

  """The server's descriptive name as provided by the user."""
  name: String

  """The account's password. IMPORTANT: This field is never populated when being read from the database. This field is only used when setting passwords from the UI"""
  password: String

  """The port that the server is listening on."""
  port: Int

  """The server's address (IP address or hostname)."""
  serverAddress: String

  """The username used to authenticate against the Thycotic server.."""
  username: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.thycotic.ThycoticSecretServerAccount'
"""This object contains references an account within the thycotic secret server."""
type ThycoticSecretServerAccount {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The secret name"""
  name: String

  """The thycotic parent folder."""
  parentFolder: ThycoticFolder

  """The thycotic secret id. This id identifies a login/password within the secret server."""
  secretId: Long

  """The thycotic template id."""
  templateId: Long

  """The thycotic template name."""
  templateName: String

  """The thycotic secret server that this secret belongs to."""
  thycoticSecretServer: ThycoticSecretServer

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.credentials.passwordmanager.thycotic.ThycoticSecretServerAccount'
"""This object contains references an account within the thycotic secret server."""
input ThycoticSecretServerAccountInput {
  """The secret name"""
  name: String

  """The thycotic parent folder."""
  parentFolder: ThycoticFolderInput

  """The thycotic secret id. This id identifies a login/password within the secret server."""
  secretId: Long

  """The thycotic template id."""
  templateId: Long

  """The thycotic template name."""
  templateName: String

  """The thycotic secret server that this secret belongs to."""
  thycoticSecretServer: ThycoticSecretServerInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.DeviceGroup'
"""A device group can be used to group devices by different aspects (network membership, basic device properties etc.)."""
type DeviceGroup {
  """A flag whether to also assign directly attached devices of group members to the group (e.g. attached monitors)"""
  assignDirectlyAttachedDevices: Boolean

  """The child directories."""
  children: [DeviceGroup]

  """The device group's description."""
  description: String

  """Returns the list of devices assigned to the group. Note that the root group has implicitly all devices assigned to it. Therefore, the root group will always return an empty set of devices (this is a JPA limitation which we might find a workaround in future versions)"""
  devices: [Device]

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The device group's name."""
  name: String

  """The parent device group."""
  parentDeviceGroup: DeviceGroup

  """The device group's type."""
  type: DeviceGroupType

  """A flag whether to use the default accounts from all Unix platforms for unknown devices."""
  useDefaultAccountsForUnknown: Boolean

  """Gets the list of directory items that make up this definition"""
  definingDirectoryItems: [Directory]

  """Gets the list of IP4 networks that make up this definition"""
  definingIP4Networks: [IP4Network]

  """Gets the list of IP6 networks that make up this definition"""
  definingIP6Networks: [IP6Network]

  """Gets the list of network neighborhoods (domains or workgroups) that make up this definition"""
  definingNetworkNeighborhoods: [NetworkNeighborhood]

  """Flag whether the device group is the root group."""
  isRoot: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.DeviceGroup'
"""A device group can be used to group devices by different aspects (network membership, basic device properties etc.)."""
input DeviceGroupInput {
  """A flag whether to also assign directly attached devices of group members to the group (e.g. attached monitors)"""
  assignDirectlyAttachedDevices: Boolean

  """The child directories."""
  children: [DeviceGroupInput]

  """The device group's description."""
  description: String

  """Returns the list of devices assigned to the group. Note that the root group has implicitly all devices assigned to it. Therefore, the root group will always return an empty set of devices (this is a JPA limitation which we might find a workaround in future versions)"""
  devices: [DeviceInput]

  """The device group's name."""
  name: String

  """The parent device group."""
  parentDeviceGroup: DeviceGroupInput

  """The device group's type."""
  type: DeviceGroupType

  """A flag whether to use the default accounts from all Unix platforms for unknown devices."""
  useDefaultAccountsForUnknown: Boolean

  """Gets the list of directory items that make up this definition"""
  definingDirectoryItems: [DirectoryInput]

  """Gets the list of IP4 networks that make up this definition"""
  definingIP4Networks: [IP4NetworkInput]

  """Gets the list of IP6 networks that make up this definition"""
  definingIP6Networks: [IP6NetworkInput]

  """Gets the list of network neighborhoods (domains or workgroups) that make up this definition"""
  definingNetworkNeighborhoods: [NetworkNeighborhoodInput]

  """Flag whether the device group is the root group."""
  isRoot: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.DiscoveryJob'
"""A discovery job object. A discovery job is a definition of networks, domains, AD entries to be scanned. There can be multiple jobs scanning different areas or the network."""
type DiscoveryJob {
  """Sync directories trees."""
  agingoutCompleted: Boolean

  """The description for the job."""
  description: String

  """The list of device queue entries for this discovery job."""
  deviceQueueEntries: [DiscoveryDeviceQueueItem]

  """Sync computer accounts."""
  directorySyncComputerAccounts: Boolean

  """Sync directories trees."""
  directorySyncDirectoryTree: Boolean

  """Sync directories even on networks."""
  directorySyncNetworks: Boolean

  """Sync user groups."""
  directorySyncUserGroups: Boolean

  """Sync users."""
  directorySyncUsers: Boolean

  """The discovery cloud sync log as XML string."""
  discoveryCloudSyncLog: String

  """The discovery config log as XML string."""
  discoveryConfigLog: String

  """The discovery directory log as XML string."""
  discoveryDirectoryLog: String

  """The discovery directory sync log as XML string."""
  discoveryDirectorySyncLog: String

  """The discovery network neighborhood log as XML string."""
  discoveryNetworkNeighborhoodLog: String

  """The discovery network sync log as XML string."""
  discoveryNetworkSyncLog: String

  """The discovery ping log as XML string."""
  discoveryPingLog: String

  """Minimum time between two discovery jobs."""
  donotDiscoverTwiceWithinnSeconds: Int

  """The execution schedule of this job"""
  executionSchedule: Schedule

  """The internal id for this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The last timestamp the job was finished."""
  lastFinishedAt: DateTime

  """The last timestamp the job was started."""
  lastStartAt: DateTime

  """The discovery config log modification time."""
  logModificationTime: DateTime

  """Maximum number of devices parallel discovered."""
  maxConcurrentDevices: Int

  """The name for the job."""
  name: String

  """The status of the job."""
  status: TaskStatus

  """Sync cloud services."""
  syncCloudServices: Boolean

  """Returns the discovery cloud sync log as parsed object with a hierarchy. This method is used by the UI to display a discovery cloud sync log in a tree structure"""
  discoveryCloudSyncLogObject: Object

  """Returns the discovery config log as parsed object with a hierarchy. This method is used by the UI to display a discovery config log in a tree structure"""
  discoveryConfigLogObject: Object

  """Returns the discovery directory log as parsed object with a hierarchy. This method is used by the UI to display a discovery directory log in a tree structure"""
  discoveryDirectoryLogObject: Object

  """Returns the discovery directory sync log as parsed object with a hierarchy. This method is used by the UI to display a discovery directory sync log in a tree structure"""
  discoveryDirectorySyncLogObject: Object

  """Returns the discovery network neighborhood log as parsed object with a hierarchy. This method is used by the UI to display a discovery network neighborhood log in a tree structure"""
  discoveryNetworkNeighborhoodLogObject: Object

  """Returns the discovery network sync log as parsed object with a hierarchy. This method is used by the UI to display a discovery network sync log in a tree structure"""
  discoveryNetworkSyncLogObject: Object

  """Returns the discovery ping log as parsed object with a hierarchy. This method is used by the UI to display a discovery ping log in a tree structure"""
  discoveryPingLogObject: Object

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.DiscoveryJob'
"""A discovery job object. A discovery job is a definition of networks, domains, AD entries to be scanned. There can be multiple jobs scanning different areas or the network."""
input DiscoveryJobInput {
  """Sync directories trees."""
  agingoutCompleted: Boolean

  """The description for the job."""
  description: String

  """The list of device queue entries for this discovery job."""
  deviceQueueEntries: [DiscoveryDeviceQueueItemInput]

  """Sync computer accounts."""
  directorySyncComputerAccounts: Boolean

  """Sync directories trees."""
  directorySyncDirectoryTree: Boolean

  """Sync directories even on networks."""
  directorySyncNetworks: Boolean

  """Sync user groups."""
  directorySyncUserGroups: Boolean

  """Sync users."""
  directorySyncUsers: Boolean

  """The discovery cloud sync log as XML string."""
  discoveryCloudSyncLog: String

  """The discovery config log as XML string."""
  discoveryConfigLog: String

  """The discovery directory log as XML string."""
  discoveryDirectoryLog: String

  """The discovery directory sync log as XML string."""
  discoveryDirectorySyncLog: String

  """The discovery network neighborhood log as XML string."""
  discoveryNetworkNeighborhoodLog: String

  """The discovery network sync log as XML string."""
  discoveryNetworkSyncLog: String

  """The discovery ping log as XML string."""
  discoveryPingLog: String

  """Minimum time between two discovery jobs."""
  donotDiscoverTwiceWithinnSeconds: Int

  """The execution schedule of this job"""
  executionSchedule: ScheduleInput

  """The last timestamp the job was finished."""
  lastFinishedAt: DateTime

  """The last timestamp the job was started."""
  lastStartAt: DateTime

  """The discovery config log modification time."""
  logModificationTime: DateTime

  """Maximum number of devices parallel discovered."""
  maxConcurrentDevices: Int

  """The name for the job."""
  name: String

  """The status of the job."""
  status: TaskStatus

  """Sync cloud services."""
  syncCloudServices: Boolean

  """Returns the discovery cloud sync log as parsed object with a hierarchy. This method is used by the UI to display a discovery cloud sync log in a tree structure"""
  discoveryCloudSyncLogObject: Object

  """Returns the discovery config log as parsed object with a hierarchy. This method is used by the UI to display a discovery config log in a tree structure"""
  discoveryConfigLogObject: Object

  """Returns the discovery directory log as parsed object with a hierarchy. This method is used by the UI to display a discovery directory log in a tree structure"""
  discoveryDirectoryLogObject: Object

  """Returns the discovery directory sync log as parsed object with a hierarchy. This method is used by the UI to display a discovery directory sync log in a tree structure"""
  discoveryDirectorySyncLogObject: Object

  """Returns the discovery network neighborhood log as parsed object with a hierarchy. This method is used by the UI to display a discovery network neighborhood log in a tree structure"""
  discoveryNetworkNeighborhoodLogObject: Object

  """Returns the discovery network sync log as parsed object with a hierarchy. This method is used by the UI to display a discovery network sync log in a tree structure"""
  discoveryNetworkSyncLogObject: Object

  """Returns the discovery ping log as parsed object with a hierarchy. This method is used by the UI to display a discovery ping log in a tree structure"""
  discoveryPingLogObject: Object

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.Schedule'
"""A schedule defines when and how often to execute recurring tasks."""
type Schedule {
  """The schedule creation time."""
  creationTime: DateTime

  """The schedule day of month"""
  dayOfMonth: Int

  """The schedule day of week"""
  dayOfWeek: Int

  """The schedule exceptions"""
  exceptions: [ScheduleException]

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The schedule modification time."""
  modificationTime: DateTime

  """The schedule frequency in seconds"""
  secondsFrequency: Int

  """The schedule timestamp"""
  ts: DateTime

  """The schedule type"""
  type: ScheduleType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.Schedule'
"""A schedule defines when and how often to execute recurring tasks."""
input ScheduleInput {
  """The schedule creation time."""
  creationTime: DateTime

  """The schedule day of month"""
  dayOfMonth: Int

  """The schedule day of week"""
  dayOfWeek: Int

  """The schedule exceptions"""
  exceptions: [ScheduleExceptionInput]

  """The schedule modification time."""
  modificationTime: DateTime

  """The schedule frequency in seconds"""
  secondsFrequency: Int

  """The schedule timestamp"""
  ts: DateTime

  """The schedule type"""
  type: ScheduleType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.ScheduleException'
"""The schedule exception. The exception defines when a scheduled job should NOT be running."""
type ScheduleException {
  """The schedule creation time."""
  creationTime: DateTime

  """The days of the exception"""
  days: [Int]

  """The schedule exception start time"""
  fromTime: DateTime

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The schedule modification time."""
  modificationTime: DateTime

  """The schedule which this exception belongs to"""
  schedule: Schedule

  """The schedule exception end time"""
  toTime: DateTime

  """The schedule type"""
  type: ScheduleType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.ScheduleException'
"""The schedule exception. The exception defines when a scheduled job should NOT be running."""
input ScheduleExceptionInput {
  """The schedule creation time."""
  creationTime: DateTime

  """The days of the exception"""
  days: [Int]

  """The schedule exception start time"""
  fromTime: DateTime

  """The schedule modification time."""
  modificationTime: DateTime

  """The schedule which this exception belongs to"""
  schedule: ScheduleInput

  """The schedule exception end time"""
  toTime: DateTime

  """The schedule type"""
  type: ScheduleType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.ScheduledJob'
"""The schedule job entity"""
type ScheduledJob {
  """The scheduled job creation time."""
  creationTime: DateTime

  """The discovery job haveing this scheduled job. Can be null when the scheduled job does not belong to an entity"""
  discoveryJob: DiscoveryJob

  """The scheduled job enabled flag"""
  enabled: Boolean

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The scheduled job modification time."""
  modificationTime: DateTime

  """The scheduled job name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.config.ScheduledJob'
"""The schedule job entity"""
input ScheduledJobInput {
  """The scheduled job creation time."""
  creationTime: DateTime

  """The discovery job haveing this scheduled job. Can be null when the scheduled job does not belong to an entity"""
  discoveryJob: DiscoveryJobInput

  """The scheduled job enabled flag"""
  enabled: Boolean

  """The scheduled job modification time."""
  modificationTime: DateTime

  """The scheduled job name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.queue.DiscoveryDeviceQueueItem'
"""A device queue item."""
type DiscoveryDeviceQueueItem {
  """The corresponding discovery job when the discovery was triggered by a discovery job. Otherwise null"""
  discoveryJob: DiscoveryJob

  """The device's hostname in case the hostname was added and not an IP address."""
  hostname: String

  """The internal id for this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """Should the discovery for this item ignore filters?"""
  ignoreFilters: Boolean

  """The IP address (either IP4 or IP6)."""
  ipAddress: String

  """The queue item priority. Items with a higher priority get scanned earlier."""
  priority: DiscoveryQueuePriority

  """The queue status."""
  source: DiscoveryQueueSource

  """The queue item status."""
  status: DiscoveryQueueItemStatus

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.discovery.queue.DiscoveryDeviceQueueItem'
"""A device queue item."""
input DiscoveryDeviceQueueItemInput {
  """The corresponding discovery job when the discovery was triggered by a discovery job. Otherwise null"""
  discoveryJob: DiscoveryJobInput

  """The device's hostname in case the hostname was added and not an IP address."""
  hostname: String

  """Should the discovery for this item ignore filters?"""
  ignoreFilters: Boolean

  """The IP address (either IP4 or IP6)."""
  ipAddress: String

  """The queue item priority. Items with a higher priority get scanned earlier."""
  priority: DiscoveryQueuePriority

  """The queue status."""
  source: DiscoveryQueueSource

  """The queue item status."""
  status: DiscoveryQueueItemStatus

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.event.Event'
"""A event object."""
type Event {
  """The type of the event."""
  application: String

  """The creation timestamp of the event."""
  creationTime: DateTime

  """The description for the event."""
  description: String

  """The job that an event belongs to."""
  discoveryCycle: DiscoveryJob

  """The type of the event."""
  eventType: EventType

  """The internal id for this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The modification timestamp of the event."""
  modificationTime: DateTime

  """The severity of the event."""
  severity: EventSeverity

  """The type of the event."""
  subject: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.event.Event'
"""A event object."""
input EventInput {
  """The type of the event."""
  application: String

  """The creation timestamp of the event."""
  creationTime: DateTime

  """The description for the event."""
  description: String

  """The job that an event belongs to."""
  discoveryCycle: DiscoveryJobInput

  """The type of the event."""
  eventType: EventType

  """The modification timestamp of the event."""
  modificationTime: DateTime

  """The severity of the event."""
  severity: EventSeverity

  """The type of the event."""
  subject: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.firmware.Bios'
"""BIOS information"""
type Bios {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The license for a BIOS"""
  license: License

  """The BIOS manufacturer"""
  manufacturer: String

  """The BIOS name"""
  name: String

  """The BIOS release date."""
  releaseDate: DateTime

  """The SMBIOS major version"""
  smbiosMajor: Int

  """The SMBIOS minor version"""
  smbiosMinor: Int

  """The BIOS unique id"""
  uniqueId: String

  """The BIOS version"""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.firmware.Bios'
"""BIOS information"""
input BiosInput {
  """The license for a BIOS"""
  license: LicenseInput

  """The BIOS manufacturer"""
  manufacturer: String

  """The BIOS name"""
  name: String

  """The BIOS release date."""
  releaseDate: DateTime

  """The SMBIOS major version"""
  smbiosMajor: Int

  """The SMBIOS minor version"""
  smbiosMinor: Int

  """The BIOS unique id"""
  uniqueId: String

  """The BIOS version"""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.DeviceRelation'
"""A relation between two devices. The kind of relation is defined by the relation type."""
type DeviceRelation {
  """A display name for the relation (if any)"""
  displayName: String

  """The state for a relation between two devices. This state is used
for instance for virtualation relations between the physical host and the VM
in order to indicate the virtual machine state"""
  state: ConnectorState

  """The direction of the relation. Forward means source initiated, Backward means destination initiated."""
  direction: ConnectionDirection

  """The connector internal id. The internal id depends on the relation type.
For VMware virtual machine relations, the type can be the VM UUID (unique id)."""
  internalId: String

  """The relation type for relations between two devices"""
  relationType: ConnectorType

  """The source device for the relation"""
  sourceDevice: Device

  """The target device for the relation"""
  targetDevice: Device

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.DeviceRelation'
"""A relation between two devices. The kind of relation is defined by the relation type."""
input DeviceRelationInput {
  """A display name for the relation (if any)"""
  displayName: String

  """The state for a relation between two devices. This state is used
for instance for virtualation relations between the physical host and the VM
in order to indicate the virtual machine state"""
  state: ConnectorState

  """The direction of the relation. Forward means source initiated, Backward means destination initiated."""
  direction: ConnectionDirection

  """The connector internal id. The internal id depends on the relation type.
For VMware virtual machine relations, the type can be the VM UUID (unique id)."""
  internalId: String

  """The relation type for relations between two devices"""
  relationType: ConnectorType

  """The source device for the relation"""
  sourceDevice: DeviceInput

  """The target device for the relation"""
  targetDevice: DeviceInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.DiskPartition'
"""A partition on a physical disk."""
type DiskPartition {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The partition name."""
  name: String

  """The disk parition size in KB."""
  size: Long

  """The partition type."""
  type: DiskPartitionType

  """The parition type as a string as reported by the device"""
  typeString: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.DiskPartition'
"""A partition on a physical disk."""
input DiskPartitionInput {
  """The partition name."""
  name: String

  """The disk parition size in KB."""
  size: Long

  """The partition type."""
  type: DiskPartitionType

  """The parition type as a string as reported by the device"""
  typeString: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.LogicalDisk'
"""A logical disk drive."""
type LogicalDisk {
  """The logical disk encryption algorithm."""
  encryptionAlgorithm: DiskEncryptionAlgorithm

  """The logical disk encryption method."""
  encryptionMethod: DiskEncryptionMethod

  """The logical disk filesystem type."""
  fileSystem: String

  """The free space on this logical disk in KB."""
  freeSpace: Long

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The logical disk location. The location might be in a remote disk array."""
  location: String

  """The logical disk mount point."""
  mountPoint: String

  """The logical disk name."""
  name: String

  """A logical disk's serial number."""
  serialNumber: String

  """A logical disk's total size in KB."""
  totalSize: Long

  """The used space on this logical disk in KB."""
  usedSpace: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.LogicalDisk'
"""A logical disk drive."""
input LogicalDiskInput {
  """The logical disk encryption algorithm."""
  encryptionAlgorithm: DiskEncryptionAlgorithm

  """The logical disk encryption method."""
  encryptionMethod: DiskEncryptionMethod

  """The logical disk filesystem type."""
  fileSystem: String

  """The free space on this logical disk in KB."""
  freeSpace: Long

  """The logical disk location. The location might be in a remote disk array."""
  location: String

  """The logical disk mount point."""
  mountPoint: String

  """The logical disk name."""
  name: String

  """A logical disk's serial number."""
  serialNumber: String

  """A logical disk's total size in KB."""
  totalSize: Long

  """The used space on this logical disk in KB."""
  usedSpace: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.MappedPrinter'
"""A mapped printer mapped by the operating system."""
type MappedPrinter {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The printer's IP4 address."""
  ip4Address: String

  """The printer's IP6 address."""
  ip6Address: String

  """The printer name."""
  name: String

  """The operating system."""
  operatingSystem: OperatingSystem

  """The printer port name."""
  portName: String

  """The printer device."""
  printerDevice: Device

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.MappedPrinter'
"""A mapped printer mapped by the operating system."""
input MappedPrinterInput {
  """The printer's IP4 address."""
  ip4Address: String

  """The printer's IP6 address."""
  ip6Address: String

  """The printer name."""
  name: String

  """The operating system."""
  operatingSystem: OperatingSystemInput

  """The printer port name."""
  portName: String

  """The printer device."""
  printerDevice: DeviceInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.MemoryModule'
"""The memory module represents a memory module within a memory module slot on the mainboard."""
type MemoryModule {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The memory module manufacturer."""
  manufacturer: String

  """The memory module's type"""
  memoryType: MemoryType

  """The memory module model."""
  model: String

  """The memory module serial number."""
  serialNumber: String

  """The memory module size in MB."""
  size: Long

  """The memory module speed in Hz."""
  speed: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.MemoryModule'
"""The memory module represents a memory module within a memory module slot on the mainboard."""
input MemoryModuleInput {
  """The memory module manufacturer."""
  manufacturer: String

  """The memory module's type"""
  memoryType: MemoryType

  """The memory module model."""
  model: String

  """The memory module serial number."""
  serialNumber: String

  """The memory module size in MB."""
  size: Long

  """The memory module speed in Hz."""
  speed: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.MemoryModuleSlot'
"""The memory module slot represents a slot for a memory module on the mainboard."""
type MemoryModuleSlot {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The memoryModule assigned to this slot"""
  memoryModule: MemoryModule

  """The memory module slot id."""
  slotId: String

  """The memory module socket designation"""
  socketDesignation: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.MemoryModuleSlot'
"""The memory module slot represents a slot for a memory module on the mainboard."""
input MemoryModuleSlotInput {
  """The memoryModule assigned to this slot"""
  memoryModule: MemoryModuleInput

  """The memory module slot id."""
  slotId: String

  """The memory module socket designation"""
  socketDesignation: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.Module'
"""The module represents a module within a device."""
type Module {
  """The module description."""
  description: String

  """The module firmware version."""
  fwVersion: String

  """The module hardware version."""
  hwVersion: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The module manufacturer."""
  manufacturer: String

  """The module model."""
  model: String

  """The module os version."""
  osVersion: String

  """The  module serial number."""
  serialNumber: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.Module'
"""The module represents a module within a device."""
input ModuleInput {
  """The module description."""
  description: String

  """The module firmware version."""
  fwVersion: String

  """The module hardware version."""
  hwVersion: String

  """The module manufacturer."""
  manufacturer: String

  """The module model."""
  model: String

  """The module os version."""
  osVersion: String

  """The  module serial number."""
  serialNumber: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.ModuleSlot'
"""The module slot represents a slot for a module in a device."""
type ModuleSlot {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The module assigned to this slot"""
  module: Module

  """The module slot id."""
  slotId: String

  """The module socket designation"""
  socketDesignation: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.ModuleSlot'
"""The module slot represents a slot for a module in a device."""
input ModuleSlotInput {
  """The module assigned to this slot"""
  module: ModuleInput

  """The module slot id."""
  slotId: String

  """The module socket designation"""
  socketDesignation: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.PhysicalDisk'
"""The physical disk represents a disk attached to a disk slot."""
type PhysicalDisk {
  """The disk bus type."""
  busType: BusType

  """A disk's firmware version."""
  fwVersion: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The disk manufacturer."""
  manufacturer: String

  """The disk media type."""
  mediaType: DiskMediaType

  """The disk model."""
  model: String

  """The list of disk partitions."""
  partitions: [DiskPartition]

  """The disk serialNumber."""
  serialNumber: String

  """The disk size in KB."""
  size: Long

  """The disk status."""
  status: DiskStatus

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.PhysicalDisk'
"""The physical disk represents a disk attached to a disk slot."""
input PhysicalDiskInput {
  """The disk bus type."""
  busType: BusType

  """A disk's firmware version."""
  fwVersion: String

  """The disk manufacturer."""
  manufacturer: String

  """The disk media type."""
  mediaType: DiskMediaType

  """The disk model."""
  model: String

  """The list of disk partitions."""
  partitions: [DiskPartitionInput]

  """The disk serialNumber."""
  serialNumber: String

  """The disk size in KB."""
  size: Long

  """The disk status."""
  status: DiskStatus

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.PhysicalDiskSlot'
"""The physical disk slot represents the slot to which a disk is connected."""
type PhysicalDiskSlot {
  """The physical disk assigned to this slot"""
  disk: PhysicalDisk

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The physical disk slotid."""
  slotId: String

  """The physical disk socket designation"""
  socketDesignation: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.PhysicalDiskSlot'
"""The physical disk slot represents the slot to which a disk is connected."""
input PhysicalDiskSlotInput {
  """The physical disk assigned to this slot"""
  disk: PhysicalDiskInput

  """The physical disk slotid."""
  slotId: String

  """The physical disk socket designation"""
  socketDesignation: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.Processor'
"""The processor represents a processor within a processor slot on the mainboard."""
type Processor {
  """The processor address width."""
  addressWidth: Int

  """The current clock speed at the time of the scan in Mhz"""
  currentClockSpeed: Int

  """The processor data width."""
  dataWidth: Int

  """The processor device id."""
  devID: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The processor level 2 cache size."""
  l2CacheSize: Int

  """The processor level 2 cache speed."""
  l2CacheSpeed: Int

  """The processor level 3 cache size."""
  l3CacheSize: Int

  """The processor level 3 cache speed."""
  l3CacheSpeed: Int

  """The processor manufacturer."""
  manufacturer: String

  """The maximal clock speed at the time of the scan in Mhz"""
  maxClockSpeed: Int

  """The processor model."""
  model: String

  """The number of cores."""
  numberOfCores: Int

  """The number of enabled cores. Some servers allow to disable cores.
For instance to be license compliant for software that is licensed per core."""
  numberOfEnabledCores: Int

  """The number of threads."""
  numberOfThreads: Int

  """The processor raw model as it comes from the BIOS information."""
  rawModel: String

  """The maximal clock speed at the time of the scan in Mhz"""
  status: ProcessorStatus

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.Processor'
"""The processor represents a processor within a processor slot on the mainboard."""
input ProcessorInput {
  """The processor address width."""
  addressWidth: Int

  """The current clock speed at the time of the scan in Mhz"""
  currentClockSpeed: Int

  """The processor data width."""
  dataWidth: Int

  """The processor device id."""
  devID: String

  """The processor level 2 cache size."""
  l2CacheSize: Int

  """The processor level 2 cache speed."""
  l2CacheSpeed: Int

  """The processor level 3 cache size."""
  l3CacheSize: Int

  """The processor level 3 cache speed."""
  l3CacheSpeed: Int

  """The processor manufacturer."""
  manufacturer: String

  """The maximal clock speed at the time of the scan in Mhz"""
  maxClockSpeed: Int

  """The processor model."""
  model: String

  """The number of cores."""
  numberOfCores: Int

  """The number of enabled cores. Some servers allow to disable cores.
For instance to be license compliant for software that is licensed per core."""
  numberOfEnabledCores: Int

  """The number of threads."""
  numberOfThreads: Int

  """The processor raw model as it comes from the BIOS information."""
  rawModel: String

  """The maximal clock speed at the time of the scan in Mhz"""
  status: ProcessorStatus

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.ProcessorSlot'
"""The processor slot represents a slot for the processor on the mainboard."""
type ProcessorSlot {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The processor assigned to this slot"""
  processor: Processor

  """The processor slot id."""
  slotId: String

  """The processor socket designation"""
  socketDesignation: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.ProcessorSlot'
"""The processor slot represents a slot for the processor on the mainboard."""
input ProcessorSlotInput {
  """The processor assigned to this slot"""
  processor: ProcessorInput

  """The processor slot id."""
  slotId: String

  """The processor socket designation"""
  socketDesignation: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.SystemBoard'
"""The device's system board."""
type SystemBoard {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The system board manufacturer."""
  manufacturer: String

  """The system board model."""
  model: String

  """The system board part number."""
  partNumber: String

  """The system board serial number."""
  serialNumber: String

  """The system board version."""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.SystemBoard'
"""The device's system board."""
input SystemBoardInput {
  """The system board manufacturer."""
  manufacturer: String

  """The system board model."""
  model: String

  """The system board part number."""
  partNumber: String

  """The system board serial number."""
  serialNumber: String

  """The system board version."""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.TpmModule'
"""A TPM module used for hardware encryption."""
type TpmModule {
  """A flag whether the TPM module is activated."""
  activated: Boolean

  """The corresponding device."""
  device: Device

  """A flag whether the TPM module is enabled."""
  enabled: Boolean

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """A TPM module's manufacturer."""
  manufacturer: String

  """A flag whether the TPM module is owned."""
  owned: Boolean

  """A TPM module's physical presence version."""
  physicalPresenceVersion: String

  """A TPM module's specification version."""
  specVersion: String

  """A TPM module's version."""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.TpmModule'
"""A TPM module used for hardware encryption."""
input TpmModuleInput {
  """A flag whether the TPM module is activated."""
  activated: Boolean

  """The corresponding device."""
  device: DeviceInput

  """A flag whether the TPM module is enabled."""
  enabled: Boolean

  """A TPM module's manufacturer."""
  manufacturer: String

  """A flag whether the TPM module is owned."""
  owned: Boolean

  """A TPM module's physical presence version."""
  physicalPresenceVersion: String

  """A TPM module's specification version."""
  specVersion: String

  """A TPM module's version."""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.VideoController'
"""The video controller represents a video controller within a video controller slot on the mainboard."""
type VideoController {
  """The video controller's current horizontal resolution."""
  horizontalResolution: Int

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The video controller's installed memory in KB."""
  installedRamKB: Int

  """The video controller manufacturer."""
  manufacturer: String

  """The video controller model."""
  model: String

  """The video controller serial number."""
  serialNumber: String

  """The video controller's current vertical resolution."""
  verticalResolution: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.VideoController'
"""The video controller represents a video controller within a video controller slot on the mainboard."""
input VideoControllerInput {
  """The video controller's current horizontal resolution."""
  horizontalResolution: Int

  """The video controller's installed memory in KB."""
  installedRamKB: Int

  """The video controller manufacturer."""
  manufacturer: String

  """The video controller model."""
  model: String

  """The video controller serial number."""
  serialNumber: String

  """The video controller's current vertical resolution."""
  verticalResolution: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.VideoControllerSlot'
"""The video controller slot represents a slot for a video controller on the mainboard."""
type VideoControllerSlot {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The video controller slot id."""
  slotId: String

  """The video controller socket designation"""
  socketDesignation: String

  """The video controller assigned to this slot"""
  videoController: VideoController

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.VideoControllerSlot'
"""The video controller slot represents a slot for a video controller on the mainboard."""
input VideoControllerSlotInput {
  """The video controller slot id."""
  slotId: String

  """The video controller socket designation"""
  socketDesignation: String

  """The video controller assigned to this slot"""
  videoController: VideoControllerInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.network.NetworkInterface'
"""A network interface"""
type NetworkInterface {
  """The network interface's administrative status"""
  administrativeStatus: InterfaceStatus

  """The network interface's annotation (often configured manually by the admins)."""
  annotation: String

  """The network interface's description."""
  description: String

  """The owning device"""
  device: Device

  """The DHCP configuration (if it exists)."""
  dhcpConfig: IP4DHCPConfiguration

  """A flag whether this network interface has DHCP enabled or not"""
  dhcpEnabled: Boolean

  """The DNS suffix search order."""
  dnsSearchSuffixes: [String]

  """The list of DNS Server configs (ordered by the index of definition)."""
  dnsServers: [IPDnsServerConfiguration]

  """The DNS suffix configured for this network interface"""
  dnsSuffix: String

  """The network interface's duplex mode"""
  duplexMode: DuplexMode

  """The network interface's extended description."""
  extendedDescription: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The network interface's physical address (MAC or WWN)."""
  index: Int

  """The list of ip4 transports including their configuration (subnet mask, hostnames)."""
  ip4Transports: [IP4Transport]

  """The list of ip6 transports including their configuration (network prefix, hostnames)."""
  ip6Transports: [IP6Transport]

  """The network interface's MTU configuration."""
  mtu: Int

  """The network interface's operational status"""
  operationalStatus: InterfaceStatus

  """The network interface's physical address (MAC or WWN)."""
  physicalAddress: String

  """The network interface's port id."""
  portId: Int

  """The network interface's speed in Bits per second."""
  speed: Long

  """The network interface's type"""
  type: InterfaceType

  """A flag that indicates whether this mac address should be used to identify devices. Note that not all mac addresses can be used. For instance VPN mac addresses are often the same on ALL VPN clients!"""
  useForIdentification: Boolean

  """The list of configured vlans for this network interface"""
  vlans: [Vlan]

  """The list of network interfaces physically connected to this interface.
Note that there might be more than one interface in cases where you have non-managed
switches conneting devices"""
  connectedNetworkInterfaces: [NetworkInterface]

  """The list of topology connections for this interface.
Note that there might be more than one interface in cases where you have non-managed
switches conneting devices"""
  topologyConnections: [TopologyConnection]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.network.NetworkInterface'
"""A network interface"""
input NetworkInterfaceInput {
  """The network interface's administrative status"""
  administrativeStatus: InterfaceStatus

  """The network interface's annotation (often configured manually by the admins)."""
  annotation: String

  """The network interface's description."""
  description: String

  """The owning device"""
  device: DeviceInput

  """The DHCP configuration (if it exists)."""
  dhcpConfig: IP4DHCPConfigurationInput

  """A flag whether this network interface has DHCP enabled or not"""
  dhcpEnabled: Boolean

  """The DNS suffix search order."""
  dnsSearchSuffixes: [String]

  """The list of DNS Server configs (ordered by the index of definition)."""
  dnsServers: [IPDnsServerConfigurationInput]

  """The DNS suffix configured for this network interface"""
  dnsSuffix: String

  """The network interface's duplex mode"""
  duplexMode: DuplexMode

  """The network interface's extended description."""
  extendedDescription: String

  """The network interface's physical address (MAC or WWN)."""
  index: Int

  """The list of ip4 transports including their configuration (subnet mask, hostnames)."""
  ip4Transports: [IP4TransportInput]

  """The list of ip6 transports including their configuration (network prefix, hostnames)."""
  ip6Transports: [IP6TransportInput]

  """The network interface's MTU configuration."""
  mtu: Int

  """The network interface's operational status"""
  operationalStatus: InterfaceStatus

  """The network interface's physical address (MAC or WWN)."""
  physicalAddress: String

  """The network interface's port id."""
  portId: Int

  """The network interface's speed in Bits per second."""
  speed: Long

  """The network interface's type"""
  type: InterfaceType

  """A flag that indicates whether this mac address should be used to identify devices. Note that not all mac addresses can be used. For instance VPN mac addresses are often the same on ALL VPN clients!"""
  useForIdentification: Boolean

  """The list of network interfaces physically connected to this interface.
Note that there might be more than one interface in cases where you have non-managed
switches conneting devices"""
  connectedNetworkInterfaces: [NetworkInterfaceInput]

  """The list of topology connections for this interface.
Note that there might be more than one interface in cases where you have non-managed
switches conneting devices"""
  topologyConnections: [TopologyConnectionInput]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.network.mobile.MobileBroadbandDevice'
"""A mobile broadband device (modem)"""
type MobileBroadbandDevice {
  """The cellular class"""
  cellularClass: String

  """The description."""
  description: String

  """The modem fw version"""
  fwVersion: String

  """The unique id"""
  guid: String

  """The home provider name"""
  homeProviderName: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The imei number"""
  imei: String

  """The modem manufacturer"""
  manufacturer: String

  """The modem model"""
  model: String

  """The name."""
  name: String

  """The provider name"""
  providerName: String

  """The signal strength in percent"""
  signalStrength: Int

  """The SIM card"""
  simCard: SimCard

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.network.mobile.MobileBroadbandDevice'
"""A mobile broadband device (modem)"""
input MobileBroadbandDeviceInput {
  """The cellular class"""
  cellularClass: String

  """The description."""
  description: String

  """The modem fw version"""
  fwVersion: String

  """The unique id"""
  guid: String

  """The home provider name"""
  homeProviderName: String

  """The imei number"""
  imei: String

  """The modem manufacturer"""
  manufacturer: String

  """The modem model"""
  model: String

  """The name."""
  name: String

  """The provider name"""
  providerName: String

  """The signal strength in percent"""
  signalStrength: Int

  """The SIM card"""
  simCard: SimCardInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.network.mobile.SimCard'
"""A SimCard"""
type SimCard {
  """The ICCID."""
  iccid: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The IMSI."""
  imsi: String

  """The corresponding mobile broadband device."""
  mobileBroadbandDevice: MobileBroadbandDevice

  """The phone number."""
  phoneNumber: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hardware.network.mobile.SimCard'
"""A SimCard"""
input SimCardInput {
  """The ICCID."""
  iccid: String

  """The IMSI."""
  imsi: String

  """The phone number."""
  phoneNumber: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.hashes.CurrentDeviceHash'
"""a hash value for a device and a discovery category. Hash values are used to find modified devices efficiently when integration the product with other tools (e.g. CMDB)"""
type CurrentDeviceHash {
  """the hash value for a device and category."""
  hashValue: String

  """the category that this hash value is calculated for"""
  category: DiscoveryCategory

  """the corresponding device"""
  device: Device

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.integration.DeviceComparison'
"""A summary of item changes for a specific device and integration registration."""
type DeviceComparison {
  """the category that has changed for this device"""
  category: DiscoveryCategory

  """the corresponding device"""
  device: Device

  """the category that this hash value is calculated for"""
  integrationRegistration: IntegrationRegistration

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.integration.DeviceComparisonSummary'
"""A summary of item changes for a specific device and integration registration."""
type DeviceComparisonSummary {
  """Returns the list of changed categories for this entry."""
  changedCategories: [DiscoveryCategory]

  """the corresponding device"""
  device: Device

  """the category that this hash value is calculated for"""
  integrationRegistration: IntegrationRegistration

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.integration.IntegrationRegistration'
"""The integration registration is required when other tools like CMDB solution register as a data importer.

Whenever there is at least one integration registered, JDisc Discovery calculates hash values for
all data categories (such as memory modules, processors etc.). A CMDB integration can then call a method to mark a device as
imported. When a device is marked as imported, it clones the hash values. That enables an easy comparison between the current device data
and the state when it was imported the last time. Devices with no change in their data do not need to be imported again.
"""
type IntegrationRegistration {
  """The name for the integrating application (e.g. the CMDB product name)"""
  applicationName: String

  """Finds all device summaries for this integration"""
  comparisonSummaries: [DeviceComparisonSummary]

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The instance name (in case there are multiple instances for an integrated product"""
  instanceName: String

  """The unique id. External tools should refer to the integration only by their unique id"""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.integration.IntegrationRegistration'
"""The integration registration is required when other tools like CMDB solution register as a data importer.

Whenever there is at least one integration registered, JDisc Discovery calculates hash values for
all data categories (such as memory modules, processors etc.). A CMDB integration can then call a method to mark a device as
imported. When a device is marked as imported, it clones the hash values. That enables an easy comparison between the current device data
and the state when it was imported the last time. Devices with no change in their data do not need to be imported again.
"""
input IntegrationRegistrationInput {
  """The name for the integrating application (e.g. the CMDB product name)"""
  applicationName: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The instance name (in case there are multiple instances for an integrated product"""
  instanceName: String

  """The unique id. External tools should refer to the integration only by their unique id"""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.integration.LastIntegrationImport'
"""This is an import entry for a single device and a particular integrations. The import entry also contains a foreign id that an integration can use to link a device to the an id within the integrated product."""
type LastIntegrationImport {
  """The creation timestamp of the event."""
  creationTime: DateTime

  """The device that this entry belongs to."""
  device: Device

  """A foreign id provided by the integration to make it easier to map JDisc devices to objects within the integration."""
  foreignId: String

  """The internal id for this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The integration that this entry belongs to."""
  integrationRegistration: IntegrationRegistration

  """The modification timestamp of the event."""
  modificationTime: DateTime

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.logs.DeviceDiscoveryLog'
"""A discovery log object for a device."""
type DeviceDiscoveryLog {
  """The internal id this entity."""
  id: ID

  """The log string in XML format."""
  log: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.logs.DeviceDiscoveryLog'
"""A discovery log object for a device."""
input DeviceDiscoveryLogInput {
  """The log string in XML format."""
  log: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.network.PortConnection'
"""The port connection object is used to store
- an open TCP/IP or UDP port
- a TCP/IP connection between two processes on the same or different device

The connectionState defines whether the port is listening or whether it is a TCP/IP connection."""
type PortConnection {
  """The time when this connection/open port has been scanned for the last time."""
  discoveryTime: DateTime

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The IP address that is used by the initiating process to establish this connection."""
  sourceAddress: String

  """The device that hosts the source of the TCP/IP connection."""
  sourceDevice: Device

  """The description for a connection's source port."""
  sourcePortDescription: String

  """The name for a connection's source port."""
  sourcePortName: String

  """The source port that is used by the initiating process to establish this connection or listen on this port."""
  sourcePortNumber: Int

  """The process that initiated the TCP/IP connection."""
  sourceProcess: Process

  """The connection state."""
  state: TcpConnectionState

  """The target IP address that this connection connects to."""
  targetAddress: String

  """The process that hosts the target of the TCP/IP connection."""
  targetDevice: Device

  """The description for a connection's target port."""
  targetPortDescription: String

  """The name for a connection's target port."""
  targetPortName: String

  """The target port for this TCP/IP connection."""
  targetPortNumber: Int

  """The process that is the target of the TCP/IP connection."""
  targetProcess: Process

  """The connection state."""
  type: PortConnectionType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.network.PortConnection'
"""The port connection object is used to store
- an open TCP/IP or UDP port
- a TCP/IP connection between two processes on the same or different device

The connectionState defines whether the port is listening or whether it is a TCP/IP connection."""
input PortConnectionInput {
  """The time when this connection/open port has been scanned for the last time."""
  discoveryTime: DateTime

  """The IP address that is used by the initiating process to establish this connection."""
  sourceAddress: String

  """The device that hosts the source of the TCP/IP connection."""
  sourceDevice: DeviceInput

  """The description for a connection's source port."""
  sourcePortDescription: String

  """The name for a connection's source port."""
  sourcePortName: String

  """The source port that is used by the initiating process to establish this connection or listen on this port."""
  sourcePortNumber: Int

  """The process that initiated the TCP/IP connection."""
  sourceProcess: ProcessInput

  """The connection state."""
  state: TcpConnectionState

  """The target IP address that this connection connects to."""
  targetAddress: String

  """The process that hosts the target of the TCP/IP connection."""
  targetDevice: DeviceInput

  """The description for a connection's target port."""
  targetPortDescription: String

  """The name for a connection's target port."""
  targetPortName: String

  """The target port for this TCP/IP connection."""
  targetPortNumber: Int

  """The process that is the target of the TCP/IP connection."""
  targetProcess: ProcessInput

  """The connection state."""
  type: PortConnectionType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.network.SnmpAgentData'
"""The entity holds basic data coming from the SNMP protocol."""
type SnmpAgentData {
  """The dot1dBaseBridge address is a unique identifier usually used by swtiches and routers. In most cases, it is the 'base' mac address."""
  dot1dBaseBridgeAddress: String

  """Each SNMP engine has a unique engine id."""
  engineId: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The SNMP system contact. The system contactn string is usually configured by the owner of a device."""
  sysContact: String

  """The SNMP system description. The system description is a string that each manufacturer or OS vendor creates for the device or operating system."""
  sysDescription: String

  """The SNMP system location. The system location string is usually configured by the owner of a device."""
  sysLocation: String

  """The SNMP system name."""
  sysName: String

  """The SNMP system object id for this device. The SNMP system object ids are created by the vendors to identify a model, series or operating system."""
  sysObjectId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.network.SnmpAgentData'
"""The entity holds basic data coming from the SNMP protocol."""
input SnmpAgentDataInput {
  """The dot1dBaseBridge address is a unique identifier usually used by swtiches and routers. In most cases, it is the 'base' mac address."""
  dot1dBaseBridgeAddress: String

  """Each SNMP engine has a unique engine id."""
  engineId: String

  """The SNMP system contact. The system contactn string is usually configured by the owner of a device."""
  sysContact: String

  """The SNMP system description. The system description is a string that each manufacturer or OS vendor creates for the device or operating system."""
  sysDescription: String

  """The SNMP system location. The system location string is usually configured by the owner of a device."""
  sysLocation: String

  """The SNMP system name."""
  sysName: String

  """The SNMP system object id for this device. The SNMP system object ids are created by the vendors to identify a model, series or operating system."""
  sysObjectId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.report.CustomReport'
"""The custom report definition. A custom report is defined by the properties it displays and optional conditions on properties."""
type CustomReport {
  """The custom report creation time."""
  creationTime: DateTime

  """The description of the custom report"""
  description: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The usergroup id of the user of the custom report"""
  inventoryUserGroupId: Long

  """The user id of the user of the custom report"""
  inventoryUserId: Long

  """The custom report modification time."""
  modificationTime: DateTime

  """The name of the custom report"""
  name: String

  """The xml description of the custom report"""
  parentCustomReport: CustomReport

  """The sql query of the custom report"""
  sqlQuery: String

  """The type of the custom report"""
  type: CustomReportType

  """The xml description of the custom report"""
  xmlDescription: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.report.CustomReport'
"""The custom report definition. A custom report is defined by the properties it displays and optional conditions on properties."""
input CustomReportInput {
  """The custom report creation time."""
  creationTime: DateTime

  """The description of the custom report"""
  description: String

  """The usergroup id of the user of the custom report"""
  inventoryUserGroupId: Long

  """The user id of the user of the custom report"""
  inventoryUserId: Long

  """The custom report modification time."""
  modificationTime: DateTime

  """The name of the custom report"""
  name: String

  """The xml description of the custom report"""
  parentCustomReport: CustomReportInput

  """The sql query of the custom report"""
  sqlQuery: String

  """The type of the custom report"""
  type: CustomReportType

  """The xml description of the custom report"""
  xmlDescription: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Application'
"""The applications installed on an operating system."""
type Application {
  """The time when the application was detected for the first time."""
  creationTime: DateTime

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The list of installations for this application"""
  installations: [InstalledApplication]

  """The application manufacturer"""
  manufacturer: String

  """The application name"""
  name: String

  """The application version"""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Application'
"""The applications installed on an operating system."""
input ApplicationInput {
  """The time when the application was detected for the first time."""
  creationTime: DateTime

  """The list of installations for this application"""
  installations: [InstalledApplicationInput]

  """The application manufacturer"""
  manufacturer: String

  """The application name"""
  name: String

  """The application version"""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.ApplicationInstance'
"""The applications installed on an operating system."""
type ApplicationInstance {
  """The application that is providing this instance"""
  application: Application

  """The installation path for the application that this instance belongs to."""
  applicationInstallPath: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The instance path (if it exists)."""
  instancePath: String

  """The application instance name"""
  name: String

  """The operating system that the instance is installed on"""
  operatingSystem: OperatingSystem

  """Ports that this application instance is listening on"""
  ports: [PortConnection]

  """The application that is providing this instance"""
  state: SoftwareInstanceState

  """The application instance type"""
  type: SoftwareInstanceType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.ApplicationInstance'
"""The applications installed on an operating system."""
input ApplicationInstanceInput {
  """The application that is providing this instance"""
  application: ApplicationInput

  """The installation path for the application that this instance belongs to."""
  applicationInstallPath: String

  """The instance path (if it exists)."""
  instancePath: String

  """The application instance name"""
  name: String

  """The operating system that the instance is installed on"""
  operatingSystem: OperatingSystemInput

  """Ports that this application instance is listening on"""
  ports: [PortConnectionInput]

  """The application that is providing this instance"""
  state: SoftwareInstanceState

  """The application instance type"""
  type: SoftwareInstanceType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Certificate'
"""A certificate installed on an operating systems's certificate store."""
type Certificate {
  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The list of installations for this certificate"""
  installations: [InstalledCertificate]

  """The certificate's issuer"""
  issuer: String

  """The certificate's key length"""
  keyLength: Int

  """The certificate's key type"""
  keyType: PublicKeyEncryptionType

  """The certificate is not valid after this date"""
  notAfter: DateTime

  """The certificate is not valid before this date"""
  notBefore: DateTime

  """The certificate's oid"""
  oid: String

  """The certificate's serial number"""
  serialNumber: String

  """The certificate's subject"""
  subject: String

  """The certificate's version"""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Certificate'
"""A certificate installed on an operating systems's certificate store."""
input CertificateInput {
  """The list of installations for this certificate"""
  installations: [InstalledCertificateInput]

  """The certificate's issuer"""
  issuer: String

  """The certificate's key length"""
  keyLength: Int

  """The certificate's key type"""
  keyType: PublicKeyEncryptionType

  """The certificate is not valid after this date"""
  notAfter: DateTime

  """The certificate is not valid before this date"""
  notBefore: DateTime

  """The certificate's oid"""
  oid: String

  """The certificate's serial number"""
  serialNumber: String

  """The certificate's subject"""
  subject: String

  """The certificate's version"""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.FirewallZone'
"""A firewall zone."""
type FirewallZone {
  """A flag whether the firewall zone is enabled or not"""
  enabled: Boolean

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The zone name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.FirewallZone'
"""A firewall zone."""
input FirewallZoneInput {
  """A flag whether the firewall zone is enabled or not"""
  enabled: Boolean

  """The zone name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.InstalledApplication'
"""An application installed on an operating system."""
type InstalledApplication {
  """The application installation timestamp"""
  installationDate: DateTime

  """The application installation path"""
  installationPath: String

  """A flag whether the application is installed as a Microsoft click to run application"""
  isClickToRun: Boolean

  """The associated license"""
  license: License

  """The source where we got the application information from (e.g. Add/Remove Programs, rpm, dpkg, ...)"""
  source: ApplicationSource

  """The associated application"""
  application: Application

  """The operating system the software is installed on"""
  operatingSystem: OperatingSystem

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.InstalledApplication'
"""An application installed on an operating system."""
input InstalledApplicationInput {
  """The application installation timestamp"""
  installationDate: DateTime

  """The application installation path"""
  installationPath: String

  """A flag whether the application is installed as a Microsoft click to run application"""
  isClickToRun: Boolean

  """The associated license"""
  license: LicenseInput

  """The source where we got the application information from (e.g. Add/Remove Programs, rpm, dpkg, ...)"""
  source: ApplicationSource

  """The associated application"""
  application: ApplicationInput

  """The operating system the software is installed on"""
  operatingSystem: OperatingSystemInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.InstalledCertificate'
"""A certificate stored in the operating system's certificate store."""
type InstalledCertificate {
  """The certificate path"""
  path: String

  """The associated certificate"""
  certificate: Certificate

  """The operating system the software is installed on"""
  operatingSystem: OperatingSystem

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.InstalledCertificate'
"""A certificate stored in the operating system's certificate store."""
input InstalledCertificateInput {
  """The certificate path"""
  path: String

  """The associated certificate"""
  certificate: CertificateInput

  """The operating system the software is installed on"""
  operatingSystem: OperatingSystemInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.InstalledPatch'
"""A patch installed on an operating system."""
type InstalledPatch {
  """The patch installation timestamp"""
  installationDate: DateTime

  """The operating system that this patch is installed on"""
  operatingSystem: OperatingSystem

  """The associated patch"""
  patch: Patch

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.InstalledPatch'
"""A patch installed on an operating system."""
input InstalledPatchInput {
  """The patch installation timestamp"""
  installationDate: DateTime

  """The operating system that this patch is installed on"""
  operatingSystem: OperatingSystemInput

  """The associated patch"""
  patch: PatchInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.InstalledService'
"""A service installed on an operating system."""
type InstalledService {
  """The binary name for this service"""
  binaryName: String

  """The display name for this service"""
  displayName: String

  """The service installation path"""
  failureAction: ServiceFailureAction

  """The service installation path"""
  installationPath: String

  """The parameters that this service is called with"""
  parameters: String

  """The service installation path"""
  startupMode: ServiceStartupMode

  """The service installation path"""
  status: ServiceStatus

  """The operating system that this service is installed on"""
  operatingSystem: OperatingSystem

  """The associated service"""
  service: Service

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.InstalledService'
"""A service installed on an operating system."""
input InstalledServiceInput {
  """The binary name for this service"""
  binaryName: String

  """The display name for this service"""
  displayName: String

  """The service installation path"""
  failureAction: ServiceFailureAction

  """The service installation path"""
  installationPath: String

  """The parameters that this service is called with"""
  parameters: String

  """The service installation path"""
  startupMode: ServiceStartupMode

  """The service installation path"""
  status: ServiceStatus

  """The operating system that this service is installed on"""
  operatingSystem: OperatingSystemInput

  """The associated service"""
  service: ServiceInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.JavaRiskSummary'
"""A Java installation and process risk summary."""
type JavaRiskSummary {
  """The foreign key to the device."""
  deviceId: ID

  """The number of JVM installations"""
  foundJvmCount: Int

  """The number of Java processes"""
  javaProcessCount: Int

  """The number of Java processes without any specific information"""
  noInfoJavaProcessCount: Int

  """The number of Java processes possibly at risk"""
  riskyJavaProcessCount: Int

  """The number of JVM installations possibly at risk"""
  riskyJvmCount: Int

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.License'
"""A software license."""
type License {
  """A license comment"""
  comment: String

  """A license's expiration date"""
  expirationDate: DateTime

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The license product id"""
  productId: String

  """The license product key"""
  productKey: String

  """The license type"""
  status: SoftwareLicenseStatus

  """The license type"""
  type: LicenseType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.License'
"""A software license."""
input LicenseInput {
  """A license comment"""
  comment: String

  """A license's expiration date"""
  expirationDate: DateTime

  """The license product id"""
  productId: String

  """The license product key"""
  productKey: String

  """The license type"""
  status: SoftwareLicenseStatus

  """The license type"""
  type: LicenseType

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.OperatingSystem'
"""The operating system for a specific device."""
type OperatingSystem {
  """The list of all application instances (e.g. database instances, web server instances, ...)."""
  applicationInstances: [ApplicationInstance]

  """The operating system compile time"""
  compileTime: DateTime

  """The operating system description"""
  description: String

  """The device that this operating system is installed on."""
  device: Device

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The operating system's install date"""
  installDate: DateTime

  """The list of installed applications."""
  installedApplications: [InstalledApplication]

  """The list of installed certificates."""
  installedCertificates: [InstalledCertificate]

  """The list of installed patches."""
  installedPatches: [InstalledPatch]

  """The list of installed services."""
  installedServices: [InstalledService]

  """The kernel version"""
  kernelVersion: String

  """The operating system's last update time"""
  lastUpdateTime: DateTime

  """The operating system's license comment"""
  licenseComment: String

  """The operating system's license expiration date"""
  licenseExpirationDate: DateTime

  """The operating system's license status"""
  licenseStatus: SoftwareLicenseStatus

  """The license type"""
  licenseType: LicenseType

  """Gets the list of users which belong to this operating system."""
  localUsers: [User]

  """The locale that is used for this operating system"""
  locale: String

  """The locale code that is used for this operating system"""
  localeCode: Int

  """Gets the list of logged-on users to this operating system"""
  loggedOnUsers: [LoggedOnUser]

  """Gets the list of history logged-on users to this operating system"""
  loggedOnUsersHistory: [LoggedOnUser]

  """The operating system's manufacturer"""
  manufacturer: String

  """The list of all mapped printers."""
  mappedPrinters: [MappedPrinter]

  """The operating system family (e.g. Windows, Linux, HP-UX, ...)"""
  osFamily: String

  """The operating system version (e.g. Windows 10, Windows 2008 Server, ...)"""
  osVersion: String

  """The patch level (e.g. Service Pack 3)"""
  owner: String

  """The patch level (e.g. Service Pack 3)"""
  patchLevel: String

  """The list of pending installations."""
  pendingUpdates: [PendingUpdateItem]

  """The list of all processes running on this operating system."""
  processes: [Process]

  """The operting system product key"""
  productKey: String

  """The raw version as it gets delivered by the operating system"""
  rawVersion: String

  """The device's system type (e.g. x64, x86, arm, ...)"""
  systemType: String

  """The operating system's unique id"""
  uniqueId: String

  """The list of all application instances (e.g. database instances, web server instances, ...)."""
  applicationInstancesByType(type: SoftwareInstanceType): [ApplicationInstance]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.OperatingSystem'
"""The operating system for a specific device."""
input OperatingSystemInput {
  """The list of all application instances (e.g. database instances, web server instances, ...)."""
  applicationInstances: [ApplicationInstanceInput]

  """The operating system compile time"""
  compileTime: DateTime

  """The operating system description"""
  description: String

  """The device that this operating system is installed on."""
  device: DeviceInput

  """The operating system's install date"""
  installDate: DateTime

  """The list of installed applications."""
  installedApplications: [InstalledApplicationInput]

  """The list of installed certificates."""
  installedCertificates: [InstalledCertificateInput]

  """The list of installed patches."""
  installedPatches: [InstalledPatchInput]

  """The list of installed services."""
  installedServices: [InstalledServiceInput]

  """The kernel version"""
  kernelVersion: String

  """The operating system's last update time"""
  lastUpdateTime: DateTime

  """The operating system's license comment"""
  licenseComment: String

  """The operating system's license expiration date"""
  licenseExpirationDate: DateTime

  """The operating system's license status"""
  licenseStatus: SoftwareLicenseStatus

  """The license type"""
  licenseType: LicenseType

  """Gets the list of users which belong to this operating system."""
  localUsers: [UserInput]

  """The locale that is used for this operating system"""
  locale: String

  """The locale code that is used for this operating system"""
  localeCode: Int

  """Gets the list of logged-on users to this operating system"""
  loggedOnUsers: [LoggedOnUserInput]

  """Gets the list of history logged-on users to this operating system"""
  loggedOnUsersHistory: [LoggedOnUserInput]

  """The operating system's manufacturer"""
  manufacturer: String

  """The list of all mapped printers."""
  mappedPrinters: [MappedPrinterInput]

  """The operating system family (e.g. Windows, Linux, HP-UX, ...)"""
  osFamily: String

  """The operating system version (e.g. Windows 10, Windows 2008 Server, ...)"""
  osVersion: String

  """The patch level (e.g. Service Pack 3)"""
  owner: String

  """The patch level (e.g. Service Pack 3)"""
  patchLevel: String

  """The list of pending installations."""
  pendingUpdates: [PendingUpdateItemInput]

  """The list of all processes running on this operating system."""
  processes: [ProcessInput]

  """The operting system product key"""
  productKey: String

  """The raw version as it gets delivered by the operating system"""
  rawVersion: String

  """The device's system type (e.g. x64, x86, arm, ...)"""
  systemType: String

  """The operating system's unique id"""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Patch'
"""A patch."""
type Patch {
  """The time when the patch was detected for the first time."""
  creationTime: DateTime

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The list of installations for this patch"""
  installations: [InstalledPatch]

  """The patch manufacturer"""
  manufacturer: String

  """The patch name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Patch'
"""A patch."""
input PatchInput {
  """The time when the patch was detected for the first time."""
  creationTime: DateTime

  """The list of installations for this patch"""
  installations: [InstalledPatchInput]

  """The patch manufacturer"""
  manufacturer: String

  """The patch name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.PendingUpdate'
"""A pending update software entry."""
type PendingUpdate {
  """A description string for this pending update"""
  description: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The update name"""
  name: String

  """The update target version"""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.PendingUpdate'
"""A pending update software entry."""
input PendingUpdateInput {
  """A description string for this pending update"""
  description: String

  """The update name"""
  name: String

  """The update target version"""
  version: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.PendingUpdateItem'
"""A pending update for an operating system."""
type PendingUpdateItem {
  """A flag whether the update is mandatory or optional"""
  isMandatory: Boolean

  """A flag whether a reboot after the installation is required or not"""
  rebootRequired: Boolean

  """The operating system the software is installed on"""
  operatingSystem: OperatingSystem

  """The associated application"""
  pendingUpdate: PendingUpdate

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.PendingUpdateItem'
"""A pending update for an operating system."""
input PendingUpdateItemInput {
  """A flag whether the update is mandatory or optional"""
  isMandatory: Boolean

  """A flag whether a reboot after the installation is required or not"""
  rebootRequired: Boolean

  """The operating system the software is installed on"""
  operatingSystem: OperatingSystemInput

  """The associated application"""
  pendingUpdate: PendingUpdateInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Process'
"""A process running on an operating system."""
type Process {
  """The binary name for this process"""
  binaryName: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The list of TCP/IP ports that are in listen mode."""
  listeningPorts: [PortConnection]

  """The parameters that this binary is called with"""
  parameters: String

  """The parent process id"""
  parentProcessId: Int

  """The binary's path"""
  path: String

  """The process id"""
  processId: Int

  """The list of listening ports and TCP/IP connections for this process."""
  tcpIPConnections: [PortConnection]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Process'
"""A process running on an operating system."""
input ProcessInput {
  """The binary name for this process"""
  binaryName: String

  """The list of TCP/IP ports that are in listen mode."""
  listeningPorts: [PortConnectionInput]

  """The parameters that this binary is called with"""
  parameters: String

  """The parent process id"""
  parentProcessId: Int

  """The binary's path"""
  path: String

  """The process id"""
  processId: Int

  """The list of listening ports and TCP/IP connections for this process."""
  tcpIPConnections: [PortConnectionInput]

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Service'
"""A service/daemon."""
type Service {
  """The time when the service was detected for the first time."""
  creationTime: DateTime

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The list of installations for this service"""
  installations: [InstalledService]

  """The service manufacturer"""
  manufacturer: String

  """The service name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.software.Service'
"""A service/daemon."""
input ServiceInput {
  """The time when the service was detected for the first time."""
  creationTime: DateTime

  """The list of installations for this service"""
  installations: [InstalledServiceInput]

  """The service manufacturer"""
  manufacturer: String

  """The service name"""
  name: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.support.entitlements.SupportEntitlement'
"""The support entitlements (Ex. warranty) of the device"""
type SupportEntitlement {
  """description about the support entitlement"""
  description: String

  """id of the device which this support entitlement belongs to"""
  device: Device

  """end date of the support entitlement"""
  endDate: DateTime

  """Number of days remaining to expire in days"""
  expiresInDays: Int

  """The internal id of this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """part number of the device"""
  partNumber: String

  """starting date of the support entitlement"""
  startDate: DateTime

  """state of the support entitlement (Ex. Expired, Valid)"""
  supportEntitlementState: SupportEntitlementState

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.support.entitlements.SupportEntitlement'
"""The support entitlements (Ex. warranty) of the device"""
input SupportEntitlementInput {
  """description about the support entitlement"""
  description: String

  """id of the device which this support entitlement belongs to"""
  device: DeviceInput

  """end date of the support entitlement"""
  endDate: DateTime

  """Number of days remaining to expire in days"""
  expiresInDays: Int

  """part number of the device"""
  partNumber: String

  """starting date of the support entitlement"""
  startDate: DateTime

  """state of the support entitlement (Ex. Expired, Valid)"""
  supportEntitlementState: SupportEntitlementState

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.user.LoggedOnUser'
"""A logged-on user on an operating system"""
type LoggedOnUser {
  """The user type"""
  discoveredUserType: DiscoveredUserType

  """The user last login"""
  lastLogin: DateTime

  """Remote device that this user connects from"""
  remoteClientDevice: Device

  """The operating system that the user belongs to"""
  operatingSystem: OperatingSystem

  """The associated role of the user"""
  role: DiscoveredUserRole

  """The associated logged-on user"""
  user: User

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.user.LoggedOnUser'
"""A logged-on user on an operating system"""
input LoggedOnUserInput {
  """The user type"""
  discoveredUserType: DiscoveredUserType

  """The user last login"""
  lastLogin: DateTime

  """Remote device that this user connects from"""
  remoteClientDevice: DeviceInput

  """The operating system that the user belongs to"""
  operatingSystem: OperatingSystemInput

  """The associated role of the user"""
  role: DiscoveredUserRole

  """The associated logged-on user"""
  user: UserInput

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.user.User'
"""A user"""
type User {
  """The user canonical name"""
  canonicalName: String

  """A user's cloud type when the user is a cloud user"""
  cloudType: CloudType

  """The user distinguish name"""
  distinguishedName: String

  """The user given name"""
  givenName: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The last logon time for this user"""
  lastLogonTime: DateTime

  """The user name (this is not the login)"""
  name: String

  """The user principal (usually in the form <user>@<dnsdomain>"""
  principalName: String

  """The user status."""
  status: DiscoveredUserStatus

  """The user surname"""
  surname: String

  """The user unique id"""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.user.User'
"""A user"""
input UserInput {
  """The user canonical name"""
  canonicalName: String

  """A user's cloud type when the user is a cloud user"""
  cloudType: CloudType

  """The user distinguish name"""
  distinguishedName: String

  """The user given name"""
  givenName: String

  """The last logon time for this user"""
  lastLogonTime: DateTime

  """The user name (this is not the login)"""
  name: String

  """The user principal (usually in the form <user>@<dnsdomain>"""
  principalName: String

  """The user status."""
  status: DiscoveredUserStatus

  """The user surname"""
  surname: String

  """The user unique id"""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.user.UserGroup'
"""A usergroup"""
type UserGroup {
  """The user canonical name"""
  canonicalName: String

  """The usergroup description"""
  description: String

  """The user distinguish name"""
  distinguishedName: String

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The user name (this is not the login)"""
  name: String

  """The usergroup unique id"""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.user.UserGroup'
"""A usergroup"""
input UserGroupInput {
  """The user canonical name"""
  canonicalName: String

  """The usergroup description"""
  description: String

  """The user distinguish name"""
  distinguishedName: String

  """The user name (this is not the login)"""
  name: String

  """The usergroup unique id"""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.virtualization.VirtualDatacenter'
"""A virtual datacenter (e.g. within a Vmware VCenter environment)."""
type VirtualDatacenter {
  """The set of clusters within this datacenter."""
  clusters: [Cluster]

  """The internal id this entity. Note that the id might change when the entity gets deleted and recreated."""
  id: ID

  """The datacenter name."""
  name: String

  """The datacenter type"""
  type: DatacenterType

  """A datacenter's unique id."""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.entities.virtualization.VirtualDatacenter'
"""A virtual datacenter (e.g. within a Vmware VCenter environment)."""
input VirtualDatacenterInput {
  """The set of clusters within this datacenter."""
  clusters: [ClusterInput]

  """The datacenter name."""
  name: String

  """The datacenter type"""
  type: DatacenterType

  """A datacenter's unique id."""
  uniqueId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.DeviceReference'
input DeviceReference {
  """The unique database id for the device"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.ExternalDeviceReference'
"""A pair of a device reference and an external identifier (e.g. from a CMDB)"""
input ExternalDeviceReference {
  """The device reference"""
  deviceRef: DeviceReference

  """An id from the external tool (e.g. CMDB) associated with this device"""
  externalId: String

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.attributes.custom.CustomAttributeReference'
input CustomAttributeReference {
  """The unique database id for the custom attribute"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.cluster.ClusterReference'
input ClusterReference {
  """The unique database id for the cluster"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.config.network.IP4NetworkReference'
input IP4NetworkReference {
  """The unique database id for the IP4 network"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.config.network.IP6NetworkReference'
input IP6NetworkReference {
  """The unique database id for the IP6 network"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.event.EventReference'
input EventReference {
  """The unique database id for the event"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.integration.IntegrationRegistrationReference'
"""A reference to an integration registration object"""
input IntegrationRegistrationReference {
  """The unique database id for the integration registration"""
  id: Long

}

# Mapping for Java class 'com.jdisc.inventory.jpa.references.virtualization.DatacenterReference'
input DatacenterReference {
  """The unique database id for the datacenter"""
  id: Long

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.attributes.custom.CustomAttributeRepository'
"""This type provides custom attributes related queries"""
type CustomAttributes {
  """Find all custom attributes"""
  findAll: [CustomAttribute]

  """Find a custom attribute by id"""
  findByID(id: Long): CustomAttribute

  """Find a custom attribute by its path"""
  findByPath(path: String): CustomAttribute

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.config.discovery.devicegroups.DeviceGroupRepository'
"""This type provides device group  related queries"""
type DeviceGroups {
  """Find all directory entries"""
  findAll: [DeviceGroup]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.config.network.DirectoryRepository'
"""This type provides directory related queries"""
type Directories {
  """Find all directory entries"""
  findAll: [Directory]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.config.network.IP4NetworkRepository'
"""This type provides IP4 network related queries"""
type IP4Networks {
  """Find all IP4 networks"""
  findAll: [IP4Network]

  """Finds all IP4 networks with a given network base address"""
  findIP4NetworksByBaseAddress(networkBaseAddress: String): [IP4Network]

  """Finds all IP4 networks with a given network base address and subnet mask"""
  findIP4NetworksByBaseAddressAndMask(networkBaseAddress: String, subnetMask: String): [IP4Network]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.config.network.IP6NetworkRepository'
"""This type provides IP6 network related queries"""
type IP6Networks {
  """Find all IP6 networks"""
  findAll: [IP6Network]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.config.network.TopologyRepository'
"""This type provides topology connection related queries"""
type TopologyConnections {
  """Find all topology connections"""
  findAll: [TopologyConnection]

  """Find all topology connections for one device"""
  findByDevice(deviceRef: DeviceReference): [TopologyConnection]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.config.network.VlanRepository'
"""This type provides VLAN related queries"""
type Vlans {
  """Find all vlans"""
  findAll: [Vlan]

  """Find vlans by name"""
  findByName(name: String): [Vlan]

  """Find vlans by vlan id"""
  findByVlanId(vlanId: Int!): [Vlan]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.discovery.DiscoveryJobRepository'
"""Discovery Job related queries"""
type DiscoveryJobs {
  """Find all application instances"""
  findAll: [DiscoveryJob]

  """Find a discovery job by id"""
  findByID(id: Long): DiscoveryJob

  """Find a discovery job by name"""
  findByName(name: String): [DiscoveryJob]

  """Find all application instances with a given status"""
  findByStatus(status: TaskStatus): [DiscoveryJob]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.discovery.ScheduledJobRepository'
"""Scheduled Job related queries"""
type ScheduledJobs {
  """Find all application instances"""
  findAll: [ScheduledJob]

  """Find the scheduled job for the given discovery job id"""
  findByDiscoveryJobId(jobId: Long): ScheduledJob

  """Find a discovery job by id"""
  findByID(id: Long): ScheduledJob

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.discovery.queue.DiscoveryDeviceQueueItemsRepository'
"""Device queue related queries"""
type DeviceQueueQueries {
  """Find all application instances"""
  findAll: [DiscoveryDeviceQueueItem]

  """Find a discovery device queue item by id"""
  findByID(id: Long): DiscoveryDeviceQueueItem

  """Find all discovery device queue items with the given ids"""
  findByIDs(ids: [Long]): [DiscoveryDeviceQueueItem]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.event.EventRepository'
"""Event related queries"""
type Events {
  """Find all events"""
  findAll: [Event]

  """Find most recent discovery events (start, stopped, completed) for the given discovery job id limited by the given limit"""
  findByDiscoveryJobIdDiscoveryEventsWithLimit(jobId: Long, limit: Int!): [Event]

  """Find an event by id"""
  findByID(id: Long): Event

  """Find an event by discovery job id"""
  findByJobId(jobId: Long): [Event]

  """Find all events with a given event type"""
  findByType(type: EventType): [Event]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.hardware.network.NetworkInterfaceRepository'
"""This type provides network interface related queries"""
type NetworkInterfaces {
  """Find all network interfaces"""
  findAll: [NetworkInterface]

  """Finds all network interfaces with a specific physical address (mac address or WWN)."""
  findNetworkInterfacesByPhysicalAddress(physicalAddress: String): [NetworkInterface]

  """Finds all network interfaces with one of the mac addresses (mac addresses or WWNs)."""
  findNetworkInterfacesByPhysicalAddresses(physicalAddresses: [String]): [NetworkInterface]

  """Finds all network interfaces by type."""
  findNetworkInterfacesByType(type: InterfaceType): [NetworkInterface]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.report.CustomReportRepository.CustomReportRepository'
"""Custom report related queries"""
type CustomReports {
  """Find all application instances"""
  findAll: [CustomReport]

  """Find all custom reports by report type"""
  findByType(type: CustomReportType): [CustomReport]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.software.ApplicationInstanceRepository'
"""This type application related queries"""
type ApplicationInstances {
  """Find all application instances"""
  findAll: [ApplicationInstance]

  """Find all application instances with a given name"""
  findByName(name: String): [ApplicationInstance]

  """Find all application instances with a give type"""
  findByType(type: SoftwareInstanceType): [ApplicationInstance]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.software.ApplicationRepository'
"""This type application related queries"""
type Applications {
  """Find all applications"""
  findAll: [Application]

  """Find all applications with a given name"""
  findByName(name: String): [Application]

  """Find all applications with a given name"""
  findByNameAndVersion(name: String, version: String): [Application]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.software.CertificateRepository'
"""This type provides certificate related queries"""
type Certificates {
  """Find all certificates"""
  findAll: [Certificate]

  """Find all certificates by issuer"""
  findByIssuer(issuer: String): [Certificate]

  """Find all certificates by issuer"""
  findByIssuerAndSubject(issuer: String, subject: String): [Certificate]

  """Find all certificates by subject pattern. '*' stands for any character(s) and '?' for any single character (similar to directory wildcards on Windows)."""
  findByIssuerAndSubjectPattern(issuerPattern: String, subjectPattern: String): [Certificate]

  """Find all certificates by issuer pattern. '*' stands for any character(s) and '?' for any single character (similar to directory wildcards on Windows)."""
  findByIssuerPattern(issuerPattern: String): [Certificate]

  """Find all certificates by oid"""
  findByOid(oid: String): [Certificate]

  """Find all certificates by subject"""
  findBySubject(subject: String): [Certificate]

  """Find all certificates by subject pattern. '*' stands for any character(s) and '?' for any single character (similar to directory wildcards on Windows)."""
  findBySubjectPattern(issuerPattern: String): [Certificate]

  """Find all certificates that expire after a given date"""
  findExpiringAfterCertificates(expireAfter: DateTime): [Certificate]

  """Find all certificates that expire before a given date"""
  findExpiringBeforeCertificates(expireBefore: DateTime): [Certificate]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.software.InstalledServiceRepository'
"""This type provides installed service related queries"""
type InstalledServices {
  """Find all installed services"""
  findAll: [InstalledService]

  """Find installed services with a given binary"""
  findByBinaryName(binary: String): [InstalledService]

  """Find installed services with a display name"""
  findByDisplayName(displayName: String): [InstalledService]

  """Find installed services with a configured failure action"""
  findByFailureAction(failureAction: ServiceFailureAction): [InstalledService]

  """Find installed services with a configured startup mode"""
  findByStartupMode(startupMode: ServiceStartupMode): [InstalledService]

  """Find installed services with a given status"""
  findByStatus(status: ServiceStatus): [InstalledService]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.software.OperatingSystemRepository'
"""This type provides operating system related queries"""
type OperatingSystems {
  """Finds all operating systems by family"""
  findByFamily(osFamily: String): [OperatingSystem]

  """Finds all operating systems by operating system version"""
  findByVersion(osVersion: String): [OperatingSystem]

  """Finds the set of all operating system families. Families are for instance 'Windows', 'Linux', 'Solaris', 'AIX', ..."""
  findOsFamilies: [String]

  """Find the set of all operating system families for the selected devices"""
  findOsFamiliesForDevices(devices: [DeviceReference]): [String]

  """Finds the set of all operating system versions"""
  findOsVersions: [String]

  """Find the set of all operating system versions for the selected devices"""
  findOsVersionsForFamily(osFamily: String): [String]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.software.PatchRepository'
"""This type provides patch related queries"""
type Patches {
  """Find all patches"""
  findAll: [Patch]

  """Find all patches with a given name"""
  findByName(name: String): [Patch]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.software.ServiceRepository'
"""This type provides service related queries"""
type Services {
  """Find all services"""
  findAll: [Service]

  """Find all services with a given manufacturer"""
  findByManufacturer(manufacturer: String): [Service]

  """Find all services with a given name"""
  findByName(name: String): [Service]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.virtualization.VirtualDatacenterRepository'
"""This type provides virtual datacenter queries"""
type VirtualDatacenters {
  """Find all virtual datacenters"""
  findAll: [VirtualDatacenter]

  """Finds all virtual datacenters by name."""
  findVirtualDatacentersByName(name: String): [VirtualDatacenter]

  """Finds all virtual datacenters by type."""
  findVirtualDatacentersByType(type: DatacenterType): [VirtualDatacenter]

  """Finds all virtual datacenters by unique id."""
  findVirtualDatacentersByUniqueId(uniqueId: String): [VirtualDatacenter]

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.common.Location'
"""An object's location."""
type Location {
  """the location on the x-axis."""
  x: Int!

  """the location on the y-axis."""
  y: Int!

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.common.Location'
"""An object's location."""
input LocationInput {
  """the location on the x-axis."""
  x: Int!

  """the location on the y-axis."""
  y: Int!

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.common.Size'
"""The size of an object."""
type Size {
  """The height."""
  height: Int!

  """The width."""
  width: Int!

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.common.Size'
"""The size of an object."""
input SizeInput {
  """The height."""
  height: Int!

  """The width."""
  width: Int!

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.dashboard.DashboardItemLocation'
"""A dashboard item location."""
type DashboardItemLocation {
  """The dashboard id identifying the dashboard item."""
  id: String

  """the dashboard item location in the dashboard grid."""
  location: Location

  """a flag whether the dashboard item is minimized."""
  minimized: Boolean!

  """the dashboard size in the dashboard grid."""
  size: Size

  """a flag whether the dashboard item is visible."""
  visible: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.dashboard.DashboardItemLocation'
"""A dashboard item location."""
input DashboardItemLocationInput {
  """The dashboard id identifying the dashboard item."""
  id: String

  """the dashboard item location in the dashboard grid."""
  location: LocationInput

  """a flag whether the dashboard item is minimized."""
  minimized: Boolean!

  """the dashboard size in the dashboard grid."""
  size: SizeInput

  """a flag whether the dashboard item is visible."""
  visible: Boolean!

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.dialog.CommonDialogPreferences'
"""The common dialog preferences."""
type CommonDialogPreferences {
  """The style height property of the dialog"""
  height: Int

  """The style left property of the dialog"""
  left: Int

  """The style top property of the dialog"""
  top: Int

  """The style width property of the dialog"""
  width: Int

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.dialog.CommonDialogPreferences'
"""The common dialog preferences."""
input CommonDialogPreferencesInput {
  """The style height property of the dialog"""
  height: Int

  """The style left property of the dialog"""
  left: Int

  """The style top property of the dialog"""
  top: Int

  """The style width property of the dialog"""
  width: Int

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.dialog.DialogRef'
"""The dialog reference."""
type DialogRef {
  """The dialog id identifying the dialog item."""
  id: String

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.dialog.DialogRef'
"""The dialog reference."""
input DialogRefInput {
  """The dialog id identifying the dialog item."""
  id: String

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.table.MultiSortMeta'
"""The sort metadata"""
type MultiSortMeta {
  """The sort field"""
  field: String

  """The sort order"""
  order: Int

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.table.MultiSortMeta'
"""The sort metadata"""
input MultiSortMetaInput {
  """The sort field"""
  field: String

  """The sort order"""
  order: Int

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.table.TableState'
"""The table state"""
type TableState {
  """The column order"""
  columnOrder: [String]

  """The widths of the columns"""
  columnWidths: String

  """The filters metadata"""
  filters: String

  """The hidden columns"""
  hiddenColumns: [String]

  """The multi sort metadata"""
  multiSortMeta: [MultiSortMeta]

  """The single sort field"""
  sortField: String

  """The single sort order"""
  sortOrder: Int

  """The width of the table"""
  tableWidth: String

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.table.TableState'
"""The table state"""
input TableStateInput {
  """The column order"""
  columnOrder: [String]

  """The widths of the columns"""
  columnWidths: String

  """The filters metadata"""
  filters: String

  """The hidden columns"""
  hiddenColumns: [String]

  """The multi sort metadata"""
  multiSortMeta: [MultiSortMetaInput]

  """The single sort field"""
  sortField: String

  """The single sort order"""
  sortOrder: Int

  """The width of the table"""
  tableWidth: String

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.tree.TreeRef'
"""The tree reference."""
type TreeRef {
  """The tree id identifying the tree item."""
  id: String

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.tree.TreeRef'
"""The tree reference."""
input TreeRefInput {
  """The tree id identifying the tree item."""
  id: String

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.tree.TreeState'
"""The tree state."""
type TreeState {
  """The keys of the expanded nodes of the tree."""
  expandedNodes: [String]

  """The keys of the selected nodes of the tree."""
  selectedNodes: [String]

  """The mode of the tree."""
  treeMode: TreeMode

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.tree.TreeState'
"""The tree state."""
input TreeStateInput {
  """The keys of the expanded nodes of the tree."""
  expandedNodes: [String]

  """The keys of the selected nodes of the tree."""
  selectedNodes: [String]

  """The mode of the tree."""
  treeMode: TreeMode

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.uiprefs.PreferencesKeyValuePair'
"""A key value pair for preferences"""
input PreferencesKeyValuePairInput {
  """The key"""
  key: String

  """The value"""
  value: Object

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.uiprefs.WebUIPreferences'
"""The WEB UI user preferences."""
type WebUIPreferences {
  """The date format used for timestamps"""
  dateFormat: DateFormat

  """The user interface density."""
  density: UIDensity

  """The log level"""
  logLevel: LogLevel

  """The user interface theme."""
  theme: UITheme

}

# Mapping for Java class 'com.jdisc.inventory.webui.datastructures.preferences.uiprefs.WebUIPreferences'
"""The WEB UI user preferences."""
input WebUIPreferencesInput {
  """The date format used for timestamps"""
  dateFormat: DateFormat

  """The user interface density."""
  density: UIDensity

  """The log level"""
  logLevel: LogLevel

  """The user interface theme."""
  theme: UITheme

}

# Mapping for Java class 'com.jdisc.measurement.common.datastructures.status.MeasurementJobDetails'
"""MeasurementJobDetails"""
type MeasurementJobDetails {
  """device"""
  device: String

  """jobName"""
  jobName: String

  """jobStatus"""
  jobStatus: MeasurementJobStatus

  """jobType"""
  jobType: MeasureAggregateType

  """Get next trigger time in UTC zone"""
  nextTriggeredTime: DateTime

}

# Mapping for Java class 'com.jdisc.measurement.common.datastructures.status.MeasurementJobDetails'
"""MeasurementJobDetails"""
input MeasurementJobDetailsInput {
  """device"""
  device: String

  """jobName"""
  jobName: String

  """jobStatus"""
  jobStatus: MeasurementJobStatus

  """jobType"""
  jobType: MeasureAggregateType

  """Get next trigger time in UTC zone"""
  nextTriggeredTime: DateTime

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.common.DefaultProgressInfo'
"""This object contains information about a default background task."""
type DefaultProgressInfo implements ProgressInfo {
  """The current action being performed. Can be empty or null."""
  action: String

  """A message that describes the completion status once the task is completed or canceled."""
  completionMessage: String

  """The current value for the operation's progress. Together with the maxValue, you can calculate the percentage."""
  currentValue: Int

  """The error object. The error object type depends on the type of action."""
  errorObject: Object

  """Is the task failed?"""
  hasFailed: Boolean!

  """The instanceId identifies a specific operation. Use this instanceId to poll the current status."""
  instanceId: String

  """Is the task finished?"""
  isFinished: Boolean!

  """The maximum value for the operation's progress. A max value < 0 indicates, that the maximum value is not known for this operation."""
  maxValue: Int

  """The result if there is one."""
  resultObject: Object

  """The exception stack trace if there is a server exception."""
  stackTrace: String

  """The current sub-action being performed. Can be empty or null."""
  subAction: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.common.DisplayRawValue'
"""When getting data for a report, we get a display value that is targetted for displaying the value in the UI.
The raw value can be used in renderers or in filters if needed."""
input DisplayRawValueInput {
  """The display value for the UI"""
  displayValue: String

  """The raw value for enums, complex types or floating point numbers"""
  rawValue: Object

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.common.Paging'
"""Paging configuration"""
input PagingInput {
  """Size of the page in rows. When less or equal to 0, it returns all rows."""
  rowCount: Int!

  """Start of the paging area. When less than 0, it starts with 0"""
  start: Int!

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.common.SearchConfiguration'
"""Search and filter configuration"""
input SearchConfigurationInput {
  """A flag whether to ignore case or not when searching"""
  ignoreCase: Boolean!

  """The search string"""
  searchString: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.common.SortEntry'
"""Paging configuration"""
input SortEntryInput {
  """The field to sort by"""
  sortBy: FieldDescriptionInput

  """The sort direction"""
  sortOrder: SortOrder

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.monitoring.caching.CacheStatisticsEntry'
"""A cache statistics entry contains information about the number of items within a specific cache"""
type CacheStatisticsEntry {
  """The cache name"""
  cacheName: String

  """The number of entries in the specific cache"""
  count: Long!

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.monitoring.filesystem.FileSystemEntry'
"""Information about the file system"""
type FileSystemEntry {
  """The drive letter"""
  drive: String

  """The free space in kb"""
  freeSpace: Long

  """The file system name"""
  name: String

  """The total space in kb"""
  totalSpace: Long

  """The file system name"""
  type: String

  """The usable space in kb"""
  usableSpace: Long

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.discovery.DeviceTriggerResult'
"""The result for synchronously triggering a device scan."""
type DeviceTriggerResult {
  """The IP address queue items for the device addition. Note that there might be multiple device queue entries for a device.
For instance, when a hostname resolves to multiple IP addresses."""
  deviceQueueItem: DeviceQueueItem

  """The IP address or hostname for this entry!"""
  ipOrHostname: String

  """The status for the device addition"""
  status: DiscoveryProtocolStatusEnum

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.discovery.DiscoveryJobReference'
input DiscoveryJobReference {
  """The id of the discovery job"""
  jobId: Long

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.logging.LogMessage'
"""The log message"""
type LogMessage {
  """The log level"""
  level: LogLevel

  """The log message payload"""
  payload: String

  """The message tags"""
  tags: [String]

  """The log message timestamp in UTC"""
  timestamp: DateTime

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.logging.LogMessage'
"""The log message"""
input LogMessageInput {
  """The log level"""
  level: LogLevel

  """The log message payload"""
  payload: String

  """The message tags"""
  tags: [String]

  """The log message timestamp in UTC"""
  timestamp: DateTime

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.login.LoginResult'
type LoginResult {
  """The access token"""
  accessToken: String

  """The renewal token"""
  refreshToken: String

  """The status for the login call"""
  status: LoginResultStatus

  """The list of rights for the user"""
  rights: [InventoryUserRight]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.management.cluster.ClusterDeletionProgressInfo'
"""This object contains information about the background task deleteClusters within the clusterManagement interface.
Deleting clusters can be a lengthly operation and the async version can delete the clusters in the background.
This object can be used to track the progress and hold the result of the operation."""
type ClusterDeletionProgressInfo implements ProgressInfo {
  """The current action being performed. Can be empty or null."""
  action: String

  """A message that describes the completion status once the task is completed or canceled."""
  completionMessage: String

  """The current value for the operation's progress. Together with the maxValue, you can calculate the percentage."""
  currentValue: Int

  """The error object. The error object type depends on the type of action."""
  errorObject: Object

  """Is the task failed?"""
  hasFailed: Boolean!

  """The instanceId identifies a specific operation. Use this instanceId to poll the current status."""
  instanceId: String

  """Is the task finished?"""
  isFinished: Boolean!

  """The maximum value for the operation's progress. A max value < 0 indicates, that the maximum value is not known for this operation."""
  maxValue: Int

  """The result if there is one."""
  resultObject: Object

  """The exception stack trace if there is a server exception."""
  stackTrace: String

  """The current sub-action being performed. Can be empty or null."""
  subAction: String

  """When the operation completed, this property holds the list of clusters which could not be found during the deletion process."""
  notFoundClusters: [Cluster]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.management.datacenter.DatacenterDeletionProgressInfo'
"""This object contains information about the background task deleteVirtualDatacenters within the virtualDatacenterManagement interface.
Deleting virtual datacenters can be a lengthly operation and the async version can delete the virtual datacenters in the background.
This object can be used to track the progress and hold the result of the operation."""
type DatacenterDeletionProgressInfo implements ProgressInfo {
  """The current action being performed. Can be empty or null."""
  action: String

  """A message that describes the completion status once the task is completed or canceled."""
  completionMessage: String

  """The current value for the operation's progress. Together with the maxValue, you can calculate the percentage."""
  currentValue: Int

  """The error object. The error object type depends on the type of action."""
  errorObject: Object

  """Is the task failed?"""
  hasFailed: Boolean!

  """The instanceId identifies a specific operation. Use this instanceId to poll the current status."""
  instanceId: String

  """Is the task finished?"""
  isFinished: Boolean!

  """The maximum value for the operation's progress. A max value < 0 indicates, that the maximum value is not known for this operation."""
  maxValue: Int

  """The result if there is one."""
  resultObject: Object

  """The exception stack trace if there is a server exception."""
  stackTrace: String

  """The current sub-action being performed. Can be empty or null."""
  subAction: String

  """When the operation completed, this property holds the list of devices which could not be found during the deletion process."""
  virtualDatacentersNotFound: [VirtualDatacenter]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.management.devices.DeviceDeletionProgressInfo'
"""This object contains information about the background task deleteDevices within the deviceManagement interface.
Deleting devices can be a lengthly operation and the async version can delete the devices in the background. This object can be used to track the progress
and hold the result of the operation."""
type DeviceDeletionProgressInfo implements ProgressInfo {
  """The current action being performed. Can be empty or null."""
  action: String

  """A message that describes the completion status once the task is completed or canceled."""
  completionMessage: String

  """The current value for the operation's progress. Together with the maxValue, you can calculate the percentage."""
  currentValue: Int

  """The error object. The error object type depends on the type of action."""
  errorObject: Object

  """Is the task failed?"""
  hasFailed: Boolean!

  """The instanceId identifies a specific operation. Use this instanceId to poll the current status."""
  instanceId: String

  """Is the task finished?"""
  isFinished: Boolean!

  """The maximum value for the operation's progress. A max value < 0 indicates, that the maximum value is not known for this operation."""
  maxValue: Int

  """The result if there is one."""
  resultObject: Object

  """The exception stack trace if there is a server exception."""
  stackTrace: String

  """The current sub-action being performed. Can be empty or null."""
  subAction: String

  """When the operation completed, this property holds the list of devices which could not be found during the deletion process."""
  devicesNotFound: [Device]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.management.devices.GraphQLSshAccount'
"""Class for storing ssh key and account data"""
input GraphQLSshAccount {
  """account for the ssh key"""
  account: String

  """account type for the ssh key"""
  accountType: AccountType

  """a description for the ssh key"""
  description: String

  """the length in bits"""
  lengthInBits: Int

  """name for the ssh key"""
  name: String

  """the passphrase"""
  passphrase: String

  """the private key"""
  privateKey: String

  """the public key"""
  publicKey: String

  """the ssh key type"""
  sshKeyType: SshKeyType

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.mutations.management.event.EventDeletionProgressInfo'
"""This object contains information about the background task deleteEvents within the eventManagement interface.
Deleting events can be a lengthly operation and the async version can delete the events in the background.
This object can be used to track the progress and hold the result of the operation."""
type EventDeletionProgressInfo implements ProgressInfo {
  """The current action being performed. Can be empty or null."""
  action: String

  """A message that describes the completion status once the task is completed or canceled."""
  completionMessage: String

  """The current value for the operation's progress. Together with the maxValue, you can calculate the percentage."""
  currentValue: Int

  """The error object. The error object type depends on the type of action."""
  errorObject: Object

  """Is the task failed?"""
  hasFailed: Boolean!

  """The instanceId identifies a specific operation. Use this instanceId to poll the current status."""
  instanceId: String

  """Is the task finished?"""
  isFinished: Boolean!

  """The maximum value for the operation's progress. A max value < 0 indicates, that the maximum value is not known for this operation."""
  maxValue: Int

  """The result if there is one."""
  resultObject: Object

  """The exception stack trace if there is a server exception."""
  stackTrace: String

  """The current sub-action being performed. Can be empty or null."""
  subAction: String

  """When the operation completed, this property holds the list of events which could not be found during the deletion process."""
  notFoundEvents: [Event]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.administration.certificate.CertificateInfo'
"""Information about a certificate in the certificate store"""
type CertificateInfo {
  """The certificate alias used in the certificate store"""
  aliasName: String

  """The certificate end date"""
  endDate: DateTime

  """A flag whether the certificate is valid or not"""
  isValid: Boolean

  """The certificate issuer"""
  issuer: String

  """The certificate key usage(s)"""
  keyUsage: [String]

  """The certificate serial number"""
  serialNumber: String

  """The certificate signature algorithm"""
  signatureAlgorithm: String

  """The certificate start date"""
  startDate: DateTime

  """The certificate subject"""
  subject: String

  """The certificate subject alternative names"""
  subjectAlternativeNames: [String]

  """The certificate type"""
  type: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.administration.certificate.CertificateResult'
"""The result for a certificate query"""
type CertificateResult {
  """The certificate"""
  certificate: CertificateInfo

  """The error message in case of errors"""
  errorMessage: String

  """The stack trace for the error"""
  stackTrace: String

  """The request status"""
  status: Status

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.administration.installation.ProductInfo'
"""Information about a certificate in the certificate store"""
type ProductInfo {
  """The build number"""
  buildNumber: Int!

  """The company name"""
  companyName: String

  """The product major version"""
  majorVersion: Int!

  """The product major version"""
  minorVersion: Int!

  """The product name"""
  productName: String

  """The product version"""
  version: String

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.administration.integration.Integration'
"""Queries for integrations with other tools (e.g. CMDB, etc.)"""
type Integration {
  """Gets the list of currently registered integrations.

Required permissions: Manage integrations, View report"""
  findAllRegistrations: [IntegrationRegistration]

  """Gets a registration by its internal database id.

Required permissions: Manage integrations, View report"""
  findRegistrationByID(id: Long!): IntegrationRegistration

  """Gets a registration by its unique id.

Required permissions: Manage integrations, View report"""
  findRegistrationByUniqueId(uniqueId: String): IntegrationRegistration

  """Gets the changes query object

Required permissions: Manage integrations, View report"""
  changes: IntegrationChanges

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.administration.integration.changes.IntegrationChanges'
"""Change related queries for integrations"""
type IntegrationChanges {
  """Change related queries for integrations

Required permissions: Manage integrations, View report"""
  deviceChanges: IntegrationDeviceChanges

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.administration.integration.changes.devices.IntegrationDeviceChanges'
"""Device change related queries for integrations"""
type IntegrationDeviceChanges {
  """Find a list of devices that have changes for one of the specified categories

Required permissions: Manage integrations, View report"""
  findChangedDevicesWithCategories(integrationRegistrationUniqueId: String, categories: [DiscoveryCategory]): [DeviceComparison]

  """Find a list of devices having an operating system family that have changes for one of the specified categories

Required permissions: Manage integrations, View report"""
  findChangedDevicesWithCategoriesAndOsFamily(integrationRegistrationUniqueId: String, osFamily: String, categories: [DiscoveryCategory]): [DeviceComparison]

  """Find a list of devices having an operating system family and parent types (looking down the type hierarchy) that have changes for one of the specified categories

Required permissions: Manage integrations, View report"""
  findChangedDevicesWithCategoriesAndOsFamilyAndParentTypes(integrationRegistrationUniqueId: String, osFamily: String, parentTypes: [DeviceType], categories: [DiscoveryCategory]): [DeviceComparison]

  """Find a list of devices having an operating system family and types that have changes for one of the specified categories

Required permissions: Manage integrations, View report"""
  findChangedDevicesWithCategoriesAndOsFamilyAndTypes(integrationRegistrationUniqueId: String, osFamily: String, types: [DeviceType], categories: [DiscoveryCategory]): [DeviceComparison]

  """Find a list of devices with specific parent types (looking down the type hierarchy) that have changes for one of the specified categories

Required permissions: Manage integrations, View report"""
  findChangedDevicesWithCategoriesAndParentTypes(integrationRegistrationUniqueId: String, parentTypes: [DeviceType], categories: [DiscoveryCategory]): [DeviceComparison]

  """Find a list of devices with specific types that have changes for one of the specified categories

Required permissions: Manage integrations, View report"""
  findChangedDevicesWithCategoriesAndTypes(integrationRegistrationUniqueId: String, types: [DeviceType], categories: [DiscoveryCategory]): [DeviceComparison]

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.configuration.application.ApplicationConfiguration'
"""Queries about application configuration parameters"""
type ApplicationConfiguration {
  """Returns the GraphQL schema string"""
  graphQLSchema: String

  """Gets the license information"""
  licenseInfo: LicenseInfo

  """Gets the license information encoded in the given license string. If the given string is null, it returns the license info of the license installed.

Required permissions: Perform administrative task"""
  licenseInfoFromString(licenseStr: String): LicenseInfo

  """Gets the license request

Required permissions: Perform administrative task"""
  licenseRequest: String

  """Gets if current HTTPS certificate is self-signed

Required permissions: View report"""
  isSelfSignedCertificate: Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.configuration.discovery.DiscoveryConfiguration'
"""Queries about discovery configuration parameters"""
type DiscoveryConfiguration {
  """Gets device groups information

Required permissions: View report"""
  deviceGroups: DeviceGroups

  """Get the discovery job run and blackout schedule which corresponds to the given discovery job reference"""
  discoveryJobSchedule(discoveryJobReference: DiscoveryJobReference): Schedule

  """Gets scheduled job

Required permissions: View report"""
  scheduledJobs: ScheduledJobs

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.discovery.DiscoveryJobRun'
"""A discovery job run"""
type DiscoveryJobRun {
  """The duration of the run in seconds"""
  durationInSeconds: Long

  """The end event of this particular run"""
  endEvent: Event

  """The valid flag of the run. A run is valid when both the start event and the completed event exist."""
  isValid: Boolean

  """The start event of this particular run"""
  startEvent: Event

  """When a stop was requested true, otherwise false"""
  stopRequested: Boolean

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.management.user.UserManagement'
"""Queries about the user management"""
type UserManagement {
  """Gets user groups."""
  groups: [InventoryUserGroupInfo]

  """Gets user permissions."""
  permissions: [InventoryUserRight]

  """Gets the user management queries."""
  preferences: UserPreferences

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.management.user.preferences.UserPreferences'
"""Queries about the user preferences"""
type UserPreferences {
  """Gets the settings object for dashboard items."""
  dashboardPreferences: DashboardPreferences

  """Gets the settings object for the dialog preferences."""
  dialogPreferences: DialogPreferences

  """Gets the WEB UI preferences."""
  webUIPreferences: WebUIPreferences

  """Gets the user preferences related to table."""
  tablePreferences: TablePreferences

  """Gets the user preferences related to trees."""
  treePreferences: TreePreferences

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.management.user.preferences.dashboard.DashboardPreferences'
"""Queries for the dashboard user preferences"""
type DashboardPreferences {
  """Gets all dashboard locations for items with a specific id."""
  dashboardLocations(idPrefix: String): [DashboardItemLocation]

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.management.user.preferences.dialog.DialogPreferences'
"""Queries for the dialog user preferences"""
type DialogPreferences {
  """Returns the dialog preferences for the given dialog ref."""
  commonDialogPreferences(dialogRef: DialogRefInput): CommonDialogPreferences

  """Returns whether to display a confirmation dialog for a specific dialog id."""
  showConfirmationDialog(dialogId: String): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.management.user.preferences.table.TablePreferences'
"""Queries for the table user preferences"""
type TablePreferences {
  """Returns the table state."""
  tableState(stateKey: String): TableState

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.management.user.preferences.tree.TreePreferences'
"""Queries for the tree user preferences"""
type TreePreferences {
  """Returns the tree state."""
  treeState(treeRef: TreeRefInput): TreeState

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.CustomReportElementTreeNode'
"""A custom report element tree node representation"""
type CustomReportElementTreeNode {
  """The node children"""
  children: [CustomReportElementTreeNode]

  """The node description"""
  description: String

  """The node filters"""
  filtersToString: [String]

  """The node id"""
  id: String

  """The node active flag"""
  isActive: Boolean!

  """The node label"""
  label: String

  """The node leaf flag"""
  leaf: Boolean!

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.CustomReportElementsTree'
"""The custom reports elements tree"""
type CustomReportElementsTree {
  """The serialized elements tree JSON"""
  elementsRoot: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.CustomReportReference'
input CustomReportReference {
  """The id of the custom report"""
  id: Long!

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.CustomReportsTree'
"""The custom reports tree"""
type CustomReportsTree {
  """The global custom reports JSON"""
  globalCustomReportsJson: String

  """The group custom reports JSON"""
  groupCustomReportsJson: String

  """The private custom reports JSON"""
  privateCustomReportsJson: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.TreeNode'
"""A tree node representation"""
type CustomReportsTreeNode {
  """The node canDelete flag"""
  canDelete: Boolean!

  """The node children"""
  children: [CustomReportsTreeNode]

  """The node description"""
  description: String

  """The node id"""
  id: Long

  """The node label"""
  label: String

  """The node type"""
  type: CustomReportType

  """The node visibility"""
  visibility: CustomReportVisibility

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.reporting.actions.ReportActions'
"""The ReportActions interface is used by the WEB UI to get the report description and filters for open report actions defined in report descriptions"""
type ReportActions {
  """This call gets the details for the open report action based on cached scalar data.
The reportCacheId must refer to a valid reportCacheId for a scalar report. The index refers to the index of the data link within the value list"""
  scalarReportAction(reportCacheId: String, valueIndex: Int): ReportActionInterface

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.reporting.filters.ReportingFilter'
"""Queries about reporting filters (used mainly by the WEB UI)"""
type ReportingFilter {
  """Gets the list of device ids from a cached device report based on the selected indexes

Required permissions: View report"""
  deviceIdsForRows(instanceId: String, selectedRowIndexes: [Int]): [Long]

  """Gets the list of filters for the selected rows and the instance id

Required permissions: View report"""
  filtersForSelectedRows(instanceId: String, selectedRowIndexes: [Int]): [FieldFilter]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.scalar.ScalarReportConfig'
"""The report config when getting scalar reports from the server"""
input ScalarReportConfigInput {
  """The list of filters"""
  filters: [FieldFilterInput]

  """The report id"""
  report: BuiltInReport

  """The report cache id. Reports can be cached. When using the cacheId, then the server gets the cached report. Otherwise, it gets the report from the database."""
  reportCacheId: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.scalar.ScalarResult'
"""The result for a scalar data request"""
type ScalarResult {
  """The query which created this report. Null if there is none..."""
  query: String

  """The report cache id"""
  reportCacheId: String

  """The list of scalar values. The list might include empty entries. This is used to indicate in the UI to add an additional space between two scalar values"""
  values: [ScalarReportData]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.table.CustomReportConfig'
"""The report configuration when getting table data from the server"""
input CustomReportConfigInput {
  """The custom report reference"""
  customReportRef: CustomReportReference

  """The list of filters"""
  filters: [FieldFilterInput]

  """The paging configuration. When null, then it returns all data"""
  paging: PagingInput

  """The report cache id. Reports can be cached. When using the cacheId, then the server gets the cached report. Otherwise, it gets the report from the database."""
  reportCacheId: String

  """The paging configuration. When null, then it returns all data"""
  searchConfig: SearchConfigurationInput

  """The sort configuration"""
  sortConfiguration: [SortEntryInput]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.table.TableDataResult'
"""The result when getting table data from the reporting service"""
type TableDataResult {
  """When the report gets called with an page offset which is outside the table data, then we return the last 25 rows and adjust the actual offset"""
  actualOffset: Int!

  """The rows within a table (based on the selected paging, sorting and other settings)"""
  rows: [[Object]]

  """The number of total rows in the table (based on the selected searching, filtering, and other settings)"""
  totalRows: Int!

  """The number of currently visible rows based on the search settings.
Note that entering search strings can reduce the number of visible rows in table because
rows not matching the search criteria are removed from the actual result."""
  visibleRows: Int!

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.table.TableReportConfig'
"""The report configuration when getting table data from the server"""
input TableReportConfigInput {
  """The list of filters"""
  filters: [FieldFilterInput]

  """The paging configuration. When null, then it returns all data"""
  paging: PagingInput

  """The BuildInReport"""
  report: BuiltInReport

  """The report cache id. Reports can be cached. When using the cacheId, then the server gets the cached report. Otherwise, it gets the report from the database."""
  reportCacheId: String

  """The paging configuration. When null, then it returns all data"""
  searchConfig: SearchConfigurationInput

  """The sort configuration"""
  sortConfiguration: [SortEntryInput]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.table.TableResult'
"""The result for a table data request"""
type TableResult {
  """The query which created this report"""
  query: String

  """The report cache id"""
  reportCacheId: String

  """The report description for this report"""
  reportDescription: TableReportDescription

  """The table data"""
  tableData: TableDataResult

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.tree.ReportingTreeNode'
"""A node within a tree report result - used internally by the WEB UI"""
type ReportingTreeNode {
  """The class name for the underlying Java class representing this node. This is often used for rendering with the correct icon"""
  className: String

  """The list of filters to add to the report when displaying the report"""
  filters: [FieldFilter]

  """The icon name when rendering the entry"""
  iconName: String

  """The id of the flattened tree node"""
  id: Int

  """A flag whether to include the unitFilter when requesting a report"""
  includeUnitFilter: Boolean

  """The label to display for this node"""
  label: String

  """The id of the parent node"""
  parentId: Int

  """A report description that describes the report to display when selecting this node"""
  reportDescription: ReportDescription

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.tree.TreeReportConfig'
"""The report config when getting tree reports from the server"""
input TreeReportConfigInput {
  """The list of filters"""
  filters: [FieldFilterInput]

  """The report id"""
  report: BuiltInReport

  """The report cache id. Reports can be cached. When using the cacheId, then the server gets the cached report. Otherwise, it gets the report from the database."""
  reportCacheId: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.query.reporting.tree.TreeResult'
"""The result when getting tree data from the reporting service"""
type TreeResult {
  """The list of the flattened tree nodes"""
  flatNodeList: [ReportingTreeNode]

  """The report cache id for this tree report"""
  reportCacheId: String

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.status.discovery.Discovery'
"""The discovery status object"""
type Discovery {
  """Gets the discovery status object. This object holds the current state of the discovery process."""
  status(statusArea: DiscoveryStatusArea): DiscoveryStatusData

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.login.PongRequest'
"""Ping request"""
type PongRequest {
  """Backend last seen alive timestamp"""
  backendLastAlive: DateTime

  """Backend connection attempts"""
  backendReconnectAttempts: Int

  """Backend session status"""
  backendState: SessionState

  """Frontend last seen alive timestamp"""
  frontendLastAlive: DateTime

  """Frontend connection attempts"""
  frontendReconnectAttempts: Int

  """Frontend session status"""
  frontendState: SessionState

  """Application status"""
  startMode: ApplicationStartMode

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.UpdateTopicPayload'
"""Update Topic Payload"""
type UpdateTopicPayload {
  """Error flag"""
  hasError: Boolean!

  """JSON payload"""
  payload: String

  """JSON payload type"""
  type: String

  """Unique identifier of the message"""
  uuid: String

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusCloudTopicUpdate'
"""DiscoveryStatusCloudTopicUpdate"""
type DiscoveryStatusCloudTopicUpdate {
  """discoveryCloudStatus"""
  discoveryCloudStatus: DiscoveryCloudStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusDevicesDetailsTopicUpdate'
"""DiscoveryStatusDevicesTopicUpdate"""
type DiscoveryStatusDevicesDetailsTopicUpdate {
  """A collection of all devices being discovered"""
  devices: [DeviceDiscoveryStatus]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusDevicesTopicUpdate'
"""DiscoveryStatusDevicesTopicUpdate"""
type DiscoveryStatusDevicesTopicUpdate {
  """avgDiscoveryTimeInMilliseconds"""
  avgDiscoveryTimeInMilliseconds: Long!

  """currentDevicesCount"""
  currentDevicesCount: Int!

  """devicesInDb"""
  devicesInDb: Int!

  """lastAction"""
  lastAction: String

  """manuallyTriggeredPendingTasks"""
  manuallyTriggeredPendingTasks: Int!

  """manuallyTriggeredProcessedTasks"""
  manuallyTriggeredProcessedTasks: Int!

  """maxDevices"""
  maxDevices: Int!

  """schedulledPendingTasks"""
  scheduledPendingTasks: Int!

  """schedulledProcessedTasks"""
  scheduledProcessedTasks: Int!

  """status"""
  status: DiscoveryQueueStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusDirectoryTopicUpdate'
"""DiscoveryStatusDirectoryTopicUpdate"""
type DiscoveryStatusDirectoryTopicUpdate {
  """directoryQueueStatus"""
  directoryQueueStatus: DirectoryQueueStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusDiscoveryJobsCycleSummary'
"""A summary of a discovery job"""
type DiscoveryStatusDiscoveryJobsCycleSummary {
  """The description of the discovery job"""
  description: String

  """The state of the discovery job"""
  enabled: Boolean

  """The id of the discovery job"""
  id: Long

  """The last duration in ms of the discovery job"""
  lastDurationInMs: Long

  """The last finish date of the discovery job"""
  lastFinished: DateTime

  """The last start date of the discovery job"""
  lastStarted: DateTime

  """The name of the discovery job"""
  name: String

  """The next run date of the discovery job"""
  nextRun: DateTime

  """The next run in ms of the discovery job"""
  nextRunInMs: Long

  """The status of the discovery job"""
  status: TaskStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusDiscoveryJobsTopicUpdate'
"""DiscoveryStatusDiscoveryJobsTopicUpdate"""
type DiscoveryStatusDiscoveryJobsTopicUpdate {
  """A collection of all discovery cycles statuses"""
  discoveryJobs: [DiscoveryStatusDiscoveryJobsCycleSummary]

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusLdapSyncTopicUpdate'
"""DiscoveryStatusLdapSyncTopicUpdate"""
type DiscoveryStatusLdapSyncTopicUpdate {
  """ldapSynchronizerStatus"""
  ldapSynchronizerStatus: LdapObjectDbSynchronizerControllerStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusMeasurementTopicUpdate'
"""DiscoveryStatusMeasurementTopicUpdate"""
type DiscoveryStatusMeasurementTopicUpdate {
  """measurementStatus"""
  measurementStatus: MeasurementStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusNetworkNeighborhoodTopicUpdate'
"""DiscoveryStatusNetworkNeighborhoodTopicUpdate"""
type DiscoveryStatusNetworkNeighborhoodTopicUpdate {
  """domainQueueStatus"""
  domainQueueStatus: DomainQueueStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusOverallProcessSummaryTopicUpdate'
"""DiscoveryStatusOverallProcessSummaryTopicUpdate"""
type DiscoveryStatusOverallProcessSummaryTopicUpdate {
  """isActive"""
  isActive: Boolean

  """status"""
  status: DiscoveryProcessStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusOverallProcessTopicUpdate'
"""DiscoveryStatusOverallProcessTopicUpdate"""
type DiscoveryStatusOverallProcessTopicUpdate {
  """isActive"""
  isActive: Boolean

  """last action"""
  lastAction: String

  """status"""
  status: DiscoveryProcessStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.DiscoveryStatusPingTopicUpdate'
"""DiscoveryStatusPingTopicUpdate"""
type DiscoveryStatusPingTopicUpdate {
  """addressesPingedDJ"""
  addressesPingedDJ: Long!

  """addressesToPingDJ"""
  addressesToPingDJ: Long!

  """addressesToPingManuallyTriggered"""
  addressesToPingManuallyTriggered: Long!

  """isActive"""
  isActive: Boolean!

  """lastMessage"""
  lastMessage: String

  """pendingIpRangesDJ"""
  pendingIpRangesDJ: Long!

  """pendingIpRangesManuallyTriggered"""
  pendingIpRangesManuallyTriggered: Long!

  """pendingNetworksDJ"""
  pendingNetworksDJ: Long!

  """pendingNetworksManuallyTriggered"""
  pendingNetworksManuallyTriggered: Long!

  """The ping range status collection"""
  pingRanges: [PingRangeStatus]

  """processedIpRangesDJ"""
  processedIpRangesDJ: Long!

  """processedNetworksDJ"""
  processedNetworksDJ: Long!

  """status"""
  status: DiscoveryQueueStatus

}

# Mapping for Java class 'com.jdisc.webui.server.graphql.misc.progress.GraphQLDefaultProgressCallback'
"""This object contains information about the generic background tasks."""
type GraphQLDefaultProgressCallback implements ProgressInfo {
  """The current action being performed. Can be empty or null."""
  action: String

  """A message that describes the completion status once the task is completed or canceled."""
  completionMessage: String

  """The current value for the operation's progress. Together with the maxValue, you can calculate the percentage."""
  currentValue: Int

  """The error object. The error object type depends on the type of action."""
  errorObject: Object

  """Is the task failed?"""
  hasFailed: Boolean!

  """The instanceId identifies a specific operation. Use this instanceId to poll the current status."""
  instanceId: String

  """Is the task finished?"""
  isFinished: Boolean!

  """The maximum value for the operation's progress. A max value < 0 indicates, that the maximum value is not known for this operation."""
  maxValue: Int

  """The result if there is one."""
  resultObject: Object

  """The exception stack trace if there is a server exception."""
  stackTrace: String

  """The current sub-action being performed. Can be empty or null."""
  subAction: String

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.DeviceRepository'
"""This type provides device related queries"""
type Devices {
  """Find all devices"""
  findAll: [Device]

  """Find devices by id"""
  findByID(id: Long!): Device

  """Find devices by id"""
  findByIds(ids: [Long]): [Device]

  """Find devices by an integration id and a foreignId. Integrations are being used when import JDisc Discovery data into other solutions like CMDB solutions"""
  findByIntegrationIdAndForeignKey(integrationUniqueId: String, foreignId: String): [Device]

  """Find devices by name. The default for caseSenstitive is TRUE."""
  findByName(name: String, caseSensitive: Boolean): [Device]

  """Find devices by operating system family"""
  findByOperatingSystemFamily(osFamily: String): [Device]

  """Find devices by operating system version"""
  findByOperatingSystemVersion(osVersion: String): [Device]

  """Find devices by its role"""
  findByRole(role: DeviceRole): [Device]

  """Find devices by type"""
  findByType(type: DeviceType): [Device]

  """Finds all devices where type matches one of the types passed as argument."""
  findByTypes(types: [DeviceType]): [Device]

  """Finds all devices with an IP address.
The activeOnly indicates whether to search only for IP addresses on active interfaces.
When the activeOnly is FALSE, then we are also looking on interfaces with a status other than 'up'.
The default for the activeOnly is TRUE"""
  findDevicesByIPAddress(ipAddress: String, activeOnly: Boolean): [Device]

  """Find devices that are part of an IP4 network. Note: A device can be part of multiple networks!"""
  findDevicesInIP4Network(ip4NetworkReference: IP4NetworkReference): [Device]

  """Find devices that are part of an IP6 network. Note: A device can be part of multiple networks!"""
  findDevicesInIP6Network(ip6NetworkReference: IP6NetworkReference): [Device]

  """Find devices with a physical address (mac address or WWN)."""
  findDevicesWithPhysicalAddress(physicalAddress: String): [Device]

  """Find devices with operating system family 'Windows' and not a server OS (osVersion contains 'Server')"""
  findWindowsClients: [Device]

  """Find devices with operating system family 'Windows' and a server OS (osVersion contains 'Server')"""
  findWindowsServers: [Device]

}

# Mapping for Java interface 'com.jdisc.inventory.jpa.repositories.users.UserRepository'
"""This type provides user related queries"""
type Users {
  """Find all user entries (directory, local, cloud, ...)"""
  findAll: [User]

  """Find all users defined in AD"""
  findDirectoryUsers(name: String): [User]

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.administration.Administration'
"""Queries for administration purposes"""
type Administration {
  """Queries for registered integrations (like CMDB, software license management tools etc.).

Required permissions: Manage integration"""
  integrations: Integration

  """Queries for registered integrations (like CMDB, software license management tools etc.)."""
  productInfo: ProductInfo

  """Parses a certificate byte stream and returns the certificate info (if there is some).

Required permissions: View reports, Perform administrative task"""
  parseWebServerCertificate(certificateBytes: [Int], privateKeyBytes: [Int], password: String): CertificateResult

  """Gets the current certificate information used for the WEB server.

Required permissions: View reports, Perform administrative task"""
  webServerCertificate: CertificateInfo

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.configuration.Configuration'
"""Queries about configuring objects"""
type Configuration {
  """Gets the custom attribute configuration queries

Required permissions: View reports, Enter custom attribute"""
  customAttributes: CustomAttributes

  """Gets the application configuration queries"""
  applicationConfiguration: ApplicationConfiguration

  """Gets the discovery configuration queries"""
  discoveryConfiguration: DiscoveryConfiguration

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.discovery.DiscoveryQueries'
"""Queries for discovery related items"""
type DiscoveryQueries {
  """Gets the directory device queue related queries.

Required permissions: View report"""
  deviceQueueItems: DeviceQueueQueries

  """Get the discovery job runs which corresponds to the given discovery job reference

Required permissions: View report"""
  discoveryJobRuns(discoveryJobReference: DiscoveryJobReference): [DiscoveryJobRun]

  """Gets the directory related queries.

Required permissions: View report"""
  discoveryJobs: DiscoveryJobs

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.event.EventQueries'
"""Queries for event related items"""
type EventQueries {
  """Gets the event related queries.

Required permissions: View report"""
  events: Events

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.management.Management'
"""Queries about managing objects"""
type Management {
  """Gets the user management queries."""
  users: UserManagement

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.monitoring.Monitoring'
"""The monitoring API lets you query the application's health and operation parameters"""
type Monitoring {
  """The web server caches information in order to speed up the client operation.
This call returns the list of caches together with the number of entries.

Constantly growing cache sizes are an indication for a memory leak!"""
  cacheStatistics: [CacheStatisticsEntry]

  """Gets information about the memory usage in the discovery server"""
  discoveryServerMemoryStatistics: MemoryStatistics

  """Gets the list of file systems together with their sizes"""
  fileSystems: [FileSystemEntry]

  """Gets information about the memory usage in the WEB server"""
  webServerMemoryStatistics: MemoryStatistics

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.networking.Networking'
"""Queries for networking related items"""
type Networking {
  """Gets the directory related queries."""
  directories: Directories

  """Gets the IP4 network related queries."""
  ip4Networks: IP4Networks

  """Gets the IP6 network related queries."""
  ip6Networks: IP6Networks

  """Gets the network interface related connections."""
  networkInterfaces: NetworkInterfaces

  """Gets the network topology layer 2 connections."""
  topologyConnections: TopologyConnections

  """Gets VLAN related queries."""
  vlans: Vlans

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.progress.OperationProgress'
"""Use the operation progress API to query the status of async operations!
Whenever you call a async operation (methods are marked with the async suffix), JDisc Discovery creates a ProgressInfo
object which hold information about the operation (percentage done, current operation). Finally, when the task is done, then
the specific ProgressInfo object may hold additional information about the task (e.g. results, ...)"""
type OperationProgress {
  """Gets the list of all progress info objects in the cache."""
  all: [ProgressInfo]

  """Returns the progress info for a progress information object"""
  progressInfo(instanceId: String): ProgressInfo

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.reporting.Reporting'
"""Queries about reports and their descriptions"""
type Reporting {
  """Get the values for a custom report."""
  customReportData(reportConfig: CustomReportConfigInput): TableResult

  """Gets the custom report description"""
  customReportDescription(reportRef: CustomReportReference): CustomReportDescription

  """Gets the custom report elements tree"""
  customReportElementsTree(reportRef: CustomReportReference): CustomReportElementsTree

  """Gets the custom reports"""
  customReports: CustomReportInfo

  """Gets the custom reports tree"""
  customReportsTree: CustomReportsTree

  """Gets all field descriptions."""
  fieldDescriptions: [FieldDescription]

  """Gets module-aware device types."""
  moduleAwareDeviceTypes: [DeviceType]

  """Gets the interface to get details for report actions (used usually internally from the WEB UI"""
  reportActions: ReportActions

  """Gets the reporting filter object"""
  reportingFilter: ReportingFilter

  """Get the values for a scalar report."""
  scalarData(reportConfig: ScalarReportConfigInput): ScalarResult

  """Gets device types for switches."""
  switchDeviceTypes: [DeviceType]

  """Get the values for a table report."""
  tableData(reportConfig: TableReportConfigInput): TableResult

  """Get the values for a tree report."""
  treeData(reportConfig: TreeReportConfigInput): TreeResult

  """Removes the cache for a cached report. Returns true, when the cache id has been found. Otherwise, false."""
  removeCachedReport(instanceId: String): Boolean!

  """Get a report description for a specific report id and filters.
This call can return any type of report description (table, scalar, ...)."""
  reportDescription(reportId: BuiltInReport, filters: [FieldFilterInput]): ReportDescription

  """Get a table report description for a specific report id and filters"""
  scalarReportDescription(reportId: BuiltInReport, filters: [FieldFilterInput]): ScalarReportDescription

  """Get a table report description for a specific report id and filters"""
  tableReportDescription(reportId: BuiltInReport, filters: [FieldFilterInput]): TableReportDescription

  """Get a tree report description for a specific report id and filters"""
  treeReportDescription(reportId: BuiltInReport, filters: [FieldFilterInput]): TreeReportDescription

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.software.Software'
"""Queries for software related items"""
type Software {
  """Application instance related queries."""
  applicationInstances: ApplicationInstances

  """Application related queries."""
  applications: Applications

  """Service/Daemon installation queries."""
  certificates: Certificates

  """Service/Daemon installation queries."""
  installedServices: InstalledServices

  """Operating System related queries."""
  operatingSystems: OperatingSystems

  """Patch related queries."""
  patches: Patches

  """Service/Daemon related queries."""
  services: Services

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.status.StatusQuery'
"""Queries about the application and discovery status"""
type StatusQuery {
  """Gets the discovery status object to query the static of various discovery aspects."""
  discovery: Discovery

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.query.virtualization.Virtualization'
"""Queries for virtualization related items"""
type Virtualization {
  """Virtual datacenters related queries."""
  virtualDatacenters: VirtualDatacenters

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.administration.AdministrationMutation'
type AdministrationMutation {
  """Activates the given license!"""
  activateLicense(licenseString: String): LicenseInfo

  """Returns an object to register and unregister integrations

Required permissions: Manage integration"""
  integrations: IntegrationMutation

  """Installs a new certificate in the WEB server. Note that the WEB server restarts after this call!"""
  installWebServerCertificate(certificateBytes: [Int], privateKeyBytes: [Int], password: String): Status

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.administration.integration.IntegrationMutation'
"""Objects for registering external integrations."""
type IntegrationMutation {
  """Completes a device import"""
  finishDeviceImport(registrationUniqueId: String, devices: [ExternalDeviceReference]): Boolean!

  """Registers a new integration and returns the new registration object.

The applicationName should be the name for the integration product (e.g. the CMDB product name). The application name must not be empty!
The instanceName should be the name for the instance of the integration product (in case there are multile instances of the same product accessing our tool)
"""
  registerIntegration(appliationName: String, instanceName: String): IntegrationRegistration

  """marks a set of devices as 'imported' and copies the current device hash values to the hash value staging table that stores the last
hash values for an integration and devices.

Comparing the archived hash values with the current hash values lets you easily identify devices that have changed.
"""
  startDeviceImport(registrationUniqueId: String, devices: [DeviceReference]): Boolean!

  """Unregisters an integration and deletes all related information"""
  unregisterIntegration(registrationUniqueId: String): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.discovery.ControlDiscovery'
type ControlDiscovery {
  """Pauses the complete discovery process"""
  pauseDiscoveryProcess: PauseDiscoveryProcessResult

  """Resumes the complete discovery process"""
  resumeDiscoveryProcess: ResumeDiscoveryProcessResult

  """Starts the discovery job which corresponds to the given reference"""
  startJob(discoveryJobReference: DiscoveryJobReference): StartJobResult

  """Starts the discovery jobs which correspond to the given references"""
  startJobs(discoveryJobReferences: [DiscoveryJobReference]): StartJobsResult

  """Stops the discovery job which corresponds to the given reference"""
  stopJob(discoveryJobReference: DiscoveryJobReference): StopJobResult

  """Stops the discovery jobs which correspond to the given references"""
  stopJobs(discoveryJobReferences: [DiscoveryJobReference]): StopJobsResult

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.discovery.DiscoveryMutation'
type DiscoveryMutation {
  """Gets the discovery control methods."""
  control: ControlDiscovery

  """Gets the discovery trigger methods."""
  trigger: TriggerDiscovery

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.discovery.TriggerDiscovery'
type TriggerDiscovery {
  """Triggers the scan for an IP address or hostname. Returns true when the device has been added to the queue or false,
if - for instance - the hostname could not be resolved"""
  triggerDeviceScan(ipOrHostname: String): [DeviceTriggerResult]

  """Triggers the scan for an existing device. The device is identified by its id (embedded in the DeviceReference)When lookupDeviceFirst is true, then it performs DNS lookup on the hostname then then adds the resulting IP address to the discovery (good for DHCP).
Otherwise, it just adds the device's current IP addresses to the queue.

The method returns a status object with a DeviceQueueItem object. The device queue item object can be called to
poll the current status from the device queue."""
  triggerExistingDeviceScan(lookupDeviceFirst: Boolean, deviceReference: DeviceReference): [DeviceTriggerResult]

  """Triggers the scan for an existing device. The device is identified by its id (embedded in the DeviceReference)
When lookupDeviceFirst is true, then it performs DNS lookup on the hostname then then adds the resulting IP address to the discovery (good for DHCP).
Otherwise, it just adds the device's current IP addresses to the queue."""
  triggerExistingDevicesScan(lookupDeviceFirst: Boolean, deviceReferences: [DeviceReference]): [DeviceTriggerResult]

  """Triggers the scan for an existing device. The device is identified by its id (embedded in the DeviceReference)
When lookupDeviceFirst is true, then it performs DNS lookup on the hostname then then adds the resulting IP address to the discovery (good for DHCP).
Otherwise, it just adds the device's current IP addresses to the queue.

This method is executed asynchonously and will return a progress callback object"""
  triggerExistingDevicesScanAsync(lookupDeviceFirst: Boolean, deviceReferences: [DeviceReference]): DefaultProgressInfo

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.importing.DeviceImportManagerMutation'
type DeviceImportManagerMutation {
  """Imports a device into the database, checks whether the device exists and returns the import result."""
  importDevice(device: DeviceInput): ImportDeviceResult

  """Imports multiple devices into the database, checks whether the devices exists and returns the import results as array."""
  importDevices(device: [DeviceInput]): [ImportDeviceResult]

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.importing.ImportManagerMutation'
type ImportManagerMutation {
  """Gets the import manager for device imports."""
  devices: DeviceImportManagerMutation

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.logging.Logging'
"""This is the logging interface"""
type Logging {
  """Log the given messages"""
  log(messages: [LogMessageInput]): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.login.LoginLogout'
"""This is the primary authentication interface used to login and logout.

A login call requires a username and a password for the authentication. On successful authentication, the call returns an
 - access token
 - renewal token

The access token must be added to the HTTPS request headers to ensure a user has access to the appropriate resources.
An access token has usually a limited lifetime. This is done for various security reasons: for one, limiting the lifetime
of the access token limits the amount of time an attacker can use a stolen token. In addition, the information contained
in or referenced by the access token could become stale.
When access tokens expire or become invalid but the application still needs to access a protected resource, the application
faces the problem of getting a new access token without forcing the user to once again grant permission. To solve this problem,
a refresh token is introduced. A refresh token allows an application to obtain a new access token without prompting the user.

The access token must be added into the HTTPS header as parameter "Authorization". The value must be the String "Bearer"
followed by a space and the access token. When the access token has expired, then the server returns an SC_UNAUTHORIZED (401)
In this case, you might use the refresh token to obtain a new access and refresh token using the refreshAccessToken call.
The GraphQL also returns an SC_UNAUTHORIZED (401) when the renewal token has expired."""
type LoginLogout {
  """Checks the access token and returns false when it is invalid."""
  checkAccessToken(accessToken: String): Boolean!

  """Login to obtain an access token for API calls"""
  login(login: String, password: String): LoginResult

  """Login to obtain an access token for particular audience
- Web UI requires token with 'UI' audience to support dead session detection via WebSocket keep alive subscriptions
- custom scripts should use default option with 'API'
- custom scripts which acquired password from JDisc Discovery in en encrypted form should use 'SECURED'
"""
  loginEx(login: String, password: String, audience: JwtAudienceType): LoginResult

  """Logout the current session. Always returns true as a return value is required by GraphQL"""
  logout(accessToken: String): Boolean!

  """Callback to inform Web UI backend, that Web frontend client is still active"""
  pongSessionAlive(epoch: DateTime): PongRequest

  """Use the refresh token to obtain a new access and refresh token when the previous access token expired"""
  refreshAccessToken(refreshToken: String): LoginResult

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.ManagementMutation'
"""Objects for managing the application."""
type ManagementMutation {
  """Gets the cluster management object."""
  clusters: ClusterManagementMutation

  """Gets the datacenter management object."""
  datacenters: DatacenterManagementMutation

  """Gets the device management object."""
  devices: DeviceManagementMutation

  """Gets the event management object."""
  events: EventManagementMutation

  """Gets the user management object."""
  users: UserManagementMutation

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.cluster.ClusterManagementMutation'
type ClusterManagementMutation {
  """Deletes clusters. Returns a list of clusters that could not be found or an empty list if succesfull. (sync call)."""
  deleteClusters(clusters: [ClusterReference]): [Cluster]

  """Deletes clusters. Returns a progress object that the client can poll for the task status. (async call)"""
  deleteClustersAsync(clusters: [ClusterReference]): ClusterDeletionProgressInfo

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.datacenter.DatacenterManagementMutation'
type DatacenterManagementMutation {
  """Deletes virtual datacenters. Returns a progress object that the client can poll for the task status. (async call)"""
  deleteDatacentersAsync(datacenters: [DatacenterReference]): DatacenterDeletionProgressInfo

  """Deletes virtual datacenters. Returns a list of virtual datacenters that could not be found or an empty list if succesfull. (sync call)."""
  deleteVirtualDatacenters(virtualDatacenters: [DatacenterReference]): [VirtualDatacenter]

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.devices.DeviceManagementMutation'
type DeviceManagementMutation {
  """Assign the selected devices to matching device groups."""
  assignDevicesToGroups(devices: [DeviceReference]): Boolean!

  """Assign the selected devices to matching device groups as async call."""
  assignDevicesToGroupsAsync(devices: [DeviceReference]): DefaultProgressInfo

  """Deletes a device. Returns <true> if succesfull.
 The comment is being written to the device deletion log as deletion comment!"""
  deleteDevice(deviceRef: DeviceReference, comment: String): Boolean!

  """Deletes devices from the database. Returns a list of devices that could not be found or an empty list if succesfull. (sync call).
The comment is being written to the device deletion log as deletion comment!"""
  deleteDevices(devices: [DeviceReference], comment: String): [Device]

  """Deletes devices from the database. Returns a progress object that the client can poll for the task status. (async call)
The comment is being written to the device deletion log as deletion comment!"""
  deleteDevicesAsync(devices: [DeviceReference], comment: String): DeviceDeletionProgressInfo

  """disables a set of discovery protocols for the selected devices"""
  disableDiscoveryProtocols(devices: [DeviceReference], protocols: [DiscoveryProtocol]): [Device]

  """disables a set of discovery protocols for the selected devices"""
  disableDiscoveryProtocolsAsync(devices: [DeviceReference], protocols: [DiscoveryProtocol]): DefaultProgressInfo

  """Initiates a discovery for the given hostname or IP address. Upon failure, the response describes the reason."""
  discoverNow(hostnameOrIP: String, ignoreFilters: Boolean!): [DeviceTriggerResult]

  """Gets the credential management object which is used to modify acounts/passwords."""
  credentials: DeviceCredentialManagement

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.devices.credentials.DeviceCredentialManagement'
type DeviceCredentialManagement {
  """Reset all cached credentials for the given devices."""
  clearCachedCredentials(devices: [DeviceReference]): Boolean!

  """Reset all cached credentials (async). Returns a progress info object to monitor the progress."""
  clearCachedCredentialsAsync(devices: [DeviceReference]): DefaultProgressInfo

  """Set account information to discover the given devices. Returns a list of devices that could not be found or an empty list if succesfull."""
  setAccounts(devices: [DeviceReference], userAccount: AccountInput, adminAccount: AccountInput): [Device]

  """Set account information to discover the given devices. Returns a list of devices that could not be found or an empty list if succesfull."""
  setAccountsAsync(devices: [DeviceReference], userAccount: AccountInput, adminAccount: AccountInput): DefaultProgressInfo

  """Set database account information to discover the given device. Returns <true> if succesfull."""
  setDatabaseAccount(device: DeviceReference): Boolean!

  """Set HTTP account information to discover the given devices. Returns a list of devices that could not be found or an empty list if succesfull."""
  setHttpAccounts(devices: [DeviceReference], account: AccountInput): [Device]

  """Set HTTP accounts to the given devices. Returns a progress info object to monitor the progress."""
  setHttpAccountsAsync(devices: [DeviceReference], account: AccountInput): DefaultProgressInfo

  """Set SNMP account information to discover the given devices. Returns a list of devices that could not be found or an empty list if succesfull."""
  setSnmpAccounts(devices: [DeviceReference], community: SnmpCommunityInput, snmpAccount: SnmpV3AccountInput): [Device]

  """Set SNMP account information to discover the given devices async. Returns a progress info object to monitor the progress."""
  setSnmpAccountsAsync(devices: [DeviceReference], community: SnmpCommunityInput, snmpAccount: SnmpV3AccountInput): DefaultProgressInfo

  """Set account information to discover the given devices. Returns a list of devices that could not be found or an empty list if succesfull."""
  setSshAccounts(devices: [DeviceReference], account: GraphQLSshAccount): [Device]

  """Set vmware accounts to the given devices. Returns a list of devices that could not be found or an empty list if succesfull."""
  setVMwareAccounts(devices: [DeviceReference], account: AccountInput): [Device]

  """Set vmware accounts to the given devices. Returns a progress info object to monitor the progress."""
  setVMwareAccountsAsync(devices: [DeviceReference], account: AccountInput): DefaultProgressInfo

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.event.EventManagementMutation'
type EventManagementMutation {
  """Deletes events. Returns a list of events that could not be found or an empty list if succesfull. (sync call)."""
  deleteEvents(events: [EventReference]): [Event]

  """Deletes events. Returns a progress object that the client can poll for the task status. (async call)"""
  deleteEventssAsync(events: [EventReference]): EventDeletionProgressInfo

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.user.UserManagementMutation'
"""Objects for managing user related aspects."""
type UserManagementMutation {
  """Gets the user preferences."""
  preferences: UserPreferencesMutation

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.user.preferences.UserPreferencesMutation'
"""Modify user preferences."""
type UserPreferencesMutation {
  """Gets the settings object for dashboard items."""
  dashboardPreferences: DashboardPreferencesMutation

  """Gets the settings object for dialog related settings."""
  dialogPreferences: DialogPreferencesMutation

  """Gets the user preferences for table related settings."""
  tablePreferences: TablePreferencesMutation

  """Gets the user preferences for tree related settings."""
  treePreferences: TreePreferencesMutation

  """Gets the WEB UI preferences."""
  setWebUIPreferences(preferences: WebUIPreferencesInput): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.user.preferences.dashboard.DashboardPreferencesMutation'
"""Modify dashboard settings"""
type DashboardPreferencesMutation {
  """Sets the location for a dashboard item."""
  setLocation(dashboardItem: DashboardItemLocationInput): Boolean!

  """Sets the locations for a list of dashboard items."""
  setLocations(dashboardItems: [DashboardItemLocationInput]): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.user.preferences.dialogs.DialogPreferencesMutation'
"""Modify dialog preferences"""
type DialogPreferencesMutation {
  """Deletes the dialog preferences which match the given preference name. (in total or partially)"""
  deleteCommonDialogPreferences(preferenceName: String): Boolean!

  """Resets the confirmation dialog settings for all dialogs to default (enabled)"""
  resetConfirmationDialogSettings: Boolean!

  """Sets the preferences for the given dialog ref."""
  setCommonDialogPreferences(dialogRef: DialogRefInput, preferences: CommonDialogPreferencesInput): Boolean!

  """Sets the confirmation dialog preferences."""
  setShowConfirmationDialog(dialogId: String, showDialog: Boolean): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.user.preferences.table.TablePreferencesMutation'
"""Modify table preferences"""
type TablePreferencesMutation {
  """Delete all stored table states with the given prefix"""
  deleteTableStates(stateKeyPrefix: String): Boolean!

  """Sets the given table state"""
  setTableState(stateKey: String, tableState: TableStateInput): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.management.user.preferences.tree.TreePreferencesMutation'
"""Modify tree preferences"""
type TreePreferencesMutation {
  """Removes the given node key from expanded nodes list"""
  collapseNode(treeRef: TreeRefInput, nodeKey: String): Boolean!

  """Removes the given node key from expanded nodes list"""
  collapseNodes(treeRef: TreeRefInput, nodeKeys: [String]): Boolean!

  """Adds the given node key to expanded nodes list"""
  expandNode(treeRef: TreeRefInput, nodeKey: String): Boolean!

  """Adds the given node key to expanded nodes list"""
  expandNodes(treeRef: TreeRefInput, nodeKeys: [String]): Boolean!

  """Stores the given node key as selected"""
  selectNode(treeRef: TreeRefInput, nodeKey: String): Boolean!

  """Sets the tree mode for the given tree reference"""
  setTreeMode(treeRef: TreeRefInput, treeMode: TreeMode): Boolean!

  """Sets the given tree state"""
  setTreeState(treeRef: TreeRefInput, treeState: TreeStateInput): Boolean!

  """Removes the given node key from selected store"""
  unselectNode(treeRef: TreeRefInput, nodeKey: String): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.progress.OperationProgressMutation'
"""Mutations about reports and their descriptions"""
type OperationProgressMutation {
  """Notifies the server that the user wants to cancel the operation"""
  cancelProgressInfo(instanceId: String): Boolean!

  """Removes a progress info object from the server (since it is no longer needed)"""
  removeProgressInfo(instanceId: String): Boolean!

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.mutations.reporting.ReportingMutation'
"""Control the caching entries for the reporting server."""
type ReportingMutation {
  """Deletes report cache entries when no longer needed. Returns the number of deleted entries."""
  deleteCacheItem(reportCacheId: String): Boolean!

  """Deletes report cache entries when no longer needed. Returns the number of deleted entries."""
  deleteCacheItems(reportCacheIds: [String]): Int!

}

# Mapping for Java interface 'com.jdisc.graphql.type.GraphQLNodeData'
"""An unified interface to identify tree node data"""
union GraphQLNodeData = GraphQLObject

# Mapping for Java class 'com.jdisc.webui.server.graphql.api.subscriptions.update.model.TopicUpdate'
union TopicUpdate = DiscoveryStatusCloudTopicUpdate | DiscoveryStatusDevicesDetailsTopicUpdate | DiscoveryStatusDevicesTopicUpdate | DiscoveryStatusDirectoryTopicUpdate | DiscoveryStatusDiscoveryJobsTopicUpdate | DiscoveryStatusLdapSyncTopicUpdate | DiscoveryStatusMeasurementTopicUpdate | DiscoveryStatusNetworkNeighborhoodTopicUpdate | DiscoveryStatusOverallProcessSummaryTopicUpdate | DiscoveryStatusOverallProcessTopicUpdate | DiscoveryStatusPingTopicUpdate

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.subscriptions.login.LiveSessionSubscription'
type LiveSessionSubscription {
  """Checks if client is still active for given access token and returns session state."""
  isSessionAlive(accessToken: String, ): PongRequest

}

# Mapping for Java interface 'com.jdisc.webui.server.graphql.api.subscriptions.update.UpdateTopicSubscription'
type UpdateTopicSubscription {
  """Subscribe to discovery process status updates"""
  subscribe2Updates(clientId: String, updateTopic: UpdateTopic): UpdateTopicPayload

}


# Root queries
type Query {
  """This type provides device related queries"""
  devices: Devices!
  """This type provides user related queries"""
  users: Users!
  """Queries for administration purposes"""
  administration: Administration!
  """Queries about configuring objects"""
  configuration: Configuration!
  """Queries for discovery related items"""
  discovery: DiscoveryQueries!
  """Queries for event related items"""
  event: EventQueries!
  """Queries about managing objects"""
  management: Management!
  """The monitoring API lets you query the application's health and operation parameters"""
  monitoring: Monitoring!
  """Queries for networking related items"""
  networking: Networking!
  """Use the operation progress API to query the status of async operations!
Whenever you call a async operation (methods are marked with the async suffix), JDisc Discovery creates a ProgressInfo
object which hold information about the operation (percentage done, current operation). Finally, when the task is done, then
the specific ProgressInfo object may hold additional information about the task (e.g. results, ...)"""
  operationProgress: OperationProgress!
  """Queries about reports and their descriptions"""
  reporting: Reporting!
  """Queries for software related items"""
  software: Software!
  """Queries about the application and discovery status"""
  status: StatusQuery!
  """Queries for virtualization related items"""
  virtualization: Virtualization!
}

# Root mutations...
type Mutation {
  administration: AdministrationMutation!

  discovery: DiscoveryMutation!

  importManager: ImportManagerMutation!

  """This is the logging interface"""
  logging: Logging!

  """This is the primary authentication interface used to login and logout.

A login call requires a username and a password for the authentication. On successful authentication, the call returns an
 - access token
 - renewal token

The access token must be added to the HTTPS request headers to ensure a user has access to the appropriate resources.
An access token has usually a limited lifetime. This is done for various security reasons: for one, limiting the lifetime
of the access token limits the amount of time an attacker can use a stolen token. In addition, the information contained
in or referenced by the access token could become stale.
When access tokens expire or become invalid but the application still needs to access a protected resource, the application
faces the problem of getting a new access token without forcing the user to once again grant permission. To solve this problem,
a refresh token is introduced. A refresh token allows an application to obtain a new access token without prompting the user.

The access token must be added into the HTTPS header as parameter "Authorization". The value must be the String "Bearer"
followed by a space and the access token. When the access token has expired, then the server returns an SC_UNAUTHORIZED (401)
In this case, you might use the refresh token to obtain a new access and refresh token using the refreshAccessToken call.
The GraphQL also returns an SC_UNAUTHORIZED (401) when the renewal token has expired."""
  authentication: LoginLogout!

  """Objects for managing the application."""
  management: ManagementMutation!

  """Mutations about reports and their descriptions"""
  operationProgress: OperationProgressMutation!

  """Control the caching entries for the reporting server."""
  reporting: ReportingMutation!

}

# Root subscriptions...
type Subscription {
  # Mapping for Java interface 'com.jdisc.webui.server.graphql.api.subscriptions.login.LiveSessionSubscription'
  """Checks if client is still active for given access token and returns session state."""
  isSessionAlive(accessToken: String, ): PongRequest



  # Mapping for Java interface 'com.jdisc.webui.server.graphql.api.subscriptions.update.UpdateTopicSubscription'
  """Subscribe to discovery process status updates"""
  subscribe2Updates(clientId: String, updateTopic: UpdateTopic): UpdateTopicPayload



}
