zabbix

package module
v5.0.0-...-2356914 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 21, 2024 License: MIT Imports: 7 Imported by: 0

README

nxs-go-zabbix

This Go package provides access to Zabbix API v5.0. Also see older versions in other branches.

At the time not all Zabbix API methods are implemented, but work in progress.

Install

go get github.com/nixys/nxs-go-zabbix/v5

Example of usage

You may find more examples in unit-tests in this repository

Get all hosts on Zabbix server:

package main

import (
	"fmt"
	"os"

	"github.com/nixys/nxs-go-zabbix/v5"
)

func zabbixLogin(z *zabbix.Context, zbxHost, zbxUsername, zbxPassword string) {

	if err := z.Login(zbxHost, zbxUsername, zbxPassword); err != nil {
		fmt.Println("Login error:", err)
		os.Exit(1)
	} else {
		fmt.Println("Login: success")
	}
}

func zabbixLogout(z *zabbix.Context) {

	if err := z.Logout(); err != nil {
		fmt.Println("Logout error:", err)
		os.Exit(1)
	} else {
		fmt.Println("Logout: success")
	}
}

func main() {

	var z zabbix.Context

	/* Get variables from environment to login to Zabbix server */
	zbxHost := os.Getenv("ZABBIX_HOST")
	zbxUsername := os.Getenv("ZABBIX_USERNAME")
	zbxPassword := os.Getenv("ZABBIX_PASSWORD")
	if zbxHost == "" || zbxUsername == "" || zbxPassword == "" {
		fmt.Println("Login error: make sure environment variables `ZABBIX_HOST`, `ZABBIX_USERNAME` and `ZABBIX_PASSWORD` are defined")
		os.Exit(1)
	}

	/* Login to Zabbix server */
	zabbixLogin(&z, zbxHost, zbxUsername, zbxPassword)
	defer zabbixLogout(&z)

	/* Get all hosts */
	hObjects, _, err := z.HostGet(zabbix.HostGetParams{
		GetParameters: zabbix.GetParameters{
			Output: zabbix.SelectExtendedOutput,
		},
	})
	if err != nil {
		fmt.Println("Hosts get error:", err)
		return
	}

	/* Print names of retrieved hosts */
	fmt.Println("Hosts list:")
	for _, h := range hObjects {
		fmt.Println("-", h.Host)
	}
}

Run:

ZABBIX_HOST="https://zabbix.yourdomain.com/api_jsonrpc.php" ZABBIX_USERNAME="Admin" ZABBIX_PASSWORD="PASSWORD" go run main.go

Test:

ZABBIX_HOST="https://zabbix.yourdomain.com/api_jsonrpc.php" ZABBIX_USERNAME="Admin" ZABBIX_PASSWORD="PASSWORD" go test -v -run TestProblemGet

Feedback

For support and feedback please contact me:

License

nxs-go-zabbix is released under the MIT License.

Documentation

Index

Constants

View Source
const (
	ActionStatusEnabled  = 0
	ActionStatusDisabled = 1
)

For `ActionObject` field: `Status`

View Source
const (
	ActionPauseSuppressedEnabled  = 0
	ActionPauseSuppressedDisabled = 1
)

For `ActionObject` field: `PauseSuppressed`

View Source
const (
	ActionOperationTypeSendMsg              = 0
	ActionOperationTypeRemoteCmd            = 1
	ActionOperationTypeAddHost              = 2
	ActionOperationTypeRmHost               = 3
	ActionOperationTypeAddToHostGroup       = 4
	ActionOperationTypeRmFromHostGroup      = 5
	ActionOperationTypeLinkToTpl            = 6
	ActionOperationTypeUnlinkFromTpl        = 7
	ActionOperationTypeEnableHost           = 8
	ActionOperationTypeDisableHost          = 9
	ActionOperationTypeSetHostInventoryMode = 10
)

For `ActionOperationObject` field: `OperationType`

View Source
const (
	ActionOperationEvalTypeAndOR = 0
	ActionOperationEvalTypeAnd   = 1
	ActionOperationEvalTypeOr    = 2
)

For `ActionOperationObject` field: `EvalType`

View Source
const (
	ActionOperationCommandTypeCustomScript = 0
	ActionOperationCommandTypeIPMI         = 1
	ActionOperationCommandTypeSSH          = 2
	ActionOperationCommandTypeTelnet       = 3
	ActionOperationCommandTypeGlobalScript = 4
)

For `ActionOperationCommandObject` field: `Type`

View Source
const (
	ActionOperationCommandAuthTypePassword = 0
	ActionOperationCommandAuthTypePubKey   = 1
)

For `ActionOperationCommandObject` field: `AuthType`

View Source
const (
	ActionOperationCommandExecuteOnAgent  = 0
	ActionOperationCommandExecuteOnServer = 1
	ActionOperationCommandExecuteOnProxy  = 2
)

For `ActionOperationCommandObject` field: `ExecuteOn`

View Source
const (
	ActionOperationMessageDefaultMsgFromOperation = 0
	ActionOperationMessageDefaultMsgFromMediaType = 1
)

For `ActionOperationMessageObject` field: `DefaultMsg`

View Source
const (
	ActionRecoveryOperationTypeSendMsg           = 0
	ActionRecoveryOperationTypeRemoteCmd         = 1
	ActionRecoveryOperationTypeNotifyAllInvolved = 11
)

For `ActionRecoveryOperationObject` field: `OperationType `

View Source
const (
	ActionUpdateOperationTypeSendMsg           = 0
	ActionUpdateOperationTypeRemoteCmd         = 1
	ActionUpdateOperationTypeNotifyAllInvolved = 12
)

For `ActionUpdateOperationObject` field: `OperationType `

View Source
const (
	ActionFilterEvalTypeAndOr  = 0
	ActionFilterEvalTypeAnd    = 1
	ActionFilterEvalTypeOr     = 2
	ActionFilterEvalTypeCustom = 3
)

For `ActionFilterObject` field: `EvalType`

View Source
const (
	ActionFilterConditionTypeHostroup             = 0
	ActionFilterConditionTypeHost                 = 1
	ActionFilterConditionTypeTrigger              = 2
	ActionFilterConditionTypeTriggerName          = 3
	ActionFilterConditionTypeTriggerSeverity      = 4
	ActionFilterConditionTypeTriggerValue         = 5
	ActionFilterConditionTypeTimePeriod           = 6
	ActionFilterConditionTypeHostIP               = 7
	ActionFilterConditionTypeDiscoveryServiceType = 8
	ActionFilterConditionTypeDiscoveryServicePort = 9
	ActionFilterConditionTypeDiscoveryStatus      = 10
	ActionFilterConditionTypeUpdownTimeDuration   = 11
	ActionFilterConditionTypeRcvValue             = 12
	ActionFilterConditionTypeHostTemplate         = 13
	ActionFilterConditionTypeApplication          = 15
	ActionFilterConditionTypeProblemIsSuppressed  = 16
	ActionFilterConditionTypeDiscRule             = 18
	ActionFilterConditionTypeDiscCheck            = 19
	ActionFilterConditionTypeProxy                = 20
	ActionFilterConditionTypeDiscObject           = 21
	ActionFilterConditionTypeHostName             = 22
	ActionFilterConditionTypeEventType            = 23
	ActionFilterConditionTypeHostMetadata         = 24
	ActionFilterConditionTypeTag                  = 25
	ActionFilterConditionTypeTagValue             = 26
)

For `ActionFilterConditionObject` field: `ConditionType`

View Source
const (
	ActionFilterConditionOperatorEQ          = 0  // =
	ActionFilterConditionOperatorNE          = 1  // <>
	ActionFilterConditionOperatorContains    = 2  // contains
	ActionFilterConditionOperatorNotrContain = 3  // does not contain
	ActionFilterConditionOperatorIN          = 4  // in
	ActionFilterConditionOperatorGE          = 5  // >=
	ActionFilterConditionOperatorLE          = 6  // <=
	ActionFilterConditionOperatorNotIn       = 7  // not in
	ActionFilterConditionOperatorMatches     = 8  // matches
	ActionFilterConditionOperatorNotMatches  = 9  // does not match
	ActionFilterConditionOperatorYes         = 10 // yes
	ActionFilterConditionOperatorNo          = 11 // no
)

For `ActionFilterConditionObject` field: `Operator`

View Source
const (
	HistoryObjectTypeFloat           = 0
	HistoryObjectTypeCharacter       = 1
	HistoryObjectTypeLog             = 2
	HistoryObjectTypeNumericUnsigned = 3
	HistoryObjectTypeText            = 4
)

For `HistoryGetParams` field: `History`

View Source
const (
	HostAvailableUnknown     = 0
	HostAvailableAvailable   = 1
	HostAvailableUnavailable = 2
)

For `HostObject` field: `Available`

View Source
const (
	HostFlagsPlain      = 0
	HostFlagsDiscovered = 4
)

For `HostObject` field: `Flags`

View Source
const (
	HostInventoryModeDisabled  = -1
	HostInventoryModeManual    = 0
	HostInventoryModeAutomatic = 1
)

For `HostObject` field: `Flags`

View Source
const (
	HostIpmiAuthtypeDefault  = -1
	HostIpmiAuthtypeNone     = 0
	HostIpmiAuthtypeMD2      = 1
	HostIpmiAuthtypeMD5      = 2
	HostIpmiAuthtypeStraight = 4
	HostIpmiAuthtypeOEM      = 5
	HostIpmiAuthtypeRMCP     = 6
)

For `HostObject` field: `IpmiAuthtype`

View Source
const (
	HostIpmiAvailableUnknown     = 0
	HostIpmiAvailableAvailable   = 1
	HostIpmiAvailableUnavailable = 2
)

For `HostObject` field: `IpmiAvailable`

View Source
const (
	HostIpmiPrivilegeCallback = 1
	HostIpmiPrivilegeUser     = 2
	HostIpmiPrivilegeOperator = 3
	HostIpmiPrivilegeAdmin    = 4
	HostIpmiPrivilegeOEM      = 5
)

For `HostObject` field: `IpmiPrivilege`

View Source
const (
	HostJmxAvailableUnknown     = 0
	HostJmxAvailableAvailable   = 1
	HostJmxAvailableUnavailable = 2
)

For `HostObject` field: `JmxAvailable`

View Source
const (
	HostMaintenanceStatusDisable = 0
	HostMaintenanceStatusEnable  = 1
)

For `HostObject` field: `MaintenanceStatus`

View Source
const (
	HostMaintenanceTypeDataCollectionEnabled  = 0
	HostMaintenanceTypeDataCollectionDisabled = 1
)

For `HostObject` field: `MaintenanceType`

View Source
const (
	HostSnmpAvailableUnknown     = 0
	HostSnmpAvailableAvailable   = 1
	HostSnmpAvailableUnavailable = 2
)

For `HostObject` field: `SnmpAvailable`

View Source
const (
	HostStatusMonitored   = 0
	HostStatusUnmonitored = 1
)

For `HostObject` field: `Status`

View Source
const (
	TLSConnectNoEncryption = 1
	TLSConnectPSK          = 2
	TLSConnectCertificate  = 4
)

For `HostObject` field: `TLSConnect`

View Source
const (
	TLSAcceptNoEncryption = 1
	TLSAcceptPSK          = 2
	TLSAcceptCertificate  = 4
)

For `HostObject` field: `TLSAccept`

View Source
const (
	HostEvaltypeAndOr = 0
	HostEvaltypeOr    = 2
)

For `HostGetParams` field: `Evaltype`

View Source
const (
	HostTagOperatorContains = 0
	HostTagOperatorEquals   = 1
)

For `HostTag` field: `Operator`

View Source
const (
	HostgroupFlagsPlain       = 0
	HostgroupFlagsDiscrovered = 4
)

For `HostgroupObject` field: `Status`

View Source
const (
	HostgroupInternalFalse = 0
	HostgroupInternalTrue  = 1
)

For `HostgroupObject` field: `Internal`

View Source
const (
	HostinterfaceMainNotDefault = 0
	HostinterfaceMainDefault    = 1
)

For `HostinterfaceObject` field: `Main`

View Source
const (
	HostinterfaceTypeAgent = 1
	HostinterfaceTypeSNMP  = 2
	HostinterfaceTypeIPMI  = 3
	HostinterfaceTypeJMX   = 4
)

For `HostinterfaceObject` field: `Type`

View Source
const (
	HostinterfaceUseipDNS = 0
	HostinterfaceUseipIP  = 1
)

For `HostinterfaceObject` field: `UseIP`

View Source
const (
	HostinterfaceDetailsTagBulkDontUse = 0
	HostinterfaceDetailsTagBulkUse     = 1
)

For `HostinterfaceDetailsTagObject` field: `Bulk`

View Source
const (
	HostinterfaceDetailsTagVersionSNMPv1  = 1
	HostinterfaceDetailsTagVersionSNMPv2c = 2
	HostinterfaceDetailsTagVersionSNMPv3  = 3
)

For `HostinterfaceDetailsTagObject` field: `Version`

View Source
const (
	HostinterfaceDetailsTagSecurityLevelNoAuthNoPriv = 0
	HostinterfaceDetailsTagSecurityLevelAuthNoPriv   = 1
	HostinterfaceDetailsTagSecurityLevelAuthPriv     = 2
)

For `HostinterfaceDetailsTagObject` field: `SecurityLevel`

View Source
const (
	HostinterfaceDetailsTagAuthProtocolMD5 = 0
	HostinterfaceDetailsTagAuthProtocolSHA = 1
)

For `HostinterfaceDetailsTagObject` field: `AuthProtocol`

View Source
const (
	HostinterfaceDetailsTagPrivProtocolDES = 0
	HostinterfaceDetailsTagPrivProtocolAES = 1
)

For `HostinterfaceDetailsTagObject` field: `PrivProtocol`

View Source
const (
	MediatypeEmail   = 0
	MediatypeScript  = 1
	MediatypeSMS     = 2
	MediatypeWebhook = 4
)

For `MediatypeObject` field: `Type`

View Source
const (
	MediatypeSMTPSecurityNone     = 0
	MediatypeSMTPSecuritySTARTTLS = 1
	MediatypeSMTPSecuritySSLTLS   = 2
)

For `MediatypeObject` field: `SMTPSecurity`

View Source
const (
	MediatypeSMTPVerifyHostNo  = 0
	MediatypeSMTPVerifyHostYes = 1
)

For `MediatypeObject` field: `SMTPVerifyHost`

View Source
const (
	MediatypeSMTPVerifyPeerNo  = 0
	MediatypeSMTPVerifyPeerYes = 1
)

For `MediatypeObject` field: `SMTPVerifyPeer`

View Source
const (
	MediatypeSMTPAuthenticationNone           = 0
	MediatypeSMTPAuthenticationNormalPassword = 1
)

For `MediatypeObject` field: `SMTPAuthentication`

View Source
const (
	MediatypeStatusEnabled  = 0
	MediatypeScriptDisabled = 1
)

For `MediatypeObject` field: `Status`

View Source
const (
	MediatypeContentTypePlainText = 0
	MediatypeContentTypeHTML      = 1
)

For `MediatypeObject` field: `ContentType`

View Source
const (
	MediatypeProcessTagsNo  = 0
	MediatypeProcessTagsYes = 1
)

For `MediatypeObject` field: `ProcessTags`

View Source
const (
	MediatypeShowEventMenuNo  = 0
	MediatypeShowEventMenuYes = 1
)

For `MediatypeObject` field: `ShowEventMenu`

View Source
const (
	MediatypeMessageTemplateEventSourceTriggers         = 0
	MediatypeMessageTemplateEventSourceDiscovery        = 1
	MediatypeMessageTemplateEventSourceAutoregistration = 2
	MediatypeMessageTemplateEventSourceInternal         = 3
)

For `MediatypeMessageTemplateObject` field: `EventSource`

View Source
const (
	MediatypeMessageTemplateRecoveryOperations         = 0
	MediatypeMessageTemplateRecoveryRecoveryOperations = 1
	MediatypeMessageTemplateRecoveryUpdateOperations   = 2
)

For `MediatypeMessageTemplateObject` field: `Recovery`

View Source
const (
	TemplateEvaltypeAndOr = 0
	TemplateEvaltypeOr    = 2
)

For `TemplateGetParams` field: `Evaltype`

View Source
const (
	TemplateTagOperatorContains = 0
	TemplateTagOperatorEquals   = 1
)

For `TemplateTag` field: `Operator`

View Source
const (
	UserAutoLoginDisabled = 0
	UserAutoLoginEnabled  = 1
)

For `UserObject` field: `AutoLogin`

View Source
const (
	UserThemeDefault = "default"
	UserThemeBlue    = "blue-theme"
	UserThemeDark    = "dark-theme"
)

For `UserObject` field: `Theme`

View Source
const (
	UserTypeUser       = 1
	UserTypeAdmin      = 2
	UserTypeSuperAdmin = 3
)

For `UserObject` field: `Type`

View Source
const (
	MediaActiveEnabled  = 0
	MediaActiveDisabled = 1
)

For `MediaObject` field: `Active`

View Source
const (
	UsergroupDebugModeDisabled = 0
	UsergroupDebugModeEnabled  = 1
)

For `UsergroupObject` field: `DebugMode`

View Source
const (
	UsergroupGuiAccessSystemDefaultAuth = 0
	UsergroupGuiAccessInternalAuth      = 1
	UsergroupGuiAccessLDAPAuth          = 2
	UsergroupGuiAccessDisableFrontend   = 3
)

For `UsergroupObject` field: `GuiAccess`

View Source
const (
	UsergroupUsersStatusEnabled  = 0
	UsergroupUsersStatusDisabled = 1
)

For `UsergroupObject` field: `UsersStatus`

View Source
const (
	UsergroupPermissionDenied = 0
	UsergroupPermissionRO     = 2
	UsergroupPermissionRW     = 3
)

For `UsergroupPermissionObject` field: `Permission`

View Source
const (
	UsermacroTypeText   = 0
	UsermacroTypeSecret = 1
)

For `UsermacroObject` field: `Type`

View Source
const (
	SelectExtendedOutput = "extend"
	SelectCount          = "count"
)

Zabbix select constants

View Source
const (
	GetParametersSortOrderASC  = "ASC"
	GetParametersSortOrderDESC = "DESC"
)

For `GetParameters` field: `SortOrder`

View Source
const (
	ActionOperationConditionOperatorEq = 0
)

For `ActionOperationConditionObject` field: `Operator`

View Source
const (
	ActionOperationConditionTypeEventAcknowledged = 14
)

For `ActionOperationConditionObject` field: `ConditionType`

Variables

This section is empty.

Functions

This section is empty.

Types

type ActionFilterConditionObject

type ActionFilterConditionObject struct {
	ConditionID   int    `json:"conditionid,omitempty"`
	ConditionType int    `json:"conditiontype"` // has defined consts, see above
	Value         string `json:"value"`
	Value2        string `json:"value2,omitempty"`
	ActionID      int    `json:"actionid,omitempty"`
	FormulaID     string `json:"formulaid,omitempty"`
	Operator      int    `json:"operator,omitempty"` // has defined consts, see above
}

ActionFilterConditionObject struct is used to store action filter conditions

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_filter_condition

type ActionFilterObject

type ActionFilterObject struct {
	Conditions  []ActionFilterConditionObject `json:"conditions"`
	EvalType    int                           `json:"evaltype"` // has defined consts, see above
	EvalFormula string                        `json:"eval_formula,omitempty"`
	Formula     string                        `json:"formula,omitempty"`
}

ActionFilterObject struct is used to store action filters

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_filter

type ActionGetParams

type ActionGetParams struct {
	GetParameters

	ActionIDs    []int `json:"actionids,omitempty"`
	GroupIDs     []int `json:"groupids,omitempty"`
	HostIDs      []int `json:"hostids,omitempty"`
	TriggerIDs   []int `json:"triggerids,omitempty"`
	MediatypeIDs []int `json:"mediatypeids,omitempty"`
	UsrgrpIDs    []int `json:"usrgrpids,omitempty"`
	UserIDs      []int `json:"userids,omitempty"`
	ScriptIDs    []int `json:"scriptids,omitempty"`

	SelectFilter             SelectQuery `json:"selectFilter,omitempty"`
	SelectOperations         SelectQuery `json:"selectOperations,omitempty"`
	SelectRecoveryOperations SelectQuery `json:"selectRecoveryOperations,omitempty"`
	SelectUpdateOperations   SelectQuery `json:"selectUpdateOperations,omitempty"`
}

ActionGetParams struct is used for action get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/get#parameters

type ActionObject

type ActionObject struct {
	ActionID        int    `json:"actionid,omitempty"`
	EscPeriod       int    `json:"esc_period"`
	Eventsource     int    `json:"eventsource"`
	Name            string `json:"name"`
	Status          int    `json:"status,omitempty"`           // has defined consts, see above
	PauseSuppressed int    `json:"pause_suppressed,omitempty"` // has defined consts, see above

	Operations            []ActionOperationObject         `json:"operations,omitempty"`
	Filter                ActionFilterObject              `json:"filter,omitempty"`
	RecoveryOperations    []ActionRecoveryOperationObject `json:"recovery_operations,omitempty"`
	AcknowledgeOperations []ActionRecoveryOperationObject `json:"acknowledge_operations,omitempty"`
}

ActionObject struct is used to store action operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action

type ActionOpcommandGrpObject

type ActionOpcommandGrpObject struct {
	OpcommandGrpID int `json:"opcommand_grpid,omitempty"`
	OperationID    int `json:"operationid,omitempty"`
	GroupID        int `json:"groupid,omitempty"`
}

ActionOpcommandGrpObject struct is used to store action opcommand groups

type ActionOpcommandHstObject

type ActionOpcommandHstObject struct {
	OpcommandHstID int `json:"opcommand_hstid,omitempty"`
	OperationID    int `json:"operationid,omitempty"`
	HostID         int `json:"hostid,omitempty"`
}

ActionOpcommandHstObject struct is used to store action opcommand hosts

type ActionOperationCommandObject

type ActionOperationCommandObject struct {
	Command    string `json:"command"`
	Type       int    `json:"type"`                 // has defined consts, see above
	AuthType   int    `json:"authtype,omitempty"`   // has defined consts, see above
	ExecuteOn  int    `json:"execute_on,omitempty"` // has defined consts, see above
	Password   string `json:"password,omitempty"`
	Port       string `json:"port,omitempty"`
	PrivateKey string `json:"privatekey,omitempty"`
	PublicKey  string `json:"publickey,omitempty"`
	ScriptID   int    `json:"scriptid,omitempty"`
	UserName   string `json:"username,omitempty"`
}

ActionOperationCommandObject struct is used to store action operation commands

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_operation_command

type ActionOperationConditionObject

type ActionOperationConditionObject struct {
	OpconditionID int    `json:"opconditionid,omitempty"`
	ConditionType int    `json:"conditiontype"` // has defined consts, see above
	Value         string `json:"value"`
	OperationID   int    `json:"operationid,omitempty"`
	Operator      int    `json:"operator,omitempty"`
}

ActionOperationConditionObject struct is used to store action operation conditions

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_operation_condition

type ActionOperationMessageObject

type ActionOperationMessageObject struct {
	DefaultMsg  int    `json:"default_msg,omitempty"` // has defined consts, see above
	MediatypeID int    `json:"mediatypeid,omitempty"`
	Message     string `json:"message,omitempty"`
	Subject     string `json:"subject,omitempty"`
}

ActionOperationMessageObject struct is used to store action operation messages

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_operation_message

type ActionOperationObject

type ActionOperationObject struct {
	OperationID   int                              `json:"operationid,omitempty"`
	OperationType int                              `json:"operationtype"` // has defined consts, see above
	ActionID      int                              `json:"actionid,omitempty"`
	EscPeriod     int                              `json:"esc_period,omitempty"`
	EscStepFrom   int                              `json:"esc_step_from,omitempty"`
	EscStepTo     int                              `json:"esc_step_to,omitempty"`
	EvalType      int                              `json:"evaltype,omitempty"` // has defined consts, see above
	Opcommand     ActionOperationCommandObject     `json:"opcommand,omitempty"`
	OpcommandGrp  []ActionOpcommandGrpObject       `json:"opcommand_grp,omitempty"`
	OpcommandHst  []ActionOpcommandHstObject       `json:"opcommand_hst,omitempty"`
	Opconditions  []ActionOperationConditionObject `json:"opconditions,omitempty"`
	Opgroup       []ActionOpgroupObject            `json:"opgroup,omitempty"`
	Opmessage     ActionOperationMessageObject     `json:"opmessage,omitempty"`
	OpmessageGrp  []ActionOpmessageGrpObject       `json:"opmessage_grp,omitempty"`
	OpmessageUsr  []ActionOpmessageUsrObject       `json:"opmessage_usr,omitempty"`
	Optemplate    []ActionOptemplateObject         `json:"optemplate,omitempty"`
	Opinventory   ActionOpinventoryObject          `json:"opinventory,omitempty"`
}

ActionOperationObject struct is used to store action operations

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_operation

type ActionOpgroupObject

type ActionOpgroupObject struct {
	OperationID int `json:"operationid,omitempty"`
	GroupID     int `json:"groupid,omitempty"`
}

ActionOpgroupObject struct is used to store action opgroups

type ActionOpinventoryObject

type ActionOpinventoryObject struct {
	OperationID   int `json:"operationid,omitempty"`
	InventoryMode int `json:"inventory_mode,omitempty"`
}

ActionOpinventoryObject struct is used to store action opinventory

type ActionOpmessageGrpObject

type ActionOpmessageGrpObject struct {
	OperationID int `json:"operationid,omitempty"`
	UsrgrpID    int `json:"usrgrpid,omitempty"`
}

ActionOpmessageGrpObject struct is used to store action opmessage groups

type ActionOpmessageUsrObject

type ActionOpmessageUsrObject struct {
	OperationID int `json:"operationid,omitempty"`
	UserID      int `json:"userid,omitempty"`
}

ActionOpmessageUsrObject struct is used to store action opmessage users

type ActionOptemplateObject

type ActionOptemplateObject struct {
	OperationID int `json:"operationid,omitempty"`
	TemplateID  int `json:"templateid,omitempty"`
}

ActionOptemplateObject struct is used to store action optemplates

type ActionRecoveryOperationObject

type ActionRecoveryOperationObject struct {
	OperationID   int                          `json:"operationid"`
	OperationType int                          `json:"operationtype,omitempty"` // has defined consts, see above
	ActionID      int                          `json:"actionid,omitempty"`
	Opcommand     ActionOperationCommandObject `json:"opcommand,omitempty"`
	OpcommandGrp  []ActionOpcommandGrpObject   `json:"opcommand_grp,omitempty"`
	OpcommandHst  []ActionOpcommandHstObject   `json:"opcommand_hst,omitempty"`
	Opmessage     ActionOperationMessageObject `json:"opmessage,omitempty"`
	OpmessageGrp  []ActionOpmessageGrpObject   `json:"opmessage_grp,omitempty"`
	OpmessageUsr  []ActionOpmessageUsrObject   `json:"opmessage_usr,omitempty"`
}

ActionRecoveryOperationObject struct is used to store action recovery operations

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_recovery_operation

type ActionUpdateOperationObject

type ActionUpdateOperationObject struct {
	OperationID   int                          `json:"operationid"`
	OperationType int                          `json:"operationtype,omitempty"` // has defined consts, see above
	Opcommand     ActionOperationCommandObject `json:"opcommand,omitempty"`
	OpcommandGrp  []ActionOpcommandGrpObject   `json:"opcommand_grp,omitempty"`
	OpcommandHst  []ActionOpcommandHstObject   `json:"opcommand_hst,omitempty"`
	Opmessage     ActionOperationMessageObject `json:"opmessage,omitempty"`
	OpmessageGrp  []ActionOpmessageGrpObject   `json:"opmessage_grp,omitempty"`
	OpmessageUsr  []ActionOpmessageUsrObject   `json:"opmessage_usr,omitempty"`
}

ActionUpdateOperationObject struct is used to store action update operations

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_update_operation

type Context

type Context struct {
	// contains filtered or unexported fields
}

Context struct is used for store settings to communicate with Zabbix API

func (*Context) ActionCreate

func (z *Context) ActionCreate(params []ActionObject) ([]int, int, error)

ActionCreate creates actions

func (*Context) ActionDelete

func (z *Context) ActionDelete(actionIDs []int) ([]int, int, error)

ActionDelete deletes actions

func (*Context) ActionGet

func (z *Context) ActionGet(params ActionGetParams) ([]ActionObject, int, error)

ActionGet gets actions

func (*Context) GlobalmacroCreate

func (z *Context) GlobalmacroCreate(params []UsermacroObject) ([]int, int, error)

GlobalmacroCreate creates new globalmacros

func (*Context) GlobalmacroDelete

func (z *Context) GlobalmacroDelete(globalmacroIDs []int) ([]int, int, error)

GlobalmacroDelete deletes globalmacros

func (*Context) HistoryGet

func (z *Context) HistoryGet(params HistoryGetParams) (interface{}, int, error)

HistoryGet gets history

func (*Context) HostCreate

func (z *Context) HostCreate(params []HostObject) ([]int, int, error)

HostCreate creates hosts

func (*Context) HostDelete

func (z *Context) HostDelete(hostIDs []int) ([]int, int, error)

HostDelete deletes hosts

func (*Context) HostGet

func (z *Context) HostGet(params HostGetParams) ([]HostObject, int, error)

HostGet gets hosts

func (*Context) HostUpdate

func (z *Context) HostUpdate(params []HostObject) ([]int, int, error)

HostUpdate updates hosts

func (*Context) HostgroupCreate

func (z *Context) HostgroupCreate(params []HostgroupObject) ([]int, int, error)

HostgroupCreate creates hostgroups

func (*Context) HostgroupDelete

func (z *Context) HostgroupDelete(groupIDs []int) ([]int, int, error)

HostgroupDelete deletes hostgroups

func (*Context) HostgroupGet

func (z *Context) HostgroupGet(params HostgroupGetParams) ([]HostgroupObject, int, error)

HostgroupGet gets hostgroups

func (*Context) HostinterfaceCreate

func (z *Context) HostinterfaceCreate(params []HostinterfaceObject) ([]int, int, error)

HostinterfaceCreate creates hostinterfaces

func (*Context) HostinterfaceDelete

func (z *Context) HostinterfaceDelete(hostinterfaceIDs []int) ([]int, int, error)

HostinterfaceDelete deletes hostinterfaces

func (*Context) HostinterfaceGet

func (z *Context) HostinterfaceGet(params HostinterfaceGetParams) ([]HostinterfaceObject, int, error)

HostinterfaceGet gets hostinterfaces

func (*Context) HostmacroCreate

func (z *Context) HostmacroCreate(params []UsermacroObject) ([]int, int, error)

HostmacroCreate creates new hostmacros

func (*Context) HostmacroDelete

func (z *Context) HostmacroDelete(hostmacroIDs []int) ([]int, int, error)

HostmacroDelete deletes hostmacros

func (*Context) ItemGet

func (z *Context) ItemGet(params ItemGetParameters) ([]ItemObject, int, error)

func (*Context) Login

func (z *Context) Login(host, user, password string) error

Login gets the Zabbix session

func (*Context) Logout

func (z *Context) Logout() error

Logout destroys the Zabbix session

func (*Context) MediatypeCreate

func (z *Context) MediatypeCreate(params []MediatypeObject) ([]int, int, error)

MediatypeCreate creates mediatypes

func (*Context) MediatypeDelete

func (z *Context) MediatypeDelete(mediatypeIDs []int) ([]int, int, error)

MediatypeDelete deletes mediatypes

func (*Context) MediatypeGet

func (z *Context) MediatypeGet(params MediatypeGetParams) ([]MediatypeObject, int, error)

MediatypeGet gets mediatypes

func (*Context) ProblemGet

func (z *Context) ProblemGet(params ProblemGetParams) ([]ProblemObject, int, error)

ProblemGet gets problems

func (*Context) TemplateCreate

func (z *Context) TemplateCreate(params []TemplateObject) ([]int, int, error)

TemplateCreate creates templates

func (*Context) TemplateDelete

func (z *Context) TemplateDelete(templateIDs []int) ([]int, int, error)

TemplateDelete deletes templates

func (*Context) TemplateGet

func (z *Context) TemplateGet(params TemplateGetParams) ([]TemplateObject, int, error)

TemplateGet gets templates

func (*Context) UserCreate

func (z *Context) UserCreate(params []UserObject) ([]int, int, error)

UserCreate creates users

func (*Context) UserDelete

func (z *Context) UserDelete(userIDs []int) ([]int, int, error)

UserDelete deletes users

func (*Context) UserGet

func (z *Context) UserGet(params UserGetParams) ([]UserObject, int, error)

UserGet gets users

func (*Context) UsergroupCreate

func (z *Context) UsergroupCreate(params []UsergroupObject) ([]int, int, error)

UsergroupCreate creates usergroups

func (*Context) UsergroupDelete

func (z *Context) UsergroupDelete(usergroupIDs []int) ([]int, int, error)

UsergroupDelete deletes usergroups

func (*Context) UsergroupGet

func (z *Context) UsergroupGet(params UsergroupGetParams) ([]UsergroupObject, int, error)

UsergroupGet gets usergroups

func (*Context) UsergroupUpdate

func (z *Context) UsergroupUpdate(params []UsergroupObject) ([]int, int, error)

UsergroupUpdate updates usergroups

func (*Context) UsermacroGet

func (z *Context) UsermacroGet(params UsermacroGetParams) ([]UsermacroObject, int, error)

UsermacroGet gets global or host macros according to the given parameters

type EventAcknowledgeActionType

type EventAcknowledgeActionType int64
const (
	EventAcknowledgeActionTypeClose                  EventAcknowledgeActionType = 1
	EventAcknowledgeActionTypeAck                    EventAcknowledgeActionType = 2
	EventAcknowledgeActionTypeAddMessage             EventAcknowledgeActionType = 4
	EventAcknowledgeActionTypeChangeSeverity         EventAcknowledgeActionType = 8
	EventAcknowledgeActionTypeUnack                  EventAcknowledgeActionType = 16
	EventAcknowledgeActionTypeSuppress               EventAcknowledgeActionType = 32
	EventAcknowledgeActionTypeUnsuppress             EventAcknowledgeActionType = 64
	EventAcknowledgeActionTypeChangeEventRankCause   EventAcknowledgeActionType = 128
	EventAcknowledgeActionTypeChangeEventRankSymptom EventAcknowledgeActionType = 256
)

type GetParameters

type GetParameters struct {
	CountOutput            bool                   `json:"countOutput,omitempty"`
	Editable               bool                   `json:"editable,omitempty"`
	ExcludeSearch          bool                   `json:"excludeSearch,omitempty"`
	Filter                 map[string]interface{} `json:"filter,omitempty"`
	Limit                  int                    `json:"limit,omitempty"`
	Output                 SelectQuery            `json:"output,omitempty"`
	PreserveKeys           bool                   `json:"preservekeys,omitempty"`
	Search                 map[string]string      `json:"search,omitempty"`
	SearchByAny            bool                   `json:"searchByAny,omitempty"`
	SearchWildcardsEnabled bool                   `json:"searchWildcardsEnabled,omitempty"`
	SortField              []string               `json:"sortfield,omitempty"`
	SortOrder              []string               `json:"sortorder,omitempty"` // has defined consts, see above
	StartSearch            bool                   `json:"startSearch,omitempty"`
}

GetParameters struct is used as embedded struct for some other structs within package

see for details: https://www.zabbix.com/documentation/5.0/manual/api/reference_commentary#common_get_method_parameters

type Header struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

Header represents an HTTP header object.

type HistoryFloatObject

type HistoryFloatObject struct {
	Clock  int     `json:"clock,omitempty"`
	ItemID int     `json:"itemid,omitempty"`
	NS     int     `json:"ns,omitempty"`
	Value  float64 `json:"value,omitempty"`
}

HistoryFloatObject struct is used to store history float operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/history/object#float_history

type HistoryGetParams

type HistoryGetParams struct {
	GetParameters

	History  int   `json:"history"` // has defined consts, see above
	HostIDs  []int `json:"hostids,omitempty"`
	ItemIDs  []int `json:"itemids,omitempty"`
	TimeFrom int   `json:"time_from,omitempty"`
	TimeTill int   `json:"time_till,omitempty"`

	Sortfield string `json:"sortfield,omitempty"`
}

HistoryGetParams struct is used for history get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/history/get#parameters

type HistoryIntegerObject

type HistoryIntegerObject struct {
	Clock  int `json:"clock,omitempty"`
	ItemID int `json:"itemid,omitempty"`
	NS     int `json:"ns,omitempty"`
	Value  int `json:"value,omitempty"`
}

HistoryIntegerObject struct is used to store history integer operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/history/object#integer_history

type HistoryLogObject

type HistoryLogObject struct {
	ID         int    `json:"id,omitempty"`
	Clock      int    `json:"clock,omitempty"`
	ItemID     int    `json:"itemid,omitempty"`
	LogeventID int    `json:"logeventid,omitempty"`
	NS         int    `json:"ns,omitempty"`
	Severity   int    `json:"severity,omitempty"`
	Source     int    `json:"source,omitempty"`
	Timestamp  int    `json:"timestamp,omitempty"`
	Value      string `json:"value,omitempty"`
}

HistoryLogObject struct is used to store history log operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/history/object#log_history

type HistoryStringObject

type HistoryStringObject struct {
	Clock  int    `json:"clock,omitempty"`
	ItemID int    `json:"itemid,omitempty"`
	NS     int    `json:"ns,omitempty"`
	Value  string `json:"value,omitempty"`
}

HistoryStringObject struct is used to store history string operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/history/object#string_history

type HistoryTextObject

type HistoryTextObject struct {
	ID     int    `json:"id,omitempty"`
	Clock  int    `json:"clock,omitempty"`
	ItemID int    `json:"itemid,omitempty"`
	NS     int    `json:"ns,omitempty"`
	Value  string `json:"value,omitempty"`
}

HistoryTextObject struct is used to store history text operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/history/object#text_history

type HostGetParams

type HostGetParams struct {
	GetParameters

	GroupIDs       []int `json:"groupids,omitempty"`
	ApplicationIDs []int `json:"applicationids,omitempty"`
	DserviceIDs    []int `json:"dserviceids,omitempty"`
	GraphIDs       []int `json:"graphids,omitempty"`
	HostIDs        []int `json:"hostids,omitempty"`
	HttptestIDs    []int `json:"httptestids,omitempty"`
	InterfaceIDs   []int `json:"interfaceids,omitempty"`
	ItemIDs        []int `json:"itemids,omitempty"`
	MaintenanceIDs []int `json:"maintenanceids,omitempty"`
	MonitoredHosts bool  `json:"monitored_hosts,omitempty"`
	ProxyHosts     bool  `json:"proxy_hosts,omitempty"`
	ProxyIDs       []int `json:"proxyids,omitempty"`
	TemplatedHosts bool  `json:"templated_hosts,omitempty"`
	TemplateIDs    []int `json:"templateids,omitempty"`
	TriggerIDs     []int `json:"triggerids,omitempty"`

	WithItems                     bool            `json:"with_items,omitempty"`
	WithItemPrototypes            bool            `json:"with_item_prototypes,omitempty"`
	WithSimpleGraphItemPrototypes bool            `json:"with_simple_graph_item_prototypes,omitempty"`
	WithApplications              bool            `json:"with_applications,omitempty"`
	WithGraphs                    bool            `json:"with_graphs,omitempty"`
	WithGraphPrototypes           bool            `json:"with_graph_prototypes,omitempty"`
	WithHttptests                 bool            `json:"with_httptests,omitempty"`
	WithMonitoredHttptests        bool            `json:"with_monitored_httptests,omitempty"`
	WithMonitoredItems            bool            `json:"with_monitored_items,omitempty"`
	WithMonitoredTriggers         bool            `json:"with_monitored_triggers,omitempty"`
	WithSimpleGraphItems          bool            `json:"with_simple_graph_items,omitempty"`
	WithTriggers                  bool            `json:"with_triggers,omitempty"`
	WithProblemsSuppressed        bool            `json:"withProblemsSuppressed,omitempty"`
	Evaltype                      int             `json:"evaltype,omitempty"` // has defined consts, see above
	Severities                    []int           `json:"severities,omitempty"`
	Tags                          []HostTagObject `json:"tags,omitempty"`
	InheritedTags                 bool            `json:"inheritedTags,omitempty"`

	// SelectApplications    SelectQuery `json:"selectApplications,omitempty"` // not implemented yet
	// SelectDiscoveries     SelectQuery `json:"selectDiscoveries,omitempty"` // not implemented yet
	// SelectDiscoveryRule   SelectQuery `json:"selectDiscoveryRule ,omitempty"` // not implemented yet
	// SelectGraphs          SelectQuery `json:"selectGraphs,omitempty"` // not implemented yet
	SelectGroups SelectQuery `json:"selectGroups,omitempty"`
	// SelectHostDiscovery   SelectQuery `json:"selectHostDiscovery ,omitempty"` // not implemented yet
	// SelectHTTPTests       SelectQuery `json:"selectHttpTests,omitempty"` // not implemented yet
	SelectInterfaces SelectQuery `json:"selectInterfaces,omitempty"`
	// SelectInventory       SelectQuery `json:"selectInventory,omitempty"` // not implemented yet
	// SelectItems           SelectQuery `json:"selectItems,omitempty"` // not implemented yet
	SelectMacros          SelectQuery `json:"selectMacros,omitempty"`
	SelectParentTemplates SelectQuery `json:"selectParentTemplates,omitempty"`
	// SelectScreens         SelectQuery `json:"selectScreens,omitempty"` // not implemented yet
	SelectTags          SelectQuery `json:"selectTags,omitempty"`
	SelectInheritedTags SelectQuery `json:"selectInheritedTags,omitempty"`
}

HostGetParams struct is used for host get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/host/get#parameters

type HostObject

type HostObject struct {
	HostID            int    `json:"hostid,omitempty"`
	Host              string `json:"host,omitempty"`
	Available         int    `json:"available,omitempty"` // has defined consts, see above
	Description       string `json:"description,omitempty"`
	DisableUntil      int    `json:"disable_until,omitempty"`
	Error             string `json:"error,omitempty"`
	ErrorsFrom        int    `json:"errors_from,omitempty"`
	Flags             int    `json:"flags,omitempty"`          // has defined consts, see above
	InventoryMode     int    `json:"inventory_mode,omitempty"` // has defined consts, see above
	IpmiAuthtype      int    `json:"ipmi_authtype,omitempty"`  // has defined consts, see above
	IpmiAvailable     int    `json:"ipmi_available,omitempty"` // has defined consts, see above
	IpmiDisableUntil  int    `json:"ipmi_disable_until,omitempty"`
	IpmiError         string `json:"ipmi_error,omitempty"`
	IpmiErrorsFrom    int    `json:"ipmi_errors_from,omitempty"`
	IpmiPassword      string `json:"ipmi_password,omitempty"`
	IpmiPrivilege     int    `json:"ipmi_privilege,omitempty"` // has defined consts, see above
	IpmiUsername      string `json:"ipmi_username,omitempty"`
	JmxAvailable      int    `json:"jmx_available,omitempty"` // has defined consts, see above
	JmxDisableUntil   int    `json:"jmx_disable_until,omitempty"`
	JmxError          string `json:"jmx_error,omitempty"`
	JmxErrorsFrom     int    `json:"jmx_errors_from,omitempty"`
	MaintenanceFrom   int    `json:"maintenance_from,omitempty"`
	MaintenanceStatus int    `json:"maintenance_status,omitempty"` // has defined consts, see above
	MaintenanceType   int    `json:"maintenance_type,omitempty"`   // has defined consts, see above
	MaintenanceID     int    `json:"maintenanceid,omitempty"`
	Name              string `json:"name,omitempty"`
	ProxyHostID       int    `json:"proxy_hostid,omitempty"`
	SnmpAvailable     int    `json:"snmp_available,omitempty"` // has defined consts, see above
	SnmpDisableUntil  int    `json:"snmp_disable_until,omitempty"`
	SnmpError         string `json:"snmp_error,omitempty"`
	SnmpErrorsFrom    int    `json:"snmp_errors_from,omitempty"`
	Status            int    `json:"status,omitempty"`      // has defined consts, see above
	TLSConnect        int    `json:"tls_connect,omitempty"` // has defined consts, see above
	TLSAccept         int    `json:"tls_accept,omitempty"`  // has defined consts, see above
	TLSIssuer         string `json:"tls_issuer,omitempty"`
	TLSSubject        string `json:"tls_subject,omitempty"`
	TLSPSKIdentity    string `json:"tls_psk_identity,omitempty"`
	TLSPSK            string `json:"tls_psk,omitempty"`

	Groups          []HostgroupObject     `json:"groups,omitempty"`
	Interfaces      []HostinterfaceObject `json:"interfaces,omitempty"`
	Tags            []HostTagObject       `json:"tags,omitempty"`
	InheritedTags   []HostTagObject       `json:"inheritedTags,omitempty"`
	Macros          []UsermacroObject     `json:"macros,omitempty"`
	Templates       []TemplateObject      `json:"templates,omitempty"`       // Used for `create` operations
	ParentTemplates []TemplateObject      `json:"parentTemplates,omitempty"` // Used to store result for `get` operations
}

HostObject struct is used to store host operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/host/object#host

type HostTagObject

type HostTagObject struct {
	Tag   string `json:"tag"`
	Value string `json:"value,omitempty"`

	Operator int `json:"operator,omitempty"` // Used for `get` operations, has defined consts, see above
}

HostTagObject struct is used to store host tag

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/host/object#host_tag

type HostgroupGetParams

type HostgroupGetParams struct {
	GetParameters

	GraphIDs       []int `json:"graphids,omitempty"`
	GroupIDs       []int `json:"groupids,omitempty"`
	HostIDs        []int `json:"hostids,omitempty"`
	MaintenanceIDs []int `json:"maintenanceids,omitempty"`
	MonitoredHosts bool  `json:"monitored_hosts,omitempty"`
	RealHosts      bool  `json:"real_hosts,omitempty"`
	TemplatedHosts bool  `json:"templated_hosts,omitempty"`
	TemplateIDs    []int `json:"templateids,omitempty"`
	TriggerIDs     []int `json:"triggerids,omitempty"`

	WithApplications              bool `json:"with_applications,omitempty"`
	WithGraphs                    bool `json:"with_graphs,omitempty"`
	WithGraphPrototypes           bool `json:"with_graph_prototypes,omitempty"`
	WithHostsAndTemplates         bool `json:"with_hosts_and_templates,omitempty"`
	WithHttptests                 bool `json:"with_httptests,omitempty"`
	WithItems                     bool `json:"with_items,omitempty"`
	WithItemPrototypes            bool `json:"with_item_prototypes,omitempty"`
	WithSimpleGraphItemPrototypes bool `json:"with_simple_graph_item_prototypes,omitempty"`
	WithMonitoredHttptests        bool `json:"with_monitored_httptests,omitempty"`
	WithMonitoredItems            bool `json:"with_monitored_items,omitempty"`
	WithMonitoredTriggers         bool `json:"with_monitored_triggers,omitempty"`
	WithSimpleGraphItems          bool `json:"with_simple_graph_items,omitempty"`
	WithTriggers                  bool `json:"with_triggers,omitempty"`

	// SelectDiscoveryRule  SelectQuery `json:"selectDiscoveryRule,omitempty"` // not implemented yet
	// SelectGroupDiscovery SelectQuery `json:"selectGroupDiscovery,omitempty"` // not implemented yet
	SelectHosts     SelectQuery `json:"selectHosts,omitempty"`
	SelectTemplates SelectQuery `json:"selectTemplates,omitempty"`
}

HostgroupGetParams struct is used for hostgroup get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/hostgroup/get#parameters

type HostgroupObject

type HostgroupObject struct {
	GroupID  int    `json:"groupid,omitempty"`
	Name     string `json:"name,omitempty"`
	Flags    int    `json:"flags,omitempty"`    // has defined consts, see above
	Internal int    `json:"internal,omitempty"` // has defined consts, see above

	Hosts     []HostObject     `json:"hosts,omitempty"`
	Templates []TemplateObject `json:"templates,omitempty"`
}

HostgroupObject struct is used to store hostgroup operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/hostgroup/object

type HostinterfaceDetailsTagObject

type HostinterfaceDetailsTagObject struct {
	Version        int    `json:"version,omitempty"` // has defined consts, see above
	Bulk           int    `json:"bulk,omitempty"`    // has defined consts, see above
	Community      string `json:"community,omitempty"`
	SecurityName   string `json:"securityname,omitempty"`
	SecurityLevel  int    `json:"securitylevel,omitempty"` // has defined consts, see above
	AuthPassPhrase string `json:"authpassphrase,omitempty"`
	PrivPassPhrase string `json:"privpassphrase,omitempty"`
	AuthProtocol   int    `json:"authprotocol,omitempty"` // has defined consts, see above
	PrivProtocol   int    `json:"privprotocol,omitempty"` // has defined consts, see above
	ContextName    string `json:"contextname,omitempty"`
}

HostinterfaceDetailsTagObject struct is used to store hostinterface details

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/hostinterface/object#details_tag

type HostinterfaceGetParams

type HostinterfaceGetParams struct {
	GetParameters

	HostIDs      []int `json:"hostids,omitempty"`
	InterfaceIDs []int `json:"interfaceids,omitempty"`
	ItemIDs      []int `json:"itemids,omitempty"`
	TriggerIDs   []int `json:"triggerids,omitempty"`

	// SelectItems SelectQuery `json:"selectItems,omitempty"` // not implemented yet
	SelectHosts SelectQuery `json:"selectHosts,omitempty"`
}

HostinterfaceGetParams struct is used for hostinterface get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/hostinterface/get#parameters

type HostinterfaceObject

type HostinterfaceObject struct {
	InterfaceID int                             `json:"interfaceid,omitempty"`
	DNS         string                          `json:"dns"`
	HostID      int                             `json:"hostid,omitempty"`
	IP          string                          `json:"ip"`
	Main        int                             `json:"main"` // has defined consts, see above
	Port        string                          `json:"port"`
	Type        int                             `json:"type"`  // has defined consts, see above
	UseIP       int                             `json:"useip"` // has defined consts, see above
	Details     []HostinterfaceDetailsTagObject `json:"details,omitempty"`

	// Items []ItemObject `json:"items,omitempty"` // not implemented yet
	Hosts []HostObject `json:"hosts,omitempty"`
}

HostinterfaceObject struct is used to store hostinterface operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/hostinterface/object#hostinterface

type ItemGetParameters

type ItemGetParameters struct {
	GetParameters
	ItemIDs             []string    `json:"itemids,omitempty"`
	GroupIDs            []string    `json:"groupids,omitempty"`
	TemplateIDs         []string    `json:"templateids,omitempty"`
	HostIDs             []string    `json:"hostids,omitempty"`
	ProxyIDs            []string    `json:"proxyids,omitempty"`
	InterfaceIDs        []string    `json:"interfaceids,omitempty"`
	GraphIDs            []string    `json:"graphids,omitempty"`
	TriggerIDs          []string    `json:"triggerids,omitempty"`
	ApplicationIDs      []string    `json:"applicationids,omitempty"`
	WebItems            bool        `json:"webitems,omitempty"`
	Inherited           bool        `json:"inherited,omitempty"`
	Templated           bool        `json:"templated,omitempty"`
	Monitored           bool        `json:"monitored,omitempty"`
	Group               string      `json:"group,omitempty"`
	Host                string      `json:"host,omitempty"`
	Application         string      `json:"application,omitempty"`
	WithTriggers        bool        `json:"with_triggers,omitempty"`
	SelectHosts         SelectQuery `json:"selectHosts,omitempty"`
	SelectInterfaces    SelectQuery `json:"selectInterfaces,omitempty"`
	SelectTriggers      SelectQuery `json:"selectTriggers,omitempty"`
	SelectGraphs        SelectQuery `json:"selectGraphs,omitempty"`
	SelectApplications  SelectQuery `json:"selectApplications,omitempty"`
	SelectDiscoveryRule SelectQuery `json:"selectDiscoveryRule,omitempty"`
	SelectItemDiscovery SelectQuery `json:"selectItemDiscovery,omitempty"`
	SelectPreprocessing SelectQuery `json:"selectPreprocessing,omitempty"`
	LimitSelects        int         `json:"limitSelects,omitempty"`
}

ItemGetParams struct is used for item get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/item/get#parameters

type ItemObject

type ItemObject struct {
	ItemID               string              `json:"itemid,omitempty"`
	Type                 int                 `json:"type"`
	SNMPCommunity        string              `json:"snmp_community,omitempty"`
	SNMPOID              string              `json:"snmp_oid,omitempty"`
	HostID               string              `json:"hostid"`
	Name                 string              `json:"name"`
	Key                  string              `json:"key_"`
	Delay                string              `json:"delay"`
	History              string              `json:"history,omitempty"`
	Trends               string              `json:"trends,omitempty"`
	Status               int                 `json:"status"`
	ValueType            int                 `json:"value_type"`
	AllowedHosts         string              `json:"allowed_hosts,omitempty"`
	Units                string              `json:"units,omitempty"`
	Delta                int                 `json:"delta"`
	Snmpv3Contextname    string              `json:"snmpv3_contextname,omitempty"`
	Snmpv3SecurityName   string              `json:"snmpv3_securityname,omitempty"`
	Snmpv3SecurityLevel  int                 `json:"snmpv3_securitylevel,omitempty"`
	Snmpv3AuthPassphrase string              `json:"snmpv3_authpassphrase,omitempty"`
	Snmpv3PrivPassphrase string              `json:"snmpv3_privpassphrase,omitempty"`
	Params               string              `json:"params,omitempty"`
	IPMIAuthType         int                 `json:"ipmi_auth_type,omitempty"`
	IPMIPrivilege        int                 `json:"ipmi_privilege,omitempty"`
	IPMIUsername         string              `json:"ipmi_username,omitempty"`
	IPMIPassword         string              `json:"ipmi_password,omitempty"`
	DelayFlex            string              `json:"delay_flex,omitempty"`
	ParamsEscaped        string              `json:"params_escaped,omitempty"`
	InventoryLink        int                 `json:"inventory_link,omitempty"`
	Description          string              `json:"description,omitempty"`
	Lifetime             string              `json:"lifetime,omitempty"`
	Filter               string              `json:"filter,omitempty"`
	DataType             int                 `json:"data_type,omitempty"`
	ValueMapID           string              `json:"valuemapid,omitempty"`
	LogTimeFormat        string              `json:"logtimefmt,omitempty"`
	JmxEndpoint          string              `json:"jmx_endpoint,omitempty"`
	MasterItemID         string              `json:"master_itemid,omitempty"`
	Timeout              string              `json:"timeout,omitempty"`
	URL                  string              `json:"url,omitempty"`
	QueryFields          []QueryField        `json:"query_fields,omitempty"`
	Posts                string              `json:"posts,omitempty"`
	StatusCodes          string              `json:"status_codes,omitempty"`
	FollowRedirects      int                 `json:"follow_redirects,omitempty"`
	PostType             int                 `json:"post_type,omitempty"`
	HTTPProxy            string              `json:"http_proxy,omitempty"`
	Headers              []Header            `json:"headers,omitempty"`
	RetrieveMode         int                 `json:"retrieve_mode,omitempty"`
	RequestMethod        string              `json:"request_method,omitempty"`
	OutputFormat         string              `json:"output_format,omitempty"`
	SSLVerifyPeer        int                 `json:"ssl_verify_peer,omitempty"`
	SSLVerifyHost        int                 `json:"ssl_verify_host,omitempty"`
	VerifyHost           int                 `json:"verify_host,omitempty"`
	SSLKeyFile           string              `json:"ssl_key_file,omitempty"`
	SSLCertFile          string              `json:"ssl_cert_file,omitempty"`
	SSLCAFile            string              `json:"ssl_ca_file,omitempty"`
	SNMPTrapType         int                 `json:"snmptrap_type,omitempty"`
	SNMPTrapPort         int                 `json:"snmptrap_port,omitempty"`
	SNMPCommunity2       string              `json:"snmp_community2,omitempty"`
	SNMPTrapOid          string              `json:"snmptrap_oid,omitempty"`
	SNMPTrapComm2        string              `json:"snmptrap_comm2,omitempty"`
	SNMPTrapOID2         string              `json:"snmptrap_oid2,omitempty"`
	SNMPTrapV1Comm2      string              `json:"snmptrap_v1_comm2,omitempty"`
	SNMPTrapV1OID2       string              `json:"snmptrap_v1_oid2,omitempty"`
	SNMPTrapV1Comm1      string              `json:"snmptrap_v1_comm1,omitempty"`
	SNMPTrapV1OID1       string              `json:"snmptrap_v1_oid1,omitempty"`
	PreprocessingSteps   []PreprocessingStep `json:"preprocessing_steps,omitempty"`
	IsItemPrototype      bool                `json:"is_item_prototype,omitempty"`
}

ItemObject struct is used to store item operations result

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/item/object

type MediaObject

type MediaObject struct {
	MediaID     int      `json:"mediaid,omitempty"`
	MediaTypeID int      `json:"mediatypeid,omitempty"`
	SendTo      []string `json:"sendto,omitempty"`
	Active      int      `json:"active,omitempty"` // has defined consts, see above
	Severity    int      `json:"severity,omitempty"`
	Period      string   `json:"period,omitempty"`
}

MediaObject struct is used to store media operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/user/object#media

type MediatypeGetParams

type MediatypeGetParams struct {
	GetParameters

	MediatypeIDs []int `json:"mediatypeids,omitempty"`
	MediaIDs     []int `json:"mediaids,omitempty"`
	UserIDs      []int `json:"userids,omitempty"`

	SelectMessageTemplates SelectQuery `json:"selectMessageTemplates,omitempty"`
	SelectUsers            SelectQuery `json:"selectUsers,omitempty"`
}

MediatypeGetParams struct is used for mediatype get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/mediatype/get#parameters

type MediatypeMessageTemplateObject

type MediatypeMessageTemplateObject struct {
	EventSource int    `json:"eventsource"` // has defined consts, see above
	Recovery    int    `json:"recovery"`    // has defined consts, see above
	Subject     string `json:"subject,omitempty"`
	Message     string `json:"message,omitempty"`
}

MediatypeMessageTemplateObject struct is used for mediatypes message template

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/mediatype/object#message_template

type MediatypeObject

type MediatypeObject struct {
	MediatypeID        int                                `json:"mediatypeid,omitempty"`
	Name               string                             `json:"name,omitempty"`
	Type               int                                `json:"type,omitempty"` // has defined consts, see above
	ExecPath           string                             `json:"exec_path,omitempty"`
	GsmModem           string                             `json:"gsm_modem,omitempty"`
	Passwd             string                             `json:"passwd,omitempty"`
	SMTPEmail          string                             `json:"smtp_email,omitempty"`
	SMTPHelo           string                             `json:"smtp_helo,omitempty"`
	SMTPServer         string                             `json:"smtp_server,omitempty"`
	SMTPPort           int                                `json:"smtp_port,omitempty"`
	SMTPSecurity       int                                `json:"smtp_security,omitempty"`       // has defined consts, see above
	SMTPVerifyHost     int                                `json:"smtp_verify_host,omitempty"`    // has defined consts, see above
	SMTPVerifyPeer     int                                `json:"smtp_verify_peer,omitempty"`    // has defined consts, see above
	SMTPAuthentication int                                `json:"smtp_authentication,omitempty"` // has defined consts, see above
	Status             int                                `json:"status,omitempty"`              // has defined consts, see above
	Username           string                             `json:"username,omitempty"`
	ExecParams         string                             `json:"exec_params,omitempty"`
	MaxSessions        int                                `json:"maxsessions,omitempty"`
	MaxAttempts        int                                `json:"maxattempts,omitempty"`
	AttemptInterval    string                             `json:"attempt_interval,omitempty"`
	ContentType        int                                `json:"content_type,omitempty"` // has defined consts, see above
	Script             string                             `json:"script,omitempty"`
	Timeout            string                             `json:"timeout,omitempty"`
	ProcessTags        int                                `json:"process_tags,omitempty"`    // has defined consts, see above
	ShowEventMenu      int                                `json:"show_event_menu,omitempty"` // has defined consts, see above
	EventMenuURL       string                             `json:"event_menu_url,omitempty"`
	EventMenuName      string                             `json:"event_menu_name,omitempty"`
	Parameters         []MediatypeWebhookParametersObject `json:"parameters,omitempty"`
	Description        string                             `json:"description,omitempty"`
	MessageTemplates   []MediatypeMessageTemplateObject   `json:"message_templates,omitempty"`

	Users []UserObject `json:"users,omitempty"`
}

MediatypeObject struct is used to store mediatype operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/mediatype/object

type MediatypeWebhookParametersObject

type MediatypeWebhookParametersObject struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

MediatypeWebhookParametersObject struct is used for mediatypes webhook parameters

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/mediatype/object#webhook_parameters

type PreprocessingStep

type PreprocessingStep struct {
	Type               int    `json:"type"`
	Params             string `json:"params"`
	ErrorHandler       int    `json:"error_handler"`
	ErrorHandlerParams string `json:"error_handler_params"`
}

PreprocessingStep represents a preprocessing step object.

type ProblemAcknowledgeObject

type ProblemAcknowledgeObject struct {
	AcknowledgeID int64                      `json:"acknowledgeid,omitempty"`
	UserID        int64                      `json:"userid,omitempty"`
	EventID       int64                      `json:"eventid,omitempty"`
	Clock         int64                      `json:"clock,omitempty"`
	Message       string                     `json:"message,omitempty"`
	Action        EventAcknowledgeActionType `json:"action,omitempty"`
	OldSeverity   ProblemSeverityType        `json:"old_severity,omitempty"`
	NewSeverity   ProblemSeverityType        `json:"new_severity,omitempty"`
	SuppressUntil int64                      `json:"suppress_until,omitempty"`
	TaskID        int64                      `json:"taskid,omitempty"`
}

type ProblemAcknowledgeType

type ProblemAcknowledgeType int64
const (
	ProblemAcknowledgeTypeFalse ProblemAcknowledgeType = 0
	ProblemAcknowledgeTypeTrue  ProblemAcknowledgeType = 1
)

type ProblemEvalType

type ProblemEvalType int64
const (
	ProblemEvalTypeAndOr ProblemEvalType = 0
	ProblemEvalTypeOR    ProblemEvalType = 2
)

type ProblemGetParams

type ProblemGetParams struct {
	GetParameters

	EventIDs              []int64               `json:"eventids,omitempty"`
	GroupIDs              []int64               `json:"groupids,omitempty"`
	HostIDs               []int64               `json:"hostids,omitempty"`
	ObjectIDs             []int64               `json:"objectids,omitempty"`
	ApplicationIDs        []int64               `json:"applicationids,omitempty"`
	Source                ProblemSourceType     `json:"source,omitempty"`
	Object                ProblemObjectType     `json:"object,omitempty"`
	Acknowledged          bool                  `json:"acknowledged,omitempty"`
	Suppressed            bool                  `json:"suppressed,omitempty"`
	Severities            []ProblemSeverityType `json:"severities,omitempty"`
	Evaltype              ProblemEvalType       `json:"evaltype,omitempty"`
	Tags                  []ProblemTagObject    `json:"tags,omitempty"`
	Recent                bool                  `json:"recent,omitempty"`
	EventIDFrom           int64                 `json:"eventid_from,omitempty"`
	EventIDTill           int64                 `json:"eventid_till,omitempty"`
	TimeFrom              int64                 `json:"time_from,omitempty"`
	TimeTill              int64                 `json:"time_till,omitempty"`
	SelectAcknowledges    SelectQuery           `json:"selectAcknowledges,omitempty"`
	SelectTags            SelectQuery           `json:"selectTags,omitempty"`
	SelectSuppressionData SelectQuery           `json:"selectSuppressionData,omitempty"`
	SortField             []string              `json:"sortfield,omitempty"`
}

ProblemGetParams struct is used for problem get requests

see: https://www.zabbix.com/documentation/5.0/en/manual/api/reference/problem/get#parameters

type ProblemMediaTypeURLObject

type ProblemMediaTypeURLObject struct {
	Name string `json:"name,omitempty"`
	URL  string `json:"url,omitempty"`
}

type ProblemObject

type ProblemObject struct {
	EventID       int64                       `json:"eventid,omitempty"`
	Source        ProblemSourceType           `json:"source,omitempty"`
	Object        ProblemObjectType           `json:"object,omitempty"`
	ObjectID      int64                       `json:"objectid,omitempty"`
	Clock         int64                       `json:"clock,omitempty"`
	Ns            int64                       `json:"ns,omitempty"`
	REventID      int64                       `json:"r_eventid,omitempty"`
	RClock        int64                       `json:"r_clock,omitempty"`
	RNs           int64                       `json:"r_ns,omitempty"`
	CauseEventID  int64                       `json:"cause_eventid,omitempty"`
	CorrelationID int64                       `json:"correlationid,omitempty"`
	UserID        int64                       `json:"userid,omitempty"`
	Name          string                      `json:"name,omitempty"`
	Acknowledged  ProblemAcknowledgeType      `json:"acknowledged,omitempty"`
	Severity      ProblemSeverityType         `json:"severity,omitempty"`
	Suppressed    ProblemSuppressedType       `json:"suppressed,omitempty"`
	OpData        string                      `json:"opdata,omitempty"`
	URLs          []ProblemMediaTypeURLObject `json:"urls,omitempty"`
	Acknowledges  []ProblemAcknowledgeObject  `json:"acknowledges,omitempty"`
	Tags          []ProblemTagObject          `json:"tags,omitempty"`
	Suppression   []ProblemSuppressionObject  `json:"suppression_data,omitempty"`
}

ProblemObject struct is used to store problem operations results

see: https://www.zabbix.com/documentation/5.0/en/manual/api/reference/problem/object

type ProblemObjectType

type ProblemObjectType int64
const (
	ProblemObjectTypeTrigger ProblemObjectType = 0
	ProblemObjectTypeItem    ProblemObjectType = 4
	ProblemObjectTypeLLDRule ProblemObjectType = 5
	ProblemObjectTypeService ProblemObjectType = 6
)

type ProblemSeverityType

type ProblemSeverityType int64
const (
	ProblemSeverityTypeNotClassified ProblemSeverityType = 0
	ProblemSeverityTypeInformation   ProblemSeverityType = 1
	ProblemSeverityTypeWarning       ProblemSeverityType = 2
	ProblemSeverityTypeAverage       ProblemSeverityType = 3
	ProblemSeverityTypeHigh          ProblemSeverityType = 4
	ProblemSeverityTypeDisaster      ProblemSeverityType = 5
)

type ProblemSourceType

type ProblemSourceType int64
const (
	ProblemSourceTypeTrigger             ProblemSourceType = 0
	ProblemSourceTypeInternal            ProblemSourceType = 3
	ProblemSourceTypeServiceStatusUpdate ProblemSourceType = 4
)

type ProblemSuppressedType

type ProblemSuppressedType int64
const (
	ProblemSuppressedTypeNormalState ProblemSuppressedType = 0
	ProblemSuppressedTypeSuppressed  ProblemSuppressedType = 1
)

type ProblemSuppressionObject

type ProblemSuppressionObject struct {
	MaintenanceID int64 `json:"maintenanceid,omitempty"`
	UserID        int64 `json:"userid,omitempty"`
	SuppressUntil int64 `json:"suppress_until,omitempty"`
}

type ProblemTagObject

type ProblemTagObject struct {
	Tag   string `json:"tag,omitempty"`
	Value string `json:"value,omitempty"`
}

type QueryField

type QueryField struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

QueryField represents a query field object.

type SelectFields

type SelectFields []string

SelectFields is used as field type in some structs

type SelectQuery

type SelectQuery interface{}

SelectQuery is used as field type in some structs

type TemplateGetParams

type TemplateGetParams struct {
	GetParameters

	TemplateIDs       []int `json:"templateids,omitempty"`
	GroupIDs          []int `json:"groupids,omitempty"`
	ParentTemplateIDs []int `json:"parentTemplateids,omitempty"`
	HostIDs           []int `json:"hostids,omitempty"`
	GraphIDs          []int `json:"graphids,omitempty"`
	ItemIDs           []int `json:"itemids,omitempty"`
	TriggerIDs        []int `json:"triggerids,omitempty"`

	WithItems     bool                `json:"with_items,omitempty"`
	WithTriggers  bool                `json:"with_triggers,omitempty"`
	WithGraphs    bool                `json:"with_graphs,omitempty"`
	WithHttptests bool                `json:"with_httptests,omitempty"`
	Evaltype      int                 `json:"evaltype,omitempty"` // has defined consts, see above
	Tags          []TemplateTagObject `json:"tags,omitempty"`

	SelectGroups          SelectQuery `json:"selectGroups,omitempty"`
	SelectTags            SelectQuery `json:"selectTags,omitempty"`
	SelectHosts           SelectQuery `json:"selectHosts,omitempty"`
	SelectTemplates       SelectQuery `json:"selectTemplates,omitempty"`
	SelectParentTemplates SelectQuery `json:"selectParentTemplates,omitempty"`
	SelectMacros          SelectQuery `json:"selectMacros,omitempty"`
}

TemplateGetParams struct is used for template get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/template/get#parameters

type TemplateObject

type TemplateObject struct {
	TemplateID  int    `json:"templateid,omitempty"`
	Host        string `json:"host,omitempty"`
	Description string `json:"description,omitempty"`
	Name        string `json:"name,omitempty"`

	Groups          []HostgroupObject   `json:"groups,omitempty"`
	Tags            []TemplateTagObject `json:"tags,omitempty"`
	Templates       []TemplateObject    `json:"templates,omitempty"`
	ParentTemplates []TemplateObject    `json:"parentTemplates,omitempty"`
	Macros          []UsermacroObject   `json:"macros,omitempty"`
	Hosts           []HostObject        `json:"hosts,omitempty"`
}

TemplateObject struct is used to store template operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/template/object

type TemplateTagObject

type TemplateTagObject struct {
	Tag   string `json:"tag,omitempty"`
	Value string `json:"value,omitempty"`

	Operator int `json:"operator,omitempty"` // Used for `get` operations, has defined consts, see above
}

TemplateTagObject struct is used to store template tag data

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/template/object#template_tag

type UserDataObject

type UserDataObject struct {
	DebugMode bool   `json:"debug_mode,omitempty"`
	GUIAccess int    `json:"gui_access,omitempty"`
	SessionID string `json:"sessionid,omitempty"`
	UserIP    string `json:"userip,omitempty"`
}

UserDataObject struct is used to store authenticated user additional info

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/user/login#return_values

type UserGetParams

type UserGetParams struct {
	GetParameters

	MediaIDs     []int `json:"mediaids,omitempty"`
	NediatypeIDs []int `json:"mediatypeids,omitempty"`
	UserIDs      []int `json:"userids,omitempty"`
	UsrgrpIDs    []int `json:"usrgrpids,omitempty"`

	GetAccess        bool        `json:"getAccess,omitempty"`
	SelectMedias     SelectQuery `json:"selectMedias,omitempty"`
	SelectMediatypes SelectQuery `json:"selectMediatypes,omitempty"`
	SelectUsrgrps    SelectQuery `json:"selectUsrgrps,omitempty"`
}

UserGetParams struct is used for user get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/user/get#parameters

type UserLoginParams

type UserLoginParams struct {
	User     string `json:"user"`
	Password string `json:"password"`
	UserData string `json:"userData,omitempty"`
}

UserLoginParams struct is used for login requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/user/login#parameters

type UserObject

type UserObject struct {
	UserID        int    `json:"userid,omitempty"`
	Alias         string `json:"alias,omitempty"`
	AttemptClock  int    `json:"attempt_clock,omitempty"`
	AttemptFailed int    `json:"attempt_failed,omitempty"`
	AttemptIP     string `json:"attempt_ip,omitempty"`
	AutoLogin     int    `json:"autologin,omitempty"` // has defined consts, see above
	AutoLogout    string `json:"autologout"`
	Lang          string `json:"lang,omitempty"`
	Name          string `json:"name,omitempty"`
	Refresh       string `json:"refresh,omitempty"`
	RowsPerPage   int    `json:"rows_per_page,omitempty"`
	Surname       string `json:"surname,omitempty"`
	Theme         string `json:"theme,omitempty"` // has defined consts, see above
	Type          int    `json:"type,omitempty"`  // has defined consts, see above
	URL           string `json:"url,omitempty"`

	// used for user.login
	UserDataObject

	Medias     []MediaObject     `json:"medias,omitempty"`
	Mediatypes []MediatypeObject `json:"mediatypes,omitempty"`
	Usrgrps    []UsergroupObject `json:"usrgrps,omitempty"`

	// used when new user created
	UserMedias []MediaObject `json:"user_medias,omitempty"`
	Passwd     string        `json:"passwd,omitempty"`
}

UserObject struct is used to store user operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/user/object

type UsergroupGetParams

type UsergroupGetParams struct {
	GetParameters

	Status        []int `json:"status,omitempty"`
	UserIDs       []int `json:"userids,omitempty"`
	UsrgrpIDs     []int `json:"usrgrpids,omitempty"`
	WithGuiAccess []int `json:"with_gui_access,omitempty"`

	SelectTagFilters SelectQuery `json:"selectTagFilters,omitempty"`
	SelectUsers      SelectQuery `json:"selectUsers,omitempty"`
	SelectRights     SelectQuery `json:"selectRights,omitempty"`
}

UsergroupGetParams struct is used for usergroup get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/usergroup/get#parameters

type UsergroupObject

type UsergroupObject struct {
	UsrgrpID    int    `json:"usrgrpid,omitempty"`
	Name        string `json:"name,omitempty"`
	DebugMode   int    `json:"debug_mode,omitempty"`   // has defined consts, see above
	GuiAccess   int    `json:"gui_access,omitempty"`   // has defined consts, see above
	UsersStatus int    `json:"users_status,omitempty"` // has defined consts, see above

	Users      []UserObject                        `json:"users,omitempty"`
	Rights     []UsergroupPermissionObject         `json:"rights,omitempty"`
	TagFilters []UsergroupTagBasedPermissionObject `json:"tag_filters,omitempty"`

	// used when new usergroup created or updated
	UserIDs []int `json:"userids,omitempty"`
}

UsergroupObject struct is used to store usergroup operations results

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/usergroup/object#user_group

type UsergroupPermissionObject

type UsergroupPermissionObject struct {
	ID         int `json:"id"`
	Permission int `json:"permission"` // has defined consts, see above
}

UsergroupPermissionObject struct is used to store usergroup permissions

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/usergroup/object#permission

type UsergroupTagBasedPermissionObject

type UsergroupTagBasedPermissionObject struct {
	GroupID int    `json:"groupid,omitempty"`
	Tag     string `json:"tag,omitempty"`
	Value   string `json:"value,omitempty"`
}

UsergroupTagBasedPermissionObject struct is used to store usergroup tag based permission

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/usergroup/object#tag_based_permission

type UsermacroGetParams

type UsermacroGetParams struct {
	GetParameters

	Globalmacro    bool  `json:"globalmacro,omitempty"`
	GlobalmacroIDs []int `json:"globalmacroids,omitempty"`
	GroupIDs       []int `json:"groupids,omitempty"`
	HostIDs        []int `json:"hostids,omitempty"`
	HostmacroIDs   []int `json:"hostmacroids,omitempty"`
	TemplateIDs    []int `json:"templateids,omitempty"`

	SelectGroups    SelectQuery `json:"selectGroups,omitempty"`
	SelectHosts     SelectQuery `json:"selectHosts,omitempty"`
	SelectTemplates SelectQuery `json:"selectTemplates,omitempty"`
}

UsermacroGetParams struct is used for hostmacro get requests

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/usermacro/get#parameters

type UsermacroObject

type UsermacroObject struct {

	// Gobal macro fields only
	GlobalmacroID int `json:"globalmacroid,omitempty"`

	// Host macro fields only
	HostmacroID int `json:"hostmacroid,omitempty"`
	HostID      int `json:"hostid,omitempty"`

	// Common fields
	Macro       string `json:"macro,omitempty"`
	Value       string `json:"value,omitempty"`
	Type        int    `json:"type,omitempty"` // has defined consts, see above
	Description string `json:"description,omitempty"`

	Groups    []HostgroupObject `json:"groups,omitempty"`
	Hosts     []HostObject      `json:"hosts,omitempty"`
	Templates []TemplateObject  `json:"templates,omitempty"`
}

UsermacroObject struct is used to store hostmacro and globalmacro operations results. In API docs Global and Host it is a two different object types that are joined in this package into one object `UsermacroObject` that includes fields form both API objects. The reason is the some other objects do not separates this types.

see: https://www.zabbix.com/documentation/5.0/manual/api/reference/usermacro/object#host_macro and https://www.zabbix.com/documentation/5.0/manual/api/reference/usermacro/object#global_macro

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL