Skip to main content

list-commitments

dci list-commitments [flags]

Returns a list of commitments for the customer. Commitments are listed in reverse chronological order by default.

CLI default view

dci list-commitments presents a curated table by default:

  • Columns: name, provider (from cloudProvider), commitment, attainment, and forecast (from totalCommitmentValue, totalCurrentAttainment, and totalForecastValue, all with the commitment's currency symbol), plus start and end dates.
  • --output json and explicit -C/--fields selections return the raw fields documented below.

Flags

--sort-by: (string enum:"name","startDate","endDate","provider","createTime","updateTime")

--sort-order: (string enum:"asc","desc")

--max-results: (integer format:int64 default:50)

--page-token: (string)

--filter: (string)

Output

OK - The request succeeded.

By default dci renders the result as a table. Use --output json to get the full structure described below — see Output formats.

FieldTypeDescription
pageTokenstringPage token. It is used to request a specific page of the list results.
rowCountinteger (int64)The number of returned records.
commitmentsarray of objectArray of commitments.
commitments[].idstringThe unique identifier of the commitment.
commitments[].namestringThe name of the commitment.
commitments[].startDatestring (date-time)The start date of the commitment.
commitments[].endDatestring (date-time)The end date of the commitment.
commitments[].currencystringThe currency of the commitment.
commitments[].cloudProviderstringThe cloud provider associated with the commitment. One of: "google-cloud", "amazon-web-services", "microsoft-azure".
commitments[].totalCommitmentValuenumber (double)The total value of the commitment across all periods.
commitments[].totalCurrentAttainmentnumber (double)The total current spend attainment across all periods.
commitments[].totalMarketplaceSpendnumber (double)The total marketplace spend across all periods.
commitments[].totalForecastValuenumber (double)The total projected spend at the end of the commitment, summed across all periods. 0 when insufficient history is available to compute a forecast.
commitments[].periodsarray of objectThe list of commitment periods.
commitments[].periods[].startDatestring (date-time)The start date of the period.
commitments[].periods[].endDatestring (date-time)The end date of the period.
commitments[].periods[].commitmentValuenumber (double)The commitment value for this period.
commitments[].periods[].marketplaceLimitPercentagenumber (double)The marketplace limit as a percentage (0-100).
commitments[].periods[].marketplaceSpendnumber (double)The marketplace spend within this period.
commitments[].periods[].marketplaceLimitAmountnumber (double)The marketplace limit in absolute currency for this period, derived as commitmentValue * marketplaceLimitPercentage / 100.
commitments[].periods[].forecastValuenumber (double)The projected spend at the end of this period, based on a linear regression over the period's total spend series. 0 when insufficient history is available to compute a forecast.
commitments[].createTimeinteger (int64)The creation time in milliseconds since epoch.
commitments[].updateTimeinteger (int64)The last update time in milliseconds since epoch.
Raw JSON schema
{
"type": "object",
"description": "List of commitments.",
"properties": {
"pageToken": {
"type": "string",
"description": "Page token. It is used to request a specific page of the list results.",
"example": "bDl0QkEwVFZxUEwxaUJRaHhTcXM"
},
"rowCount": {
"type": "integer",
"description": "The number of returned records.",
"format": "int64",
"example": 1
},
"commitments": {
"type": "array",
"description": "Array of commitments.",
"items": {
"type": "object",
"description": "Summary information of a commitment in a list.",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier of the commitment."
},
"name": {
"type": "string",
"description": "The name of the commitment."
},
"startDate": {
"type": "string",
"format": "date-time",
"example": "2024-03-10T23:00:00Z",
"description": "The start date of the commitment."
},
"endDate": {
"type": "string",
"format": "date-time",
"example": "2024-03-10T23:00:00Z",
"description": "The end date of the commitment."
},
"currency": {
"type": "string",
"description": "The currency of the commitment.",
"example": "USD"
},
"cloudProvider": {
"type": "string",
"description": "The cloud provider associated with the commitment.",
"enum": [
"google-cloud",
"amazon-web-services",
"microsoft-azure"
]
},
"totalCommitmentValue": {
"type": "number",
"format": "double",
"description": "The total value of the commitment across all periods."
},
"totalCurrentAttainment": {
"type": "number",
"format": "double",
"description": "The total current spend attainment across all periods."
},
"totalMarketplaceSpend": {
"type": "number",
"format": "double",
"description": "The total marketplace spend across all periods."
},
"totalForecastValue": {
"type": "number",
"format": "double",
"description": "The total projected spend at the end of the commitment, summed across all periods. 0 when insufficient history is available to compute a forecast."
},
"periods": {
"type": "array",
"description": "The list of commitment periods.",
"items": {
"type": "object",
"description": "A single period within a commitment.",
"properties": {
"startDate": {
"type": "string",
"format": "date-time",
"example": "2024-03-10T23:00:00Z",
"description": "The start date of the period."
},
"endDate": {
"type": "string",
"format": "date-time",
"example": "2024-03-10T23:00:00Z",
"description": "The end date of the period."
},
"commitmentValue": {
"type": "number",
"format": "double",
"description": "The commitment value for this period."
},
"marketplaceLimitPercentage": {
"type": "number",
"format": "double",
"description": "The marketplace limit as a percentage (0-100)."
},
"marketplaceSpend": {
"type": "number",
"format": "double",
"description": "The marketplace spend within this period."
},
"marketplaceLimitAmount": {
"type": "number",
"format": "double",
"description": "The marketplace limit in absolute currency for this period, derived as commitmentValue * marketplaceLimitPercentage / 100."
},
"forecastValue": {
"type": "number",
"format": "double",
"description": "The projected spend at the end of this period, based on a linear regression over the period's total spend series. 0 when insufficient history is available to compute a forecast."
}
}
}
},
"createTime": {
"type": "integer",
"format": "int64",
"description": "The creation time in milliseconds since epoch."
},
"updateTime": {
"type": "integer",
"format": "int64",
"description": "The last update time in milliseconds since epoch."
}
}
}
}
}
}

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 statusExit codeError codeMeaning
40030VALIDATION_ERRORThe arguments or request body were rejected. Review the command's flags and payload.
40110AUTHENTICATION_FAILEDNot signed in, or the API token is invalid. Run dci login or check DCI_API_KEY.
40311PERMISSION_DENIEDThe DoiT user or the active customer context does not have access.
50040API_SERVER_ERRORThe API failed to process the request. Retryable; contact DoiT support if it persists.

Aliases: listcommitments