list-aws-reserved-instances
dci list-aws-reserved-instances managementAccountId [flags]
Returns the paginated list of Reserved Instances (RIs) for the specified organization. Filterable by state, instance type/family, region, and offering class.
Flags
--status: (string enum:"active","retired","payment_pending","payment_failed","queued","queued_deleted")
--instance-type: (string)
--instance-family: (string)
--region: (string)
--offering-class: (string enum:"standard","convertible")
--page-token: (string)
--max-results: (integer default:50)
Output
Paginated list of Reserved Instances.
By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.
| Field | Type | Description |
|---|---|---|
items | array of object | |
items[].commitmentId | string | Reserved Instance ID (AWS-assigned). |
items[].reservedInstanceArn | string | Full ARN of the Reserved Instance, when known. |
items[].accountId | string | AWS account ID where the Reserved Instance exists. |
items[].state | string | Reserved Instance state, tracking the AWS EC2 Reserved Instance API verbatim in external snake_case form. Differs from Savings Plan states by design — for example, the terminal state is retired here vs expired on Savings Plans. One of: "active", "retired", "payment_pending", "payment_failed", "queued", "queued_deleted". |
items[].instanceType | string | EC2 instance type on which the RI can be used (e.g. m5.large). |
items[].instanceCount | integer (int64) | |
items[].instanceTenancy | string | Tenancy of the instance (e.g. default, dedicated). |
items[].availabilityZone | string | |
items[].region | string | |
items[].platform | string | |
items[].description | string | Product platform description. |
items[].scope | string | Scope of the Reserved Instance (e.g. Availability Zone, Region). |
items[].offeringClass | string | One of: "standard", "convertible". |
items[].offeringType | string | RI offering type (e.g. All Upfront). |
items[].termDuration | string | Term inferred from the RI duration. Absent when it does not map cleanly to 1yr / 3yr. |
items[].durationSeconds | integer (int64) | RI duration in seconds. |
items[].startTime | string (date-time) | |
items[].endTime | string (date-time) | |
items[].currencyCode | string | ISO 4217 currency code (USD in practice). |
items[].fixedPrice | object | Purchase price of the Reserved Instance. |
items[].fixedPrice.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].fixedPrice.currency | string | ISO 4217 currency code. |
items[].usagePrice | object | Usage price per hour. |
items[].usagePrice.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].usagePrice.currency | string | ISO 4217 currency code. |
items[].hourlyRecurringFee | object | |
items[].hourlyRecurringFee.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].hourlyRecurringFee.currency | string | ISO 4217 currency code. |
items[].upfrontFee | object | |
items[].upfrontFee.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].upfrontFee.currency | string | ISO 4217 currency code. |
items[].totalAssetValue | object | |
items[].totalAssetValue.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].totalAssetValue.currency | string | ISO 4217 currency code. |
items[].averageOnDemandHourlyRate | object | |
items[].averageOnDemandHourlyRate.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].averageOnDemandHourlyRate.currency | string | ISO 4217 currency code. |
items[].amortizedRecurringFee | object | |
items[].amortizedRecurringFee.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].amortizedRecurringFee.currency | string | ISO 4217 currency code. |
items[].amortizedUpfrontFee | object | |
items[].amortizedUpfrontFee.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].amortizedUpfrontFee.currency | string | ISO 4217 currency code. |
items[].totalAmortizedFee | object | |
items[].totalAmortizedFee.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].totalAmortizedFee.currency | string | ISO 4217 currency code. |
items[].netRiSavings | object | |
items[].netRiSavings.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].netRiSavings.currency | string | ISO 4217 currency code. |
items[].realizedSavings | object | |
items[].realizedSavings.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].realizedSavings.currency | string | ISO 4217 currency code. |
items[].unrealizedSavings | object | |
items[].unrealizedSavings.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].unrealizedSavings.currency | string | ISO 4217 currency code. |
items[].totalPotentialRiSavings | object | |
items[].totalPotentialRiSavings.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].totalPotentialRiSavings.currency | string | ISO 4217 currency code. |
items[].onDemandCostOfRiHoursUsed | object | |
items[].onDemandCostOfRiHoursUsed.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].onDemandCostOfRiHoursUsed.currency | string | ISO 4217 currency code. |
items[].riCostForUnusedHours | object | |
items[].riCostForUnusedHours.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].riCostForUnusedHours.currency | string | ISO 4217 currency code. |
items[].purchasedHours | integer (int64) | |
items[].purchasedUnits | integer (int64) | |
items[].totalActualHours | integer (int64) | |
items[].totalNormalizedUnits | integer (int64) | |
items[].unusedHours | integer (int64) | |
items[].unusedNormalizedUnits | integer (int64) | |
items[].utilizationPercentage | number (double) | Cost-explorer reported utilization percentage (0–1). |
items[].utilizationPercentageInUnits | number (double) | |
items[].mtdSavings | object | Month-to-date realized savings. |
items[].mtdSavings.amount | string | Decimal monetary amount at ISO 4217 minor-unit precision (string). |
items[].mtdSavings.currency | string | ISO 4217 currency code. |
items[].mtdUtilization | number (double) | Month-to-date utilization (0–1). Null when not yet available. A stored 0% is indistinguishable from unavailable and is returned as null. |
items[].updatedAt | string (date-time) | Timestamp of the last successful inventory sync for this Reserved Instance. |
items[].recurringCharges | array of object | |
items[].recurringCharges[].amount | number (double) | The amount of the recurring charge. |
items[].recurringCharges[].frequency | string | The frequency of the recurring charge (e.g. Hourly). |
pageToken | string | |
rowCount | integer (int64) | Best-effort count for the filtered result set. May be null or omitted for expensive counts. |
Raw JSON schema
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"commitmentId",
"accountId",
"state",
"instanceType",
"mtdSavings"
],
"description": "Reserved Instance item in the external inventory response. Money fields are wrapped `{amount, currency}` objects.",
"properties": {
"commitmentId": {
"type": "string",
"description": "Reserved Instance ID (AWS-assigned)."
},
"reservedInstanceArn": {
"type": "string",
"description": "Full ARN of the Reserved Instance, when known.",
"nullable": true
},
"accountId": {
"type": "string",
"description": "AWS account ID where the Reserved Instance exists."
},
"state": {
"type": "string",
"description": "Reserved Instance state, tracking the AWS EC2 Reserved Instance API verbatim in\nexternal snake_case form. Differs from Savings Plan states by design — for example,\nthe terminal state is `retired` here vs `expired` on Savings Plans.\n",
"enum": [
"active",
"retired",
"payment_pending",
"payment_failed",
"queued",
"queued_deleted"
]
},
"instanceType": {
"type": "string",
"description": "EC2 instance type on which the RI can be used (e.g. `m5.large`)."
},
"instanceCount": {
"type": "integer",
"format": "int64",
"nullable": true
},
"instanceTenancy": {
"type": "string",
"description": "Tenancy of the instance (e.g. `default`, `dedicated`)."
},
"availabilityZone": {
"type": "string",
"nullable": true
},
"region": {
"type": "string",
"nullable": true
},
"platform": {
"type": "string",
"nullable": true
},
"description": {
"type": "string",
"description": "Product platform description."
},
"scope": {
"type": "string",
"description": "Scope of the Reserved Instance (e.g. `Availability Zone`, `Region`)."
},
"offeringClass": {
"type": "string",
"enum": [
"standard",
"convertible"
]
},
"offeringType": {
"type": "string",
"description": "RI offering type (e.g. `All Upfront`)."
},
"termDuration": {
"allOf": [
{
"type": "string",
"enum": [
"one_year",
"three_year"
],
"description": "Commitment term length."
}
],
"description": "Term inferred from the RI duration. Absent when it does not map cleanly to 1yr / 3yr."
},
"durationSeconds": {
"type": "integer",
"format": "int64",
"description": "RI duration in seconds.",
"nullable": true
},
"startTime": {
"type": "string",
"format": "date-time",
"nullable": true
},
"endTime": {
"type": "string",
"format": "date-time",
"nullable": true
},
"currencyCode": {
"type": "string",
"description": "ISO 4217 currency code (USD in practice)."
},
"fixedPrice": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
],
"description": "Purchase price of the Reserved Instance."
},
"usagePrice": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
],
"description": "Usage price per hour."
},
"hourlyRecurringFee": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"upfrontFee": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"totalAssetValue": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"averageOnDemandHourlyRate": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"amortizedRecurringFee": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"amortizedUpfrontFee": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"totalAmortizedFee": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"netRiSavings": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"realizedSavings": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"unrealizedSavings": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"totalPotentialRiSavings": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"onDemandCostOfRiHoursUsed": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"riCostForUnusedHours": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
]
},
"purchasedHours": {
"type": "integer",
"format": "int64",
"nullable": true
},
"purchasedUnits": {
"type": "integer",
"format": "int64",
"nullable": true
},
"totalActualHours": {
"type": "integer",
"format": "int64",
"nullable": true
},
"totalNormalizedUnits": {
"type": "integer",
"format": "int64",
"nullable": true
},
"unusedHours": {
"type": "integer",
"format": "int64",
"nullable": true
},
"unusedNormalizedUnits": {
"type": "integer",
"format": "int64",
"nullable": true
},
"utilizationPercentage": {
"type": "number",
"format": "double",
"description": "Cost-explorer reported utilization percentage (0–1).",
"nullable": true
},
"utilizationPercentageInUnits": {
"type": "number",
"format": "double",
"nullable": true
},
"mtdSavings": {
"allOf": [
{
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^-?(0|[1-9]\\d*)(\\.\\d+)?$",
"description": "Decimal monetary amount at ISO 4217 minor-unit precision (string)."
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code.",
"example": "USD"
}
}
}
],
"description": "Month-to-date realized savings."
},
"mtdUtilization": {
"type": "number",
"format": "double",
"description": "Month-to-date utilization (0–1). Null when not yet available. A stored 0% is\nindistinguishable from unavailable and is returned as null.\n",
"nullable": true
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of the last successful inventory sync for this Reserved Instance.",
"nullable": true
},
"recurringCharges": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount",
"frequency"
],
"properties": {
"amount": {
"type": "number",
"format": "double",
"description": "The amount of the recurring charge."
},
"frequency": {
"type": "string",
"description": "The frequency of the recurring charge (e.g. `Hourly`)."
}
}
}
}
}
}
},
"pageToken": {
"type": "string",
"nullable": true
},
"rowCount": {
"type": "integer",
"format": "int64",
"description": "Best-effort count for the filtered result set. May be null or omitted for expensive counts.",
"nullable": true
}
}
}
Errors
On failure, dci prints a single error message — with a hint when one is available — and exits with a typed code your scripts can branch on. See Errors and exit codes for the full contract.
| HTTP status | Exit code | Error code | Meaning |
|---|---|---|---|
| 400 | 30 | VALIDATION_ERROR | The arguments or request body were rejected. Review the command's flags and payload. |
| 401 | 10 | AUTHENTICATION_FAILED | Not signed in, or the API token is invalid. Run dci login or check DCI_API_KEY. |
| 403 | 11 | PERMISSION_DENIED | The DoiT user or the active customer context does not have access. |
| 404 | 20 | RESOURCE_NOT_FOUND | The requested resource does not exist. Check the identifier argument. |
| 500, 503 | 40 | API_SERVER_ERROR | The API failed to process the request. Retryable; contact DoiT support if it persists. |
Aliases: listawsreservedinstances