メインコンテンツへスキップ

get-async-operation-results

dci get-async-operation-results <operationId>

Returns the result of a succeeded async report operation, including report metadata (id, reportName, owner, type, createTime, updateTime, urlUI) when the operation was started against a saved report — the same shape as the sync GetReportResponse, instead of requiring a second call to GET /analytics/v1/reports/{id}/config for it. Returns 404 if the operationId does not exist, has expired, or belongs to a different tenant. Returns 425 Too Early if the operation has not yet reached a terminal state — poll the operation status endpoint, which returns its own Retry-After guidance, until it succeeds. Returns 422 if the operation terminated as failed or canceled. The poll status endpoint response does not include result data inline — this is the only endpoint that returns it.

  • operationId — The unique ID of the async operation.

Examples

# Read the result of a succeeded background report run.
dci get-async-operation-results <operation-id>
The report result (`result.rows` zipped with `result.schema`), plus the report's `id`, `reportName`, `owner`, and `urlUI` when the run was started from a saved report. Not finished yet returns HTTP 425; failed or canceled returns HTTP 422.
# The full result as JSON, for scripts.
dci get-async-operation-results <operation-id> --output json
# Rows as named objects, for jq.
dci get-async-operation-results <operation-id> --rows keyed --output json | jq '.result.rows[0]'

Output

OK — the operation succeeded; body is the report result, plus report metadata when the operation was started against a saved report.

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

FieldTypeDescription
idstringThe report's id. Present only when the operation was started against a saved report (run by id); omitted for ad hoc runs against an inline config.
reportNamestringThe report's current name, looked up at read time (not a snapshot from when the operation started). Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
ownerstringEmail address of the report owner, looked up at read time. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
typestringPresent only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config. One of: "custom", "preset".
createTimeinteger (int64)The creation time of the report, in milliseconds since the epoch. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
updateTimeinteger (int64)The time when the report was last updated, in milliseconds since the epoch, looked up at read time. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
urlUIstringThe URL of the report in DoiT console. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config.
resultobject
result.schemaarray of object
result.schema[].idstringStable allocation-group ID used to select the allocation dimension in report configurations. Omitted for other report columns.
result.schema[].namestringColumn name. Matches the corresponding value position in each row.
result.schema[].typestringWire-format type of the column values. Dimension columns use string; metric columns use float (cost, usage, saving, custom, and extended metrics) or integer (count aggregation). Time-series reports include a timestamp column. One of: "string", "float", "integer", "timestamp".
result.schema[].unitstringSemantic unit of the column values. One of: "currency", "number", "percent".
result.schema[].currencystringEffective ISO 4217 currency code when unit is currency.
result.schema[].aggregationstringAuthoritative aggregation applied to this metric column. One of: "total", "percent_total", "percent_col", "percent_row", "total_over_total", "count".
result.mlFeaturesarray of string
result.rowsarray of array of string or number or integer
result.secondaryRowsarray of array of string or number or integerSecondary time range rows.
result.forecastRowsarray of array of string or number or integer
result.cacheHitbooleanIf true, results were fetched from the cache.
result.detailsobjectOptional metadata about the result.
result.details.valueAliasesmap of map of stringDisplay aliases for values that appear in rows, keyed by dimension id and then by the stored value (for example \{"fixed:cloud_provider": \{"datadog_prod": "Datadog (prod)"\}\}). Rows keep the stored values so they can be fed back into filters; apply the alias only when presenting a value. Present only when the customer has renamed a DataHub dataset whose dimension is part of the report.
Raw JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The report's id. Present only when the operation was started against a saved report (run by id); omitted for ad hoc runs against an inline config."
},
"reportName": {
"type": "string",
"description": "The report's current name, looked up at read time (not a snapshot from when the operation started). Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"owner": {
"type": "string",
"description": "Email address of the report owner, looked up at read time. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"type": {
"type": "string",
"enum": [
"custom",
"preset"
],
"description": "Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"createTime": {
"type": "integer",
"format": "int64",
"description": "The creation time of the report, in milliseconds since the epoch. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"updateTime": {
"type": "integer",
"format": "int64",
"description": "The time when the report was last updated, in milliseconds since the epoch, looked up at read time. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"urlUI": {
"type": "string",
"description": "The URL of the report in DoiT console. Present only when the operation was started against a saved report (run by id) and the report still exists; omitted for ad hoc runs against an inline config."
},
"result": {
"type": "object",
"properties": {
"schema": {
"type": "array",
"items": {
"type": "object",
"description": "Schema of a report result column.",
"properties": {
"id": {
"type": "string",
"description": "Stable allocation-group ID used to select the allocation dimension in report configurations. Omitted for other report columns."
},
"name": {
"type": "string",
"description": "Column name. Matches the corresponding value position in each row."
},
"type": {
"type": "string",
"description": "Wire-format type of the column values. Dimension columns use string; metric columns use float (cost, usage, saving, custom, and extended metrics) or integer (count aggregation). Time-series reports include a timestamp column.",
"enum": [
"string",
"float",
"integer",
"timestamp"
]
},
"unit": {
"type": "string",
"description": "Semantic unit of the column values.",
"enum": [
"currency",
"number",
"percent"
]
},
"currency": {
"type": "string",
"description": "Effective ISO 4217 currency code when unit is currency.",
"example": "USD"
},
"aggregation": {
"type": "string",
"description": "Authoritative aggregation applied to this metric column.",
"enum": [
"total",
"percent_total",
"percent_col",
"percent_row",
"total_over_total",
"count"
]
}
}
}
},
"mlFeatures": {
"type": "array",
"items": {
"type": "string",
"enum": [
"increasing",
"decreasing",
"none",
"forecast"
]
}
},
"rows": {
"type": "array",
"items": {
"type": "array",
"items": {
"description": "The content of a single cell from a BigQuery result. Can be a string, number, or null.",
"nullable": true,
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
}
}
},
"secondaryRows": {
"type": "array",
"description": "Secondary time range rows.",
"items": {
"type": "array",
"items": {
"description": "The content of a single cell from a BigQuery result. Can be a string, number, or null.",
"nullable": true,
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
}
}
},
"forecastRows": {
"type": "array",
"items": {
"type": "array",
"items": {
"description": "The content of a single cell from a BigQuery result. Can be a string, number, or null.",
"nullable": true,
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "integer"
}
]
}
}
},
"cacheHit": {
"type": "boolean",
"description": "If true, results were fetched from the cache."
},
"details": {
"type": "object",
"description": "Optional metadata about the result.",
"properties": {
"valueAliases": {
"type": "object",
"description": "Display aliases for values that appear in `rows`, keyed by dimension id and then by the stored value (for example `{\"fixed:cloud_provider\": {\"datadog_prod\": \"Datadog (prod)\"}}`). Rows keep the stored values so they can be fed back into filters; apply the alias only when presenting a value. Present only when the customer has renamed a DataHub dataset whose dimension is part of the report.",
"additionalProperties": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
}
}
}
}

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
400, 42230VALIDATION_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.
4251API_ERRORThe request failed; the printed error message has details.
50040API_SERVER_ERRORThe API failed to process the request. Retryable; contact DoiT support if it persists.

Aliases: getasyncoperationresults