openapi: 3.1.0 info: title: Chef Infra Server API description: >- REST API for the Chef Infra Server. Manages nodes, cookbooks, roles, environments, data bags, clients, and users that drive Chef's infrastructure automation. Authentication uses RSA-signed request headers per the Chef Infra Server signed-header authentication scheme. version: '1.0' contact: name: Chef Software url: https://www.chef.io/support externalDocs: description: Chef Infra Server API Documentation url: https://docs.chef.io/server/api_chef_server/ servers: - url: https://{server}/organizations/{org} description: Chef Infra Server (per-organization) variables: server: default: chef.example.com org: default: example tags: - name: Nodes - name: Cookbooks - name: Roles - name: Environments - name: Data Bags - name: Clients - name: Users security: - chefSignedAuth: [] paths: /nodes: get: operationId: listNodes summary: List nodes tags: [Nodes] responses: '200': description: Node list post: operationId: createNode summary: Create a node tags: [Nodes] requestBody: required: true content: application/json: schema: type: object responses: '201': description: Node created /nodes/{nodeName}: get: operationId: getNode summary: Get a node tags: [Nodes] parameters: - name: nodeName in: path required: true schema: { type: string } responses: '200': description: Node put: operationId: updateNode summary: Update a node tags: [Nodes] parameters: - name: nodeName in: path required: true schema: { type: string } requestBody: required: true content: application/json: schema: type: object responses: '200': description: Node updated delete: operationId: deleteNode summary: Delete a node tags: [Nodes] parameters: - name: nodeName in: path required: true schema: { type: string } responses: '200': description: Node deleted /cookbooks: get: operationId: listCookbooks summary: List cookbooks tags: [Cookbooks] responses: '200': description: Cookbook list /cookbooks/{cookbookName}: get: operationId: getCookbook summary: Get cookbook versions tags: [Cookbooks] parameters: - name: cookbookName in: path required: true schema: { type: string } responses: '200': description: Cookbook versions /roles: get: operationId: listRoles summary: List roles tags: [Roles] responses: '200': description: Role list post: operationId: createRole summary: Create a role tags: [Roles] requestBody: required: true content: application/json: schema: type: object responses: '201': description: Role created /roles/{roleName}: get: operationId: getRole summary: Get a role tags: [Roles] parameters: - name: roleName in: path required: true schema: { type: string } responses: '200': description: Role /environments: get: operationId: listEnvironments summary: List environments tags: [Environments] responses: '200': description: Environment list /data: get: operationId: listDataBags summary: List data bags tags: [Data Bags] responses: '200': description: Data bag list /clients: get: operationId: listClients summary: List API clients tags: [Clients] responses: '200': description: Client list /users: get: operationId: listUsers summary: List users tags: [Users] responses: '200': description: User list components: securitySchemes: chefSignedAuth: type: apiKey in: header name: X-Ops-Authorization description: Chef signed-header authentication using an RSA key associated with a client.