CLICommandsl4 commitments

l4 commitments renewal

l4 commitments renewal answers what to buy when a term ends: how many units you hold, how many you actually consumed, how many to buy back, and the moment to buy after.

l4 commitments renewal <id> [flags]

Nothing here purchases anything. It drafts a plan for a person to execute.

Flags

FlagDescription
--format <f>table (default) or csv

Global flags apply. See CLI overview.

An instant, not a date

The plan reports buy after (UTC), an instant rather than a day. A replacement commitment bills from the moment it is bought, so a replacement bought on the right day but before the old term ends is paid for twice for the overlap. The instant is the end of the existing term.

Held against consumed

Units held        Units consumed    Units recommended
40                34                36

Held is what you bought. Consumed is what the usage actually drew. Recommended is what to buy back, which is neither of the first two: renewing what you hold repurchases the unused part for another term, and renewing exactly what you consumed leaves nothing for growth.

Two figures sit below, and they are never added:

Renewal protects       $12400.00/mo
Rightsizing recovers     $620.00/mo

The first is what lapsing would cost you. The second is what buying less would save. One is a loss avoided, the other is a saving, and summing them double-counts the same usage.

Land the pending changes first

Where the API knows of accepted changes that have not yet been applied to the resources this commitment covers, the plan lists them:

Land these before renewing
ID        SERVICE  ACCOUNT  SAVINGS      STATUS
REC-1234  ec2      prod     $210.00/mo   available

Accept one with: l4 rec accept <id>

Capacity a pending change would release is capacity the renewal must not reserve for another term. A change that shrinks a fleet after the renewal is bought has bought a year of the wrong size.

Acting on one is l4 rec accept, which needs a read-write key.

CSV

--format csv emits the same columns the dashboard's own download writes, so a plan exported from either surface lands in the same spreadsheet:

l4 commitments renewal ri-0a1b2c3d --format csv > renewal.csv
commitment_id,service,holder_account_id,buy_after_utc,units_held,units_consumed,units_recommended,protects_monthly,rightsizing_monthly

An absent instant is an empty cell, which is what a spreadsheet reads as no value.

Examples

l4 commitments renewal ri-0a1b2c3d
l4 commitments renewal "arn:aws:savingsplans::111122223333:savingsplan/abc"
l4 commitments renewal ri-0a1b2c3d --format csv
l4 commitments renewal ri-0a1b2c3d --json

A Savings Plan id is an ARN, so quote it.

Providers that cannot be planned

Renewal planning needs a term and an end date. Outside AWS the command names why and exits 0:

Renewal planning is not measured for Google Cloud: the commitment lifecycle export is not enabled.