openapi: 3.1.0 info: title: Cfengine API version: '2026-10-08' description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-08: 44 operation(s) read from 8 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Cfengine has published no machine-readable contract that the pipeline could find. Engine: local.' x-evidence-tiers: code-example: 42 documentation: 2 pages-with-code: 8 pages-read: 8 x-generated-from: documentation x-provenance: generated x-authored-by: API Evangelist x-generated: '2026-10-08' x-generator: generate-contract-from-docs.py x-engine: local x-sources: - https://docs.cfengine.com/docs/lts/api/enterprise-api-ref - https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host - https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ai-chat - https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/cmdb-api - https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/web-rbac - https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api - https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/inventory - https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac servers: - url: https://hub.cfengine.com paths: /api/ai/text-to-sql: post: operationId: post_api_ai_text_to_sql tags: - Api summary: POST /api/ai/text-to-sql x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ai-chat requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostApiAiTextToSqlRequest' responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostApiAiTextToSqlResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X POST https://hub.cfengine.com/api/ai/text-to-sql -H 'Content-Type: application/json'\ \ -d '{\n \"question\": \"Hosts that have SSH port open\"\n }'\n Example request with conversation history: " /api/build/modules/autorun: get: operationId: get_api_build_modules_autorun tags: - Api summary: GET /api/build/modules/autorun x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiBuildModulesAutorunResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X GET https://hub.cfengine.com/api/build/modules/autorun\n Successful response example:\ \ \n HTTP 200 OK\n{\n \"name\": \"autorun\",\n \"readme\": \"

Enable autorun

\\n

Simple module to\ \ enable autorun functionality, using def.json.

\\n\",\n \"description\": \"Enable autorun functionality\",\n \"version\": \"1.0.1\"\ ,\n \"author\": {\n \"url\": \"https://github.c" /api/build/modules/autorun/1.0.0: get: operationId: get_api_build_modules_autorun_1_0_0 tags: - Api summary: GET /api/build/modules/autorun/1.0.0 x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiBuildModulesAutorun100Response' x-evidence: kind: code-example language: curl snippet: "curl --user : -X GET https://hub.cfengine.com/api/build/modules/autorun/1.0.0/\n Successful response example:\ \ \n HTTP 200 OK\n{\n \"name\": \"autorun\",\n \"readme\": \"

Enable autorun

\\n

Simple module to\ \ enable autorun functionality, using def.json.

\\n\",\n \"description\": \"Enable autorun functionality\",\n \"version\": \"1.0.0\"\ ,\n \"author\": {\n \"url\": \"https://g" /api/build/projects/1/modules/autorun: delete: operationId: delete_api_build_projects_1_modules_autorun tags: - Api summary: DELETE /api/build/projects/1/modules/autorun x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/DeleteApiBuildProjects1ModulesAutorunResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X DELETE https://hub.cfengine.com/api/build/projects/1/modules/autorun\n Successful response\ \ example: \n HTTP 204 No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Module successfully deleted\ \ from project \n 404 Not found \n Project not found \n 500 Internal server error \n Internal server error \n Update CFEngine Build\ \ module version \n URI" patch: operationId: patch_api_build_projects_1_modules_autorun tags: - Api summary: PATCH /api/build/projects/1/modules/autorun x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PatchApiBuildProjects1ModulesAutorunResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X PATCH https://hub.cfengine.com/api/build/projects/1/modules/autorun -H 'content-type:\ \ application/json' -d '\n {\n \"version\": \"1.0.2\"\n }'\n Successful response example: \n HTTP No content \n Responses: \n HTTP\ \ response code \n Description \n 204 No content \n Module successfully updated \n 404 Not found \n Project not found \n 422 Unprocessable\ \ entity \n Validation erro" post: operationId: post_api_build_projects_1_modules_autorun tags: - Api summary: POST /api/build/projects/1/modules/autorun x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostApiBuildProjects1ModulesAutorunResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X POST https://hub.cfengine.com/api/build/projects/1/modules/autorun -H 'content-type:\ \ application/json' -d '\n {\n \"version\": \"1.0.1\"\n }'\n Successful response example: \n HTTP 201 Created \n Responses: \n HTTP\ \ response code \n Description \n 201 Created \n Module successfully added \n 404 Not found \n Project not found \n 422 Unprocessable\ \ entity \n Validation error occ" /api/build/projects/1/modules/delete-files/input: get: operationId: get_api_build_projects_1_modules_delete_files_input tags: - Api summary: GET /api/build/projects/1/modules/delete-files/input x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiBuildProjects1ModulesDeleteFilesInputResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X GET https://hub.cfengine.com/api/build/projects/1/modules/delete-files/input\n Successful\ \ response example: \n HTTP 200 OK\n{\n \"status\": \"ok\",\n \"input_spec\": [\n {\n \"type\": \"list\",\n \"label\": \"Files\",\n\ \ \"while\": \"Specify another file you want deleted on your hosts?\",\n \"bundle\": \"delete_files\",\n \"subtype\": [\n {\n \"key\"\ : \"path\",\n \"type\": \"string\",\n \"label\": \"Path\",\n \"" post: operationId: post_api_build_projects_1_modules_delete_files_input tags: - Api summary: POST /api/build/projects/1/modules/delete-files/input x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api requestBody: required: true content: application/json: schema: type: array items: type: object properties: type: type: string label: type: string while: type: string bundle: type: string subtype: type: array items: type: object properties: key: type: string type: type: string label: type: string question: type: string variable: type: string namespace: type: string response: type: array items: type: object properties: path: type: string why: type: string responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostApiBuildProjects1ModulesDeleteFilesInputResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X POST https://hub.cfengine.com/api/build/projects/1/modules/delete-files/input --header\ \ 'Content-Type: application/json' --data-raw '[\n {\n \"type\":\"list\",\n \"label\":\"Files\",\n \"while\":\"Specify another file\ \ you want deleted on your hosts?\",\n \"bundle\":\"delete_files\",\n \"subtype\":[\n {\n \"key\":\"path\",\n \"type\":\"string\",\n\ \ \"label\":\"Path\",\n \"question\":\"Path to file\"\n },\n" /api/build/projects/2: delete: operationId: delete_api_build_projects_2 tags: - Api summary: DELETE /api/build/projects/2 x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/DeleteApiBuildProjects2Response' x-evidence: kind: code-example language: curl snippet: "curl --user : -X DELETE https://hub.cfengine.com/api/build/projects/2\n Successful response example: \n\ \ HTTP 204 No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Project successfully deleted \n 404 Not\ \ found \n Project not found \n 500 Internal server error \n Internal server error \n Sync project \n URI: https://hub.cfengine.com/build/projects/:id/sync\ \ \n" get: operationId: get_api_build_projects_2 tags: - Api summary: GET /api/build/projects/2 x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiBuildProjects2Response' x-evidence: kind: code-example language: curl snippet: "curl --user : -X GET https://hub.cfengine.com/api/build/projects/2\n Successful response example: \n HTTP\ \ 200 OK\n{\n \"id\": 2,\n \"repository_url\": \"https://github.com/username/repository.git\",\n \"branch\": \"master\",\n \"name\"\ : \"Production\",\n \"authentication_type\": \"password\",\n \"username\": \"admin\",\n \"is_empty\": false,\n \"created_at\": \"2022-03-17\ \ 14:01:56.23852+00\",\n \"pushed_at\": null,\n " patch: operationId: patch_api_build_projects_2 tags: - Api summary: PATCH /api/build/projects/2 x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PatchApiBuildProjects2Response' x-evidence: kind: code-example language: curl snippet: "curl --user : -X PATCH https://hub.cfengine.com/api/build/projects/2 -H 'content-type: application/json'\ \ -d '\n {\n \"branch\": \"staging\",\n }'\n Successful response example: \n HTTP 200 OK\n{\n \"id\": \"4\"\n} \n Responses: \n HTTP\ \ response code \n Description \n 204 No content \n Project successfully updated \n 404 Not found \n Project not found \n 422 Unprocessable\ \ entity \n Validation error " /api/build/projects/2/refresh: post: operationId: post_api_build_projects_2_refresh tags: - Api summary: POST /api/build/projects/2/refresh x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostApiBuildProjects2RefreshResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X POST https://hub.cfengine.com/api/build/projects/2/refresh\n Successful response example:\ \ \n HTTP 200 OK\n{\n \"status\": \"ahead\",\n \"details\": [\n \"Refreshed repository for project 4 with 'git fetch'\"\n ]\n} \n Output:\ \ \n status \nProject’s status. Possible values:\n ok - project is up-to-date \n behind - there are changes in upstream which are not\ \ pulled \n ahead - there a" /api/build/projects/5/modules: get: operationId: get_api_build_projects_5_modules tags: - Api summary: GET /api/build/projects/5/modules x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiBuildProjects5ModulesResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X GET https://hub.cfengine.com/api/build/projects/5/modules\n Successful response example:\ \ \n HTTP 200 OK\n[\n {\n \"name\": \"masterfiles\",\n \"description\": \"Official CFEngine Masterfiles Policy Framework (MPF)\",\n\ \ \"tags\": [\n \"supported\",\n \"base\"\n ],\n \"repo\": \"https://github.com/cfengine/masterfiles\",\n \"by\": \"https://github.com/cfengine\"\ ,\n \"version\": \"3.18.1-1\",\n \"commi" /api/build/projects/{projectid}: post: operationId: post_api_build_projects_projectid tags: - Api summary: POST /api/build/projects/2 x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api parameters: - name: projectid in: path required: true schema: type: string responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostApiBuildProjectsProjectidResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X POST https://hub.cfengine.com/api/build/projects/2 -d '\n {\n \"action\": \"push\",\n\ \ }'\n Successful response example: \n HTTP 204 No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Project\ \ successfully synced \n 404 Not found \n Project not found \n 500 Internal server error \n Internal server error \n Refresh project\ \ \n Fetch upstream reposito" collapsed_from: 2 example path(s) differing only at projectId /api/build/{buildid}: get: operationId: get_api_build_buildid tags: - Api summary: GET /api/build/{buildid} x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api parameters: - name: buildid in: path required: true schema: type: string - name: searchQuery in: query required: false schema: type: string responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiBuildBuildidResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X GET https://hub.cfengine.com/api/build/modules/?searchQuery=autorun\n Successful response\ \ example: \n HTTP 200 OK\n{\n \"data\": [\n {\n \"name\": \"autorun\",\n \"readme\": \"

Enable autorun

\\\ n

Simple module to enable autorun functionality, using def.json.

\\n\",\n \"description\": \"Enable autorun functionality\",\n\ \ \"version\": \"1.0.1\",\n \"author\": " collapsed_from: 2 example path(s) differing only at buildId post: operationId: post_api_build_buildid tags: - Api summary: POST /api/build/{buildid} x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api parameters: - name: buildid in: path required: true schema: type: string responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostApiBuildBuildidResponse' x-evidence: kind: code-example language: curl snippet: "curl --user : -X POST https://hub.cfengine.com/api/build/modules\n Successful response example: \n 204\ \ No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Modules list successfully updated \n 500 Internal\ \ server error \n Internal server error \n Get CFEngine build module by name \n URI: https://hub.cfengine.com/api/build/modules/:name\ \ \n Method: GET \n Param" collapsed_from: 2 example path(s) differing only at buildId /api/cmdb/v2/{hostkey}: get: operationId: get_api_cmdb_v2_hostkey tags: - Api summary: Get all configuration entries for a specific host. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/cmdb-api parameters: - name: hostkey in: path required: true schema: type: string - name: sortColumn in: query required: false schema: type: string description: Column to sort by. - name: sortDescending in: query required: false schema: type: boolean description: Sort in descending order. - name: skip in: query required: false schema: type: integer description: Number of results to skip for pagination. - name: limit in: query required: false schema: type: integer description: Limit the number of results (max 100). responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/GetApiCmdbV2HostkeyResponse' x-evidence: kind: documentation post: operationId: post_api_cmdb_v2_hostkey tags: - Api summary: Create a new configuration entry for a host. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/cmdb-api parameters: - name: hostkey in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostApiCmdbV2HostkeyRequest' responses: '201': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostApiCmdbV2HostkeyResponse' x-evidence: kind: documentation /api/cmdb/v2/{hostkey}/{hostkeyid}: get: operationId: get_api_cmdb_v2_hostkey_hostkeyid tags: - Api summary: Get the rendered JSON configuration file for a host. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/cmdb-api parameters: - name: hostkey in: path required: true schema: type: string - name: hostkeyid in: path required: true schema: type: string responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/GetApiCmdbV2HostkeyHostkeyidResponse' x-evidence: kind: documentation collapsed_from: 2 example path(s) differing only at hostkeyId /api/cmdb/v2/subentry/{hostkey}/{type}/{name}: get: operationId: get_api_cmdb_v2_subentry_hostkey_type_name tags: - Api summary: Get a specific sub-entry by type and name. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/cmdb-api parameters: - name: hostkey in: path required: true schema: type: string - name: type in: path required: true schema: type: string - name: name in: path required: true schema: type: string responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/GetApiCmdbV2SubentryHostkeyTypeNameResponse' x-evidence: kind: documentation /api/hosts/delete-permanently/SHA: delete: operationId: delete_api_hosts_delete_permanently_SHA tags: - Api summary: Host REST API x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host responses: '200': description: Success (status as documented) x-evidence: kind: documentation /api/hosts/delete-permanently/SHA=2123f85b38189008ae12be159fb961584dda1249c94efed43fec2c70f233975d: delete: operationId: delete_api_hosts_delete_permanently_SHA_2123f85b38189008ae12be159fb961584dda1249 tags: - Api summary: DELETE /api/hosts/delete-permanently/SHA=2123f85b38189008ae12be159fb961584dda1249c94efed43fec2c70f233975d x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/DeleteApiHostsDeletePermanentlySha2123F85B38189008Ae12Be159F' x-evidence: kind: code-example language: curl snippet: "curl -k --user : -X DELETE https://hub.example.com/api/hosts/delete-permanently/SHA=2123f85b38189008ae12be159fb961584dda1249c94efed43fec2c70f233975d\ \ \n Example response: \n HTTP 200 Ok \n List monitoring attributes for host \n URI: https://hub.cfengine.com/api/host/:host-id/vital\ \ \n Method: GET \n List all available vital attributes monitored by CFEngine on the client. \n Note: Collec" /api/hosts/restore-deleted/SHA: post: operationId: post_api_hosts_restore_deleted_SHA tags: - Api summary: Host REST API x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host responses: '201': description: Success (status as documented) x-evidence: kind: documentation /api/hosts/restore-deleted/SHA=2123f85b38189008ae12be159fb961584dda1249c94efed43fec2c70f233975d: post: operationId: post_api_hosts_restore_deleted_SHA_2123f85b38189008ae12be159fb961584dda1249c94ef tags: - Api summary: POST /api/hosts/restore-deleted/SHA=2123f85b38189008ae12be159fb961584dda1249c94efed43fec2c70f233975d x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostApiHostsRestoreDeletedSha2123F85B38189008Ae12Be159Fb9615' x-evidence: kind: code-example language: curl snippet: "curl -k --user : -X POST https://hub.example.com/api/hosts/restore-deleted/SHA=2123f85b38189008ae12be159fb961584dda1249c94efed43fec2c70f233975d\ \ \n Example response: \n HTTP 200 Ok \n Permanently delete host entry \n URI: https://hub.cfengine.com/api/hosts/delete-permanently/:host-id\ \ \n Method: DELETE \n Permanently deletes deleted host entry from the reporting database. \n Notes: \n To" /api/hosts/{hostid}: get: operationId: get_api_hosts_hostid tags: - Api summary: GET /api/hosts/{hostid} x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host parameters: - name: hostid in: path required: true schema: type: string responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiHostsHostidResponse' x-evidence: kind: code-example language: curl snippet: "curl -k --user admin:admin -X GET https://hub.example.com/api/hosts/by-class \n Example response: \n {\n \"10_0_2_15\": {\n\ \ \"hosts\": [\n \"ubuntu-xenial\"\n ]\n },\n \"127_0_0_1\": {\n \"hosts\": [\n \"ubuntu-xenial\"\n ]\n },\n \"ubuntu_16\": {\n \"hosts\"\ : [\n \"ubuntu-xenial\"\n ]\n }\n} \n inventoryFile=true " collapsed_from: 2 example path(s) differing only at hostId /api/hosts/{hostid}/SHA=2123f85b38189008ae12be159fb961584dda1249c94efed43fec2c70f233975d: get: operationId: get_api_hosts_hostid_SHA_2123f85b38189008ae12be159fb961584dda1249c94efed43fec2c7 tags: - Api summary: Host REST API x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host parameters: - name: hostid in: path required: true schema: type: string responses: '200': description: Success (status as documented) x-evidence: kind: documentation collapsed_from: 2 example path(s) differing only at hostId /api/inventory/attributes-dictionary: get: operationId: get_api_inventory_attributes_dictionary tags: - Api summary: GET /api/inventory/attributes-dictionary x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/inventory responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiInventoryAttributesDictionaryResponse' x-evidence: kind: code-example language: curl snippet: "curl -k --user admin:admin -X GET https://hub.cfengine.com/api/inventory/attributes-dictionary \n Example response: \n [\n {\n\ \ \"id\": 2,\n \"attribute_name\": \"BIOS vendor\",\n \"category\": \"Hardware\",\n \"readonly\": 1,\n \"type\": \"string\",\n \"convert_function\"\ : null,\n \"keyname\": \"default.cfe_autorun_inventory_dmidecode.dmi[bios-vendor]\"\n },\n {\n \"id\": 3,\n \"attribute_name\": \"BIOS\ \ version\",\n \"category\": \"Hardware\"," /api/inventory/attributes-dictionary/{attributesdictionaryid}: patch: operationId: patch_api_inventory_attributes_dictionary_attributesdictionaryid tags: - Api summary: PATCH /api/inventory/attributes-dictionary/{attributesDictionaryId} x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/inventory parameters: - name: attributesdictionaryid in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchApiInventoryAttributesDictionaryAttributesdictionaryidR' responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PatchApiInventoryAttributesDictionaryAttributesdictionaryidR2' x-evidence: kind: code-example language: curl snippet: "curl -k --user admin:admin -X PATCH https://hub.cfengine.com/api/inventory/attributes-dictionary/260 -H 'content-type: application/json'\ \ -d '{\n \"category\":\"Hardware\",\n \"type\": \"int\"\n }' \n Example Request Body: \n {\n \"category\":\"Hardware\",\n \"type\"\ : \"int\"\n} \n Example response: \n {\n \"id\": 1,\n \"attribute_name\": \"Architecture\",\n \"category\": \"Hardware\",\n \"readonly\"\ : 0,\n \"type\": \"slist\",\n \"convert_functio" /api/rbac/user-permissions: get: operationId: get_api_rbac_user_permissions tags: - Api summary: GET /api/rbac/user-permissions x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/web-rbac responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiRbacUserPermissionsResponse' x-evidence: kind: code-example language: curl snippet: "curl -k --user : -X GET https://hub.cfengine.com/api/rbac/user-permissions \n Example response: \n [\n\ \ {\n \"alias\": \"Inventory.post\",\n \"group\": \"Inventory API\",\n \"name\": \"Get inventory report\",\n \"description\": \"\",\n\ \ \"application\": \"API\",\n \"allowed_by_default\": true\n },\n {\n \"alias\": \"VariablesDictionary.get\",\n \"group\": \"Inventory\ \ API\",\n \"name\": \"Get inventory attributes\",\n \"descrip" /api/role/{roleId}: delete: operationId: delete_api_role_roleId tags: - Api summary: Remove role definition. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: roleId in: path required: true schema: type: string responses: '200': description: Success (status as documented) x-evidence: kind: documentation get: operationId: get_api_role_roleId tags: - Api summary: Get role definition. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: roleId in: path required: true schema: type: string responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/GetApiRoleRoleidResponse' x-evidence: kind: documentation post: operationId: post_api_role_roleId tags: - Api summary: Update role definition. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: roleId in: path required: true schema: type: string requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/PostApiRoleRoleidRequest' responses: '201': description: Success (status as documented) x-evidence: kind: documentation put: operationId: put_api_role_roleId tags: - Api summary: Create a new role definition. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: roleId in: path required: true schema: type: string requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/PutApiRoleRoleidRequest' responses: '200': description: Success (status as documented) x-evidence: kind: documentation /api/role/{roleName}/permissions: delete: operationId: delete_api_role_roleName_permissions tags: - Api summary: Revoke permissions from role x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/web-rbac parameters: - name: roleName in: path required: true schema: type: string responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/DeleteApiRoleRolenamePermissionsResponse' x-evidence: kind: documentation get: operationId: get_api_role_roleName_permissions tags: - Api summary: Get role permissions x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/web-rbac parameters: - name: roleName in: path required: true schema: type: string responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/GetApiRoleRolenamePermissionsResponse' x-evidence: kind: documentation post: operationId: post_api_role_roleName_permissions tags: - Api summary: Add permissions to role x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/web-rbac parameters: - name: roleName in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostApiRoleRolenamePermissionsRequest' responses: '201': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostApiRoleRolenamePermissionsResponse' x-evidence: kind: documentation put: operationId: put_api_role_roleName_permissions tags: - Api summary: Rewrite role’s permissions x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/web-rbac parameters: - name: roleName in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PutApiRoleRolenamePermissionsRequest' responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PutApiRoleRolenamePermissionsResponse' x-evidence: kind: documentation /api/user/{username}: delete: operationId: delete_api_user_username tags: - Api summary: Remove internal user. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: username in: path required: true schema: type: string responses: '200': description: Success (status as documented) x-evidence: kind: documentation get: operationId: get_api_user_username tags: - Api summary: Get info for a specified user. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: username in: path required: true schema: type: string responses: '200': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/GetApiUserUsernameResponse' x-evidence: kind: documentation post: operationId: post_api_user_username tags: - Api summary: Update user information. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: username in: path required: true schema: type: string requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/PostApiUserUsernameRequest' responses: '201': description: Success (status as documented) x-evidence: kind: documentation put: operationId: put_api_user_username tags: - Api summary: Create a new user. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: username in: path required: true schema: type: string requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/PutApiUserUsernameRequest' responses: '200': description: Success (status as documented) x-evidence: kind: documentation /api/user/{username}/unlock: post: operationId: post_api_user_username_unlock tags: - Api summary: Unlock a user locked out due to two‑factor authentication setup. x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac parameters: - name: username in: path required: true schema: type: string responses: '201': description: Success (status as documented) content: application/json: schema: $ref: '#/components/schemas/PostApiUserUsernameUnlockResponse' x-evidence: kind: documentation /api/{apiid}: get: operationId: get_api_apiid tags: - Api summary: GET /api/rbac x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/web-rbac parameters: - name: apiid in: path required: true schema: type: string responses: '200': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/GetApiApiidResponse' x-evidence: kind: code-example language: curl snippet: "curl -k --user : -X GET https://hub.cfengine.com/api/rbac \n Example response: \n [\n {\n \"alias\": \"\ Inventory.post\",\n \"group\": \"Inventory API\",\n \"name\": \"Get inventory report\",\n \"description\": \"\",\n \"application\":\ \ \"API\",\n \"allowed_by_default\": true\n },\n {\n \"alias\": \"VariablesDictionary.get\",\n \"group\": \"Inventory API\",\n \"name\"\ : \"Get inventory attributes\",\n \"description\": \"\",\n \"appl" collapsed_from: 4 example path(s) differing only at apiId post: operationId: post_api_apiid tags: - Api summary: POST /api/host-count x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host parameters: - name: apiid in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PostApiApiidRequest' responses: '201': description: Success (shape read from the example response on the page) content: application/json: schema: $ref: '#/components/schemas/PostApiApiidResponse' x-evidence: kind: code-example language: curl snippet: "curl -k --user admin:admin -X POST https://hub.cfengine.com/api/host-count -H 'content-type: application/json' -d '{\"period\"\ : \"month\", \"from\": \"2017-11-28\", \"to\" : \"2017-12-06\"}' \n Example response: \n HTTP 200 Ok\n{\n \"period\": \"month\",\n \"\ data\": [\n {\n \"date\": \"Nov 2017\",\n \"count\": 0\n },\n {\n \"date\": \"Dec 2017\",\n \"count\": 15\n }\n ]\n} \n Output : \n\ \ period \nPeriod of grouping the data. Allowed values: day" collapsed_from: 3 example path(s) differing only at apiId components: schemas: PostApiAiTextToSqlRequest: type: object properties: question: type: string PostApiAiTextToSqlResponse: type: object properties: explanation: type: string sql: type: string meta: type: object properties: provider: type: string model: type: string GetApiBuildModulesAutorunResponse: type: object properties: name: type: string readme: type: string description: type: string version: type: string author: type: object properties: url: type: string name: type: string image: type: string updated: type: string format: date-time downloads: type: integer repo: type: string documentation: type: - string - 'null' website: type: - string - 'null' subdirectory: type: string commit: type: string dependencies: type: string tags: type: string versions: type: object properties: 1.0.0: type: object properties: date: type: string latest: type: boolean 1.0.1: type: object properties: date: type: string latest: type: boolean latest: type: boolean GetApiBuildModulesAutorun100Response: type: object properties: name: type: string readme: type: string description: type: string version: type: string author: type: object properties: url: type: string name: type: string image: type: string updated: type: string format: date-time downloads: type: integer repo: type: string documentation: type: - string - 'null' website: type: - string - 'null' subdirectory: type: string commit: type: string dependencies: type: string tags: type: string versions: type: object properties: 1.0.0: type: object properties: date: type: string latest: type: boolean 1.0.1: type: object properties: date: type: string latest: type: boolean latest: type: boolean DeleteApiBuildProjects1ModulesAutorunResponse: type: object properties: name: type: string readme: type: string description: type: string version: type: string author: type: object properties: url: type: string name: type: string image: type: string updated: type: string format: date-time downloads: type: integer repo: type: string documentation: type: - string - 'null' website: type: - string - 'null' subdirectory: type: string commit: type: string dependencies: type: string tags: type: string versions: type: object properties: 1.0.0: type: object properties: date: type: string latest: type: boolean 1.0.1: type: object properties: date: type: string latest: type: boolean latest: type: boolean ts_vector: type: string PatchApiBuildProjects1ModulesAutorunResponse: type: object properties: name: type: string readme: type: string description: type: string version: type: string author: type: object properties: url: type: string name: type: string image: type: string updated: type: string format: date-time downloads: type: integer repo: type: string documentation: type: - string - 'null' website: type: - string - 'null' subdirectory: type: string commit: type: string dependencies: type: string tags: type: string versions: type: object properties: 1.0.0: type: object properties: date: type: string latest: type: boolean 1.0.1: type: object properties: date: type: string latest: type: boolean latest: type: boolean ts_vector: type: string PostApiBuildProjects1ModulesAutorunResponse: type: object properties: name: type: string readme: type: string description: type: string version: type: string author: type: object properties: url: type: string name: type: string image: type: string updated: type: string format: date-time downloads: type: integer repo: type: string documentation: type: - string - 'null' website: type: - string - 'null' subdirectory: type: string commit: type: string dependencies: type: string tags: type: string versions: type: object properties: 1.0.0: type: object properties: date: type: string latest: type: boolean 1.0.1: type: object properties: date: type: string latest: type: boolean latest: type: boolean ts_vector: type: string GetApiBuildProjects1ModulesDeleteFilesInputResponse: type: object properties: status: type: string input_spec: type: array items: type: object properties: type: type: string label: type: string while: type: string bundle: type: string subtype: type: array items: type: object properties: key: type: string type: type: string label: type: string question: type: string response: type: array items: type: object properties: path: type: string why: type: string variable: type: string namespace: type: string PostApiBuildProjects1ModulesDeleteFilesInputResponse: type: object properties: status: type: string DeleteApiBuildProjects2Response: type: object properties: status: type: string details: type: array items: type: string GetApiBuildProjects2Response: type: object properties: id: type: integer repository_url: type: string branch: type: string name: type: string authentication_type: type: string username: type: string is_empty: type: boolean created_at: type: string format: date-time pushed_at: type: - string - 'null' ssh_key_id: type: - string - 'null' password: type: string ssh_private_key: type: string PatchApiBuildProjects2Response: type: object properties: id: type: string PostApiBuildProjects2RefreshResponse: type: object properties: status: type: string details: type: array items: type: string GetApiBuildProjects5ModulesResponse: type: object properties: name: type: string description: type: string tags: type: array items: type: string repo: type: string by: type: string version: type: string commit: type: string added_by: type: string steps: type: array items: type: string subdirectory: type: string isExternal: type: boolean availableVersion: type: string PostApiBuildProjectsProjectidResponse: type: object properties: status: type: string details: type: array items: type: string GetApiBuildBuildidResponse: type: object properties: name: type: string readme: type: string description: type: string version: type: string author: type: object properties: url: type: string name: type: string image: type: string updated: type: string format: date-time downloads: type: integer repo: type: string documentation: type: - string - 'null' website: type: - string - 'null' subdirectory: type: string commit: type: string dependencies: type: string tags: type: string versions: type: object properties: 1.0.0: type: object properties: date: type: string latest: type: boolean 1.0.1: type: object properties: date: type: string latest: type: boolean latest: type: boolean ts_vector: type: string PostApiBuildBuildidResponse: type: object properties: name: type: string readme: type: string description: type: string version: type: string author: type: object properties: url: type: string name: type: string image: type: string updated: type: string format: date-time downloads: type: integer repo: type: string documentation: type: - string - 'null' website: type: - string - 'null' subdirectory: type: string commit: type: string dependencies: type: string tags: type: string versions: type: object properties: 1.0.0: type: object properties: date: type: string latest: type: boolean 1.0.1: type: object properties: date: type: string latest: type: boolean latest: type: boolean GetApiCmdbV2HostkeyResponse: type: object properties: data: type: array description: Array of configuration entries. meta: type: object description: Metadata about pagination. PostApiCmdbV2HostkeyRequest: type: object properties: type: type: string description: 'Configuration type. Allowed values: inventory, class, variable, policy_configuration.' name: type: string description: Configuration entry name (max 255 characters). description: type: string description: Configuration description. tags: type: array description: Array of tags. meta: type: object description: Metadata object. entries: type: array description: Array of sub-entries. required: - type - name PostApiCmdbV2HostkeyResponse: type: object properties: id: type: integer description: Identifier of the created entry. GetApiCmdbV2HostkeyHostkeyidResponse: type: object properties: classes: type: object description: Rendered classes configuration. variables: type: object description: Rendered variables configuration. GetApiCmdbV2SubentryHostkeyTypeNameResponse: type: object properties: id: type: integer entry_id: type: integer item_name: type: string item_value: type: string DeleteApiHostsDeletePermanentlySha2123F85B38189008Ae12Be159F: type: object properties: meta: type: object properties: page: type: integer count: type: integer total: type: integer timestamp: type: integer data: type: array items: type: object properties: id: type: string timestamp: type: integer description: type: string units: type: string PostApiHostsRestoreDeletedSha2123F85B38189008Ae12Be159Fb9615: type: object properties: meta: type: object properties: page: type: integer count: type: integer total: type: integer timestamp: type: integer data: type: array items: type: object properties: id: type: string timestamp: type: integer description: type: string units: type: string GetApiHostsHostidResponse: type: object properties: '10_0_2_15': type: object properties: hosts: type: array items: type: string '127_0_0_1': type: object properties: hosts: type: array items: type: string ubuntu_16: type: object properties: hosts: type: array items: type: string GetApiInventoryAttributesDictionaryResponse: type: object properties: id: type: integer attribute_name: type: string category: type: string readonly: type: integer type: type: string convert_function: type: - string - 'null' keyname: type: string PatchApiInventoryAttributesDictionaryAttributesdictionaryidR: type: object properties: category: type: string type: type: string PatchApiInventoryAttributesDictionaryAttributesdictionaryidR2: type: object properties: id: type: integer attribute_name: type: string category: type: string readonly: type: integer type: type: string convert_function: type: string GetApiRbacUserPermissionsResponse: type: object properties: alias: type: string group: type: string name: type: string description: type: string application: type: string allowed_by_default: type: boolean GetApiRoleRoleidResponse: type: object properties: id: type: string description: Unique role name. description: type: string description: Role description. includeContext: type: string description: Permit access to hosts that have class set . excludeContext: type: string description: Permit access to hosts that have class not set . PostApiRoleRoleidRequest: type: object properties: description: type: string description: Role description. includeContext: type: string description: Permit access to hosts that have class set . excludeContext: type: string description: Permit access to hosts that have class not set PutApiRoleRoleidRequest: type: object properties: description: type: string description: Role description. includeContext: type: string description: Permit access to hosts that have class set . excludeContext: type: string description: Permit access to hosts that have class not set . DeleteApiRoleRolenamePermissionsResponse: type: object properties: status: type: integer description: HTTP 204 No Content GetApiRoleRolenamePermissionsResponse: type: object properties: alias: type: string description: Alias (ID) of a permission group: type: string description: Group of a permission. name: type: string description: Name of a permission. description: type: string description: Description of a permission. application: type: string description: 'Application of a permission. Allowed values: API , Mission portal' allowed_by_default: type: boolean description: Permission allowed by default. New role will be able to perform allowed by default actions. PostApiRoleRolenamePermissionsRequest: type: object properties: alias: type: array description: 'Array of permission aliases. Example: ["Inventory.post", "VariablesDictionary.get"]' required: - alias PostApiRoleRolenamePermissionsResponse: type: object properties: status: type: integer description: HTTP 201 Created PutApiRoleRolenamePermissionsRequest: type: object properties: alias: type: array description: 'Array of permission aliases. Example: ["Inventory.post", "VariablesDictionary.get"]' required: - alias PutApiRoleRolenamePermissionsResponse: type: object properties: status: type: integer description: HTTP 201 Created GetApiUserUsernameResponse: type: object properties: id: type: string description: User name. email: type: string description: Email address. roles: type: string description: List of assigned RBAC roles. external: type: string description: Is user from external source (LDAP/AD). time_zone: type: string description: Time zone two_factor_enabled: type: string description: If a user has enabled two-factor authentication PostApiUserUsernameRequest: type: object properties: password: type: string description: User password email: type: string description: User email roles: type: string description: 'User roles, emp: ["admin", "test"]' time_zone: type: string description: Time zone PutApiUserUsernameRequest: type: object properties: password: type: string description: User password email: type: string description: User email roles: type: string description: 'User roles, emp: ["admin", "test"]' time_zone: type: string description: Time zone PostApiUserUsernameUnlockResponse: type: object properties: '202': type: string description: Accepted – user unlocked and additional 48 hours granted. GetApiApiidResponse: type: object properties: alias: type: string group: type: string name: type: string description: type: string application: type: string allowed_by_default: type: boolean PostApiApiidRequest: type: object properties: period: type: string from: type: string format: date to: type: string format: date PostApiApiidResponse: type: object properties: period: type: string data: type: array items: type: object properties: date: type: string count: type: integer securitySchemes: api_token: type: apiKey in: header name: Authorization x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ldap-api/ Basic: type: http scheme: basic x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ldap-api/ Bearer: type: http scheme: bearer x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ldap-api/ tags: - name: Api security: - api_token: [] - Basic: [] - Bearer: []