# openstack budget set

> Change a budget.

The budget is read, changed and written back with the revision it was
read at, so a concurrent change is refused instead of overwritten.

## Usage

```sh
openstack budget set \
    [--name <name>] \
    [--amount <amount>] \
    [--period {daily,monthly,quarterly,yearly,custom}] \
    [--start <time>] \
    [--end <time>] \
    [--currency <currency>] \
    [--enable] \
    [--disable] \
    [--service {compute,volume,image}] ... \
    [--no-service] \
    [--region <region>] ... \
    [--no-region] \
    [--usage-type <usage-type>] ... \
    [--no-usage-type] \
    [--threshold name=<name>,value=<value>[,basis=..][,unit=..][,...]] ... \
    <budget>
```

## Arguments

* `<budget>`

  Name or ID.

* `--name <name>`

  New name.

* `--amount <amount>`

  Amount per window.

* `--period <period>`

  Calendar periods reset in UTC; custom is one fixed window set by --start and --end.

  One of: `daily`, `monthly`, `quarterly`, `yearly`, `custom`.

* `--start <time>`

  Start of a custom period (inclusive).

* `--end <time>`

  End of a custom period (exclusive).

* `--currency <currency>`

  Defaults to, and must be, the currency your costs are reported in.

* `--enable`

* `--disable`

  A disabled budget is not checked and sends no alerts.

* `--service <service>` *(repeatable)*

  Service to count (repeatable; default every one); replaces the current list.

  One of: `compute`, `volume`, `image`.

* `--no-service`

  Count every service again.

* `--region <region>` *(repeatable)*

  Region to count (repeatable; default every one); replaces the current list.

* `--no-region`

  Count every region again.

* `--usage-type <usage-type>` *(repeatable)*

  Usage type to count (repeatable; default every one); replaces the current list.

* `--no-usage-type`

  Count every usage type again.

* `--threshold name=<name>,value=<value>[,basis=..][,unit=..][,...]` *(repeatable)*

  An alert rule (repeat for more, up to 10). Keys: name, value, basis (actual|forecasted, default actual), unit (percentage|absolute, default percentage), comparison (greater_than|greater_than_or_equal|less_than|less_than_or_equal, default greater_than_or_equal), channel (a notification channel name or ID; repeatable), message, enabled (true|false). Replaces all existing thresholds.

## Output

This command also takes the common output options, such as `-f json` and `-c <column>`. See [Set up the CLI](/developer/cli).
