CLI commands — python-heatclient — branch stable/2026.2
Branch
stable/2026.2@88120f11830d(5.3.0-2-g88120f1) — repository https://opendev.org/openstack/python-heatclient — analysed on 2026-11-01
python-heatclient exposes no API of its own. It is a **plugin of openstack** with 49 commands, a Python API those commands call, and a deprecated heat shell. Its contract with the outside world is the HTTP requests it sends to Heat (interactions, client contract).
[observed] below means seen against a local stub, which is not Heat. It shows what the client sends and does, not what a real service answers.
1. Shared mechanics
- Plugin loading: entry point
openstack.cli.extension = orchestration→heatclient/osc/plugin.py(pyproject.toml:42-43). python-openstackclient imports it, readsAPI_NAMEandAPI_VERSION_OPTION, and loads the groupopenstack.orchestration.v<version>(openstackclient:openstackclient/shell.py:94-104). - API version:
--os-orchestration-api-versionorOS_ORCHESTRATION_API_VERSION, default1, the only supported value (heatclient/osc/plugin.py:22-27,heatclient/osc/plugin.py:63-74). With2:orchestration API version 2 is not in supported versions: 1, the command is not found, exit 2 [observed, G29]. - Client construction:
make_clientbuildsheatclient.v1.client.Clientwith the session of the OSC client manager,service_type=orchestration,region_nameandinterface(heatclient/osc/plugin.py:30-60). **It passes noauthplugin**, which breaks the TempURL path (defect 1 in 02). The branches atheatclient/osc/plugin.py:44-56run only wheninstance.sessionis empty. - Managers:
Clientholdsstacks,resources,resource_types,events,actions,build_info,software_deployments,software_configs,servicesandtemplate_versions(heatclient/v1/client.py:39-56). Each is one Python file underheatclient/v1/. Commands use them for every request, plushttp_clientdirectly for template objects. - No microversions, no version discovery: the client sends no version header and never reads a version document. Across both probes, the stub's version documents received 0 requests [observed,
version_hitsin the wire probes]. The catalog URL is used as it is. - Stack identification. Two forms exist, and each manager method uses one:
- Passed as typed,
/stacks/{what the user typed}[/sub]:stacks.get,update,delete,template,environment,files,actions.*,events.listwithout a resource,resources.list. These rely on Heat's 302. keystoneauth follows it and re-sends the same method and body (keystoneauth1:keystoneauth1/session.py:1246) [observed for GET, POST, PUT, PATCH and DELETE]. - Resolved first:
_resolve_stack_idsendsGET /stacks/{x}withredirect=False, and takes what follows/stacks/inLocation(heatclient/v1/stacks.py:102-116). A value already holding a/is used asname/idwith no request. Every snapshot, output, abandon, export and single-resource call does this. - Consequence:
<stack>accepts a name, an ID orname/idon every command, with one exception:stack hook pollneeds the name (defect 3).
- Passed as typed,
- Result objects:
base.Resourcecopies the JSON keys to attributes (heatclient/common/base.py:452-459). Objects from a list are marked loaded; those from agetare not, and a missing attribute triggers a secondGET(heatclient/common/base.py:461-468). That second path ends in an error on the session client (defect 7). - Output types:
ShowOneandListerprint through cliff.heatclient/common/format_utils.py:20-55providesRawFormatsubclasses with another default format: JSON (stack abandon,stack export,stack resource metadata,software config create) or YAML (stack environment show,stack file list,stack template show,stack snapshot show,software deployment create,software config show,orchestration resource type show,orchestration template validate). When the action returnsdata=None, they print nothing.stack event listdefaults to thelogformatter, from its own namespace (heatclient/osc/v1/event.py:90-96,pyproject.toml:95-101).stack resource listaccepts-f dotfor Graphviz (heatclient/osc/v1/resource.py:78-80,heatclient/common/resource_formatter.py:40-46).
- Global options: identical to any OSC plugin (
--os-*,clouds.yaml,--os-region-name,--insecure), handled by osc-lib, not by this package.
Parameters, templates and environments
These rules are shared by stack create, stack update, stack adopt, orchestration template validate:
- **
--parameter** (heatclient/common/utils.py:322-349):key=value. When given once, the value is split on;first, soa=1;b=2gives two parameters anda=1;2is refused withMalformed parameter(2)[observed, D21]. A repeated key becomes a list. - **
--parameter-file** (heatclient/common/utils.py:363-386):key=path; the path is resolved relative to the template's directory, not the current one, and the content is sent as the value. Non UTF-8 content is base64 encoded (heatclient/common/utils.py:416-420). Onlystack createandstack updatehave it. If a key repeats, a rawTypeErrorfollows [observed, D20]. - Template (
heatclient/common/template_utils.py:29-56):- a path becomes a
file://URL (heatclient/common/utils.py:430-433) and is read byurlopen, so-talso takeshttp://and any scheme urllib knows; - on
URLError, the same string is requested from Heat with the token, as a template object:GET <endpoint>/<string>[observed, G25]; a 404 re-raises the first error; - the text is parsed as JSON if it starts with
{, otherwise YAML with a safe loader that keeps timestamps as strings (heatclient/common/template_format.py:53-82). One ofHeatTemplateFormatVersion,heat_template_versionorAWSTemplateFormatVersionmust be present.
- a path becomes a
- Child files (
heatclient/common/template_utils.py:110-178): everyget_file: <value>, and everytype: <value>ending in.yamlor.template, is resolved against the template's URL, read, stored infilesunder the absolute URL, and replaced by that URL in the template. Files that parse as templates are processed recursively and stored as JSON. - **
-s, --files-container**: skips this resolution (fetch_child=False,heatclient/osc/v1/stack.py:142) and sendsfiles_container; environments are then listed by path and not read (heatclient/common/template_utils.py:259-281). - Environments (
heatclient/common/template_utils.py:216-335): each-efile is parsed, checked against the allowed sections (heatclient/common/environment_format.py:19-27), deep-merged intoenvironment, and its URLs inresource_registryare fetched intofiles. Becauseenv_list_trackeris set, the raw file also goes tofilesand its URL toenvironment_files, so that Heat does the merge [observed, variant with-ein the wire probes]. - Hooks:
--pre-createand--pre-updateadd{"hooks": "<type>"}underresource_registry.resources.<path>(heatclient/common/template_utils.py:377-398).
2. Functional description by family
Stack lifecycle
- **
stack create** (heatclient/osc/v1/stack.py:38-213). Purpose: submit a template, and optionally wait for it.- Body:
stack_name,disable_rollback(trueunless--enable-rollback),parameters,template,files,environment, and when setenvironment_files,files_container,tags,timeout_mins[observed, G01].--timeout 0is falsy and not sent. - Flow:
POST /stacks, then--waitpolling by name, thenGET /stacks/{id}?resolve_outputs=Falsefor the short table. --dry-runsends the same body toPOST /stacks/previewand prints the full preview (heatclient/osc/v1/stack.py:181-203).- Outcome: the command returns as soon as Heat accepts; the stack is usually
CREATE_IN_PROGRESS.
- Body:
- **
stack update** (heatclient/osc/v1/stack.py:216-414). Purpose: change a stack.PUT /stacks/{x}, orPATCHwith--existing, wheretemplatemay benull[observed, G06].- Without
-tor--existing:Need to specify exactly one of [--template-file, --template-url or --template-object] or --existing, naming options that do not exist here (defect 9). --rollback enabled|disabledsetsdisable_rollback, andkeepomits it.--clear-parametergivesclear_parameters.--convergegivesconverge: true, not sent with--dry-run.--dry-runresolves the name, thenPUTorPATCH /stacks/{name}/{id}/preview[?show_nested=True], and prints each list ofresource_changes(heatclient/osc/v1/stack.py:378-391) [observed, G07].
- **
stack delete** (heatclient/osc/v1/stack.py:722-813): takes several stacks.- The prompt appears only if stdin is a terminal and
--yesis absent (heatclient/osc/v1/stack.py:753). - A 404 or 403 on one stack prints a line on stdout, and the others continue; the end message is
Unable to delete 2 of the 3 stacks.with exit 1 [observed, G09]. Any other error stops the loop.
- The prompt appears only if stdin is a terminal and
- **
stack adopt** (heatclient/osc/v1/stack.py:816-898):POST /stackswithadopt_stack_dataas a string holding the file, and thefilesof that file merged with those of the environments.--timeoutis sent under the wrong key (defect 5). - **
stack abandon** (heatclient/osc/v1/stack.py:901-942):DELETE /stacks/{name}/{id}/abandon, prints JSON or writes--output-file. **stack export** (heatclient/osc/v1/stack.py:945-986): same withGET …/export, and the stack stays. - **
stack suspend,resume,check** (heatclient/osc/v1/stack.py:1165-1267): for each stack,POST /stacks/{x}/actionswith{"suspend": null},{"resume": null}or{"check": null}, then aGETfor the row. The first 404 ends the command, so earlier stacks are already actioned. - **
stack cancel** (heatclient/osc/v1/stack.py:1270-1332): reads the status first. Without--no-rollbackit needsUPDATE_IN_PROGRESSand sendscancel_update; with it,CREATE_orUPDATE_IN_PROGRESSandcancel_without_rollback. Otherwise it stops on the client [observed, G28]. - **
stack show** (heatclient/osc/v1/stack.py:417-490):GET /stacks/{x}, with?resolve_outputs=Falseunder--no-resolve-outputs. Columns: a fixed list, then any other key excepttemplate_description. - **
stack list** (heatclient/osc/v1/stack.py:493-719): see the query mapping in 03.- Sorting (
--sort) is client-side, so it applies to the fetched page only (heatclient/osc/v1/stack.py:714). --limitis paged on the client: the manager re-requests with the remainder and a marker until the count is reached or a page is empty (heatclient/v1/stacks.py:132-146) [observed, G10]. Without--limit, one request: the client relies on Heat's own limit.--projectresolves the name through Keystone. Aprojectkey in a result adds the column (heatclient/osc/v1/stack.py:710-713).--longand--all-projects: see defect 2.--tag-modeis ignored without--tags(heatclient/osc/v1/stack.py:678-690).
- Sorting (
- **
stack template show,environment show,file list** (heatclient/osc/v1/stack.py:595-653,heatclient/osc/v1/stack.py:1106-1131): read-only views of what Heat stored.
Stack outputs
- **
stack output list** (heatclient/osc/v1/stack.py:1069-1103):GET …/outputs; on 404, it falls back to theoutputsof the stack, written for older servers. A stack without that key then gives a bareKeyError[observed, D12]. - **
stack output show** (heatclient/osc/v1/stack.py:989-1066): needs exactly one of<output>and--all. A single output has the same fallback [observed, G24]. Anoutput_errorin the answer becomesOutput error: ….
Resources
- **
stack resource list** (heatclient/osc/v1/resource.py:73-147): querynested_depth,with_detail, and filters. - **
stack resource show** (heatclient/osc/v1/resource.py:30-70):?with_attr=per--with-attr. - **
stack resource metadata** (heatclient/osc/v1/resource.py:150-188). - **
stack resource signal** (heatclient/osc/v1/resource.py:191-255):--dataor--data-file, JSON dict only, checked on the client. With neither, the body is the JSON textnull[observed, G30]. - **
stack resource mark unhealthy** (heatclient/osc/v1/resource.py:258-303):PATCHwithmark_unhealthy(false under--reset) andresource_status_reason.
Events
- **
stack event list** (heatclient/osc/v1/event.py:85-240): always sendssort_dir(ascby default, or the direction of the first--sort).sort_keysgoes to the server, and sorting is applied again on the client.--resourceand--nested-depthexclude each other.--follow: see 05. - **
stack event show** (heatclient/osc/v1/event.py:29-82): 3 reads, stack then resource then event, so that a 404 tells which is missing through Heat's message [observed, G31].
Hooks
Breakpoints are paused resources that Heat reports only through events.
- **
stack hook poll** (heatclient/osc/v1/stack.py:1335-1401,heatclient/common/event_utils.py:24-65): gets the stack and derives the hook type from its status (heatclient/common/hook_utils.py:56-79); refuses if notIN_PROGRESS; reads all events, keeps those after the lastStack <ACTION> startedof this stack, and drops resources that have a later "cleared" event. The texts are literal. - **
stack hook clear** (heatclient/osc/v1/stack.py:1404-1470,heatclient/common/hook_utils.py:22-53): the type comes from--pre-create,--pre-update,--pre-deleteor the stack status.a/b*/c*walks nested stacks withfnmatch, and each match getsPOST …/signalwith{"unset_hook": "<type>"}[observed, G18]. No match, or a 404 on the signal, still exits 0 (defect 10).
Snapshots
stack snapshot create|list|show|delete|restore (heatclient/osc/v1/snapshot.py:28-238) map one to one to /stacks/{name}/{id}/snapshots[/{id}[/restore]]. delete prompts like stack delete.
Failure report
**stack failures list** (heatclient/osc/v1/stack_failures.py:24-136): for a stack whose status ends in FAILED, walks failed resources, descends into those with a nested link, and keeps the deepest failure. Deployment resources also get their deploy_stdout and deploy_stderr, the last 10 lines unless --long (heatclient/common/format_utils.py:58-75) [observed, G16]. Not failed: prints nothing, exit 0.
Software configs and deployments
- **
software config create** (heatclient/osc/v1/software_config.py:111-186): reads--definition-fileas a YAML map ofinputs,outputs,options, and--config-fileas the raw script; their help texts are swapped (defect 9). It first validates a mini-template holding the config throughPOST /validate, thenPOST /software_configs[observed, G22]. - **
software config list|show|delete** (heatclient/osc/v1/software_config.py:31-108,heatclient/osc/v1/software_config.py:189-240):deletehides the reason of non-404 failures behind the final count (heatclient/osc/v1/software_config.py:60-64). - **
software deployment create** (heatclient/osc/v1/software_deployment.py:30-130): reads the source config if--configis given, builds a derived config whose inputs are the source's, the--input-valueones and thedeploy_*ones (heatclient/common/deployment_utils.py:25-91) [observed, G20], creates it, then creates the deployment withstatus: IN_PROGRESS. OnlyTEMP_URL_SIGNAL(default, broken here) andNO_SIGNALare accepted; the help also listsZAQAR_SIGNAL, which is refused (defect 9). - **
software deployment delete** (heatclient/osc/v1/software_deployment.py:133-179): reads the deployment, deletes it, then best-effort deletes its config. A 404 on the config only prints a line [observed, G21]. - **
software deployment list|show|metadata show|output show** (heatclient/osc/v1/software_deployment.py:182-356).
Service information
orchestration build info, service list, template version list, template function list, resource type list|show, and template validate (heatclient/osc/v1/build_info.py:24, heatclient/osc/v1/service.py:22, heatclient/osc/v1/template.py:34-188, heatclient/osc/v1/resource_type.py:27-129). resource type show --template-type hot|cfn generates a template, and the value is checked on the client. template version list reads versions[1] to find out whether aliases exist (defect 4).
Stack status lifecycle, as the client sees it
The client never computes a status; it compares strings from Heat.
stateDiagram-v2 [*] --> CREATE_IN_PROGRESS: POST /stacks (stack create, adopt uses ADOPT_*) CREATE_IN_PROGRESS --> CREATE_COMPLETE: Heat, seen by --wait CREATE_IN_PROGRESS --> CREATE_FAILED: Heat, --wait exits 1 CREATE_COMPLETE --> UPDATE_IN_PROGRESS: PUT or PATCH (stack update) UPDATE_IN_PROGRESS --> UPDATE_COMPLETE: Heat UPDATE_IN_PROGRESS --> UPDATE_FAILED: Heat, --wait exits 1 UPDATE_IN_PROGRESS --> ROLLBACK_IN_PROGRESS: stack cancel (cancel_update) [inferred, done by Heat] CREATE_COMPLETE --> SUSPEND_IN_PROGRESS: actions suspend SUSPEND_IN_PROGRESS --> SUSPEND_COMPLETE: Heat SUSPEND_COMPLETE --> RESUME_IN_PROGRESS: actions resume CREATE_COMPLETE --> CHECK_IN_PROGRESS: actions check CREATE_COMPLETE --> DELETE_IN_PROGRESS: DELETE (stack delete) DELETE_IN_PROGRESS --> [*]: 404 on events ends --wait DELETE_IN_PROGRESS --> DELETE_FAILED: Heat, --wait exits 1
3. Python API and legacy shell
- Used by the commands: all of
heatclient/v1/exceptsoftware_deployments.updateandresources.generate_template;heatclient/common/in full, exceptwait_for_eventsand the printing helpers ofheatclient/common/utils.py, which serve the legacy shell. - HTTP clients:
_construct_http_clientpicksSessionClientwhen a session exists, otherwise the olderHTTPClient(heatclient/common/http.py:347-372). **The OSC path always getsSessionClient** [observed:last_request_idis missing, D08].HTTPClientexists forheat --os-no-client-auth(heatclient/shell.py:496-508), and it can send the password inX-Auth-Keywhen asked to (heatclient/common/http.py:175-176,heatclient/common/http.py:256-259). - **
heatshell**:heatclient/shell.py:421-560builds its own parser and session, then callsdo_<command>fromheatclient/v1/shell.py. Its functions warn"heat stack-create" is deprecated, please use "openstack stack create" instead(heatclient/v1/shell.py:37-40). It shares managers and helpers with OSC. It passesauthto the client (heatclient/shell.py:535-546), so TempURL works there [observed, L02].
4. Command sheets
Generated from _rewrite/cli-commands_stable-2026.2.json and the wire probes. The requests listed use the stub's synthetic arguments, so they are not every route a command can use: _rewrite/client-contract_stable-2026.2.json adds those read in the source.
openstack orchestration build info
Retrieve build information. Class heatclient.osc.v1.build_info:BuildInfo, defined at heatclient/osc/v1/build_info.py:24. Output: single. Unit vectors: 1.
Requests observed on the stub, all argv variants [observed]: GET /build_info.
openstack orchestration resource type list
List resource types. Class heatclient.osc.v1.resource_type:ResourceTypeList, defined at heatclient/osc/v1/resource_type.py:86. Output: list. Unit vectors: 4.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
--filter | Append | Filter parameters to apply on returned resource types. This can be specified multiple times. It can be any of name, version or support_status | ||
--long | StoreTrue | Show resource types with corresponding description of each resource type. |
Requests observed on the stub, all argv variants [observed]: GET /resource_types.
openstack orchestration resource type show
Show details and optionally generate a template for a resource type. Class heatclient.osc.v1.resource_type:ResourceTypeShow, defined at heatclient/osc/v1/resource_type.py:27. Output: single. Unit vectors: 10.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
resource_type | Store | yes | Resource type to show details for | |
--template-type | Store | Optional template type to generate, hot or cfn | ||
--long | StoreTrue | Show resource type with corresponding description. |
Requests observed on the stub, all argv variants [observed]: GET /resource_types/{type_name}; GET /resource_types/{type_name}/template.
openstack orchestration service list
List the Heat engines. Class heatclient.osc.v1.service:ListService, defined at heatclient/osc/v1/service.py:22. Output: list. Unit vectors: 1.
Requests observed on the stub, all argv variants [observed]: GET /services.
openstack orchestration template function list
List the available functions. Class heatclient.osc.v1.template:FunctionList, defined at heatclient/osc/v1/template.py:61. Output: list. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
template_version | Store | yes | Template version to get the functions for | |
--with_conditions | StoreTrue | Show condition functions for template. |
Requests observed on the stub, all argv variants [observed]: GET /template_versions/{template_version}/functions.
openstack orchestration template validate
Validate a template Class heatclient.osc.v1.template:Validate, defined at heatclient/osc/v1/template.py:102. Output: single. Unit vectors: 5.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
-e, --environment | Append | Path to the environment. Can be specified multiple times | ||
--show-nested | StoreTrue | Resolve parameters from nested templates as well | ||
--parameter | Append | Parameter values used to create the stack. This can be specified multiple times | ||
-s, --files-container | Store | Swift files container name. Local files other than root template would be ignored. If other files are not found in swift, heat engine would raise an e | ||
--ignore-errors | Store | List of heat errors to ignore | ||
-t, --template | Store | yes | Path to the template |
Requests observed on the stub, all argv variants [observed]: POST /validate.
openstack orchestration template version list
List the available template versions. Class heatclient.osc.v1.template:VersionList, defined at heatclient/osc/v1/template.py:34. Output: list. Unit vectors: 2.
Requests observed on the stub, all argv variants [observed]: GET /template_versions.
openstack software config create
Create software config Class heatclient.osc.v1.software_config:CreateConfig, defined at heatclient/osc/v1/software_config.py:111. Output: single. Unit vectors: 4.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
name | Store | yes | Name of the software config to create | |
--config-file | Store | Path to JSON/YAML containing map defining <inputs>, <outputs>, and <options> | ||
--definition-file | Store | Path to software config script/data | ||
--group | Store | Heat::Ungrouped | Group name of tool expected by the software config |
Requests observed on the stub, all argv variants [observed]: POST /validate; POST /software_configs.
openstack software config delete
Delete software configs Class heatclient.osc.v1.software_config:DeleteConfig, defined at heatclient/osc/v1/software_config.py:31. Output: none. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
config | Store (+) | yes | IDs of the software configs to delete |
Requests observed on the stub, all argv variants [observed]: DELETE /software_configs/{config_id}.
openstack software config list
List software configs Class heatclient.osc.v1.software_config:ListConfig, defined at heatclient/osc/v1/software_config.py:73. Output: list. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
--limit | int | Limit the number of configs returned | ||
--marker | Store | Return configs that appear after the given config ID |
Requests observed on the stub, all argv variants [observed]: GET /software_configs.
openstack software config show
Show software config details Class heatclient.osc.v1.software_config:ShowConfig, defined at heatclient/osc/v1/software_config.py:189. Output: single. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
config | Store | yes | ID of the config | |
--config-only | StoreTrue | Only display the value of the <config> property. |
Requests observed on the stub, all argv variants [observed]: GET /software_configs/{config_id}.
openstack software deployment create
Create a software deployment. Class heatclient.osc.v1.software_deployment:CreateDeployment, defined at heatclient/osc/v1/software_deployment.py:30. Output: single. Unit vectors: 7.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
name | Store | yes | Name of the derived config associated with this deployment. This is used to apply a sort order to the list of configurations currently deployed to the | |
--input-value | Append | Input value to set on the deployment. This can be specified multiple times. | ||
--action | Store | UPDATE | Name of an action for this deployment. This can be a custom action, or one of CREATE, UPDATE, DELETE, SUSPEND, RESUME. Default is UPDATE | |
--config | Store | ID of the configuration to deploy | ||
--signal-transport | Store | TEMP_URL_SIGNAL | How the server should signal to heat with the deployment output values. TEMP_URL_SIGNAL will create a Swift TempURL to be signaled via HTTP PUT. ZAQAR | |
--container | Store | Optional name of container to store TEMP_URL_SIGNAL objects in. If not specified a container will be created with a name derived from the DEPLOY_NAME | ||
--timeout | int | 60 | Deployment timeout in minutes | |
--server | Store | yes | ID of the server being deployed to |
Requests observed on the stub, all argv variants [observed]: POST /software_configs; GET /software_configs/{config_id}.
openstack software deployment delete
Delete software deployment(s) and correlative config(s). Class heatclient.osc.v1.software_deployment:DeleteDeployment, defined at heatclient/osc/v1/software_deployment.py:133. Output: none. Unit vectors: 4.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
deployment | Store (+) | yes | ID of the deployment(s) to delete. |
Requests observed on the stub, all argv variants [observed]: GET /software_deployments/{deployment_id}.
openstack software deployment list
List software deployments. Class heatclient.osc.v1.software_deployment:ListDeployment, defined at heatclient/osc/v1/software_deployment.py:182. Output: list. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
--server | Store | ID of the server to fetch deployments for | ||
--long | StoreTrue | List more fields in output |
Requests observed on the stub, all argv variants [observed]: GET /software_deployments.
openstack software deployment metadata show
Get deployment configuration metadata for the specified server. Class heatclient.osc.v1.software_deployment:ShowMetadataDeployment, defined at heatclient/osc/v1/software_deployment.py:269. Output: none. Unit vectors: 1.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
server | Store | yes | ID of the server to fetch deployments for |
Requests observed on the stub, all argv variants [observed]: GET /software_deployments/metadata/{server_id}.
openstack software deployment output show
Show a specific deployment output. Class heatclient.osc.v1.software_deployment:ShowOutputDeployment, defined at heatclient/osc/v1/software_deployment.py:291. Output: none. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
deployment | Store | yes | ID of deployment to show the output for | |
output | Store (?) | Name of an output to display | ||
--all | StoreTrue | Display all deployment outputs | ||
--long | StoreTrue | Show full deployment logs in output |
Requests observed on the stub, all argv variants [observed]: GET /software_deployments/{deployment_id}.
openstack software deployment show
Show SoftwareDeployment Details. Class heatclient.osc.v1.software_deployment:ShowDeployment, defined at heatclient/osc/v1/software_deployment.py:222. Output: single. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
deployment | Store | yes | ID of the deployment | |
--long | StoreTrue | Show more fields in output |
Requests observed on the stub, all argv variants [observed]: GET /software_deployments/{deployment_id}.
openstack stack abandon
Abandon stack and output results. Class heatclient.osc.v1.stack:AbandonStack, defined at heatclient/osc/v1/stack.py:901. Output: single. Unit vectors: 4.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to abandon | |
--output-file | Store | File to output abandon results |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; DELETE /stacks/{stack_name}/{stack_id}/abandon.
openstack stack adopt
Adopt a stack. Class heatclient.osc.v1.stack:AdoptStack, defined at heatclient/osc/v1/stack.py:816. Output: single. Unit vectors: 5.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
name | Store | yes | Name of the stack to adopt | |
-e, --environment | Append | Path to the environment. Can be specified multiple times | ||
--timeout | int | Stack creation timeout in minutes | ||
--enable-rollback | StoreTrue | Enable rollback on create/update failure | ||
--parameter | Append | Parameter values used to create the stack. Can be specified multiple times | ||
--wait | StoreTrue | Wait until stack adopt completes | ||
--adopt-file | Store | yes | Path to adopt stack data file |
Requests observed on the stub, all argv variants [observed]: POST /stacks.
openstack stack cancel
Cancel current task for a stack. Class heatclient.osc.v1.stack:CancelStack, defined at heatclient/osc/v1/stack.py:1270. Output: list. Unit vectors: 8.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store (+) | yes | Stack(s) to cancel (name or ID) | |
--wait | StoreTrue | Wait for cancel to complete | ||
--no-rollback | StoreTrue | Cancel without rollback |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}.
openstack stack check
Check a stack. Class heatclient.osc.v1.stack:CheckStack, defined at heatclient/osc/v1/stack.py:1250. Output: list. Unit vectors: 5.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store (+) | yes | Stack(s) to check update (name or ID) | |
--wait | StoreTrue | Wait for check to complete |
Requests observed on the stub, all argv variants [observed]: POST /stacks/{stack_name_or_id}/actions; POST /stacks/{stack_name}/{stack_id}/actions; GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}.
openstack stack create
Create a stack. Class heatclient.osc.v1.stack:CreateStack, defined at heatclient/osc/v1/stack.py:38. Output: single. Unit vectors: 11.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
name | Store | yes | Name of the stack to create | |
-e, --environment | Append | Path to the environment. Can be specified multiple times | ||
-s, --files-container | Store | Swift files container name. Local files other than root template would be ignored. If other files are not found in swift, heat engine would raise an e | ||
--timeout | int | Stack creating timeout in minutes | ||
--pre-create | Append | Name of a resource to set a pre-create hook to. Resources in nested stacks can be set using slash as a separator: nested_stack/another/my_resource | ||
--enable-rollback | StoreTrue | Enable rollback on create/update failure | ||
--parameter | Append | Parameter values used to create the stack. This can be specified multiple times | ||
--parameter-file | Append | Parameter values from file used to create the stack. This can be specified multiple times. Parameter values would be the content of the file | ||
--wait | StoreTrue | Wait until stack goes to CREATE_COMPLETE or CREATE_FAILED | ||
--poll | int | 5 | Poll interval in seconds for use with --wait, defaults to 5. | |
--tags | Store | A list of tags to associate with the stack | ||
--dry-run | StoreTrue | Do not actually perform the stack create, but show what would be created | ||
-t, --template | Store | yes | Path to the template |
Requests observed on the stub, all argv variants [observed]: POST /stacks; POST /stacks/preview.
openstack stack delete
Delete stack(s). Class heatclient.osc.v1.stack:DeleteStack, defined at heatclient/osc/v1/stack.py:722. Output: none. Unit vectors: 8.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store (+) | yes | Stack(s) to delete (name or ID) | |
-y, --yes | StoreTrue | Skip yes/no prompt (assume yes) | ||
--wait | StoreTrue | Wait for stack delete to complete |
Requests observed on the stub, all argv variants [observed]: DELETE /stacks/{stack_name_or_id}; DELETE /stacks/{stack_name}/{stack_id}.
openstack stack environment show
Show a stack's environment. Class heatclient.osc.v1.stack:EnvironmentShowStack, defined at heatclient/osc/v1/stack.py:595. Output: single. Unit vectors: 4.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to query |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}/environment; GET /stacks/{stack_name}/{stack_id}/environment.
openstack stack event list
List events. Class heatclient.osc.v1.event:ListEvent, defined at heatclient/osc/v1/event.py:85. Output: list. Unit vectors: 9.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to show events for | |
--resource | Store | Name of resource to show events for. Note: this cannot be specified with --nested-depth | ||
--filter | Append | Filter parameters to apply on returned events | ||
--limit | int | Limit the number of events returned | ||
--marker | Store | Only return events that appear after the given ID | ||
--nested-depth | int | Depth of nested stacks from which to display events. Note: this cannot be specified with --resource | ||
--sort | Append | Sort output by selected keys and directions (asc or desc) (default: asc). Specify multiple times to sort on multiple keys. Sort key can be: "event_tim | ||
--follow | StoreTrue | Print events until process is halted |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}/events; GET /stacks/{stack_name}/{stack_id}/events; GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}/resources/{resource_name}/events.
openstack stack event show
Show event details. Class heatclient.osc.v1.event:ShowEvent, defined at heatclient/osc/v1/event.py:29. Output: single. Unit vectors: 12.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to show events for | |
resource | Store | yes | Name of the resource event belongs to | |
event | Store | yes | ID of event to display details for |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}.
openstack stack export
Export stack data json. Class heatclient.osc.v1.stack:ExportStack, defined at heatclient/osc/v1/stack.py:945. Output: single. Unit vectors: 2.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to export | |
--output-file | Store | File to output export data |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}/export.
openstack stack failures list
Show information about failed stack resources. Class heatclient.osc.v1.stack_failures:ListStackFailures, defined at heatclient/osc/v1/stack_failures.py:24. Output: none. Unit vectors: 2.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Stack to display (name or ID) | |
--long | StoreTrue | Show full deployment logs in output |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}.
openstack stack file list
Show a stack's files map. Class heatclient.osc.v1.stack:ListFileStack, defined at heatclient/osc/v1/stack.py:628. Output: single. Unit vectors: 0.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to query |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}/files; GET /stacks/{stack_name}/{stack_id}/files.
openstack stack hook clear
Clear resource hooks on a given stack. Class heatclient.osc.v1.stack:StackHookClear, defined at heatclient/osc/v1/stack.py:1404. Output: none. Unit vectors: 4.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Stack to display (name or ID) | |
hook | Store (+) | yes | Resource names with hooks to clear. Resources in nested stacks can be set using slash as a separator: nested_stack/another/my_resource. You can us | |
--pre-create | StoreTrue | Clear the pre-create hooks | ||
--pre-update | StoreTrue | Clear the pre-update hooks | ||
--pre-delete | StoreTrue | Clear the pre-delete hooks |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}; GET /stacks/{stack_name_or_id}/resources; GET /stacks/{stack_name}/{stack_id}/resources.
openstack stack hook poll
List resources with pending hook for a stack. Class heatclient.osc.v1.stack:StackHookPoll, defined at heatclient/osc/v1/stack.py:1335. Output: list. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Stack to display (name or ID) | |
--nested-depth | Store | Depth of nested stacks from which to display hooks |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}.
openstack stack list
List stacks. Class heatclient.osc.v1.stack:ListStack, defined at heatclient/osc/v1/stack.py:493. Output: list. Unit vectors: 13.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
--deleted | StoreTrue | Include soft-deleted stacks in the stack listing | ||
--nested | StoreTrue | Include nested stacks in the stack listing | ||
--hidden | StoreTrue | Include hidden stacks in the stack listing | ||
--property | Append | Filter properties to apply on returned stacks (repeat to filter on multiple properties) | ||
--project | Store | Filter stacks by project (name or ID) (admin only) | ||
--project-domain | Store | Domain the project belongs to (name or ID). This can be used in case collisions between project names exist. | ||
--tags | Store | List of tags to filter by. Can be combined with --tag-mode to specify how to filter tags | ||
--tag-mode | Store | Method of filtering tags. Must be one of "any", "not", or "not-any". If not specified, multiple tags will be combined with the boolean AND expression | ||
--limit | int | The number of stacks returned | ||
--marker | Store | Only return stacks that appear after the given ID | ||
--sort | Store | Sort output by selected keys and directions (asc or desc) (default: asc). Specify multiple times to sort on multiple properties | ||
--all-projects | StoreTrue | Include all projects (admin only) | ||
--short | StoreTrue | List fewer fields in output | ||
--long | StoreTrue | List additional fields in output, this is implied by --all-projects |
Requests observed on the stub, all argv variants [observed]: GET /stacks; GET /v3/projects/{project}; GET /v3/projects.
openstack stack output list
List stack outputs. Class heatclient.osc.v1.stack:OutputListStack, defined at heatclient/osc/v1/stack.py:1069. Output: list. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to query |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}/outputs; GET /stacks/{stack_name}/{stack_id}.
openstack stack output show
Show stack output. Class heatclient.osc.v1.stack:OutputShowStack, defined at heatclient/osc/v1/stack.py:989. Output: single. Unit vectors: 8.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to query | |
output | Store (?) | Name of an output to display | ||
--all | StoreTrue | Display all stack outputs |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}/outputs/{output_key}; GET /stacks/{stack_name}/{stack_id}.
openstack stack resource list
List stack resources. Class heatclient.osc.v1.resource:ResourceList, defined at heatclient/osc/v1/resource.py:73. Output: list. Unit vectors: 6.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to query | |
--long | StoreTrue | Enable detailed information presented for each resource in resource list | ||
-n, --nested-depth | int | Depth of nested stacks from which to display resources | ||
--filter | Append | Filter parameters to apply on returned resources based on their name, status, type, action, id and physical_resource_id |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}/resources; GET /stacks/{stack_name}/{stack_id}/resources.
openstack stack resource mark unhealthy
Set resource's health. Class heatclient.osc.v1.resource:ResourceMarkUnhealthy, defined at heatclient/osc/v1/resource.py:258. Output: none. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack the resource belongs to | |
resource | Store | yes | Name of the resource | |
reason | Store (?) | Reason for state change | ||
--reset | StoreTrue | Set the resource as healthy |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; PATCH /stacks/{stack_name}/{stack_id}/resources/{resource_name}.
openstack stack resource metadata
Show resource metadata Class heatclient.osc.v1.resource:ResourceMetadata, defined at heatclient/osc/v1/resource.py:150. Output: single. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Stack to display (name or ID) | |
resource | Store | yes | Name of the resource to show the metadata for |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}/resources/{resource_name}/metadata.
openstack stack resource show
Display stack resource. Class heatclient.osc.v1.resource:ResourceShow, defined at heatclient/osc/v1/resource.py:30. Output: single. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to query | |
resource | Store | yes | Name of resource | |
--with-attr | Append | Attribute to show, can be specified multiple times |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}/resources/{resource_name}.
openstack stack resource signal
Signal a resource with optional data. Class heatclient.osc.v1.resource:ResourceSignal, defined at heatclient/osc/v1/resource.py:191. Output: none. Unit vectors: 6.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack the resource belongs to | |
resource | Store | yes | Name of the resoure to signal | |
--data | Store | JSON Data to send to the signal handler | ||
--data-file | Store | File containing JSON data to send to the signal handler |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; POST /stacks/{stack_name}/{stack_id}/resources/{resource_name}/signal.
openstack stack resume
Resume a stack. Class heatclient.osc.v1.stack:ResumeStack, defined at heatclient/osc/v1/stack.py:1230. Output: list. Unit vectors: 5.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store (+) | yes | Stack(s) to resume (name or ID) | |
--wait | StoreTrue | Wait for resume to complete |
Requests observed on the stub, all argv variants [observed]: POST /stacks/{stack_name_or_id}/actions; POST /stacks/{stack_name}/{stack_id}/actions; GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}.
openstack stack show
Show stack details. Class heatclient.osc.v1.stack:ShowStack, defined at heatclient/osc/v1/stack.py:417. Output: single. Unit vectors: 6.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Stack to display (name or ID) | |
--no-resolve-outputs | StoreTrue | Do not resolve outputs of the stack. |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}.
openstack stack snapshot create
Create stack snapshot. Class heatclient.osc.v1.snapshot:CreateSnapshot, defined at heatclient/osc/v1/snapshot.py:145. Output: single. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack | |
--name | Store | Name of snapshot |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; POST /stacks/{stack_name}/{stack_id}/snapshots.
openstack stack snapshot delete
Delete stack snapshot. Class heatclient.osc.v1.snapshot:DeleteSnapshot, defined at heatclient/osc/v1/snapshot.py:187. Output: none. Unit vectors: 4.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack | |
snapshot | Store | yes | ID of stack snapshot | |
-y, --yes | StoreTrue | Skip yes/no prompt (assume yes) |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; DELETE /stacks/{stack_name}/{stack_id}/snapshots/{snapshot_id}.
openstack stack snapshot list
List stack snapshots. Class heatclient.osc.v1.snapshot:ListSnapshot, defined at heatclient/osc/v1/snapshot.py:28. Output: list. Unit vectors: 2.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack containing the snapshots |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}/snapshots.
openstack stack snapshot restore
Restore stack snapshot Class heatclient.osc.v1.snapshot:RestoreSnapshot, defined at heatclient/osc/v1/snapshot.py:109. Output: none. Unit vectors: 2.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack containing the snapshot | |
snapshot | Store | yes | ID of the snapshot to restore |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; POST /stacks/{stack_name}/{stack_id}/snapshots/{snapshot_id}/restore.
openstack stack snapshot show
Show stack snapshot. Class heatclient.osc.v1.snapshot:ShowSnapshot, defined at heatclient/osc/v1/snapshot.py:70. Output: single. Unit vectors: 2.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack containing the snapshot | |
snapshot | Store | yes | ID of the snapshot to show |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}/snapshots/{snapshot_id}.
openstack stack suspend
Suspend a stack. Class heatclient.osc.v1.stack:SuspendStack, defined at heatclient/osc/v1/stack.py:1210. Output: list. Unit vectors: 5.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store (+) | yes | Stack(s) to suspend (name or ID) | |
--wait | StoreTrue | Wait for suspend to complete |
Requests observed on the stub, all argv variants [observed]: POST /stacks/{stack_name_or_id}/actions; POST /stacks/{stack_name}/{stack_id}/actions; GET /stacks/{stack_name_or_id}; GET /stacks/{stack_name}/{stack_id}.
openstack stack template show
Display stack template. Class heatclient.osc.v1.stack:TemplateShowStack, defined at heatclient/osc/v1/stack.py:1106. Output: single. Unit vectors: 3.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to query |
Requests observed on the stub, all argv variants [observed]: GET /stacks/{stack_name_or_id}/template; GET /stacks/{stack_name}/{stack_id}/template.
openstack stack update
Update a stack. Class heatclient.osc.v1.stack:UpdateStack, defined at heatclient/osc/v1/stack.py:216. Output: single. Unit vectors: 16.
| Argument | Type / action | Default | Required | Help |
|---|---|---|---|---|
stack | Store | yes | Name or ID of stack to update | |
-t, --template | Store | Path to the template | ||
-s, --files-container | Store | Swift files container name. Local files other than root template would be ignored. If other files are not found in swift, heat engine would raise an e | ||
-e, --environment | Append | Path to the environment. Can be specified multiple times | ||
--pre-update | Append | Name of a resource to set a pre-update hook to. Resources in nested stacks can be set using slash as a separator: nested_stack/another/my_resource | ||
--timeout | int | Stack update timeout in minutes | ||
--rollback | Store | keep | Set rollback on update failure. Value "enabled" sets rollback to enabled. Value "disabled" sets rollback to disabled. Value "keep" uses the value of e | |
--dry-run | StoreTrue | Do not actually perform the stack update, but show what would be changed | ||
--show-nested | StoreTrue | Show nested stacks when performing --dry-run | ||
--parameter | Append | Parameter values used to create the stack. This can be specified multiple times | ||
--parameter-file | Append | Parameter values from file used to create the stack. This can be specified multiple times. Parameter value would be the content of the file | ||
--existing | StoreTrue | Re-use the template, parameters and environment of the current stack. If the template argument is omitted then the existing template is used. If no -- | ||
--clear-parameter | Append | Remove the parameters from the set of parameters of current stack for the stack-update. The default value in the template will be used. This can be sp | ||
--tags | Store | An updated list of tags to associate with the stack | ||
--wait | StoreTrue | Wait until stack goes to UPDATE_COMPLETE or UPDATE_FAILED | ||
--converge | StoreTrue | Stack update with observe on reality. |
Requests observed on the stub, all argv variants [observed]: PATCH /stacks/{stack_name_or_id}; PATCH /stacks/{stack_name}/{stack_id}; GET /stacks/{stack_name_or_id}; PUT /stacks/{stack_name}/{stack_id}/preview; PATCH /stacks/{stack_name}/{stack_id}/preview; PUT /stacks/{stack_name_or_id}; PUT /stacks/{stack_name}/{stack_id}; GET /stacks/{stack_name}/{stack_id}.
Source: reverse-spec-python-heatclient/01-cli-commands_stable-2026.2.md. The _rewrite/ and _inventory/ files are not published on the site.