# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Chef Automate API Documentation Infra Proxy API version: 1.0.0 extends: openapi/progress-software-infraproxy-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 57 - target: $.paths['/api/v0/infra/servers'].get update: x-apievangelist-phrasing: intent: List registered infra servers effect: read questions: - Which Chef Infra Servers have been added to Automate's infra proxy? - Can I see every infra server I've registered along with its FQDN? instructions: - text: List all infra servers registered in the proxy. - text: Show me every Chef Infra Server Automate is connected to. method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers'].post update: x-apievangelist-phrasing: intent: Register a new infra server effect: write questions: - How do I add a new Chef Infra Server so Automate can manage it? - What do I need to provide when registering an infra server, FQDN or IP address? instructions: - text: Register infra server {name} at FQDN {fqdn}. slots: name: requestBody.name fqdn: requestBody.fqdn - text: Add a new infra server with ID {id}, name {name} and IP address {ip_address}. slots: id: requestBody.id name: requestBody.name ip_address: requestBody.ip_address method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/server_status'].get update: x-apievangelist-phrasing: intent: Check an infra server's reachability status effect: read questions: - Is my Chef Infra Server at a given FQDN up and reachable? - Can I check the health status of an infra server by its hostname? instructions: - text: Check the status of the infra server at {fqdn}. slots: fqdn: query.fqdn - text: Tell me whether the server with hostname {fqdn} is responding. slots: fqdn: query.fqdn method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{id}'].get update: x-apievangelist-phrasing: intent: Get one infra server's details effect: read questions: - What FQDN and IP address are stored for a particular infra server? - Can I look up a single registered infra server by its ID? instructions: - text: Get the details of infra server {id}. slots: id: path.id - text: Show the name, FQDN and IP stored for server {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{id}'].put update: x-apievangelist-phrasing: intent: Update an infra server's connection details effect: write questions: - How do I change the FQDN of an infra server I already registered? - Can I rename an existing infra server or point it at a new IP address? instructions: - text: Change the FQDN of infra server {id} to {fqdn}. slots: id: path.id fqdn: requestBody.fqdn - text: Rename infra server {id} to {name} and set its IP to {ip_address}. slots: id: path.id name: requestBody.name ip_address: requestBody.ip_address method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{id}'].delete update: x-apievangelist-phrasing: intent: Remove an infra server effect: destructive questions: - How do I remove an infra server from Automate's infra proxy? - Can I unregister a Chef Infra Server I no longer use? instructions: - text: Delete infra server {id} from the proxy. slots: id: path.id - text: Unregister the server with ID {id}. slots: id: path.id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs'].get update: x-apievangelist-phrasing: intent: List organizations on an infra server effect: read questions: - Which Chef organizations are attached to a given infra server? - What orgs have been added under one of my infra servers? instructions: - text: List the organizations on infra server {server_id}. slots: server_id: path.server_id - text: Show every org configured under server {server_id}. slots: server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs'].post update: x-apievangelist-phrasing: intent: Add an organization to an infra server effect: write questions: - How do I connect a Chef organization to an infra server in Automate? - Do I need an admin user and admin key to add an org to an infra server? instructions: - text: Add org {name} to infra server {server_id} using admin user {admin_user} and key {admin_key}. slots: name: requestBody.name server_id: path.server_id admin_user: requestBody.admin_user admin_key: requestBody.admin_key - text: Create organization {id} on server {server_id} and assign it to projects {projects}. slots: id: requestBody.id server_id: path.server_id projects: requestBody.projects method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{id}'].get update: x-apievangelist-phrasing: intent: Get one organization on an infra server effect: read questions: - What admin user and projects are set on a specific Chef org? - Can I fetch a single organization's settings from an infra server? instructions: - text: Get org {id} on infra server {server_id}. slots: id: path.id server_id: path.server_id - text: Show the configuration of organization {id} under server {server_id}. slots: id: path.id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{id}'].put update: x-apievangelist-phrasing: intent: Update an organization's settings effect: write questions: - How do I change the admin user on an org I already added? - Can I move an existing Chef org into different Automate projects? instructions: - text: Set the admin user of org {id} on server {server_id} to {admin_user}. slots: id: path.id server_id: path.server_id admin_user: requestBody.admin_user - text: Rename org {id} on server {server_id} to {name} and assign projects {projects}. slots: id: path.id server_id: path.server_id name: requestBody.name projects: requestBody.projects method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{id}'].delete update: x-apievangelist-phrasing: intent: Remove an organization from an infra server effect: destructive questions: - How do I detach a Chef organization from an infra server in Automate? - Can I delete an org I added by mistake? instructions: - text: Delete org {id} from infra server {server_id}. slots: id: path.id server_id: path.server_id - text: Remove organization {id} under server {server_id}. slots: id: path.id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{id}/reset-key'].put update: x-apievangelist-phrasing: intent: Reset an organization's admin key effect: write questions: - How do I replace the admin key Automate uses for a Chef org? - Can I rotate an organization's admin key after it was exposed? instructions: - text: Reset the admin key for org {id} on server {server_id} to {admin_key}. slots: id: path.id server_id: path.server_id admin_key: requestBody.admin_key - text: Rotate the admin key stored for organization {id} on infra server {server_id}. slots: id: path.id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients'].get update: x-apievangelist-phrasing: intent: List API clients in an organization effect: read questions: - Which API clients exist in a Chef org? - Can I search an organization's clients by name and page through the results? instructions: - text: List clients in org {org_id} on server {server_id}. slots: org_id: path.org_id server_id: path.server_id - text: Search clients matching {q} in org {org_id} on server {server_id}, {per_page} per page. slots: q: query.search_query.q org_id: path.org_id server_id: path.server_id per_page: query.search_query.per_page method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients'].post update: x-apievangelist-phrasing: intent: Create an API client in an organization effect: write questions: - How do I create a new Chef client and generate a key for it? - Can I make a validator client in an org through Automate? instructions: - text: Create client {name} in org {org_id} on server {server_id} and generate a key. slots: name: requestBody.name org_id: path.org_id server_id: path.server_id - text: Add validator client {name} to org {org_id} on server {server_id} with validator set to {validator}. slots: name: requestBody.name org_id: path.org_id server_id: path.server_id validator: requestBody.validator method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}'].get update: x-apievangelist-phrasing: intent: Get one API client's details effect: read questions: - Can I view the details of a specific Chef client by name? - Is a given client in my org a validator? instructions: - text: Get client {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show the record for client {name} under org {org_id}, server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}'].delete update: x-apievangelist-phrasing: intent: Delete an API client effect: destructive questions: - How do I delete a Chef client that's no longer needed? - Can I remove a decommissioned machine's client from an org? instructions: - text: Delete client {name} from org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Remove the API client named {name} in org {org_id} on infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/clients/{name}/reset'].put update: x-apievangelist-phrasing: intent: Reset an API client's key effect: write questions: - How do I regenerate the private key for a Chef client? - Can I reset a client's key if the old one was lost? instructions: - text: Reset the key for client {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Generate a fresh key pair for client {name} under org {org_id} on infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks'].get update: x-apievangelist-phrasing: intent: List cookbooks in an organization effect: read questions: - Which cookbooks have been uploaded to a Chef org? - What cookbooks are available on my infra server's organization? instructions: - text: List cookbooks in org {org_id} on server {server_id}. slots: org_id: path.org_id server_id: path.server_id - text: Show all cookbooks uploaded to organization {org_id} on infra server {server_id}. slots: org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks/{name}'].get update: x-apievangelist-phrasing: intent: List versions of a cookbook effect: read questions: - What versions of a particular cookbook are on the server? - Can I see every uploaded version of one cookbook? instructions: - text: List the versions of cookbook {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show which versions of {name} exist in organization {org_id}, server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks/{name}/{version}'].get update: x-apievangelist-phrasing: intent: Get a specific cookbook version effect: read questions: - What recipes, files and metadata are in a specific cookbook version? - Can I inspect version 1.2.0 of a cookbook in my org? instructions: - text: Get cookbook {name} version {version} in org {org_id} on server {server_id}. slots: name: path.name version: path.version org_id: path.org_id server_id: path.server_id - text: Show the contents of {name} at version {version} from org {org_id}, server {server_id}. slots: name: path.name version: path.version org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/cookbooks/{name}/{version}/file-content'].get update: x-apievangelist-phrasing: intent: Read a file inside a cookbook version effect: read questions: - How can I read the source of a recipe file inside a cookbook? - Can I fetch the raw content of one file from a cookbook version by its URL? instructions: - text: Fetch the file at {url} from cookbook {name} version {version} in org {org_id} on server {server_id}. slots: url: query.url name: path.name version: path.version org_id: path.org_id server_id: path.server_id - text: Show me the file content behind {url} in {name} {version}, org {org_id}, server {server_id}. slots: url: query.url name: path.name version: path.version org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags'].get update: x-apievangelist-phrasing: intent: List data bags in an organization effect: read questions: - Which data bags are defined in a Chef org? - What data bags exist on my infra server organization? instructions: - text: List data bags in org {org_id} on server {server_id}. slots: org_id: path.org_id server_id: path.server_id - text: Show the names of all data bags under organization {org_id}, infra server {server_id}. slots: org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags'].post update: x-apievangelist-phrasing: intent: Create a data bag effect: write questions: - How do I create a new empty data bag in an org? - Can I add a data bag to hold shared configuration through Automate? instructions: - text: Create data bag {name} in org {org_id} on server {server_id}. slots: name: requestBody.name org_id: path.org_id server_id: path.server_id - text: Make a new data bag called {name} under organization {org_id}, infra server {server_id}. slots: name: requestBody.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}'].get update: x-apievangelist-phrasing: intent: List items in a data bag effect: read questions: - What items are stored in a particular data bag? - Can I search a data bag's items and page through them? instructions: - text: List items in data bag {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Search data bag {name} for items matching {q} in org {org_id}, server {server_id}. slots: name: path.name q: query.search_query.q org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}'].post update: x-apievangelist-phrasing: intent: Add an item to a data bag effect: write questions: - How do I add a new JSON item to an existing data bag? - Can I store a fresh entry in a data bag from Automate? instructions: - text: Add an item with data {data} to data bag {name} in org {org_id} on server {server_id}. slots: data: requestBody.data name: path.name org_id: path.org_id server_id: path.server_id - text: Create a new entry in bag {name} for organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a data bag effect: destructive questions: - How do I delete an entire data bag along with its items? - Can I remove a data bag nobody uses anymore? instructions: - text: Delete data bag {name} from org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Remove the whole bag {name} in organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item_id}'].put update: x-apievangelist-phrasing: intent: Update an existing data bag item effect: write questions: - How do I change the contents of an item already in a data bag? - Can I overwrite one data bag item's JSON without touching the others? instructions: - text: Update item {item_id} in data bag {name} with data {data} in org {org_id} on server {server_id}. slots: item_id: path.item_id name: path.name data: requestBody.data org_id: path.org_id server_id: path.server_id - text: Replace the stored JSON of item {item_id} in bag {name}, org {org_id}, server {server_id}. slots: item_id: path.item_id name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item}'].get update: x-apievangelist-phrasing: intent: Get one data bag item effect: read questions: - What values are stored in a single data bag item? - Can I read one item out of a data bag by its name? instructions: - text: Get item {item} from data bag {name} in org {org_id} on server {server_id}. slots: item: path.item name: path.name org_id: path.org_id server_id: path.server_id - text: Show the contents of {item} inside bag {name}, organization {org_id}, infra server {server_id}. slots: item: path.item name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/data_bags/{name}/{item}'].delete update: x-apievangelist-phrasing: intent: Delete one data bag item effect: destructive questions: - How do I remove a single item from a data bag but keep the bag? - Can I delete one stale entry out of a data bag? instructions: - text: Delete item {item} from data bag {name} in org {org_id} on server {server_id}. slots: item: path.item name: path.name org_id: path.org_id server_id: path.server_id - text: Remove only the entry {item} from bag {name}, organization {org_id}, infra server {server_id}. slots: item: path.item name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments'].get update: x-apievangelist-phrasing: intent: List environments in an organization effect: read questions: - Which Chef environments are defined in an org? - Can I search environments by name and page through them? instructions: - text: List environments in org {org_id} on server {server_id}. slots: org_id: path.org_id server_id: path.server_id - text: Search environments matching {q} in org {org_id}, server {server_id}, page {page}. slots: q: query.search_query.q org_id: path.org_id server_id: path.server_id page: query.search_query.page method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments'].post update: x-apievangelist-phrasing: intent: Create an environment effect: write questions: - How do I create a new environment like staging with pinned cookbook versions? - Can I set default and override attributes when I create an environment? instructions: - text: Create environment {name} in org {org_id} on server {server_id} described as {description}. slots: name: requestBody.name org_id: path.org_id server_id: path.server_id description: requestBody.description - text: Add a new environment {name} pinning cookbook versions {cookbook_versions} in org {org_id}, server {server_id}. slots: name: requestBody.name cookbook_versions: requestBody.cookbook_versions org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}'].get update: x-apievangelist-phrasing: intent: Get one environment's details effect: read questions: - What cookbook constraints and attributes does a given environment have? - Can I view a single environment's settings by name? instructions: - text: Get environment {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show the attributes and cookbook pins of environment {name}, org {org_id}, server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}'].put update: x-apievangelist-phrasing: intent: Update an existing environment effect: write questions: - How do I change the cookbook version pins on an existing environment? - Can I edit an environment's override attributes after it's created? instructions: - text: Update environment {name} in org {org_id} on server {server_id} to pin cookbook versions {cookbook_versions}. slots: name: path.name org_id: path.org_id server_id: path.server_id cookbook_versions: requestBody.cookbook_versions - text: Set override attributes {override_attributes} on existing environment {name}, org {org_id}, server {server_id}. slots: override_attributes: requestBody.override_attributes name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}'].delete update: x-apievangelist-phrasing: intent: Delete an environment effect: destructive questions: - How do I delete an environment we retired? - Can I remove an unused environment from a Chef org? instructions: - text: Delete environment {name} from org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Remove the {name} environment in organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/environments/{name}/recipes'].get update: x-apievangelist-phrasing: intent: List recipes available in an environment effect: read questions: - Which recipes are available to nodes in a given environment? - What recipes resolve under an environment's cookbook constraints? instructions: - text: List recipes available in environment {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show which recipes nodes in environment {name} can run, org {org_id}, server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/node/{name}/runlist/{environment}'].get update: x-apievangelist-phrasing: intent: Get a node's expanded run list for an environment effect: read questions: - What does a node's run list expand to once roles are resolved in an environment? - Can I see the full list of recipes a specific node will run in production? instructions: - text: Get the expanded run list of node {name} in environment {environment}, org {org_id}, server {server_id}. slots: name: path.name environment: path.environment org_id: path.org_id server_id: path.server_id - text: Show every recipe node {name} would run under {environment} in org {org_id} on server {server_id}. slots: name: path.name environment: path.environment org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/nodes'].get update: x-apievangelist-phrasing: intent: List nodes in an organization effect: read questions: - Which nodes are registered in a Chef org? - Can I search an organization's nodes with a query and page through the results? instructions: - text: List nodes in org {org_id} on server {server_id}. slots: org_id: path.org_id server_id: path.server_id - text: Search nodes matching {q} in org {org_id} on server {server_id}. slots: q: query.search_query.q org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/nodes/{name}'].get update: x-apievangelist-phrasing: intent: Get one node's details effect: read questions: - What run list, environment and attributes does a specific node have? - Can I pull up a single node by name from an org? instructions: - text: Get node {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show the full record of node {name} under organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/nodes/{name}'].put update: x-apievangelist-phrasing: intent: Update a node's full configuration effect: write questions: - How do I change a node's run list and policy group in one update? - Can I rewrite a node's whole configuration including its environment and attributes? instructions: - text: Set the run list of node {name} in org {org_id} on server {server_id} to {run_list}. slots: name: path.name org_id: path.org_id server_id: path.server_id run_list: requestBody.run_list - text: Put node {name} on policy {policy_name} in group {policy_group}, org {org_id}, server {server_id}. slots: name: path.name policy_name: requestBody.policy_name policy_group: requestBody.policy_group org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/nodes/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a node effect: destructive questions: - How do I delete a node object for a machine that was decommissioned? - Can I remove a node from a Chef org? instructions: - text: Delete node {name} from org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Remove the node object {name} in organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/nodes/{name}/attributes'].put update: x-apievangelist-phrasing: intent: Update only a node's attributes effect: write questions: - How do I change just a node's attributes without touching its run list? - Can I patch the attribute values on a single node? instructions: - text: Set attributes {attributes} on node {name} in org {org_id} on server {server_id}. slots: attributes: requestBody.attributes name: path.name org_id: path.org_id server_id: path.server_id - text: Update only the attribute values of node {name}, organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/nodes/{name}/environment'].put update: x-apievangelist-phrasing: intent: Move a node to another environment effect: write questions: - How do I move a node from staging into the production environment? - Can I change only the environment a node belongs to? instructions: - text: Move node {name} in org {org_id} on server {server_id} to environment {environment}. slots: name: path.name org_id: path.org_id server_id: path.server_id environment: requestBody.environment - text: Assign environment {environment} to node {name}, organization {org_id}, infra server {server_id}. slots: environment: requestBody.environment name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/nodes/{name}/tags'].put update: x-apievangelist-phrasing: intent: Add or remove tags on a node effect: write questions: - How do I tag a node so I can find it later? - Can I remove a tag from a node without editing anything else? instructions: - text: Add tags {tags} to node {name} in org {org_id} on server {server_id}. slots: tags: requestBody.tags name: path.name org_id: path.org_id server_id: path.server_id - text: Apply tag action {action} with tags {tags} on node {name}, org {org_id}, server {server_id}. slots: action: requestBody.action tags: requestBody.tags name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/policyfiles'].get update: x-apievangelist-phrasing: intent: List Policyfiles in an organization effect: read questions: - Which Policyfiles have been pushed to a Chef org? - What policies are in use on my infra server organization? instructions: - text: List Policyfiles in org {org_id} on server {server_id}. slots: org_id: path.org_id server_id: path.server_id - text: Show all policy names pushed to organization {org_id}, infra server {server_id}. slots: org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/policyfiles/{name}'].get update: x-apievangelist-phrasing: intent: Get a Policyfile, optionally at a revision effect: read questions: - What's in a specific Policyfile, including its run list and cookbook locks? - Can I fetch a Policyfile at a particular revision ID? instructions: - text: Get Policyfile {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show Policyfile {name} at revision {revision_id}, org {org_id}, server {server_id}. slots: name: path.name revision_id: query.revision_id org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/policyfiles/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a Policyfile effect: destructive questions: - How do I delete a Policyfile we no longer use? - Can I remove a policy and its revisions from an org? instructions: - text: Delete Policyfile {name} from org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Remove the policy named {name} in organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/policyfiles/{name}/revisions'].get update: x-apievangelist-phrasing: intent: List revisions of a Policyfile effect: read questions: - What revisions exist for a particular Policyfile? - Can I see the revision history of one policy? instructions: - text: List revisions of Policyfile {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show the revision IDs pushed for policy {name}, organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/policygroups/{name}'].get update: x-apievangelist-phrasing: intent: Get a policy group effect: read questions: - Which policies and revisions are active in a given policy group? - Can I look up a policy group like production by name? instructions: - text: Get policy group {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show the policies assigned to group {name}, organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/roles'].get update: x-apievangelist-phrasing: intent: List roles in an organization effect: read questions: - Which Chef roles are defined in an org? - Can I search roles by a query and page through them? instructions: - text: List roles in org {org_id} on server {server_id}. slots: org_id: path.org_id server_id: path.server_id - text: Search roles matching {q} in org {org_id}, server {server_id}. slots: q: query.search_query.q org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/roles'].post update: x-apievangelist-phrasing: intent: Create a role effect: write questions: - How do I create a new role with its own run list? - Can I give a new role different run lists per environment? instructions: - text: Create role {name} with run list {run_list} in org {org_id} on server {server_id}. slots: name: requestBody.name run_list: requestBody.run_list org_id: path.org_id server_id: path.server_id - text: Add a new role {name} described as {description} with environment run lists {env_run_lists}, org {org_id}, server {server_id}. slots: name: requestBody.name description: requestBody.description env_run_lists: requestBody.env_run_lists org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/roles/{name}'].get update: x-apievangelist-phrasing: intent: Get one role's details effect: read questions: - What run list and attributes does a specific role define? - Can I view a single role by name? instructions: - text: Get role {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show the definition of role {name} under organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/roles/{name}'].put update: x-apievangelist-phrasing: intent: Update an existing role effect: write questions: - How do I change the run list of a role that already exists? - Can I edit a role's default attributes? instructions: - text: Update role {name} in org {org_id} on server {server_id} to use run list {run_list}. slots: name: path.name org_id: path.org_id server_id: path.server_id run_list: requestBody.run_list - text: Set default attributes {default_attributes} on existing role {name}, org {org_id}, server {server_id}. slots: default_attributes: requestBody.default_attributes name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/roles/{name}'].delete update: x-apievangelist-phrasing: intent: Delete a role effect: destructive questions: - How do I delete a role that's no longer applied to any node? - Can I remove an obsolete role from an org? instructions: - text: Delete role {name} from org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Remove the {name} role in organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/roles/{name}/environments'].get update: x-apievangelist-phrasing: intent: List environments a role has run lists for effect: read questions: - Which environments does a role define environment-specific run lists for? - Can I see the environments tied to a particular role? instructions: - text: List the environments for role {name} in org {org_id} on server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id - text: Show which environments role {name} has run lists for, organization {org_id}, infra server {server_id}. slots: name: path.name org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/roles/{name}/runlist/{environment}'].get update: x-apievangelist-phrasing: intent: Get a role's expanded run list for an environment effect: read questions: - What does a role's run list expand to in a specific environment? - Can I see the nested roles and recipes a role resolves to? instructions: - text: Get the expanded run list of role {name} in environment {environment}, org {org_id}, server {server_id}. slots: name: path.name environment: path.environment org_id: path.org_id server_id: path.server_id - text: Resolve role {name} to its full recipe list for {environment} in organization {org_id} on infra server {server_id}. slots: name: path.name environment: path.environment org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/orgs/{org_id}/users'].get update: x-apievangelist-phrasing: intent: List users in an organization effect: read questions: - Who are the users that belong to a Chef org? - Can I list the members of one organization on an infra server? instructions: - text: List users in org {org_id} on server {server_id}. slots: org_id: path.org_id server_id: path.server_id - text: Show the members of organization {org_id}, infra server {server_id}. slots: org_id: path.org_id server_id: path.server_id method: generated generated: '2026-10-01' - target: $.paths['/api/v0/infra/servers/{server_id}/users'].post update: x-apievangelist-phrasing: intent: List all users on an infra server effect: read questions: - Which users exist across a whole infra server, not just one org? - Do I need the server admin's name and key to list server-wide users? instructions: - text: List all users on infra server {server_id} using admin {admin_name} and key {admin_key}. slots: server_id: path.server_id admin_name: requestBody.admin_name admin_key: requestBody.admin_key - text: Show every user account on server {server_id}. slots: server_id: path.server_id method: generated generated: '2026-10-01'