docs: enhance GraphQL schema documentation
- Added comprehensive descriptions to all types, interfaces, and fields in 'schema/api_commons.graphql'. - Improved documentation for mutations and input/response types in 'schema/mutations.graphql'. - Added detailed descriptions for all queries and their arguments in 'schema/queries.graphql'. - Enhanced documentation for core Zabbix types and enums in 'schema/zabbix.graphql'. - Updated extension schemas under 'schema/extensions/' with proper GraphQL descriptions. - Verified schema validity via 'graphql-codegen' and ran all tests to ensure consistency.
This commit is contained in:
parent
59815636ea
commit
e61b5f4f11
11 changed files with 1330 additions and 344 deletions
123
.idea/workspace.xml
generated
123
.idea/workspace.xml
generated
|
|
@ -5,15 +5,16 @@
|
|||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="d7a71994-2699-4ae4-9fd2-ee13b7f33d35" name="Changes" comment="chore: Add `allDevices` query resolver, update Zabbix device query handling, and enhance schema with `DeviceConfig` and `WidgetPreview` types">
|
||||
<change afterPath="$PROJECT_DIR$/src/testdata/templates/zbx_default_templates_vcr.yaml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/runConfigurations/index_ts.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/runConfigurations/index_ts.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/api_commons.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/api_commons.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/device_value_commons.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/device_value_commons.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/devices.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/devices.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/extensions/display_devices.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/extensions/display_devices.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/extensions/location_tracker_commons.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/extensions/location_tracker_commons.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/extensions/location_tracker_devices.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/extensions/location_tracker_devices.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/mutations.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/mutations.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/queries.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/queries.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/api/resolvers.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/api/resolvers.ts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/datasources/zabbix-request.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/datasources/zabbix-request.ts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/datasources/zabbix-templates.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/datasources/zabbix-templates.ts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/schema/zabbix.graphql" beforeDir="false" afterPath="$PROJECT_DIR$/schema/zabbix.graphql" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/schema/generated/graphql.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/schema/generated/graphql.ts" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
|
@ -29,7 +30,24 @@
|
|||
<option name="fileBasedEmbeddingIndicesEnabled" value="true" />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
||||
<map>
|
||||
<entry key="$PROJECT_DIR$" value="license" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
<option name="RESET_MODE" value="HARD" />
|
||||
<option name="SWAP_SIDES_IN_COMPARE_BRANCHES" value="true" />
|
||||
</component>
|
||||
<component name="GitRewordedCommitMessages">
|
||||
<option name="commitMessagesMapping">
|
||||
<RewordedCommitMessageMapping>
|
||||
<option name="originalMessage" value="docs: add README.md and LICENSE file - Created README.md with project purpose, features, installation guide, and usage samples. - Added LICENSE file with GNU General Public License v2.0 to match Zabbix license. (cherry picked from commit 825cb4d918eabfc7ce2319c5839b7f6125a3e1d6)" />
|
||||
<option name="rewordedMessage" value="docs: add README.md and LICENSE file - Created README.md with project purpose, features, installation guide, and usage samples. - Added LICENSE file with GNU Affero General Public License v3.0 to match Zabbix license. - Added license field to package.json." />
|
||||
</RewordedCommitMessageMapping>
|
||||
</option>
|
||||
<option name="currentCommit" value="1" />
|
||||
<option name="onto" value="fdfd5f1e0eab0ff10a5acde7c4574b794dcd2292" />
|
||||
</component>
|
||||
<component name="McpProjectServerCommands">
|
||||
<commands />
|
||||
|
|
@ -46,43 +64,43 @@
|
|||
<option name="openDirectoriesWithSingleClick" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"NIXITCH_NIXPKGS_CONFIG": "",
|
||||
"NIXITCH_NIX_CONF_DIR": "",
|
||||
"NIXITCH_NIX_OTHER_STORES": "",
|
||||
"NIXITCH_NIX_PATH": "",
|
||||
"NIXITCH_NIX_PROFILES": "",
|
||||
"NIXITCH_NIX_REMOTE": "",
|
||||
"NIXITCH_NIX_USER_PROFILE_DIR": "",
|
||||
"Node.js.index.ts.executor": "Run",
|
||||
"RunOnceActivity.MCP Project settings loaded": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
|
||||
"com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
|
||||
"git-widget-placeholder": "main",
|
||||
"go.import.settings.migrated": "true",
|
||||
"javascript.preferred.runtime.type.id": "node",
|
||||
"junie.onboarding.icon.badge.shown": "true",
|
||||
"last_opened_file_path": "//wsl.localhost/Ubuntu/home/ahilbig/git/vcr/zabbix-graphql-api/src/testdata/templates",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_interpreter_path": "wsl://Ubuntu@/home/ahilbig/.nvm/versions/node/v24.12.0/bin/node",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"npm.codegen.executor": "Run",
|
||||
"npm.compile.executor": "Run",
|
||||
"npm.copy-schema.executor": "Run",
|
||||
"npm.prod.executor": "Run",
|
||||
"settings.editor.selected.configurable": "settings.javascript.runtime",
|
||||
"to.speed.mode.migration.done": "true",
|
||||
"ts.external.directory.path": "\\\\wsl.localhost\\Ubuntu\\home\\ahilbig\\git\\vcr\\zabbix-graphql-api\\node_modules\\typescript\\lib",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"NIXITCH_NIXPKGS_CONFIG": "",
|
||||
"NIXITCH_NIX_CONF_DIR": "",
|
||||
"NIXITCH_NIX_OTHER_STORES": "",
|
||||
"NIXITCH_NIX_PATH": "",
|
||||
"NIXITCH_NIX_PROFILES": "",
|
||||
"NIXITCH_NIX_REMOTE": "",
|
||||
"NIXITCH_NIX_USER_PROFILE_DIR": "",
|
||||
"Node.js.index.ts.executor": "Run",
|
||||
"RunOnceActivity.MCP Project settings loaded": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
|
||||
"com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
|
||||
"git-widget-placeholder": "main",
|
||||
"go.import.settings.migrated": "true",
|
||||
"javascript.preferred.runtime.type.id": "node",
|
||||
"junie.onboarding.icon.badge.shown": "true",
|
||||
"last_opened_file_path": "//wsl.localhost/Ubuntu/home/ahilbig/git/vcr/zabbix-graphql-api/src/testdata/templates",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_interpreter_path": "wsl://Ubuntu@/home/ahilbig/.nvm/versions/node/v24.12.0/bin/node",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"npm.codegen.executor": "Run",
|
||||
"npm.compile.executor": "Run",
|
||||
"npm.copy-schema.executor": "Run",
|
||||
"npm.prod.executor": "Run",
|
||||
"settings.editor.selected.configurable": "settings.javascript.runtime",
|
||||
"to.speed.mode.migration.done": "true",
|
||||
"ts.external.directory.path": "\\\\wsl.localhost\\Ubuntu\\home\\ahilbig\\git\\vcr\\zabbix-graphql-api\\node_modules\\typescript\\lib",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}]]></component>
|
||||
}</component>
|
||||
<component name="RecapSpentCounter">
|
||||
<option name="endsOfQuotaMs" value="1768327208764" />
|
||||
<option name="spentUsd" value="0.04010335" />
|
||||
|
|
@ -101,7 +119,7 @@
|
|||
<recent name="\\wsl.localhost\Ubuntu\home\ahilbig\git\vcr\zabbix-graphql-api\schema" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager" selected="Node.js.index.ts">
|
||||
<component name="RunManager" selected="npm.codegen">
|
||||
<configuration name="copy-schema" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
|
||||
<package-json value="$PROJECT_DIR$/package.json" />
|
||||
<command value="run" />
|
||||
|
|
@ -133,10 +151,21 @@
|
|||
</EXTENSION>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="test" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
|
||||
<package-json value="$PROJECT_DIR$/package.json" />
|
||||
<command value="run" />
|
||||
<scripts>
|
||||
<script value="test" />
|
||||
</scripts>
|
||||
<node-interpreter value="project" />
|
||||
<envs />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<list>
|
||||
<item itemvalue="Node.js.index.ts" />
|
||||
<item itemvalue="npm.compile" />
|
||||
<item itemvalue="npm.codegen" />
|
||||
<item itemvalue="npm.test" />
|
||||
<item itemvalue="npm.copy-schema" />
|
||||
<item itemvalue="npm.prod" />
|
||||
</list>
|
||||
|
|
@ -144,6 +173,9 @@
|
|||
<list>
|
||||
<item itemvalue="npm.prod" />
|
||||
<item itemvalue="npm.copy-schema" />
|
||||
<item itemvalue="npm.test" />
|
||||
<item itemvalue="npm.prod" />
|
||||
<item itemvalue="npm.copy-schema" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
|
|
@ -323,7 +355,8 @@
|
|||
<MESSAGE value="chore: Update `tags` field schema to use `DeviceConfig`, enhance `isDevice` type check, and adjust IntelliJ workspace" />
|
||||
<MESSAGE value="chore: Enhance schema with `DeviceConfig` tags resolver and update IntelliJ workspace adjustments" />
|
||||
<MESSAGE value="chore: Add `allDevices` query resolver, update Zabbix device query handling, and enhance schema with `DeviceConfig` and `WidgetPreview` types" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="chore: Add `allDevices` query resolver, update Zabbix device query handling, and enhance schema with `DeviceConfig` and `WidgetPreview` types" />
|
||||
<MESSAGE value="docs: add README.md and LICENSE file - Created README.md with project purpose, features, installation guide, and usage samples. - Added LICENSE file with GNU Affero General Public License v3.0 to match Zabbix license. - Added license field to package.json." />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="docs: add README.md and LICENSE file - Created README.md with project purpose, features, installation guide, and usage samples. - Added LICENSE file with GNU Affero General Public License v3.0 to match Zabbix license. - Added license field to package.json." />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
|
|
@ -331,13 +364,11 @@
|
|||
<line-breakpoint enabled="true" type="javascript">
|
||||
<url>file://$PROJECT_DIR$/src/datasources/zabbix-request.ts</url>
|
||||
<line>133</line>
|
||||
<properties lambdaOrdinal="-1" />
|
||||
<option name="timeStamp" value="5" />
|
||||
</line-breakpoint>
|
||||
<line-breakpoint enabled="true" type="javascript">
|
||||
<url>file://$PROJECT_DIR$/src/datasources/zabbix-request.ts</url>
|
||||
<line>213</line>
|
||||
<properties lambdaOrdinal="-1" />
|
||||
<option name="timeStamp" value="6" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
|
|
|
|||
|
|
@ -2,22 +2,61 @@
|
|||
# Request/response
|
||||
########################################################
|
||||
|
||||
"""
|
||||
Generic response wrapper containing either the result data or an error.
|
||||
"""
|
||||
type GenericResponse {
|
||||
"""
|
||||
The result data, typically a list of JSON objects.
|
||||
"""
|
||||
result: [JSONObject!]
|
||||
"""
|
||||
Error information if the operation failed.
|
||||
"""
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
"""
|
||||
Detailed error information returned by the API.
|
||||
"""
|
||||
type ApiError implements Error {
|
||||
"""
|
||||
Error code.
|
||||
"""
|
||||
code: Int
|
||||
"""
|
||||
Error message.
|
||||
"""
|
||||
message: String
|
||||
"""
|
||||
Additional error data.
|
||||
"""
|
||||
data: JSONObject
|
||||
"""
|
||||
Path to the field that caused the error.
|
||||
"""
|
||||
path: String
|
||||
"""
|
||||
Arguments passed to the operation that failed.
|
||||
"""
|
||||
args: JSONObject
|
||||
}
|
||||
|
||||
"""
|
||||
Common error interface.
|
||||
"""
|
||||
interface Error {
|
||||
"""
|
||||
Error code.
|
||||
"""
|
||||
code: Int
|
||||
"""
|
||||
Error message.
|
||||
"""
|
||||
message: String
|
||||
"""
|
||||
Additional error data.
|
||||
"""
|
||||
data: JSONObject
|
||||
}
|
||||
|
||||
|
|
@ -26,7 +65,13 @@ interface Error {
|
|||
# User permissions
|
||||
########################################################
|
||||
|
||||
"""
|
||||
Request for checking specific user permissions.
|
||||
"""
|
||||
input PermissionRequest {
|
||||
"""
|
||||
The required permission level (DENY, READ, or READ_WRITE).
|
||||
"""
|
||||
permission: Permission!,
|
||||
"""
|
||||
objectName maps to name / path suffix of the template group representing the permission in Zabbix:
|
||||
|
|
@ -89,7 +134,13 @@ enum Permission {
|
|||
READ_WRITE
|
||||
}
|
||||
|
||||
"""
|
||||
Represents a permission assigned to a user for a specific object.
|
||||
"""
|
||||
type UserPermission {
|
||||
"""
|
||||
The assigned permission level.
|
||||
"""
|
||||
permission: Permission!,
|
||||
"""
|
||||
objectName maps to name / path suffix of the template group representing the permission in Zabbix:
|
||||
|
|
|
|||
|
|
@ -45,5 +45,8 @@ interface DeviceValueMessage {
|
|||
Marker-interface for device-related data values.
|
||||
"""
|
||||
interface DeviceValue {
|
||||
"""
|
||||
Dummy field to allow for empty interfaces.
|
||||
"""
|
||||
_empty: String
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,78 +4,136 @@
|
|||
besides monitoring information.
|
||||
"""
|
||||
interface Device implements Host {
|
||||
"""Internal Zabbix ID of the device."""
|
||||
hostid: ID!
|
||||
"""
|
||||
Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname
|
||||
Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname.
|
||||
"""
|
||||
host: String!
|
||||
"""Classification of the device."""
|
||||
deviceType: String
|
||||
"""List of host groups this device belongs to."""
|
||||
hostgroups: [HostGroup!]
|
||||
"""Visible name of the device."""
|
||||
name: String
|
||||
"""Device configuration tags."""
|
||||
tags: DeviceConfig
|
||||
"""State of the device."""
|
||||
state: DeviceState
|
||||
}
|
||||
|
||||
"""
|
||||
Configuration settings for a device.
|
||||
"""
|
||||
type DeviceConfig {
|
||||
"""
|
||||
Configuration for the device widget preview in the cockpit.
|
||||
"""
|
||||
deviceWidgetPreview: WidgetPreview
|
||||
}
|
||||
|
||||
"""
|
||||
Represents the configuration for a 4-field widget preview.
|
||||
"""
|
||||
type WidgetPreview {
|
||||
"""Top-left field specification."""
|
||||
TOP_LEFT: DisplayFieldSpec
|
||||
"""Top-right field specification."""
|
||||
TOP_RIGHT: DisplayFieldSpec
|
||||
"""Bottom-left field specification."""
|
||||
BOTTOM_LEFT: DisplayFieldSpec
|
||||
"""Bottom-right field specification."""
|
||||
BOTTOM_RIGHT: DisplayFieldSpec
|
||||
}
|
||||
|
||||
"""
|
||||
Specification for a display field in a widget.
|
||||
"""
|
||||
type DisplayFieldSpec {
|
||||
"""Key of the data to display."""
|
||||
key: String,
|
||||
"""Value to display if the data is missing."""
|
||||
emptyValue: String
|
||||
"""Unit string to append to the value."""
|
||||
unit: String,
|
||||
"""Font size for the value."""
|
||||
value_font_size: String
|
||||
"""Optional transformation for the value."""
|
||||
g_value_transform: String
|
||||
"""Font size for the unit."""
|
||||
unit_font_size: String
|
||||
"""Optional transformation for the unit."""
|
||||
g_unit_transform: String
|
||||
}
|
||||
|
||||
"""
|
||||
Operational data common to most devices.
|
||||
"""
|
||||
type OperationalDeviceData {
|
||||
"""Device temperature."""
|
||||
temperature: Float
|
||||
"""Device voltage."""
|
||||
voltage: Float
|
||||
"""Signal strength (e.g., WiFi or GSM)."""
|
||||
signalstrength: Float
|
||||
"""Current location of the device."""
|
||||
location: Location
|
||||
"""Timestamp of the operational data."""
|
||||
timestamp: DateTime
|
||||
"""List of active errors or status messages."""
|
||||
error: [ErrorPayload!]
|
||||
}
|
||||
|
||||
"""
|
||||
Payload for a single error or status message.
|
||||
"""
|
||||
type ErrorPayload {
|
||||
"""Error code."""
|
||||
code: Int!
|
||||
"""Human-readable error message."""
|
||||
message: String
|
||||
"""Additional contextual information about the error."""
|
||||
additionalInfo: JSONObject
|
||||
}
|
||||
|
||||
"""
|
||||
Common interface for device state.
|
||||
"""
|
||||
interface DeviceState {
|
||||
"""Operational data (telemetry)."""
|
||||
operational: OperationalDeviceData
|
||||
}
|
||||
|
||||
# Generic IoT devices with "generic" current state - mapping all "values"
|
||||
"""
|
||||
Generic implementation of device state using a JSON object for current values.
|
||||
"""
|
||||
type GenericDeviceState implements DeviceState {
|
||||
"""Operational data (telemetry)."""
|
||||
operational: OperationalDeviceData
|
||||
"""Current business data as a generic JSON object."""
|
||||
current: JSONObject
|
||||
}
|
||||
|
||||
|
||||
"""
|
||||
Device represents generic IoT / Edge - devices providing their state as generic "state.current" - JSON Object
|
||||
Device represents generic IoT / Edge - devices providing their state as generic "state.current" - JSON Object.
|
||||
"""
|
||||
type GenericDevice implements Host & Device {
|
||||
"""Internal Zabbix ID of the device."""
|
||||
hostid: ID!
|
||||
"""
|
||||
Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname
|
||||
Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname.
|
||||
"""
|
||||
host: String!
|
||||
"""Classification of the device."""
|
||||
deviceType: String
|
||||
"""List of host groups this device belongs to."""
|
||||
hostgroups: [HostGroup!]
|
||||
"""Visible name of the device."""
|
||||
name: String
|
||||
"""Device configuration tags."""
|
||||
tags: DeviceConfig
|
||||
"""State of the generic device."""
|
||||
state: GenericDeviceState
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,60 +16,94 @@ type SinglePanelDevice implements Host & Device {
|
|||
state: PanelState
|
||||
}
|
||||
|
||||
"""
|
||||
Represents the state of a single panel device.
|
||||
"""
|
||||
type PanelState implements DeviceState {
|
||||
"""Operational data (telemetry)."""
|
||||
operational: OperationalDeviceData
|
||||
"""Current display state."""
|
||||
current: PanelCurrentState
|
||||
}
|
||||
|
||||
"""
|
||||
Represents the current state of a panel.
|
||||
"""
|
||||
type PanelCurrentState {
|
||||
"""The current values being displayed on the panel."""
|
||||
values: PanelValues
|
||||
}
|
||||
|
||||
"""
|
||||
Specific values displayed on a panel.
|
||||
"""
|
||||
type PanelValues {
|
||||
"""
|
||||
Index of the bitmap which is displayed
|
||||
Index of the bitmap which is displayed.
|
||||
"""
|
||||
contentIndex: Int
|
||||
"""
|
||||
Hash of the bitmap which is displayed
|
||||
Hash of the bitmap which is displayed.
|
||||
"""
|
||||
contentKey: String
|
||||
"""
|
||||
Text representation of what is displayed
|
||||
Text representation of what is displayed.
|
||||
"""
|
||||
contentText: String
|
||||
}
|
||||
|
||||
"""
|
||||
The FourPanelDevice is a panel which allows to define pictures in 4
|
||||
subpanels, called TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT
|
||||
subpanels, called TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT.
|
||||
"""
|
||||
type FourPanelDevice implements Host & Device {
|
||||
"""Internal Zabbix ID of the device."""
|
||||
hostid: ID!
|
||||
"""
|
||||
Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname
|
||||
Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname.
|
||||
"""
|
||||
host: String!
|
||||
"""Classification of the device."""
|
||||
deviceType: String
|
||||
"""List of host groups this device belongs to."""
|
||||
hostgroups: [HostGroup!]
|
||||
"""Visible name of the device."""
|
||||
name: String
|
||||
"""Device configuration tags."""
|
||||
tags: DeviceConfig
|
||||
"""State of the four-panel device."""
|
||||
state: FourPanelState
|
||||
}
|
||||
|
||||
"""
|
||||
Represents the state of a four-panel device.
|
||||
"""
|
||||
type FourPanelState implements DeviceState {
|
||||
"""Operational data (telemetry)."""
|
||||
operational: OperationalDeviceData
|
||||
"""Current state of all four panels."""
|
||||
current: FourPanelCurrentState
|
||||
}
|
||||
|
||||
"""
|
||||
Represents the combined current state of four panels.
|
||||
"""
|
||||
type FourPanelCurrentState {
|
||||
"""The values for each of the four panels."""
|
||||
values: FourPanelValues
|
||||
}
|
||||
|
||||
"""
|
||||
Values for each of the four panels in a FourPanelDevice.
|
||||
"""
|
||||
type FourPanelValues {
|
||||
"""State of the top-left panel."""
|
||||
TOP_LEFT: PanelValues
|
||||
"""State of the top-right panel."""
|
||||
TOP_RIGHT: PanelValues
|
||||
"""State of the bottom-left panel."""
|
||||
BOTTOM_LEFT: PanelValues
|
||||
"""State of the bottom-right panel."""
|
||||
BOTTOM_RIGHT: PanelValues
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,9 @@ type SensorDistanceValue implements DeviceValue {
|
|||
"""
|
||||
time: String
|
||||
|
||||
"""
|
||||
Dummy field to allow for empty interfaces.
|
||||
"""
|
||||
_empty: String
|
||||
}
|
||||
|
||||
|
|
@ -34,8 +37,11 @@ type SensorDistanceValue implements DeviceValue {
|
|||
Represents a coordinate in 3D space with x, y, and z components.
|
||||
"""
|
||||
type Position {
|
||||
"""X coordinate."""
|
||||
x: Float
|
||||
"""Y coordinate."""
|
||||
y: Float
|
||||
"""Z coordinate."""
|
||||
z: Float
|
||||
}
|
||||
|
||||
|
|
@ -43,7 +49,9 @@ type Position {
|
|||
Represents the result of a position calculation, including the calculated position and accuracy.
|
||||
"""
|
||||
type PositionCalculatorResult {
|
||||
"""The calculated 3D position."""
|
||||
position: Position
|
||||
"""The estimated accuracy of the calculation."""
|
||||
accuracy: Float
|
||||
}
|
||||
|
||||
|
|
@ -51,10 +59,16 @@ type PositionCalculatorResult {
|
|||
Concrete implementation of a DeviceValueMessage for sensor distance data.
|
||||
"""
|
||||
type SensorDistanceMessage implements DeviceValueMessage {
|
||||
"""The unique identifier of the device."""
|
||||
deviceKey: String
|
||||
"""Timestamp of the message."""
|
||||
timestamp: String
|
||||
"""Name of the attribute."""
|
||||
attributeName: String
|
||||
"""Name of the topic."""
|
||||
topicName: String
|
||||
"""Type of the device."""
|
||||
deviceType: String
|
||||
"""The sensor distance value payload."""
|
||||
value: SensorDistanceValue
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,45 +1,55 @@
|
|||
"""
|
||||
DistanceTracker represents a device which can detect other devices around itself and estimate
|
||||
the distances, e.g. by using Bluetooth scanning technology and estimating the distance.
|
||||
|
||||
"""
|
||||
type DistanceTrackerDevice implements Host & Device {
|
||||
"""Internal Zabbix ID of the device."""
|
||||
hostid: ID!
|
||||
"""
|
||||
Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname
|
||||
Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname.
|
||||
"""
|
||||
host: String!
|
||||
"""Classification of the device."""
|
||||
deviceType: String
|
||||
"""List of host groups this device belongs to."""
|
||||
hostgroups: [HostGroup!]
|
||||
"""Visible name of the device."""
|
||||
name: String
|
||||
"""Device configuration tags."""
|
||||
tags: DeviceConfig
|
||||
"""State of the distance tracker device."""
|
||||
state: DistanceTrackerState
|
||||
}
|
||||
|
||||
"""
|
||||
Represents the state of a distance tracker device.
|
||||
"""
|
||||
type DistanceTrackerState implements DeviceState {
|
||||
"""Operational data (telemetry)."""
|
||||
operational: OperationalDeviceData
|
||||
"""Current business values (detected devices and distances)."""
|
||||
current: DistanceTrackerValues
|
||||
}
|
||||
|
||||
"""
|
||||
Aggregated information of devices detected around the tracker
|
||||
Aggregated information of devices detected around the tracker.
|
||||
"""
|
||||
type DistanceTrackerValues {
|
||||
"""
|
||||
Start of time interval for the delivered device counting value
|
||||
Start of time interval for the delivered device counting value.
|
||||
"""
|
||||
timeFrom: Time
|
||||
"""
|
||||
End of time interval for the delivered device counting value
|
||||
End of time interval for the delivered device counting value.
|
||||
"""
|
||||
timeUntil: Time
|
||||
|
||||
"""
|
||||
Number of unique deviceKeys detected between timeFrom and timeUnti
|
||||
Number of unique device keys detected between timeFrom and timeUntil.
|
||||
"""
|
||||
count: Int
|
||||
"""
|
||||
Detailed information about devices detected nearby
|
||||
Detailed information about devices detected nearby.
|
||||
"""
|
||||
distances: [SensorDistanceValue!]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,311 +1,647 @@
|
|||
type Mutation {
|
||||
|
||||
"""
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Creates a single host in Zabbix.
|
||||
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
createHost(host: String!, hostgroupids:[Int!]!, templateids: [Int!]!,
|
||||
location: LocationInput): CreateHostResponse
|
||||
createHost(
|
||||
"""Hostname of the new host."""
|
||||
host: String!,
|
||||
"""List of host group IDs to assign the host to."""
|
||||
hostgroupids:[Int!]!,
|
||||
"""List of template IDs to link to the host."""
|
||||
templateids: [Int!]!,
|
||||
"""Optional location information for the host inventory."""
|
||||
location: LocationInput
|
||||
): CreateHostResponse
|
||||
|
||||
"""
|
||||
(Mass) Import zabbix groups
|
||||
and assign them to the corresponding hosts by groupid or groupName.
|
||||
(Mass) Import Zabbix host groups and assign them to the corresponding hosts by groupid or groupName.
|
||||
|
||||
Return value: If no error occurs a groupid be returned for each created group,
|
||||
otherwise the return object will contain an error message
|
||||
Return value: If no error occurs, a groupid is returned for each created group; otherwise, the return object contains an error message.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
importHostGroups(hostGroups: [CreateHostGroup!]!):[CreateHostGroupResponse!]
|
||||
importHostGroups(
|
||||
"""List of host groups to import."""
|
||||
hostGroups: [CreateHostGroup!]!
|
||||
):[CreateHostGroupResponse!]
|
||||
|
||||
|
||||
"""
|
||||
(Mass) Import hosts and assign them to host groups by groupid or groupName.
|
||||
|
||||
Return value: If no error occurs a hostid will be returned for each created host,
|
||||
otherwise the return object will contain an error message.
|
||||
Return value: If no error occurs, a hostid is returned for each created host; otherwise, the return object contains an error message.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
importHosts(hosts: [CreateHost!]!):[ImportHostResponse!]
|
||||
|
||||
importUserRights(input: UserRightsInput!, dryRun: Boolean! = true): ImportUserRightsResult
|
||||
importHosts(
|
||||
"""List of hosts to import."""
|
||||
hosts: [CreateHost!]!
|
||||
):[ImportHostResponse!]
|
||||
|
||||
"""
|
||||
(Mass) Import template groups
|
||||
and assign them by groupid or name.
|
||||
Import user rights (roles and groups) into Zabbix.
|
||||
|
||||
Return value: If no error occurs a groupid be returned for each created group,
|
||||
otherwise the return object will contain an error message
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
importTemplateGroups(templateGroups: [CreateTemplateGroup!]!):[CreateTemplateGroupResponse!]
|
||||
importUserRights(
|
||||
"""User rights configuration to import."""
|
||||
input: UserRightsInput!,
|
||||
"""If true, only validates the input without applying changes."""
|
||||
dryRun: Boolean! = true
|
||||
): ImportUserRightsResult
|
||||
|
||||
"""
|
||||
(Mass) Import template groups and assign them by groupid or name.
|
||||
|
||||
Return value: If no error occurs, a groupid is returned for each created group; otherwise, the return object contains an error message.
|
||||
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
importTemplateGroups(
|
||||
"""List of template groups to import."""
|
||||
templateGroups: [CreateTemplateGroup!]!
|
||||
):[CreateTemplateGroupResponse!]
|
||||
|
||||
"""
|
||||
(Mass) Import templates.
|
||||
|
||||
Return value: If no error occurs a templateid will be returned for each created template,
|
||||
otherwise the return object will contain an error message.
|
||||
Return value: If no error occurs, a templateid is returned for each created template; otherwise, the return object contains an error message.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
importTemplates(templates: [CreateTemplate!]!):[ImportTemplateResponse!]
|
||||
importTemplates(
|
||||
"""List of templates to import."""
|
||||
templates: [CreateTemplate!]!
|
||||
):[ImportTemplateResponse!]
|
||||
|
||||
"""
|
||||
Delete templates.
|
||||
Delete templates by their IDs or by a name pattern.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
deleteTemplates(templateids: [Int!], name_pattern: String): [DeleteResponse!]
|
||||
deleteTemplates(
|
||||
"""List of template IDs to delete."""
|
||||
templateids: [Int!],
|
||||
"""Wildcard name pattern for templates to delete (e.g., 'Template%')."""
|
||||
name_pattern: String
|
||||
): [DeleteResponse!]
|
||||
|
||||
"""
|
||||
Delete template groups.
|
||||
Delete template groups by their IDs or by a name pattern.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
deleteTemplateGroups(groupids: [Int!], name_pattern: String): [DeleteResponse!]
|
||||
deleteTemplateGroups(
|
||||
"""List of template group IDs to delete."""
|
||||
groupids: [Int!],
|
||||
"""Wildcard name pattern for template groups to delete."""
|
||||
name_pattern: String
|
||||
): [DeleteResponse!]
|
||||
}
|
||||
|
||||
####################################################################
|
||||
# Input types used for importXXX - and storeXXX - Mutations
|
||||
####################################################################
|
||||
|
||||
"""
|
||||
Response object for delete operations.
|
||||
"""
|
||||
type DeleteResponse {
|
||||
"""
|
||||
ID of the deleted entity.
|
||||
"""
|
||||
id: Int!
|
||||
"""
|
||||
Status message for the delete operation.
|
||||
"""
|
||||
message: String
|
||||
"""
|
||||
Error information if the deletion failed.
|
||||
"""
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
"""
|
||||
Input for creating or identifying a template group.
|
||||
"""
|
||||
input CreateTemplateGroup {
|
||||
"""
|
||||
Name of the template group
|
||||
Name of the template group.
|
||||
"""
|
||||
groupName: String!
|
||||
"""
|
||||
Internally used unique id
|
||||
(will be assigned by Zabbix if empty)
|
||||
Internally used unique id (will be assigned by Zabbix if empty).
|
||||
"""
|
||||
uuid: String
|
||||
}
|
||||
|
||||
"""
|
||||
Input for creating or updating a template.
|
||||
"""
|
||||
input CreateTemplate {
|
||||
"""
|
||||
Name of the template
|
||||
Technical name of the template.
|
||||
"""
|
||||
host: String!
|
||||
"""
|
||||
Visible name of the template
|
||||
Visible name of the template.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
groupNames is used to assign the created object
|
||||
to a template group.
|
||||
List of template group names to assign the template to.
|
||||
"""
|
||||
groupNames: [String!]!
|
||||
"""
|
||||
Optionally the internal groupids can be passed - in this case the
|
||||
groupName is ignored
|
||||
Optionally, internal group IDs can be provided instead of group names.
|
||||
"""
|
||||
groupids: [Int]
|
||||
"""
|
||||
Internally used unique id
|
||||
(will be assigned by Zabbix if empty)
|
||||
Internally used unique id (will be assigned by Zabbix if empty).
|
||||
"""
|
||||
uuid: String
|
||||
"""
|
||||
Template items
|
||||
List of items to create within the template.
|
||||
"""
|
||||
items: [CreateTemplateItem!]
|
||||
"""
|
||||
Linked templates
|
||||
List of other templates to link to this template.
|
||||
"""
|
||||
templates: [CreateLinkedTemplate!]
|
||||
"""
|
||||
Template tags
|
||||
Tags to assign to the template.
|
||||
"""
|
||||
tags: [CreateTag!]
|
||||
}
|
||||
|
||||
"""
|
||||
Input for creating an item within a template.
|
||||
"""
|
||||
input CreateTemplateItem {
|
||||
"""
|
||||
Internally used unique id.
|
||||
"""
|
||||
uuid: String
|
||||
"""
|
||||
Name of the item.
|
||||
"""
|
||||
name: String!
|
||||
"""
|
||||
Zabbix item type (e.g., 0 for Zabbix Agent, 18 for Dependent).
|
||||
"""
|
||||
type: Int
|
||||
"""
|
||||
Technical key of the item.
|
||||
"""
|
||||
key: String!
|
||||
"""
|
||||
Type of information (e.g., 0 for Float, 3 for Int, 4 for Text).
|
||||
"""
|
||||
value_type: Int
|
||||
"""
|
||||
History storage period (e.g., '2d', '90d').
|
||||
"""
|
||||
history: String
|
||||
"""
|
||||
Units of the value.
|
||||
"""
|
||||
units: String
|
||||
"""
|
||||
Update interval.
|
||||
"""
|
||||
delay: String
|
||||
"""
|
||||
Description of the item.
|
||||
"""
|
||||
description: String
|
||||
"""
|
||||
Preprocessing steps for the item values.
|
||||
"""
|
||||
preprocessing: [CreateItemPreprocessing!]
|
||||
"""
|
||||
Tags to assign to the item.
|
||||
"""
|
||||
tags: [CreateTag!]
|
||||
"""
|
||||
Reference to a master item if this is a dependent item.
|
||||
"""
|
||||
master_item: CreateMasterItem
|
||||
}
|
||||
|
||||
"""
|
||||
Reference to a master item for dependent items.
|
||||
"""
|
||||
input CreateMasterItem {
|
||||
"""
|
||||
The technical key of the master item.
|
||||
"""
|
||||
key: String!
|
||||
}
|
||||
|
||||
"""
|
||||
Input for an item preprocessing step.
|
||||
"""
|
||||
input CreateItemPreprocessing {
|
||||
"""
|
||||
Type of preprocessing step (e.g., 12 for JSONPath, 21 for JavaScript).
|
||||
"""
|
||||
type: Int!
|
||||
"""
|
||||
Parameters for the preprocessing step.
|
||||
"""
|
||||
params: [String!]!
|
||||
"""
|
||||
Error handling behavior.
|
||||
"""
|
||||
error_handler: Int
|
||||
"""
|
||||
Error handling parameters.
|
||||
"""
|
||||
error_handler_params: String
|
||||
}
|
||||
|
||||
"""
|
||||
Reference to a template to be linked.
|
||||
"""
|
||||
input CreateLinkedTemplate {
|
||||
"""
|
||||
The technical name of the template to link.
|
||||
"""
|
||||
name: String!
|
||||
}
|
||||
|
||||
"""
|
||||
Input for a tag.
|
||||
"""
|
||||
input CreateTag {
|
||||
"""
|
||||
Tag name.
|
||||
"""
|
||||
tag: String!
|
||||
"""
|
||||
Tag value.
|
||||
"""
|
||||
value: String
|
||||
}
|
||||
|
||||
"""
|
||||
Response for a template import operation.
|
||||
"""
|
||||
type ImportTemplateResponse {
|
||||
"""
|
||||
The technical name of the imported template.
|
||||
"""
|
||||
host: String!
|
||||
"""
|
||||
The Zabbix template ID assigned to the template.
|
||||
"""
|
||||
templateid: String
|
||||
"""
|
||||
Status message for the import.
|
||||
"""
|
||||
message: String
|
||||
"""
|
||||
Error information if the import failed.
|
||||
"""
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
"""
|
||||
Response for a template group import operation.
|
||||
"""
|
||||
type CreateTemplateGroupResponse {
|
||||
"""
|
||||
Name of the imported template group.
|
||||
"""
|
||||
groupName: String!
|
||||
"""
|
||||
The Zabbix group ID assigned to the group.
|
||||
"""
|
||||
groupid: Int
|
||||
"""
|
||||
Status message for the import.
|
||||
"""
|
||||
message: String
|
||||
"""
|
||||
Error information if the import failed.
|
||||
"""
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
"""
|
||||
Input for creating or identifying a host group.
|
||||
"""
|
||||
input CreateHostGroup {
|
||||
"""
|
||||
Name of the host group
|
||||
Name of the host group.
|
||||
"""
|
||||
groupName: String!
|
||||
"""
|
||||
Internally used unique id
|
||||
(will be assigned by Zabbix if empty)
|
||||
Internally used unique id (will be assigned by Zabbix if empty).
|
||||
"""
|
||||
uuid: String
|
||||
}
|
||||
|
||||
"""
|
||||
Response for a host import operation.
|
||||
"""
|
||||
type ImportHostResponse {
|
||||
deviceKey: String!
|
||||
hostid: String
|
||||
message: String
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
|
||||
type CreateHostGroupResponse {
|
||||
groupName: String!
|
||||
groupid: Int
|
||||
message: String
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
input CreateHost {
|
||||
"""
|
||||
The device key (technical name) of the imported host.
|
||||
"""
|
||||
deviceKey: String!
|
||||
"""
|
||||
Optional display name of the device (must be unique if provided - default is to set display name to deviceKey)
|
||||
The Zabbix host ID assigned to the host.
|
||||
"""
|
||||
hostid: String
|
||||
"""
|
||||
Status message for the import.
|
||||
"""
|
||||
message: String
|
||||
"""
|
||||
Error information if the import failed.
|
||||
"""
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
"""
|
||||
Response for a host group import operation.
|
||||
"""
|
||||
type CreateHostGroupResponse {
|
||||
"""
|
||||
Name of the imported host group.
|
||||
"""
|
||||
groupName: String!
|
||||
"""
|
||||
The Zabbix group ID assigned to the group.
|
||||
"""
|
||||
groupid: Int
|
||||
"""
|
||||
Status message for the import.
|
||||
"""
|
||||
message: String
|
||||
"""
|
||||
Error information if the import failed.
|
||||
"""
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
"""
|
||||
Input for creating a new host.
|
||||
"""
|
||||
input CreateHost {
|
||||
"""
|
||||
Technical name of the host/device.
|
||||
"""
|
||||
deviceKey: String!
|
||||
"""
|
||||
Optional display name of the device (must be unique if provided - default is to set display name to deviceKey).
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
Classification or category of the device.
|
||||
"""
|
||||
deviceType: String!
|
||||
"""
|
||||
groupNames is used to assign the created object
|
||||
to a host group. It is mandatory but
|
||||
can also be blank. This is usefull in case of
|
||||
passing a groupid instead which is
|
||||
the zabbix internal key for storing the group.
|
||||
If a groupid is provided the passed groupName is ignored
|
||||
List of host group names to assign the host to.
|
||||
"""
|
||||
groupNames: [String!]!
|
||||
"""
|
||||
Optionally the internal groupids can be passed - in this case the
|
||||
groupName is ignored
|
||||
Optionally, internal group IDs can be provided instead of group names.
|
||||
"""
|
||||
groupids: [Int]
|
||||
"""
|
||||
Location information for the host.
|
||||
"""
|
||||
location: LocationInput
|
||||
}
|
||||
|
||||
"""
|
||||
Response for a single host creation operation.
|
||||
"""
|
||||
type CreateHostResponse {
|
||||
"""
|
||||
List of created host IDs.
|
||||
"""
|
||||
hostids: [Int]
|
||||
"""
|
||||
List of created item IDs.
|
||||
"""
|
||||
itemids: [Int]
|
||||
"""
|
||||
Error information if the creation failed.
|
||||
"""
|
||||
error: ApiError
|
||||
}
|
||||
|
||||
"""
|
||||
Input for host location information.
|
||||
"""
|
||||
input LocationInput {
|
||||
"""
|
||||
Name of the location.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
Latitude coordinate.
|
||||
"""
|
||||
location_lat: String
|
||||
"""
|
||||
Longitude coordinate.
|
||||
"""
|
||||
location_lon: String
|
||||
}
|
||||
|
||||
#######################################
|
||||
# Permission related input
|
||||
#######################################
|
||||
"""
|
||||
Input for importing user rights.
|
||||
"""
|
||||
input UserRightsInput {
|
||||
"""
|
||||
List of user roles to import.
|
||||
"""
|
||||
userRoles: [UserRoleInput!]
|
||||
"""
|
||||
List of user groups to import.
|
||||
"""
|
||||
userGroups: [UserGroupInput!]
|
||||
}
|
||||
|
||||
"""
|
||||
Input for a user role.
|
||||
"""
|
||||
input UserRoleInput {
|
||||
"""
|
||||
Name of the role.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
Type of role (e.g., 1 for User, 2 for Admin, 3 for Super Admin).
|
||||
"""
|
||||
type: Int
|
||||
"""
|
||||
Whether the role is read-only (1) or not (0).
|
||||
"""
|
||||
readonly: Int
|
||||
"""
|
||||
Specific rules for the role.
|
||||
"""
|
||||
rules: UserRoleRulesInput
|
||||
}
|
||||
|
||||
"""
|
||||
Input for user role rules.
|
||||
"""
|
||||
input UserRoleRulesInput {
|
||||
"""
|
||||
UI access rules.
|
||||
"""
|
||||
ui: [UserRoleRuleInput!]
|
||||
"""
|
||||
Default access for UI elements.
|
||||
"""
|
||||
ui_default_access: Int
|
||||
"""
|
||||
Module access rules.
|
||||
"""
|
||||
modules:[UserRoleModuleInput!]
|
||||
"""
|
||||
Default access for modules.
|
||||
"""
|
||||
modules_default_access: Int
|
||||
"""
|
||||
Whether API access is enabled (1) or not (0).
|
||||
"""
|
||||
api_access: Int
|
||||
"""
|
||||
API mode (e.g., 0 for white-list, 1 for black-list).
|
||||
"""
|
||||
api_mode: Int
|
||||
"""
|
||||
List of API methods allowed/denied.
|
||||
"""
|
||||
api: [String!]
|
||||
"""
|
||||
Action rules.
|
||||
"""
|
||||
actions: [UserRoleRuleInput!]
|
||||
"""
|
||||
Default access for actions.
|
||||
"""
|
||||
actions_default_access: Int
|
||||
}
|
||||
|
||||
"""
|
||||
Input for a single user role rule.
|
||||
"""
|
||||
input UserRoleRuleInput {
|
||||
"""
|
||||
Name of the rule/element.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
Status (e.g., 1 for enabled, 0 for disabled).
|
||||
"""
|
||||
status: Int
|
||||
}
|
||||
|
||||
"""
|
||||
Input for user role module access.
|
||||
"""
|
||||
input UserRoleModuleInput {
|
||||
"""
|
||||
The internal Zabbix module ID.
|
||||
"""
|
||||
moduleid: String
|
||||
"""
|
||||
Status of the module.
|
||||
"""
|
||||
status: Int
|
||||
"""
|
||||
Technical ID of the module.
|
||||
"""
|
||||
id: String
|
||||
}
|
||||
|
||||
"""
|
||||
Input for a user group.
|
||||
"""
|
||||
input UserGroupInput {
|
||||
"""
|
||||
Name of the user group.
|
||||
"""
|
||||
name: String!
|
||||
"""
|
||||
Frontend access level.
|
||||
"""
|
||||
gui_access: Int
|
||||
"""
|
||||
Status of the users in the group.
|
||||
"""
|
||||
users_status: Int
|
||||
"""
|
||||
Permissions for host groups.
|
||||
"""
|
||||
hostgroup_rights: [ZabbixGroupRightInput!]
|
||||
"""
|
||||
Permissions for template groups.
|
||||
"""
|
||||
templategroup_rights: [ZabbixGroupRightInput!]
|
||||
}
|
||||
|
||||
|
||||
"""
|
||||
Input for a Zabbix group permission right.
|
||||
"""
|
||||
input ZabbixGroupRightInput {
|
||||
"""
|
||||
The unique ID of the group.
|
||||
"""
|
||||
uuid: String
|
||||
"""
|
||||
name may optionally be specified for documentation purpose,
|
||||
Name may optionally be specified for documentation purpose,
|
||||
but the master for setting the user right is the uuid.
|
||||
If a uuid is found and the corresponding group
|
||||
has a deviating name this will be documented within a message
|
||||
with errorcode = 0 (OK) but the permission will be set (
|
||||
the reason is that names for groups may deviate between several
|
||||
instances of the control center although the semantic is the same -
|
||||
while the semantic is identified by uuid.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
The permission level to assign.
|
||||
"""
|
||||
permission: Permission
|
||||
}
|
||||
|
||||
"""
|
||||
Result of a user rights import operation.
|
||||
"""
|
||||
type ImportUserRightsResult {
|
||||
"""
|
||||
Results for the imported user roles.
|
||||
"""
|
||||
userRoles: [ImportUserRightResult!]
|
||||
"""
|
||||
Results for the imported user groups.
|
||||
"""
|
||||
userGroups: [ImportUserRightResult!]
|
||||
}
|
||||
|
||||
"""
|
||||
Result of a single user right (role or group) import.
|
||||
"""
|
||||
type ImportUserRightResult {
|
||||
"""
|
||||
The ID of the imported/updated entity.
|
||||
"""
|
||||
id: String
|
||||
"""
|
||||
The name of the entity.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
Status message for the import.
|
||||
"""
|
||||
message: String
|
||||
"""
|
||||
List of errors encountered during import.
|
||||
"""
|
||||
errors: [ApiError!]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,124 +4,170 @@ scalar Time
|
|||
scalar JSONObject
|
||||
|
||||
type Query {
|
||||
"Get api (build) version"
|
||||
"""
|
||||
Returns the API build version.
|
||||
"""
|
||||
apiVersion: String!
|
||||
"Get zabbix version"
|
||||
zabbixVersion: String
|
||||
"""
|
||||
Login to zabbix - provided for debugging and testing purpose. The result of the login operation is
|
||||
authentication token returned may be passed as
|
||||
header 'zabbix-auth-token' for authenticating future API requests.
|
||||
As an alternative to the cookie 'zbx_session' may be set which is automatically set after login to
|
||||
the cockpit - this is the standard way to authenticate api calls initiated by the cockpit frontend
|
||||
because the frontend is always embedded into the Zabbix portal which is only accessible after logging in and
|
||||
obtainind the zbx_session - cookie.
|
||||
"""
|
||||
login(username: String!, password: String!): String
|
||||
|
||||
"""
|
||||
Logout from zabbix - provided for debugging and testing purpose. This invalidates the token received by the login
|
||||
operation. Returns true on success
|
||||
Returns the version of the connected Zabbix instance.
|
||||
"""
|
||||
zabbixVersion: String
|
||||
|
||||
"""
|
||||
Logs in to Zabbix. This is primarily for debugging and testing.
|
||||
The returned authentication token can be passed in the `zabbix-auth-token` header for future requests.
|
||||
Alternatively, the `zbx_session` cookie can be used for authentication.
|
||||
"""
|
||||
login(
|
||||
"""Zabbix username."""
|
||||
username: String!,
|
||||
"""Zabbix password."""
|
||||
password: String!
|
||||
): String
|
||||
|
||||
"""
|
||||
Logs out from Zabbix, invalidating the current session/token.
|
||||
"""
|
||||
logout: Boolean
|
||||
|
||||
"""
|
||||
Get all hosts + corresponding items. If with_items==true only hosts with attached items are delivered
|
||||
name_pattern: If provided this will perform a LIKE "%…%" search on the name attribute within the database.
|
||||
Returns all hosts and their items.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
allHosts(name_pattern: String = "", filter_host: String = null, hostids: Int,
|
||||
groupids:[Int!] = null, with_items: Boolean = false, tag_deviceType:[String]=[], tag_hostType:[String!]): [Host]
|
||||
allHosts(
|
||||
"""Wildcard name pattern for filtering hosts (LIKE '%...%')."""
|
||||
name_pattern: String = "",
|
||||
"""Filter hosts by their technical name."""
|
||||
filter_host: String = null,
|
||||
"""Filter by a specific host ID."""
|
||||
hostids: Int,
|
||||
"""Filter by host group IDs."""
|
||||
groupids:[Int!] = null,
|
||||
"""If true, only returns hosts that have items attached."""
|
||||
with_items: Boolean = false,
|
||||
"""Filter by `deviceType` tag."""
|
||||
tag_deviceType:[String]=[],
|
||||
"""Filter by `hostType` tag."""
|
||||
tag_hostType:[String!]
|
||||
): [Host]
|
||||
|
||||
"""
|
||||
Get all devices + corresponding items. Devices are modelled as hosts having a device type + a state.
|
||||
If with_items==true only hosts with attached items are delivered
|
||||
name_pattern: If provided this will perform a LIKE "%…%" search on the name attribute within the database.
|
||||
Returns all devices and their items. Devices are hosts with a `deviceType` and a state.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
allDevices(name_pattern: String = "", filter_host: String = null, hostids: Int,
|
||||
groupids:[Int!] = null, with_items: Boolean = false, tag_deviceType:[String]=[], tag_hostType:[String!]): [Device]
|
||||
allDevices(
|
||||
"""Wildcard name pattern for filtering devices (LIKE '%...%')."""
|
||||
name_pattern: String = "",
|
||||
"""Filter devices by their technical name."""
|
||||
filter_host: String = null,
|
||||
"""Filter by a specific host ID."""
|
||||
hostids: Int,
|
||||
"""Filter by host group IDs."""
|
||||
groupids:[Int!] = null,
|
||||
"""If true, only returns devices that have items attached."""
|
||||
with_items: Boolean = false,
|
||||
"""Filter by `deviceType` tag."""
|
||||
tag_deviceType:[String]=[],
|
||||
"""Filter by `hostType` tag."""
|
||||
tag_hostType:[String!]
|
||||
): [Device]
|
||||
|
||||
"""
|
||||
Get all host groups.
|
||||
If with_hosts==true only groups with attached hosts are delivered.
|
||||
Returns all host groups.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
allHostGroups(search_name: String, with_hosts: Boolean = true): [HostGroup]
|
||||
allHostGroups(
|
||||
"""Search for host groups by name (supports wildcards)."""
|
||||
search_name: String,
|
||||
"""If true, only returns groups that have hosts attached."""
|
||||
with_hosts: Boolean = true
|
||||
): [HostGroup]
|
||||
|
||||
|
||||
"""
|
||||
Get all locations used by hosts.
|
||||
distinct_by_name=true means that the result is filtered for distinct names (default)
|
||||
name_pattern: If provided this will perform a Regex search on the name attribute within the database.
|
||||
Returns all locations used by hosts.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
locations(name_pattern: String = "", distinct_by_name: Boolean = true, templateids:[String] = null): [Location]
|
||||
locations(
|
||||
"""Regex name pattern for filtering locations."""
|
||||
name_pattern: String = "",
|
||||
"""If true, filters the result for distinct names."""
|
||||
distinct_by_name: Boolean = true,
|
||||
"""Filter by template IDs used by the hosts."""
|
||||
templateids:[String] = null
|
||||
): [Location]
|
||||
|
||||
"""
|
||||
Export history from Zabbix items
|
||||
Exports value history for Zabbix items.
|
||||
|
||||
Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
"""
|
||||
exportHostValueHistory(
|
||||
"(Optional) list of hostnames to be included in the result"
|
||||
"""Optional list of hostnames to be included in the result."""
|
||||
host_filter: [String!],
|
||||
"(Optional) list of item keys to be included in the result"
|
||||
"""Optional list of item keys to be included in the result."""
|
||||
itemKey_filter: [String!],
|
||||
"""
|
||||
(Optional) timestamp of earliest value"""
|
||||
"""Timestamp of the earliest value to include."""
|
||||
time_from: DateTime,
|
||||
"""(Optional) timestamp of last value """
|
||||
"""Timestamp of the last value to include."""
|
||||
time_until: DateTime,
|
||||
"""Results are sorted by timestamps - ascending or descending order may be specified
|
||||
using this parameter"""
|
||||
"""Sort order for the results (asc or desc)."""
|
||||
sortOrder: SortOrder=desc,
|
||||
"""
|
||||
Maximum number of records to be delivered. Hint: This might be useful, because the
|
||||
current version of Zabbix delivers a 500 - error in case of requesting too much data
|
||||
"""
|
||||
limit: Int
|
||||
"""
|
||||
As values are stored in different data structures depending on their type
|
||||
the type information must be specified in advance, although
|
||||
each value (also if number) is converted into a string afterwards
|
||||
"""
|
||||
"""Maximum number of records to return."""
|
||||
limit: Int,
|
||||
"""The data type of the values being retrieved."""
|
||||
type: StorageItemType = FLOAT
|
||||
|
||||
): GenericResponse
|
||||
|
||||
"""
|
||||
Return all user permissions. If objectNames is provided return only the permissions related to the objects within
|
||||
the objectNames - list
|
||||
Returns all user permissions.
|
||||
If `objectNames` is provided, returns only the permissions related to those objects.
|
||||
"""
|
||||
userPermissions(objectNames: [String!]): [UserPermission!]
|
||||
userPermissions(
|
||||
"""Optional list of object names to filter by."""
|
||||
objectNames: [String!]
|
||||
): [UserPermission!]
|
||||
|
||||
"""
|
||||
Return true if and only if the current user (identified by token / cookie)
|
||||
has all requested permissions (minimum - if READ is requested and the user has READ_WRITE
|
||||
the response will be true)
|
||||
Checks if the current user has the requested permissions.
|
||||
"""
|
||||
hasPermissions(permissions: [PermissionRequest!]!): Boolean
|
||||
hasPermissions(
|
||||
"""List of permissions to check."""
|
||||
permissions: [PermissionRequest!]!
|
||||
): Boolean
|
||||
|
||||
|
||||
"""
|
||||
name_pattern: If provided this will perform a LIKE "%…%" search on the name attribute within the database.
|
||||
exclude_groups_pattern: Regex allowing to exclude all matching hostgroups from group permissions
|
||||
Exports user rights (roles and groups).
|
||||
"""
|
||||
exportUserRights(name_pattern: String = "" exclude_hostgroups_pattern: String = ""): UserRights
|
||||
exportUserRights(
|
||||
"""Wildcard name pattern for filtering (LIKE '%...%')."""
|
||||
name_pattern: String = ""
|
||||
"""Regex to exclude matching host groups from group permissions."""
|
||||
exclude_hostgroups_pattern: String = ""
|
||||
): UserRights
|
||||
|
||||
"""
|
||||
Get templates.
|
||||
Returns templates.
|
||||
"""
|
||||
templates(hostids: [Int], name_pattern: String): [Template]
|
||||
templates(
|
||||
"""Filter by specific template IDs."""
|
||||
hostids: [Int],
|
||||
"""Wildcard name pattern for filtering templates."""
|
||||
name_pattern: String
|
||||
): [Template]
|
||||
|
||||
"""
|
||||
Get template groups.
|
||||
Returns all template groups.
|
||||
"""
|
||||
allTemplateGroups(name_pattern: String): [HostGroup]
|
||||
allTemplateGroups(
|
||||
"""Wildcard name pattern for filtering template groups."""
|
||||
name_pattern: String
|
||||
): [HostGroup]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,18 +2,39 @@
|
|||
# Hosts, items + groups, templates
|
||||
###################################
|
||||
|
||||
"""
|
||||
Represents a host group in Zabbix.
|
||||
"""
|
||||
type HostGroup {
|
||||
"""
|
||||
Internal Zabbix ID of the host group.
|
||||
"""
|
||||
groupid: ID!
|
||||
"""
|
||||
Name of the host group.
|
||||
"""
|
||||
name: String
|
||||
}
|
||||
|
||||
"""
|
||||
Common interface for all host-like entities in Zabbix.
|
||||
"""
|
||||
interface Host {
|
||||
"""
|
||||
Internal Zabbix ID of the host.
|
||||
"""
|
||||
hostid: ID!
|
||||
"""
|
||||
The host field contains the "hostname" in Zabbix
|
||||
Technical name of the host (the 'hostname' in Zabbix).
|
||||
"""
|
||||
host: String!
|
||||
"""
|
||||
List of host groups this host belongs to.
|
||||
"""
|
||||
hostgroups: [HostGroup!]
|
||||
"""
|
||||
Visible name of the host.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
Specifies the type or category of the device. Used to define the classification
|
||||
|
|
@ -22,42 +43,113 @@ interface Host {
|
|||
deviceType: String
|
||||
}
|
||||
|
||||
"""
|
||||
Represents a Zabbix item (a single data point being monitored).
|
||||
"""
|
||||
type ZabbixItem {
|
||||
"""
|
||||
Internal Zabbix ID of the item.
|
||||
"""
|
||||
itemid: Int!
|
||||
"""
|
||||
Visible name of the item.
|
||||
"""
|
||||
name: String!
|
||||
"""
|
||||
Technical key of the item.
|
||||
"""
|
||||
key_: String!
|
||||
"""
|
||||
Internal Zabbix ID of the host this item belongs to.
|
||||
"""
|
||||
hostid: Int
|
||||
"""
|
||||
Unix timestamp of the last time the item value was updated.
|
||||
"""
|
||||
lastclock: Int
|
||||
"""
|
||||
Last value retrieved for this item.
|
||||
"""
|
||||
lastvalue: String
|
||||
"""
|
||||
Type of information (e.g., 0 for Float, 3 for Int, 4 for Text).
|
||||
"""
|
||||
value_type: Int!
|
||||
"""
|
||||
Attribute name if this item is part of a hierarchical mapping.
|
||||
"""
|
||||
attributeName: String
|
||||
"""
|
||||
Status of the item (ENABLED or DISABLED).
|
||||
"""
|
||||
status: DeviceStatus
|
||||
"""
|
||||
Communication type used by the item.
|
||||
"""
|
||||
type: DeviceCommunicationType
|
||||
"""
|
||||
Hosts that this item is linked to.
|
||||
"""
|
||||
hosts: [Host!]
|
||||
}
|
||||
|
||||
"""
|
||||
Enum representing the different communication methods Zabbix uses to collect data.
|
||||
"""
|
||||
enum DeviceCommunicationType {
|
||||
"""Zabbix agent."""
|
||||
ZABBIX_AGENT
|
||||
"""Zabbix agent (active)."""
|
||||
ZABBIX_AGENT_ACTIVE
|
||||
"""Zabbix trapper."""
|
||||
ZABBIX_TRAP
|
||||
"""Zabbix internal."""
|
||||
ZABBIX_INTERNAL_ITEM
|
||||
"""Simple check."""
|
||||
SIMPLE_CHECK
|
||||
"""Dependent item."""
|
||||
DEPENDANT_ITEM
|
||||
"""Calculated item."""
|
||||
SIMULATOR_CALCULATED
|
||||
"""JavaScript item."""
|
||||
SIMULATOR_JAVASCRIPT
|
||||
"""HTTP agent."""
|
||||
HTTP_AGENT
|
||||
"""IPMI agent."""
|
||||
IPMI_AGENT
|
||||
"""JMX agent."""
|
||||
JMX_AGENT
|
||||
"""SNMP agent."""
|
||||
SNMP_AGENT
|
||||
"""SNMP trap."""
|
||||
SNMP_TRAP
|
||||
"""Database monitor."""
|
||||
DATABASE_MONITOR
|
||||
}
|
||||
|
||||
"""
|
||||
Concrete implementation of a Zabbix host.
|
||||
"""
|
||||
type ZabbixHost implements Host {
|
||||
"""
|
||||
Internal Zabbix ID of the host.
|
||||
"""
|
||||
hostid: ID!
|
||||
"""
|
||||
Technical name of the host.
|
||||
"""
|
||||
host: String!
|
||||
"""
|
||||
List of host groups this host belongs to.
|
||||
"""
|
||||
hostgroups: [HostGroup!]
|
||||
"""
|
||||
Visible name of the host.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
Tags assigned to the host as a JSON object.
|
||||
"""
|
||||
tags: JSONObject
|
||||
|
||||
"""
|
||||
|
|
@ -66,36 +158,85 @@ type ZabbixHost implements Host {
|
|||
"""
|
||||
deviceType: String
|
||||
|
||||
"""
|
||||
List of monitored items for this host.
|
||||
"""
|
||||
items: [ZabbixItem!]
|
||||
"""
|
||||
Host inventory data.
|
||||
"""
|
||||
inventory: Inventory
|
||||
"""
|
||||
List of templates linked to this host.
|
||||
"""
|
||||
parentTemplates: [Template!]
|
||||
}
|
||||
|
||||
|
||||
"""
|
||||
Represents a Zabbix template.
|
||||
"""
|
||||
type Template {
|
||||
"""
|
||||
Internal Zabbix ID of the template.
|
||||
"""
|
||||
templateid: String!
|
||||
"""
|
||||
Name of the template.
|
||||
"""
|
||||
name: String
|
||||
}
|
||||
|
||||
"""
|
||||
Represents host inventory information.
|
||||
"""
|
||||
type Inventory {
|
||||
"""
|
||||
Location data for the host.
|
||||
"""
|
||||
location: Location
|
||||
}
|
||||
|
||||
"""
|
||||
Hint: WGS84[dd.ddddd] coordinates are used
|
||||
Interface for entities that have GPS coordinates.
|
||||
Hint: WGS84[dd.ddddd] coordinates are used.
|
||||
"""
|
||||
interface GpsPosition {
|
||||
"""
|
||||
Latitude coordinate.
|
||||
"""
|
||||
latitude: Float
|
||||
longitude: Float
|
||||
}
|
||||
type Location implements GpsPosition {
|
||||
name: String
|
||||
latitude: Float
|
||||
"""
|
||||
Longitude coordinate.
|
||||
"""
|
||||
longitude: Float
|
||||
}
|
||||
|
||||
"""
|
||||
Represents a geographical location.
|
||||
"""
|
||||
type Location implements GpsPosition {
|
||||
"""
|
||||
Name of the location.
|
||||
"""
|
||||
name: String
|
||||
"""
|
||||
Latitude coordinate.
|
||||
"""
|
||||
latitude: Float
|
||||
"""
|
||||
Longitude coordinate.
|
||||
"""
|
||||
longitude: Float
|
||||
}
|
||||
|
||||
"""
|
||||
Status of a Zabbix device/item.
|
||||
"""
|
||||
enum DeviceStatus {
|
||||
"""The device/item is enabled."""
|
||||
ENABLED
|
||||
"""The device/item is disabled."""
|
||||
DISABLED
|
||||
}
|
||||
|
||||
|
|
@ -103,62 +244,124 @@ enum DeviceStatus {
|
|||
# History / Values
|
||||
########################################################
|
||||
|
||||
"""
|
||||
Enum representing the storage data types for monitored items.
|
||||
"""
|
||||
enum StorageItemType {
|
||||
"""Floating point number."""
|
||||
FLOAT
|
||||
"""Unsigned integer."""
|
||||
INT
|
||||
"""Textual data."""
|
||||
TEXT
|
||||
}
|
||||
|
||||
############################
|
||||
# Permissions
|
||||
############################
|
||||
|
||||
"""
|
||||
Represents the combined user rights (groups and roles).
|
||||
"""
|
||||
type UserRights {
|
||||
"""List of user groups."""
|
||||
userGroups: [UserGroup!]
|
||||
"""List of user roles."""
|
||||
userRoles: [UserRole!]
|
||||
}
|
||||
|
||||
"""
|
||||
Represents a Zabbix user role.
|
||||
"""
|
||||
type UserRole {
|
||||
"""Internal Zabbix ID of the role."""
|
||||
roleid: Int!
|
||||
"""Name of the role."""
|
||||
name: String
|
||||
"""Type of the role."""
|
||||
type: Int
|
||||
"""Whether the role is read-only."""
|
||||
readonly: Int
|
||||
"""Rules assigned to the role."""
|
||||
rules: UserRoleRules
|
||||
}
|
||||
|
||||
"""
|
||||
Represents the rules assigned to a user role.
|
||||
"""
|
||||
type UserRoleRules {
|
||||
"""UI access rules."""
|
||||
ui: [UserRoleRule!]
|
||||
"""Default access for UI elements."""
|
||||
ui_default_access: Int
|
||||
"""Module access rules."""
|
||||
modules:[UserRoleModule!]
|
||||
"""Default access for modules."""
|
||||
modules_default_access: Int
|
||||
"""Whether API access is enabled."""
|
||||
api_access: Int
|
||||
"""API mode."""
|
||||
api_mode: Int
|
||||
"""List of API methods allowed/denied."""
|
||||
api: [String!]
|
||||
"""Action rules."""
|
||||
actions: [UserRoleRule!]
|
||||
"""Default access for actions."""
|
||||
actions_default_access: Int
|
||||
}
|
||||
|
||||
"""
|
||||
Represents a single rule within a user role.
|
||||
"""
|
||||
type UserRoleRule {
|
||||
"""Name of the rule."""
|
||||
name: String
|
||||
"""Status of the rule."""
|
||||
status: Int
|
||||
}
|
||||
|
||||
"""
|
||||
Represents a module assigned to a user role.
|
||||
"""
|
||||
type UserRoleModule {
|
||||
"""Internal Zabbix module ID."""
|
||||
moduleid: String
|
||||
"""Status of the module."""
|
||||
status: Int
|
||||
"""Technical ID of the module."""
|
||||
id: String
|
||||
"""Relative path to the module."""
|
||||
relative_path: String
|
||||
}
|
||||
|
||||
"""
|
||||
Represents a Zabbix user group.
|
||||
"""
|
||||
type UserGroup {
|
||||
"""Internal Zabbix ID of the user group."""
|
||||
usrgrpid: Int!
|
||||
"""Name of the user group."""
|
||||
name: String!
|
||||
"""Frontend access level."""
|
||||
gui_access: Int
|
||||
"""Status of users in the group."""
|
||||
users_status: Int
|
||||
"""Permissions for host groups."""
|
||||
hostgroup_rights: [ZabbixGroupRight!]
|
||||
"""Permissions for template groups."""
|
||||
templategroup_rights: [ZabbixGroupRight!]
|
||||
}
|
||||
|
||||
"""
|
||||
Represents a specific permission right for a group.
|
||||
"""
|
||||
type ZabbixGroupRight {
|
||||
"""ID of the group the right applies to."""
|
||||
id: Int!
|
||||
"""Unique ID of the group."""
|
||||
uuid: String
|
||||
"""Name of the group."""
|
||||
name: String
|
||||
"""Assigned permission level."""
|
||||
permission: Permission
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,147 +25,178 @@ export interface Scalars {
|
|||
Time: { input: any; output: any; }
|
||||
}
|
||||
|
||||
/** Detailed error information returned by the API. */
|
||||
export interface ApiError extends Error {
|
||||
__typename?: 'ApiError';
|
||||
/** Arguments passed to the operation that failed. */
|
||||
args?: Maybe<Scalars['JSONObject']['output']>;
|
||||
/** Error code. */
|
||||
code?: Maybe<Scalars['Int']['output']>;
|
||||
/** Additional error data. */
|
||||
data?: Maybe<Scalars['JSONObject']['output']>;
|
||||
/** Error message. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
/** Path to the field that caused the error. */
|
||||
path?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Input for creating a new host. */
|
||||
export interface CreateHost {
|
||||
/** Technical name of the host/device. */
|
||||
deviceKey: Scalars['String']['input'];
|
||||
/** Classification or category of the device. */
|
||||
deviceType: Scalars['String']['input'];
|
||||
/**
|
||||
* groupNames is used to assign the created object
|
||||
* to a host group. It is mandatory but
|
||||
* can also be blank. This is usefull in case of
|
||||
* passing a groupid instead which is
|
||||
* the zabbix internal key for storing the group.
|
||||
* If a groupid is provided the passed groupName is ignored
|
||||
*/
|
||||
/** List of host group names to assign the host to. */
|
||||
groupNames: Array<Scalars['String']['input']>;
|
||||
/**
|
||||
* Optionally the internal groupids can be passed - in this case the
|
||||
* groupName is ignored
|
||||
*/
|
||||
/** Optionally, internal group IDs can be provided instead of group names. */
|
||||
groupids?: InputMaybe<Array<InputMaybe<Scalars['Int']['input']>>>;
|
||||
/** Location information for the host. */
|
||||
location?: InputMaybe<LocationInput>;
|
||||
/** Optional display name of the device (must be unique if provided - default is to set display name to deviceKey) */
|
||||
/** Optional display name of the device (must be unique if provided - default is to set display name to deviceKey). */
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
}
|
||||
|
||||
/** Input for creating or identifying a host group. */
|
||||
export interface CreateHostGroup {
|
||||
/** Name of the host group */
|
||||
/** Name of the host group. */
|
||||
groupName: Scalars['String']['input'];
|
||||
/**
|
||||
* Internally used unique id
|
||||
* (will be assigned by Zabbix if empty)
|
||||
*/
|
||||
/** Internally used unique id (will be assigned by Zabbix if empty). */
|
||||
uuid?: InputMaybe<Scalars['String']['input']>;
|
||||
}
|
||||
|
||||
/** Response for a host group import operation. */
|
||||
export interface CreateHostGroupResponse {
|
||||
__typename?: 'CreateHostGroupResponse';
|
||||
/** Error information if the import failed. */
|
||||
error?: Maybe<ApiError>;
|
||||
/** Name of the imported host group. */
|
||||
groupName: Scalars['String']['output'];
|
||||
/** The Zabbix group ID assigned to the group. */
|
||||
groupid?: Maybe<Scalars['Int']['output']>;
|
||||
/** Status message for the import. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Response for a single host creation operation. */
|
||||
export interface CreateHostResponse {
|
||||
__typename?: 'CreateHostResponse';
|
||||
/** Error information if the creation failed. */
|
||||
error?: Maybe<ApiError>;
|
||||
/** List of created host IDs. */
|
||||
hostids?: Maybe<Array<Maybe<Scalars['Int']['output']>>>;
|
||||
/** List of created item IDs. */
|
||||
itemids?: Maybe<Array<Maybe<Scalars['Int']['output']>>>;
|
||||
}
|
||||
|
||||
/** Input for an item preprocessing step. */
|
||||
export interface CreateItemPreprocessing {
|
||||
/** Error handling behavior. */
|
||||
error_handler?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** Error handling parameters. */
|
||||
error_handler_params?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Parameters for the preprocessing step. */
|
||||
params: Array<Scalars['String']['input']>;
|
||||
/** Type of preprocessing step (e.g., 12 for JSONPath, 21 for JavaScript). */
|
||||
type: Scalars['Int']['input'];
|
||||
}
|
||||
|
||||
/** Reference to a template to be linked. */
|
||||
export interface CreateLinkedTemplate {
|
||||
/** The technical name of the template to link. */
|
||||
name: Scalars['String']['input'];
|
||||
}
|
||||
|
||||
/** Reference to a master item for dependent items. */
|
||||
export interface CreateMasterItem {
|
||||
/** The technical key of the master item. */
|
||||
key: Scalars['String']['input'];
|
||||
}
|
||||
|
||||
/** Input for a tag. */
|
||||
export interface CreateTag {
|
||||
/** Tag name. */
|
||||
tag: Scalars['String']['input'];
|
||||
/** Tag value. */
|
||||
value?: InputMaybe<Scalars['String']['input']>;
|
||||
}
|
||||
|
||||
/** Input for creating or updating a template. */
|
||||
export interface CreateTemplate {
|
||||
/**
|
||||
* groupNames is used to assign the created object
|
||||
* to a template group.
|
||||
*/
|
||||
/** List of template group names to assign the template to. */
|
||||
groupNames: Array<Scalars['String']['input']>;
|
||||
/**
|
||||
* Optionally the internal groupids can be passed - in this case the
|
||||
* groupName is ignored
|
||||
*/
|
||||
/** Optionally, internal group IDs can be provided instead of group names. */
|
||||
groupids?: InputMaybe<Array<InputMaybe<Scalars['Int']['input']>>>;
|
||||
/** Name of the template */
|
||||
/** Technical name of the template. */
|
||||
host: Scalars['String']['input'];
|
||||
/** Template items */
|
||||
/** List of items to create within the template. */
|
||||
items?: InputMaybe<Array<CreateTemplateItem>>;
|
||||
/** Visible name of the template */
|
||||
/** Visible name of the template. */
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Template tags */
|
||||
/** Tags to assign to the template. */
|
||||
tags?: InputMaybe<Array<CreateTag>>;
|
||||
/** Linked templates */
|
||||
/** List of other templates to link to this template. */
|
||||
templates?: InputMaybe<Array<CreateLinkedTemplate>>;
|
||||
/**
|
||||
* Internally used unique id
|
||||
* (will be assigned by Zabbix if empty)
|
||||
*/
|
||||
/** Internally used unique id (will be assigned by Zabbix if empty). */
|
||||
uuid?: InputMaybe<Scalars['String']['input']>;
|
||||
}
|
||||
|
||||
/** Input for creating or identifying a template group. */
|
||||
export interface CreateTemplateGroup {
|
||||
/** Name of the template group */
|
||||
/** Name of the template group. */
|
||||
groupName: Scalars['String']['input'];
|
||||
/**
|
||||
* Internally used unique id
|
||||
* (will be assigned by Zabbix if empty)
|
||||
*/
|
||||
/** Internally used unique id (will be assigned by Zabbix if empty). */
|
||||
uuid?: InputMaybe<Scalars['String']['input']>;
|
||||
}
|
||||
|
||||
/** Response for a template group import operation. */
|
||||
export interface CreateTemplateGroupResponse {
|
||||
__typename?: 'CreateTemplateGroupResponse';
|
||||
/** Error information if the import failed. */
|
||||
error?: Maybe<ApiError>;
|
||||
/** Name of the imported template group. */
|
||||
groupName: Scalars['String']['output'];
|
||||
/** The Zabbix group ID assigned to the group. */
|
||||
groupid?: Maybe<Scalars['Int']['output']>;
|
||||
/** Status message for the import. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Input for creating an item within a template. */
|
||||
export interface CreateTemplateItem {
|
||||
/** Update interval. */
|
||||
delay?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Description of the item. */
|
||||
description?: InputMaybe<Scalars['String']['input']>;
|
||||
/** History storage period (e.g., '2d', '90d'). */
|
||||
history?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Technical key of the item. */
|
||||
key: Scalars['String']['input'];
|
||||
/** Reference to a master item if this is a dependent item. */
|
||||
master_item?: InputMaybe<CreateMasterItem>;
|
||||
/** Name of the item. */
|
||||
name: Scalars['String']['input'];
|
||||
/** Preprocessing steps for the item values. */
|
||||
preprocessing?: InputMaybe<Array<CreateItemPreprocessing>>;
|
||||
/** Tags to assign to the item. */
|
||||
tags?: InputMaybe<Array<CreateTag>>;
|
||||
/** Zabbix item type (e.g., 0 for Zabbix Agent, 18 for Dependent). */
|
||||
type?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** Units of the value. */
|
||||
units?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Internally used unique id. */
|
||||
uuid?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Type of information (e.g., 0 for Float, 3 for Int, 4 for Text). */
|
||||
value_type?: InputMaybe<Scalars['Int']['input']>;
|
||||
}
|
||||
|
||||
/** Response object for delete operations. */
|
||||
export interface DeleteResponse {
|
||||
__typename?: 'DeleteResponse';
|
||||
/** Error information if the deletion failed. */
|
||||
error?: Maybe<ApiError>;
|
||||
/** ID of the deleted entity. */
|
||||
id: Scalars['Int']['output'];
|
||||
/** Status message for the delete operation. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
|
|
@ -174,24 +205,34 @@ export interface DeleteResponse {
|
|||
* besides monitoring information.
|
||||
*/
|
||||
export interface Device {
|
||||
/** Classification of the device. */
|
||||
deviceType?: Maybe<Scalars['String']['output']>;
|
||||
/** Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname */
|
||||
/** Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname. */
|
||||
host: Scalars['String']['output'];
|
||||
/** List of host groups this device belongs to. */
|
||||
hostgroups?: Maybe<Array<HostGroup>>;
|
||||
/** Internal Zabbix ID of the device. */
|
||||
hostid: Scalars['ID']['output'];
|
||||
/** Visible name of the device. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
/** State of the device. */
|
||||
state?: Maybe<DeviceState>;
|
||||
/** Device configuration tags. */
|
||||
tags?: Maybe<DeviceConfig>;
|
||||
}
|
||||
|
||||
export { DeviceCommunicationType };
|
||||
|
||||
/** Configuration settings for a device. */
|
||||
export interface DeviceConfig {
|
||||
__typename?: 'DeviceConfig';
|
||||
/** Configuration for the device widget preview in the cockpit. */
|
||||
deviceWidgetPreview?: Maybe<WidgetPreview>;
|
||||
}
|
||||
|
||||
/** Common interface for device state. */
|
||||
export interface DeviceState {
|
||||
/** Operational data (telemetry). */
|
||||
operational?: Maybe<OperationalDeviceData>;
|
||||
}
|
||||
|
||||
|
|
@ -199,6 +240,7 @@ export { DeviceStatus };
|
|||
|
||||
/** Marker-interface for device-related data values. */
|
||||
export interface DeviceValue {
|
||||
/** Dummy field to allow for empty interfaces. */
|
||||
_empty?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
|
|
@ -238,182 +280,253 @@ export interface DeviceValueMessage {
|
|||
value?: Maybe<DeviceValue>;
|
||||
}
|
||||
|
||||
/** Specification for a display field in a widget. */
|
||||
export interface DisplayFieldSpec {
|
||||
__typename?: 'DisplayFieldSpec';
|
||||
/** Value to display if the data is missing. */
|
||||
emptyValue?: Maybe<Scalars['String']['output']>;
|
||||
/** Optional transformation for the unit. */
|
||||
g_unit_transform?: Maybe<Scalars['String']['output']>;
|
||||
/** Optional transformation for the value. */
|
||||
g_value_transform?: Maybe<Scalars['String']['output']>;
|
||||
/** Key of the data to display. */
|
||||
key?: Maybe<Scalars['String']['output']>;
|
||||
/** Unit string to append to the value. */
|
||||
unit?: Maybe<Scalars['String']['output']>;
|
||||
/** Font size for the unit. */
|
||||
unit_font_size?: Maybe<Scalars['String']['output']>;
|
||||
/** Font size for the value. */
|
||||
value_font_size?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Common error interface. */
|
||||
export interface Error {
|
||||
/** Error code. */
|
||||
code?: Maybe<Scalars['Int']['output']>;
|
||||
/** Additional error data. */
|
||||
data?: Maybe<Scalars['JSONObject']['output']>;
|
||||
/** Error message. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Payload for a single error or status message. */
|
||||
export interface ErrorPayload {
|
||||
__typename?: 'ErrorPayload';
|
||||
/** Additional contextual information about the error. */
|
||||
additionalInfo?: Maybe<Scalars['JSONObject']['output']>;
|
||||
/** Error code. */
|
||||
code: Scalars['Int']['output'];
|
||||
/** Human-readable error message. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Device represents generic IoT / Edge - devices providing their state as generic "state.current" - JSON Object */
|
||||
/** Device represents generic IoT / Edge - devices providing their state as generic "state.current" - JSON Object. */
|
||||
export interface GenericDevice extends Device, Host {
|
||||
__typename?: 'GenericDevice';
|
||||
/** Classification of the device. */
|
||||
deviceType?: Maybe<Scalars['String']['output']>;
|
||||
/** Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname */
|
||||
/** Per convention a uuid is used as hostname to identify devices if they do not have a unique hostname. */
|
||||
host: Scalars['String']['output'];
|
||||
/** List of host groups this device belongs to. */
|
||||
hostgroups?: Maybe<Array<HostGroup>>;
|
||||
/** Internal Zabbix ID of the device. */
|
||||
hostid: Scalars['ID']['output'];
|
||||
/** Visible name of the device. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
/** State of the generic device. */
|
||||
state?: Maybe<GenericDeviceState>;
|
||||
/** Device configuration tags. */
|
||||
tags?: Maybe<DeviceConfig>;
|
||||
}
|
||||
|
||||
/** Generic implementation of device state using a JSON object for current values. */
|
||||
export interface GenericDeviceState extends DeviceState {
|
||||
__typename?: 'GenericDeviceState';
|
||||
/** Current business data as a generic JSON object. */
|
||||
current?: Maybe<Scalars['JSONObject']['output']>;
|
||||
/** Operational data (telemetry). */
|
||||
operational?: Maybe<OperationalDeviceData>;
|
||||
}
|
||||
|
||||
/** Generic response wrapper containing either the result data or an error. */
|
||||
export interface GenericResponse {
|
||||
__typename?: 'GenericResponse';
|
||||
/** Error information if the operation failed. */
|
||||
error?: Maybe<ApiError>;
|
||||
/** The result data, typically a list of JSON objects. */
|
||||
result?: Maybe<Array<Scalars['JSONObject']['output']>>;
|
||||
}
|
||||
|
||||
/** Hint: WGS84[dd.ddddd] coordinates are used */
|
||||
/**
|
||||
* Interface for entities that have GPS coordinates.
|
||||
* Hint: WGS84[dd.ddddd] coordinates are used.
|
||||
*/
|
||||
export interface GpsPosition {
|
||||
/** Latitude coordinate. */
|
||||
latitude?: Maybe<Scalars['Float']['output']>;
|
||||
/** Longitude coordinate. */
|
||||
longitude?: Maybe<Scalars['Float']['output']>;
|
||||
}
|
||||
|
||||
/** Common interface for all host-like entities in Zabbix. */
|
||||
export interface Host {
|
||||
/**
|
||||
* Specifies the type or category of the device. Used to define the classification
|
||||
* of a device in the system (capabilities, functionalities, or purpose).
|
||||
*/
|
||||
deviceType?: Maybe<Scalars['String']['output']>;
|
||||
/** The host field contains the "hostname" in Zabbix */
|
||||
/** Technical name of the host (the 'hostname' in Zabbix). */
|
||||
host: Scalars['String']['output'];
|
||||
/** List of host groups this host belongs to. */
|
||||
hostgroups?: Maybe<Array<HostGroup>>;
|
||||
/** Internal Zabbix ID of the host. */
|
||||
hostid: Scalars['ID']['output'];
|
||||
/** Visible name of the host. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Represents a host group in Zabbix. */
|
||||
export interface HostGroup {
|
||||
__typename?: 'HostGroup';
|
||||
/** Internal Zabbix ID of the host group. */
|
||||
groupid: Scalars['ID']['output'];
|
||||
/** Name of the host group. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Response for a host import operation. */
|
||||
export interface ImportHostResponse {
|
||||
__typename?: 'ImportHostResponse';
|
||||
/** The device key (technical name) of the imported host. */
|
||||
deviceKey: Scalars['String']['output'];
|
||||
/** Error information if the import failed. */
|
||||
error?: Maybe<ApiError>;
|
||||
/** The Zabbix host ID assigned to the host. */
|
||||
hostid?: Maybe<Scalars['String']['output']>;
|
||||
/** Status message for the import. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Response for a template import operation. */
|
||||
export interface ImportTemplateResponse {
|
||||
__typename?: 'ImportTemplateResponse';
|
||||
/** Error information if the import failed. */
|
||||
error?: Maybe<ApiError>;
|
||||
/** The technical name of the imported template. */
|
||||
host: Scalars['String']['output'];
|
||||
/** Status message for the import. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
/** The Zabbix template ID assigned to the template. */
|
||||
templateid?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Result of a single user right (role or group) import. */
|
||||
export interface ImportUserRightResult {
|
||||
__typename?: 'ImportUserRightResult';
|
||||
/** List of errors encountered during import. */
|
||||
errors?: Maybe<Array<ApiError>>;
|
||||
/** The ID of the imported/updated entity. */
|
||||
id?: Maybe<Scalars['String']['output']>;
|
||||
/** Status message for the import. */
|
||||
message?: Maybe<Scalars['String']['output']>;
|
||||
/** The name of the entity. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Result of a user rights import operation. */
|
||||
export interface ImportUserRightsResult {
|
||||
__typename?: 'ImportUserRightsResult';
|
||||
/** Results for the imported user groups. */
|
||||
userGroups?: Maybe<Array<ImportUserRightResult>>;
|
||||
/** Results for the imported user roles. */
|
||||
userRoles?: Maybe<Array<ImportUserRightResult>>;
|
||||
}
|
||||
|
||||
/** Represents host inventory information. */
|
||||
export interface Inventory {
|
||||
__typename?: 'Inventory';
|
||||
/** Location data for the host. */
|
||||
location?: Maybe<Location>;
|
||||
}
|
||||
|
||||
/** Represents a geographical location. */
|
||||
export interface Location extends GpsPosition {
|
||||
__typename?: 'Location';
|
||||
/** Latitude coordinate. */
|
||||
latitude?: Maybe<Scalars['Float']['output']>;
|
||||
/** Longitude coordinate. */
|
||||
longitude?: Maybe<Scalars['Float']['output']>;
|
||||
/** Name of the location. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Input for host location information. */
|
||||
export interface LocationInput {
|
||||
/** Latitude coordinate. */
|
||||
location_lat?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Longitude coordinate. */
|
||||
location_lon?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Name of the location. */
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
}
|
||||
|
||||
export interface Mutation {
|
||||
__typename?: 'Mutation';
|
||||
/** Authentication: By zbx_session - cookie or zabbix-auth-token - header */
|
||||
/**
|
||||
* Creates a single host in Zabbix.
|
||||
*
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
createHost?: Maybe<CreateHostResponse>;
|
||||
/**
|
||||
* Delete template groups.
|
||||
* Delete template groups by their IDs or by a name pattern.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
deleteTemplateGroups?: Maybe<Array<DeleteResponse>>;
|
||||
/**
|
||||
* Delete templates.
|
||||
* Delete templates by their IDs or by a name pattern.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
deleteTemplates?: Maybe<Array<DeleteResponse>>;
|
||||
/**
|
||||
* (Mass) Import zabbix groups
|
||||
* and assign them to the corresponding hosts by groupid or groupName.
|
||||
* (Mass) Import Zabbix host groups and assign them to the corresponding hosts by groupid or groupName.
|
||||
*
|
||||
* Return value: If no error occurs a groupid be returned for each created group,
|
||||
* otherwise the return object will contain an error message
|
||||
* Return value: If no error occurs, a groupid is returned for each created group; otherwise, the return object contains an error message.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
importHostGroups?: Maybe<Array<CreateHostGroupResponse>>;
|
||||
/**
|
||||
* (Mass) Import hosts and assign them to host groups by groupid or groupName.
|
||||
*
|
||||
* Return value: If no error occurs a hostid will be returned for each created host,
|
||||
* otherwise the return object will contain an error message.
|
||||
* Return value: If no error occurs, a hostid is returned for each created host; otherwise, the return object contains an error message.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
importHosts?: Maybe<Array<ImportHostResponse>>;
|
||||
/**
|
||||
* (Mass) Import template groups
|
||||
* and assign them by groupid or name.
|
||||
* (Mass) Import template groups and assign them by groupid or name.
|
||||
*
|
||||
* Return value: If no error occurs a groupid be returned for each created group,
|
||||
* otherwise the return object will contain an error message
|
||||
* Return value: If no error occurs, a groupid is returned for each created group; otherwise, the return object contains an error message.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
importTemplateGroups?: Maybe<Array<CreateTemplateGroupResponse>>;
|
||||
/**
|
||||
* (Mass) Import templates.
|
||||
*
|
||||
* Return value: If no error occurs a templateid will be returned for each created template,
|
||||
* otherwise the return object will contain an error message.
|
||||
* Return value: If no error occurs, a templateid is returned for each created template; otherwise, the return object contains an error message.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
importTemplates?: Maybe<Array<ImportTemplateResponse>>;
|
||||
/**
|
||||
* Import user rights (roles and groups) into Zabbix.
|
||||
*
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
importUserRights?: Maybe<ImportUserRightsResult>;
|
||||
}
|
||||
|
||||
|
|
@ -463,103 +576,92 @@ export interface MutationImportUserRightsArgs {
|
|||
input: UserRightsInput;
|
||||
}
|
||||
|
||||
/** Operational data common to most devices. */
|
||||
export interface OperationalDeviceData {
|
||||
__typename?: 'OperationalDeviceData';
|
||||
/** List of active errors or status messages. */
|
||||
error?: Maybe<Array<ErrorPayload>>;
|
||||
/** Current location of the device. */
|
||||
location?: Maybe<Location>;
|
||||
/** Signal strength (e.g., WiFi or GSM). */
|
||||
signalstrength?: Maybe<Scalars['Float']['output']>;
|
||||
/** Device temperature. */
|
||||
temperature?: Maybe<Scalars['Float']['output']>;
|
||||
/** Timestamp of the operational data. */
|
||||
timestamp?: Maybe<Scalars['DateTime']['output']>;
|
||||
/** Device voltage. */
|
||||
voltage?: Maybe<Scalars['Float']['output']>;
|
||||
}
|
||||
|
||||
export { Permission };
|
||||
|
||||
/** Request for checking specific user permissions. */
|
||||
export interface PermissionRequest {
|
||||
/**
|
||||
* objectName maps to name / path suffix of the template group representing the permission in Zabbix:
|
||||
* Permissions/{objectName}
|
||||
*/
|
||||
objectName: Scalars['String']['input'];
|
||||
/** The required permission level (DENY, READ, or READ_WRITE). */
|
||||
permission: Permission;
|
||||
}
|
||||
|
||||
export interface Query {
|
||||
__typename?: 'Query';
|
||||
/**
|
||||
* Get all devices + corresponding items. Devices are modelled as hosts having a device type + a state.
|
||||
* If with_items==true only hosts with attached items are delivered
|
||||
* name_pattern: If provided this will perform a LIKE "%…%" search on the name attribute within the database.
|
||||
* Returns all devices and their items. Devices are hosts with a `deviceType` and a state.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
allDevices?: Maybe<Array<Maybe<Device>>>;
|
||||
/**
|
||||
* Get all host groups.
|
||||
* If with_hosts==true only groups with attached hosts are delivered.
|
||||
* Returns all host groups.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
allHostGroups?: Maybe<Array<Maybe<HostGroup>>>;
|
||||
/**
|
||||
* Get all hosts + corresponding items. If with_items==true only hosts with attached items are delivered
|
||||
* name_pattern: If provided this will perform a LIKE "%…%" search on the name attribute within the database.
|
||||
* Returns all hosts and their items.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
allHosts?: Maybe<Array<Maybe<Host>>>;
|
||||
/** Get template groups. */
|
||||
/** Returns all template groups. */
|
||||
allTemplateGroups?: Maybe<Array<Maybe<HostGroup>>>;
|
||||
/** Get api (build) version */
|
||||
/** Returns the API build version. */
|
||||
apiVersion: Scalars['String']['output'];
|
||||
/**
|
||||
* Export history from Zabbix items
|
||||
* Exports value history for Zabbix items.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
exportHostValueHistory?: Maybe<GenericResponse>;
|
||||
/**
|
||||
* name_pattern: If provided this will perform a LIKE "%…%" search on the name attribute within the database.
|
||||
* exclude_groups_pattern: Regex allowing to exclude all matching hostgroups from group permissions
|
||||
*/
|
||||
/** Exports user rights (roles and groups). */
|
||||
exportUserRights?: Maybe<UserRights>;
|
||||
/**
|
||||
* Return true if and only if the current user (identified by token / cookie)
|
||||
* has all requested permissions (minimum - if READ is requested and the user has READ_WRITE
|
||||
* the response will be true)
|
||||
*/
|
||||
/** Checks if the current user has the requested permissions. */
|
||||
hasPermissions?: Maybe<Scalars['Boolean']['output']>;
|
||||
/**
|
||||
* Get all locations used by hosts.
|
||||
* distinct_by_name=true means that the result is filtered for distinct names (default)
|
||||
* name_pattern: If provided this will perform a Regex search on the name attribute within the database.
|
||||
* Returns all locations used by hosts.
|
||||
*
|
||||
* Authentication: By zbx_session - cookie or zabbix-auth-token - header
|
||||
* Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header.
|
||||
*/
|
||||
locations?: Maybe<Array<Maybe<Location>>>;
|
||||
/**
|
||||
* Login to zabbix - provided for debugging and testing purpose. The result of the login operation is
|
||||
* authentication token returned may be passed as
|
||||
* header 'zabbix-auth-token' for authenticating future API requests.
|
||||
* As an alternative to the cookie 'zbx_session' may be set which is automatically set after login to
|
||||
* the cockpit - this is the standard way to authenticate api calls initiated by the cockpit frontend
|
||||
* because the frontend is always embedded into the Zabbix portal which is only accessible after logging in and
|
||||
* obtainind the zbx_session - cookie.
|
||||
* Logs in to Zabbix. This is primarily for debugging and testing.
|
||||
* The returned authentication token can be passed in the `zabbix-auth-token` header for future requests.
|
||||
* Alternatively, the `zbx_session` cookie can be used for authentication.
|
||||
*/
|
||||
login?: Maybe<Scalars['String']['output']>;
|
||||
/**
|
||||
* Logout from zabbix - provided for debugging and testing purpose. This invalidates the token received by the login
|
||||
* operation. Returns true on success
|
||||
*/
|
||||
/** Logs out from Zabbix, invalidating the current session/token. */
|
||||
logout?: Maybe<Scalars['Boolean']['output']>;
|
||||
/** Get templates. */
|
||||
/** Returns templates. */
|
||||
templates?: Maybe<Array<Maybe<Template>>>;
|
||||
/**
|
||||
* Return all user permissions. If objectNames is provided return only the permissions related to the objects within
|
||||
* the objectNames - list
|
||||
* Returns all user permissions.
|
||||
* If `objectNames` is provided, returns only the permissions related to those objects.
|
||||
*/
|
||||
userPermissions?: Maybe<Array<UserPermission>>;
|
||||
/** Get zabbix version */
|
||||
/** Returns the version of the connected Zabbix instance. */
|
||||
zabbixVersion?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
|
|
@ -651,30 +753,47 @@ export enum SortOrder {
|
|||
|
||||
export { StorageItemType };
|
||||
|
||||
/** Represents a Zabbix template. */
|
||||
export interface Template {
|
||||
__typename?: 'Template';
|
||||
/** Name of the template. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
/** Internal Zabbix ID of the template. */
|
||||
templateid: Scalars['String']['output'];
|
||||
}
|
||||
|
||||
/** Represents a Zabbix user group. */
|
||||
export interface UserGroup {
|
||||
__typename?: 'UserGroup';
|
||||
/** Frontend access level. */
|
||||
gui_access?: Maybe<Scalars['Int']['output']>;
|
||||
/** Permissions for host groups. */
|
||||
hostgroup_rights?: Maybe<Array<ZabbixGroupRight>>;
|
||||
/** Name of the user group. */
|
||||
name: Scalars['String']['output'];
|
||||
/** Permissions for template groups. */
|
||||
templategroup_rights?: Maybe<Array<ZabbixGroupRight>>;
|
||||
/** Status of users in the group. */
|
||||
users_status?: Maybe<Scalars['Int']['output']>;
|
||||
/** Internal Zabbix ID of the user group. */
|
||||
usrgrpid: Scalars['Int']['output'];
|
||||
}
|
||||
|
||||
/** Input for a user group. */
|
||||
export interface UserGroupInput {
|
||||
/** Frontend access level. */
|
||||
gui_access?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** Permissions for host groups. */
|
||||
hostgroup_rights?: InputMaybe<Array<ZabbixGroupRightInput>>;
|
||||
/** Name of the user group. */
|
||||
name: Scalars['String']['input'];
|
||||
/** Permissions for template groups. */
|
||||
templategroup_rights?: InputMaybe<Array<ZabbixGroupRightInput>>;
|
||||
/** Status of the users in the group. */
|
||||
users_status?: InputMaybe<Scalars['Int']['input']>;
|
||||
}
|
||||
|
||||
/** Represents a permission assigned to a user for a specific object. */
|
||||
export interface UserPermission {
|
||||
__typename?: 'UserPermission';
|
||||
/**
|
||||
|
|
@ -682,118 +801,179 @@ export interface UserPermission {
|
|||
* Permissions/{objectName}
|
||||
*/
|
||||
objectName: Scalars['String']['output'];
|
||||
/** The assigned permission level. */
|
||||
permission: Permission;
|
||||
}
|
||||
|
||||
/** Represents the combined user rights (groups and roles). */
|
||||
export interface UserRights {
|
||||
__typename?: 'UserRights';
|
||||
/** List of user groups. */
|
||||
userGroups?: Maybe<Array<UserGroup>>;
|
||||
/** List of user roles. */
|
||||
userRoles?: Maybe<Array<UserRole>>;
|
||||
}
|
||||
|
||||
/** Input for importing user rights. */
|
||||
export interface UserRightsInput {
|
||||
/** List of user groups to import. */
|
||||
userGroups?: InputMaybe<Array<UserGroupInput>>;
|
||||
/** List of user roles to import. */
|
||||
userRoles?: InputMaybe<Array<UserRoleInput>>;
|
||||
}
|
||||
|
||||
/** Represents a Zabbix user role. */
|
||||
export interface UserRole {
|
||||
__typename?: 'UserRole';
|
||||
/** Name of the role. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
/** Whether the role is read-only. */
|
||||
readonly?: Maybe<Scalars['Int']['output']>;
|
||||
/** Internal Zabbix ID of the role. */
|
||||
roleid: Scalars['Int']['output'];
|
||||
/** Rules assigned to the role. */
|
||||
rules?: Maybe<UserRoleRules>;
|
||||
/** Type of the role. */
|
||||
type?: Maybe<Scalars['Int']['output']>;
|
||||
}
|
||||
|
||||
/** Input for a user role. */
|
||||
export interface UserRoleInput {
|
||||
/** Name of the role. */
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Whether the role is read-only (1) or not (0). */
|
||||
readonly?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** Specific rules for the role. */
|
||||
rules?: InputMaybe<UserRoleRulesInput>;
|
||||
/** Type of role (e.g., 1 for User, 2 for Admin, 3 for Super Admin). */
|
||||
type?: InputMaybe<Scalars['Int']['input']>;
|
||||
}
|
||||
|
||||
/** Represents a module assigned to a user role. */
|
||||
export interface UserRoleModule {
|
||||
__typename?: 'UserRoleModule';
|
||||
/** Technical ID of the module. */
|
||||
id?: Maybe<Scalars['String']['output']>;
|
||||
/** Internal Zabbix module ID. */
|
||||
moduleid?: Maybe<Scalars['String']['output']>;
|
||||
/** Relative path to the module. */
|
||||
relative_path?: Maybe<Scalars['String']['output']>;
|
||||
/** Status of the module. */
|
||||
status?: Maybe<Scalars['Int']['output']>;
|
||||
}
|
||||
|
||||
/** Input for user role module access. */
|
||||
export interface UserRoleModuleInput {
|
||||
/** Technical ID of the module. */
|
||||
id?: InputMaybe<Scalars['String']['input']>;
|
||||
/** The internal Zabbix module ID. */
|
||||
moduleid?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Status of the module. */
|
||||
status?: InputMaybe<Scalars['Int']['input']>;
|
||||
}
|
||||
|
||||
/** Represents a single rule within a user role. */
|
||||
export interface UserRoleRule {
|
||||
__typename?: 'UserRoleRule';
|
||||
/** Name of the rule. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
/** Status of the rule. */
|
||||
status?: Maybe<Scalars['Int']['output']>;
|
||||
}
|
||||
|
||||
/** Input for a single user role rule. */
|
||||
export interface UserRoleRuleInput {
|
||||
/** Name of the rule/element. */
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
/** Status (e.g., 1 for enabled, 0 for disabled). */
|
||||
status?: InputMaybe<Scalars['Int']['input']>;
|
||||
}
|
||||
|
||||
/** Represents the rules assigned to a user role. */
|
||||
export interface UserRoleRules {
|
||||
__typename?: 'UserRoleRules';
|
||||
/** Action rules. */
|
||||
actions?: Maybe<Array<UserRoleRule>>;
|
||||
/** Default access for actions. */
|
||||
actions_default_access?: Maybe<Scalars['Int']['output']>;
|
||||
/** List of API methods allowed/denied. */
|
||||
api?: Maybe<Array<Scalars['String']['output']>>;
|
||||
/** Whether API access is enabled. */
|
||||
api_access?: Maybe<Scalars['Int']['output']>;
|
||||
/** API mode. */
|
||||
api_mode?: Maybe<Scalars['Int']['output']>;
|
||||
/** Module access rules. */
|
||||
modules?: Maybe<Array<UserRoleModule>>;
|
||||
/** Default access for modules. */
|
||||
modules_default_access?: Maybe<Scalars['Int']['output']>;
|
||||
/** UI access rules. */
|
||||
ui?: Maybe<Array<UserRoleRule>>;
|
||||
/** Default access for UI elements. */
|
||||
ui_default_access?: Maybe<Scalars['Int']['output']>;
|
||||
}
|
||||
|
||||
/** Input for user role rules. */
|
||||
export interface UserRoleRulesInput {
|
||||
/** Action rules. */
|
||||
actions?: InputMaybe<Array<UserRoleRuleInput>>;
|
||||
/** Default access for actions. */
|
||||
actions_default_access?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** List of API methods allowed/denied. */
|
||||
api?: InputMaybe<Array<Scalars['String']['input']>>;
|
||||
/** Whether API access is enabled (1) or not (0). */
|
||||
api_access?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** API mode (e.g., 0 for white-list, 1 for black-list). */
|
||||
api_mode?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** Module access rules. */
|
||||
modules?: InputMaybe<Array<UserRoleModuleInput>>;
|
||||
/** Default access for modules. */
|
||||
modules_default_access?: InputMaybe<Scalars['Int']['input']>;
|
||||
/** UI access rules. */
|
||||
ui?: InputMaybe<Array<UserRoleRuleInput>>;
|
||||
/** Default access for UI elements. */
|
||||
ui_default_access?: InputMaybe<Scalars['Int']['input']>;
|
||||
}
|
||||
|
||||
/** Represents the configuration for a 4-field widget preview. */
|
||||
export interface WidgetPreview {
|
||||
__typename?: 'WidgetPreview';
|
||||
/** Bottom-left field specification. */
|
||||
BOTTOM_LEFT?: Maybe<DisplayFieldSpec>;
|
||||
/** Bottom-right field specification. */
|
||||
BOTTOM_RIGHT?: Maybe<DisplayFieldSpec>;
|
||||
/** Top-left field specification. */
|
||||
TOP_LEFT?: Maybe<DisplayFieldSpec>;
|
||||
/** Top-right field specification. */
|
||||
TOP_RIGHT?: Maybe<DisplayFieldSpec>;
|
||||
}
|
||||
|
||||
/** Represents a specific permission right for a group. */
|
||||
export interface ZabbixGroupRight {
|
||||
__typename?: 'ZabbixGroupRight';
|
||||
/** ID of the group the right applies to. */
|
||||
id: Scalars['Int']['output'];
|
||||
/** Name of the group. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
/** Assigned permission level. */
|
||||
permission?: Maybe<Permission>;
|
||||
/** Unique ID of the group. */
|
||||
uuid?: Maybe<Scalars['String']['output']>;
|
||||
}
|
||||
|
||||
/** Input for a Zabbix group permission right. */
|
||||
export interface ZabbixGroupRightInput {
|
||||
/**
|
||||
* name may optionally be specified for documentation purpose,
|
||||
* Name may optionally be specified for documentation purpose,
|
||||
* but the master for setting the user right is the uuid.
|
||||
* If a uuid is found and the corresponding group
|
||||
* has a deviating name this will be documented within a message
|
||||
* with errorcode = 0 (OK) but the permission will be set (
|
||||
* the reason is that names for groups may deviate between several
|
||||
* instances of the control center although the semantic is the same -
|
||||
* while the semantic is identified by uuid.
|
||||
*/
|
||||
name?: InputMaybe<Scalars['String']['input']>;
|
||||
/** The permission level to assign. */
|
||||
permission?: InputMaybe<Permission>;
|
||||
/** The unique ID of the group. */
|
||||
uuid?: InputMaybe<Scalars['String']['input']>;
|
||||
}
|
||||
|
||||
/** Concrete implementation of a Zabbix host. */
|
||||
export interface ZabbixHost extends Host {
|
||||
__typename?: 'ZabbixHost';
|
||||
/**
|
||||
|
|
@ -801,28 +981,48 @@ export interface ZabbixHost extends Host {
|
|||
* of a device in the system (capabilities, functionalities, or purpose).
|
||||
*/
|
||||
deviceType?: Maybe<Scalars['String']['output']>;
|
||||
/** Technical name of the host. */
|
||||
host: Scalars['String']['output'];
|
||||
/** List of host groups this host belongs to. */
|
||||
hostgroups?: Maybe<Array<HostGroup>>;
|
||||
/** Internal Zabbix ID of the host. */
|
||||
hostid: Scalars['ID']['output'];
|
||||
/** Host inventory data. */
|
||||
inventory?: Maybe<Inventory>;
|
||||
/** List of monitored items for this host. */
|
||||
items?: Maybe<Array<ZabbixItem>>;
|
||||
/** Visible name of the host. */
|
||||
name?: Maybe<Scalars['String']['output']>;
|
||||
/** List of templates linked to this host. */
|
||||
parentTemplates?: Maybe<Array<Template>>;
|
||||
/** Tags assigned to the host as a JSON object. */
|
||||
tags?: Maybe<Scalars['JSONObject']['output']>;
|
||||
}
|
||||
|
||||
/** Represents a Zabbix item (a single data point being monitored). */
|
||||
export interface ZabbixItem {
|
||||
__typename?: 'ZabbixItem';
|
||||
/** Attribute name if this item is part of a hierarchical mapping. */
|
||||
attributeName?: Maybe<Scalars['String']['output']>;
|
||||
/** Internal Zabbix ID of the host this item belongs to. */
|
||||
hostid?: Maybe<Scalars['Int']['output']>;
|
||||
/** Hosts that this item is linked to. */
|
||||
hosts?: Maybe<Array<Host>>;
|
||||
/** Internal Zabbix ID of the item. */
|
||||
itemid: Scalars['Int']['output'];
|
||||
/** Technical key of the item. */
|
||||
key_: Scalars['String']['output'];
|
||||
/** Unix timestamp of the last time the item value was updated. */
|
||||
lastclock?: Maybe<Scalars['Int']['output']>;
|
||||
/** Last value retrieved for this item. */
|
||||
lastvalue?: Maybe<Scalars['String']['output']>;
|
||||
/** Visible name of the item. */
|
||||
name: Scalars['String']['output'];
|
||||
/** Status of the item (ENABLED or DISABLED). */
|
||||
status?: Maybe<DeviceStatus>;
|
||||
/** Communication type used by the item. */
|
||||
type?: Maybe<DeviceCommunicationType>;
|
||||
/** Type of information (e.g., 0 for Float, 3 for Int, 4 for Text). */
|
||||
value_type: Scalars['Int']['output'];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue