Install
openclaw skills install @huaweicloudskill/huawei-cloud-cost-estimationGenerates Huawei Cloud pre-order estimates, provisions allowlisted resources through hcloud, and routes unsubscribe requests to console guidance. Use for Huawei Cloud pricing, budgets, creation, provisioning, or unsubscribe. Creates require runtime help, --dryrun, fee review, and confirmation. Never emits or runs unsubscribe operations, accepts credentials, or performs non-allowlisted writes. Triggers include: "华为云报价", "报价", "价格估算", "费用预估", "比价", "询价", "开通报价", "创建报价", "华为云价格", "价格查询", "预算评估", "费用计算", "price estimate", "cost estimation", "budget", "quote", "pricing", "provision", "create", "purchase", "价格", "费用", "华为云多少钱".
openclaw skills install @huaweicloudskill/huawei-cloud-cost-estimationPrices come only from the current response: never guess, analogize, or recall them. Provisioning is the only permitted write path; unsubscribe is console guidance only.
Estimates Huawei Cloud pre-order costs and, when the user wants to buy or create, provisions
resources through an allowlisted hcloud command set, then routes unsubscribe requests to console
guidance. Use when the user asks about Huawei Cloud / 华为云 / hcloud pricing, budgets, creation or
provisioning in Chinese or English: 报价, 询价, 价格估算, 费用预估, 比价, 开通, 创建, price estimate,
budget, quote, pricing, provision, create, purchase. Answer: how much a resource will cost, which
spec/billing-mode combination fits, whether a resource can be provisioned, and how to unsubscribe —
never by guessing prices, inventing parameters, or running non-allowlisted writes.
hcloud BSS
read-only APIs in the fixed region cn-north-1.references/lifecycle/commands.md
and only after --help, fee review, --dryrun, and explicit confirmation.Prerequisite check: Huawei Cloud CLI (hcloud) >= 7.2.2 and an authenticated profile with BSS read-only + lifecycle dependency IAM permissions (see
references/iam-policies.md).hcloud BSSalways uses the fixed region--cli-region=cn-north-1; the resource deploy region is carried inside each quote line'sregionfield.
hcloud version
hcloud configure list
hcloud BSS ListServiceTypes --cli-region=cn-north-1 --cli-output=json --limit=1
If not installed or authenticated, point the user to references/cli-installation-guide.md. Do NOT configure credentials on the user's behalf and do NOT accept AK/SK/token pasted in chat.
Environment dependency (BSS pricing chain): the price-inquiry chain (
ListServiceTypes,ListServiceResources,ListResourceSpecs,ListUsageTypes,ListMeasureUnits,ListRateOnPeriodDetail,ListOnDemandResourceRatings) runs against the authenticated account's BSS (Business Support System) APIs. In sandboxed or restricted environments where BSS access is not provisioned (no service metadata, no executor mapping), the pricing chain cannot be verified end-to-end. In that case state clearly that prices cannot be queried in the current environment, then stop — never guess, estimate from memory, or fabricate amounts.
| Request | Handling |
|---|---|
| Quote, budget, or comparison | Pricing (4-step RFQ) |
| Provision, purchase, or create | Lifecycle Create, limited to references/lifecycle/commands.md |
| Unsubscribe or stop using | console-only Unsubscribe Guidance |
| Request | Routing |
|---|---|
| Historical bills, balance, or reconciliation | 费用中心 or read-only BSS billing APIs (do not use this skill) |
| Non-Huawei cloud pricing | refuse politely |
| Non-allowlisted writes | console guidance; never run them |
| AK/SK/token in chat | point to references/cli-installation-guide.md |
| Remembering or guessing prices | prices only from the current hcloud response |
Complete chains of at most three hcloud commands directly to the next safety gate. For longer
chains, run only two or three commands per round, report progress and the next step, then ask
whether to continue. A user may request uninterrupted execution, but clarification, unknown-cost
approval, --dryrun, and write confirmation remain mandatory.
cloud_service_type / resource_type / region / resource_spec plus period or usage;
route through references/pricing/semantic/catalog.yml.fee_installment_mode=NA.references/pricing/commands.md: ListServiceResources → ListResourceSpecs →
on-demand ListUsageTypes(--resource_type_code) → measure resolution → quotation. Ask on
multiple matches; a spec match may still fail. Never invent duration or mix capacity and usage
slots.[service] [spec] [region] [quantity × period] = amount, total, and “not a final bill.”
Show discounts only when returned.Read references/lifecycle/concepts.md, then perform every gate in order:
references/lifecycle/commands.md; refuse misses.hcloud <Service> <Operation> --help for required and conditional fields. Stop on
[APIE_ERROR] or missing schema; never guess.--dryrun to the complete command. Fix and rerun failures; never promote a
failed dry run.--dryrun. Run multiple commands in order, stop on failure, never
auto-rollback, and report succeeded, failed, and unexecuted items.Any parameter, region, quantity, or operation change invalidates the dry run and confirmation and returns to Help.
Never run or generate unsubscribe CLI/API operations, and never use --dryrun as a substitute for
console preview.
If automation is requested, preserve this boundary and provide the official unsubscribe rules.
All
hcloud BSScommands use--cli-region=cn-north-1. Arrays use dot notation (--product_infos.N.*); output with--cli-output=json. Full contracts and exact templates live inreferences/pricing/commands.mdandreferences/lifecycle/commands.md.
hcloud IAM KeystoneListAuthProjects --cli-region={region} --cli-output=json
hcloud IAM KeystoneListProjects --domain_id={domain_id} --cli-region={region} --cli-output=json
hcloud BSS ListServiceTypes --cli-region=cn-north-1 --cli-output=json --limit=10 --offset=0
hcloud BSS ListServiceResources --service_type_code={cloud_service_type} --cli-region=cn-north-1 --cli-output=json --limit=10 --offset=0
hcloud BSS ListResourceSpecs --charge_mode=1 --cloud_service_type={cst} --resource_type={rt} --region_code={region} --filters.1.key=RESOURCE_SPEC --filters.1.value={spec_hint} --limit=100 --cli-region=cn-north-1 --cli-output=json
hcloud BSS ListUsageTypes --resource_type_code={rt} --cli-region=cn-north-1 --cli-output=json --limit=100 --offset=0
hcloud BSS ListMeasureUnits --cli-region=cn-north-1 --cli-output=json
hcloud BSS ListRateOnPeriodDetail \
--project_id={project_id} \
--product_infos.1.id=1 \
--product_infos.1.cloud_service_type={cst} \
--product_infos.1.resource_type={rt} \
--product_infos.1.resource_spec={spec} \
--product_infos.1.region={deploy_region} \
--product_infos.1.period_type={0|2|3|4} --product_infos.1.period_num={n} --product_infos.1.subscription_num={qty} \
--cli-region=cn-north-1 --cli-output=json
Linear products (volume / bandwidth / share_bandwidth) additionally require
--product_infos.N.resource_size={size} --product_infos.N.size_measure_id={17|15}.
hcloud BSS ListOnDemandResourceRatings \
--project_id={project_id} \
--product_infos.1.id=1 \
--product_infos.1.cloud_service_type={cst} \
--product_infos.1.resource_type={rt} \
--product_infos.1.resource_spec={spec} \
--product_infos.1.region={deploy_region} \
--product_infos.1.usage_factor={factor} --product_infos.1.usage_value={value} --product_infos.1.usage_measure_id={mid} \
--product_infos.1.subscription_num={qty} \
--cli-region=cn-north-1 --cli-output=json
The 74 allowlisted operations (e.g. ECS/CreateServers, DDS/CreateInstance, RDS/CreateInstance)
are enumerated in references/lifecycle/commands.md. Parameters always come from the current
--help, never from memory. Minimal executable example (VPC is allowlisted, VPC/CreateVpc is a
readily dry-runnable create):
hcloud VPC CreateVpc --help
hcloud VPC CreateVpc --vpc.name={name} --vpc.cidr=172.16.0.0/16 --cli-region={region} --dryrun
Every other allowlisted operation follows the same shape: run --help first, then build the full
command from the help output, add --dryrun, and only remove --dryrun after the dry-run gate and
explicit confirmation. Pass the --dryrun gate and explicit confirmation before executing without
--dryrun; one failure stops the batch, no auto-rollback.
Run only the dependencies the help output marks required (references/lifecycle/commands.md):
hcloud EPS ListEnterpriseProject --cli-region=cn-north-4 --cli-output=json
hcloud VPC ListVpcs --cli-region={region} --cli-output=json
hcloud VPC ListSubnets --cli-region={region} --cli-output=json
hcloud ECS NovaListAvailabilityZones --cli-region={region} --cli-output=json
hcloud IMS ListImages --cli-region={region} --cli-output=json
hcloud EVS CinderListVolumeTypes --cli-region={region} --cli-output=json
hcloud ECS NovaListKeypairs --cli-region={region} --cli-output=json
hcloud ECS NovaListFlavors --cli-region={region} --cli-output=json
EPS region note: EPS does not support
cn-north-1. Query enterprise projects with--cli-region=cn-north-4(or another EPS-enabled region such asru-moscow-1/my-kualalumpur-1); the returnedenterprise_project_idis region-independent for lifecycle create parameters. The BSS fixed regioncn-north-1applies to price inquiry only, never to EPS.
| Parameter | Required | Description | Example |
|---|---|---|---|
--cli-region | Yes (auto) | fixed cn-north-1 for all BSS commands | --cli-region=cn-north-1 |
--project_id | Yes | resolved via KeystoneListAuthProjects | --project_id=xxx |
--product_infos.N.cloud_service_type | Yes | raw code from ListServiceTypes | hws.service.type.ec2 |
--product_infos.N.resource_type | Yes | raw code from ListServiceResources | hws.resource.type.vm |
--product_infos.N.resource_spec | Yes | raw code from ListResourceSpecs (never fabricate) | c6.2xlarge.2.linux |
--product_infos.N.region | Yes | actual deploy region of the resource | cn-north-4 |
--product_infos.N.subscription_num | Yes | quantity, 1..10000 | 1 |
--product_infos.N.period_type | Conditional | period quote only: 0 day / 2 month / 3 year / 4 hour | 2 |
--product_infos.N.period_num | Conditional | period quote only: number of periods | 1 |
--product_infos.N.usage_factor | Conditional | on-demand only: raw code from ListUsageTypes | Duration |
--product_infos.N.usage_value | Conditional | on-demand only: scalar per Measure Resolve rules | 2 |
--product_infos.N.usage_measure_id | Conditional | on-demand only: usage slot from ListMeasureUnits (≠ size_measure_id) | 4 |
--product_infos.N.resource_size | Conditional | linear products only (volume / bandwidth / share_bandwidth) | 40 |
--product_infos.N.size_measure_id | Conditional | 17 GB (volume), 15 Mbps (bandwidth / share_bandwidth) | 17 |
--dryrun | Yes (lifecycle) | global dry-run gate before any create; never --dry-run | --dryrun |
Missing region, quantity, duration/usage, or linear size is clarified in one question with two to four candidates before any command runs.
Never run or generate unsubscribe CLI/API operations; --dryrun previews request construction only
and never replaces the console. Subscription resources go through Console → Cost Center → Orders →
Unsubscriptions after data backup and account/resource/refund verification; pay-per-use resources
are deleted by the user in the service console after backup.
--dryrun and explicit confirmation.references/cli-installation-guide.md for
self-configuration.--cli-region=cn-north-1; product_infos.N.region remains the deployment
region.Use bullets or numbered items, not GFM tables, in user-facing responses. For command-level traps,
read references/pricing/commands.md.
Every command follows the generic KooCLI shape:
hcloud <Service> <Operation> --cli-region=<region> [--key=value ...].
| Feature | Description | Example |
|---|---|---|
| Service name | Exact KooCLI Service name beginning with uppercase/title case | BSS, IAM, ECS, VPC, DDS |
| Operation name | PascalCase | ListRateOnPeriodDetail, CreateServers |
| Region parameter | --cli-region=<value> | --cli-region=cn-north-1 |
| Simple parameter | --key=value | --project_id=xxx |
| Indexed parameter | --key.N=value dot notation | --product_infos.1.id=1 |
| Global dry-run | --dryrun (not --dry-run) | --dryrun |
Placeholder tokens above (e.g. <Service>) are illustrative only — never run them literally.
| Document | Content |
|---|---|
| references/lifecycle/concepts.md | Lifecycle execution concepts: allowlist, help, lookup, dry-run, fee status, batch invariants, unsubscribe console path |
| references/lifecycle/commands.md | The 74 allowlisted create operations and dependency lookup commands |
| references/pricing/commands.md | Pricing command contracts, response fields, universal traps, Measure Resolve table |
| references/pricing/semantic/catalog.yml | Routing catalog: period / on-demand / dimension_lookup |
| references/pricing/semantic/rfq-ondemand-model.yml | On-demand quote fact/line model |
| references/pricing/semantic/rfq-period-model.yml | Period quote fact/line model |
| references/pricing/semantic/rfq-shared-dimensions.yml | Shared conformed dimensions |
| references/iam-policies.md | Least-privilege IAM policies |
| references/cli-installation-guide.md | KooCLI install and auth guide (only to relay to user) |
For 403 or permission failures, read references/iam-policies.md. If hcloud is unavailable, relay
references/cli-installation-guide.md; never install it for the user.