{"openapi":"3.0.3","servers":[{"description":"Rudder server","url":"https://rudder.example.local/rudder/api/latest"}],"info":{"contact":{"email":"dev@rudder.io","name":"Rudder developers","url":"https://www.rudder.io"},"description":"Download OpenAPI specification: [openapi.yml](openapi.yml)\n\n# Introduction\n\nRudder exposes a REST API, enabling the user to interact with Rudder without using the webapp, for example in scripts or cronjobs.\n\n## Versioning\n\nEach time the API is extended with new features (new functions, new parameters, new responses, ...), it will be assigned a new version number. This will allow you\nto keep your existing scripts (based on previous behavior). Versions will always be integers (no 2.1 or 3.3, just 2, 3, 4, ...) or `latest`.\n\nYou can change the version of the API used by setting it either within the url or in a header:\n\n* the URL: each URL is prefixed by its version id, like `/api/version/function`.\n\n```bash\n# Version 10\ncurl -X GET -H \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/10/rules\n# Latest\ncurl -X GET -H \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/rules\n# Wrong (not an integer) => 404 not found\ncurl -X GET -H \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/3.14/rules\n```\n\n* the HTTP headers. You can add the **X-API-Version** header to your request. The value needs to be an integer or `latest`.\n\n```bash\n# Version 10\ncurl -X GET -H \"X-API-Token: yourToken\" -H \"X-API-Version: 10\" https://rudder.example.com/rudder/api/rules\n# Wrong => Error response indicating which versions are available\ncurl -X GET -H \"X-API-Token: yourToken\" -H \"X-API-Version: 3.14\" https://rudder.example.com/rudder/api/rules\n```\n\nIn the future, we may declare some versions as deprecated, in order to remove them in a later version of Rudder, but we will never remove any versions without warning, or without a safe\nperiod of time to allow migration from previous versions.\n\n\n<h4>Existing versions</h4>\n<table>\n  <thead>\n    <tr>\n      <th style=\"width: 20%\">Version</th>\n      <th style=\"width: 20%\">Rudder versions it appeared in</th>\n      <th style=\"width: 70%\">Description</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td class=\"code\">1</td>\n      <td class=\"code\">Never released (for internal use only)</td>\n      <td>Experimental version</td>\n    </tr>\n    <tr>\n      <td class=\"code\">2 to 10 (deprecated)</td>\n      <td class=\"code\">4.3 and before</td>\n      <td>These versions provided the core set of API features for rules, directives, nodes global parameters, change requests and compliance, rudder settings and system API</td>\n    </tr>\n    <tr>\n      <td class=\"code\">11</td>\n      <td class=\"code\">5.0</td>\n      <td>New system API (replacing old localhost v1 api): status, maintenance operations and server behavior</td>\n    </tr>\n    <tr>\n      <td class=\"code\">12</td>\n      <td class=\"code\">6.0 and 6.1</td>\n      <td>Node key management</td>\n    </tr>\n    <tr>\n      <td class=\"code\">13</td>\n      <td class=\"code\">6.2</td>\n      <td><ul>\n        <li>Node status endpoint</li>\n        <li>System health check</li>\n        <li>System maintenance job to purge software [that endpoint was back-ported in 6.1]</li>\n      </ul></td>\n    </tr>\n    <tr>\n      <td class=\"code\">14</td>\n      <td class=\"code\">7.0</td>\n      <td><ul>\n        <li>Secret management</li>\n        <li>Directive tree</li>\n        <li>Improve techniques management</li>\n        <li>Demote a relay</li>\n      </ul></td>\n    </tr>\n    <tr>\n      <td class=\"code\">15</td>\n      <td class=\"code\">7.1</td>\n      <td><ul>\n        <li>Package updates in nodes</li>\n      </ul></td>\n    </tr>\n    <tr>\n      <td class=\"code\">16</td>\n      <td class=\"code\">7.2</td>\n      <td><ul>\n        <li>Create node API included from plugin</li>\n        <li>Configuration archive import/export</li>\n      </ul></td>\n    </tr>\n  </tbody>\n</table>\n\n\n## Response format\n\nAll responses from the API are in the JSON format.\n\n```json\n{\n  \"action\": \"The name of the called function\",\n  \"id\": \"The ID of the element you want, if relevant\",\n  \"result\": \"The result of your action: success or error\",\n  \"data\": \"Only present if this is a success and depends on the function, it's usually a JSON object\",\n  \"errorDetails\": \"Only present if this is an error, it contains the error message\"\n}\n```\n\n\n* __Success__ responses are sent with the 200 HTTP (Success) code\n\n* __Error__ responses are sent with a HTTP error code (mostly 5xx...)\n\n\n## HTTP method\n\nRudder's REST API is based on the usage of [HTTP methods](http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html). We use them to indicate what action will be done by the request. Currently, we use four of them:\n\n\n* **GET**: search or retrieve information (get rule details, get a group, ...)\n\n* **PUT**: add new objects (create a directive, clone a Rule, ...)\n\n* **DELETE**: remove objects (delete a node, delete a parameter, ...)\n\n* **POST**: update existing objects (update a directive, reload a group, ...)\n\n\n## Parameters\n\n### General parameters\n\nSome parameters are available for almost all API functions. They will be described in this section.\nThey must be part of the query and can't be submitted in a JSON form.\n\n#### Available for all requests\n\n<table>\n  <thead>\n    <tr>\n      <th style=\"width: 30%\">Field</th>\n      <th style=\"width: 10%\">Type</th>\n      <th style=\"width: 70%\">Description</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td class=\"code\">prettify</td>\n      <td><b>boolean</b><br><i>optional</i></td>\n      <td>\n        Determine if the answer should be prettified (human friendly) or not. We recommend using this for debugging purposes, but not for general script usage as this does add some unnecessary load on the server side.\n        <p class=\"default-value\">Default value: <code>false</code></p>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n\n#### Available for modification requests (PUT/POST/DELETE)\n\n<table>\n  <thead>\n    <tr>\n      <th style=\"width: 25%\">Field</th>\n      <th style=\"width: 12%\">Type</th>\n      <th style=\"width: 70%\">Description</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td class=\"code\">reason</td>\n      <td><b>string</b><br><i>optional</i> or <i>required</i></td>\n      <td>\n        Set a message to explain the change. If you set the reason messages to be mandatory in the web interface, failing to supply this value will lead to an error.\n        <p class=\"default-value\">Default value: <code>\"\"</code></p>\n      </td>\n    </tr>\n    <tr>\n      <td class=\"code\">changeRequestName</td>\n      <td><b>string</b><br><i>optional</i></td>\n      <td>\n        Set the change request name, is used only if workflows are enabled. The default value depends on the function called\n        <p class=\"default-value\">Default value: <code>A default string for each function</code></p>\n      </td>\n    </tr>\n    <tr>\n      <td class=\"code\">changeRequestDescription</td>\n      <td><b>string</b><br><i>optional</i></td>\n      <td>\n        Set the change request description, is used only if workflows are enabled.\n        <p class=\"default-value\">Default value: <code>\"\"</code></p>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n\n### Passing parameters\n\nParameters to the API can be sent:\n\n* As part of the URL for resource identification\n\n* As data for POST/PUT requests\n\n  * Directly in JSON format\n\n  * As request arguments\n\n#### As part of the URL for resource identification\n\nParameters in URLs are used to indicate which resource you want to interact with. The function will not work if this resource is missing.\n\n```bash\n# Get the Rule of ID \"id\"\ncurl -H \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/rules/id\n```\n\n\n\nCAUTION: To avoid surprising behavior, do not put a '/' at the end of an URL: it would be interpreted as '/[empty string parameter]' and redirected to '/index', likely not what you wanted to do.\n\n\n#### Sending data for POST/PUT requests\n\n##### Directly in JSON format\n\nJSON format is the preferred way to interact with Rudder API for creating or updating resources.\nYou'll also have to set the *Content-Type* header to **application/json** (without it the JSON content would be ignored).\nIn a `curl` `POST` request, that header can be provided with the `-H` parameter:\n\n```bash\ncurl -X POST -H \"Content-Type: application/json\" ...\n```\n\nThe supplied file must contain a valid JSON: strings need quotes, booleans and integers don't, etc.\n\nThe (human readable) format is:\n\n```json\n{\n  \"key1\": \"value1\",\n  \"key2\": false,\n  \"key3\": 42\n}\n```\n\n\nHere is an example with inlined data:\n\n```bash\n# Update the Rule 'id' with a new name, disabled, and setting it one directive\ncurl -X POST -H \"X-API-Token: yourToken\" -H  \"Content-Type: application/json\"\nhttps://rudder.example.com/rudder/api/rules/latest/{id}\n  -d '{ \"displayName\": \"new name\", \"enabled\": false, \"directives\": \"directiveId\"}'\n```\n\nYou can also pass a supply the JSON in a file:\n\n```bash\n# Update the Rule 'id' with a new name, disabled, and setting it one directive\ncurl -X POST -H \"X-API-Token: yourToken\" -H \"Content-Type: application/json\" https://rudder.example.com/rudder/api/rules/latest/{id} -d @jsonParam\n```\n\nNote that the general parameters view in the previous chapter cannot be passed in a JSON, and you will need to pass them a URL parameters if you want them to be taken into account (you can't mix JSON and request parameters):\n\n```bash\n# Update the Rule 'id' with a new name, disabled, and setting it one directive with reason message \"Reason used\"\ncurl -X POST -H \"X-API-Token: yourToken\" -H \"Content-Type: application/json\" \"https://rudder.example.com/rudder/api/rules/latest/{id}?reason=Reason used\" -d @jsonParam -d \"reason=Reason ignored\"\n```\n\n##### Request parameters\n\nIn some cases, when you have little, simple data to update, JSON can feel bloated. In such cases, you can use\nrequest parameters. You will need to pass one parameter for each data you want to change.\n\nParameters follow the following schema:\n\n```\nkey=value\n```\n\nYou can pass parameters by two means:\n\n* As query parameters: At the end of your url, put a **?** then your first parameter and then a **&** before next parameters. In that case, parameters need to be https://en.wikipedia.org/wiki/Percent-encoding[URL encoded]\n\n```bash\n# Update the Rule 'id' with a new name, disabled, and setting it one directive\ncurl -X POST -H \"X-API-Token: yourToken\"  https://rudder.example.com/rudder/api/rules/latest/{id}?\"displayName=my new name\"&\"enabled=false\"&\"directives=aDirectiveId\"\n```\n\n* As request data: You can pass those parameters in the request data, they won't figure in the URL, making it lighter to read, You can pass a file that contains data.\n\n```bash\n# Update the Rule 'id' with a new name, disabled, and setting it one directive (in file directive-info.json)\ncurl -X POST -H \"X-API-Token: yourToken\"\nhttps://rudder.example.com/rudder/api/rules/latest/{id} -d \"displayName=my new name\" -d \"enabled=false\" -d @directive-info.json\n```\n","license":{"name":"CC-BY-SA 2.0","url":"https://spdx.org/licenses/CC-BY-SA-2.0.html"},"title":"Rudder API","version":"17","x-apisguru-categories":["developer_tools"],"x-logo":{"url":"https://www.rudder.io/wp-content/uploads/2019/11/color_logo_horizontal_dark_bg-1024x176.png"},"x-origin":[{"format":"openapi","url":"https://docs.rudder.io/api/openapi.yml","version":"3.0"}],"x-providerName":"rudder.example.local"},"externalDocs":{"description":"Learn more about Rudder.","url":"https://docs.rudder.io"},"security":[{"API-Tokens":[]}],"tags":[{"description":"Information about API endpoints and versions","name":"API Info"},{"description":"Is alive check","name":"Status"},{"description":"Access compliance data","name":"Compliance"},{"description":"Rules management","name":"Rules"},{"description":"Directives management","name":"Directives"},{"description":"Techniques management","name":"Techniques"},{"description":"Groups management","name":"Groups"},{"description":"Nodes management","name":"Nodes"},{"description":"Inventory processing service","name":"Inventories"},{"description":"Global parameters","name":"Parameters"},{"description":"Campaigns","name":"Campaigns"},{"description":"Import and export zip of policies","name":"Archives"},{"description":"Server configuration","name":"Settings"},{"description":"Internal components and administration","name":"System"},{"description":"**Requires that the `changes-validation` plugin is installed on the server.**\n\nManage change requests.","name":"🧩 Change requests"},{"description":"**Requires that the `cve` plugin is installed on the server.**\n\nManage CVE plugins data and configuration.","name":"🧩 CVE"},{"description":"**Requires that the `system update` plugin is installed on the server.**\n\nFetch System update campaigns results.","name":"🧩 System update campaigns"},{"description":"**Requires that the `datasources` plugin is installed on the server.**\n\nData sources plugin configuration.","name":"🧩 Data sources"},{"description":"**Requires that the `scale-out-relay` plugin is installed on the server.**\n\nManage relays.","name":"🧩 Scale out Relay"},{"description":"**Requires that the `user-management` plugin is installed on the server.**\n\nManage users settings and configuration file.","name":"🧩 User Management"},{"description":"**Requires that the `branding` plugin is installed on the server.**\n\nManage web interface customization.","name":"🧩 Branding"},{"description":"**Requires that the `secret-management` plugin is installed on the server.**\n\nManage secrets variables.","name":"🧩 Secret Management"}],"paths":{"/api/changeRequests":{"get":{"description":"List all change requests","operationId":"listChangeRequests","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listChangeRequests"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/change-request"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Change requests information"}},"summary":"List all change requests","tags":["🧩 Change requests"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/changeRequests --data \"status=open\"\n"}]}},"/archives/export":{"get":{"description":"Get a ZIP archive or rules, directives, techniques and groups with optionally their dependencies","operationId":"export","parameters":[{"description":"IDs (optionally with revision, '+' need to be escaped as '%2B') of rules to include","examples":{"multipleIds":{"summary":"Example of multiple IDs, some with revisions","value":["a0573b59-e5bd-441b-9031-f307aa21a61e","4cba6eee-3a43-4e17-a608-a4941b6d984f%2B35177d0823791a374de9e16a6ab27e6466fbc8c2"]},"oneId":{"summary":"Example of a single ID","value":["a0573b59-e5bd-441b-9031-f307aa21a61e"]}},"explode":false,"in":"query","name":"rules","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"IDs (optionally with revision, '+' need to be escaped as '%2B') of directives to include","examples":{"multipleIds":{"summary":"Example of multiple IDs, some with revisions","value":["a0573b59-e5bd-441b-9031-f307aa21a61e","4cba6eee-3a43-4e17-a608-a4941b6d984f%2B35177d0823791a374de9e16a6ab27e6466fbc8c2"]},"oneId":{"summary":"Example of a single ID","value":["a0573b59-e5bd-441b-9031-f307aa21a61e"]}},"explode":false,"in":"query","name":"directives","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"IDs, ie technique name/technique version (optionally with revision, '+' need to be escaped as '%2B') of techniques to include","examples":{"multipleIds":{"summary":"Example of multiple IDs, some with revisions","value":["userManagement/6.3","fileContent/3.0%2B35177d0823791a374de9e16a6ab27e6466fbc8c2"]},"oneId":{"summary":"Example of a single ID","value":["fileContent/3.0"]}},"explode":false,"in":"query","name":"techniques","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"IDs (optionally with revision, '+' need to be escaped as '%2B') of groups to include","examples":{"multipleIds":{"summary":"Example of multiple IDs, some with revisions","value":["a0573b59-e5bd-441b-9031-f307aa21a61e","4cba6eee-3a43-4e17-a608-a4941b6d984f%2B35177d0823791a374de9e16a6ab27e6466fbc8c2"]},"oneId":{"summary":"Example of a single ID","value":["a0573b59-e5bd-441b-9031-f307aa21a61e"]}},"explode":false,"in":"query","name":"groups","schema":{"items":{"type":"string"},"type":"array"},"style":"form"},{"description":"Scope of dependencies to include in archive, where rule as directives and groups dependencies, directives have techniques dependencies, and techniques and groups don't have dependencies. 'none' means no dependencies will be include, 'all' means that the whole tree will,  'directives' and 'groups' means to include them specifically, 'techniques' means to include both directives and techniques.","examples":{"directivesAndGroups":{"summary":"Include directives and groups, but no techniques","value":["directives","groups"]},"none":{"summary":"Do not include dependencies","value":["none"]}},"explode":false,"in":"query","name":"include","schema":{"items":{"enum":["all (default)","none","directives","techniques","groups"],"type":"string"},"type":"array"},"style":"form"}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"A zip archive with the queried content."}},"summary":"Get a ZIP archive of the requested items and their dependencies","tags":["Archives"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/archives/export?rules=8e522a3e-aa45-43cd-bf33-4e8d04a566f6&include=directives,groups"}]}},"/archives/import":{"post":{"description":"Import a ZIP archive of techniques, directives, groups and rules in a saved in a normalized format into Rudder","operationId":"import","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"archive":{"description":"The ZIP archive file containing policies in a conventional layout and serialization format","format":"binary","type":"string"},"merge":{"description":"Optional merge algo of the import. Default `override-all` means what is in the archive is the new reality. `keep-rule-groups` will keep existing target definition for existing rules (ignore archive value).","enum":["override-all","keep-rule-groups"],"type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["import"],"type":"string"},"data":{"description":"Details about archive import process","properties":{"archiveImported":{"type":"boolean"}},"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Archive imported"}},"summary":"Import a ZIP archive of policies into Rudder","tags":["Archives"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" -X POST https://rudder.example.com/rudder/api/latest/archives/import --form \"archive=@my-archive-file.zip\" --form \"merge=keep-rule-groups\""}]}},"/branding":{"get":{"description":"Get all web interface customization parameters","operationId":"getBrandingConf","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getBrandingConf"],"type":"string"},"data":{"properties":{"branding":{"$ref":"#/components/schemas/branding-conf"}},"required":["branding"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Branding configuration"}},"summary":"Get branding configuration","tags":["🧩 Branding"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/branding\n"}]},"post":{"description":"change color, logo, label etc.","operationId":"updateBRandingConf","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/branding-conf"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateBRandingConf"],"type":"string"},"data":{"properties":{"branding":{"$ref":"#/components/schemas/branding-conf"}},"required":["branding"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Updated"}},"summary":"Update web interface customization","tags":["🧩 Branding"],"x-codeSamples":[{"lang":"curl","source":"update.json:\n\n{\n\t\"displayBar\":true,\n\t\"displayLabel\":false,\n\t\"labelText\":\"Production\",\n\t\"barColor\":{\n\t\t\"red\":1,\n\t\t\"blue\":1,\n\t\t\"green\":1,\n\t\t\"alpha\":1\n\t},\n\t\"labelColor\":{\n\t\t\"red\":0,\n\t\t\"blue\":0,\n\t\t\"green\":0,\n\t\t\"alpha\":1\n\t},\n\t\"wideLogo\":{\n\t\t\"enable\":true\n\t},\n\t\"smallLogo\":{\n\t\t\"enable\":true\n\t},\n\t\"displayBarLogin\":true,\n\t\"displayMotd\":true,\n\t\"motd\":\"Welcome, please sign in:\"\n}\n\ncurl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/branding --header \"Content-type: application/json\" --data @update.json\n\n"}]}},"/branding/reload":{"post":{"description":"Reload the configuration from file","operationId":"reloadBrandingConf","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getBrandingConf"],"type":"string"},"data":{"properties":{"branding":{"$ref":"#/components/schemas/branding-conf"}},"required":["branding"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Branding configuration"}},"summary":"Reload branding file","tags":["🧩 Branding"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/branding/reload\n"}]}},"/campaigns":{"get":{"description":"Get all campaigns details","operationId":"allCampaigns","parameters":[{"$ref":"#/components/parameters/campaign-type"},{"$ref":"#/components/parameters/campaign-status"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["allCampaigns"],"type":"string"},"data":{"properties":{"campaigns":{"items":{"$ref":"#/components/schemas/campaign-details"},"type":"array"}},"required":["campaigns"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign details result"}},"summary":"Get all campaigns details","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/campaigns'\n"}]},"post":{"description":"Save a campaign details","operationId":"saveCampaign","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/campaign-details"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["saveCampaign"],"type":"string"},"data":{"properties":{"campaigns":{"items":{"$ref":"#/components/schemas/campaign-details"},"type":"array"}},"required":["campaigns"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign details result"}},"summary":"Save a campaign","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/campaigns'\n"}]}},"/campaigns/events":{"get":{"description":"Get all campaign events","operationId":"getAllCampaignEvents","parameters":[{"$ref":"#/components/parameters/campaign-type"},{"$ref":"#/components/parameters/campaign-event-status"},{"$ref":"#/components/parameters/campaign-id"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/before"},{"$ref":"#/components/parameters/after"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/asc"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCampaignEvent"],"type":"string"},"data":{"properties":{"campaignEvents":{"items":{"$ref":"#/components/schemas/campaign-event-details"},"type":"array"}},"required":["campaignEvents"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign event details result"}},"summary":"Get all campaign events","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/campaigns/0076a379-f32d-4732-9e91-33ab219d8fde/events'\n"}]}},"/campaigns/events/{id}":{"delete":{"description":"Delete a campaign event details","operationId":"deleteCampaignEvent","parameters":[{"$ref":"#/components/parameters/campaign-event-id-path"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteCampaignEvent"],"type":"string"},"data":{"properties":{"campaignEvents":{"items":{"$ref":"#/components/schemas/campaign-event-details"},"type":"array"}},"required":["campaignEvents"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign event details result"}},"summary":"Delete a campaign event details","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE 'https://rudder.example.com/rudder/api/latest/campaigns/events/0076a379-f32d-4732-9e91-33ab219d8fde'\n"}]},"get":{"description":"Get a campaign event details","operationId":"getCampaignEvent","parameters":[{"$ref":"#/components/parameters/campaign-event-id-path"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCampaignEvent"],"type":"string"},"data":{"properties":{"campaignEvents":{"items":{"$ref":"#/components/schemas/campaign-event-details"},"type":"array"}},"required":["campaignEvents"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign details result"}},"summary":"Get a campaign event details","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/campaigns/events/0076a379-f32d-4732-9e91-33ab219d8fde'\n"}]},"post":{"description":"Update an existing event","operationId":"saveCampaignEvent","parameters":[{"$ref":"#/components/parameters/campaign-event-id-path"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["saveCampaignEvent"],"type":"string"},"data":{"properties":{"campaignEvents":{"items":{"$ref":"#/components/schemas/campaign-event-details"},"type":"array"}},"required":["campaignEvents"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign event details result"}},"summary":"Update an existing event","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/campaigns/events/0076a379-f32d-4732-9e91-33ab219d8fde'\n"}]}},"/campaigns/{id}":{"delete":{"description":"Delete a campaign","operationId":"deleteCampaign","parameters":[{"$ref":"#/components/parameters/campaign-id-path"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteCampaign"],"type":"string"},"data":{"properties":{"campaigns":{"items":{"$ref":"#/components/schemas/campaign-details"},"type":"array"}},"required":["campaigns"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign details result"}},"summary":"Delete a campaign","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE 'https://rudder.example.com/rudder/api/latest/campaigns/0076a379-f32d-4732-9e91-33ab219d8fde'\n"}]},"get":{"description":"Get a campaign details","operationId":"getCampaign","parameters":[{"$ref":"#/components/parameters/campaign-id-path"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCampaign"],"type":"string"},"data":{"properties":{"campaigns":{"items":{"$ref":"#/components/schemas/campaign-details"},"type":"array"}},"required":["campaigns"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign details result"}},"summary":"Get a campaign details","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/campaigns/0076a379-f32d-4732-9e91-33ab219d8fde'\n"}]}},"/campaigns/{id}/events":{"get":{"description":"Get campaign events for a campaign","operationId":"getEventsCampaign","parameters":[{"$ref":"#/components/parameters/campaign-id-path"},{"$ref":"#/components/parameters/campaign-type"},{"$ref":"#/components/parameters/campaign-event-status"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/before"},{"$ref":"#/components/parameters/after"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/asc"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getEventsCampaign"],"type":"string"},"data":{"properties":{"campaignEvents":{"items":{"$ref":"#/components/schemas/campaign-event-details"},"type":"array"}},"required":["campaignEvents"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign details result"}},"summary":"Get campaign events for a campaign","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/campaigns/0076a379-f32d-4732-9e91-33ab219d8fde/events'\n"}]}},"/campaigns/{id}/schedule":{"post":{"description":"Schedule a campaign event for a campaign","operationId":"scheduleCampaign","parameters":[{"$ref":"#/components/parameters/campaign-id-path"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["scheduleCampaign"],"type":"string"},"data":{"properties":{"campaignEvents":{"items":{"$ref":"#/components/schemas/campaign-event-details"},"type":"array"}},"required":["campaignEvents"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign events details result"}},"summary":"Schedule a campaign event for a campaign","tags":["Campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/campaigns/0076a379-f32d-4732-9e91-33ab219d8fde/schedule'\n"}]}},"/changeRequests/{changeRequestId}":{"delete":{"description":"Refuse a change request","operationId":"declineChangeRequest","parameters":[{"$ref":"#/components/parameters/change-request-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["declineChangeRequest"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/change-request"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Change requests information"}},"summary":"Decline a request details","tags":["🧩 Change requests"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE https://rudder.example.com/rudder/api/latest/changeRequests/43"}]},"get":{"description":"Get a change request details","operationId":"changeRequestDetails","parameters":[{"$ref":"#/components/parameters/change-request-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["changeRequestDetails"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/change-request"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Change requests information"}},"summary":"Get a change request details","tags":["🧩 Change requests"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/changeRequests --data \"status=open\"\n"}]},"post":{"description":"Update a change request","operationId":"updateChangeRequest","parameters":[{"$ref":"#/components/parameters/change-request-id"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"description":{"description":"Change request description","type":"string"},"name":{"description":"Change request name","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateChangeRequest"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/change-request"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Change requests information"}},"summary":"Update a request details","tags":["🧩 Change requests"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/changeRequests/42  --data \"name=new Name of change request\" -d \"description=add a new description\""}]}},"/changeRequests/{changeRequestId}/accept":{"post":{"description":"Accept a change request","operationId":"acceptChangeRequest","parameters":[{"$ref":"#/components/parameters/change-request-id"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"description":"New status of the change request","enum":["pending deployment","deployed"],"example":"deployed","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["acceptChangeRequest"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/change-request"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Change requests information"}},"summary":"Accept a request details","tags":["🧩 Change requests"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/changeRequests --data \"status=open\""}]}},"/compliance":{"get":{"description":"Get current global compliance of a Rudder server","operationId":"getGlobalCompliance","parameters":[{"$ref":"#/components/parameters/compliance-percent-precision"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getGlobalCompliance"],"type":"string"},"data":{"properties":{"globalCompliance":{"properties":{"compliance":{"description":"Global compliance level (`-1` when no policies are defined)","example":57,"format":"integer","type":"number"},"complianceDetails":{"properties":{"error":{"example":1.32,"format":"float","type":"number"},"noReport":{"example":36.18,"format":"float","type":"number"},"successAlreadyOK":{"example":48.68,"format":"float","type":"number"},"successNotApplicable":{"example":5.92,"format":"float","type":"number"},"successRepaired":{"example":2.63,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":2.63,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":2.63,"format":"float","type":"number"}},"type":"object"}},"required":["compliance"],"type":"object"}},"required":["globalCompliance"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"example":"success","type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Global compliance","tags":["Compliance"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/compliance?prettify=true'"}]}},"/compliance/directives":{"get":{"description":"Get current compliance of all the nodes of a Rudder server","operationId":"getDirectivesCompliance","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getDirectiveComplianceId"],"type":"string"},"data":{"properties":{"directivesCompliance":{"properties":{"compliance":{"description":"Directive compliance level","example":83.34,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":1.32,"format":"float","type":"number"},"noReport":{"example":7.45,"format":"float","type":"number"},"successAlreadyOK":{"example":66.68,"format":"float","type":"number"},"successNotApplicable":{"example":16.66,"format":"float","type":"number"},"successRepaired":{"example":2.63,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":2.63,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":2.63,"format":"float","type":"number"}},"type":"object"},"id":{"description":"id of the directive","example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid","type":"string"},"mode":{"enum":["full-compliance","changes-only","reports-disabled"],"type":"string"},"name":{"description":"Name of the directive","example":"test directive","type":"string"},"nodes":{"$ref":"#/components/schemas/directive-node-compliance"},"rules":{"$ref":"#/components/schemas/directive-rule-compliance"}},"required":["id","name","mode","compliance","complianceDetails","rules","nodes"],"type":"object"}},"required":["directivesCompliance"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"example":"success","type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Compliance details for all directives","tags":["Compliance"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/compliance/directives'"}]}},"/compliance/directives/{directiveId}":{"get":{"description":"Get current compliance of a directive of a Rudder server","operationId":"getDirectiveComplianceId","parameters":[{"description":"format of export","examples":{"oneId":{"summary":"CSV format for the export","value":["csv"]}},"explode":false,"in":"query","name":"format","schema":{"type":"string"},"style":"form"},{"$ref":"#/components/parameters/directive-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/compliance-directive-id"},{"$ref":"#/components/schemas/compliance-directive-id-csv"}]}}},"description":"Success"}},"summary":"Compliance details by directive","tags":["Compliance"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/compliance/directives/704afe7b-1a65-4d2e-b4c9-54f4f548c316'"}]}},"/compliance/nodes":{"get":{"description":"Get current compliance of all the nodes of a Rudder server","operationId":"getNodesCompliance","parameters":[{"$ref":"#/components/parameters/compliance-level"},{"$ref":"#/components/parameters/compliance-percent-precision"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getNodesCompliance"],"type":"string"},"data":{"properties":{"nodes":{"items":{"properties":{"compliance":{"description":"Rule compliance level","example":57.43,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":1.32,"format":"float","type":"number"},"noReport":{"example":36.18,"format":"float","type":"number"},"successAlreadyOK":{"example":48.68,"format":"float","type":"number"},"successNotApplicable":{"example":5.92,"format":"float","type":"number"},"successRepaired":{"example":2.63,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":2.63,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":2.63,"format":"float","type":"number"}},"type":"object"},"id":{"description":"id of the node","example":"f37f4928-fcb5-4acf-a422-d40f123a9670","format":"uuid","type":"string"},"mode":{"enum":["full-compliance","changes-only","reports-disabled"],"type":"string"}},"required":["id","mode","compliance","complianceDetails"],"type":"object"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"example":"success","type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Compliance details for all nodes","tags":["Compliance"],"x-codeSamples":[{"lang":"curl","source":"# To get the compliance information of a specific node\ncurl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/compliance/nodes?level=2'\n\n# To get the list of nodes which have a compliance <100 for a given directive (c5881268-5612-48f2-8ef4-0ab8387fccd6) \ncurl -k -H \"X-API-Token: yourToken\" -X GET \"https://rudder.example.com/rudder/api/latest/compliance/nodes?level=3\" \\\n| jq '[.data.nodes[] \n  | {\n      \"nodeid\":.id, \n      \"dirs\": [.rules[].directives[]] \n        | map(select(.id == \"c5881268-5612-48f2-8ef4-0ab8387fccd6\" and .compliance < 100)) \n    }\n  ] \n| map(select(.dirs | length != 0)) \n| [.[] |\n    {\"nodeid\":.nodeid, \"comp\":.dirs[0].complianceDetails}\n  ]'\n\n"}]}},"/compliance/nodes/{nodeId}":{"get":{"description":"Get current compliance of a node of a Rudder server","operationId":"getNodeCompliance","parameters":[{"$ref":"#/components/parameters/compliance-level"},{"$ref":"#/components/parameters/compliance-percent-precision"},{"$ref":"#/components/parameters/node-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getNodeCompliance"],"type":"string"},"data":{"properties":{"nodes":{"items":{"properties":{"compliance":{"description":"Rule compliance level","example":57.43,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":1.32,"format":"float","type":"number"},"noReport":{"example":36.18,"format":"float","type":"number"},"successAlreadyOK":{"example":48.68,"format":"float","type":"number"},"successNotApplicable":{"example":5.92,"format":"float","type":"number"},"successRepaired":{"example":2.63,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":2.63,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":2.63,"format":"float","type":"number"}},"type":"object"},"id":{"description":"id of the node","example":"f37f4928-fcb5-4acf-a422-d40f123a9670","format":"uuid","type":"string"},"mode":{"enum":["full-compliance","changes-only","reports-disabled"],"type":"string"}},"required":["id","mode","compliance","complianceDetails"],"type":"object"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"example":"success","type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Compliance details by node","tags":["Compliance"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/compliance/nodes/root?level=1'"}]}},"/compliance/rules":{"get":{"description":"Get current compliance of all the rules of a Rudder server","operationId":"getRulesCompliance","parameters":[{"$ref":"#/components/parameters/compliance-level"},{"$ref":"#/components/parameters/compliance-percent-precision"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getRulesCompliance"],"type":"string"},"data":{"properties":{"rules":{"items":{"properties":{"compliance":{"description":"Rule compliance level","example":57.43,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":1.32,"format":"float","type":"number"},"noReport":{"example":36.18,"format":"float","type":"number"},"successAlreadyOK":{"example":48.68,"format":"float","type":"number"},"successNotApplicable":{"example":5.92,"format":"float","type":"number"},"successRepaired":{"example":2.63,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":2.63,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":2.63,"format":"float","type":"number"}},"type":"object"},"id":{"description":"id of the rule","example":"f37f4928-fcb5-4acf-a422-d40f123a9670","format":"uuid","type":"string"},"mode":{"enum":["full-compliance","changes-only","reports-disabled"],"type":"string"}},"required":["id","mode","compliance","complianceDetails"],"type":"object"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"example":"success","type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Compliance details for all rules","tags":["Compliance"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/compliance/rules?level=2'"}]}},"/compliance/rules/{ruleId}":{"get":{"description":"Get current compliance of a rule of a Rudder server","operationId":"getRuleCompliance","parameters":[{"$ref":"#/components/parameters/compliance-level"},{"$ref":"#/components/parameters/compliance-percent-precision"},{"$ref":"#/components/parameters/rule-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getRuleCompliance"],"type":"string"},"data":{"properties":{"rules":{"items":{"properties":{"compliance":{"description":"Rule compliance level","example":57.43,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":1.32,"format":"float","type":"number"},"noReport":{"example":36.18,"format":"float","type":"number"},"successAlreadyOK":{"example":48.68,"format":"float","type":"number"},"successNotApplicable":{"example":5.92,"format":"float","type":"number"},"successRepaired":{"example":2.63,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":2.63,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":2.63,"format":"float","type":"number"}},"type":"object"},"id":{"description":"id of the rule","example":"f37f4928-fcb5-4acf-a422-d40f123a9670","format":"uuid","type":"string"},"mode":{"enum":["full-compliance","changes-only","reports-disabled"],"type":"string"}},"required":["id","mode","compliance","complianceDetails"],"type":"object"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"example":"success","type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Compliance details by rule","tags":["Compliance"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/compliance/rules?level=2'"}]}},"/cve":{"get":{"description":"Get all CVE details","operationId":"getAllCve","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getAllCve"],"type":"string"},"data":{"properties":{"CVEs":{"items":{"$ref":"#/components/schemas/cveDetails"},"type":"array"}},"required":["CVEs"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"CVE details result"}},"summary":"Get all CVE details","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/cve'\n"}]}},"/cve/check":{"post":{"description":"Trigger a CVE check","operationId":"checkCVE","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["checkCVE"],"type":"string"},"data":{"properties":{"cveChecks":{"items":{"$ref":"#/components/schemas/cveCheck"},"type":"array"}},"required":["cveChecks"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"CVE check result"}},"summary":"Trigger a CVE check","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/cve/check'\n"}]}},"/cve/check/config":{"get":{"description":"Get CVE check config","operationId":"getCVECheckConfiguration","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCVECheckConfiguration"],"type":"string"},"data":{"properties":{"apiKey":{"description":"Token used by to contact the API to check CVE","type":"string"},"url":{"description":"Url used to check CVE","example":"https://api.rudder.io/cve/v1/","type":"string"}},"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"CVE check config"}},"summary":"Get CVE check config","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/cve/check/config'\n"}]},"post":{"description":"Update cve check config","operationId":"updateCVECheckConfiguration","requestBody":{"content":{"application/json":{"schema":{"description":"CVE check config","properties":{"apiKey":{"description":"Token used by to contact the API to check CVE","type":"string"},"url":{"description":"Url used to check CVE","example":"https://api.rudder.io/cve/v1/","type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateCVECheckConfiguration"],"type":"string"},"data":{"properties":{"apiKey":{"description":"Token used by to contact the API to check CVE","type":"string"},"url":{"description":"Url used to check CVE","example":"https://api.rudder.io/cve/v1/","type":"string"}},"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"new CVE check config"}},"summary":"Update cve check config","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/cve/check/config'\n"}]}},"/cve/check/last":{"get":{"description":"Get last CVE check result","operationId":"getLastCVECheck","parameters":[{"$ref":"#/components/parameters/cve-group-id"},{"$ref":"#/components/parameters/cve-node-id"},{"$ref":"#/components/parameters/cve-cve-id"},{"$ref":"#/components/parameters/cve-package"},{"$ref":"#/components/parameters/cve-severity"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getLastCVECheck"],"type":"string"},"data":{"properties":{"CVEChecks":{"items":{"$ref":"#/components/schemas/cveCheck"},"type":"array"}},"required":["CVEChecks"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Last CVE check"}},"summary":"Get last CVE check result","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/cve/check/last'\n"}]}},"/cve/list":{"post":{"description":"Get CVE details, from a list passed as parameter","operationId":"getCVEList","requestBody":{"content":{"application/json":{"schema":{"description":"List of CVE ids you want","properties":{"cveIds":{"items":{"description":"CVE id","example":"CVE-2019-5953","type":"string"},"type":"array"},"maxScore":{"description":"Only send CVE with a score lower than the value","example":8.5,"format":"A score between 0 and 10 as a float","type":"string"},"minScore":{"description":"Only send CVE with a score higher than the value","example":7.5,"format":"A score between 0 and 10 as a float","type":"string"},"onlyScore":{"default":false,"description":"Only send score of the cve, and not the whole detailed list","example":true,"type":"boolean"},"publishedDate":{"description":"Only send CVE with a publication date more recent than the value","format":"date","type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCVEList"],"type":"string"},"data":{"properties":{"CVEs":{"items":{"$ref":"#/components/schemas/cveDetails"},"type":"array"}},"required":["CVEs"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"CVE list"}},"summary":"Get a list of CVE details","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/cve/list'\n"}]}},"/cve/update":{"post":{"description":"Update CVE database from remote source","operationId":"updateCVE","requestBody":{"content":{"application/json":{"schema":{"description":"CVE update config","properties":{"url":{"description":"Url used to update CVE, will default to one set in config","example":"https://nvd.nist.gov/feeds/json/cve/1.1","type":"string"},"years":{"items":{"description":"Year of the CVE archive to download","example":"2019","type":"string"},"type":"array"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateCVE"],"type":"string"},"data":{"properties":{"CVEs":{"example":12345,"type":"integer"}},"required":["CVEs"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"updated CVE count"}},"summary":"Update CVE database from remote source","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/cve/update'\n"}]}},"/cve/update/fs":{"post":{"description":"Update CVE database from file system","operationId":"readCVEfromFS","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["readCVEfromFS"],"type":"string"},"data":{"properties":{"CVEs":{"example":12345,"type":"integer"}},"required":["CVEs"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"updated CVE count"}},"summary":"Update CVE database from file system","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/cve/update/FS'\n"}]}},"/cve/{cveId}":{"get":{"description":"Get a CVE details","operationId":"getCve","parameters":[{"$ref":"#/components/parameters/cve-cve-id-path"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCve"],"type":"string"},"data":{"properties":{"CVEs":{"items":{"$ref":"#/components/schemas/cveDetails"},"type":"array"}},"required":["CVEs"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"CVE details result"}},"summary":"Get a CVE details","tags":["🧩 CVE"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/cve/CVE-2019-5953'\n"}]}},"/datasources":{"get":{"description":"Get the configuration of all present data sources","operationId":"getAllDataSources","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getAllDataSources"],"type":"string"},"data":{"properties":{"datasources":{"items":{"$ref":"#/components/schemas/datasource"},"type":"array"}},"required":["datasources"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Data sources information"}},"summary":"List all data sources","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/datasources'"}]},"put":{"description":"Create a new data source","operationId":"createDataSource","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/datasource"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["createDataSource"],"type":"string"},"data":{"description":"Information about the data sources","properties":{"datasources":{"items":{"$ref":"#/components/schemas/datasource"},"type":"array"}},"required":["datasources"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Created"}},"summary":"Create a data source","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request PUT https://rudder.example.com/rudder/api/latest/datasources --header \"Content-type: application/json\" --data @datasources.json"}]}},"/datasources/reload":{"post":{"description":"Update properties from all data source on all nodes. The call is asynchronous.","operationId":"ReloadAllDatasourcesAllNodes","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["ReloadAllDatasourcesAllNodes"],"type":"string"},"data":{"example":"Data for all nodes, for all configured data sources are going to be updated","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Data source reloaded"}},"summary":"Update properties from data sources","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/datasources/reload"}]}},"/datasources/reload/{datasourceId}":{"post":{"description":"Update properties from all data source on all nodes. The call is asynchronous.","operationId":"ReloadOneDatasourceAllNodes","parameters":[{"$ref":"#/components/parameters/datasource-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["ReloadOneDatasourceAllNodes"],"type":"string"},"data":{"example":"Data for all nodes, for the 'test-data-source' data source are going to be updated","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Data source reloaded"}},"summary":"Update properties from data sources","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/datasources/reload/datasourceId"}]}},"/datasources/{datasourceId}":{"delete":{"description":"Delete a data source configuration","operationId":"deleteDataSource","parameters":[{"$ref":"#/components/parameters/datasource-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteDataSource"],"type":"string"},"data":{"properties":{"datasources":{"items":{"$ref":"#/components/schemas/datasource"},"type":"array"}},"required":["datasources"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Data source information"}},"summary":"Delete a data source","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE https://rudder.example.com/rudder/api/latest/datasources/my-data-source"}]},"get":{"description":"Get the configuration of a data source","operationId":"getDataSource","parameters":[{"$ref":"#/components/parameters/datasource-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getDataSource"],"type":"string"},"data":{"properties":{"datasources":{"items":{"$ref":"#/components/schemas/datasource"},"type":"array"}},"required":["datasources"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Data source information"}},"summary":"Get data source configuration","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/datasources/my-data-source"}]},"post":{"description":"Update the configuration of a data source","operationId":"updateDataSource","parameters":[{"$ref":"#/components/parameters/datasource-id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/datasource"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateDataSource"],"type":"string"},"data":{"properties":{"datasources":{"items":{"$ref":"#/components/schemas/datasource"},"type":"array"}},"required":["datasources"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Data source information"}},"summary":"Update a data source configuration","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"cat disable-datasource-1.json.json\n{\n  \"description\": \"This data source is temporary no more used and so disabled\",\n  \"enabled\": false\n}\n\ncurl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/datasources/my-data-source --header \"Content-type: application/json\" --data @disable-datasource-1.json.json"}]}},"/directives":{"get":{"description":"List all directives","operationId":"listDirectives","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listDirectives"],"type":"string"},"data":{"properties":{"directives":{"items":{"$ref":"#/components/schemas/directive"},"type":"array"}},"required":["directives"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Directives information"}},"summary":"List all directives","tags":["Directives"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/directives"}]},"put":{"description":"Create a new directive from provided parameters. You can specify a source directive to clone it.","operationId":"createDirective","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/directive-new"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["createDirective"],"type":"string"},"data":{"properties":{"directives":{"items":{"$ref":"#/components/schemas/directive"},"type":"array"}},"required":["directives"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Directives information"}},"summary":"Create a directive","tags":["Directives"],"x-codeSamples":[{"lang":"curl","source":"directives.json:\n\n{\n  \"id\": \"cf2a6c72-18ae-4f82-a12c-0b887792db41\",\n  \"displayName\": \"Example Directive\",\n  \"shortDescription\": \"This in an example Directive to use in Rudder api documentation\",\n  \"longDescription\": \"\",\n  \"techniqueName\": \"genericVariableDefinition\",\n  \"techniqueVersion\": \"2.0\",\n  \"tags\": {\n    \"env\" : \"production\",\n    \"country\" : \"FR\"\n  },\n  \"parameters\": {\n    \"section\": {\n      \"name\": \"sections\",\n      \"sections\": [\n        {\n          \"section\": {\n            \"name\": \"Variable definition\",\n            \"vars\": [\n              {\n                \"var\": {\n                  \"name\": \"GENERIC_VARIABLE_CONTENT\",\n                  \"value\": \"new variable content\"\n                }\n              },\n              {\n                \"var\": {\n                  \"name\": \"GENERIC_VARIABLE_NAME\",\n                  \"value\": \"new_variable\"\n                }\n              }\n            ]\n          }\n        }\n      ]\n    }\n  },\n  \"priority\": 3,\n  \"enabled\": true,\n  \"system\": false,\n  \"policyMode\": \"default\"\n}\n\ncurl --header \"X-API-Token: yourToken\" --request PUT https://rudder.example.com/rudder/api/latest/directives --header \"Content-type: application/json\" --data @directive.json\n\n"}]}},"/directives/{directiveId}":{"delete":{"description":"Delete a directive","operationId":"deleteDirective","parameters":[{"$ref":"#/components/parameters/directive-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteDirective"],"type":"string"},"data":{"properties":{"directives":{"items":{"$ref":"#/components/schemas/directive"},"type":"array"}},"required":["directives"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Directives information"}},"summary":"Delete a directive","tags":["Directives"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE https://rudder.example.com/rudder/api/latest/directives/17dadf50-6056-4c8b-a935-6b97d14b89a7"}]},"get":{"description":"Get all information about a given directive","operationId":"directiveDetails","parameters":[{"$ref":"#/components/parameters/directive-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["directiveDetails"],"type":"string"},"data":{"properties":{"directives":{"items":{"$ref":"#/components/schemas/directive"},"type":"array"}},"required":["directives"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Directives information"}},"summary":"Get directive details","tags":["Directives"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/directives/17dadf50-6056-4c8b-a935-6b97d14b89a7"}]},"post":{"description":"Update directive information","operationId":"updateDirective","parameters":[{"$ref":"#/components/parameters/directive-id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/directive"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateDirective"],"type":"string"},"data":{"properties":{"directives":{"items":{"$ref":"#/components/schemas/directive"},"type":"array"}},"required":["directives"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Directives information"}},"summary":"Update a directive details","tags":["Directives"],"x-codeSamples":[{"lang":"curl","source":"directive.json:\n{\n  \"longDescription\": \"Add a loooooooooooong description\",\n  \"parameters\": {\n    \"section\": {\n      \"name\": \"sections\",\n      \"sections\": [\n        {\n          \"section\": {\n            \"name\": \"Variable definition\",\n            \"vars\": [\n              {\n                \"var\": {\n                  \"name\": \"GENERIC_VARIABLE_CONTENT\",\n                  \"value\": \"Change Variable Content\"\n                }\n              },\n              {\n                \"var\": {\n                  \"name\": \"GENERIC_VARIABLE_NAME\",\n                  \"value\": \"new_variable\"\n                }\n              }\n            ]\n          }\n        }\n      ]\n    }\n  },\n  \"priority\": 5\n}\n\ncurl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/directives/cf2a6c72-18ae-4f82-a12c-0b887792db41 --header \"Content-type: application/json\" --data @directive.json"}]}},"/directives/{directiveId}/check":{"post":{"description":"Check that update on a directive is valid","operationId":"checkDirective","parameters":[{"$ref":"#/components/parameters/directive-id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/directive"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["checkDirective"],"type":"string"},"data":{"properties":{"directives":{"items":{"$ref":"#/components/schemas/directive"},"type":"array"}},"required":["directives"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Directives information"}},"summary":"Check that update on a directive is valid","tags":["Directives"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/directives/17dadf50-6056-4c8b-a935-6b97d14b89a7/check  --data \"displayName=Name of new directive\""}]}},"/groups":{"get":{"description":"List all groups","operationId":"listGroups","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listGroups"],"type":"string"},"data":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/group"},"type":"array"}},"required":["groups"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups information"}},"summary":"List all groups","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/groups"}]},"put":{"description":"Create a new group based in provided parameters","operationId":"createGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/group-new"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["createGroup"],"type":"string"},"data":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/group"},"type":"array"}},"required":["groups"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Group information"}},"summary":"Create a group","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"groups.json:\n{\n \"category\": \"c355f46e-11b0-4c7a-aedd-6a5f3b0303b6\",\n \"displayName\": \"Example group\",\n \"description\": \"This is an example Group to use in Rudder api documentation\",\n \"query\":\n   {\"select\":\"node\",\"composition\":\"Or\",\"where\":\n     [\n       {\"objectType\":\"node\",\"attribute\":\"nodeId\",\"comparator\":\"eq\",\"value\":\"1ae6ccfe-00ba-44c0-b1aa-362d2f386032\"},\n       {\"objectType\":\"node\",\"attribute\":\"nodeId\",\"comparator\":\"eq\",\"value\":\"e4a80fd8-373e-45fc-ad94-2ae618be32e3\"}\n     ]\n   },\n  \"dynamic\": true,\n  \"enabled\": true\n}\n\ncurl --header \"X-API-Token: yourToken\" --request PUT https://rudder.example.com/rudder/api/latest/groups --header \"Content-Type: application/json\" --data @group.json\n\n"}]}},"/groups/categories":{"put":{"description":"Create a new group category","operationId":"CreateGroupCategory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/group-category"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["CreateGroupCategory"],"type":"string"},"data":{"properties":{"groupCategories":{"items":{"$ref":"#/components/schemas/group-category"},"type":"array"}},"required":["groupCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups category information"}},"summary":"Create a group category","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request PUT 'https://rudder.example.com/rudder/api/latest/groups/categories' --data \"name=new category name\" -d \"parent=4306143d-eabf-4478-b7b1-1616f4aa02b5\" -d \"description=A new category created via API'\n"}]}},"/groups/categories/{groupCategoryId}":{"delete":{"description":"Delete a group category. It must have no child groups and no children categories.","operationId":"DeleteGroupCategory","parameters":[{"$ref":"#/components/parameters/group-category-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["DeleteGroupCategory"],"type":"string"},"data":{"properties":{"groupCategories":{"items":{"$ref":"#/components/schemas/group-category"},"type":"array"}},"required":["groupCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups category information"}},"summary":"Delete group category","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE 'https://rudder.example.com/rudder/api/latest/groups/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5'"}]},"get":{"description":"Get detailed information about a group category","operationId":"GetGroupCategoryDetails","parameters":[{"$ref":"#/components/parameters/group-category-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["GetGroupCategoryDetails"],"type":"string"},"data":{"properties":{"groupCategories":{"items":{"$ref":"#/components/schemas/group-category"},"type":"array"}},"required":["groupCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups category information"}},"summary":"Get group category details","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/groups/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5'"}]},"post":{"description":"Update detailed information about a group category","operationId":"UpdateGroupCategory","parameters":[{"$ref":"#/components/parameters/group-category-id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/group-category-update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["UpdateGroupCategory"],"type":"string"},"data":{"properties":{"groupCategories":{"items":{"$ref":"#/components/schemas/group-category"},"type":"array"}},"required":["groupCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups category information"}},"summary":"Update group category details","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/groups/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5' --data \"name=new category name\"\n"}]}},"/groups/tree":{"get":{"description":"Get all available groups and their categories in a tree","operationId":"GetGroupTree","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["GetGroupTree"],"type":"string"},"data":{"example":{"categories":[{"categories":[],"description":"That category holds all the system and special target","groups":[{"description":"All nodes known by Rudder directly connected to the root server","displayName":"All nodes managed by root policy server","dynamic":true,"enabled":true,"id":"hasPolicyServer-root","nodeIds":["dd404bda-2785-4959-abaa-8f37a0bbd85e","f6223b0e-e2aa-4d1f-b6d1-74de8ea8e513","root"],"query":{"composition":"And","select":"nodeAndPolicyServer","where":[{"attribute":"policyServerId","comparator":"eq","objectType":"node","value":"root"}]}}],"id":"SystemGroups","name":"System groups","parent":"GroupRoot"},{"categories":[],"description":"","groups":[{"description":"","displayName":"Linux nodes","dynamic":false,"enabled":true,"id":"79d83ff9-24d8-4be6-b1f7-cbb1c173f7a5","nodeIds":[],"query":{"composition":"And","select":"node","where":[{"attribute":"OS","comparator":"eq","objectType":"node","value":"Linux"}]}}],"id":"38dd2107-a73b-45fb-916d-e110312abb87","name":"production groups","parent":"GroupRoot"}],"description":"This is the root category for the groups (both dynamic and static) and group categories","groups":[{"description":"","displayName":"Test Clients","dynamic":true,"enabled":true,"id":"af208515-c2f2-4577-bbf4-9fffebbe6629","nodeIds":[],"query":{"composition":"Or","select":"node","where":[{"attribute":"nodeHostname","comparator":"regex","objectType":"node","value":"servername.*company.net"},{"attribute":"nodeHostname","comparator":"regex","objectType":"node","value":"lt serverbla.*company.net"}]}},{"description":"","displayName":"Test Clients","dynamic":true,"enabled":true,"id":"d7634b2d-7189-422b-9971-24c29b75da46","nodeIds":[],"query":{"composition":"Or","select":"node","where":[{"attribute":"nodeHostname","comparator":"regex","objectType":"node","value":"servername.*company.net"},{"attribute":"nodeHostname","comparator":"regex","objectType":"node","value":"lt serverbla.*company.net"}]}}],"id":"GroupRoot","name":"Root of the group and group categories","parent":"GroupRoot"},"properties":{"groupCategories":{"description":"Group tree","example":null,"type":"object"}},"required":["groupCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups information"}},"summary":"Get groups tree","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/groups/tree\n"}]}},"/groups/{groupId}":{"delete":{"description":"Update detailed information about a group","operationId":"deleteGroup","parameters":[{"$ref":"#/components/parameters/group-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteGroup"],"type":"string"},"data":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/group"},"type":"array"}},"required":["groups"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups information"}},"summary":"Delete a group","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE 'https://rudder.example.com/rudder/api/latest/groups/17dadf50-6056-4c8b-a935-6b97d14b89a7'"}]},"get":{"description":"Get detailed information about a group","operationId":"groupDetails","parameters":[{"$ref":"#/components/parameters/group-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["groupDetails"],"type":"string"},"data":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/group"},"type":"array"}},"required":["groups"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups information"}},"summary":"Get group details","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/groups/17dadf50-6056-4c8b-a935-6b97d14b89a7'"}]},"post":{"description":"Update detailed information about a group","operationId":"updateGroup","parameters":[{"$ref":"#/components/parameters/group-id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/group-update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateGroup"],"type":"string"},"data":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/group"},"type":"array"}},"required":["groups"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups information"}},"summary":"Update group details","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/groups/17dadf50-6056-4c8b-a935-6b97d14b89a7' --data \"displayName=New name of group\""}]}},"/groups/{groupId}/reload":{"post":{"description":"Recompute the content of a group","operationId":"reloadGroup","parameters":[{"$ref":"#/components/parameters/group-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["reloadGroup"],"type":"string"},"data":{"properties":{"groups":{"items":{"$ref":"#/components/schemas/group"},"type":"array"}},"required":["groups"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups information"}},"summary":"Reload a group","tags":["Groups"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/groups/17dadf50-6056-4c8b-a935-6b97d14b89a7/reload'"}]}},"/info":{"get":{"description":"List all endpoints and their version","operationId":"apiGeneralInformations","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["apiGeneralInformations"],"type":"string"},"data":{"properties":{"availableVersions":{"items":{"$ref":"#/components/schemas/api-versions"},"type":"array"},"documentation":{"description":"Link to Rudder API description","type":"string"},"endpoints":{"items":{"$ref":"#/components/schemas/api-endpoints"},"type":"array"}},"required":["documentation","availableVersions","endpoints"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"API endpoints"}},"summary":"List all endoints","tags":["API Info"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/info\n"}]}},"/info/details/{endpointName}":{"get":{"description":"Get the description and the list of supported version for one API endpoint","operationId":"apiInformations","parameters":[{"description":"Name of the endpoint for which one wants information","in":"path","name":"endpointName","required":true,"schema":{"example":"listAcceptedNodes","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["apiInformations"],"type":"string"},"data":{"properties":{"documentation":{"description":"Link to Rudder API description","type":"string"},"endpointName":{"description":"The endpoint name as key and the endpoint description as value","type":"string"},"endpoints":{"items":{"description":"Supported path and version for that endpoint","example":"{\n  \"listAcceptedNodes\": \"List all accepted nodes with configurable details level\",\n  \"GET\": \"[8,9,10,11,12,13] /nodes\"\n}","properties":{"httpVerb":{"format":"The HTTP verb for the endpoint for key and the supported version and API path for value"},"version":{"$ref":"#/components/schemas/api-version"}},"type":"object"},"type":"array"}},"required":["documentation","endpointName","endpoints"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"API Endpoint information"}},"summary":"Get information about one API endpoint","tags":["API Info"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/info/details/listAcceptedNodes\n"}]}},"/info/{sectionId}":{"get":{"description":"Get all endpoints in the given section with their supported version.","operationId":"apiSubInformations","parameters":[{"description":"Id of the API section","in":"path","name":"sectionId","required":true,"schema":{"example":"nodes","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["apiSubInformations"],"type":"string"},"data":{"properties":{"availableVersions":{"items":{"$ref":"#/components/schemas/api-versions"},"type":"array"},"documentation":{"description":"Link to Rudder API description","type":"string"},"endpoints":{"items":{"$ref":"#/components/schemas/api-endpoints"},"type":"array"}},"required":["documentation","availableVersions","endpoints"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Endpoint information"}},"summary":"Get information on endpoint in a section","tags":["API Info"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/info/nodes\n"}]}},"/inventories/info":{"get":{"description":"Provide information about the current state of the inventory processor","operationId":"queueInformation","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["queueInformation"],"type":"string"},"data":{"description":"Information about the service","properties":{"queueMaxSize":{"example":50,"type":"integer"},"queueSaturated":{"description":"Is the inventory queue full","example":false,"type":"boolean"}},"required":["queueMaxSize","queueSaturated"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Inventories information"}},"summary":"Get information about inventory processing queue","tags":["Inventories"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/"}]}},"/inventories/upload":{"post":{"description":"Upload an inventory to the web application","operationId":"uploadInventory","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"description":"The inventory file. The original file name is used to check extension, that should be .xml[.gz] or .ocs[.gz]","format":"binary","type":"string"},"signature":{"description":"The signature file. The original file name is used to check extension, that should be ${originalInventoryFileName}.sign[.gz]","format":"binary","type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["uploadInventory"],"type":"string"},"data":{"example":"Inventory 'file.xml' for Node 'c1bab9fc-bcf6-4d59-a397-84c8e2fc06c0' added to processing queue.","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Inventory uploaded"}},"summary":"Upload an inventory for processing","tags":["Inventories"],"x-codeSamples":[{"lang":"curl","source":"curl --request POST --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/inventories/upload -F \"file=@inventory-file\" -F \"signature=@signature-file\""}]}},"/inventories/watcher/restart":{"post":{"description":"Restart the inventory watcher if necessary","operationId":"fileWatcherRestart","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["fileWatcherRestart"],"type":"string"},"data":{"example":"Incoming inventory watcher restarted","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Started"}},"summary":"Restart inventory watcher","tags":["Inventories"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/inventories/watcher/restart'"}]}},"/inventories/watcher/start":{"post":{"description":"Start the inventory watcher if necessary","operationId":"fileWatcherStart","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["fileWatcherStart"],"type":"string"},"data":{"example":"Incoming inventory watcher started","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Started"}},"summary":"Start inventory watcher","tags":["Inventories"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/inventories/watcher/start'"}]}},"/inventories/watcher/stop":{"post":{"description":"Stop the inventory watcher if necessary","operationId":"fileWatcherStop","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["fileWatcherStop"],"type":"string"},"data":{"example":"Incoming inventory watcher stopped","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Stopped"}},"summary":"Stop inventory watcher","tags":["Inventories"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/inventories/watcher/stop'"}]}},"/methods":{"get":{"description":"Get all generic methods metadata","operationId":"methods","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"methods":{"$ref":"#/components/schemas/methods"}},"required":["methods"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Methods information"}},"summary":"List methods","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/methods"}]}},"/methods/reload":{"post":{"description":"Reload methods metadata from file system","operationId":"reloadMethods","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"methods":{"$ref":"#/components/schemas/methods"}},"required":["methods"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Methods information"}},"summary":"Reload methods","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/methods/reload"}]}},"/nodes":{"get":{"description":"Get information about the nodes managed by the target server","operationId":"listAcceptedNodes","parameters":[{"$ref":"#/components/parameters/include"},{"$ref":"#/components/parameters/node-query"},{"$ref":"#/components/parameters/node-where"},{"$ref":"#/components/parameters/node-composition"},{"$ref":"#/components/parameters/node-select"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listAcceptedNodes"],"type":"string"},"data":{"description":"Information about the nodes","properties":{"nodes":{"items":{"$ref":"#/components/schemas/node-full"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Nodes"}},"summary":"List managed nodes","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"# To get the Linux nodes with a hostname starting with \"node1\"\ncurl -g --header \"X-API-Token: yourToken\" 'https://rudder.example.com/rudder/api/latest/nodes?where=[{\"objectType\":\"node\",\"attribute\":\"OS\",\"comparator\":\"eq\",\"value\":\"Linux\"},{\"objectType\":\"node\",\"attribute\":\"nodeHostname\",\"comparator\":\"regex\",\"value\":\"node1.*\"}]&composition=And'\n\n# To get the list of nodes with their agent version\ncurl -k -H \"X-API-Token: yourToken\" -X GET \"https://rudder.example.com/rudder/api/latest/nodes?include=minimal,managementTechnology\" | jq '.data.nodes[] | {\"id\": .id, \"version\": .managementTechnology[].version}'\n\n# To get information about the eth0 interface of a specific node\ncurl -k -H \"X-API-Token: yourToken\" -H \"Content-Type: application/json\" -X GET 'https://rudder.example.com/rudder/api/latest/nodes/8b168194-c0b4-41ab-b2b5-9571a8906d59?include=networkInterfaces' | jq '.data.nodes[].networkInterfaces[] | select(.name == \"eth0\")'\n# It gives:\n#\n#{\n# \"name\": \"eth0\",\n# \"type\": \"ethernet\",\n# \"status\": \"Up\",\n# \"macAddress\": \"52:54:00:49:45:ac\",\n# \"ipAddresses\": [\n#   \"fe80:0:0:0:5054:ff:fe49:45ac\",\n#   \"192.168.110.21\"\n# ]\n#}\n\n# To get information about the nodes running a JVM process\n#\n# This gets information about nodes with processes matching the quesry, and then extract the flat list of matching processes\ncurl -g -s -H \"X-API-Token: yourToken\" 'https://rudder.example.com/rudder/api/latest/nodes?include=minimal,processes&where=[{\"objectType\":\"process\",\"attribute\":\"commandName\",\"comparator\":\"regex\",\"value\":\".*(java|jre|jdk).*\"}]' | jq -r '.data.nodes[] | [ { hostname } + .processes[] ][] | select( .name | test(\".*(java|jdk|jre).*\")) | [.hostname, .user, .name] | @tsv' | cut -c -120\n# It gives:\n#\n# node1.example.com\tjenkins\tjava -jar remoting.jar -workDir /home/jenkins -jar-cache /home/jenkins/rem\n# node2.example.com\ttomcat8\t/usr/lib/jvm/java-11-openjdk-amd64//bin/java -Djava.util.logging.config.fi\n"},{"lang":"python","source":"import json\nimport requests\n\n# Get all nodes having a hostname starting with node1 and based on Linux and only display minimal information (id, hostname, status)\nurl = \"https://rudder.example.com/rudder/api/latest/nodes\"\nlinux = {\"objectType\": \"node\", \"attribute\": \"OS\",\n         \"comparator\": \"eq\", \"value\": \"Linux\"}\nnode1 = {\"objectType\": \"node\", \"attribute\": \"nodeHostname\",\n         \"comparator\": \"regex\", \"value\": \"node1.*\"}\nwhere = [linux, node1]\nparams = {\"where\": json.dumps(where), \"include\": \"minimal\"}\nheaders = {\"X-API-TOKEN\": \"yourToken\"}\nrequests.get(url, params=params, headers=headers, verify=False)\n"}]},"put":{"description":"Use the provided array of node information to create new nodes","operationId":"createNodes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/node-add"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["createNode"],"type":"string"},"data":{"properties":{"created":{"items":{"description":"created nodes ID","example":"378740d3-c4a9-4474-8485-478e7e52db52","type":"string"},"type":"array"},"failed":{"items":{"description":"failed nodes ID","type":"string"},"type":"array"}},"required":["created","failed"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Creation information"}},"summary":"Create one or several new nodes","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request PUT https://rudder.example.com/rudder/api/latest/nodes --header \"Content-type: application/json\" --data @nodes.json\n\n"}]}},"/nodes/applyPolicy":{"post":{"description":"This API allows to trigger an agent run on all nodes. Response contains a json stating if agent could be started on each node, but not if the run went fine and do not display any output from it. You can see the result of the run in Rudder web interface or in the each agent logs.","operationId":"applyPolicyAllNodes","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["applyPolicyAllNodes"],"type":"string"},"data":{"items":{"properties":{"hostname":{"description":"Node hostname","example":"node.example.com","type":"string"},"id":{"description":"Rudder id of the node","example":"249e14ac-2418-457c-a27d-1650907b13c7","format":"uuid (or \"root\")","type":"string"},"result":{"description":"Result or policy application trigger","example":"Started","type":"string"}},"type":"object"},"type":"array"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Result"}},"summary":"Trigger an agent run on all nodes","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/nodes/applyPolicy"}]}},"/nodes/pending":{"get":{"description":"Get information about the nodes pending acceptation","operationId":"listPendingNodes","parameters":[{"$ref":"#/components/parameters/include"},{"$ref":"#/components/parameters/node-query"},{"$ref":"#/components/parameters/node-where"},{"$ref":"#/components/parameters/node-composition"},{"$ref":"#/components/parameters/node-select"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listPendingNodes"],"type":"string"},"data":{"description":"Information about the nodes","properties":{"nodes":{"items":{"$ref":"#/components/schemas/node-full"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Nodes"}},"summary":"List pending nodes","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"# To get the list of pending nodes\ncurl --header \"X-API-Token: yourToken\" 'https://rudder.example.com/rudder/api/latest/nodes/pending'\n\n# To get the pending Linux nodes with a hostname starting with \"node1\"\ncurl --header \"X-API-Token: yourToken\" 'https://rudder.example.com/rudder/api/latest/nodes/pending?where=\\[\\{\"objectType\":\"node\",\"attribute\":\"OS\",\"comparator\":\"eq\",\"value\":\"Linux\"\\},\\{\"objectType\":\"node\",\"attribute\":\"nodeHostname\",\"comparator\":\"regex\",\"value\":\"node1.*\"\\}\\]'\n\n# To get the list of pending nodes with their agent version\ncurl -k -H \"X-API-Token: yourToken\" -X GET \"https://rudder.example.com/rudder/api/latest/nodes/pending?include=minimal,managementTechnology\" | jq '.data.nodes[] | {\"id\": .id, \"version\": .managementTechnology[].version}'\n\n\n\n"}]}},"/nodes/pending/{nodeId}":{"post":{"description":"Accept or refuse a pending node","operationId":"changePendingNodeStatus","parameters":[{"$ref":"#/components/parameters/node-id"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"status":{"description":"New status of the pending node","enum":["accepted","refused"],"example":"accepted","type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["changePendingNodeStatus"],"type":"string"},"data":{"description":"Information about the node","properties":{"nodes":{"items":{"$ref":"#/components/schemas/node-full"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Nodes"}},"summary":"Update pending Node status","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/nodes/pending/17dadf50-6056-4c8b-a935-6b97d14b89a7 --data \"status=accepted\""}]}},"/nodes/status":{"get":{"description":"Get acceptation status (pending, accepted, deleted, unknown) of a list of nodes","operationId":"getNodesStatus","parameters":[{"$ref":"#/components/parameters/node-ids"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getNodesStatus"],"type":"string"},"data":{"description":"List of nodeId and associated status","properties":{"nodes":{"description":"List of nodeId and associated status","items":{"properties":{"id":{"description":"Unique id of the node","example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid (or \"root\")","type":"string"},"status":{"description":"Status of the node","enum":["pending","accepted","deleted","unknown"],"type":"string"}},"required":["id","status"],"type":"object"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"nodes"}},"summary":"Get nodes acceptation status","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/nodes/status?ids=17dadf50-6056-4c8b-a935-6b97d14b89a7,b9a71482-5030-4699-984d-b03d28bbbf36"}]}},"/nodes/{nodeId}":{"delete":{"description":"Remove a node from the Rudder server. It won't be managed anymore.","operationId":"deleteNode","parameters":[{"$ref":"#/components/parameters/node-id"},{"$ref":"#/components/parameters/node-delete-mode"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteNode"],"type":"string"},"data":{"description":"Information about the node","properties":{"nodes":{"items":{"$ref":"#/components/schemas/node-full"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Nodes"}},"summary":"Delete a node","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7\n"}]},"get":{"description":"Get details about a given node","operationId":"nodeDetails","parameters":[{"$ref":"#/components/parameters/node-id"},{"$ref":"#/components/parameters/include"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["nodeDetails"],"type":"string"},"data":{"description":"Information about the node","properties":{"nodes":{"items":{"$ref":"#/components/schemas/node-full"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Nodes"}},"summary":"Get information about a node","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7\\?include=full"}]},"post":{"description":"Update node settings and properties","operationId":"updateNode","parameters":[{"$ref":"#/components/parameters/node-id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/node-settings"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateNode"],"type":"string"},"data":{"description":"Information about the node","properties":{"nodes":{"items":{"$ref":"#/components/schemas/node-full"},"type":"array"}},"required":["nodes"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Nodes"}},"summary":"Update node settings and properties","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"# Given the \"data.json\" JSON file with content:\n{ \"properties\": [\n  { \"name\": \"env_type\"    , \"value\": \"production\" },\n  { \"name\": \"shell\"       , \"value\": \"/bin/sh\" },\n  { \"name\": \"utf-8 poetry\", \"value\": \"ᚠᛇᚻ᛫ᛒᛦᚦ᛫ᚠᚱᚩᚠᚢᚱ᛫ᚠᛁᚱᚪ᛫ᚷᛖᚻᚹᛦᛚᚳᚢᛗ\" }\n]\n, \"policyMode\" : \"audit\"\n}\n# Setting properties from \"data.json\" and policy mode to audit:\ncurl --header \"X-API-Token: yourToken\" --request POST --header \"Content-Type: application/json\" https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7 --data @properties.json\n\n# Removing the key \"utf-8 poetry\" from the command line and updating the \"env_type\" one\ncurl --header \"X-API-Token: yourToken\" --request POST --header \"Content-Type: application/json\" https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7 --data '{ \"properties\": [{ \"name\":\"utf-8 poetry\", \"value\":\"\"}, {\"name\":\"env_type\", \"value\":\"deprovisioned\"}] }'\n\n# Removing the key \"env_type\" and changing \"shell\" and use default policy mode\ncurl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7 --data \"properties=shell=/bin/false\" -d \"properties=env_type=\" -d \"policyMode=default\"\n\n# Reset the key status to accept next inventory with its new key\ncurl --header \"X-API-Token: yourToken\" --request POST -H \"Content-Type: application/json\" 'https://rudder.example.com/rudder/api/latest/nodes/root' -d '{\"agentKey\":{\"status\":\"undefined\"}}'\n"}]}},"/nodes/{nodeId}/applyPolicy":{"post":{"description":"This API allows to trigger an agent run on the target node. Response is a stream of the actual agent run on the node.","operationId":"applyPolicy","parameters":[{"$ref":"#/components/parameters/node-id"}],"responses":{"200":{"$ref":"#/components/responses/agent-output"}},"summary":"Trigger an agent run","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/nodes/root/applyPolicy"}]}},"/nodes/{nodeId}/fetchData":{"post":{"description":"Update properties from all data sources on one nodes. The call is asynchronous.","operationId":"ReloadAllDatasourcesOneNode","parameters":[{"$ref":"#/components/parameters/node-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["ReloadAllDatasourcesOneNode"],"type":"string"},"data":{"example":"Data for node '4e3336f9-ace8-44d6-8d07-496ff1631b01', for all configured data sources, is going to be updated","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Data sources reloaded"}},"summary":"Update properties for one node from all data sources","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7/fetchData"}]}},"/nodes/{nodeId}/fetchData/{datasourceId}":{"post":{"description":"Update properties from a data source on one nodes. The call is asynchronous.","operationId":"ReloadOneDatasourceOneNode","parameters":[{"$ref":"#/components/parameters/node-id"},{"$ref":"#/components/parameters/datasource-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["ReloadOneDatasourceOneNode"],"type":"string"},"data":{"example":"Data for node '4e3336f9-ace8-44d6-8d07-496ff1631b01', for ' test-data-source' data source, is going to be updated","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Data sources reloaded"}},"summary":"Update properties for one node from a data source","tags":["🧩 Data sources"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/nodes/nodeId/fetchData/datasourceId"}]}},"/nodes/{nodeId}/inheritedProperties":{"get":{"description":"This API returns all node properties for a node, including group inherited ones.","operationId":"nodeInheritedProperties","parameters":[{"$ref":"#/components/parameters/node-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["nodeInheritedProperties"],"type":"string"},"data":{"description":"Information about the node inherited properties","items":{"$ref":"#/components/schemas/node-inherited-properties"},"type":"array"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Node"}},"summary":"Get inherited node properties for a node","tags":["Nodes"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/nodes/17dadf50-6056-4c8b-a935-6b97d14b89a7/inheritedProperties"}]}},"/parameters":{"get":{"description":"Get the current value of all the global parameters","operationId":"listParameters","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listParameters"],"type":"string"},"data":{"description":"Parameters","properties":{"parameters":{"items":{"$ref":"#/components/schemas/parameter"},"type":"array"}},"required":["parameters"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Settings"}},"summary":"List all global parameters","tags":["Parameters"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/parameters"}]},"put":{"description":"Create a new global parameter","operationId":"createParameter","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/parameter"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["createParameter"],"type":"string"},"data":{"description":"Parameters","properties":{"parameters":{"items":{"$ref":"#/components/schemas/parameter"},"type":"array"}},"required":["parameters"],"type":"object"},"id":{"description":"Id of the parameter","example":"rudder_file_edit_footer","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data","id"],"type":"object"}}},"description":"Settings"}},"summary":"Create a new parameter","tags":["Parameters"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --header \"Content-Type: application/json\" --request PUT https://rudder.example.com/rudder/api/latest/parameters --data @JSON-file-name"}]}},"/parameters/{parameterId}":{"delete":{"description":"Delete an existing parameter","operationId":"deleteParameter","parameters":[{"$ref":"#/components/parameters/parameter-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteParameter"],"type":"string"},"data":{"description":"Parameters","properties":{"parameters":{"items":{"$ref":"#/components/schemas/parameter"},"type":"array"}},"required":["parameters"],"type":"object"},"id":{"description":"Id of the parameter","example":"rudder_file_edit_footer","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data","id"],"type":"object"}}},"description":"Settings"},"500":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteParameter"],"type":"string"},"errorDetails":{"example":"Could not delete Parameter rudder_file_edit_footer cause is: Could not find Parameter rudder_file_edit_footer.","type":"string"},"id":{"description":"Id of the parameter","example":"rudder_file_edit_footer","type":"string"},"result":{"description":"Result of the request","enum":["error"],"type":"string"}},"required":["result","action","data","id"],"type":"object"}}},"description":"Non existing parameter"}},"summary":"Delete a parameter","tags":["Parameters"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE https://rudder.example.com/rudder/api/latest/parameters/ParameterId"}]},"get":{"description":"Get the current value of a given parameter","operationId":"parameterDetails","parameters":[{"$ref":"#/components/parameters/parameter-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["parameterDetails"],"type":"string"},"data":{"description":"Parameters","properties":{"parameters":{"items":{"$ref":"#/components/schemas/parameter"},"type":"array"}},"required":["parameters"],"type":"object"},"id":{"description":"Id of the parameter","example":"rudder_file_edit_footer","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data","id"],"type":"object"}}},"description":"Settings"}},"summary":"Get the value of a parameter","tags":["Parameters"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/parameters/ParameterId"}]},"post":{"description":"Update the properties of a parameter","operationId":"updateParameter","parameters":[{"$ref":"#/components/parameters/parameter-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateParameter"],"type":"string"},"data":{"description":"Parameters","properties":{"parameters":{"items":{"$ref":"#/components/schemas/parameter"},"type":"array"}},"required":["parameters"],"type":"object"},"id":{"description":"Id of the parameter","example":"rudder_file_edit_footer","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data","id"],"type":"object"}}},"description":"Settings"}},"summary":"Update a parameter's value","tags":["Parameters"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/parameters/ParameterId --data \"value=### Edited by Rudder ###\""}]}},"/rules":{"get":{"description":"List all rules","operationId":"listRules","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listRules"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/rule"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules information"}},"summary":"List all rules","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/rules'\n\n# To get information about the target (included/excluded) groups of the rules\ncurl -H \"X-API-Token: yourToken\" -X GET 'https://rudder.example.com/rudder/api/latest/rules' | jq '.data.rules[] | {\"d\": .displayName, \"id\":.id, \"inc\": .targets[].include?.or, \"exc\":.targets[].exclude?.or}'\n"}]},"put":{"description":"Create a new rule. You can specify a source rule to clone it.","operationId":"createRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rule-new"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["createRule"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/rule"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules information"}},"summary":"Create a rule","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request PUT 'https://rudder.example.com/rudder/api/latest/rules' --data \"displayName=Name of New Rule\""}]}},"/rules/categories":{"put":{"description":"Create a new rule category","operationId":"CreateRuleCategory","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rule-category"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["CreateRuleCategory"],"type":"string"},"data":{"properties":{"ruleCategories":{"items":{"$ref":"#/components/schemas/rule-category"},"type":"array"}},"required":["ruleCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules category information"}},"summary":"Create a rule category","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request PUT 'https://rudder.example.com/rudder/api/latest/rules/categories' --data \"name=new category\" -d \"parent=4306143d-eabf-4478-b7b1-1616f4aa02b5\" -d \"description=A new category created via API\"\n"}]}},"/rules/categories/{ruleCategoryId}":{"delete":{"description":"Delete a group category. It must have no child groups and no children categories.","operationId":"DeleteRuleCategory","parameters":[{"$ref":"#/components/parameters/rule-category-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["DeleteRuleCategory"],"type":"string"},"data":{"properties":{"groupCategories":{"items":{"$ref":"#/components/schemas/rule-category"},"type":"array"}},"required":["groupCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Groups category information"}},"summary":"Delete group category","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE 'https://rudder.example.com/rudder/api/latest/rules/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5?prettify=true'"}]},"get":{"description":"Get detailed information about a rule category","operationId":"GetRuleCategoryDetails","parameters":[{"$ref":"#/components/parameters/rule-category-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["GetRuleCategoryDetails"],"type":"string"},"data":{"properties":{"rulesCategories":{"items":{"$ref":"#/components/schemas/rule-category"},"type":"array"}},"required":["rulesCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules category information"}},"summary":"Get rule category details","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/rules/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5?prettify=true'"}]},"post":{"description":"Update detailed information about a rule category","operationId":"UpdateRuleCategory","parameters":[{"$ref":"#/components/parameters/rule-category-id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rule-category-update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["UpdateRuleCategory"],"type":"string"},"data":{"properties":{"ruleCategories":{"items":{"$ref":"#/components/schemas/rule-category"},"type":"array"}},"required":["ruleCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules category information"}},"summary":"Update rule category details","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/rules/categories/4306143d-eabf-4478-b7b1-1616f4aa02b5?prettify=true' --data \"name=new category name\""}]}},"/rules/tree":{"get":{"description":"Get all available rules and their categories in a tree","operationId":"GetRuleTree","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["GetRuleTree"],"type":"string"},"data":{"example":{"categories":[{"categories":[{"categories":[],"description":"","id":"f45ec2fd-69f4-4669-9c22-1af3abe2a107","name":"Specific dev category","parent":"4306143d-eabf-4478-b7b1-1616f4aa02b5","rules":[{"directives":[],"displayName":"my specific Rule","enabled":true,"id":"b7fda4e7-3616-4e99-89b0-8ffadaf6b0f0","longDescription":"","shortDescription":"","system":false,"targets":[]}]}],"description":"","id":"4306143d-eabf-4478-b7b1-1616f4aa02b5","name":"Dev category","parent":"rootRuleCategory","rules":[{"directives":[],"displayName":"dev Rule","enabled":true,"id":"f2aa50a9-961c-4cce-a266-380cffcdce32","longDescription":"","shortDescription":"","system":false,"targets":[]}]}],"description":"This is the main category of Rules","id":"rootRuleCategory","name":"Rules","parent":"rootRuleCategory","rules":[{"directives":[],"displayName":"Global security policy","enabled":true,"id":"43cde273-5bb0-466f-8850-7d3fdde03253","longDescription":"","shortDescription":"","system":false,"targets":[]},{"directives":["bff45fe2-8233-4d28-96aa-78b0390b548b"],"displayName":"Global configuration for all nodes","enabled":false,"id":"32377fd7-02fd-43d0-aab7-28460a91347b","longDescription":"This Rule was created automatically when Rudder was installed. It can be used to target Directives to all nodes (including the Rudder root server itself), or deleted if you would rather create your own set of Rules (it will never be created again).","shortDescription":"","system":false,"targets":[{"exclude":{"or":[]},"include":{"or":["special:all","special:all_exceptPolicyServers","special:all_policyServers"]}}]}]},"properties":{"ruleCategories":{"description":"Rule tree","example":null,"type":"object"}},"required":["ruleCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules information"}},"summary":"Get rules tree","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/rules/tree?prettify=true'"}]}},"/rules/{ruleId}":{"delete":{"description":"Delete a rule.","operationId":"deleteRule","parameters":[{"$ref":"#/components/parameters/rule-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteRule"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/rule"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules information"}},"summary":"Delete a rule","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE 'https://rudder.example.com/rudder/api/latest/rules/176ad06b-ed02-4da3-8053-16225d217741'"}]},"get":{"description":"Get the details of a rule","operationId":"ruleDetails","parameters":[{"$ref":"#/components/parameters/rule-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["ruleDetails"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/rule"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules information"}},"summary":"Get a rule details","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/rules/06ba8940-ed6c-4102-ba46-93d640a64c36'"}]},"post":{"description":"Update the details of a rule","operationId":"updateRule","parameters":[{"$ref":"#/components/parameters/rule-id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/rule-with-category"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateRule"],"type":"string"},"data":{"properties":{"rules":{"items":{"$ref":"#/components/schemas/rule-with-category"},"type":"array"}},"required":["rules"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Rules information"}},"summary":"Update a rule details","tags":["Rules"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/rules/17dadf50-6056-4c8b-a935-6b97d14b89a7' --data \"displayName=Name of rule\""}]}},"/scaleoutrelay/demote/{nodeId}":{"post":{"description":"Demote a relay to a simple node.","operationId":"demoteToNode","parameters":[{"$ref":"#/components/parameters/node-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["demoteToNode"],"type":"string"},"data":{"description":"Success or error message","example":"17dadf50-6056-4c8b-a935-6b97d14b89a7","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["action","result","data"],"type":"object"}}},"description":"Demote to node response"}},"summary":"Demote a relay to simple node","tags":["🧩 Scale out Relay"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST --header \"Content-Type: application/json\" https://rudder.example.com/rudder/api/latest/scaleoutrelay/promote/17dadf50-6056-4c8b-a935-6b97d14b89a7?prettify=true'"}]}},"/scaleoutrelay/promote/{nodeId}":{"post":{"description":"Promote a node to relay","operationId":"promoteToRelay","parameters":[{"$ref":"#/components/parameters/node-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["promoteToRelay"],"type":"string"},"data":{"description":"Success or error message","example":"17dadf50-6056-4c8b-a935-6b97d14b89a7","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["action","result","data"],"type":"object"}}},"description":"Promote response"}},"summary":"Promote a node to relay","tags":["🧩 Scale out Relay"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST --header \"Content-Type: application/json\" https://rudder.example.com/rudder/api/latest/scaleoutrelay/promote/17dadf50-6056-4c8b-a935-6b97d14b89a7?prettify=true'"}]}},"/secret":{"get":{"description":"Get the list of all secrets without their value","operationId":"getAllSecrets","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getAllSecrets"],"type":"string"},"data":{"properties":{"secrets":{"description":"List of API version and status","items":{"properties":{"description":{"description":"The description of the secret to identify it more easily","example":"Password of my super secret user account","type":"string"},"name":{"description":"The name of the secret used as a reference on the value","example":"secret-password","type":"string"}},"required":["name","description"],"type":"object"},"type":"array"}},"required":["secrets"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Secrets information"}},"summary":"List all secrets","tags":["🧩 Secret Management"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/secret'"}]},"post":{"description":"Update a secret and override the value, the name cannot be overridden","operationId":"updateSecret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secrets"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateSecret"],"type":"string"},"data":{"properties":{"secrets":{"description":"List of API version and status","items":{"properties":{"description":{"description":"The description of the secret to identify it more easily","example":"Password of my super secret user account","type":"string"},"name":{"description":"The name of the secret used as a reference on the value","example":"secret-password","type":"string"}},"required":["name","description"],"type":"object"},"type":"array"}},"required":["secrets"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Secrets information"}},"summary":"Update a secret","tags":["🧩 Secret Management"],"x-codeSamples":[{"lang":"curl","source":"add.json:\n\n{\n\t\"name\" : \"secret-password\",\n\t\"description\" : \"Password of my super secret user account\",\n\t\"value\" : \"nj-k;EO32!kFWewn2Nk,u\",\n}\n\ncurl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/secret --header \"Content-type: application/json\" --data @add.json\n\n"}]},"put":{"description":"Add a secret","operationId":"addSecret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/secrets"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["addSecret"],"type":"string"},"data":{"properties":{"secrets":{"description":"List of API version and status","items":{"properties":{"description":{"description":"The description of the secret to identify it more easily","example":"Password of my super secret user account","type":"string"},"name":{"description":"The name of the secret used as a reference on the value","example":"secret-password","type":"string"}},"required":["name","description"],"type":"object"},"type":"array"}},"required":["secrets"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Secrets information"}},"summary":"Create a secret","tags":["🧩 Secret Management"],"x-codeSamples":[{"lang":"curl","source":"add.json:\n\n{\n\t\"name\" : \"secret-password\",\n\t\"description\" : \"Password of my super secret user account\",\n\t\"value\" : \"nj-k;EO32!kFWewn2Nk,u\",\n}\n\ncurl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/secret --header \"Content-type: application/json\" --data @add.json\n\n"}]}},"/secret/{name}":{"delete":{"description":"Remove the secret by his unique name","operationId":"deleteSecret","parameters":[{"$ref":"#/components/parameters/secret-name"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteSecret"],"type":"string"},"data":{"properties":{"secrets":{"description":"List of API version and status","items":{"properties":{"description":{"description":"The description of the secret to identify it more easily","example":"Password of my super secret user account","type":"string"},"name":{"description":"The name of the secret used as a reference on the value","example":"secret-password","type":"string"}},"required":["name","description"],"type":"object"},"type":"array"}},"required":["secrets"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Secret information"}},"summary":"Delete a secret","tags":["🧩 Secret Management"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE 'https://rudder.example.com/rudder/api/latest/secret/secret-password'"}]},"get":{"description":"Get one secret by his unique name","operationId":"getSecret","parameters":[{"$ref":"#/components/parameters/secret-name"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getSecret"],"type":"string"},"data":{"properties":{"secrets":{"description":"List of API version and status","items":{"properties":{"description":{"description":"The description of the secret to identify it more easily","example":"Password of my super secret user account","type":"string"},"name":{"description":"The name of the secret used as a reference on the value","example":"secret-password","type":"string"}},"required":["name","description"],"type":"object"},"type":"array"}},"required":["secrets"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Secret information"}},"summary":"Get one secret","tags":["🧩 Secret Management"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/secret-password'"}]}},"/settings":{"get":{"description":"Get the current value of all the settings","operationId":"getAllSettings","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getAllSettings"],"type":"string"},"data":{"description":"Information about the setting","properties":{"settings":{"properties":{"allowed_networks":{"description":"List of allowed networks for each policy server (root and relays)","items":{"properties":{"allowed_networks":{"description":"List of allowed networks","items":{"description":"Allowed network (`0.0.0.0/0` for no restriction `a.b.c.d/32` for one IP)","example":"192.168.40.0/24","format":"CIDR network","type":"string"},"type":"array"},"id":{"description":"Rudder id of the policy server","example":"root","type":"string"}},"type":"object"},"type":"array"},"change_message_prompt":{"description":"Explanation to display","example":"Please provide a reason for this change","type":"string"},"display_recent_changes_graphs":{"description":"Display changes graphs","example":true,"type":"boolean"},"enable_change_message":{"description":"Enable change audit logs","example":true,"type":"boolean"},"enable_change_request":{"description":"Enable Change Requests","example":false,"type":"boolean"},"enable_javascript_directives":{"description":"Enable script evaluation in Directives","example":"enabled","type":"string"},"enable_self_deployment":{"description":"Allow self deployment","example":true,"type":"boolean"},"enable_self_validation":{"description":"Allow self validation","example":true,"type":"boolean"},"first_run_hour":{"description":"First agent run time - hour","example":0,"type":"integer"},"first_run_minute":{"description":"First agent run time - minute","example":0,"type":"integer"},"global_policy_mode":{"description":"Define the default setting for global policy mode","enum":["enforce","audit"],"example":"enforce","type":"string"},"global_policy_mode_overridable":{"description":"Allow overrides on this default setting","example":true,"type":"boolean"},"heartbeat_frequency":{"description":"Send heartbeat every heartbeat_frequency runs (only on **changes-only** compliance mode)","example":10,"type":"integer"},"mandatory_change_message":{"description":"Make message mandatory","example":false,"type":"boolean"},"modified_file_ttl":{"description":"Number of days to retain modified files","example":7,"type":"integer"},"node_accept_duplicated_hostname":{"default":false,"description":"Allow acceptation of a pending node when another one with the same hostname is already accepted","example":false,"type":"boolean"},"node_onaccept_default_policyMode":{"description":"Default policy mode for accepted node","enum":["default","enforce","audit"],"example":"default","type":"string"},"node_onaccept_default_state":{"description":"Set default state for node when they are accepted within Rudder","enum":["enabled","ignored","empty-policies","initializing","preparing-eol"],"example":"enabled","type":"string"},"output_file_ttl":{"description":"Number of days to retain agent output files","example":7,"type":"integer"},"relay_server_synchronization_method":{"description":"Method used to synchronize data between server and relays, either \"classic\" (agent protocol, default), \"rsync\" (use rsync to synchronize, that you'll need to be manually set up), or \"disabled\" (use third party system to transmit data)","enum":["classic","rsync","disabled"],"example":"classic","type":"string"},"relay_server_synchronize_policies":{"description":"If **rsync** is set as a synchronization method, use rsync to synchronize policies between Rudder server and relays. If false, you'll have to synchronize policies yourself.","example":true,"type":"boolean"},"relay_server_synchronize_shared_files":{"description":"If **rsync** is set as a synchronization method, use rsync to synchronize shared files between Rudder server and relays. If false, you'll have to synchronize shared files yourself.","type":"boolean"},"reporting_mode":{"description":"Compliance reporting mode","enum":["full-compliance","changes-only","reports-disabled"],"example":"full-compliance","type":"string"},"require_time_synchronization":{"description":"Require time synchronization between nodes and policy server","example":true,"type":"boolean"},"rudder_compute_changes":{"default":true,"description":"Compute list of changes (repaired reports) per rule","type":"boolean"},"rudder_compute_dyngroups_max_parallelism":{"default":"1","description":"Set the parallelism to compute dynamic group, as a number of thread (i.e. 4), or a multiplicative of the number of core (x0.5)","type":"string"},"rudder_generation_compute_dyngroups":{"default":true,"description":"Recompute all dynamic groups at the start of policy generation","type":"boolean"},"rudder_generation_continue_on_error":{"default":false,"description":"Policy generation continues on error during NodeConfiguration evaluation","type":"boolean"},"rudder_generation_delay":{"default":"0 seconds","description":"Set a delay before starting policy generation, this will allow you to accumulate changes before they are deployed to Nodes, and can also lessen webapp resources needs. The value is a number followed by the time unit needed (seconds/s, minutes/m, hours/h ...), ie \"5m\" for 5 minutes","type":"string"},"rudder_generation_js_timeout":{"default":30,"description":"Policy generation JS evaluation of directive parameter timeout in seconds","type":"integer"},"rudder_generation_max_parallelism":{"default":"x0.5","description":"Set the policy generation parallelism, either as an number of thread (i.e. 4), or a multiplicative of the number of core (x0.5)","type":"string"},"rudder_generation_policy":{"default":"all","description":"Should policy generation be triggered automatically after a change (value 'all'), or should we wait until a manual launch (through api or UI, value 'onlyManual') or even no policy generation at all (value \"none\")","type":"string"},"rudder_report_protocol_default":{"description":"Default reporting protocol used","enum":["HTTPS","SYSLOG"],"example":"HTTPS","type":"string"},"rudder_save_db_compliance_details":{"default":false,"description":"Store all compliance details in database","type":"boolean"},"rudder_save_db_compliance_levels":{"default":true,"description":"Store all compliance levels in database","type":"boolean"},"rudder_verify_certificates":{"default":false,"description":"Enforce certificate validation in all HTTPS calls","type":"boolean"},"run_frequency":{"description":"Agent run schedule - time between agent runs (in minutes)","example":5,"type":"integer"},"send_metrics":{"description":"Send anonymous usage statistics","example":"not defined","type":"string"},"splay_time":{"description":"Maximum delay after scheduled run time (random interval)","example":5,"type":"integer"},"unexpected_unbound_var_values":{"default":true,"description":"Allows multiple reports for configuration based on a multivalued variable","type":"boolean"}}}},"required":["settings"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Settings"}},"summary":"List all settings","tags":["Settings"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/settings"}]}},"/settings/allowed_networks/{nodeId}":{"get":{"description":"Get the list of allowed networks for a policy server","operationId":"getAllowedNetworks","parameters":[{"$ref":"#/components/parameters/setting-allowed-networks"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getAllowedNetworks"],"type":"string"},"data":{"description":"Information about the allowed_networks settings","properties":{"settings":{"properties":{"allowed_networks":{"description":"Array of allowed networks","example":["162.168.1.0/24","192.168.2.0/24"],"items":{"type":"string"},"type":"array"}},"required":["allowed_networks"],"type":"object"}},"required":["settings"],"type":"object"},"id":{"description":"Target policy server ID","example":"root","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","id","data"],"type":"object"}}},"description":"Allowed Networks"}},"summary":"Get allowed networks for a policy server","tags":["Settings"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/settings/allowed_networks/root"}]},"post":{"description":"Set the list of allowed networks for a policy server","operationId":"setAllowedNetworks","parameters":[{"$ref":"#/components/parameters/setting-allowed-networks"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"description":"New value of the allowed networks","example":"enforce","type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["modifyAllowedNetworks"],"type":"string"},"data":{"description":"Information about the allowed_networks settings","properties":{"settings":{"description":"Array of allowed networks","example":["162.168.1.0/24","192.168.2.0/24"],"items":{"type":"string"},"type":"array"}},"required":["settings"],"type":"object"},"id":{"description":"The id of the modified node","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Allowed Networks"}},"summary":"Set allowed networks for a policy server","tags":["Settings"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --header  \"Content-Type: application/json\" --request POST https://rudder.example.com/rudder/api/latest/settings/allowed_networks/root --data '{\"allowed_networks\": [\"192.168.1.0/24\", \"192.168.2.0/24\"]}'\n"}]}},"/settings/allowed_networks/{nodeId}/diff":{"post":{"description":"Add or delete allowed networks for a policy server","operationId":"modifyAllowedNetworks","parameters":[{"$ref":"#/components/parameters/setting-allowed-networks"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"allowed_networks":{"properties":{"add":{"description":"List of networks to add to existing allowed networks for that server","example":["192.168.2.0/24","192.168.0.0/16"],"items":{"type":"string"},"type":"array"},"delete":{"description":"List of networks to remove from existing allowed networks for that server","example":["162.168.1.0/24"],"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["modifyDiffAllowedNetworks"],"type":"string"},"data":{"description":"Information about the allowed_networks settings","properties":{"settings":{"description":"Array of allowed networks","example":["192.168.2.0/24","192.168.0.0/16"],"items":{"type":"string"},"type":"array"}},"required":["settings"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Allowed Networks"}},"summary":"Modify allowed networks for a policy server","tags":["Settings"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/settings/allowed_networks/root/diff --header 'Content-Type: application/json' --data '{\"allowed_networks\": { \"delete\": [\"192.168.1.0/24\"], \"add\": [\"192.168.2.0/24\"] } }'\n"}]}},"/settings/{settingId}":{"get":{"description":"Get the current value of a specific setting","operationId":"getSetting","parameters":[{"$ref":"#/components/parameters/setting-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getSetting"],"type":"string"},"data":{"description":"Information about the setting","properties":{"settingId":{"description":"Id and value of the property","example":"value","type":"string"}},"required":["settings"],"type":"object"},"id":{"description":"Id of the setting","example":"global_policy_mode","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data","id"],"type":"object"}}},"description":"Settings"}},"summary":"Get the value of a setting","tags":["Settings"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/settings/run_frequency"}]},"post":{"description":"Set the current value of a specific setting","operationId":"modifySetting","parameters":[{"$ref":"#/components/parameters/setting-id"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"value":{"description":"New value of the setting","example":"enforce","type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["modifySetting"],"type":"string"},"data":{"description":"Information about the setting","properties":{"settingId":{"description":"Id and value of the property","example":"value","type":"string"}},"required":["settings"],"type":"object"},"id":{"description":"Id of the setting","example":"global_policy_mode","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data","id"],"type":"object"}}},"description":"Settings"}},"summary":"Set the value of a setting","tags":["Settings"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/settings/global_policy_mode_overridable --data \"value=true\""}]}},"/status":{"get":{"description":"An unauthenticated API to check if Rudder web application is up and running. Be careful: this API does not follow other Rudder's API convention: \n- it is not versioned, so the path is just `/api/status`;\n- it returns a plain text message.","operationId":"none","responses":{"200":{"content":{"text/plain":{"schema":{"example":"OK\\\\n","type":"string"}}},"description":"OK status message"}},"security":[],"summary":"Check if Rudder is alive","tags":["Status"],"x-codeSamples":[{"lang":"curl","source":"curl --request GET https://rudder.example.com/rudder/api/status"}]}},"/system/archives/{archiveKind}":{"get":{"description":"List configuration archives","operationId":"listArchives","parameters":[{"$ref":"#/components/parameters/archive-kind"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The kind of the archive","enum":["archiveFull","archiveGroups","archiveRules","archiveDirectives","archiveParameters"],"example":"archiveFull","type":"string"},"data":{"properties":{"full":{"items":{"properties":{"commiter":{"example":"Rudder system account","type":"string"},"gitCommit":{"example":"546de1b211ecc5b7ca295abac2191bc6bb05d44e","format":"hash","type":"string"},"id":{"example":"2019-09-17_16-06-15.255","type":"string"}},"required":["commiter","gitCommit","id"],"type":"object"},"type":"array"}},"required":["full"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"List archives","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/system/archives/full"}]},"post":{"description":"Create new archive of the given kind","operationId":"createArchive","parameters":[{"$ref":"#/components/parameters/archive-kind"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The kind of the archive","enum":["archiveFull","archiveGroups","archiveRules","archiveDirectives","archiveParameters"],"example":"archiveFull","type":"string"},"data":{"properties":{"full":{"properties":{"commiter":{"example":"Rudder system account","type":"string"},"gitCommit":{"example":"546de1b211ecc5b7ca295abac2191bc6bb05d44e","format":"hash","type":"string"},"id":{"example":"2019-09-17_16-06-15.255","type":"string"}},"required":["commiter","gitCommit","id"],"type":"object"}},"required":["full"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Create an archive","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/system/archives/full"}]}},"/system/archives/{archiveKind}/restore/{archiveRestoreKind}":{"post":{"description":"Restore an archive of the given kind for the given moment","operationId":"restoreArchive","parameters":[{"$ref":"#/components/parameters/archive-kind"},{"in":"path","name":"archiveRestoreKind","required":true,"schema":{"description":"What archive to restore (latest archive, latest commit in configuration repository, or archive with ID as given by listArchive)","enum":["latestArchive","latestCommit","archive ID"],"example":"latestCommit","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The kind of the archive","enum":["restoreFullLatestArchive","restoreGroupLatestArchive","restoreRulesLatestArchive","restoreDirectivesLatestArchive","restoreParametersLatestArchive","restoreFullLatestCommit","restoreGroupLatestCommit","restoreRulesLatestCommit","restoreDirectivesLatestCommit","restoreParametersLatestCommit","archiveFullDateRestore","archiveGroupDateRestore","archiveRulesDateRestore","archiveDirectivesDateRestore","archiveParametersDateRestore"],"example":"archirestoreFullLatestCommitveFull","type":"string"},"data":{"properties":{"directive":{"example":"Started","type":"string"},"full":{"example":"Started","type":"string"},"groups":{"example":"Started","type":"string"},"parameters":{"example":"Started","type":"string"},"rules":{"example":"Started","type":"string"}},"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Restore an archive","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/system/archives/full/restore/latestCommit"}]}},"/system/archives/{archiveKind}/zip/{commitId}":{"get":{"description":"Get an archive of the given kind as a zip","operationId":"getZipArchive","parameters":[{"$ref":"#/components/parameters/archive-kind"},{"description":"commit ID of the archive to get as a ZIP file","in":"path","name":"commitId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"description":"Success"}},"summary":"Get an archive as a ZIP","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/system/archives/full/zip/cad7d5f0729f06d22878b99869b8d43629e05a78 -o full-archive.zip"}]}},"/system/healthcheck":{"get":{"description":"Run and get the result of all checks","operationId":"getHealthcheckResult","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getHealthcheckResult"],"type":"string"},"data":{"items":{"$ref":"#/components/schemas/check"},"type":"array"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Healthcheck information"}},"summary":"Get healthcheck","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/system/healthcheck?prettify=true'"}]}},"/system/info":{"get":{"description":"Get information about the server version","operationId":"getSystemInfo","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getSystemInfo"],"type":"string"},"data":{"description":"Information about the service","properties":{"rudder":{"properties":{"build-time":{"example":"2025-08-15T13:50:50.757Z","format":"date","type":"string"},"full-version":{"example":"6.0.4","format":"X.Y.Z","type":"string"},"major-version":{"example":"6.0","format":"X.Y","type":"string"}},"required":["major-version","full-version","build-time"]}},"required":["rudder"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Service information"}},"summary":"Get server information","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/system/info"}]}},"/system/maintenance/purgeSoftware":{"post":{"description":"Start the software cleaning batch asynchronously.","operationId":"purgeSoftware","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["purgeSoftware"],"type":"string"},"data":{"items":{"description":"a success message.","type":"string"},"type":"array"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Purge Software"}},"summary":"Trigger batch for cleaning unreferenced software","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/system/maintenance/purgeSoftware?prettify=true'\n"}]}},"/system/regenerate/policies":{"post":{"description":"Trigger a full policy generation","operationId":"regeneratePolicies","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["regeneratePolicies"],"type":"string"},"data":{"properties":{"policies":{"enum":["Started"],"type":"string"}},"required":["policies"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Trigger a new policy generation","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/system/regenerate/policies'"}]}},"/system/reload":{"post":{"description":"Reload both techniques and dynamic groups","operationId":"reloadAll","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["reloadAll"],"type":"string"},"data":{"properties":{"groups":{"enum":["Started"],"type":"string"},"techniques":{"enum":["Started"],"type":"string"}},"required":["groups","techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Service reload"}},"summary":"Reload both techniques and dynamic groups","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/system/reload'"}]}},"/system/reload/groups":{"post":{"description":"Reload dynamic groups","operationId":"reloadGroups","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["reloadGroups"],"type":"string"},"data":{"properties":{"groups":{"enum":["Started"],"type":"string"}},"required":["groups"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Service reload"}},"summary":"Reload dynamic groups","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/system/reload/groups'\n"}]}},"/system/reload/techniques":{"post":{"description":"Reload techniques from local technique library","operationId":"reloadTechniques","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["reloadTechniques"],"type":"string"},"data":{"properties":{"techniques":{"enum":["Started"],"type":"string"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Service reload"}},"summary":"Reload techniques","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/system/reload/techniques'\n"}]}},"/system/status":{"get":{"description":"Get information about current server status","operationId":"getStatus","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getStatus"],"type":"string"},"data":{"description":"Status of the service","properties":{"global":{"enum":["OK"],"type":"string"}},"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Service status"}},"summary":"Get server status","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/system/status"}]}},"/system/update/policies":{"post":{"description":"Update configuration policies if needed","operationId":"updatePolicies","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updatePolicies"],"type":"string"},"data":{"properties":{"policies":{"enum":["Started"],"type":"string"}},"required":["policies"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Success"}},"summary":"Trigger update of policies","tags":["System"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/system/update/policies'"}]}},"/systemUpdate/campaigns/{id}/history":{"get":{"description":"Get a campaign result history","operationId":"getCampaignHistory","parameters":[{"$ref":"#/components/parameters/campaign-id-path"},{"$ref":"#/components/parameters/limit"},{"$ref":"#/components/parameters/offset"},{"$ref":"#/components/parameters/before"},{"$ref":"#/components/parameters/after"},{"$ref":"#/components/parameters/order"},{"$ref":"#/components/parameters/asc"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCampaignHistory"],"type":"string"},"data":{"properties":{"campaignHistory":{"items":{"$ref":"#/components/schemas/campaign-event-result"},"type":"array"}},"required":["campaignHistory"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign result history result"}},"summary":"Get a campaign result history","tags":["🧩 System update campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/system-update/campaigns/0076a379-f32d-4732-9e91-33ab219d8fde/history'\n"}]}},"/systemUpdate/events/{id}/result":{"get":{"description":"Get a campaign event result","operationId":"getCampaignEventResult","parameters":[{"$ref":"#/components/parameters/campaign-event-id-path"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCampaignEventResult"],"type":"string"},"data":{"properties":{"eventResult":{"items":{"$ref":"#/components/schemas/campaign-event-result"},"type":"array"}},"required":["eventResult"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign result history result"}},"summary":"Get a campaign event result","tags":["🧩 System update campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/system-update/events/0076a379-f32d-4732-9e91-33ab219d8fde/result/b81d08e8-03f8-46b7-9399-9bea54e41ec7'\n"}]}},"/systemUpdate/events/{id}/result/{nodeId}":{"get":{"description":"Get detailed campaign event result for a Node","operationId":"getCampaignEventResultForNode","parameters":[{"$ref":"#/components/parameters/campaign-event-id-path"},{"$ref":"#/components/parameters/node-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getCampaignEventResultForNode"],"type":"string"},"data":{"properties":{"noderesult":{"items":{"$ref":"#/components/schemas/campaign-event-node-result"},"type":"array"}},"required":["nodeResult"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Campaign event result for a node"}},"summary":"Get detailed campaign event result for a Node","tags":["🧩 System update campaigns"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/system-update/campaigns/0076a379-f32d-4732-9e91-33ab219d8fde/history'\n"}]}},"/techniques":{"get":{"description":"List all technique with their versions","operationId":"listTechniques","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"$ref":"#/components/schemas/techniques"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Techniques information"}},"summary":"List all techniques","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques"}]},"put":{"description":"Create a new technique in Rudder from a technique in the technique editor","operationId":"CreateTechnique","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/techniques"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"properties":{"technique":{"$ref":"#/components/schemas/editor-technique"}},"required":["technique"],"type":"object"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Versions information"}},"summary":"Create technique","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request PUT https://rudder.example.com/rudder/api/latest/techniques"}]}},"/techniques/categories":{"get":{"description":"Get all technique categories","operationId":"techniqueCategories","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniqueCategories":{"$ref":"#/components/schemas/categories-tree"}},"required":["techniqueCategories"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Categories information"}},"summary":"List categories","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques/categories"}]}},"/techniques/reload":{"post":{"description":"Reload all techniques metadata from file system","operationId":"techniques","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"$ref":"#/components/schemas/techniques"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Techniques information"}},"summary":"Reload techniques","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/techniques/reload"}]}},"/techniques/versions":{"get":{"description":"List all techniques version","operationId":"listTechniquesVersions","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"$ref":"#/components/schemas/techniques-versions"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Versions information"}},"summary":"List versions","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques/versions"}]}},"/techniques/{techniqueId}":{"get":{"description":"Get each Technique's versions with their metadata by ID","operationId":"getTechniqueAllVersion","parameters":[{"$ref":"#/components/parameters/technique-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"items":{"properties":{"JREditorTechnique":{"$ref":"#/components/schemas/editor-technique"}},"required":["JREditorTechnique"],"type":"object"},"type":"array"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Techniques information"}},"summary":"Technique metadata by ID","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques/foo"}]}},"/techniques/{techniqueId}/directives":{"get":{"description":"List all directives based on all version of a technique","operationId":"listTechniquesDirectives","parameters":[{"$ref":"#/components/parameters/technique-id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniquesDirectives"],"type":"string"},"data":{"properties":{"directives":{"items":{"$ref":"#/components/schemas/directive"},"type":"array"}},"required":["directives"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Techniques information"}},"summary":"List all directives based on a technique","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques/checkGenericFileContent/directives"}]}},"/techniques/{techniqueId}/{techniqueVersion}":{"delete":{"description":"Delete a technique from technique editor","operationId":"deleteTechnique","parameters":[{"$ref":"#/components/parameters/technique-id"},{"$ref":"#/components/parameters/technique-version"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"properties":{"id":{"description":"Deleted technique ID","example":"foo","type":"string"},"version":{"description":"Deleted technique version","example":1,"type":"string"}},"required":["id","version"],"type":"object"}},"required":["resources"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Deletion information"}},"summary":"Delete technique","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE https://rudder.example.com/rudder/api/latest/techniques/foo/1.0"}]},"get":{"description":"Get Technique metadata","operationId":"getTechniqueAllVersionId","parameters":[{"$ref":"#/components/parameters/technique-id"},{"$ref":"#/components/parameters/technique-version"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"items":{"properties":{"JREditorTechnique":{"$ref":"#/components/schemas/editor-technique"}},"required":["JREditorTechnique"],"type":"object"},"type":"array"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Techniques information"}},"summary":"Technique metadata by version and ID","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques/foo/1.0"}]},"post":{"description":"Update technique created with technique editor","operationId":"updateTechnique","parameters":[{"$ref":"#/components/parameters/technique-id"},{"$ref":"#/components/parameters/technique-version"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/techniques"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"properties":{"technique":{"$ref":"#/components/schemas/editor-technique"}},"required":["technique"],"type":"object"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Versions information"}},"summary":"Update technique","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/techniques/bar/1.0"}]}},"/techniques/{techniqueId}/{techniqueVersion}/directives":{"get":{"description":"List all directives based on a version of a technique","operationId":"listTechniqueVersionDirectives","parameters":[{"$ref":"#/components/parameters/technique-id"},{"$ref":"#/components/parameters/technique-version"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniqueDirectives"],"type":"string"},"data":{"properties":{"directives":{"items":{"$ref":"#/components/schemas/directive"},"type":"array"}},"required":["directives"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Techniques information"}},"summary":"List all directives based on a version of a technique","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques/checkGenericFileContent/6.0/directives"}]}},"/techniques/{techniqueId}/{techniqueVersion}/resources":{"get":{"description":"Get currently deployed resources of a technique","operationId":"getTechniquesResources","parameters":[{"$ref":"#/components/parameters/technique-id"},{"$ref":"#/components/parameters/technique-version"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"resources":{"$ref":"#/components/schemas/techniques-resources"}},"required":["resources"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Resources information"}},"summary":"Technique's resources","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques/bar/1.0/resources"}]}},"/techniques/{techniqueId}/{techniqueVersion}/revisions":{"get":{"description":"Get revisions for given technique","operationId":"techniqueRevisions","parameters":[{"$ref":"#/components/parameters/technique-id"},{"$ref":"#/components/parameters/technique-version"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listTechniques"],"type":"string"},"data":{"properties":{"techniques":{"$ref":"#/components/schemas/techniques-revisions"}},"required":["techniques"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Versions information"}},"summary":"Technique's revisions","tags":["Techniques"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/techniques/foo/1.0/revisions"}]}},"/usermanagement":{"post":{"description":"Add a new user","operationId":"addUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/users"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["addUser"],"type":"string"},"data":{"properties":{"addedUser":{"properties":{"password":{"description":"this password will be hashed for you if the `isPreHashed` is set on false","example":"passwdWillBeStoredHashed","type":"string"},"role":{"description":"defined user's permissions","items":{"example":"user","type":"string"},"type":"array"},"username":{"example":"John Doe","type":"string"}},"type":"object"}},"required":["addedUser"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Updated"}},"summary":"Add user","tags":["🧩 User Management"],"x-codeSamples":[{"lang":"curl","source":"add.json:\n\n{\n\t\"isPreHashed\" : false,\n\t\"username\" : \"John Doe\",\n  \"password\" : \"passwdWillBeStoredHashed\",\n\t\"role\" : [\"user\"]\n}\n\ncurl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/usermanagement --header \"Content-type: application/json\" --data @add.json\n\n"}]}},"/usermanagement/roles":{"get":{"description":"Get all available roles and their rights","operationId":"getRole","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getRole"],"type":"string"},"data":{"items":{"properties":{"id":{"description":"Name of the role","enum":["inventory","compliance","administrator","etc"],"type":"string"},"rights":{"description":"Role's rights","items":{"enum":["node_read","userAccount_all"],"type":"string"},"type":"array"}},"required":["id","rights"],"type":"object"},"type":"array"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Roles information"}},"summary":"List all roles","tags":["🧩 User Management"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/usermanagement/roles'"}]}},"/usermanagement/update/{username}":{"post":{"description":"Rename, change password (pre-hashed or not) and change permission of an user. If a parameter is empty, it will be ignored.","operationId":"updateUser","parameters":[{"$ref":"#/components/parameters/username"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/users"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["updateUser"],"type":"string"},"data":{"properties":{"updatedUser":{"properties":{"password":{"description":"New password given","example":"Titi","type":"string"},"role":{"description":"defined user's permissions","items":{"example":"user","type":"string"},"type":"array"},"username":{"description":"New Username","example":"Titi","type":"string"}},"required":["username","password","role"],"type":"object"}},"required":["updatedUser"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Updated"}},"summary":"Update user's infos","tags":["🧩 User Management"],"x-codeSamples":[{"lang":"curl","source":"update.json:\n\n{\n\t\"isPreHashed\" : false,\n\t\"username\"    : \"\",\n  \"password\"    : \"Safer password\",\n\t\"role\"        : [\"user\", \"deployer\", \"inventory\"]\n}\n\ncurl --header \"X-API-Token: yourToken\" --request PUT https://rudder.example.com/rudder/api/latest/usermanagement/Toto --header \"Content-type: application/json\" --data @update.json\n\n"}]}},"/usermanagement/users":{"get":{"description":"Get the list of all present users and their permissions","operationId":"getUserInfo","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["getUserInfo"],"type":"string"},"data":{"properties":{"digest":{"enum":["BCRYPT","SHA512","SHA256","SHA1","MD5"],"type":"string"},"users":{"items":{"$ref":"#/components/schemas/users"},"type":"array"}},"required":["digest","users"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Users information"}},"summary":"List all users","tags":["🧩 User Management"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET 'https://rudder.example.com/rudder/api/latest/usermanagement/users'"}]}},"/usermanagement/users/reload":{"get":{"description":"Reload the users from the file system, in the configuration file","operationId":"reloadUserConf","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["reloadUserConf"],"type":"string"},"data":{"properties":{"reload":{"properties":{"status":{"example":"Done","type":"string"}},"required":["status"],"type":"object"}},"required":["reload"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Reload information"}},"summary":"Reload user","tags":["🧩 User Management"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request POST 'https://rudder.example.com/rudder/api/latest/usermanagement/users/reload'"}]}},"/usermanagement/{username}":{"delete":{"description":"Delete the user and his permissions","operationId":"deleteUser","parameters":[{"$ref":"#/components/parameters/username"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["deleteUser"],"type":"string"},"data":{"properties":{"deletedUser":{"properties":{"username":{"description":"Username of the deleted user","example":"Toto","type":"string"}},"required":["username"],"type":"object"}},"required":["deletedUser"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Deleted user"}},"summary":"Delete an user","tags":["🧩 User Management"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE 'https://rudder.example.com/rudder/api/latest/usermanagement/Toto'"}]}},"/users":{"get":{"description":"List all validated and unvalidated users","operationId":"listUsers","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listUsers"],"type":"string"},"data":{"items":{"$ref":"#/components/schemas/validated-user"},"type":"array"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"List users"}},"summary":"List user","tags":["🧩 Change requests"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request GET https://rudder.example.com/rudder/api/latest/users"}]}},"/validatedUsers":{"post":{"description":"Add and remove user from validated users","operationId":"saveWorkflowUser","requestBody":{"content":{"application/json":{"schema":{"properties":{"validatedUsers":{"description":"list of user to put in validated list","items":{"example":"John Do","type":"string"},"type":"array"}},"required":["validatedUsers"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["addUser"],"type":"string"},"data":{"$ref":"#/components/schemas/validated-user"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Updated"}},"summary":"Update validated user list","tags":["🧩 Change requests"],"x-codeSamples":[{"lang":"curl","source":"update.json:\n\n{\n\t\"validatedUsers\": [\"John Do\", \"Jane Doe\"]\n}\n\ncurl --header \"X-API-Token: yourToken\" --request POST https://rudder.example.com/rudder/api/latest/validatedUsers --header \"Content-type: application/json\" --data @update.json\n\n"}]}},"/validatedUsers/{username}":{"delete":{"description":"The user is again subject to workflow validation","operationId":"removeValidatedUser","parameters":[{"$ref":"#/components/parameters/username"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"action":{"description":"The id of the action","enum":["listUsers"],"type":"string"},"data":{"description":"the user removed from validated list","example":"John Do","type":"string"},"result":{"description":"Result of the request","enum":["success","error"],"type":"string"}},"required":["result","action","data"],"type":"object"}}},"description":"Removed user"}},"summary":"Remove an user from validated user list","tags":["🧩 Change requests"],"x-codeSamples":[{"lang":"curl","source":"curl --header \"X-API-Token: yourToken\" --request DELETE https://rudder.example.com/rudder/api/latest/validatedUsers/John Do\n"}]}}},"components":{"parameters":{"after":{"in":"query","name":"after","required":false,"schema":{"format":"date","type":"string"}},"archive-kind":{"description":"Type of archive to make","in":"path","name":"archiveKind","required":true,"schema":{"enum":["full","groups","rules","directives","parameters"],"example":"full","type":"string"}},"asc":{"in":"query","name":"asc","required":false,"schema":{"enum":["asc","desc"],"type":"string"}},"before":{"in":"query","name":"before","required":false,"schema":{"format":"date","type":"string"}},"campaign-event-id-path":{"description":"Id of the campaign event","in":"path","name":"id","required":true,"schema":{"example":"0076a379-f32d-4732-9e91-33ab219d8fde","format":"uuid","type":"string"}},"campaign-event-status":{"description":"Status of the campaign events we want","in":"query","name":"state","required":false,"schema":{"enum":["scheduled","running","finished","skipped"],"example":"enabled","type":"string"}},"campaign-id":{"description":"id of the campaigns we want","in":"query","name":"campaignId","required":false,"schema":{"enum":["system-update","software-update"],"example":"system-update","type":"string"}},"campaign-id-path":{"description":"Id of the campaign","in":"path","name":"id","required":true,"schema":{"example":"0076a379-f32d-4732-9e91-33ab219d8fde","format":"uuid","type":"string"}},"campaign-status":{"description":"Status of the campaigns we want","in":"query","name":"status","required":false,"schema":{"enum":["enabled","disabled","archived"],"example":"enabled","type":"string"}},"campaign-type":{"description":"Type of the campaigns we want","in":"query","name":"campaignType","required":false,"schema":{"enum":["system-update","software-update"],"example":"system-update","type":"string"}},"change-request-id":{"in":"path","name":"changeRequestId","required":true,"schema":{"description":"Change request id","example":37,"type":"integer"}},"compliance-level":{"description":"Number of depth level of compliance objects to display (1:rules, 2:directives, 3:components, 4:nodes, 5:values, 6:reports)","in":"query","name":"level","schema":{"default":10,"example":4,"type":"integer"}},"compliance-percent-precision":{"description":"Number of digits after comma in compliance percent figures","in":"query","name":"precision","schema":{"default":2,"example":0,"type":"integer"}},"cve-cve-id":{"description":"Id of CVE you want to get from last CVE check","in":"query","name":"cveId","required":false,"schema":{"type":"string"}},"cve-cve-id-path":{"description":"Id of the CVE","in":"path","name":"cveId","required":true,"schema":{"example":"CVE-2022-25235","format":"uuid","type":"string"}},"cve-group-id":{"description":"Id of node groups you want to get from last CVE check","in":"query","name":"groupId","required":false,"schema":{"type":"string"}},"cve-node-id":{"description":"Id of nodes you want to get from last CVE check","in":"query","name":"nodeId","required":false,"schema":{"type":"string"}},"cve-package":{"description":"Name of packages you want to get from last CVE check","in":"query","name":"package","required":false,"schema":{"type":"string"}},"cve-severity":{"description":"Severity of the CVE you want to get from last CVE check","in":"query","name":"severity","required":false,"schema":{"enum":["critical","high","medium","low","none","unknown"],"type":"string"}},"datasource-id":{"description":"Id of the data source","in":"path","name":"datasourceId","required":true,"schema":{"example":"test-data-source","type":"string"}},"directive-id":{"description":"Id of the directive","in":"path","name":"directiveId","required":true,"schema":{"example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid","type":"string"}},"group-category-id":{"in":"path","name":"groupCategoryId","required":true,"schema":{"description":"Group category id","example":"e0a311fa-f7b2-4f9e-89a9-db517b9c6b90","format":"uuid","type":"string"}},"group-id":{"description":"Id of the group","in":"path","name":"groupId","required":true,"schema":{"example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid","type":"string"}},"include":{"description":"Level of information to include from the node inventory. Some base levels are defined (**minimal**, **default**, **full**). You can add fields you want to a base level by adding them to the list, possible values are keys from json answer. If you don't provide a base level, they will be added to `default` level, so if you only want os details, use `minimal,os` as the value for this parameter.\n* **minimal** includes: `id`, `hostname` and `status`\n* **default** includes **minimal** plus `architectureDescription`, `description`, `ipAddresses`, `lastRunDate`, `lastInventoryDate`, `machine`, `os`, `managementTechnology`, `policyServerId`, `properties` (be careful! Only node own properties, if you also need inherited properties, look at the dedicated `/nodes/{id}/inheritedProperties` endpoint), `policyMode `, `ram` and `timezone`\n* **full** includes: **default** plus `accounts`, `bios`, `controllers`, `environmentVariables`, `fileSystems`, `managementTechnologyDetails`, `memories`, `networkInterfaces`, `ports`, `processes`, `processors`, `slots`, `software`, `sound`, `storage`, `videos` and `virtualMachines`","in":"query","name":"include","schema":{"default":"default","example":"minimal","format":"comma-separated list","type":"string"}},"limit":{"description":"Max number of elements in response","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},"node-composition":{"description":"Boolean operator to use between each  `where` criteria.","in":"query","name":"composition","schema":{"default":"and","enum":["and","or"],"example":"and","type":"string"}},"node-delete-mode":{"description":"Deletion mode to use, either move to trash ('move', default) or erase ('erase')","in":"query","name":"mode","required":false,"schema":{"default":"move","enum":["move","erase"],"example":"move","type":"string"}},"node-id":{"description":"Id of the target node","in":"path","name":"nodeId","required":true,"schema":{"example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid (or \"root\")","type":"string"}},"node-ids":{"description":"Comma separated list of node Ids","in":"query","name":"ids","required":true,"schema":{"default":"default","example":"8403353b-42c4-46f5-a08d-bc77a1a0bad9,root","format":"comma-separated list","type":"string"}},"node-query":{"content":{"application/json":{"schema":{"properties":{"composition":{"default":"and","description":"Boolean operator to use between each  `where` criteria.","enum":["and","or"],"example":"and","type":"string"},"select":{"default":"node","description":"What kind of data we want to include. Here we can get policy servers/relay by setting `nodeAndPolicyServer`. Only used if `where` is defined.","type":"string"},"where":{"description":"List of criteria","items":{"properties":{"attribute":{"description":"Attribute to compare","example":"OS","type":"string"},"comparator":{"description":"Comparator to use","example":"eq","type":"string"},"objectType":{"description":"Type of the object","example":"node","type":"string"},"value":{"description":"Value to compare against","example":"Linux","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"The criterion you want to find for your nodes. Replaces the `where`, `composition` and `select` parameters in a single parameter.","in":"query","name":"query"},"node-select":{"description":"What kind of data we want to include. Here we can get policy servers/relay by setting `nodeAndPolicyServer`. Only used if `where` is defined.","in":"query","name":"select","schema":{"default":"node","type":"string"}},"node-where":{"content":{"application/json":{"schema":{"description":"List of criteria","items":{"properties":{"attribute":{"description":"Attribute to compare","example":"OS","type":"string"},"comparator":{"description":"Comparator to use","example":"eq","type":"string"},"objectType":{"description":"Type of the object","example":"node","type":"string"},"value":{"description":"Value to compare against","example":"Linux","type":"string"}},"type":"object"},"type":"array"}}},"description":"The criterion you want to find for your nodes","in":"query","name":"where"},"offset":{"description":"Offset of data in response (skip X elements)","in":"query","name":"offset","required":false,"schema":{"type":"integer"}},"order":{"in":"query","name":"order","required":false,"schema":{"type":"string"}},"parameter-id":{"description":"Id of the parameter to manage","in":"path","name":"parameterId","required":true,"schema":{"example":"rudder_file_edit_header","type":"string"}},"rule-category-id":{"in":"path","name":"ruleCategoryId","required":true,"schema":{"description":"Rule category id","example":"e0a311fa-f7b2-4f9e-89a9-db517b9c6b90","format":"uuid","type":"string"}},"rule-id":{"description":"Id of the target rule","in":"path","name":"ruleId","required":true,"schema":{"example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid","type":"string"}},"secret-name":{"description":"Unique name of the secret","in":"path","name":"name","required":true,"schema":{"type":"string"}},"setting-allowed-networks":{"description":"Policy server ID for which you want to manage allowed networks.","in":"path","name":"nodeId","required":true,"schema":{"example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid (or \"root\")","type":"string"}},"setting-id":{"description":"Id of the setting to set","in":"path","name":"settingId","required":true,"schema":{"example":"global_policy_mode","type":"string"}},"technique-id":{"description":"Technique ID","in":"path","name":"techniqueId","required":true,"schema":{"description":"Technique ID","example":"userManagement","type":"string"}},"technique-version":{"description":"Technique version","in":"path","name":"techniqueVersion","required":true,"schema":{"description":"Technique version","example":"6.0","type":"string"}},"username":{"description":"Username of an user (unique)","in":"path","name":"username","required":true,"schema":{"example":"JaneDoe","type":"string"}}},"responses":{"agent-output":{"content":{"text/plain":{"schema":{"example":"Start execution with config [20200218-112602-11ce4f64]\nHostname        M| State         Technique                 Component                 Key                Message 192.168.210.5   E| compliant     Common                    ncf Initialization                           Configuration library initialization was correct 192.168.210.5   E| compliant     Common                    Update                                       Policy and configuration library are already up to date. No action required. [...]\n## Summary ##################################################################### 90 components verified in 15 directives\n  => 62 components in Enforce mode\n      -> 48 compliant\n      -> 13 not-applicable\n      -> 1 error\n  => 28 components in Audit mode\n      -> 15 compliant\n      -> 3 not-applicable\n      -> 10 non-compliant\nExecution time: 8.89s ################################################################################","type":"string"}}},"description":"Agent output"}},"schemas":{"agent-key":{"description":"Information about agent key or certificate","properties":{"status":{"description":"Certification status of the security token (reset to `undefined` to trust a new certificate). If `certified`, inventory signature check will be enforced","enum":["certified","undefined"],"type":"string"},"value":{"description":"Certificate (or public key for <6.0 agents) used by the agent. Be careful write a \"\\n\" after header line and before footer line, JSON does not keep formatting in string.","example":"-----BEGIN CERTIFICATE-----\nMIIFqDCC[...]3tALNn\n-----END CERTIFICATE-----","format":"PEM","type":"string"}},"required":["value"],"type":"object"},"api-endpoints":{"items":{"description":"objects with two fields, the first one has the endpoint name as key and its description as value, the second one has HTTP verb to use (GET, POST PUT, DELETE) as key and the supported version an API path for value.","example":"{ 'listAcceptedNodes': 'List all accepted nodes with configurable details level', 'GET': '[8,9,10,11,12,13] /nodes' }","properties":{"endpointName":{"description":"The endpoint name for key and its description for value","type":"string"},"httpVerb":{"format":"The HTTP verb for the endpoint for key and the supported version and API path for value"}},"type":"object"},"type":"array"},"api-version":{"properties":{"all":{"description":"List of API version and status","items":{"properties":{"status":{"description":"Status of the API, either maintained or deprecated","example":"maintained","format":"string","required":["maintained","deprecated"]},"version":{"description":"API Version","example":12,"type":"integer"}},"required":["version","status"],"type":"object"},"type":"array"},"latest":{"description":"Latest API version available","example":12,"type":"integer"}},"type":"object"},"api-versions":{"properties":{"all":{"description":"List of API version and status","items":{"$ref":"#/components/schemas/api-version"},"type":"array"},"latest":{"description":"Latest API version available","example":12,"type":"integer"}},"type":"object"},"branding-conf":{"properties":{"barColor":{"$ref":"#/components/schemas/color"},"displayBar":{"description":"Whether header bar is displayed or not","type":"boolean"},"displayBarLogin":{"description":"Whether header bar is displayed in login page or not","type":"boolean"},"displayLabel":{"description":"Whether header bar's label is displayed or not","type":"boolean"},"displayMotd":{"description":"Whether the message of the day is displayed in login page or not","type":"boolean"},"labelColor":{"$ref":"#/components/schemas/color"},"labelText":{"description":"The header bar's label title","example":"Production","type":"string"},"motd":{"description":"Message of the day in login page","example":"Welcome, please sign in:","type":"string"},"smallLogo":{"$ref":"#/components/schemas/logo"},"wideLogo":{"$ref":"#/components/schemas/logo"}},"required":["displayBar","displayLabel","labelText","barColor","labelColor","wideLogo","smallLogo","displayBarLogin","displayMotd","motd"],"type":"object"},"campaign-details":{"properties":{"campaignType":{"description":"Type of campaign (with version determine what kind of campaign you handle and the details object)","example":"system-update","type":"string"},"details":{"oneOf":[{"$ref":"#/components/schemas/campaign-system-update"},{"$ref":"#/components/schemas/campaign-software-update"}]},"info":{"description":"common data about campaign","properties":{"description":{"description":"Campaign description","example":"","type":"string"},"id":{"description":"Campaign id","example":"0076a379-f32d-4732-9e91-33ab219d8fde","format":"uuid","type":"string"},"name":{"description":"Campaign name","example":"Update all systems","type":"string"},"schedule":{"oneOf":[{"$ref":"#/components/schemas/campaign-schedule-weekly"},{"$ref":"#/components/schemas/campaign-schedule-oneshot"},{"$ref":"#/components/schemas/campaign-schedule-monthly"}]},"status":{"oneOf":[{"$ref":"#/components/schemas/campaign-status-enabled"},{"$ref":"#/components/schemas/campaign-status-disabled"},{"$ref":"#/components/schemas/campaign-status-archived"}]}},"type":"object"},"version":{"description":"Version of campaign (with type determine what kind of campaign you handle and the details object)","example":2,"type":"integer"}},"type":"object"},"campaign-event-details":{"properties":{"campaignId":{"description":"Id of the campaign for this event","type":"string"},"campaignType":{"description":"Type of campaign","example":"system-update","type":"string"},"end":{"description":"Campaign event end date","example":"","type":"string"},"id":{"description":"Campaign event id","example":"0076a379-f32d-4732-9e91-33ab219d8fde","format":"uuid","type":"string"},"name":{"description":"Campaign event name","example":"Update all systems #1","type":"string"},"start":{"description":"Campaign event start date","example":"","type":"string"},"status":{"properties":{"reason":{"description":"used only for skipped status","type":"string"},"value":{"enum":["scheduled","running","finished","skipped"],"type":"string"}},"type":"object"}},"type":"object"},"campaign-event-node-result":{"properties":{"id":{"description":"Campaign event id","example":"0076a379-f32d-4732-9e91-33ab219d8fde","format":"uuid","type":"string"},"nodes":{"items":{"properties":{"date":{"format":"date","type":"string"},"nodeId":{"description":"Node id","example":"b81d08e8-03f8-46b7-9399-9bea54e41ec7","type":"string"},"result":{"properties":{"errors":{"description":"campaign standard errors","type":"string"},"output":{"description":"campaign standard output","type":"string"},"software-updated":{"description":"List of updated software","items":{"properties":{"after":{"description":"Version of the software after update","type":"string"},"before":{"description":"Version of the software before update","type":"string"},"name":{"description":"Name of the software updated","type":"string"}},"type":"object"},"type":"array"},"status":{"description":"Campaign result","enum":["success","error","scheduled","missing"],"type":"string"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"},"campaign-event-result":{"properties":{"id":{"description":"Campaign event id","example":"0076a379-f32d-4732-9e91-33ab219d8fde","format":"uuid","type":"string"},"nodes":{"description":"Campaign result for all Nodes","items":{"description":"Campaign result for a Node","properties":{"date":{"format":"date","type":"string"},"nbPackages":{"description":"Number of software updated","example":"42","type":"integer"},"nodeId":{"description":"Node id","example":"b81d08e8-03f8-46b7-9399-9bea54e41ec7","type":"string"},"status":{"description":"Campaign status","enum":["success","error","scheduled","missing"],"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"campaign-schedule-monthly":{"properties":{"end":{"description":"Date when the campaign should end","properties":{"day":{"description":"Day of the week the campaign should end","format":"[1-7]","type":"integer"},"hour":{"description":"Hour of the day the campaign should end","format":"[0-23]","type":"integer"},"minute":{"description":"Minute of the hour the campaign should end","format":"[0-59]","type":"integer"}},"type":"object"},"position":{"description":"Week during the month in which our campaign start, 1/2/3 means first/second/last, -1/-2 means Last/secondLast","format":"-2, -1, 1, 2, 3","type":"integer"},"start":{"description":"Date when the campaign should start","properties":{"day":{"description":"Day of the week the campaign should start","format":"[1-7]","type":"integer"},"hour":{"description":"Hour of the day the campaign should start","format":"[0-23]","type":"integer"},"minute":{"description":"Minute of the hour the campaign should start","format":"[0-59]","type":"integer"}},"type":"object"},"type":{"format":"monthly","type":"string"}},"type":"object"},"campaign-schedule-oneshot":{"properties":{"end":{"description":"Date when the campaign should end","format":"rfc3339","type":"string"},"start":{"description":"Date when the campaign should start","format":"rfc3339","type":"string"},"type":{"format":"one-shot","type":"string"}},"type":"object"},"campaign-schedule-weekly":{"properties":{"end":{"description":"Date when the campaign should end","properties":{"day":{"description":"Day of the week the campaign should end","example":3,"format":"[1-7]","type":"integer"},"hour":{"description":"Hour of the day the campaign should end","example":3,"format":"[0-23]","type":"integer"},"minute":{"description":"Minute of the hour the campaign should end","example":42,"format":"[0-59]","type":"integer"}},"type":"object"},"start":{"description":"Date when the campaign should start","properties":{"day":{"description":"Day of the week the campaign should start","example":2,"format":"[1-7]","type":"integer"},"hour":{"description":"Hour of the day the campaign should start","example":17,"format":"[0-23]","type":"integer"},"minute":{"description":"Minute of the hour the campaign should start","example":22,"format":"[0-59]","type":"integer"}},"type":"object"},"type":{"format":"weekly","type":"string"}},"type":"object"},"campaign-software-update":{"description":"Software update campaign details (type software-update, version 1)","properties":{"reboot":{"description":"Define the behavior after update","enum":["as-needed","disabled","always","services-only"],"type":"string"},"softwareUpdate":{"description":"List of all software to update","items":{"properties":{"arch":{"description":"Architecture of the packkage to update","example":"x64","type":"string"},"name":{"description":"Name of the package  to update","example":"htop","type":"string"},"version":{"description":"Target version of the package to update to","example":"49.3","type":"string"}},"type":"object"},"type":"array"},"targets":{"description":"List of all  groups of node to target the campaign","items":{"$ref":"#/components/schemas/rule-targets"},"type":"array"}}},"campaign-status-archived":{"description":"Campaign status","properties":{"date":{"description":"Date when the campaign was archived","format":"rfc3339","type":"string"},"reason":{"description":"Reason of to archive this campaign","type":"string"},"value":{"format":"archived","type":"string"}},"type":"object"},"campaign-status-disabled":{"description":"Campaign status","properties":{"reason":{"description":"Reason of to disable this campaign","type":"string"},"value":{"format":"disabled","type":"string"}},"type":"object"},"campaign-status-enabled":{"description":"Campaign status","properties":{"value":{"format":"enabled","type":"string"}},"type":"object"},"campaign-system-update":{"description":"System update campaign details (type system-update, version 2)","properties":{"reboot":{"description":"Define the behavior after update","enum":["as-needed","disabled","always","services-only"],"type":"string"},"targets":{"description":"List of all  groups of node to target the campaign","items":{"$ref":"#/components/schemas/rule-targets"},"type":"array"}},"type":"object"},"categories-tree":{"properties":{"id":{"description":"Category ID","example":"/","type":"string"},"name":{"description":"Category's name","example":"/","type":"string"},"path":{"description":"Category's path","example":"","type":"string"},"subcategories":{"description":"List of sub categories","items":{"$ref":"#/components/schemas/technique-category"},"type":"array"}},"required":["name","path","id","subcategories"],"type":"object"},"change-request":{"description":"Content of the change request","properties":{"acceptable":{"example":true,"type":"boolean"},"changes":{"properties":{"rules":{"items":{"properties":{"action":{"example":"modify Rule","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"created by":{"example":"Matthieu C.","type":"string"},"description":{"type":"string"},"id":{"example":42,"type":"integer"},"name":{"example":"Remove unused security policy","type":"string"},"status":{"enum":["Deployed","Pending deployment","Cancelled","Pending validation","Open"],"type":"string"}},"type":"object"},"check":{"properties":{"msg":{"description":"Message about the check","example":"Only 2GB of RAM left","type":"string"},"name":{"description":"Name of the check","example":"RAM available","type":"string"},"status":{"description":"The severity status of the check","enum":["Critical","Warning","Ok"],"type":"string"}},"required":["name","msg","status"],"type":"object"},"color":{"properties":{"alpha":{"description":"percentage of opacity","example":0.5,"maximum":1,"minimum":0,"type":"number"},"blue":{"description":"percentage of blue component","example":0.235,"maximum":1,"minimum":0,"type":"number"},"green":{"description":"percentage of green component","example":0.01,"maximum":1,"minimum":0,"type":"number"},"red":{"description":"percentage of red component","example":0.2,"maximum":1,"minimum":0,"type":"number"}},"required":["red","blue","green","alpha"],"type":"object"},"compliance-directive-id":{"properties":{"action":{"description":"The id of the action","enum":["getDirectiveComplianceId"],"type":"string"},"data":{"properties":{"directiveCompliance":{"properties":{"compliance":{"description":"Directive compliance level","example":83.34,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":1.32,"format":"float","type":"number"},"noReport":{"example":7.45,"format":"float","type":"number"},"successAlreadyOK":{"example":66.68,"format":"float","type":"number"},"successNotApplicable":{"example":16.66,"format":"float","type":"number"},"successRepaired":{"example":2.63,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":2.63,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":2.63,"format":"float","type":"number"}},"type":"object"},"id":{"description":"id of the directive","example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid","type":"string"},"mode":{"enum":["full-compliance","changes-only","reports-disabled"],"type":"string"},"name":{"description":"Name of the directive","example":"test directive","type":"string"},"nodes":{"$ref":"#/components/schemas/directive-node-compliance"},"rules":{"$ref":"#/components/schemas/directive-rule-compliance"}},"required":["id","name","mode","compliance","complianceDetails","rules","nodes"],"type":"object"}},"required":["directiveCompliance"],"type":"object"},"result":{"description":"Result of the request","enum":["success","error"],"example":"success","type":"string"}},"required":["result","action","data"],"type":"object"},"compliance-directive-id-csv":{"example":"Rule, Component, Node, Value, Status, Message\\n Global configuration for all nodes, MOTD Configuration, server.rudder.local, None, successAlreadyOK, The MOTD file was correct\\n Global configuration for all nodes, MOTD Configuration, agent1.rudder.local, None, successAlreadyOK, The MOTD file was correct\\n Test user, Users, server.rudder.local, toto, successAlreadyOK, The user toto ( Without any defined full name ) is already present on the system\\n Test user, Password, server.rudder.local, toto, successAlreadyOK, The user toto ( Without any defined full name ) password change is not required\\n Test user, Home directory, server.rudder.local, toto, successNotApplicable, The user toto doesn't need to have its home directory checked\"\\n","format":"binary","type":"string"},"cveCheck":{"properties":{"cveId":{"description":"CVE id","example":"CVE-2019-5953","format":"CVE id","type":"string"},"nodes":{"description":"Id of Nodes affected by this CVE","items":{"description":"Node id","type":"string"},"type":"array"},"packages":{"description":"Packages affected by this CVE","items":{"description":"Packages affected by this CVE","properties":{"name":{"description":"Name of the package affected","example":"libssh2-1","type":"string"},"version":{"description":"Version of the package affected","example":"1.7.0-1","type":"string"}},"type":"object"},"type":"array"},"score":{"description":"CVE score","properties":{"severity":{"example":"Critical","type":"string"},"value":{"example":9.5,"format":"A score between 0 and 10 as a float","type":"string"}},"type":"object"}},"type":"object"},"cveDetails":{"properties":{"cvssv2":{"description":"CVSS V2 of the CVE","properties":{"baseScore":{"description":"CVSS V2 base score","type":"integer"},"vector":{"description":"CVSS V2 vector","type":"string"}},"type":"object"},"cvssv3":{"description":"CVSS V3 of the CVE","properties":{"baseScore":{"description":"CVSS V3 base score","example":9.8,"format":"float (0 to 10)","type":"number"},"baseSeverity":{"description":"CVSS V3 Severity","enum":["critical","high","medium","low","none"],"type":"string"},"vector":{"description":"CVSS V3 vector","example":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","type":"string"}},"type":"object"},"cweIds":{"description":"List of CWE (Common Weakness Enumeration) of the CVE","items":{"description":"id of a CWE","example":"CWE-119","type":"string"},"type":"array"},"description":{"description":"CVE Description","example":"Buffer overflow in GNU Wget 1.20.1 and earlier allows remote attackers to cause a denial-of-service (DoS) or may execute an arbitrary code via unspecified vectors.","type":"string"},"id":{"description":"CVE id","example":"CVE-2019-5953","format":"cve id","type":"string"},"lastModifiedDate":{"description":"last Date the CVE was modified","example":"2025-08-15T13:50:50.759Z","format":"date","type":"string"},"publishedDate":{"description":"Date the CVE was published","example":"2025-08-15T13:50:50.759Z","format":"date","type":"string"}},"type":"object"},"datasource":{"properties":{"description":{"description":"Description of the goal of the data source to create.","example":"Synchronize example data from the CMDB","type":"string"},"enabled":{"description":"Enable or disable data source.","example":true,"type":"boolean"},"id":{"description":"Unique identifier of the data source to create.","example":"test-data-source","type":"string"},"name":{"description":"The human readable name of the data source to create.","example":"Test data source","type":"string"},"runParameters":{"description":"Parameters to configure when the data source is fetched to update node properties.","properties":{"onGeneration":{"description":"Trigger a fetch at the beginning of a policy generation","example":true,"type":"boolean"},"onNewNode":{"description":"Trigger a fetch when a new node is accepted, for that node","example":true,"type":"boolean"},"schedule":{"description":"Configure if data source should be fetch periodically","properties":{"type":{"description":"`scheduled` enables periodic update, `notscheduled` disables them","enum":["scheduled","notscheduled"],"example":"scheduled","type":"string"}},"type":"object"}},"type":"object"},"type":{"description":"Define and configure data source type.","properties":{"name":{"description":"Data source type name","enum":["HTTP"],"example":"HTTP","type":"string"},"parameters":{"description":"You can use Rudder variable expansion (`${rudder.node`, `${node.properties...}`)","properties":{"checkSsl":{"description":"Check SSL certificate validity for https. Must be set to false for self-signed certificate","example":true,"type":"boolean"},"headers":{"description":"Represent HTTP headers for the query. Rudder expansion available.","items":{"properties":{"name":{"description":"Name of the header","example":"X-API-Key","type":"string"},"value":{"description":"Value of the header","example":"05ce8e3d9df6","type":"string"}},"type":"object"},"type":"array"},"path":{"description":"JSON path (as defined in [the specification](https://github.com/jayway/JsonPath/), without the leading `$.`) to find the interesting sub-json or string/number/boolean value in the answer. Let empty to use the whole answer as value.","type":"string"},"requestMethod":{"description":"HTTP method to use to contact the URL.","enum":["GET","POST"],"example":"GET","type":"string"},"requestMode":{"description":"Configure the strategy used to query the HTTP data source.","properties":{"name":{"description":"Node by node strategy","enum":["byNode"],"example":"byNode","type":"string"}},"type":"object"},"requestTimeout":{"description":"Timeout in seconds for each HTTP request","example":10,"type":"integer"},"url":{"description":"URL to contact. Rudder expansion available.","example":"http://jsonplaceholder.typicode.com/users/1","type":"string"}},"type":"object"}},"type":"object"},"updateTimeout":{"description":"Duration in seconds before aborting data source update. The main goal is to prevent never ending requests. If a periodicity if configured, you should set that timeout at a lower value.","example":30,"type":"integer"}},"type":"object"},"directive":{"properties":{"displayName":{"description":"Human readable name of the directive","example":"91252ea2-feb2-412d-8599-c6945fee02c4","type":"string"},"enabled":{"description":"Is the directive enabled","example":true,"type":"boolean"},"id":{"description":"Directive id","example":"91252ea2-feb2-412d-8599-c6945fee02c4","format":"uuid","type":"string"},"longDescription":{"description":"Description of the technique (rendered as markdown)","example":"# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)","format":"markdown","type":"string"},"parameters":{"description":"Directive parameters (depends on the source technique)","example":{"name":"sections","sections":[{"section":{"name":"File to manage","sections":[{"section":{"name":"File","vars":[{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_PATH","value":"/root/test"}}]}},{"section":{"name":"File cleaning options","vars":[{"var":{"name":"FILE_AND_FOLDER_DELETION_DAYS","value":"0"}},{"var":{"name":"FILE_AND_FOLDER_DELETION_OPTION","value":"none"}},{"var":{"name":"FILE_AND_FOLDER_DELETION_PATTERN","value":".*"}}]}},{"section":{"name":"Permissions","vars":[{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS","value":"false"}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_GROUP","value":""}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_OWNER","value":""}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_PERM","value":"000"}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_RECURSIVE","value":"1"}}]}},{"section":{"name":"Post-modification hook","vars":[{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND","value":""}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN","value":"false"}}]}}],"vars":[{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_ACTION","value":"copy"}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_SOURCE","value":"/vagrant/node.sh"}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE","value":"false"}}]}}]},"type":"object"},"policyMode":{"description":"Policy mode of the directive","enum":["enforce","audit"],"example":"audit","type":"string"},"priority":{"description":"Directive priority. `0` has highest priority.","example":5,"maximum":10,"minimum":0,"type":"integer"},"shortDescription":{"description":"One line directive description","example":"91252ea2-feb2-412d-8599-c6945fee02c4","type":"string"},"system":{"description":"If true it is an internal Rudder directive","example":false,"type":"boolean"},"tags":{"items":{"example":{"customer":"MyCompany"},"properties":{"name":{"description":"Value of the `name` key","example":"value","type":"string"}},"type":"object"},"type":"array"},"techniqueName":{"description":"Directive id","example":"userManagement","type":"string"},"techniqueVersion":{"description":"Directive id","example":"8.0","type":"string"}},"type":"object"},"directive-new":{"properties":{"displayName":{"description":"Human readable name of the directive","example":"91252ea2-feb2-412d-8599-c6945fee02c4","type":"string"},"enabled":{"description":"Is the directive enabled","example":true,"type":"boolean"},"id":{"description":"Directive id","example":"91252ea2-feb2-412d-8599-c6945fee02c4","format":"uuid","type":"string"},"longDescription":{"description":"Description of the technique (rendered as markdown)","example":"# Documentation\n* [Ticket link](https://tickets.example.com/issues/3456)","format":"markdown","type":"string"},"parameters":{"description":"Directive parameters (depends on the source technique)","example":{"name":"sections","sections":[{"section":{"name":"File to manage","sections":[{"section":{"name":"File","vars":[{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_PATH","value":"/root/test"}}]}},{"section":{"name":"File cleaning options","vars":[{"var":{"name":"FILE_AND_FOLDER_DELETION_DAYS","value":"0"}},{"var":{"name":"FILE_AND_FOLDER_DELETION_OPTION","value":"none"}},{"var":{"name":"FILE_AND_FOLDER_DELETION_PATTERN","value":".*"}}]}},{"section":{"name":"Permissions","vars":[{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_CHECK_PERMISSIONS","value":"false"}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_GROUP","value":""}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_OWNER","value":""}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_PERM","value":"000"}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_RECURSIVE","value":"1"}}]}},{"section":{"name":"Post-modification hook","vars":[{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_COMMAND","value":""}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_POST_HOOK_RUN","value":"false"}}]}}],"vars":[{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_ACTION","value":"copy"}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_SOURCE","value":"/vagrant/node.sh"}},{"var":{"name":"FILE_AND_FOLDER_MANAGEMENT_SYMLINK_ENFORCE","value":"false"}}]}}]},"type":"object"},"priority":{"description":"Directive priority. `0` has highest priority.","example":5,"maximum":10,"minimum":0,"type":"integer"},"shortDescription":{"description":"One line directive description","example":"91252ea2-feb2-412d-8599-c6945fee02c4","type":"string"},"source":{"description":"The id of the directive the clone will be based onto. If this parameter if provided,  the new directive will be a clone of this source. Other value will override values from the source.","example":"b9f6d98a-28bc-4d80-90f7-d2f14269e215","format":"uuid","type":"string"},"system":{"description":"If true it is an internal Rudder directive","example":false,"type":"boolean"},"tags":{"items":{"example":{"customer":"MyCompany"},"properties":{"name":{"description":"Value of the `name` key","example":"value","type":"string"}},"type":"object"},"type":"array"},"techniqueName":{"description":"Directive id","example":"userManagement","type":"string"},"techniqueVersion":{"description":"Directive id","example":"8.0","type":"string"}},"type":"object"},"directive-node-compliance":{"properties":{"compliance":{"description":"Directive compliance level","example":83.34,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":0,"format":"float","type":"number"},"noReport":{"example":0,"format":"float","type":"number"},"successAlreadyOK":{"example":100,"format":"float","type":"number"},"successNotApplicable":{"example":0,"format":"float","type":"number"},"successRepaired":{"example":0,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":0,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":0,"format":"float","type":"number"}},"type":"object"},"id":{"description":"id of the node","example":"b6ded8e2-2709-4986-973d-8e5522d20718","format":"uuid","type":"string"},"name":{"description":"Name of the node","example":"agent1.rudder.local","type":"string"},"rules":{"$ref":"#/components/schemas/rule-compliance-component"}},"required":["id","name","compliance","complianceDetails","rules"],"type":"object"},"directive-rule-compliance":{"properties":{"compliance":{"description":"Directive compliance level","example":83.34,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":0,"format":"float","type":"number"},"noReport":{"example":0,"format":"float","type":"number"},"successAlreadyOK":{"example":100,"format":"float","type":"number"},"successNotApplicable":{"example":0,"format":"float","type":"number"},"successRepaired":{"example":0,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":0,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":0,"format":"float","type":"number"}},"type":"object"},"components":{"items":{"properties":{"compliance":{"description":"Directive compliance level","example":83.34,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":0,"format":"float","type":"number"},"noReport":{"example":0,"format":"float","type":"number"},"successAlreadyOK":{"example":100,"format":"float","type":"number"},"successNotApplicable":{"example":0,"format":"float","type":"number"},"successRepaired":{"example":0,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":0,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":0,"format":"float","type":"number"}},"type":"object"},"name":{"description":"Name of the component","example":"MOTD Configuration","type":"string"},"nodes":{"$ref":"#/components/schemas/node-compliance-component"}},"required":["name","compliance","complianceDetails","nodes"],"type":"object"},"type":"array"},"id":{"description":"id of the rule","example":"32377fd7-02fd-43d0-aab7-28460a91347b","format":"uuid","type":"string"},"mode":{"enum":["full-compliance","changes-only","reports-disabled"],"type":"string"},"name":{"description":"Name of the rule","example":"Global configuration for all nodes","type":"string"}},"required":["id","name","compliance","complianceDetails","nodes"],"type":"object"},"editor-technique":{"properties":{"calls":{"description":"Method and blocks contained by this technique","items":{"oneOf":[{"$ref":"#/components/schemas/technique-method-call"},{"$ref":"#/components/schemas/technique-block"}]},"type":"array"},"category":{"description":"category of this technique","example":"user_techniques","type":"string"},"description":{"description":"description of this technique","example":"This techniques apply generic security policies","type":"string"},"id":{"description":"Technique id","example":"security-policy","type":"string"},"name":{"description":"Technique name","example":"Security Policy","type":"string"},"parameters":{"description":"Parameters for this technique","items":{"$ref":"#/components/schemas/technique-parameter"},"type":"array"},"resources":{"description":"Resources for this technique","items":{"$ref":"#/components/schemas/technique-resource"},"type":"array"},"source":{"description":"Source of the technique, always editor here","example":"editor","type":"string"},"version":{"description":"version of this technique","example":"1.0","type":"string"}},"type":"object"},"group":{"properties":{"description":{"description":"Group description","example":"Documentation for the group","type":"string"},"displayName":{"description":"Name of the group","example":"Ubuntu 18.04 nodes","type":"string"},"dynamic":{"default":true,"description":"Should the group be dynamically refreshed (if not, it is a static group)","type":"boolean"},"enabled":{"default":true,"description":"Enable or disable the group","type":"boolean"},"groupClass":{"items":{"description":"Conditions defined on nodes in the groups. There is one based on the group id, and one based on the group name.","example":"group_ubuntu","format":"condition","type":"string"},"type":"array"},"id":{"default":"{autogenerated}","description":"Group id","example":"32d013f7-b6d8-46c8-99d3-016307fa66c0","format":"uuid","type":"string"},"nodeIds":{"description":"List of nodes in the group","items":{"description":"Node in the group","example":"109142a2-40eb-4e6d-84b4-7ebe3670474c","format":"uuid (or \"root\")","type":"string"},"type":"array"},"properties":{"description":"Group properties","items":{"properties":{"name":{"description":"Property name","example":"os","type":"string"},"value":{"description":"Property value (can be a string or JSON object)","example":"debian10","format":"string or JSON"}},"required":["name","value"],"type":"object"},"type":"array"},"query":{"description":"The criteria defining the group","properties":{"composition":{"default":"and","description":"Boolean operator to use between each  `where` criteria.","enum":["and","or"],"example":"and","type":"string"},"select":{"default":"node","description":"What kind of data we want to include. Here we can get policy servers/relay by setting `nodeAndPolicyServer`. Only used if `where` is defined.","type":"string"},"where":{"description":"List of criteria","items":{"properties":{"attribute":{"description":"Attribute to compare","example":"OS","type":"string"},"comparator":{"description":"Comparator to use","example":"eq","type":"string"},"objectType":{"description":"Type of the object","example":"node","type":"string"},"value":{"description":"Value to compare against","example":"Linux","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"group-category":{"properties":{"description":{"description":"Group category description","example":"Nodes by hardware provider","type":"string"},"id":{"default":"{autogenerated}","description":"Group category id, only provide it when needed.","example":"32d013f7-b6d8-46c8-99d3-016307fa66c0","format":"uuid","type":"string"},"name":{"description":"Name of the group category","example":"Hardware groups","type":"string"},"parent":{"description":"The parent category of the groups","example":"b9f6d98a-28bc-4d80-90f7-d2f14269e215","format":"uuid","type":"string"}},"required":["parent","name"],"type":"object"},"group-category-update":{"properties":{"description":{"description":"Group category description","example":"Nodes by hardware provider","type":"string"},"name":{"description":"Name of the group category","example":"Hardware groups","type":"string"},"parent":{"description":"The parent category of the groups","example":"b9f6d98a-28bc-4d80-90f7-d2f14269e215","format":"uuid","type":"string"}},"required":["parent","name"],"type":"object"},"group-new":{"properties":{"category":{"description":"Id of the new group's category","example":"e17ecf6a-a9f2-44de-a97c-116d24d30ff4","format":"uuid","type":"string"},"description":{"description":"Group description","example":"Documentation for the group","type":"string"},"displayName":{"description":"Name of the group","example":"Ubuntu 18.04 nodes","type":"string"},"dynamic":{"default":true,"description":"Should the group be dynamically refreshed (if not, it is a static group)","type":"boolean"},"enabled":{"default":true,"description":"Enable or disable the group","type":"boolean"},"id":{"default":"{autogenerated}","description":"Group id, only provide it when needed.","example":"32d013f7-b6d8-46c8-99d3-016307fa66c0","format":"uuid","type":"string"},"properties":{"description":"Group properties","items":{"properties":{"name":{"description":"Property name","example":"os","type":"string"},"value":{"description":"Property value (can be a string or JSON object)","example":"debian10","format":"string or JSON"}},"required":["name","value"],"type":"object"},"type":"array"},"query":{"description":"The criteria defining the group. If not provided, the group will be empty.","properties":{"composition":{"default":"and","description":"Boolean operator to use between each  `where` criteria.","enum":["and","or"],"example":"and","type":"string"},"select":{"default":"node","description":"What kind of data we want to include. Here we can get policy servers/relay by setting `nodeAndPolicyServer`. Only used if `where` is defined.","type":"string"},"where":{"description":"List of criteria","items":{"properties":{"attribute":{"description":"Attribute to compare","example":"OS","type":"string"},"comparator":{"description":"Comparator to use","example":"eq","type":"string"},"objectType":{"description":"Type of the object","example":"node","type":"string"},"value":{"description":"Value to compare against","example":"Linux","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"source":{"description":"The id of the group the clone will be based onto. If this parameter if provided,  the new group will be a clone of this source. Other value will override values from the source.","example":"b9f6d98a-28bc-4d80-90f7-d2f14269e215","format":"uuid","type":"string"}},"required":["displayName","category"],"type":"object"},"group-update":{"properties":{"category":{"description":"Id of the new group's category","example":"e17ecf6a-a9f2-44de-a97c-116d24d30ff4","format":"uuid","type":"string"},"description":{"description":"Group description","example":"Documentation for the group","type":"string"},"displayName":{"description":"Name of the group","example":"Ubuntu 18.04 nodes","type":"string"},"dynamic":{"default":true,"description":"Should the group be dynamically refreshed (if not, it is a static group)","type":"boolean"},"enabled":{"default":true,"description":"Enable or disable the group","type":"boolean"},"query":{"description":"The criteria defining the group. If not provided, the group will be empty.","properties":{"composition":{"default":"and","description":"Boolean operator to use between each  `where` criteria.","enum":["and","or"],"example":"and","type":"string"},"select":{"default":"node","description":"What kind of data we want to include. Here we can get policy servers/relay by setting `nodeAndPolicyServer`. Only used if `where` is defined.","type":"string"},"where":{"description":"List of criteria","items":{"properties":{"attribute":{"description":"Attribute to compare","example":"OS","type":"string"},"comparator":{"description":"Comparator to use","example":"eq","type":"string"},"objectType":{"description":"Type of the object","example":"node","type":"string"},"value":{"description":"Value to compare against","example":"Linux","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}},"type":"object"},"logo":{"properties":{"enable":{"description":"Whether the wide logo is displayed or not","type":"boolean"}},"required":["enable"],"type":"object"},"method-parameter":{"properties":{"_type":{"default":"String","description":"Type of the parameter","enum":["String","HereString"],"type":"string"},"constraints":{"properties":{"allow_empty_string":{"description":"Can this parameter be empty?","example":false,"type":"boolean"},"allow_whitespace_string":{"description":"Can this parameter allow trailing/ending spaces, or even a full whitespace string ?","example":true,"type":"boolean"},"max_length":{"description":"Maximum size of a parameter","example":250,"type":"integer"},"min_length":{"description":"Minimal size of a parameter","example":5,"type":"integer"},"not_regex":{"description":"A regexp to invalidate this parameter","example":"^c.*","type":"string"},"regex":{"description":"A regex to validate this parameter","example":".*","type":"string"},"select":{"description":"List of items authorized for this parameter","items":{"example":"!=","type":"string"},"type":"array"}},"required":["allow_empty_string","allow_whitespace_string","max_length","min_length","regex","not_regex","select"],"type":"object"},"description":{"description":"Description of this parameter","example":"Name of a package to install","type":"string"},"name":{"description":"Parameter name","example":"package","type":"string"}},"required":["name","description","constraints","type"],"type":"object"},"methods":{"description":"List of available generic methods","properties":{"agents":{"description":"List of agents compatible with this method","items":{"description":"Name of an agent","example":"dsc","type":"string"},"type":"array"},"category":{"description":"Category of this technique","example":"user_techniques","type":"string"},"condition":{"description":"Conditions generated by this method","properties":{"parameter":{"description":"Id of the parameter used to generate condition","example":"package","type":"string"},"prefix":{"description":"Prefix used to generate condition","example":"package_present","type":"string"}},"type":"object"},"deprecated":{"description":"Is this method deprecated?","properties":{"info":{"description":"Information notice about the deprecation, especially how to replace it","example":"The method has been deprecated because of X","type":"string"},"replacedBy":{"description":"Id of the method replacing this method","example":"package_present","type":"string"}},"type":"object"},"desc":{"description":"Description of this method","example":"Enforce the presence of a package","type":"string"},"documentation":{"description":"Full documentation of this method","example":"This methods allows...","type":"string"},"id":{"description":"Method id","example":"package_present","type":"string"},"name":{"description":"Method name","example":"Package present","type":"string"},"parameters":{"description":"Parameters for this technique","items":{"$ref":"#/components/schemas/method-parameter"},"type":"array"},"version":{"description":"Version of this technique","example":"1.0","type":"string"}},"required":["id","name","version","category","desc","documentation","parameters","agents","condition","deprecated"],"type":"object"},"node-add":{"items":{"properties":{"agentKey":{"$ref":"#/components/schemas/agent-key"},"hostname":{"description":"The fully qualified name of the node","example":"my.node.hostname.local","type":"string"},"id":{"description":"The Rudder node unique identifier in /opt/rudder/etc/uuid.hive","example":"378740d3-c4a9-4474-8485-478e7e52db52","type":"string"},"ipAddresses":{"description":"an array of IPs.","items":{"example":"192.168.180.90","type":"string"},"type":"array"},"machineType":{"description":"The kind of machine for the node (use vm for a generic VM)","enum":["vmware","physical","vm","solariszone","qemu","xen","aixlpar","hyperv","bsdjail"],"type":"string"},"os":{"$ref":"#/components/schemas/os"},"policyMode":{"description":"The policy mode for the node. Can only be specified when status=accepted. If not specified, the default (global) mode will be used","enum":["enforce","audit"],"type":"string"},"policyServerId":{"description":"The policy server ID for that node. By default, \"root\"","example":"root","type":"string"},"properties":{"description":"Node properties (either set by user or filled by third party sources)","items":{"properties":{"name":{"description":"Property name","example":"datacenter","type":"string"},"value":{"description":"Property value (can be a string or JSON object)","example":"AMS2","format":"string or JSON"}},"required":["name","value"],"type":"object"},"type":"array"},"state":{"description":"Node lifecycle state. Can only be specified when status=accepted. If not specified, enable is used","enum":["enabled","ignored","empty-policies","initializing","preparing-eol"],"type":"string"},"status":{"description":"Target status of the node","enum":["accepted","pending"],"type":"string"},"timezone":{"$ref":"#/components/schemas/timezone"}},"required":["id","hostname","status","os","machineType","properties","ipAddresses"],"type":"object"},"type":"array"},"node-compliance-component":{"properties":{"compliance":{"description":"Directive compliance level","example":83.34,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":0,"format":"float","type":"number"},"noReport":{"example":0,"format":"float","type":"number"},"successAlreadyOK":{"example":100,"format":"float","type":"number"},"successNotApplicable":{"example":0,"format":"float","type":"number"},"successRepaired":{"example":0,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":0,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":0,"format":"float","type":"number"}},"type":"object"},"id":{"description":"id of the node","example":"root","format":"uuid","type":"string"},"mode":{"enum":["full-compliance","changes-only","reports-disabled"],"type":"string"},"name":{"description":"Name of the node","example":"server.rudder.local","type":"string"},"values":{"items":{"properties":{"reports":{"items":{"properties":{"message":{"example":"The MOTD file was correct","type":"string"},"status":{"example":"successAlreadyOK","type":"string"}},"required":["status","message"],"type":"object"},"type":"array"},"value":{"example":"None","type":"string"}},"required":["value","reports"],"type":"object"},"type":"array"}},"required":["id","name","compliance","complianceDetails","values"],"type":"object"},"node-full":{"properties":{"accounts":{"description":"User accounts declared in the node","items":{"description":"User present on the system","example":"root","type":"string"},"type":"array"},"architectureDescription":{"description":"Information about CPU architecture (32/64 bits)","example":"x86_64","type":"string"},"bios":{"description":"BIOS information","properties":{"description":{"description":"System provided description of the BIOS (long name)","example":"FIXME","type":"string"},"editor":{"description":"BIOS editor","example":"innotek GmbH","type":"string"},"name":{"description":"BIOS name","example":"VirtualBox","type":"string"},"quantity":{"description":"Number of BIOS on the machine","example":1,"type":"integer"},"releaseDate":{"description":"Release date of the BIOS","example":"2006-12-01 00:00:00+0000","type":"string"},"version":{"description":"BIOS version","example":"1.2.3","type":"string"}},"type":"object"},"controllers":{"description":"Physical controller information","items":{"properties":{"description":{"description":"System provided description of the controller","type":"string"},"manufacturer":{"description":"Controller manufacturer","type":"string"},"name":{"description":"Controller name","type":"string"},"quantity":{"description":"Quantity of that controller","example":1,"type":"integer"},"type":{"description":"Controller type","type":"string"}},"type":"object"},"type":"array"},"description":{"description":"A human intended description of the node (not used)","example":"","type":"string"},"environmentVariables":{"description":"Environment variables defined on the node in the context of the agent","items":{"properties":{"name":{"description":"Environment variable name","example":"LANG","type":"string"},"value":{"description":"Environment variable value","example":"en_US.UTF-8","type":"string"}},"type":"object"},"type":"array"},"fileSystems":{"description":"File system declared on the node","items":{"properties":{"description":{"description":"Description of the file system","type":"string"},"fileCount":{"description":"Number of files","example":1456,"type":"integer"},"freeSpace":{"description":"Free space remaining","example":3487,"type":"integer"},"mountPoint":{"description":"Mount point","example":"/srv","type":"string"},"name":{"description":"Type of file system (`ext4`, `swap`, etc.)","example":"ext4","type":"string"},"totalSpace":{"description":"Total space","example":208869,"type":"integer"}},"type":"object"},"type":"array"},"hostname":{"description":"Fully qualified name of the node","example":"node1.example.com","type":"string"},"id":{"description":"Unique id of the node","example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid (or \"root\")","type":"string"},"ipAddresses":{"description":"IP addresses of the node (IPv4 and IPv6)","items":{"description":"IP of the node","example":"192.168.23.45","type":"string"},"type":"array"},"lastInventoryDate":{"description":"Date and time of the latest generated inventory, if one is available (node time). Up to API v11, format was: \"YYYY-MM-dd HH:mm\"","example":"2025-08-15T13:50:50.759Z","format":"date","type":"string"},"lastRunDate":{"description":"Date and time of the latest run, if one is available (node time). Up to API v11, format was: \"YYYY-MM-dd HH:mm\"","example":"2025-08-15T13:50:50.759Z","format":"date","type":"string"},"machine":{"description":"Information about the underlying machine","properties":{"id":{"description":"Rudder unique identifier for the machine","type":"string"},"manufacturer":{"description":"Information about machine manufacturer","example":"innotek GmbH","type":"string"},"provider":{"description":"In the case of VM, the VM technology","example":"vbox","type":"string"},"serialNumber":{"description":"If available, a unique identifier provided by the machine","example":"ece12459-2b90-49c9-ab1e-72e38f797421","type":"string"},"type":{"description":"Type of the machine","enum":["Physical","Virtual"],"example":"Virtual","type":"string"}},"type":"object"},"managementTechnology":{"description":"Management agents running on the node","items":{"properties":{"capabilities":{"description":"List of agent capabilities","items":{"description":"Special capacities of the agent, like parsing xml or yaml, support of advanced acl, etc.","example":"xml","type":"string"},"type":"array"},"name":{"description":"Agent name","example":"Rudder","type":"string"},"nodeKind":{"description":"kind of node for the management engine, like `root`, `relay`, `node`, `root-component`","example":"node","type":"string"},"rootComponents":{"description":"Roles fulfilled by the agent","items":{"description":"A role that node fulfills in management technology","example":"rudder-db","type":"string"},"type":"array"},"version":{"description":"Agent version","example":"6.0.3.release-1.EL.7","type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"managementTechnologyDetails":{"description":"Additional information about management technology","properties":{"cfengineKeys":{"description":"Certificates used by the agent","items":{"description":"Certificate (or public key for <6.0 agents) used by the agent","example":"-----BEGIN CERTIFICATE-----\\nMIIFqDCC[...]3tALNn\\n-----END CERTIFICATE-----","format":"PEM","type":"string"},"type":"array"},"cfengineUser":{"description":"Local user account used by the agent","example":"root","type":"string"}},"type":"object"},"memories":{"description":"Memory slots","items":{"description":"Memory slots","properties":{"capacity":{"description":"Size of modules","example":2,"type":"integer"},"caption":{"description":"Manufacturer provided information about the module","type":"string"},"description":{"description":"System provided description","type":"string"},"name":{"description":"Name of the memory slot or memory module","type":"string"},"quantity":{"description":"Number of modules in that slot","example":1,"type":"integer"},"serialNumber":{"description":"Serial number of the module","type":"string"},"slotNumber":{"description":"Slot number","example":3,"type":"integer"},"speed":{"description":"Memory speed (frequency)","example":1066,"type":"integer"},"type":{"description":"Memory slot type","type":"string"}},"type":"object"},"type":"array"},"networkInterfaces":{"description":"Detailed information about registered network interfaces on the node","items":{"properties":{"dhcpServer":{"description":"DHCP server managing that network interface","example":"192.168.34.5","type":"string"},"ipAddresses":{"description":"IP addresses of the network interface","items":{"description":"IP address","example":"192.168.76.4","type":"string"},"type":"array"},"macAddress":{"description":"MAC address of the network interface","example":"08:00:27:6f:5c:14","type":"string"},"mask":{"items":{"description":"Network interface mask","example":"255.255.255.0","format":"CIDR","type":"string"},"type":"array"},"name":{"description":"Interface name (for ex \"eth0\")","example":"eth0","type":"string"},"speed":{"description":"Information about synchronization speed","example":"1000","type":"string"},"status":{"description":"network interface status (enabled or not, up or down)","example":"Up","type":"string"},"type":{"description":"Information about the type of network interface","example":"ethernet","type":"string"}},"type":"object"},"type":"array"},"os":{"description":"Information about the operating system","properties":{"fullName":{"description":"Full operating system name","example":"CentOS Linux release 7.6.1810 (Core)","type":"string"},"kernelVersion":{"description":"Version of the OS kernel","example":"3.10.0-957.1.3.el7.x86_64","type":"string"},"name":{"description":"Operating system name (distribution on Linux, etc.)","example":"Centos","type":"string"},"servicePack":{"description":"If relevant, the service pack of the OS","example":"3","type":"string"},"type":{"description":"Family of the OS","enum":["Windows","Linux","AIX","FreeBSD"],"example":"Linux","type":"string"},"version":{"description":"OS version","example":"7.6.1810","type":"string"}},"required":["type","name","version","fullName","kernelVersion"],"type":"object"},"policyMode":{"description":"Rudder policy mode for the node (`default` follows the global configuration)","enum":["enforce","audit","default"],"example":"audit","type":"string"},"policyServerId":{"description":"Rudder policy server managing the node","example":"root","format":"uuid (or \"root\")","type":"string"},"ports":{"description":"Physical port information objects","items":{"properties":{"description":{"description":"System provided description of the port","type":"string"},"name":{"description":"Port name","type":"string"},"quantity":{"description":"Quantity of similar ports","example":1,"type":"integer"},"type":{"description":"Port type","type":"string"}},"type":"object"},"type":"array"},"processes":{"description":"Process running (at inventory time)","items":{"description":"Process information","properties":{"cpuUsage":{"description":"CPU used by the process (at inventory time)","example":1,"type":"integer"},"description":{"description":"System provided description about the process","type":"string"},"memory":{"description":"Memory allocated to the process (at inventory time)","example":0.4000000059604645,"format":"float","type":"number"},"name":{"description":"Process name","example":"/usr/sbin/httpd -DFOREGROUND","type":"string"},"pid":{"description":"PID of the process","example":3576,"type":"integer"},"started":{"description":"Started date and time of the process","example":"2020-02-29 00:24","format":"date","type":"string"},"tty":{"description":"TTY to which the process is","example":"?","type":"string"},"user":{"description":"User account who started the process","example":"apache","type":"string"},"virtualMemory":{"description":"Virtual memory allocated to the process (at inventory time)","example":4380,"type":"integer"}},"type":"object"},"type":"array"},"processors":{"description":"CPU information","items":{"properties":{"arch":{"description":"CPU architecture","example":"i386","type":"string"},"core":{"description":"Number of core for that CPU","example":1,"type":"integer"},"cpuid":{"description":"Identifier of the CPU","type":"string"},"description":{"description":"System provided description of the CPU","type":"string"},"externalClock":{"description":"External clock used by the CPU","type":"string"},"familyName":{"description":"CPU family","type":"string"},"manufacturer":{"description":"CPU manufacturer","example":"Intel","type":"string"},"model":{"description":"CPU model","example":158,"type":"integer"},"name":{"description":"CPU name","example":"Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz","type":"string"},"quantity":{"description":"Number of CPU with these features","example":1,"type":"integer"},"speed":{"description":"Speed (frequency) of the CPU","example":2800,"type":"integer"},"stepping":{"description":"Stepping or power management information","example":9,"type":"integer"},"thread":{"description":"Number of thread by core for the CPU","example":1,"type":"integer"}},"type":"object"},"type":"array"},"properties":{"description":"Node properties (either set by user or filled by third party sources)","items":{"properties":{"name":{"description":"Property name","example":"datacenter","type":"string"},"value":{"description":"Property value (can be a string or JSON object)","example":"AMS2","format":"string or JSON"}},"required":["name","value"],"type":"object"},"type":"array"},"ram":{"description":"Size of RAM in MB","type":"integer"},"slots":{"description":"Physical extension slot information","items":{"properties":{"description":{"description":"System provided description of the slots","type":"string"},"name":{"description":"Slot name or identifier","type":"string"},"quantity":{"description":"Quantity of similar slots","type":"integer"},"status":{"description":"Slot status (used, powered, etc)","type":"string"}},"type":"object"},"type":"array"},"software":{"description":"Software installed on the node (can have thousands items)","items":{"properties":{"description":{"description":"A description of the software","example":"A library for getting files from web servers","type":"string"},"editor":{"description":"Editor of the software","example":"CentOS","type":"string"},"license":{"description":"Information about the license","properties":{"description":{"description":"License description","type":"string"},"expirationDate":{"description":"License expiration date","format":"date","type":"string"},"name":{"description":"License name","type":"string"},"oem":{"description":"Is this an OEM license (and information)","type":"string"},"productId":{"description":"License product identifier","type":"string"},"productKey":{"description":"License key","type":"string"}},"type":"object"},"name":{"description":"Name of the software (as reported by the node)","example":"libcurl","type":"string"},"releaseDate":{"description":"Release date of the software","format":"date","type":"string"},"version":{"description":"Version of the software","example":"7.29.0-54.el7_7.2","type":"string"}},"type":"object"},"type":"array"},"softwareUpdate":{"description":"Software that can be updated on that machine","items":{"properties":{"arch":{"description":"CPU architecture of the update","type":"string"},"description":{"description":"details about the content of the update, if available","type":"string"},"from":{"description":"tool that discovered that update","type":"string"},"ids":{"items":{"description":"Related identifiers, can be CVE number, vendor-specific advisory (RHSA, etc.)","type":"string"},"type":"array"},"kind":{"description":"if available, kind of patch provided by that update, else none","enum":["none","security","defect","enhancement","other"],"type":"string"},"name":{"description":"name of software that can be updated","type":"string"},"severity":{"description":"if available, the severity of the update","enum":["critical","high","moderate","low","other"],"type":"string"},"source":{"description":"information about the source providing that update","type":"string"},"version":{"description":"available version for software","type":"string"}},"type":"object"},"type":"array"},"sound":{"description":"Sound card information","items":{"properties":{"description":{"description":"System provided description of the sound card","type":"string"},"name":{"description":"Sound card name","type":"string"},"quantity":{"description":"Quantity of similar sound cards","example":1,"type":"integer"}},"type":"object"},"type":"array"},"status":{"description":"Status of the node","enum":["pending","accepted","deleted"],"example":"accepted","type":"string"},"storage":{"description":"Storage (disks) information objects","items":{"properties":{"description":{"description":"System provided information about the storage","type":"string"},"firmware":{"description":"Storage firmware information","example":"10","type":"string"},"manufacturer":{"description":"Storage manufacturer","type":"string"},"model":{"description":"Storage model","example":"VBOXHARDDISK","type":"string"},"name":{"description":"Storage name","example":"sda","type":"string"},"quantity":{"description":"Quantity of similar storage","example":1,"type":"integer"},"serialNumber":{"description":"Storage serial number","example":"000a1954","type":"string"},"size":{"description":"Storage size in MB","example":85899,"type":"integer"},"type":{"description":"Storage type","example":"disk","type":"string"}},"type":"object"},"type":"array"},"timezone":{"properties":{"name":{"description":"Timezone name","example":"UTC","type":"string"},"offset":{"description":"Timezone offset to UTC","example":"+0000","format":"+/-difference","type":"string"}},"required":["name","value"],"type":"object"},"videos":{"description":"Video card information","items":{"properties":{"chipset":{"description":"information about video card chipset","type":"string"},"description":{"description":"System provided description for that video card","type":"string"},"memory":{"description":"Quantity of memory for that video card","type":"string"},"name":{"description":"Video card name","type":"string"},"quantity":{"description":"Quantity of similar video cards","example":1,"type":"integer"},"resolution":{"description":"Resolution used by that video card at inventory time","type":"string"}},"type":"object"},"type":"array"},"virtualMachines":{"description":"Hosted virtual machine information","items":{"properties":{"description":{"description":"System provided description of the hosted virtual machine","type":"string"},"memory":{"description":"Memory allocated to the hosted virtual machine","type":"string"},"name":{"description":"Name of the hosted virtual machine","type":"string"},"owner":{"description":"Owner of the hosted virtual machine","type":"string"},"status":{"description":"Status (up, starting, etc) of the hosted virtual machine","type":"string"},"subsystem":{"description":"Technology of the hosted virtual machine","type":"string"},"type":{"description":"Type of the hosted virtual machine","type":"string"},"uuid":{"description":"Unique identifier of the hosted virtual machine","type":"string"},"vcpu":{"description":"Number of virtual CPU allocated to the hosted virtual machine","type":"string"}},"type":"object"},"type":"array"}},"required":["id","hostname","status","ipAddresses","managementTechnology","policyServerId","properties"],"type":"object"},"node-inherited-properties":{"properties":{"id":{"description":"Unique id of the node","example":"9a1773c9-0889-40b6-be89-f6504443ac1b","format":"uuid (or \"root\")","type":"string"},"properties":{"description":"Node properties (either set by user or filled by third party sources)","items":{"properties":{"hierarchy":{"description":"A description of the inheritance hierarchy for that property, with most direct parent at head and oldest one at tail","items":{"properties":{"id":{"description":"in the case of a group, its identifier","example":"9180b869-08a3-4173-9dd4-ab68f227e76c","type":"string"},"kind":{"description":"The kind of object from which the property's value is inherited","enum":["global","group"],"example":"global","type":"string"},"name":{"description":"in the case of a group, its name","example":"all centos7","type":"string"},"value":{"description":"a string representation of the value. If it was a json value, it will be escaped.","example":"{\"array\":[1,2],\"object\":{\"parent\":\"value\"},\"string\":\"parent\"}","type":"string"}},"required":["kind","value"],"type":"object"},"type":"array"},"name":{"description":"Property name","example":"datacenter","type":"string"},"origval":{"description":"The original value (ie, before overriding and inheritance resolution) for that node","example":"AMS2","format":"string or JSON"},"provider":{"description":"Property provider (if the property is not a simple node property)","enum":["inherited","overridden","plugin name like datasources"],"type":"string"},"value":{"description":"Resolved (ie, with inheritance and overriding done) property value (can be a string or JSON object)","example":"AMS2","format":"string or JSON"}},"required":["name","value"],"type":"object"},"type":"array"}},"required":["id","properties"],"type":"object"},"node-settings":{"properties":{"agentKey":{"$ref":"#/components/schemas/agent-key"},"policyMode":{"description":"In which mode the node will apply its configuration policy. Use `default` to use the global mode.","enum":["audit","enforce","default"],"example":"audit","type":"string"},"properties":{"items":{"properties":{"name":{"description":"Property name","example":"datacenter","type":"string"},"value":{"description":"Property value (can be a string or JSON object)","example":"AMS2","format":"string or JSON"}},"required":["name","value"],"type":"object"},"type":"array"},"state":{"description":"The node life cycle state. See [dedicated doc](https://docs.rudder.io/reference/current/usage/advanced_node_management.html#node-lifecycle) for more information.","enum":["enabled","ignored","empty-policies","initializing","preparing-eol"],"example":"enabled","type":"string"}},"type":"object"},"os":{"properties":{"fullName":{"description":"The long description name of the os","example":"Debian GNU/Linux 9 (stretch)","type":"string"},"name":{"description":"For Linux, a distribution, for Windows, the commercial name","enum":["debian","kali","ubuntu","redhat","centos","fedora","suse","oracle","scientific","slackware","xp","vista","seven","10","2000","2003","2008 r2","2012","2012 r2","2016"],"type":"string"},"servicePack":{"description":"a service pack informationnal string","type":"string"},"type":{"enum":["linux","windows","solaris","aix","freebsd","unknown"],"type":"string"},"version":{"description":"A string representation of the version","example":"9.5","type":"string"}},"required":["type","name","version","fullName"],"type":"object"},"parameter":{"properties":{"description":{"description":"Description of the parameter","example":"Default inform message put in footer of managed files by Rudder","type":"string"},"id":{"description":"Name of the parameter","example":"rudder_file_edit_footer","type":"string"},"overridable":{"description":"Is the global parameter overridable by node","example":false,"type":"boolean"},"value":{"description":"Value of the parameter","example":"### End of file managed by Rudder ###","format":"string or JSON"}},"required":["id"],"type":"object"},"rule":{"properties":{"directives":{"description":"Directives linked to the rule","items":{"description":"Directive id","type":"string"},"type":"array"},"displayName":{"description":"Rule name","example":"Security policy","type":"string"},"enabled":{"description":"Is the rule enabled","example":true,"type":"boolean"},"id":{"description":"Rule id","example":"0c1713ae-cb9d-4f7b-abda-ca38c5d643ea","format":"uuid","type":"string"},"longDescription":{"description":"Rule documentation","example":"This rules should be applied to all Linux nodes required basic hardening","type":"string"},"shortDescription":{"description":"One line rule description","example":"Baseline applying CIS guidelines","type":"string"},"system":{"description":"If true it is an internal Rudder rule","example":false,"type":"boolean"},"tags":{"items":{"example":{"customer":"MyCompany"},"properties":{"name":{"description":"Value of the `name` key","example":"value","type":"string"}},"type":"object"},"type":"array"},"targets":{"$ref":"#/components/schemas/rule-targets"}},"type":"object"},"rule-category":{"properties":{"description":{"description":"Rules category description","example":"Baseline applying CIS guidelines","type":"string"},"id":{"default":"{autogenerated}","description":"Rule category id, only provide it when needed.","example":"32d013f7-b6d8-46c8-99d3-016307fa66c0","format":"uuid","type":"string"},"name":{"description":"Name of the rule category","example":"Security policies","type":"string"},"parent":{"description":"The parent category of the rules","example":"b9f6d98a-28bc-4d80-90f7-d2f14269e215","format":"uuid","type":"string"}},"required":["parent","name"],"type":"object"},"rule-category-update":{"properties":{"description":{"description":"Rules category description","example":"Baseline applying CIS guidelines","type":"string"},"name":{"description":"Name of the rule category","example":"Security policies","type":"string"},"parent":{"description":"The parent category of the rules","example":"b9f6d98a-28bc-4d80-90f7-d2f14269e215","format":"uuid","type":"string"}},"required":["parent","name"],"type":"object"},"rule-compliance-component":{"properties":{"compliance":{"description":"Rule compliance level","example":100,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":0,"format":"float","type":"number"},"noReport":{"example":0,"format":"float","type":"number"},"successAlreadyOK":{"example":66.67,"format":"float","type":"number"},"successNotApplicable":{"example":33.33,"format":"float","type":"number"},"successRepaired":{"example":0,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":0,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":0,"format":"float","type":"number"}},"type":"object"},"components":{"items":{"properties":{"compliance":{"description":"directive compliance level","example":100,"format":"float","type":"number"},"complianceDetails":{"properties":{"error":{"example":0,"format":"float","type":"number"},"noReport":{"example":0,"format":"float","type":"number"},"successAlreadyOK":{"example":66.67,"format":"float","type":"number"},"successNotApplicable":{"example":33.33,"format":"float","type":"number"},"successRepaired":{"example":0,"format":"float","type":"number"},"unexpectedMissingComponent":{"example":0,"format":"float","type":"number"},"unexpectedUnknownComponent":{"example":0,"format":"float","type":"number"}},"type":"object"},"name":{"description":"Name of the component","example":"test directive","type":"string"},"values":{"items":{"properties":{"reports":{"items":{"properties":{"message":{"example":"The user tutu ( Without any defined full name ) is already present on the system","type":"string"},"status":{"example":"successAlreadyOK","type":"string"}},"required":["status","message"],"type":"object"},"type":"array"},"value":{"example":"tutu","type":"string"}},"required":["value","reports"],"type":"object"},"type":"array"}},"required":["name","compliance","complianceDetails","values"],"type":"object"},"type":"array"},"id":{"description":"id of the rule","example":"835c068d-f01e-44c0-a0f4-7a436d46ad35","format":"uuid","type":"string"},"name":{"description":"Name of the rule","example":"Test users","type":"string"}},"required":["id","name","compliance","complianceDetails","components"],"type":"object"},"rule-new":{"properties":{"category":{"description":"The parent category id. If provided, the new rule will be in this parent category","example":"38e0c6ea-917f-47b8-82e0-e6a1d3dd62ca","format":"uuid","type":"string"},"directives":{"description":"Directives linked to the rule","items":{"description":"Directive id","type":"string"},"type":"array"},"displayName":{"description":"Rule name","example":"Security policy","type":"string"},"enabled":{"description":"Is the rule enabled","example":true,"type":"boolean"},"id":{"description":"Rule id","example":"0c1713ae-cb9d-4f7b-abda-ca38c5d643ea","format":"uuid","type":"string"},"longDescription":{"description":"Rule documentation","example":"This rules should be applied to all Linux nodes required basic hardening","type":"string"},"shortDescription":{"description":"One line rule description","example":"Baseline applying CIS guidelines","type":"string"},"source":{"description":"The id of the rule the clone will be based onto. If this parameter if provided, the new rule will be a clone of this source. Other value will override values from the source.","example":"b9f6d98a-28bc-4d80-90f7-d2f14269e215","format":"uuid","type":"string"},"system":{"description":"If true it is an internal Rudder rule","example":false,"type":"boolean"},"tags":{"items":{"example":{"customer":"MyCompany"},"properties":{"name":{"description":"Value of the `name` key","example":"value","type":"string"}},"type":"object"},"type":"array"},"targets":{"$ref":"#/components/schemas/rule-targets"}},"type":"object"},"rule-target":{"description":"Node and special groups targeted by that rule","enum":["special:all","special:all_exceptPolicyServers","special:all_policyServers","policyServer:${policyServerId}","group:${nodeGroupId}"],"example":"policyServer:root","type":"string"},"rule-targets":{"description":"Node and special groups targeted by that rule","items":{"example":{"exclude":{"or":["policyServer:root","group:cd377524-808b-4b42-8724-6ef308efeac7"]},"include":{"or":["special:all"]}},"properties":{"exclude":{"description":"list of groups to exclude from rule application","properties":{"or":{"items":{"$ref":"#/components/schemas/rule-target"},"type":"array"}},"type":"object"},"include":{"description":"list of groups to include in rule application","properties":{"or":{"items":{"$ref":"#/components/schemas/rule-target"},"type":"array"}},"type":"object"}},"required":["include","exclude"],"type":"object"},"type":"array"},"rule-with-category":{"properties":{"category":{"description":"The parent category id.","example":"38e0c6ea-917f-47b8-82e0-e6a1d3dd62ca","format":"uuid","type":"string"},"directives":{"description":"Directives linked to the rule","items":{"description":"Directive id","type":"string"},"type":"array"},"displayName":{"description":"Rule name","example":"Security policy","type":"string"},"enabled":{"description":"Is the rule enabled","example":true,"type":"boolean"},"id":{"description":"Rule id","example":"0c1713ae-cb9d-4f7b-abda-ca38c5d643ea","format":"uuid","type":"string"},"longDescription":{"description":"Rule documentation","example":"This rules should be applied to all Linux nodes required basic hardening","type":"string"},"shortDescription":{"description":"One line rule description","example":"Baseline applying CIS guidelines","type":"string"},"system":{"description":"If true it is an internal Rudder rule","example":false,"type":"boolean"},"tags":{"items":{"example":{"customer":"MyCompany"},"properties":{"name":{"description":"Value of the `name` key","example":"value","type":"string"}},"type":"object"},"type":"array"},"targets":{"$ref":"#/components/schemas/rule-targets"}},"type":"object"},"secrets":{"properties":{"description":{"description":"The description of the secret to identify it more easily","example":"Password of my super secret user account","type":"string"},"name":{"description":"The name of the secret used as a reference on the value","example":"secret-password","type":"string"},"value":{"description":"The value of the secret it will not be exposed in the interface","example":"nj-k;EO32!kFWewn2Nk,u","type":"string"}},"type":"object"},"technique-block":{"properties":{"calls":{"description":"Method and blocks contained by this block","example":[],"items":{"oneOf":[{"$ref":"#/components/schemas/technique-method-call"},{"$ref":"#/components/schemas/technique-block"}]},"type":"array"},"component":{"description":"Component is used in reporting to identify this method call. You can see it as a name","example":"Install my app","type":"string"},"condition":{"description":"Condition to run this method.","example":"linux.package_present_vim_repaired","type":"string"},"id":{"description":"Method call id","example":"6a8de98f-7829-4c1b-b4e7-b9387f27f279","type":"string"},"reportingLogic":{"properties":{"type":{"description":"Kind of reporting logic","enum":["worst","focus","worst-case-weighted-one","worst-case-weighted-sum"],"example":"worst","type":"string"},"value":{"description":"reporting value used for some reporting logic (i.e. focus)","example":"id/name of a component","type":"string"}},"type":"object"}},"type":"object"},"technique-category":{"properties":{"id":{"description":"Category ID","example":"systemManagement","type":"string"},"name":{"description":"Category's name","example":"User Techniques","type":"string"},"path":{"description":"Category's path","example":"systemSettings/systemManagement","type":"string"},"subcategories":{"description":"List of sub categories","example":[],"items":{"$ref":"#/components/schemas/technique-category"},"type":"array"}},"required":["name","path","id","subcategories"],"type":"object"},"technique-method-call":{"properties":{"component":{"description":"Component is used in reporting to identify this method call. You can see it as a name","example":"Install apache2","type":"string"},"condition":{"description":"Condition to run this method.","example":"linux.package_present_vim_repaired","type":"string"},"disableReporting":{"description":"Should the reporting of this method be disabled","example":true,"type":"boolean"},"id":{"description":"Method call id","example":"6a8de98f-7829-4c1b-b4e7-b9387f27f279","type":"string"},"method":{"description":"Id of the method called","example":"package_present","type":"string"},"parameters":{"description":"Parameters for this method call","items":{"properties":{"name":{"description":"Parameter name","example":"package","type":"string"},"value":{"description":"Parameter value","example":"apache2","type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"technique-parameter":{"properties":{"description":{"description":"description of this parameter","example":"Name of a package to install","type":"string"},"id":{"description":"parameter id","example":"6a8de98f-7829-4c1b-b4e7-b9387f27f279","type":"string"},"mayBeEmpty":{"description":"May the value given when creating a directive be empty","example":true,"type":"boolean"},"name":{"description":"Parameter name","example":"Package to install","type":"string"}},"type":"object"},"technique-resource":{"properties":{"name":{"description":"resource name. this is the relative path to the resource","example":"conf/my/app/new","type":"string"},"state":{"description":"State of the resource file. it can be a value between new, modified, deleted, untouched","example":"modified","type":"string"}},"type":"object"},"techniques":{"items":{"$ref":"#/components/schemas/editor-technique"},"type":"array"},"techniques-resources":{"items":{"properties":{"name":{"description":"Resource's name","example":"apply-policy.robot","type":"string"},"state":{"description":"State of the resource","example":"untouched","type":"string"}},"type":"object"},"type":"array"},"techniques-revisions":{"items":{"properties":{"author":{"description":"Commit's author","example":"admin","type":"string"},"date":{"description":"Commit's date","example":"2025-08-15T13:50:50.760Z","type":"string"},"message":{"description":"Commit's message","example":"Committing technique bar","type":"string"},"revision":{"description":"Revision ID","example":"6faf7e9c47f2c3a41784598b5acf2883bd4e1e08","type":"string"}},"required":["revision","date","author","message"],"type":"object"},"type":"array"},"techniques-versions":{"items":{"example":{"name":"userManagement","version":["1.0","1.2","3.0"]},"properties":{"name":{"description":"Technique name","type":"string"},"versions":{"description":"Available versions for this technique","items":{"description":"Technique version","type":"string"},"type":"array"}},"type":"object"},"type":"array"},"timezone":{"description":"Timezone information of the node.","properties":{"name":{"description":"The standard name of the timezone","example":"CEST","type":"string"},"offset":{"description":"Timezone offset compared to UTC, in +/-HHMM format","example":200,"type":"string"}},"required":["name","offset"],"type":"object"},"users":{"properties":{"isPreHahed":{"description":"If you want to provide hashed password set this property to `true` otherwise we will hash the plain password and store the hash","enum":[false,true],"type":"boolean"},"password":{"description":"this password will be hashed for you if the `isPreHashed` is set on false","example":"passwdWillBeStoredHashed","type":"string"},"role":{"description":"Defined user's permissions","items":{"example":"user","type":"string"},"type":"array"},"username":{"example":"John Doe","type":"string"}},"type":"object"},"validated-user":{"description":"list of users with their workflow settings","properties":{"isValidated":{"description":"whether the user's actions generate chanque-request or not","type":"boolean"},"userExists":{"description":"whether the user exists in file or not","type":"boolean"},"username":{"example":"John Do","type":"string"}},"required":["username","isValidated","userExists"],"type":"object"}},"securitySchemes":{"API-Tokens":{"description":"Apart for the status API, authenticating is mandatory for every request, as sensitive information like inventories or configuration rules may get exposed. It is done using a dedicated API account, than can be created in the web interface on the 'API accounts' page located inside the Administration part.\n\n![API Tokens settings](assets/APISettings.png \"API tokens settings\")\n\nAPI accounts are not linked to standard user accounts, and currently give full administrative privileges: they must be secured adequately. Once you have created an API account, you get a token that will be needed to authenticate every request. This token is the API equivalent of a password, and must be secured just like a password would be.\n\nOn any call to the API, you will need to add a **X-API-Token** header to your request to authenticate:\n\n\n    curl --request GET --header \"X-API-Token: yourToken\" https://rudder.example.com/rudder/api/latest/rules\n\n\nIf you perform any action (creation, update, deletion) using the API, the event log generated will record the API account as the user.","in":"header","name":"X-API-Token","type":"apiKey"}}}}