type Mutation { """ Creates a single host in Zabbix. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ 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], """List of template names to link to the host.""" templateNames: [String], """Optional location information for the host inventory.""" location: LocationInput ): CreateHostResponse """ (Mass) Import Zabbix host groups and assign them to the corresponding hosts by groupid or groupName. 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. """ 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 is returned for each created host; otherwise, the return object contains an error message. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ importHosts( """List of hosts to import.""" hosts: [CreateHost!]! ):[ImportHostResponse!] """ Import user rights (roles and groups) into Zabbix. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ 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 is returned for each created template; otherwise, the return object contains an error message. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ importTemplates( """List of templates to import.""" templates: [CreateTemplate!]! ):[ImportTemplateResponse!] """ Delete templates by their IDs or by a name pattern. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ 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 by their IDs or by a name pattern. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ deleteTemplateGroups( """List of template group IDs to delete.""" groupids: [Int!], """Wildcard name pattern for template groups to delete.""" name_pattern: String ): [DeleteResponse!] """ Delete hosts by their IDs or by a name pattern. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ deleteHosts( """List of host IDs to delete.""" hostids: [Int!], """Wildcard name pattern for hosts to delete.""" name_pattern: String ): [DeleteResponse!] """ Delete host groups by their IDs or by a name pattern. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ deleteHostGroups( """List of host group IDs to delete.""" groupids: [Int!], """Wildcard name pattern for host groups to delete.""" name_pattern: String ): [DeleteResponse!] """ Pushes history data to Zabbix (ZABBIX_TRAP items). Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ pushHistory( """Item ID to push data to.""" itemid: Int, """Item key to push data to (required if itemid is empty).""" key: String, """Host name the item belongs to (required if itemid is empty).""" host: String, """Values to push.""" values: [HistoryPushInput!]! ): HistoryPushResponse """ Store JSON object (e.g. config value) and assign it to a host group by groupid or groupName. If both groupid or groupName are unset an error will be returned and the dataset will not be stored. If host is provided the corresponding host will be looked up and the value will be pushed to an item of this host with the corresponding key - if such an item does not exist it will be created, if it exists it must be a ZABBIX_TRAP item, otherwise an error is returned. If a name is specified it will be set as item name. If no host is provided the field valueType is mandatory - the hosts of the specified group will be looked up for a host having a corresponding tag "valueType" matching to the specified value. If multiple hosts exist with this tag and this group, an error will be thrown. If no hosts exist with this tag and this group a new host will be created and the tag and the group will be assigned. Return value: If no error occurs, a hostid and an itemid will be returned. Authentication: Requires `zbx_session` cookie or `zabbix-auth-token` header. """ storeGroupValue( """The locator for the group value.""" locator: GroupValueLocator! """The JSON object to store.""" value: JSONObject!): HistoryPushData """ Runs a smoketest: creates a template, links a host, verifies it, and cleans up. """ runSmoketest( """Technical name for the smoketest host.""" hostName: String!, """Technical name for the smoketest template.""" templateName: String!, """Technical name for the smoketest host group.""" groupName: String! ): SmoketestResponse! """ Runs all regression tests. """ runAllRegressionTests: SmoketestResponse! } input Tag { tag: String!, value: String! } """ Response object for the smoketest operation. """ type SmoketestResponse { """ True if all steps of the smoketest succeeded. """ success: Boolean! """ Overall status message. """ message: String """ Detailed results for each step. """ steps: [SmoketestStep!]! } """ Results for a single step in the smoketest. """ type SmoketestStep { """ Name of the step (e.g. 'Create Template'). """ name: String! """ True if the step succeeded. """ success: Boolean! """ Status message or error message for the step. """ message: String } #################################################################### # 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. """ groupName: String! """ Internally used unique id (will be assigned by Zabbix if empty). """ uuid: String } """ Input for creating or updating a template. """ input CreateTemplate { """ Technical name of the template. """ host: String! """ Visible name of the template. """ name: String """ List of template group names to assign the template to. """ groupNames: [String!]! """ Optionally, internal group IDs can be provided instead of group names. """ groupids: [Int] """ Internally used unique id (will be assigned by Zabbix if empty). """ uuid: String """ List of items to create within the template. """ items: [CreateTemplateItem!] """ List of other templates to link to this template. """ templates: [CreateLinkedTemplate!] """ Tags to assign to the template. """ tags: [CreateTag!] """ User macros to assign to the template. """ macros: [CreateMacro!] } """ 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 """ Zabbix item status (0 for Enabled, 1 for Disabled). """ status: 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 """ URL for HTTP Agent items. """ url: String """ JavaScript code for Script items or other parameters. """ params: String """ Timeout for item data collection. """ timeout: 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 } """ Input for creating a user macro. """ input CreateMacro { """ Macro name (e.g. '{$LAT}'). """ macro: String! """ Macro 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. """ groupName: String! """ Internally used unique id (will be assigned by Zabbix if empty). """ uuid: String } """ Response for a host import operation. """ type ImportHostResponse { """ The device key (technical name) of the imported host. """ deviceKey: String! """ 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! """ List of host group names to assign the host to. """ groupNames: [String!]! """ Optionally, internal group IDs can be provided instead of group names. """ groupids: [Int] """ List of template IDs to link to the host. """ templateids: [Int] """ List of template names to link to the host. """ templateNames: [String] """ Location information for the host. """ location: LocationInput """ User macros to assign to the host. """ macros: [CreateMacro!] } """ 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 } """ 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, but the master for setting the user right is the 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!] } """ Input for pushing history data. """ input HistoryPushInput { """Timestamp of the value.""" timestamp: DateTime! """The value to push (JSON object).""" value: JSONObject! } """ Response object for pushHistory operation. """ type HistoryPushResponse { """Overall status message.""" message: String """Error information if the operation failed.""" error: ApiError """Detailed results for each pushed value.""" data: [HistoryPushData!] } """ Detailed result for a single pushed value. """ type HistoryPushData { """The Zabbix item ID.""" itemid: String """Error information if the push failed for this item.""" error: ApiError }