Selected agent's configuration to read. The configuration to read depends on the selected component. + The following table shows all available combinations of component and configuration values:
+Component | +Configuration | +Tag | +
---|---|---|
agent | +client | +<client> |
+
agent | +buffer | +<client_buffer> |
+
agent | +labels | +<labels> |
+
agent | +internal | +<agent> , <monitord> , <remoted> |
+
agentless | +agentless | +<agentless> |
+
analysis | +global | +<global> |
+
analysis | +active_response | +<active-response> |
+
analysis | +alerts | +<alerts> |
+
analysis | +command | +<command> |
+
analysis | +rules | +<rule> |
+
analysis | +decoders | +<decoder> |
+
analysis | +internal | +<analysisd> |
+
auth | +auth | +<auth> |
+
com | +active-response | +<active-response> |
+
com | +logging | +<logging> |
+
com | +internal | +<execd> |
+
com | +cluster | +<cluster> |
+
csyslog | +csyslog | +<csyslog_output> |
+
integrator | +integration | +<integration> |
+
logcollector | +localfile | +<localfile> |
+
logcollector | +socket | +<socket> |
+
logcollector | +internal | +<logcollector> |
+
global | +<global><email...> |
+ |
alerts | +<email_alerts> |
+ |
internal | +<maild> |
+ |
monitor | +internal | +<monitord> |
+
monitor | +internal | +<reports> |
+
request | +remote | +<remote> |
+
request | +internal | +<remoted> |
+
syscheck | +syscheck | +<syscheck> |
+
syscheck | +rootcheck | +<rootcheck> |
+
syscheck | +internal | +<syscheck> , <rootcheck> |
+
wmodules | +wmodules | +<wodle> |
+
/var/ossec
)"
+ required: True
+ schema:
+ type: string
+ format: wazuh_path
+ installer:
+ in: query
+ name: installer
+ description: "Installation script. Default is upgrade.sh
or upgrade.bat
for windows
+ agents"
+ schema:
+ type: string
+ format: alphanumeric
+ resource_list:
+ in: query
+ name: resource
+ description: List of current RBAC's resources.
+ schema:
+ type: string
+ enum:
+ - '*:*'
+ - 'agent:group'
+ - 'agent:id'
+ - 'group:id'
+ - 'node:id'
+ - 'file:path'
+ - 'decoder:file'
+ - 'list:path'
+ - 'rule:file'
+ - 'policy:id'
+ - 'role:id'
+ - 'user:id'
+
+tags:
+ - name: API Info
+ description: "Wazuh API information"
+ - name: Active-response
+ description: "Agents Active Response"
+ - name: Agents
+ description: "Agents management related operations"
+ - name: Ciscat
+ description: "Retrieve information from CIS-CAT scans"
+ - name: Cluster
+ description: "Wazuh cluster and nodes management"
+ - name: Decoders
+ description: "Decoders management"
+ - name: Experimental
+ description: "Not ready for production endpoints. Use with caution"
+ - name: Groups
+ description: "Group of agents and centralized configurations"
+ - name: Lists
+ description: "CDB lists management"
+ - name: Manager
+ description: "Wazuh manager management"
+ - name: Mitre
+ description: "Attacks information from MITRE database"
+ - name: Overview
+ description: "Overview of Wazuh"
+ - name: Rules
+ description: "Rules management"
+ - name: SCA
+ description: "Policy monitoring"
+ - name: Security
+ description: "Roles administration and user authentication management"
+ - name: Syscheck
+ description: "File integrity monitoring"
+ - name: Syscollector
+ description: "Syscollector information"
+
+security:
+ - jwt: []
+
+paths:
+ /:
+ get:
+ tags:
+ - API Info
+ summary: 'Get API info'
+ description: "Return basic information about the API"
+ operationId: api.controllers.default_controller.default_info
+ parameters:
+ - $ref: '#/components/parameters/pretty'
+ responses:
+ '200':
+ description: "API default info"
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ data:
+ $ref: '#/components/schemas/BasicInfo'
+ example:
+ title: "Wazuh API"
+ api_version: "v4.0.0"
+ revision: '40003'
+ license_name: "GPL 2.0"
+ license_url: "https://github.com/wazuh/wazuh/blob/4.0/LICENSE"
+ hostname: "wazuh"
+ timestamp: "2019-04-02T08:08:11+0000"
+
+ /active-response:
+ put:
+ tags:
+ - Active-response
+ summary: "Run command"
+ description: "Run an Active Response command on all agents or a list of them"
+ operationId: api.controllers.active_response_controller.run_command
+ x-rbac-actions:
+ - $ref: '#/x-rbac-catalog/actions/active-response:command'
+ parameters:
+ - $ref: '#/components/parameters/agents_list'
+ - $ref: '#/components/parameters/pretty'
+ - $ref: '#/components/parameters/wait_for_complete'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ActiveResponseBody'
+ responses:
+ '200':
+ description: "Command sent to agents"
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiResponse'
+ example:
+ data:
+ affected_items:
+ - "001"
+ - "002"
+ total_affected_items: 2
+ failed_items: []
+ total_failed_items: 0
+ message: 'AR command was sent to all agents'
+ error: 0
+ '400':
+ $ref: '#/components/responses/ResponseError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedResponse'
+ '403':
+ $ref: '#/components/responses/PermissionDeniedResponse'
+ '405':
+ $ref: '#/components/responses/InvalidHTTPMethodResponse'
+ '406':
+ $ref: '#/components/responses/WrongContentTypeResponse'
+ '413':
+ $ref: '#/components/responses/RequestTooLargeResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+
+ /agents:
+ delete:
+ tags:
+ - Agents
+ summary: "Delete agents"
+ description: "Delete agents with optional criteria based on the status or time of the last
+ connection"
+ operationId: api.controllers.agents_controller.delete_agents
+ x-rbac-actions:
+ - $ref: '#/x-rbac-catalog/actions/agent:delete'
+ parameters:
+ - $ref: '#/components/parameters/pretty'
+ - $ref: '#/components/parameters/wait_for_complete'
+ - $ref: '#/components/parameters/agents_list_delete'
+ - $ref: '#/components/parameters/purge'
+ - $ref: '#/components/parameters/statusAgentParam'
+ - $ref: '#/components/parameters/older_than'
+ responses:
+ '200':
+ description: "Delete agents"
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/ApiResponse'
+ - type: object
+ properties:
+ data:
+ allOf:
+ - $ref: '#/components/schemas/AllItemsResponseAgentIDs'
+ - type: object
+ properties:
+ older_than:
+ type: string
+ format: timeframe
+ description: "Return older than parameter used. It can be the default value or the
+ parameter sent by the user"
+ example:
+ data:
+ affected_items:
+ - '001'
+ - '002'
+ - '003'
+ older_than: 1s
+ total_affected_items: 3
+ message: 'All selected agents were deleted'
+ error: 0
+ '400':
+ $ref: '#/components/responses/ResponseError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedResponse'
+ '403':
+ $ref: '#/components/responses/PermissionDeniedResponse'
+ '405':
+ $ref: '#/components/responses/InvalidHTTPMethodResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ get:
+ tags:
+ - Agents
+ summary: "List agents"
+ description: "Return information about all available agents or a list of them"
+ operationId: api.controllers.agents_controller.get_agents
+ x-rbac-actions:
+ - $ref: '#/x-rbac-catalog/actions/agent:read'
+ parameters:
+ - $ref: '#/components/parameters/pretty'
+ - $ref: '#/components/parameters/wait_for_complete'
+ - $ref: '#/components/parameters/agents_list'
+ - $ref: '#/components/parameters/offset'
+ - $ref: '#/components/parameters/limit'
+ - $ref: '#/components/parameters/select'
+ - $ref: '#/components/parameters/sort'
+ - $ref: '#/components/parameters/search'
+ - $ref: '#/components/parameters/statusAgentParam'
+ - $ref: '#/components/parameters/query'
+ - $ref: '#/components/parameters/olderThanParam'
+ - $ref: '#/components/parameters/os.platform'
+ - $ref: '#/components/parameters/os.version'
+ - $ref: '#/components/parameters/os.name'
+ - $ref: '#/components/parameters/manager_host'
+ - $ref: '#/components/parameters/version'
+ - $ref: '#/components/parameters/agent_group'
+ - $ref: '#/components/parameters/node_name'
+ - $ref: '#/components/parameters/name'
+ - $ref: '#/components/parameters/ip'
+ - $ref: '#/components/parameters/registerIP'
+ responses:
+ '200':
+ description: "List of agents or error description"
+ content:
+ application/json:
+ schema:
+ allOf:
+ - $ref: '#/components/schemas/ApiResponse'
+ - type: object
+ properties:
+ data:
+ $ref: '#/components/schemas/AllItemsResponseAgents'
+ example:
+ data:
+ affected_items:
+ - configSum: 29e0926e5a77442212e824868a2a61df
+ dateAdd: '1970-01-01T00:00:00Z'
+ group:
+ - default
+ - group1
+ id: '001'
+ ip: 172.18.0.6
+ lastKeepAlive: '2019-10-16T09:13:34Z'
+ manager: wazuh-worker2
+ mergedSum: a13d9b2edc5bdd5ef7331c0d5b9ecf34
+ name: wazuh-agent1
+ node_name: worker2
+ os:
+ arch: x86_64
+ codename: Xenial Xerus
+ major: '16'
+ minor: '04'
+ name: Ubuntu
+ platform: ubuntu
+ uname: Linux |wazuh-agent1 |4.18.0-16-generic |#17~18.04.1-Ubuntu SMP Tue Feb
+ 12 13:35:51 UTC 2019 |x86_64
+ version: 16.04.6 LTS
+ registerIP: any
+ status: active
+ version: Wazuh v3.10.0
+ - configSum: e2f47d482da37c099fa1d6e4c43b523c
+ dateAdd: '1970-01-01T00:00:00Z'
+ group:
+ - default
+ - group2
+ id: '002'
+ ip: 172.18.0.7
+ lastKeepAlive: '2019-10-16T09:13:28Z'
+ manager: wazuh-worker2
+ mergedSum: d6fde33dc232d8f91359b2e98994c933
+ name: wazuh-agent2
+ node_name: worker2
+ os:
+ arch: x86_64
+ codename: Xenial Xerus
+ major: '16'
+ minor: '04'
+ name: Ubuntu
+ platform: ubuntu
+ uname: Linux |wazuh-agent2 |4.18.0-16-generic |#17~18.04.1-Ubuntu SMP Tue Feb
+ 12 13:35:51 UTC 2019 |x86_64
+ version: 16.04.6 LTS
+ registerIP: any
+ status: active
+ version: Wazuh v3.10.0
+ - configSum: dadc074e9a4f036c5d905c280c3b5bcc
+ dateAdd: '1970-01-01T00:00:00Z'
+ group:
+ - default
+ - group3
+ id: '003'
+ ip: 172.18.0.8
+ lastKeepAlive: '2019-10-16T09:13:29Z'
+ manager: wazuh-master
+ mergedSum: e40515ffa928c72ee167ed41d88245c4
+ name: wazuh-agent3
+ node_name: master-node
+ os:
+ arch: x86_64
+ codename: Xenial Xerus
+ major: '16'
+ minor: '04'
+ name: Ubuntu
+ platform: ubuntu
+ uname: Linux |wazuh-agent3 |4.18.0-16-generic |#17~18.04.1-Ubuntu SMP Tue Feb
+ 12 13:35:51 UTC 2019 |x86_64
+ version: 16.04.6 LTS
+ registerIP: any
+ status: active
+ version: Wazuh v3.10.0
+ total_affected_items: 3
+ message: 'All selected agents information was returned'
+ error: 0
+ '400':
+ $ref: '#/components/responses/ResponseError'
+ '401':
+ $ref: '#/components/responses/UnauthorizedResponse'
+ '403':
+ $ref: '#/components/responses/PermissionDeniedResponse'
+ '405':
+ $ref: '#/components/responses/InvalidHTTPMethodResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ post:
+ tags:
+ - Agents
+ summary: "Add agent"
+ description: "Add a new agent"
+ operationId: api.controllers.agents_controller.add_agent
+ x-rbac-actions:
+ - $ref: '#/x-rbac-catalog/actions/agent:create'
+ parameters:
+ - $ref: '#/components/parameters/pretty'
+ - $ref: '#/components/parameters/wait_for_complete'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ properties:
+ name:
+ description: "Agent name"
+ type: string
+ format: names
+ ip:
+ description: "If this is not included, the API will get the IP automatically. If you are behind a
+ proxy, you must set the option behind_proxy_server to yes at api.yaml and make sure the proxy is
+ setting HTTP header 'X-Forwarded-For' with origin IP address. Allowed values: IP, IP/NET, ANY"
+ type: string
+ format: alphanumeric
+ force_time:
+ description: "Remove the old agent with the same IP if disconnected since /var/ossec
)
+ FilePath FilePath `json:"file_path"`
+
+ // Installation script. Default is upgrade.sh
or upgrade.bat
for windows agents
+ Installer *Installer `json:"installer,omitempty"`
+}
+
+// AgentsControllerGetAgentUpgradeParams defines parameters for AgentsControllerGetAgentUpgrade.
+type AgentsControllerGetAgentUpgradeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Seconds to wait for the agent to respond
+ Timeout *int32 `json:"timeout,omitempty"`
+}
+
+// CiscatControllerGetAgentsCiscatResultsParams defines parameters for CiscatControllerGetAgentsCiscatResults.
+type CiscatControllerGetAgentsCiscatResultsParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by benchmark type
+ Benchmark *Benchmark `json:"benchmark,omitempty"`
+
+ // Filter by evaluated profile
+ Profile *Profile `json:"profile,omitempty"`
+
+ // Filter by passed checks
+ Pass *Pass `json:"pass,omitempty"`
+
+ // Filter by failed checks
+ Fail *Fail `json:"fail,omitempty"`
+
+ // Filter by encountered errors
+ Error *Error `json:"error,omitempty"`
+
+ // Filter by not checked
+ Notchecked *Notchecked `json:"notchecked,omitempty"`
+
+ // Filter by unknown results
+ Unknown *Unknown `json:"unknown,omitempty"`
+
+ // Filter by final score
+ Score *Score `json:"score,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// ClusterControllerGetApiConfigParams defines parameters for ClusterControllerGetApiConfig.
+type ClusterControllerGetApiConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of node IDs (separated by comma), all nodes selected by default if not specified
+ NodesList *NodesList `json:"nodes_list,omitempty"`
+}
+
+// ClusterControllerGetConfValidationParams defines parameters for ClusterControllerGetConfValidation.
+type ClusterControllerGetConfValidationParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of node IDs (separated by comma), all nodes selected by default if not specified
+ NodesList *NodesList `json:"nodes_list,omitempty"`
+}
+
+// ClusterControllerGetHealthcheckParams defines parameters for ClusterControllerGetHealthcheck.
+type ClusterControllerGetHealthcheckParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of node IDs (separated by comma), all nodes selected by default if not specified
+ NodesList *NodesList `json:"nodes_list,omitempty"`
+}
+
+// ClusterControllerGetConfigParams defines parameters for ClusterControllerGetConfig.
+type ClusterControllerGetConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetClusterNodeParams defines parameters for ClusterControllerGetClusterNode.
+type ClusterControllerGetClusterNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetClusterNodesParams defines parameters for ClusterControllerGetClusterNodes.
+type ClusterControllerGetClusterNodesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by node type
+ Type *NodeType `json:"type,omitempty"`
+
+ // List of node IDs (separated by comma), all nodes selected by default if not specified
+ NodesList *NodesList `json:"nodes_list,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// ClusterControllerPutRestartParams defines parameters for ClusterControllerPutRestart.
+type ClusterControllerPutRestartParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of node IDs (separated by comma), all nodes selected by default if not specified
+ NodesList *NodesList `json:"nodes_list,omitempty"`
+}
+
+// ClusterControllerGetStatusParams defines parameters for ClusterControllerGetStatus.
+type ClusterControllerGetStatusParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetConfigurationNodeParams defines parameters for ClusterControllerGetConfigurationNode.
+type ClusterControllerGetConfigurationNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Indicates the wazuh configuration section
+ Section *Section `json:"section,omitempty"`
+
+ // Indicate a section child. E.g, fields for *ruleset* section are: decoder_dir, rule_dir, etc
+ Field *Field `json:"field,omitempty"`
+}
+
+// ClusterControllerGetNodeConfigParams defines parameters for ClusterControllerGetNodeConfig.
+type ClusterControllerGetNodeConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerDeleteFilesNodeParams defines parameters for ClusterControllerDeleteFilesNode.
+type ClusterControllerDeleteFilesNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Filepath to delete file. (Relative to wazuh installation folder)
+ Path DeleteFilesPath `json:"path"`
+}
+
+// ClusterControllerGetFilesNodeParams defines parameters for ClusterControllerGetFilesNode.
+type ClusterControllerGetFilesNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Filepath to return file. (Relative to wazuh installation folder)
+ Path GetFilesPath `json:"path"`
+}
+
+// ClusterControllerPutFilesNodeParams defines parameters for ClusterControllerPutFilesNode.
+type ClusterControllerPutFilesNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Filepath to upload/edit file. (Relative to wazuh installation folder)
+ Path EditFilesPath `json:"path"`
+
+ // If set to false, an exception will be raised when updating contents of an already existing filename
+ Overwrite *Overwrite `json:"overwrite,omitempty"`
+}
+
+// ClusterControllerGetInfoNodeParams defines parameters for ClusterControllerGetInfoNode.
+type ClusterControllerGetInfoNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetLogNodeParams defines parameters for ClusterControllerGetLogNode.
+type ClusterControllerGetLogNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Wazuh component that logged the event
+ Tag *Tag `json:"tag,omitempty"`
+
+ // Filter by log level
+ Level *LogLevel `json:"level,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// ClusterControllerGetLogSummaryNodeParams defines parameters for ClusterControllerGetLogSummaryNode.
+type ClusterControllerGetLogSummaryNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetStatsNodeParams defines parameters for ClusterControllerGetStatsNode.
+type ClusterControllerGetStatsNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Date to obtain statistical information from. Format YYYY-MM-DD
+ Date *Date `json:"date,omitempty"`
+}
+
+// ClusterControllerGetStatsAnalysisdNodeParams defines parameters for ClusterControllerGetStatsAnalysisdNode.
+type ClusterControllerGetStatsAnalysisdNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetStatsHourlyNodeParams defines parameters for ClusterControllerGetStatsHourlyNode.
+type ClusterControllerGetStatsHourlyNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetStatsRemotedNodeParams defines parameters for ClusterControllerGetStatsRemotedNode.
+type ClusterControllerGetStatsRemotedNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetStatsWeeklyNodeParams defines parameters for ClusterControllerGetStatsWeeklyNode.
+type ClusterControllerGetStatsWeeklyNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ClusterControllerGetStatusNodeParams defines parameters for ClusterControllerGetStatusNode.
+type ClusterControllerGetStatusNodeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// DecodersControllerGetDecodersParams defines parameters for DecodersControllerGetDecoders.
+type DecodersControllerGetDecodersParams struct {
+
+ // Decoder name
+ DecoderNames *DecoderName `json:"decoder_names,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+
+ // Filter by filename
+ Filename *Filename `json:"filename,omitempty"`
+
+ // Filter by relative directory name
+ RelativeDirname *GetDirnamesPath `json:"relative_dirname,omitempty"`
+
+ // Filter by list status. Use commas to enter multiple statuses
+ Status *StatusRLDParam `json:"status,omitempty"`
+}
+
+// DecodersControllerGetDecodersFilesParams defines parameters for DecodersControllerGetDecodersFiles.
+type DecodersControllerGetDecodersFilesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Filter by filename
+ Filename *Filename `json:"filename,omitempty"`
+
+ // Filter by relative directory name
+ RelativeDirname *GetDirnamesPath `json:"relative_dirname,omitempty"`
+
+ // Filter by list status. Use commas to enter multiple statuses
+ Status *StatusRLDParam `json:"status,omitempty"`
+}
+
+// DecodersControllerGetDownloadFileParams defines parameters for DecodersControllerGetDownloadFile.
+type DecodersControllerGetDownloadFileParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// DecodersControllerGetDecodersParentsParams defines parameters for DecodersControllerGetDecodersParents.
+type DecodersControllerGetDecodersParentsParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+}
+
+// ExperimentalControllerGetCisCatResultsParams defines parameters for ExperimentalControllerGetCisCatResults.
+type ExperimentalControllerGetCisCatResultsParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by benchmark type
+ Benchmark *Benchmark `json:"benchmark,omitempty"`
+
+ // Filter by evaluated profile
+ Profile *Profile `json:"profile,omitempty"`
+
+ // Filter by passed checks
+ Pass *Pass `json:"pass,omitempty"`
+
+ // Filter by failed checks
+ Fail *Fail `json:"fail,omitempty"`
+
+ // Filter by encountered errors
+ Error *Error `json:"error,omitempty"`
+
+ // Filter by not checked
+ Notchecked *Notchecked `json:"notchecked,omitempty"`
+
+ // Filter by unknown results
+ Unknown *Unknown `json:"unknown,omitempty"`
+
+ // Filter by final score
+ Score *Score `json:"score,omitempty"`
+}
+
+// ExperimentalControllerClearSyscheckDatabaseParams defines parameters for ExperimentalControllerClearSyscheckDatabase.
+type ExperimentalControllerClearSyscheckDatabaseParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), use the keyword `all` to select all agents
+ AgentsList AgentsListDelete `json:"agents_list"`
+}
+
+// ExperimentalControllerGetHardwareInfoParams defines parameters for ExperimentalControllerGetHardwareInfo.
+type ExperimentalControllerGetHardwareInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by ram.free
+ RamFree *RamFree `json:"ram.free,omitempty"`
+
+ // Filter by ram.total
+ RamTotal *RamTotal `json:"ram.total,omitempty"`
+
+ // Filter by cpu.cores
+ CpuCores *CpuCores `json:"cpu.cores,omitempty"`
+
+ // Filter by cpu.mhz
+ CpuMhz *CpuMhz `json:"cpu.mhz,omitempty"`
+
+ // Filter by cpu.name
+ CpuName *CpuName `json:"cpu.name,omitempty"`
+
+ // Filter by board_serial
+ BoardSerial *BoardSerial `json:"board_serial,omitempty"`
+}
+
+// ExperimentalControllerGetHotfixesInfoParams defines parameters for ExperimentalControllerGetHotfixesInfo.
+type ExperimentalControllerGetHotfixesInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by hotfix
+ Hotfix *Hotfix `json:"hotfix,omitempty"`
+}
+
+// ExperimentalControllerGetNetworkAddressInfoParams defines parameters for ExperimentalControllerGetNetworkAddressInfo.
+type ExperimentalControllerGetNetworkAddressInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by IP protocol
+ Proto *Proto `json:"proto,omitempty"`
+
+ // Filter by IP address
+ Address *Address `json:"address,omitempty"`
+
+ // Filter by broadcast direction
+ Broadcast *Broadcast `json:"broadcast,omitempty"`
+
+ // Filter by netmask
+ Netmask *Netmask `json:"netmask,omitempty"`
+}
+
+// ExperimentalControllerGetNetworkInterfaceInfoParams defines parameters for ExperimentalControllerGetNetworkInterfaceInfo.
+type ExperimentalControllerGetNetworkInterfaceInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by agent name
+ Name *Name `json:"name,omitempty"`
+
+ // Filter by adapter
+ Adapter *Adapter `json:"adapter,omitempty"`
+
+ // Type of network
+ Type *TypeSyscollector `json:"type,omitempty"`
+
+ // Filter by state
+ State *State `json:"state,omitempty"`
+
+ // Filter by mtu
+ Mtu *Mtu `json:"mtu,omitempty"`
+
+ // Filter by tx.packets
+ TxPackets *TxPackets `json:"tx.packets,omitempty"`
+
+ // Filter by rx.packets
+ RxPackets *RxPackets `json:"rx.packets,omitempty"`
+
+ // Filter by tx.bytes
+ TxBytes *TxBytes `json:"tx.bytes,omitempty"`
+
+ // Filter by rx.bytes
+ RxBytes *RxBytes `json:"rx.bytes,omitempty"`
+
+ // Filter by tx.errors
+ TxErrors *TxErrors `json:"tx.errors,omitempty"`
+
+ // Filter by rx.errors
+ RxErrors *RxErrors `json:"rx.errors,omitempty"`
+
+ // Filter by tx.dropped
+ TxDropped *TxDropped `json:"tx.dropped,omitempty"`
+
+ // Filter by rx.dropped
+ RxDropped *RxDropped `json:"rx.dropped,omitempty"`
+}
+
+// ExperimentalControllerGetNetworkProtocolInfoParams defines parameters for ExperimentalControllerGetNetworkProtocolInfo.
+type ExperimentalControllerGetNetworkProtocolInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by network interface
+ Iface *Iface `json:"iface,omitempty"`
+
+ // Type of network
+ Type *TypeSyscollector `json:"type,omitempty"`
+
+ // Filter by network gateway
+ Gateway *Gateway `json:"gateway,omitempty"`
+
+ // Filter by network dhcp (enabled or disabled)
+ Dhcp *Dhcp `json:"dhcp,omitempty"`
+}
+
+// ExperimentalControllerGetOsInfoParams defines parameters for ExperimentalControllerGetOsInfo.
+type ExperimentalControllerGetOsInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by OS name
+ OsName *OsName `json:"os.name,omitempty"`
+
+ // Filter by architecture
+ Architecture *Architecture `json:"architecture,omitempty"`
+
+ // Filter by OS version
+ OsVersion *OsVersion `json:"os.version,omitempty"`
+
+ // Filter by agents version
+ Version *Version `json:"version,omitempty"`
+
+ // Filter by release
+ Release *Release `json:"release,omitempty"`
+}
+
+// ExperimentalControllerGetPackagesInfoParams defines parameters for ExperimentalControllerGetPackagesInfo.
+type ExperimentalControllerGetPackagesInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by vendor
+ Vendor *Vendor `json:"vendor,omitempty"`
+
+ // Filter by agent name
+ Name *Name `json:"name,omitempty"`
+
+ // Filter by architecture
+ Architecture *Architecture `json:"architecture,omitempty"`
+
+ // Filter by file format. For example 'deb' will output deb files
+ Format *FileFormat `json:"format,omitempty"`
+
+ // Filter by version name
+ Version *PackageVersion `json:"version,omitempty"`
+}
+
+// ExperimentalControllerGetPortsInfoParams defines parameters for ExperimentalControllerGetPortsInfo.
+type ExperimentalControllerGetPortsInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by pid
+ Pid *Pid `json:"pid,omitempty"`
+
+ // Filter by protocol
+ Protocol *Protocol `json:"protocol,omitempty"`
+
+ // Filter by Local IP
+ LocalIp *LocalIp `json:"local.ip,omitempty"`
+
+ // Filter by Local Port
+ LocalPort *LocalPort `json:"local.port,omitempty"`
+
+ // Filter by Remote IP
+ RemoteIp *RemoteIp `json:"remote.ip,omitempty"`
+
+ // Filter by tx_queue
+ TxQueue *TxQueue `json:"tx_queue,omitempty"`
+
+ // Filter by state
+ State *State `json:"state,omitempty"`
+
+ // Filter by process name
+ Process *Process `json:"process,omitempty"`
+}
+
+// ExperimentalControllerGetProcessesInfoParams defines parameters for ExperimentalControllerGetProcessesInfo.
+type ExperimentalControllerGetProcessesInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by process pid
+ Pid *ProcessPid `json:"pid,omitempty"`
+
+ // Filter by process state
+ State *ProcessState `json:"state,omitempty"`
+
+ // Filter by process parent pid
+ Ppid *Ppid `json:"ppid,omitempty"`
+
+ // Filter by process egroup
+ Egroup *Egroup `json:"egroup,omitempty"`
+
+ // Filter by process euser
+ Euser *Euser `json:"euser,omitempty"`
+
+ // Filter by process fgroup
+ Fgroup *Fgroup `json:"fgroup,omitempty"`
+
+ // Filter by process name
+ Name *ProcessName `json:"name,omitempty"`
+
+ // Filter by process nlwp
+ Nlwp *Nlwp `json:"nlwp,omitempty"`
+
+ // Filter by process pgrp
+ Pgrp *Pgrp `json:"pgrp,omitempty"`
+
+ // Filter by process priority
+ Priority *Priority `json:"priority,omitempty"`
+
+ // Filter by process rgroup
+ Rgroup *Rgroup `json:"rgroup,omitempty"`
+
+ // Filter by process ruser
+ Ruser *Ruser `json:"ruser,omitempty"`
+
+ // Filter by process sgroup
+ Sgroup *Sgroup `json:"sgroup,omitempty"`
+
+ // Filter by process suser
+ Suser *Suser `json:"suser,omitempty"`
+}
+
+// AgentsControllerDeleteGroupsParams defines parameters for AgentsControllerDeleteGroups.
+type AgentsControllerDeleteGroupsParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of group IDs (separated by comma), use the keyword 'all' to select all groups
+ GroupsList GroupsListDelete `json:"groups_list"`
+}
+
+// AgentsControllerGetListGroupParams defines parameters for AgentsControllerGetListGroup.
+type AgentsControllerGetListGroupParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // List of group IDs (separated by comma), all groups selected by default if not specified
+ GroupsList *GroupsList `json:"groups_list,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select algorithm to generate the returned checksums
+ Hash *Hash `json:"hash,omitempty"`
+}
+
+// AgentsControllerPostGroupParams defines parameters for AgentsControllerPostGroup.
+type AgentsControllerPostGroupParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Group ID. (Name of the group)
+ GroupId GroupIdQuery `json:"group_id"`
+}
+
+// AgentsControllerGetAgentsInGroupParams defines parameters for AgentsControllerGetAgentsInGroup.
+type AgentsControllerGetAgentsInGroupParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Filter by agent status (use commas to enter multiple statuses)
+ Status *StatusAgentParam `json:"status,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// AgentsControllerGetGroupConfigParams defines parameters for AgentsControllerGetGroupConfig.
+type AgentsControllerGetGroupConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+}
+
+// AgentsControllerPutGroupConfigParams defines parameters for AgentsControllerPutGroupConfig.
+type AgentsControllerPutGroupConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// AgentsControllerGetGroupFilesParams defines parameters for AgentsControllerGetGroupFiles.
+type AgentsControllerGetGroupFilesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select algorithm to generate the returned checksums
+ Hash *Hash `json:"hash,omitempty"`
+}
+
+// AgentsControllerGetGroupFileJsonParams defines parameters for AgentsControllerGetGroupFileJson.
+type AgentsControllerGetGroupFileJsonParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Type of file
+ Type *TypeAgents `json:"type,omitempty"`
+}
+
+// AgentsControllerGetGroupFileXmlParams defines parameters for AgentsControllerGetGroupFileXml.
+type AgentsControllerGetGroupFileXmlParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Type of file
+ Type *TypeAgents `json:"type,omitempty"`
+}
+
+// ListsControllerGetListsParams defines parameters for ListsControllerGetLists.
+type ListsControllerGetListsParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Filter by relative directory name
+ RelativeDirname *GetDirnamesPath `json:"relative_dirname,omitempty"`
+
+ // Filter by filename
+ Filename *Filename `json:"filename,omitempty"`
+}
+
+// ListsControllerGetListsFilesParams defines parameters for ListsControllerGetListsFiles.
+type ListsControllerGetListsFilesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Filter by relative directory name
+ RelativeDirname *GetDirnamesPath `json:"relative_dirname,omitempty"`
+
+ // Filter by filename
+ Filename *Filename `json:"filename,omitempty"`
+}
+
+// ManagerControllerGetApiConfigParams defines parameters for ManagerControllerGetApiConfig.
+type ManagerControllerGetApiConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerGetConfigurationParams defines parameters for ManagerControllerGetConfiguration.
+type ManagerControllerGetConfigurationParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Indicates the wazuh configuration section
+ Section *Section `json:"section,omitempty"`
+
+ // Indicate a section child. E.g, fields for *ruleset* section are: decoder_dir, rule_dir, etc
+ Field *Field `json:"field,omitempty"`
+}
+
+// ManagerControllerGetConfValidationParams defines parameters for ManagerControllerGetConfValidation.
+type ManagerControllerGetConfValidationParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerGetManagerConfigOndemandParams defines parameters for ManagerControllerGetManagerConfigOndemand.
+type ManagerControllerGetManagerConfigOndemandParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerDeleteFilesParams defines parameters for ManagerControllerDeleteFiles.
+type ManagerControllerDeleteFilesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Filepath to delete file. (Relative to wazuh installation folder)
+ Path DeleteFilesPath `json:"path"`
+}
+
+// ManagerControllerGetFilesParams defines parameters for ManagerControllerGetFiles.
+type ManagerControllerGetFilesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Filepath to return file. (Relative to wazuh installation folder)
+ Path GetFilesPath `json:"path"`
+}
+
+// ManagerControllerPutFilesParams defines parameters for ManagerControllerPutFiles.
+type ManagerControllerPutFilesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Filepath to upload/edit file. (Relative to wazuh installation folder)
+ Path EditFilesPath `json:"path"`
+
+ // If set to false, an exception will be raised when updating contents of an already existing filename
+ Overwrite *Overwrite `json:"overwrite,omitempty"`
+}
+
+// ManagerControllerGetInfoParams defines parameters for ManagerControllerGetInfo.
+type ManagerControllerGetInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerGetLogParams defines parameters for ManagerControllerGetLog.
+type ManagerControllerGetLogParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Wazuh component that logged the event
+ Tag *Tag `json:"tag,omitempty"`
+
+ // Filter by log level
+ Level *LogLevel `json:"level,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// ManagerControllerGetLogSummaryParams defines parameters for ManagerControllerGetLogSummary.
+type ManagerControllerGetLogSummaryParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerPutRestartParams defines parameters for ManagerControllerPutRestart.
+type ManagerControllerPutRestartParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerGetStatsParams defines parameters for ManagerControllerGetStats.
+type ManagerControllerGetStatsParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Date to obtain statistical information from. Format YYYY-MM-DD
+ Date *Date `json:"date,omitempty"`
+}
+
+// ManagerControllerGetStatsAnalysisdParams defines parameters for ManagerControllerGetStatsAnalysisd.
+type ManagerControllerGetStatsAnalysisdParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerGetStatsHourlyParams defines parameters for ManagerControllerGetStatsHourly.
+type ManagerControllerGetStatsHourlyParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerGetStatsRemotedParams defines parameters for ManagerControllerGetStatsRemoted.
+type ManagerControllerGetStatsRemotedParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerGetStatsWeeklyParams defines parameters for ManagerControllerGetStatsWeekly.
+type ManagerControllerGetStatsWeeklyParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// ManagerControllerGetStatusParams defines parameters for ManagerControllerGetStatus.
+type ManagerControllerGetStatusParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// MitreControllerGetAttackParams defines parameters for MitreControllerGetAttack.
+type MitreControllerGetAttackParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // MITRE attack ID
+ Id *AttackId `json:"id,omitempty"`
+
+ // Show results filtered by phase
+ PhaseName *PhaseName `json:"phase_name,omitempty"`
+
+ // Show results filtered by platform
+ PlatformName *PlatformName `json:"platform_name,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+}
+
+// OverviewControllerGetOverviewAgentsParams defines parameters for OverviewControllerGetOverviewAgents.
+type OverviewControllerGetOverviewAgentsParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// RulesControllerGetRulesParams defines parameters for RulesControllerGetRules.
+type RulesControllerGetRulesParams struct {
+
+ // List of rule IDs
+ RuleIds *RuleIds `json:"rule_ids,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+
+ // Filter by list status. Use commas to enter multiple statuses
+ Status *StatusRLDParam `json:"status,omitempty"`
+
+ // Filter by rule group
+ Group *Group `json:"group,omitempty"`
+
+ // Filter by rule level. Can be a single level (4) or an interval (2-4)
+ Level *Level `json:"level,omitempty"`
+
+ // Filter by filename
+ Filename *Filename `json:"filename,omitempty"`
+
+ // Filter by relative directory name
+ RelativeDirname *GetDirnamesPath `json:"relative_dirname,omitempty"`
+
+ // Filter by PCI_DSS requirement name
+ PciDss *PciDss `json:"pci_dss,omitempty"`
+
+ // Filter by GDPR requirement
+ Gdpr *Gdpr `json:"gdpr,omitempty"`
+
+ // Filter by GPG13 requirement
+ Gpg13 *Gpg13 `json:"gpg13,omitempty"`
+
+ // Filter by HIPAA requirement
+ Hipaa *Hipaa `json:"hipaa,omitempty"`
+
+ // Filter by NIST-800-53 requirement
+ Nist80053 *Nist80053 `json:"nist-800-53,omitempty"`
+
+ // Filters by TSC requirement
+ Tsc *Tsc `json:"tsc,omitempty"`
+
+ // Filters by MITRE attack ID
+ Mitre *Mitre `json:"mitre,omitempty"`
+}
+
+// RulesControllerGetRulesFilesParams defines parameters for RulesControllerGetRulesFiles.
+type RulesControllerGetRulesFilesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Filter by relative directory name
+ RelativeDirname *GetDirnamesPath `json:"relative_dirname,omitempty"`
+
+ // Filter by filename
+ Filename *Filename `json:"filename,omitempty"`
+
+ // Filter by list status. Use commas to enter multiple statuses
+ Status *StatusRLDParam `json:"status,omitempty"`
+}
+
+// RulesControllerGetDownloadFileParams defines parameters for RulesControllerGetDownloadFile.
+type RulesControllerGetDownloadFileParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// RulesControllerGetRulesGroupsParams defines parameters for RulesControllerGetRulesGroups.
+type RulesControllerGetRulesGroupsParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+}
+
+// RulesControllerGetRulesRequirementParams defines parameters for RulesControllerGetRulesRequirement.
+type RulesControllerGetRulesRequirementParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+}
+
+// ScaControllerGetScaAgentParams defines parameters for ScaControllerGetScaAgent.
+type ScaControllerGetScaAgentParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Filter by policy name
+ Name *ScaName `json:"name,omitempty"`
+
+ // Filter by policy description
+ Description *Description `json:"description,omitempty"`
+
+ // Filter by references
+ References *References `json:"references,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// ScaControllerGetScaChecksParams defines parameters for ScaControllerGetScaChecks.
+type ScaControllerGetScaChecksParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Filter by title
+ Title *Title `json:"title,omitempty"`
+
+ // Filter by policy description
+ Description *Description `json:"description,omitempty"`
+
+ // Filter by rationale
+ Rationale *Rationale `json:"rationale,omitempty"`
+
+ // Filter by remediation
+ Remediation *Remediation `json:"remediation,omitempty"`
+
+ // Filter by command
+ Command *Command `json:"command,omitempty"`
+
+ // Filter by status
+ Status *Status `json:"status,omitempty"`
+
+ // Filter by reason
+ Reason *Reason `json:"reason,omitempty"`
+
+ // Filter by full path
+ File *FullPathFilter `json:"file,omitempty"`
+
+ // Filter by process name
+ Process *Process `json:"process,omitempty"`
+
+ // Filter by directory
+ Directory *Directory `json:"directory,omitempty"`
+
+ // Filter by registry
+ Registry *Registry `json:"registry,omitempty"`
+
+ // Filter by references
+ References *References `json:"references,omitempty"`
+
+ // Filter by result
+ Result *Result `json:"result,omitempty"`
+
+ // Filter by condition
+ Condition *Condition `json:"condition,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// SecurityControllerGetRbacActionsParams defines parameters for SecurityControllerGetRbacActions.
+type SecurityControllerGetRbacActionsParams struct {
+
+ // Look for the RBAC actions which are related to the specified endpoint
+ Endpoint *Endpoint `json:"endpoint,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+}
+
+// SecurityControllerDeleteSecurityConfigParams defines parameters for SecurityControllerDeleteSecurityConfig.
+type SecurityControllerDeleteSecurityConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerGetSecurityConfigParams defines parameters for SecurityControllerGetSecurityConfig.
+type SecurityControllerGetSecurityConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerPutSecurityConfigJSONBody defines parameters for SecurityControllerPutSecurityConfig.
+type SecurityControllerPutSecurityConfigJSONBody SecurityConfiguration
+
+// SecurityControllerPutSecurityConfigParams defines parameters for SecurityControllerPutSecurityConfig.
+type SecurityControllerPutSecurityConfigParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerRemovePoliciesParams defines parameters for SecurityControllerRemovePolicies.
+type SecurityControllerRemovePoliciesParams struct {
+
+ // List of policy IDs (separated by comma), use the keyword 'all' to select all policies
+ PolicyIds PolicyIdsRbacDelete `json:"policy_ids"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerGetPoliciesParams defines parameters for SecurityControllerGetPolicies.
+type SecurityControllerGetPoliciesParams struct {
+
+ // List of policy IDs
+ PolicyIds *PolicyIdsRbac `json:"policy_ids,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerAddPolicyJSONBody defines parameters for SecurityControllerAddPolicy.
+type SecurityControllerAddPolicyJSONBody PoliciesRequest
+
+// SecurityControllerAddPolicyParams defines parameters for SecurityControllerAddPolicy.
+type SecurityControllerAddPolicyParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerUpdatePolicyJSONBody defines parameters for SecurityControllerUpdatePolicy.
+type SecurityControllerUpdatePolicyJSONBody PoliciesRequestNoRequired
+
+// SecurityControllerUpdatePolicyParams defines parameters for SecurityControllerUpdatePolicy.
+type SecurityControllerUpdatePolicyParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerGetRbacResourcesParams defines parameters for SecurityControllerGetRbacResources.
+type SecurityControllerGetRbacResourcesParams struct {
+
+ // List of current RBAC's resources.
+ Resource *ResourceList `json:"resource,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+}
+
+// SecurityControllerRemoveRolesParams defines parameters for SecurityControllerRemoveRoles.
+type SecurityControllerRemoveRolesParams struct {
+
+ // List of role IDs (separated by comma), use the keyword 'all' to select all roles
+ RoleIds RoleIdsDelete `json:"role_ids"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerGetRolesParams defines parameters for SecurityControllerGetRoles.
+type SecurityControllerGetRolesParams struct {
+
+ // List of role IDs (separated by comma)
+ RoleIds *RoleIds `json:"role_ids,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerAddRoleJSONBody defines parameters for SecurityControllerAddRole.
+type SecurityControllerAddRoleJSONBody RolesRequest
+
+// SecurityControllerAddRoleParams defines parameters for SecurityControllerAddRole.
+type SecurityControllerAddRoleParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerUpdateRoleJSONBody defines parameters for SecurityControllerUpdateRole.
+type SecurityControllerUpdateRoleJSONBody RolesRequestNoRequired
+
+// SecurityControllerUpdateRoleParams defines parameters for SecurityControllerUpdateRole.
+type SecurityControllerUpdateRoleParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerRemoveRolePolicyParams defines parameters for SecurityControllerRemoveRolePolicy.
+type SecurityControllerRemoveRolePolicyParams struct {
+
+ // List of policy IDs (separated by comma), use the keyword 'all' to select all policies
+ PolicyIds PolicyIdsRbacDelete `json:"policy_ids"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerSetRolePolicyParams defines parameters for SecurityControllerSetRolePolicy.
+type SecurityControllerSetRolePolicyParams struct {
+
+ // List of policy IDs
+ PolicyIds PolicyIdsRbacRequired `json:"policy_ids"`
+
+ // Security position for roles/policies
+ Position *SecurityPosition `json:"position,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerRemoveRoleRuleParams defines parameters for SecurityControllerRemoveRoleRule.
+type SecurityControllerRemoveRoleRuleParams struct {
+
+ // List of rule IDs (separated by comma), use the keyword 'all' to select all rules
+ RuleIds SecurityRuleIdsDelete `json:"rule_ids"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerSetRoleRuleParams defines parameters for SecurityControllerSetRoleRule.
+type SecurityControllerSetRoleRuleParams struct {
+
+ // List of rule IDs (separated by comma)
+ RuleIds SecurityRuleIdsRequired `json:"rule_ids"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerRemoveRulesParams defines parameters for SecurityControllerRemoveRules.
+type SecurityControllerRemoveRulesParams struct {
+
+ // List of rule IDs (separated by comma), use the keyword 'all' to select all rules
+ RuleIds SecurityRuleIdsDelete `json:"rule_ids"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerGetRulesParams defines parameters for SecurityControllerGetRules.
+type SecurityControllerGetRulesParams struct {
+
+ // List of rule IDs (separated by comma)
+ RuleIds *SecurityRuleIds `json:"rule_ids,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerAddRuleJSONBody defines parameters for SecurityControllerAddRule.
+type SecurityControllerAddRuleJSONBody SecurityRulesRequest
+
+// SecurityControllerAddRuleParams defines parameters for SecurityControllerAddRule.
+type SecurityControllerAddRuleParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerUpdateRuleJSONBody defines parameters for SecurityControllerUpdateRule.
+type SecurityControllerUpdateRuleJSONBody SecurityRulesRequestNoRequired
+
+// SecurityControllerUpdateRuleParams defines parameters for SecurityControllerUpdateRule.
+type SecurityControllerUpdateRuleParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerLoginUserParams defines parameters for SecurityControllerLoginUser.
+type SecurityControllerLoginUserParams struct {
+
+ // Format response in plain text
+ Raw *Raw `json:"raw,omitempty"`
+}
+
+// SecurityControllerLoginUserJSONBody defines parameters for SecurityControllerLoginUser.
+type SecurityControllerLoginUserJSONBody map[string]interface{}
+
+// SecurityControllerDeleteUsersParams defines parameters for SecurityControllerDeleteUsers.
+type SecurityControllerDeleteUsersParams struct {
+
+ // List of user IDs (separated by comma), use the keyword 'all' to select all users
+ UserIds UserIdsDelete `json:"user_ids"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerGetUsersParams defines parameters for SecurityControllerGetUsers.
+type SecurityControllerGetUsersParams struct {
+
+ // List of user IDs (separated by comma)
+ UserIds *UserIds `json:"user_ids,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerCreateUserJSONBody defines parameters for SecurityControllerCreateUser.
+type SecurityControllerCreateUserJSONBody struct {
+ AllowRunAs *bool `json:"allow_run_as,omitempty"`
+ Password string `json:"password"`
+ Username string `json:"username"`
+}
+
+// SecurityControllerCreateUserParams defines parameters for SecurityControllerCreateUser.
+type SecurityControllerCreateUserParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerGetUserMeParams defines parameters for SecurityControllerGetUserMe.
+type SecurityControllerGetUserMeParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerGetUserMePoliciesParams defines parameters for SecurityControllerGetUserMePolicies.
+type SecurityControllerGetUserMePoliciesParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+}
+
+// SecurityControllerUpdateUserJSONBody defines parameters for SecurityControllerUpdateUser.
+type SecurityControllerUpdateUserJSONBody struct {
+ AllowRunAs *bool `json:"allow_run_as,omitempty"`
+ Password *string `json:"password,omitempty"`
+}
+
+// SecurityControllerUpdateUserParams defines parameters for SecurityControllerUpdateUser.
+type SecurityControllerUpdateUserParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerRemoveUserRoleParams defines parameters for SecurityControllerRemoveUserRole.
+type SecurityControllerRemoveUserRoleParams struct {
+
+ // List of role IDs (separated by comma), use the keyword 'all' to select all roles
+ RoleIds RoleIdsDelete `json:"role_ids"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SecurityControllerSetUserRoleParams defines parameters for SecurityControllerSetUserRole.
+type SecurityControllerSetUserRoleParams struct {
+
+ // List of role IDs (separated by comma)
+ RoleIds RoleIdsRequired `json:"role_ids"`
+
+ // Security position for roles/policies
+ Position *SecurityPosition `json:"position,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SyscheckControllerPutSyscheckParams defines parameters for SyscheckControllerPutSyscheck.
+type SyscheckControllerPutSyscheckParams struct {
+
+ // List of agent IDs (separated by comma), all agents selected by default if not specified
+ AgentsList *AgentsList `json:"agents_list,omitempty"`
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SyscheckControllerDeleteSyscheckAgentParams defines parameters for SyscheckControllerDeleteSyscheckAgent.
+type SyscheckControllerDeleteSyscheckAgentParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SyscheckControllerGetSyscheckAgentParams defines parameters for SyscheckControllerGetSyscheckAgent.
+type SyscheckControllerGetSyscheckAgentParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by full path
+ File *FullPathFilter `json:"file,omitempty"`
+
+ // Filter by file type
+ Type *Filetype `json:"type,omitempty"`
+
+ // Return a summary grouping by filename
+ Summary *Summary `json:"summary,omitempty"`
+
+ // Filter files with the specified MD5 checksum
+ Md5 *Md5 `json:"md5,omitempty"`
+
+ // Filter files with the specified SHA1 checksum
+ Sha1 *Sha1 `json:"sha1,omitempty"`
+
+ // Filter files with the specified SHA256 checksum
+ Sha256 *Sha256 `json:"sha256,omitempty"`
+
+ // Filter files with the specified hash (md5, sha256 or sha1)
+ Hash *Hashfilter `json:"hash,omitempty"`
+
+ // Look for distinct values.
+ Distinct *Distinct `json:"distinct,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// SyscheckControllerGetLastScanAgentParams defines parameters for SyscheckControllerGetLastScanAgent.
+type SyscheckControllerGetLastScanAgentParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+}
+
+// SyscollectorControllerGetHardwareInfoParams defines parameters for SyscollectorControllerGetHardwareInfo.
+type SyscollectorControllerGetHardwareInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+}
+
+// SyscollectorControllerGetHotfixInfoParams defines parameters for SyscollectorControllerGetHotfixInfo.
+type SyscollectorControllerGetHotfixInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by hotfix
+ Hotfix *Hotfix `json:"hotfix,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// SyscollectorControllerGetNetworkAddressInfoParams defines parameters for SyscollectorControllerGetNetworkAddressInfo.
+type SyscollectorControllerGetNetworkAddressInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by network interface
+ Iface *Iface `json:"iface,omitempty"`
+
+ // Filter by IP protocol
+ Proto *Proto `json:"proto,omitempty"`
+
+ // Filter by IP address
+ Address *Address `json:"address,omitempty"`
+
+ // Filter by broadcast direction
+ Broadcast *Broadcast `json:"broadcast,omitempty"`
+
+ // Filter by netmask
+ Netmask *Netmask `json:"netmask,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// SyscollectorControllerGetNetworkInterfaceInfoParams defines parameters for SyscollectorControllerGetNetworkInterfaceInfo.
+type SyscollectorControllerGetNetworkInterfaceInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by agent name
+ Name *Name `json:"name,omitempty"`
+
+ // Filter by adapter
+ Adapter *Adapter `json:"adapter,omitempty"`
+
+ // Type of file
+ Type *Typesys `json:"type,omitempty"`
+
+ // Filter by state
+ State *State `json:"state,omitempty"`
+
+ // Filter by mtu
+ Mtu *Mtu `json:"mtu,omitempty"`
+
+ // Filter by tx.packets
+ TxPackets *TxPackets `json:"tx.packets,omitempty"`
+
+ // Filter by rx.packets
+ RxPackets *RxPackets `json:"rx.packets,omitempty"`
+
+ // Filter by tx.bytes
+ TxBytes *TxBytes `json:"tx.bytes,omitempty"`
+
+ // Filter by rx.bytes
+ RxBytes *RxBytes `json:"rx.bytes,omitempty"`
+
+ // Filter by tx.errors
+ TxErrors *TxErrors `json:"tx.errors,omitempty"`
+
+ // Filter by rx.errors
+ RxErrors *RxErrors `json:"rx.errors,omitempty"`
+
+ // Filter by tx.dropped
+ TxDropped *TxDropped `json:"tx.dropped,omitempty"`
+
+ // Filter by rx.dropped
+ RxDropped *RxDropped `json:"rx.dropped,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// SyscollectorControllerGetNetworkProtocolInfoParams defines parameters for SyscollectorControllerGetNetworkProtocolInfo.
+type SyscollectorControllerGetNetworkProtocolInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by network interface
+ Iface *Iface `json:"iface,omitempty"`
+
+ // Type of network
+ Type *TypeSyscollector `json:"type,omitempty"`
+
+ // Filter by network gateway
+ Gateway *Gateway `json:"gateway,omitempty"`
+
+ // Filter by network dhcp (enabled or disabled)
+ Dhcp *Dhcp `json:"dhcp,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// SyscollectorControllerGetOsInfoParams defines parameters for SyscollectorControllerGetOsInfo.
+type SyscollectorControllerGetOsInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+}
+
+// SyscollectorControllerGetPackagesInfoParams defines parameters for SyscollectorControllerGetPackagesInfo.
+type SyscollectorControllerGetPackagesInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by vendor
+ Vendor *Vendor `json:"vendor,omitempty"`
+
+ // Filter by agent name
+ Name *Name `json:"name,omitempty"`
+
+ // Filter by architecture
+ Architecture *Architecture `json:"architecture,omitempty"`
+
+ // Filter by file format. For example 'deb' will output deb files
+ Format *FileFormat `json:"format,omitempty"`
+
+ // Filter by version name
+ Version *PackageVersion `json:"version,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// SyscollectorControllerGetPortsInfoParams defines parameters for SyscollectorControllerGetPortsInfo.
+type SyscollectorControllerGetPortsInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by pid
+ Pid *Pid `json:"pid,omitempty"`
+
+ // Filter by protocol
+ Protocol *Protocol `json:"protocol,omitempty"`
+
+ // Filter by Local IP
+ LocalIp *LocalIp `json:"local.ip,omitempty"`
+
+ // Filter by Local Port
+ LocalPort *LocalPort `json:"local.port,omitempty"`
+
+ // Filter by Remote IP
+ RemoteIp *RemoteIp `json:"remote.ip,omitempty"`
+
+ // Filter by tx_queue
+ TxQueue *TxQueue `json:"tx_queue,omitempty"`
+
+ // Filter by state
+ State *State `json:"state,omitempty"`
+
+ // Filter by process name
+ Process *Process `json:"process,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// SyscollectorControllerGetProcessesInfoParams defines parameters for SyscollectorControllerGetProcessesInfo.
+type SyscollectorControllerGetProcessesInfoParams struct {
+
+ // Show results in human-readable format
+ Pretty *Pretty `json:"pretty,omitempty"`
+
+ // Disable timeout response
+ WaitForComplete *WaitForComplete `json:"wait_for_complete,omitempty"`
+
+ // First element to return in the collection
+ Offset *Offset `json:"offset,omitempty"`
+
+ // Maximum number of elements to return
+ Limit *Limit `json:"limit,omitempty"`
+
+ // Sort the collection by a field or fields (separated by comma). Use +/- at the beggining to list in ascending or descending order. Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Sort *Sort `json:"sort,omitempty"`
+
+ // Look for elements containing the specified string. To obtain a complementary search, use '-' at the beggining
+ Search *Search `json:"search,omitempty"`
+
+ // Select which fields to return (separated by comma). Use '.' for nested fields. For example, '{field1: field2}' may be selected with 'field1.field2'
+ Select *Select `json:"select,omitempty"`
+
+ // Filter by process pid
+ Pid *ProcessPid `json:"pid,omitempty"`
+
+ // Filter by process state
+ State *ProcessState `json:"state,omitempty"`
+
+ // Filter by process parent pid
+ Ppid *Ppid `json:"ppid,omitempty"`
+
+ // Filter by process egroup
+ Egroup *Egroup `json:"egroup,omitempty"`
+
+ // Filter by process euser
+ Euser *Euser `json:"euser,omitempty"`
+
+ // Filter by process fgroup
+ Fgroup *Fgroup `json:"fgroup,omitempty"`
+
+ // Filter by process name
+ Name *ProcessName `json:"name,omitempty"`
+
+ // Filter by process nlwp
+ Nlwp *Nlwp `json:"nlwp,omitempty"`
+
+ // Filter by process pgrp
+ Pgrp *Pgrp `json:"pgrp,omitempty"`
+
+ // Filter by process priority
+ Priority *Priority `json:"priority,omitempty"`
+
+ // Filter by process rgroup
+ Rgroup *Rgroup `json:"rgroup,omitempty"`
+
+ // Filter by process ruser
+ Ruser *Ruser `json:"ruser,omitempty"`
+
+ // Filter by process sgroup
+ Sgroup *Sgroup `json:"sgroup,omitempty"`
+
+ // Filter by process suser
+ Suser *Suser `json:"suser,omitempty"`
+
+ // Query to filter results by. For example q="status=active"
+ Q *Query `json:"q,omitempty"`
+}
+
+// ActiveResponseControllerRunCommandRequestBody defines body for ActiveResponseControllerRunCommand for application/json ContentType.
+type ActiveResponseControllerRunCommandJSONRequestBody ActiveResponseControllerRunCommandJSONBody
+
+// AgentsControllerAddAgentRequestBody defines body for AgentsControllerAddAgent for application/json ContentType.
+type AgentsControllerAddAgentJSONRequestBody AgentsControllerAddAgentJSONBody
+
+// AgentsControllerInsertAgentRequestBody defines body for AgentsControllerInsertAgent for application/json ContentType.
+type AgentsControllerInsertAgentJSONRequestBody AgentsControllerInsertAgentJSONBody
+
+// SecurityControllerPutSecurityConfigRequestBody defines body for SecurityControllerPutSecurityConfig for application/json ContentType.
+type SecurityControllerPutSecurityConfigJSONRequestBody SecurityControllerPutSecurityConfigJSONBody
+
+// SecurityControllerAddPolicyRequestBody defines body for SecurityControllerAddPolicy for application/json ContentType.
+type SecurityControllerAddPolicyJSONRequestBody SecurityControllerAddPolicyJSONBody
+
+// SecurityControllerUpdatePolicyRequestBody defines body for SecurityControllerUpdatePolicy for application/json ContentType.
+type SecurityControllerUpdatePolicyJSONRequestBody SecurityControllerUpdatePolicyJSONBody
+
+// SecurityControllerAddRoleRequestBody defines body for SecurityControllerAddRole for application/json ContentType.
+type SecurityControllerAddRoleJSONRequestBody SecurityControllerAddRoleJSONBody
+
+// SecurityControllerUpdateRoleRequestBody defines body for SecurityControllerUpdateRole for application/json ContentType.
+type SecurityControllerUpdateRoleJSONRequestBody SecurityControllerUpdateRoleJSONBody
+
+// SecurityControllerAddRuleRequestBody defines body for SecurityControllerAddRule for application/json ContentType.
+type SecurityControllerAddRuleJSONRequestBody SecurityControllerAddRuleJSONBody
+
+// SecurityControllerUpdateRuleRequestBody defines body for SecurityControllerUpdateRule for application/json ContentType.
+type SecurityControllerUpdateRuleJSONRequestBody SecurityControllerUpdateRuleJSONBody
+
+// SecurityControllerLoginUserRequestBody defines body for SecurityControllerLoginUser for application/json ContentType.
+type SecurityControllerLoginUserJSONRequestBody SecurityControllerLoginUserJSONBody
+
+// SecurityControllerCreateUserRequestBody defines body for SecurityControllerCreateUser for application/json ContentType.
+type SecurityControllerCreateUserJSONRequestBody SecurityControllerCreateUserJSONBody
+
+// SecurityControllerUpdateUserRequestBody defines body for SecurityControllerUpdateUser for application/json ContentType.
+type SecurityControllerUpdateUserJSONRequestBody SecurityControllerUpdateUserJSONBody
+
+// Getter for additional properties for ApiError_DapiErrors. Returns the specified
+// element and whether it was found
+func (a ApiError_DapiErrors) Get(fieldName string) (value struct {
+ Error *string `json:"error,omitempty"`
+ Logfile *string `json:"logfile,omitempty"`
+}, found bool) {
+ if a.AdditionalProperties != nil {
+ value, found = a.AdditionalProperties[fieldName]
+ }
+ return
+}
+
+// Setter for additional properties for ApiError_DapiErrors
+func (a *ApiError_DapiErrors) Set(fieldName string, value struct {
+ Error *string `json:"error,omitempty"`
+ Logfile *string `json:"logfile,omitempty"`
+}) {
+ if a.AdditionalProperties == nil {
+ a.AdditionalProperties = make(map[string]struct {
+ Error *string `json:"error,omitempty"`
+ Logfile *string `json:"logfile,omitempty"`
+ })
+ }
+ a.AdditionalProperties[fieldName] = value
+}
+
+// Override default JSON handling for ApiError_DapiErrors to handle AdditionalProperties
+func (a *ApiError_DapiErrors) UnmarshalJSON(b []byte) error {
+ object := make(map[string]json.RawMessage)
+ err := json.Unmarshal(b, &object)
+ if err != nil {
+ return err
+ }
+
+ if len(object) != 0 {
+ a.AdditionalProperties = make(map[string]struct {
+ Error *string `json:"error,omitempty"`
+ Logfile *string `json:"logfile,omitempty"`
+ })
+ for fieldName, fieldBuf := range object {
+ var fieldVal struct {
+ Error *string `json:"error,omitempty"`
+ Logfile *string `json:"logfile,omitempty"`
+ }
+ err := json.Unmarshal(fieldBuf, &fieldVal)
+ if err != nil {
+ return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
+ }
+ a.AdditionalProperties[fieldName] = fieldVal
+ }
+ }
+ return nil
+}
+
+// Override default JSON handling for ApiError_DapiErrors to handle AdditionalProperties
+func (a ApiError_DapiErrors) MarshalJSON() ([]byte, error) {
+ var err error
+ object := make(map[string]json.RawMessage)
+
+ for fieldName, field := range a.AdditionalProperties {
+ object[fieldName], err = json.Marshal(field)
+ if err != nil {
+ return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
+ }
+ }
+ return json.Marshal(object)
+}
+
+// Getter for additional properties for SimpleApiError_Error. Returns the specified
+// element and whether it was found
+func (a SimpleApiError_Error) Get(fieldName string) (value struct {
+ Code *int32 `json:"code,omitempty"`
+ Message *string `json:"message,omitempty"`
+ Remediation *string `json:"remediation,omitempty"`
+}, found bool) {
+ if a.AdditionalProperties != nil {
+ value, found = a.AdditionalProperties[fieldName]
+ }
+ return
+}
+
+// Setter for additional properties for SimpleApiError_Error
+func (a *SimpleApiError_Error) Set(fieldName string, value struct {
+ Code *int32 `json:"code,omitempty"`
+ Message *string `json:"message,omitempty"`
+ Remediation *string `json:"remediation,omitempty"`
+}) {
+ if a.AdditionalProperties == nil {
+ a.AdditionalProperties = make(map[string]struct {
+ Code *int32 `json:"code,omitempty"`
+ Message *string `json:"message,omitempty"`
+ Remediation *string `json:"remediation,omitempty"`
+ })
+ }
+ a.AdditionalProperties[fieldName] = value
+}
+
+// Override default JSON handling for SimpleApiError_Error to handle AdditionalProperties
+func (a *SimpleApiError_Error) UnmarshalJSON(b []byte) error {
+ object := make(map[string]json.RawMessage)
+ err := json.Unmarshal(b, &object)
+ if err != nil {
+ return err
+ }
+
+ if len(object) != 0 {
+ a.AdditionalProperties = make(map[string]struct {
+ Code *int32 `json:"code,omitempty"`
+ Message *string `json:"message,omitempty"`
+ Remediation *string `json:"remediation,omitempty"`
+ })
+ for fieldName, fieldBuf := range object {
+ var fieldVal struct {
+ Code *int32 `json:"code,omitempty"`
+ Message *string `json:"message,omitempty"`
+ Remediation *string `json:"remediation,omitempty"`
+ }
+ err := json.Unmarshal(fieldBuf, &fieldVal)
+ if err != nil {
+ return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
+ }
+ a.AdditionalProperties[fieldName] = fieldVal
+ }
+ }
+ return nil
+}
+
+// Override default JSON handling for SimpleApiError_Error to handle AdditionalProperties
+func (a SimpleApiError_Error) MarshalJSON() ([]byte, error) {
+ var err error
+ object := make(map[string]json.RawMessage)
+
+ for fieldName, field := range a.AdditionalProperties {
+ object[fieldName], err = json.Marshal(field)
+ if err != nil {
+ return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
+ }
+ }
+ return json.Marshal(object)
+}
diff --git a/wazuh.go b/wazuh.go
new file mode 100755
index 0000000..7f8e609
--- /dev/null
+++ b/wazuh.go
@@ -0,0 +1,269 @@
+package wazuh
+
+import (
+ "context"
+ "crypto/tls"
+ "encoding/base64"
+ "errors"
+ "fmt"
+ "log"
+ "net/http"
+ "os"
+ "reflect"
+ "strings"
+)
+
+// The Client for the wazuh REST API
+type Client struct {
+ // The endpoint of the server conforming to this interface, with scheme,
+ // https://api.deepmap.com for example. This can contain a path relative
+ // to the server, such as https://api.deepmap.com/dev-test, and all the
+ // paths in the swagger spec will be appended to the server.
+ Server string
+
+ // Doer for performing requests, typically a *http.Client with any
+ // customized settings, such as certificate chains.
+ Client HttpRequestDoer
+
+ // A callback for modifying requests which are generated before sending over
+ // the network.
+ RequestEditor RequestEditorFn
+
+ ctx context.Context
+ userAgent string
+ token string
+ user string
+ password string
+ insecure bool
+}
+
+// WithLogin specifies the credentials for
+func WithLogin(user string, password string) ClientOption {
+ return func(c *Client) error {
+ c.user = user
+ c.password = password
+ return nil
+ }
+}
+
+// WithContext specifies the credentials for
+func WithContext(ctx context.Context) ClientOption {
+ return func(c *Client) error {
+ c.ctx = ctx
+ return nil
+ }
+}
+
+// WithInsecure accept all certificates
+func WithInsecure() ClientOption {
+ return func(c *Client) error {
+ c.insecure = true
+ return nil
+ }
+}
+
+// WithUserAgent specify a user agent string to identify the client
+func WithUserAgent(userAgent string) ClientOption {
+ return func(c *Client) error {
+ c.userAgent = userAgent
+ return nil
+ }
+}
+
+// do execute and evaluate the request
+func (c *Client) do(ctx context.Context, req *http.Request) error {
+ // Headers for all request
+ req.Header.Set("User-Agent", c.userAgent)
+ if c.token == "" {
+ encoded := base64.StdEncoding.EncodeToString([]byte(c.user + ":" + c.password))
+ req.Header.Set("Authorization", "Basic "+encoded)
+ } else {
+ req.Header.Set("Authorization", "Bearer "+c.token)
+ }
+ return nil
+}
+
+// APIClient extended client with less abstract api access
+type APIClient struct {
+ *ClientWithResponses
+
+ ExperimentalController ExperimentalControllerInterface
+ SyscheckController SyscheckControllerInterface
+ AgentsController AgentsControllerInterface
+ CiscatController CiscatControllerInterface
+ ListsController ListsControllerInterface
+ ManagerController ManagerControllerInterface
+ MitreController MitreControllerInterface
+ ScaController ScaControllerInterface
+ DefaultController DefaultControllerInterface
+ OverviewController OverviewControllerInterface
+ RulesController RulesControllerInterface
+ SecurityController SecurityControllerInterface
+ SyscollectorController SyscollectorControllerInterface
+ ActiveResponseController ActiveResponseControllerInterface
+ ClusterController ClusterControllerInterface
+ DecodersController DecodersControllerInterface
+}
+
+// NewClientFromEnvironment creates a new client from default environment variables
+func NewClientFromEnvironment(opts ...ClientOption) (*APIClient, error) {
+ baseURL := os.Getenv("WAZUH_URL")
+ user := os.Getenv("WAZUH_USER")
+ password := os.Getenv("WAZUH_PASSWORD")
+ opts = append(opts, WithLogin(user, password))
+ c, err := NewAPIClient(baseURL, opts...)
+ if err != nil {
+ return nil, err
+ }
+ if os.Getenv("WAZUH_INSECURE") == "true" {
+ err := WithInsecure()(c.ClientInterface.(*Client))
+ if err != nil {
+ return nil, err
+ }
+ }
+ return c, nil
+}
+
+// NewAPIClient Create a new API (yes, naming is awkward)
+func NewAPIClient(baseURL string, opts ...ClientOption) (*APIClient, error) {
+ cl, err := NewClient(baseURL, opts...)
+ cl.RequestEditor = cl.do
+ if err != nil {
+ return nil, err
+ }
+ clientWithResponses := &ClientWithResponses{cl}
+ return &APIClient{
+ ClientWithResponses: clientWithResponses,
+
+ ExperimentalController: &ExperimentalController{clientWithResponses},
+ SyscheckController: &SyscheckController{clientWithResponses},
+ ListsController: &ListsController{clientWithResponses},
+ ManagerController: &ManagerController{clientWithResponses},
+ MitreController: &MitreController{clientWithResponses},
+ ScaController: &ScaController{clientWithResponses},
+ AgentsController: &AgentsController{clientWithResponses},
+ CiscatController: &CiscatController{clientWithResponses},
+ RulesController: &RulesController{clientWithResponses},
+ SecurityController: &SecurityController{clientWithResponses},
+ SyscollectorController: &SyscollectorController{clientWithResponses},
+ DefaultController: &DefaultController{clientWithResponses},
+ OverviewController: &OverviewController{clientWithResponses},
+ DecodersController: &DecodersController{clientWithResponses},
+ ActiveResponseController: &ActiveResponseController{clientWithResponses},
+ ClusterController: &ClusterController{clientWithResponses},
+ }, nil
+}
+
+// NewClient returns a new wazuh API client
+func NewClient(baseURL string, opts ...ClientOption) (*Client, error) {
+ // remove trailing slash (if any) from base URL
+ baseURL = strings.TrimRight(baseURL, "/")
+
+ c := &Client{
+ Server: baseURL,
+ userAgent: "go-wazuh",
+ }
+
+ // mutate client and add all optional params
+ for _, o := range opts {
+ if err := o(c); err != nil {
+ return nil, err
+ }
+ }
+
+ if c.ctx == nil {
+ c.ctx = context.Background()
+ }
+
+ // ensure the server URL always has a trailing slash
+ if !strings.HasSuffix(c.Server, "/") {
+ c.Server += "/"
+ }
+ // create httpClient, if not already present
+ if c.Client == nil {
+ c.Client = &http.Client{
+ Transport: &http.Transport{
+ TLSClientConfig: &tls.Config{
+ InsecureSkipVerify: c.insecure, // test server certificate is not trusted.
+ },
+ },
+ }
+ }
+
+ return c, nil
+}
+
+// Errorf logs errors
+func (c *Client) Errorf(format string, v ...interface{}) {
+ log.Printf("[ERROR] %s", fmt.Sprintf(format, v...))
+}
+
+// Warnf logs warings
+func (c *Client) Warnf(format string, v ...interface{}) {
+ log.Printf("[WARN] %s", fmt.Sprintf(format, v...))
+}
+
+// Debugf logs debug info
+func (c *Client) Debugf(format string, v ...interface{}) {
+ log.Printf("[DEBUG] %s", fmt.Sprintf(format, v...))
+}
+
+// RawAPIResponse generic response wrapper
+type RawAPIResponse interface {
+ Status() string
+ StatusCode() int
+}
+
+func getResponseObject(sr RawAPIResponse) (interface{}, error) {
+ fldForCode := fmt.Sprintf("JSON%d", sr.StatusCode())
+ v := reflect.ValueOf(sr).Elem()
+ if _, ok := v.Type().FieldByName(fldForCode); ok {
+ s := v.FieldByName(fldForCode).Interface()
+ if apiError, ok := s.(*ApiError); ok {
+ return nil, fmt.Errorf("%d: %s (%s)", sr.StatusCode(), apiError.Title, apiError.Detail)
+ }
+ if requestError, ok := s.(*RequestError); ok {
+ return nil, fmt.Errorf("%d: %s (%s)", sr.StatusCode(), requestError.Title, requestError.Detail)
+ }
+ v := reflect.ValueOf(s).Elem()
+ if _, ok := v.Type().FieldByName("Data"); ok {
+ d := v.FieldByName("Data").Interface()
+ return d, nil
+ }
+ return v, nil
+ }
+ return sr, nil
+}
+
+//Authenticate login using basic auth to optain a token
+func (c *ClientWithResponses) Authenticate() error {
+ // Authenticate
+ c.ClientInterface.(*Client).token = ""
+ var raw Raw = false
+ params := &SecurityControllerLoginUserParams{Raw: &raw}
+ sr, err := c.SecurityControllerLoginUserWithResponse(c.ClientInterface.(*Client).ctx, params)
+ if err != nil {
+ return err
+ }
+
+ if sr.StatusCode() > 399 {
+ _, err := getResponseObject(sr)
+ if err != nil {
+ return err
+ }
+ }
+ if sr.JSON200.Data.Token == nil {
+ return errors.New("Nil token!?")
+ }
+ c.ClientInterface.(*Client).token = *sr.JSON200.Data.Token
+ return nil
+}
+
+func (c *ClientWithResponses) evaluateResponse(response RawAPIResponse, err error) (interface{}, error) {
+ if err != nil {
+ return nil, err
+ }
+
+ // log.Printf("[TRACE] %s %v", response.Request.URL, reflect.ValueOf(response.Request.Result).Elem().FieldByName("Data").Interface())
+ return getResponseObject(response)
+}
diff --git a/wazuh_test.go b/wazuh_test.go
new file mode 100755
index 0000000..20f5603
--- /dev/null
+++ b/wazuh_test.go
@@ -0,0 +1,52 @@
+package wazuh
+
+import (
+ "fmt"
+ "testing"
+)
+
+func TestStatus(t *testing.T) {
+ c, err := NewClientFromEnvironment(WithInsecure())
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ err = c.Authenticate()
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ status, err := c.DefaultController.DefaultInfo(&DefaultControllerDefaultInfoParams{})
+ if err != nil {
+ t.Error(err)
+ return
+ }
+ fmt.Printf("Connected to %s on %s\n", *status.Title, *status.Hostname)
+}
+
+func TestAgents(t *testing.T) {
+ c, err := NewClientFromEnvironment(WithInsecure())
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ err = c.Authenticate()
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ agents, err := c.AgentsController.GetAgents(&AgentsControllerGetAgentsParams{})
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ fmt.Printf("Get Agents TotalAffectedItems %d\n", agents.AllItemsResponse.TotalAffectedItems)
+ for i, agent := range agents.AffectedItems {
+ fmt.Printf(" %d: %s on %s\n", i, *agent.Id, *agent.NodeName)
+ }
+}