Skip to main content

list-attribute-attribution-set-versions

dci list-attribute-attribution-set-versions <attributionSetId> [flags]

Returns the saved rule versions of one attribution, newest first, one page at a time. Drafts are included; discarded versions are not. Use it to see how an attribution's rules changed over time.

Paging: send limit; when the response has nextCursor, send it back as after for the next page. No nextCursor means the last page.

Authenticate with Authorization: Bearer &lt;token&gt;. Omit X-Tenant-Id when the credential resolves to one customer. When the credential can act on several customers, send X-Tenant-Id: &lt;tenant-id&gt; to select one.

  • attributionSetId — The attributionSetId of an attribution from listAttributeAttributionSets.

Flags​

FlagTypeDefaultExampleDescription
--limitinteger100Items per page, from 1 to 200. Defaults to 100.
--afterstringThe nextCursor of the previous page. Omit it for the first page.

Every command also accepts the CLI-wide flags for output shaping — see Output formats and Table output options.

Output​

OK - One page of rule versions.

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

FieldTypeDescription
versionsarray of objectNewest first.
versions[].ruleIdstring
versions[].versioninteger
versions[].createdAtstring (date-time)When the version was saved.
versions[].ruleobjectOne rule version of an attribution: how its cost is split into values. Older versions can miss fields; only attributionSetId is always present.
versions[].rule.attributionSetIdstring
versions[].rule.statestringOne of: "ui-draft", "etl-ready", "deleted", "discarded".
versions[].rule.dateRangeobjectThe days the rules apply to, as a half-open range [startDate, endDate).
versions[].rule.dateRange.startDatestring (date)
versions[].rule.dateRange.endDatestring (date)Exclusive. Null or absent means open-ended.
versions[].rule.scopearray of objectFilters that limit the cost the attribution works on; all must match.
versions[].rule.billingFiltersByBucketarray of objectThe rules per bucket (a service, usage account or provider): billing conditions, sensor conditions and what happens to the remaining cost.
nextCursorstringSend as after to get the next page. Absent on the last page.
Raw JSON schema
{
"type": "object",
"required": [
"versions"
],
"properties": {
"versions": {
"type": "array",
"description": "Newest first.",
"items": {
"type": "object",
"required": [
"ruleId",
"rule"
],
"properties": {
"ruleId": {
"type": "string"
},
"version": {
"type": "integer",
"minimum": 1
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "When the version was saved."
},
"rule": {
"type": "object",
"description": "One rule version of an attribution: how its cost is split into values. Older versions can\nmiss fields; only `attributionSetId` is always present.",
"required": [
"attributionSetId"
],
"properties": {
"attributionSetId": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"ui-draft",
"etl-ready",
"deleted",
"discarded"
],
"x-enumDescriptions": {
"ui-draft": "A draft that is not applied to cost.",
"etl-ready": "Published; applied to cost.",
"deleted": "The attribution was deleted.",
"discarded": "A discarded draft."
}
},
"dateRange": {
"type": "object",
"description": "The days the rules apply to, as a half-open range [startDate, endDate).",
"required": [
"startDate"
],
"properties": {
"startDate": {
"type": "string",
"format": "date"
},
"endDate": {
"type": "string",
"format": "date",
"nullable": true,
"description": "Exclusive. Null or absent means open-ended."
}
}
},
"scope": {
"type": "array",
"description": "Filters that limit the cost the attribution works on; all must match.",
"items": {
"type": "object",
"additionalProperties": true
}
},
"billingFiltersByBucket": {
"type": "array",
"description": "The rules per bucket (a service, usage account or provider): billing conditions, sensor\nconditions and what happens to the remaining cost.",
"items": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
}
},
"nextCursor": {
"type": "string",
"description": "Send as `after` to get the next page. Absent on the last page."
}
}
}

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 to exit code mapping
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.
40420RESOURCE_NOT_FOUNDThe requested resource does not exist. Check the identifier argument.
40921RESOURCE_CONFLICTThe operation conflicts with the resource's current state.
500, 502, 50340API_SERVER_ERRORThe API failed to process the request. Retryable; contact DoiT support if it persists.

Aliases: listattributeattributionsetversions