list-aws-recommendations
dci list-aws-recommendations payerAccountId
Returns commitment purchase recommendations for the MPA. Multiple recommendations may exist per MPA (one per service).
Responses
200 (application/json)
List of recommendations.
{
"type": "object",
"description": "Recommended commitments for onboarded services",
"properties": {
"compute": {
"allOf": [
{
"type": "object",
"description": "Recommended commitments",
"properties": {
"policy": {
"type": "string",
"description": "Actual configured policy"
},
"currentCommitment": {
"type": "number",
"format": "double",
"description": "Active commitments currently applied to this account, measured in hourly spend."
},
"recommendedCommitment": {
"type": "number",
"format": "double",
"description": "Recommended hourly commitment level based on usage patterns and your commitment policy, designed to increase savings while managing underutilization risk."
},
"potentialAdditionalSavings": {
"type": "number",
"format": "double",
"description": "Estimated additional monthly savings from applying the recommended commitment policy."
},
"estimatedAverageCoverage": {
"type": "number",
"format": "double",
"description": "Estimated average coverage."
},
"estimatedEquivalentRecommendedCommitment": {
"type": "number",
"format": "double",
"description": "Estimated shelf-price hourly equivalent of the recommended commitment, derived from the median hourly eligible usage over the last 60 days multiplied by the estimated average coverage."
}
}
}
],
"description": "Recommended commitments for compute"
},
"database": {
"allOf": [
{
"type": "object",
"description": "Recommended commitments",
"properties": {
"policy": {
"type": "string",
"description": "Actual configured policy"
},
"currentCommitment": {
"type": "number",
"format": "double",
"description": "Active commitments currently applied to this account, measured in hourly spend."
},
"recommendedCommitment": {
"type": "number",
"format": "double",
"description": "Recommended hourly commitment level based on usage patterns and your commitment policy, designed to increase savings while managing underutilization risk."
},
"potentialAdditionalSavings": {
"type": "number",
"format": "double",
"description": "Estimated additional monthly savings from applying the recommended commitment policy."
},
"estimatedAverageCoverage": {
"type": "number",
"format": "double",
"description": "Estimated average coverage."
},
"estimatedEquivalentRecommendedCommitment": {
"type": "number",
"format": "double",
"description": "Estimated shelf-price hourly equivalent of the recommended commitment, derived from the median hourly eligible usage over the last 60 days multiplied by the estimated average coverage."
}
}
}
],
"description": "Recommended commitments for database"
}
}
}
400 (application/problem+json)
Syntactically malformed request, missing required parameter, or unsupported parameter value.
{
"type": "object",
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"retryable"
],
"additionalProperties": true,
"description": "RFC 9457 Problem Details — standard DoiT error envelope for all non-2xx responses.",
"properties": {
"type": {
"type": "string",
"format": "uri",
"example": "https://developer.doit.com/errors/not_found"
},
"title": {
"type": "string",
"example": "Resource not found"
},
"status": {
"type": "integer",
"example": 404
},
"detail": {
"type": "string",
"example": "customer not found"
},
"instance": {
"type": "string",
"format": "uri",
"example": "https://api.doit.com/requests/req_01HX9P2KQVJ8Z3M4T5N6V7W8Y9"
},
"code": {
"type": "string",
"pattern": "^([a-z][a-z0-9_]*|[a-z][a-z0-9]*(?:-[a-z0-9]+)*\\.[a-z][a-z0-9_]*)$",
"example": "not_found"
},
"retryable": {
"type": "boolean",
"example": false
},
"details": {
"type": "array",
"items": {
"type": "object",
"required": [
"issue"
],
"properties": {
"issue": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"field": {
"type": "string"
}
},
"additionalProperties": true
}
},
"docsUrl": {
"type": "string",
"format": "uri"
}
}
}
401 (application/problem+json)
Missing or invalid credentials.
{
"type": "object",
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"retryable"
],
"additionalProperties": true,
"description": "RFC 9457 Problem Details — standard DoiT error envelope for all non-2xx responses.",
"properties": {
"type": {
"type": "string",
"format": "uri",
"example": "https://developer.doit.com/errors/not_found"
},
"title": {
"type": "string",
"example": "Resource not found"
},
"status": {
"type": "integer",
"example": 404
},
"detail": {
"type": "string",
"example": "customer not found"
},
"instance": {
"type": "string",
"format": "uri",
"example": "https://api.doit.com/requests/req_01HX9P2KQVJ8Z3M4T5N6V7W8Y9"
},
"code": {
"type": "string",
"pattern": "^([a-z][a-z0-9_]*|[a-z][a-z0-9]*(?:-[a-z0-9]+)*\\.[a-z][a-z0-9_]*)$",
"example": "not_found"
},
"retryable": {
"type": "boolean",
"example": false
},
"details": {
"type": "array",
"items": {
"type": "object",
"required": [
"issue"
],
"properties": {
"issue": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"field": {
"type": "string"
}
},
"additionalProperties": true
}
},
"docsUrl": {
"type": "string",
"format": "uri"
}
}
}
403 (application/problem+json)
Authenticated but not authorised to access this customer's PS4C resources.
{
"type": "object",
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"retryable"
],
"additionalProperties": true,
"description": "RFC 9457 Problem Details — standard DoiT error envelope for all non-2xx responses.",
"properties": {
"type": {
"type": "string",
"format": "uri",
"example": "https://developer.doit.com/errors/not_found"
},
"title": {
"type": "string",
"example": "Resource not found"
},
"status": {
"type": "integer",
"example": 404
},
"detail": {
"type": "string",
"example": "customer not found"
},
"instance": {
"type": "string",
"format": "uri",
"example": "https://api.doit.com/requests/req_01HX9P2KQVJ8Z3M4T5N6V7W8Y9"
},
"code": {
"type": "string",
"pattern": "^([a-z][a-z0-9_]*|[a-z][a-z0-9]*(?:-[a-z0-9]+)*\\.[a-z][a-z0-9_]*)$",
"example": "not_found"
},
"retryable": {
"type": "boolean",
"example": false
},
"details": {
"type": "array",
"items": {
"type": "object",
"required": [
"issue"
],
"properties": {
"issue": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"field": {
"type": "string"
}
},
"additionalProperties": true
}
},
"docsUrl": {
"type": "string",
"format": "uri"
}
}
}
404 (application/problem+json)
The requested resource does not exist.
{
"type": "object",
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"retryable"
],
"additionalProperties": true,
"description": "RFC 9457 Problem Details — standard DoiT error envelope for all non-2xx responses.",
"properties": {
"type": {
"type": "string",
"format": "uri",
"example": "https://developer.doit.com/errors/not_found"
},
"title": {
"type": "string",
"example": "Resource not found"
},
"status": {
"type": "integer",
"example": 404
},
"detail": {
"type": "string",
"example": "customer not found"
},
"instance": {
"type": "string",
"format": "uri",
"example": "https://api.doit.com/requests/req_01HX9P2KQVJ8Z3M4T5N6V7W8Y9"
},
"code": {
"type": "string",
"pattern": "^([a-z][a-z0-9_]*|[a-z][a-z0-9]*(?:-[a-z0-9]+)*\\.[a-z][a-z0-9_]*)$",
"example": "not_found"
},
"retryable": {
"type": "boolean",
"example": false
},
"details": {
"type": "array",
"items": {
"type": "object",
"required": [
"issue"
],
"properties": {
"issue": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"field": {
"type": "string"
}
},
"additionalProperties": true
}
},
"docsUrl": {
"type": "string",
"format": "uri"
}
}
}
500 (application/problem+json)
Unexpected server error.
{
"type": "object",
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"retryable"
],
"additionalProperties": true,
"description": "RFC 9457 Problem Details — standard DoiT error envelope for all non-2xx responses.",
"properties": {
"type": {
"type": "string",
"format": "uri",
"example": "https://developer.doit.com/errors/not_found"
},
"title": {
"type": "string",
"example": "Resource not found"
},
"status": {
"type": "integer",
"example": 404
},
"detail": {
"type": "string",
"example": "customer not found"
},
"instance": {
"type": "string",
"format": "uri",
"example": "https://api.doit.com/requests/req_01HX9P2KQVJ8Z3M4T5N6V7W8Y9"
},
"code": {
"type": "string",
"pattern": "^([a-z][a-z0-9_]*|[a-z][a-z0-9]*(?:-[a-z0-9]+)*\\.[a-z][a-z0-9_]*)$",
"example": "not_found"
},
"retryable": {
"type": "boolean",
"example": false
},
"details": {
"type": "array",
"items": {
"type": "object",
"required": [
"issue"
],
"properties": {
"issue": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"field": {
"type": "string"
}
},
"additionalProperties": true
}
},
"docsUrl": {
"type": "string",
"format": "uri"
}
}
}
503 (application/problem+json)
Service temporarily unavailable; retry after the indicated delay.
{
"type": "object",
"required": [
"type",
"title",
"status",
"detail",
"instance",
"code",
"retryable"
],
"additionalProperties": true,
"description": "RFC 9457 Problem Details — standard DoiT error envelope for all non-2xx responses.",
"properties": {
"type": {
"type": "string",
"format": "uri",
"example": "https://developer.doit.com/errors/not_found"
},
"title": {
"type": "string",
"example": "Resource not found"
},
"status": {
"type": "integer",
"example": 404
},
"detail": {
"type": "string",
"example": "customer not found"
},
"instance": {
"type": "string",
"format": "uri",
"example": "https://api.doit.com/requests/req_01HX9P2KQVJ8Z3M4T5N6V7W8Y9"
},
"code": {
"type": "string",
"pattern": "^([a-z][a-z0-9_]*|[a-z][a-z0-9]*(?:-[a-z0-9]+)*\\.[a-z][a-z0-9_]*)$",
"example": "not_found"
},
"retryable": {
"type": "boolean",
"example": false
},
"details": {
"type": "array",
"items": {
"type": "object",
"required": [
"issue"
],
"properties": {
"issue": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"field": {
"type": "string"
}
},
"additionalProperties": true
}
},
"docsUrl": {
"type": "string",
"format": "uri"
}
}
}
Aliases: list-aws-recommendations, listawsrecommendations