list-billing-transfer-program-management-accounts
dci list-billing-transfer-program-management-accounts [flags]
Lists the caller's program management accounts (PMAs) and the reseller tenants mapped to each one, including AWS Organizations handshake status per account. Distributor-only.
Flags
--max-results: (integer format:int64 default:50)
--page-token: (string)
Output
OK
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[].dpmaId | string | |
items[].accountId | string | 12-digit AWS account ID of the program management account. |
items[].roleArn | string | |
items[].stackName | string | |
items[].region | string | |
items[].iamStatus | string | |
items[].iamDiff | object | Present when iamStatus indicates drift. null when the deployed IAM matches expectations. |
items[].iamDiff.missing | array of string | |
items[].iamDiff.extra | array of string | |
items[].createdAt | string (date-time) | |
items[].lastRefreshTime | string (date-time) | When this account's handshake/tenant state was last refreshed. null if never refreshed. |
items[].tenants | array of object | |
items[].tenants[].customerId | string | |
items[].tenants[].tenantType | string | |
items[].tenants[].parentTenant | string | |
items[].tenants[].displayName | string | |
items[].tenants[].resellerPmaAccountId | string | |
items[].tenants[].handshakeState | string | AWS Organizations Handshake State value, lowercased. One of: "requested", "open", "canceled", "accepted", "declined", "expired". |
items[].tenants[].status | string | |
items[].tenants[].effectiveTime | string (date-time) | When the handshake reached a terminal state. null until then. |
items[].handshakeStatus | object | Per-AWS-Organizations-handshake-state counts across all tenants mapped to a PMA. |
items[].handshakeStatus.total | integer | |
items[].handshakeStatus.requested | integer | |
items[].handshakeStatus.open | integer | |
items[].handshakeStatus.accepted | integer | |
items[].handshakeStatus.declined | integer | |
items[].handshakeStatus.canceled | integer | |
items[].handshakeStatus.expired | integer | |
pageToken | string | Opaque cursor for the next page. Absent when this is the last page. |
rowCount | integer |
Raw JSON schema
{
"type": "object",
"additionalProperties": false,
"required": [
"items",
"rowCount"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"dpmaId",
"accountId",
"roleArn",
"stackName",
"region",
"iamStatus",
"createdAt",
"tenants",
"handshakeStatus"
],
"properties": {
"dpmaId": {
"type": "string"
},
"accountId": {
"type": "string",
"description": "12-digit AWS account ID of the program management account.",
"example": "123456789012"
},
"roleArn": {
"type": "string"
},
"stackName": {
"type": "string"
},
"region": {
"type": "string"
},
"iamStatus": {
"type": "string"
},
"iamDiff": {
"allOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"missing": {
"type": "array",
"items": {
"type": "string"
}
},
"extra": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
],
"nullable": true,
"description": "Present when `iamStatus` indicates drift. `null` when the deployed IAM matches expectations."
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"lastRefreshTime": {
"type": "string",
"format": "date-time",
"nullable": true,
"description": "When this account's handshake/tenant state was last refreshed. `null` if never refreshed."
},
"tenants": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"customerId",
"tenantType",
"parentTenant",
"displayName",
"resellerPmaAccountId",
"handshakeState",
"status"
],
"properties": {
"customerId": {
"type": "string"
},
"tenantType": {
"type": "string"
},
"parentTenant": {
"type": "string"
},
"displayName": {
"type": "string"
},
"resellerPmaAccountId": {
"type": "string",
"example": "123456789012"
},
"handshakeState": {
"type": "string",
"description": "AWS Organizations Handshake `State` value, lowercased.",
"enum": [
"requested",
"open",
"canceled",
"accepted",
"declined",
"expired"
]
},
"status": {
"type": "string"
},
"effectiveTime": {
"type": "string",
"format": "date-time",
"nullable": true,
"description": "When the handshake reached a terminal state. `null` until then."
}
}
}
},
"handshakeStatus": {
"type": "object",
"description": "Per-AWS-Organizations-handshake-state counts across all tenants mapped to a PMA.",
"additionalProperties": false,
"required": [
"total",
"requested",
"open",
"accepted",
"declined",
"canceled",
"expired"
],
"properties": {
"total": {
"type": "integer"
},
"requested": {
"type": "integer"
},
"open": {
"type": "integer"
},
"accepted": {
"type": "integer"
},
"declined": {
"type": "integer"
},
"canceled": {
"type": "integer"
},
"expired": {
"type": "integer"
}
}
}
}
}
},
"pageToken": {
"type": "string",
"description": "Opaque cursor for the next page. Absent when this is the last page."
},
"rowCount": {
"type": "integer"
}
}
}
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. |
| 500 | 40 | API_SERVER_ERROR | The API failed to process the request. Retryable; contact DoiT support if it persists. |
Aliases: listbillingtransferprogrammanagementaccounts