{ "version":"2.0", "metadata":{ "apiVersion":"2022-09-15", "endpointPrefix":"trustedadvisor", "jsonVersion":"1.1", "protocol":"rest-json", "serviceFullName":"TrustedAdvisor Public API", "serviceId":"TrustedAdvisor", "signatureVersion":"v4", "signingName":"trustedadvisor", "uid":"trustedadvisor-2022-09-15" }, "operations":{ "BatchUpdateRecommendationResourceExclusion":{ "name":"BatchUpdateRecommendationResourceExclusion", "http":{ "method":"PUT", "requestUri":"/v1/batch-update-recommendation-resource-exclusion", "responseCode":200 }, "input":{"shape":"BatchUpdateRecommendationResourceExclusionRequest"}, "output":{"shape":"BatchUpdateRecommendationResourceExclusionResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], "documentation":"
Update one or more exclusion status for a list of recommendation resources
", "idempotent":true }, "GetOrganizationRecommendation":{ "name":"GetOrganizationRecommendation", "http":{ "method":"GET", "requestUri":"/v1/organization-recommendations/{organizationRecommendationIdentifier}", "responseCode":200 }, "input":{"shape":"GetOrganizationRecommendationRequest"}, "output":{"shape":"GetOrganizationRecommendationResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], "documentation":"Get a specific recommendation within an AWS Organizations organization. This API supports only prioritized recommendations.
" }, "GetRecommendation":{ "name":"GetRecommendation", "http":{ "method":"GET", "requestUri":"/v1/recommendations/{recommendationIdentifier}", "responseCode":200 }, "input":{"shape":"GetRecommendationRequest"}, "output":{"shape":"GetRecommendationResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], "documentation":"Get a specific Recommendation
" }, "ListChecks":{ "name":"ListChecks", "http":{ "method":"GET", "requestUri":"/v1/checks", "responseCode":200 }, "input":{"shape":"ListChecksRequest"}, "output":{"shape":"ListChecksResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], "documentation":"List a filterable set of Checks
" }, "ListOrganizationRecommendationAccounts":{ "name":"ListOrganizationRecommendationAccounts", "http":{ "method":"GET", "requestUri":"/v1/organization-recommendations/{organizationRecommendationIdentifier}/accounts", "responseCode":200 }, "input":{"shape":"ListOrganizationRecommendationAccountsRequest"}, "output":{"shape":"ListOrganizationRecommendationAccountsResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], "documentation":"Lists the accounts that own the resources for an organization aggregate recommendation. This API only supports prioritized recommendations.
" }, "ListOrganizationRecommendationResources":{ "name":"ListOrganizationRecommendationResources", "http":{ "method":"GET", "requestUri":"/v1/organization-recommendations/{organizationRecommendationIdentifier}/resources", "responseCode":200 }, "input":{"shape":"ListOrganizationRecommendationResourcesRequest"}, "output":{"shape":"ListOrganizationRecommendationResourcesResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], "documentation":"List Resources of a Recommendation within an Organization. This API only supports prioritized recommendations.
" }, "ListOrganizationRecommendations":{ "name":"ListOrganizationRecommendations", "http":{ "method":"GET", "requestUri":"/v1/organization-recommendations", "responseCode":200 }, "input":{"shape":"ListOrganizationRecommendationsRequest"}, "output":{"shape":"ListOrganizationRecommendationsResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], "documentation":"List a filterable set of Recommendations within an Organization. This API only supports prioritized recommendations.
" }, "ListRecommendationResources":{ "name":"ListRecommendationResources", "http":{ "method":"GET", "requestUri":"/v1/recommendations/{recommendationIdentifier}/resources", "responseCode":200 }, "input":{"shape":"ListRecommendationResourcesRequest"}, "output":{"shape":"ListRecommendationResourcesResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], "documentation":"List Resources of a Recommendation
" }, "ListRecommendations":{ "name":"ListRecommendations", "http":{ "method":"GET", "requestUri":"/v1/recommendations", "responseCode":200 }, "input":{"shape":"ListRecommendationsRequest"}, "output":{"shape":"ListRecommendationsResponse"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ThrottlingException"} ], "documentation":"List a filterable set of Recommendations
" }, "UpdateOrganizationRecommendationLifecycle":{ "name":"UpdateOrganizationRecommendationLifecycle", "http":{ "method":"PUT", "requestUri":"/v1/organization-recommendations/{organizationRecommendationIdentifier}/lifecycle", "responseCode":200 }, "input":{"shape":"UpdateOrganizationRecommendationLifecycleRequest"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], "documentation":"Update the lifecycle of a Recommendation within an Organization. This API only supports prioritized recommendations.
", "idempotent":true }, "UpdateRecommendationLifecycle":{ "name":"UpdateRecommendationLifecycle", "http":{ "method":"PUT", "requestUri":"/v1/recommendations/{recommendationIdentifier}/lifecycle", "responseCode":200 }, "input":{"shape":"UpdateRecommendationLifecycleRequest"}, "errors":[ {"shape":"AccessDeniedException"}, {"shape":"ConflictException"}, {"shape":"InternalServerException"}, {"shape":"ValidationException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"} ], "documentation":"Update the lifecyle of a Recommendation. This API only supports prioritized recommendations.
", "idempotent":true } }, "shapes":{ "AccessDeniedException":{ "type":"structure", "required":["message"], "members":{ "message":{"shape":"String"} }, "documentation":"Exception that access has been denied due to insufficient access
", "error":{ "httpStatusCode":403, "senderFault":true }, "exception":true }, "AccountId":{ "type":"string", "max":12, "min":12, "pattern":"^\\d+$" }, "AccountRecommendationArn":{ "type":"string", "max":2048, "min":20, "pattern":"^arn:[\\w-]+:trustedadvisor::\\d{12}:recommendation\\/[\\w-]+$" }, "AccountRecommendationIdentifier":{ "type":"string", "max":200, "min":20, "pattern":"^arn:[\\w-]+:trustedadvisor::\\d{12}:recommendation\\/[\\w-]+$" }, "AccountRecommendationLifecycleSummary":{ "type":"structure", "members":{ "accountId":{ "shape":"AccountId", "documentation":"The AWS account ID
" }, "accountRecommendationArn":{ "shape":"AccountRecommendationArn", "documentation":"The Recommendation ARN
" }, "lastUpdatedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was last updated
" }, "lifecycleStage":{ "shape":"RecommendationLifecycleStage", "documentation":"The lifecycle stage from AWS Trusted Advisor Priority
" }, "updateReason":{ "shape":"RecommendationUpdateReason", "documentation":"Reason for the lifecycle stage change
" }, "updateReasonCode":{ "shape":"UpdateRecommendationLifecycleStageReasonCode", "documentation":"Reason code for the lifecycle state change
" }, "updatedOnBehalfOf":{ "shape":"String", "documentation":"The person on whose behalf a Technical Account Manager (TAM) updated the recommendation. This information is only available when a Technical Account Manager takes an action on a recommendation managed by AWS Trusted Advisor Priority
" }, "updatedOnBehalfOfJobTitle":{ "shape":"String", "documentation":"The job title of the person on whose behalf a Technical Account Manager (TAM) updated the recommendation. This information is only available when a Technical Account Manager takes an action on a recommendation managed by AWS Trusted Advisor Priority
" } }, "documentation":"Summary of an AccountRecommendationLifecycle for an Organization Recommendation
" }, "AccountRecommendationLifecycleSummaryList":{ "type":"list", "member":{"shape":"AccountRecommendationLifecycleSummary"} }, "BatchUpdateRecommendationResourceExclusionRequest":{ "type":"structure", "required":["recommendationResourceExclusions"], "members":{ "recommendationResourceExclusions":{ "shape":"RecommendationResourceExclusionList", "documentation":"A list of recommendation resource ARNs and exclusion status to update
" } } }, "BatchUpdateRecommendationResourceExclusionResponse":{ "type":"structure", "required":["batchUpdateRecommendationResourceExclusionErrors"], "members":{ "batchUpdateRecommendationResourceExclusionErrors":{ "shape":"UpdateRecommendationResourceExclusionErrorList", "documentation":"A list of recommendation resource ARNs whose exclusion status failed to update, if any
" } } }, "Boolean":{ "type":"boolean", "box":true }, "CheckArn":{ "type":"string", "max":2048, "min":20, "pattern":"^arn:[\\w-]+:trustedadvisor:::check\\/[\\w-]+$" }, "CheckIdentifier":{ "type":"string", "max":64, "min":20, "pattern":"^arn:[\\w-]+:trustedadvisor:::check\\/[\\w-]+$" }, "CheckSummary":{ "type":"structure", "required":[ "arn", "awsServices", "description", "id", "metadata", "name", "pillars", "source" ], "members":{ "arn":{ "shape":"CheckArn", "documentation":"The ARN of the AWS Trusted Advisor Check
" }, "awsServices":{ "shape":"RecommendationAwsServiceList", "documentation":"The AWS Services that the Check applies to
" }, "description":{ "shape":"String", "documentation":"A description of what the AWS Trusted Advisor Check is monitoring
" }, "id":{ "shape":"String", "documentation":"The unique identifier of the AWS Trusted Advisor Check
" }, "metadata":{ "shape":"StringMap", "documentation":"The column headings for the metadata returned in the resource
" }, "name":{ "shape":"String", "documentation":"The name of the AWS Trusted Advisor Check
" }, "pillars":{ "shape":"RecommendationPillarList", "documentation":"The Recommendation pillars that the AWS Trusted Advisor Check falls under
" }, "source":{ "shape":"RecommendationSource", "documentation":"The source of the Recommendation
" } }, "documentation":"A summary of an AWS Trusted Advisor Check
" }, "CheckSummaryList":{ "type":"list", "member":{"shape":"CheckSummary"} }, "ConflictException":{ "type":"structure", "required":["message"], "members":{ "message":{"shape":"String"} }, "documentation":"Exception that the request was denied due to conflictions in state
", "error":{ "httpStatusCode":409, "senderFault":true }, "exception":true }, "Double":{ "type":"double", "box":true }, "ExclusionStatus":{ "type":"string", "enum":[ "excluded", "included" ] }, "GetOrganizationRecommendationRequest":{ "type":"structure", "required":["organizationRecommendationIdentifier"], "members":{ "organizationRecommendationIdentifier":{ "shape":"OrganizationRecommendationIdentifier", "documentation":"The Recommendation identifier
", "location":"uri", "locationName":"organizationRecommendationIdentifier" } } }, "GetOrganizationRecommendationResponse":{ "type":"structure", "members":{ "organizationRecommendation":{ "shape":"OrganizationRecommendation", "documentation":"The Recommendation
" } } }, "GetRecommendationRequest":{ "type":"structure", "required":["recommendationIdentifier"], "members":{ "recommendationIdentifier":{ "shape":"AccountRecommendationIdentifier", "documentation":"The Recommendation identifier
", "location":"uri", "locationName":"recommendationIdentifier" } } }, "GetRecommendationResponse":{ "type":"structure", "members":{ "recommendation":{ "shape":"Recommendation", "documentation":"The Recommendation
" } } }, "InternalServerException":{ "type":"structure", "required":["message"], "members":{ "message":{"shape":"String"} }, "documentation":"Exception to notify that an unexpected internal error occurred during processing of the request
", "error":{"httpStatusCode":500}, "exception":true, "fault":true, "retryable":{"throttling":false} }, "ListChecksRequest":{ "type":"structure", "members":{ "awsService":{ "shape":"RecommendationAwsService", "documentation":"The aws service associated with the check
", "location":"querystring", "locationName":"awsService" }, "language":{ "shape":"RecommendationLanguage", "documentation":"The ISO 639-1 code for the language that you want your checks to appear in.
", "location":"querystring", "locationName":"language" }, "maxResults":{ "shape":"ListChecksRequestMaxResultsInteger", "documentation":"The maximum number of results to return per page.
", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"ListChecksRequestNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
", "location":"querystring", "locationName":"nextToken" }, "pillar":{ "shape":"RecommendationPillar", "documentation":"The pillar of the check
", "location":"querystring", "locationName":"pillar" }, "source":{ "shape":"RecommendationSource", "documentation":"The source of the check
", "location":"querystring", "locationName":"source" } } }, "ListChecksRequestMaxResultsInteger":{ "type":"integer", "box":true, "max":200, "min":1 }, "ListChecksRequestNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListChecksResponse":{ "type":"structure", "required":["checkSummaries"], "members":{ "checkSummaries":{ "shape":"CheckSummaryList", "documentation":"The list of Checks
" }, "nextToken":{ "shape":"ListChecksResponseNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
" } } }, "ListChecksResponseNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListOrganizationRecommendationAccountsRequest":{ "type":"structure", "required":["organizationRecommendationIdentifier"], "members":{ "affectedAccountId":{ "shape":"AccountId", "documentation":"An account affected by this organization recommendation
", "location":"querystring", "locationName":"affectedAccountId" }, "maxResults":{ "shape":"ListOrganizationRecommendationAccountsRequestMaxResultsInteger", "documentation":"The maximum number of results to return per page.
", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"ListOrganizationRecommendationAccountsRequestNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
", "location":"querystring", "locationName":"nextToken" }, "organizationRecommendationIdentifier":{ "shape":"OrganizationRecommendationIdentifier", "documentation":"The Recommendation identifier
", "location":"uri", "locationName":"organizationRecommendationIdentifier" } } }, "ListOrganizationRecommendationAccountsRequestMaxResultsInteger":{ "type":"integer", "box":true, "max":200, "min":1 }, "ListOrganizationRecommendationAccountsRequestNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListOrganizationRecommendationAccountsResponse":{ "type":"structure", "required":["accountRecommendationLifecycleSummaries"], "members":{ "accountRecommendationLifecycleSummaries":{ "shape":"AccountRecommendationLifecycleSummaryList", "documentation":"The account recommendations lifecycles that are applicable to the Recommendation
" }, "nextToken":{ "shape":"ListOrganizationRecommendationAccountsResponseNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
" } } }, "ListOrganizationRecommendationAccountsResponseNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListOrganizationRecommendationResourcesRequest":{ "type":"structure", "required":["organizationRecommendationIdentifier"], "members":{ "affectedAccountId":{ "shape":"AccountId", "documentation":"An account affected by this organization recommendation
", "location":"querystring", "locationName":"affectedAccountId" }, "exclusionStatus":{ "shape":"ExclusionStatus", "documentation":"The exclusion status of the resource
", "location":"querystring", "locationName":"exclusionStatus" }, "maxResults":{ "shape":"ListOrganizationRecommendationResourcesRequestMaxResultsInteger", "documentation":"The maximum number of results to return per page.
", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"ListOrganizationRecommendationResourcesRequestNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
", "location":"querystring", "locationName":"nextToken" }, "organizationRecommendationIdentifier":{ "shape":"OrganizationRecommendationIdentifier", "documentation":"The AWS Organization organization's Recommendation identifier
", "location":"uri", "locationName":"organizationRecommendationIdentifier" }, "regionCode":{ "shape":"String", "documentation":"The AWS Region code of the resource
", "location":"querystring", "locationName":"regionCode" }, "status":{ "shape":"ResourceStatus", "documentation":"The status of the resource
", "location":"querystring", "locationName":"status" } } }, "ListOrganizationRecommendationResourcesRequestMaxResultsInteger":{ "type":"integer", "box":true, "max":200, "min":1 }, "ListOrganizationRecommendationResourcesRequestNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListOrganizationRecommendationResourcesResponse":{ "type":"structure", "required":["organizationRecommendationResourceSummaries"], "members":{ "nextToken":{ "shape":"ListOrganizationRecommendationResourcesResponseNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
" }, "organizationRecommendationResourceSummaries":{ "shape":"OrganizationRecommendationResourceSummaryList", "documentation":"A list of Recommendation Resources
" } } }, "ListOrganizationRecommendationResourcesResponseNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListOrganizationRecommendationsRequest":{ "type":"structure", "members":{ "afterLastUpdatedAt":{ "shape":"Timestamp", "documentation":"After the last update of the Recommendation
", "location":"querystring", "locationName":"afterLastUpdatedAt" }, "awsService":{ "shape":"RecommendationAwsService", "documentation":"The aws service associated with the Recommendation
", "location":"querystring", "locationName":"awsService" }, "beforeLastUpdatedAt":{ "shape":"Timestamp", "documentation":"Before the last update of the Recommendation
", "location":"querystring", "locationName":"beforeLastUpdatedAt" }, "checkIdentifier":{ "shape":"CheckIdentifier", "documentation":"The check identifier of the Recommendation
", "location":"querystring", "locationName":"checkIdentifier" }, "maxResults":{ "shape":"ListOrganizationRecommendationsRequestMaxResultsInteger", "documentation":"The maximum number of results to return per page.
", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"ListOrganizationRecommendationsRequestNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
", "location":"querystring", "locationName":"nextToken" }, "pillar":{ "shape":"RecommendationPillar", "documentation":"The pillar of the Recommendation
", "location":"querystring", "locationName":"pillar" }, "source":{ "shape":"RecommendationSource", "documentation":"The source of the Recommendation
", "location":"querystring", "locationName":"source" }, "status":{ "shape":"RecommendationStatus", "documentation":"The status of the Recommendation
", "location":"querystring", "locationName":"status" }, "type":{ "shape":"RecommendationType", "documentation":"The type of the Recommendation
", "location":"querystring", "locationName":"type" } } }, "ListOrganizationRecommendationsRequestMaxResultsInteger":{ "type":"integer", "box":true, "max":200, "min":1 }, "ListOrganizationRecommendationsRequestNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListOrganizationRecommendationsResponse":{ "type":"structure", "required":["organizationRecommendationSummaries"], "members":{ "nextToken":{ "shape":"ListOrganizationRecommendationsResponseNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
" }, "organizationRecommendationSummaries":{ "shape":"OrganizationRecommendationSummaryList", "documentation":"The list of Recommendations
" } } }, "ListOrganizationRecommendationsResponseNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListRecommendationResourcesRequest":{ "type":"structure", "required":["recommendationIdentifier"], "members":{ "exclusionStatus":{ "shape":"ExclusionStatus", "documentation":"The exclusion status of the resource
", "location":"querystring", "locationName":"exclusionStatus" }, "maxResults":{ "shape":"ListRecommendationResourcesRequestMaxResultsInteger", "documentation":"The maximum number of results to return per page.
", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"ListRecommendationResourcesRequestNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
", "location":"querystring", "locationName":"nextToken" }, "recommendationIdentifier":{ "shape":"AccountRecommendationIdentifier", "documentation":"The Recommendation identifier
", "location":"uri", "locationName":"recommendationIdentifier" }, "regionCode":{ "shape":"String", "documentation":"The AWS Region code of the resource
", "location":"querystring", "locationName":"regionCode" }, "status":{ "shape":"ResourceStatus", "documentation":"The status of the resource
", "location":"querystring", "locationName":"status" } } }, "ListRecommendationResourcesRequestMaxResultsInteger":{ "type":"integer", "box":true, "max":200, "min":1 }, "ListRecommendationResourcesRequestNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListRecommendationResourcesResponse":{ "type":"structure", "required":["recommendationResourceSummaries"], "members":{ "nextToken":{ "shape":"ListRecommendationResourcesResponseNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
" }, "recommendationResourceSummaries":{ "shape":"RecommendationResourceSummaryList", "documentation":"A list of Recommendation Resources
" } } }, "ListRecommendationResourcesResponseNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListRecommendationsRequest":{ "type":"structure", "members":{ "afterLastUpdatedAt":{ "shape":"Timestamp", "documentation":"After the last update of the Recommendation
", "location":"querystring", "locationName":"afterLastUpdatedAt" }, "awsService":{ "shape":"RecommendationAwsService", "documentation":"The aws service associated with the Recommendation
", "location":"querystring", "locationName":"awsService" }, "beforeLastUpdatedAt":{ "shape":"Timestamp", "documentation":"Before the last update of the Recommendation
", "location":"querystring", "locationName":"beforeLastUpdatedAt" }, "checkIdentifier":{ "shape":"CheckIdentifier", "documentation":"The check identifier of the Recommendation
", "location":"querystring", "locationName":"checkIdentifier" }, "maxResults":{ "shape":"ListRecommendationsRequestMaxResultsInteger", "documentation":"The maximum number of results to return per page.
", "location":"querystring", "locationName":"maxResults" }, "nextToken":{ "shape":"ListRecommendationsRequestNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
", "location":"querystring", "locationName":"nextToken" }, "pillar":{ "shape":"RecommendationPillar", "documentation":"The pillar of the Recommendation
", "location":"querystring", "locationName":"pillar" }, "source":{ "shape":"RecommendationSource", "documentation":"The source of the Recommendation
", "location":"querystring", "locationName":"source" }, "status":{ "shape":"RecommendationStatus", "documentation":"The status of the Recommendation
", "location":"querystring", "locationName":"status" }, "type":{ "shape":"RecommendationType", "documentation":"The type of the Recommendation
", "location":"querystring", "locationName":"type" } } }, "ListRecommendationsRequestMaxResultsInteger":{ "type":"integer", "box":true, "max":200, "min":1 }, "ListRecommendationsRequestNextTokenString":{ "type":"string", "max":10000, "min":4 }, "ListRecommendationsResponse":{ "type":"structure", "required":["recommendationSummaries"], "members":{ "nextToken":{ "shape":"ListRecommendationsResponseNextTokenString", "documentation":"The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.
" }, "recommendationSummaries":{ "shape":"RecommendationSummaryList", "documentation":"The list of Recommendations
" } } }, "ListRecommendationsResponseNextTokenString":{ "type":"string", "max":10000, "min":4 }, "Long":{ "type":"long", "box":true }, "OrganizationRecommendation":{ "type":"structure", "required":[ "arn", "description", "id", "name", "pillars", "resourcesAggregates", "source", "status", "type" ], "members":{ "arn":{ "shape":"OrganizationRecommendationArn", "documentation":"The ARN of the Recommendation
" }, "awsServices":{ "shape":"RecommendationAwsServiceList", "documentation":"The AWS Services that the Recommendation applies to
" }, "checkArn":{ "shape":"String", "documentation":"The AWS Trusted Advisor Check ARN that relates to the Recommendation
" }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was created, if created by AWS Trusted Advisor Priority
" }, "createdBy":{ "shape":"String", "documentation":"The creator, if created by AWS Trusted Advisor Priority
" }, "description":{ "shape":"String", "documentation":"A description for AWS Trusted Advisor recommendations
" }, "id":{ "shape":"String", "documentation":"The ID which identifies where the Recommendation was produced
" }, "lastUpdatedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was last updated
" }, "lifecycleStage":{ "shape":"RecommendationLifecycleStage", "documentation":"The lifecycle stage from AWS Trusted Advisor Priority
" }, "name":{ "shape":"String", "documentation":"The name of the AWS Trusted Advisor Recommendation
" }, "pillarSpecificAggregates":{ "shape":"RecommendationPillarSpecificAggregates", "documentation":"The pillar aggregations for cost savings
" }, "pillars":{ "shape":"RecommendationPillarList", "documentation":"The Pillars that the Recommendation is optimizing
" }, "resolvedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was resolved
" }, "resourcesAggregates":{ "shape":"RecommendationResourcesAggregates", "documentation":"An aggregation of all resources
" }, "source":{ "shape":"RecommendationSource", "documentation":"The source of the Recommendation
" }, "status":{ "shape":"RecommendationStatus", "documentation":"The status of the Recommendation
" }, "type":{ "shape":"RecommendationType", "documentation":"Whether the Recommendation was automated or generated by AWS Trusted Advisor Priority
" }, "updateReason":{ "shape":"RecommendationUpdateReason", "documentation":"Reason for the lifecycle stage change
" }, "updateReasonCode":{ "shape":"UpdateRecommendationLifecycleStageReasonCode", "documentation":"Reason code for the lifecycle state change
" }, "updatedOnBehalfOf":{ "shape":"String", "documentation":"The person on whose behalf a Technical Account Manager (TAM) updated the recommendation. This information is only available when a Technical Account Manager takes an action on a recommendation managed by AWS Trusted Advisor Priority
" }, "updatedOnBehalfOfJobTitle":{ "shape":"String", "documentation":"The job title of the person on whose behalf a Technical Account Manager (TAM) updated the recommendation. This information is only available when a Technical Account Manager takes an action on a recommendation managed by AWS Trusted Advisor Priority
" } }, "documentation":"A Recommendation for accounts within an Organization
" }, "OrganizationRecommendationArn":{ "type":"string", "max":2048, "min":20, "pattern":"^arn:[\\w-]+:trustedadvisor:::organization-recommendation\\/[\\w-]+$" }, "OrganizationRecommendationIdentifier":{ "type":"string", "max":200, "min":20, "pattern":"^arn:[\\w-]+:trustedadvisor:::organization-recommendation\\/[\\w-]+$" }, "OrganizationRecommendationResourceSummary":{ "type":"structure", "required":[ "arn", "awsResourceId", "id", "lastUpdatedAt", "metadata", "recommendationArn", "regionCode", "status" ], "members":{ "accountId":{ "shape":"AccountId", "documentation":"The AWS account ID
" }, "arn":{ "shape":"RecommendationResourceArn", "documentation":"The ARN of the Recommendation Resource
" }, "awsResourceId":{ "shape":"String", "documentation":"The AWS resource identifier
" }, "exclusionStatus":{ "shape":"ExclusionStatus", "documentation":"The exclusion status of the Recommendation Resource
" }, "id":{ "shape":"String", "documentation":"The ID of the Recommendation Resource
" }, "lastUpdatedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation Resource was last updated
" }, "metadata":{ "shape":"StringMap", "documentation":"Metadata associated with the Recommendation Resource
" }, "recommendationArn":{ "shape":"OrganizationRecommendationArn", "documentation":"The Recommendation ARN
" }, "regionCode":{ "shape":"RecommendationRegionCode", "documentation":"The AWS Region code that the Recommendation Resource is in
" }, "status":{ "shape":"ResourceStatus", "documentation":"The current status of the Recommendation Resource
" } }, "documentation":"Organization Recommendation Resource Summary
" }, "OrganizationRecommendationResourceSummaryList":{ "type":"list", "member":{"shape":"OrganizationRecommendationResourceSummary"} }, "OrganizationRecommendationSummary":{ "type":"structure", "required":[ "arn", "id", "name", "pillars", "resourcesAggregates", "source", "status", "type" ], "members":{ "arn":{ "shape":"OrganizationRecommendationArn", "documentation":"The ARN of the Recommendation
" }, "awsServices":{ "shape":"RecommendationAwsServiceList", "documentation":"The AWS Services that the Recommendation applies to
" }, "checkArn":{ "shape":"String", "documentation":"The AWS Trusted Advisor Check ARN that relates to the Recommendation
" }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was created, if created by AWS Trusted Advisor Priority
" }, "id":{ "shape":"String", "documentation":"The ID which identifies where the Recommendation was produced
" }, "lastUpdatedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was last updated
" }, "lifecycleStage":{ "shape":"RecommendationLifecycleStage", "documentation":"The lifecycle stage from AWS Trusted Advisor Priority
" }, "name":{ "shape":"String", "documentation":"The name of the AWS Trusted Advisor Recommendation
" }, "pillarSpecificAggregates":{ "shape":"RecommendationPillarSpecificAggregates", "documentation":"The pillar aggregations for cost savings
" }, "pillars":{ "shape":"RecommendationPillarList", "documentation":"The Pillars that the Recommendation is optimizing
" }, "resourcesAggregates":{ "shape":"RecommendationResourcesAggregates", "documentation":"An aggregation of all resources
" }, "source":{ "shape":"RecommendationSource", "documentation":"The source of the Recommendation
" }, "status":{ "shape":"RecommendationStatus", "documentation":"The status of the Recommendation
" }, "type":{ "shape":"RecommendationType", "documentation":"Whether the Recommendation was automated or generated by AWS Trusted Advisor Priority
" } }, "documentation":"Summary of recommendation for accounts within an Organization
" }, "OrganizationRecommendationSummaryList":{ "type":"list", "member":{"shape":"OrganizationRecommendationSummary"} }, "Recommendation":{ "type":"structure", "required":[ "arn", "description", "id", "name", "pillars", "resourcesAggregates", "source", "status", "type" ], "members":{ "arn":{ "shape":"AccountRecommendationArn", "documentation":"The ARN of the Recommendation
" }, "awsServices":{ "shape":"RecommendationAwsServiceList", "documentation":"The AWS Services that the Recommendation applies to
" }, "checkArn":{ "shape":"String", "documentation":"The AWS Trusted Advisor Check ARN that relates to the Recommendation
" }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was created, if created by AWS Trusted Advisor Priority
" }, "createdBy":{ "shape":"String", "documentation":"The creator, if created by AWS Trusted Advisor Priority
" }, "description":{ "shape":"String", "documentation":"A description for AWS Trusted Advisor recommendations
" }, "id":{ "shape":"String", "documentation":"The ID which identifies where the Recommendation was produced
" }, "lastUpdatedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was last updated
" }, "lifecycleStage":{ "shape":"RecommendationLifecycleStage", "documentation":"The lifecycle stage from AWS Trusted Advisor Priority
" }, "name":{ "shape":"String", "documentation":"The name of the AWS Trusted Advisor Recommendation
" }, "pillarSpecificAggregates":{ "shape":"RecommendationPillarSpecificAggregates", "documentation":"The pillar aggregations for cost savings
" }, "pillars":{ "shape":"RecommendationPillarList", "documentation":"The Pillars that the Recommendation is optimizing
" }, "resolvedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was resolved
" }, "resourcesAggregates":{ "shape":"RecommendationResourcesAggregates", "documentation":"An aggregation of all resources
" }, "source":{ "shape":"RecommendationSource", "documentation":"The source of the Recommendation
" }, "status":{ "shape":"RecommendationStatus", "documentation":"The status of the Recommendation
" }, "type":{ "shape":"RecommendationType", "documentation":"Whether the Recommendation was automated or generated by AWS Trusted Advisor Priority
" }, "updateReason":{ "shape":"RecommendationUpdateReason", "documentation":"Reason for the lifecycle stage change
" }, "updateReasonCode":{ "shape":"UpdateRecommendationLifecycleStageReasonCode", "documentation":"Reason code for the lifecycle state change
" }, "updatedOnBehalfOf":{ "shape":"String", "documentation":"The person on whose behalf a Technical Account Manager (TAM) updated the recommendation. This information is only available when a Technical Account Manager takes an action on a recommendation managed by AWS Trusted Advisor Priority
" }, "updatedOnBehalfOfJobTitle":{ "shape":"String", "documentation":"The job title of the person on whose behalf a Technical Account Manager (TAM) updated the recommendation. This information is only available when a Technical Account Manager takes an action on a recommendation managed by AWS Trusted Advisor Priority
" } }, "documentation":"A Recommendation for an Account
" }, "RecommendationAwsService":{ "type":"string", "max":30, "min":2 }, "RecommendationAwsServiceList":{ "type":"list", "member":{"shape":"RecommendationAwsService"} }, "RecommendationCostOptimizingAggregates":{ "type":"structure", "required":[ "estimatedMonthlySavings", "estimatedPercentMonthlySavings" ], "members":{ "estimatedMonthlySavings":{ "shape":"Double", "documentation":"The estimated monthly savings
" }, "estimatedPercentMonthlySavings":{ "shape":"Double", "documentation":"The estimated percently monthly savings
" } }, "documentation":"Cost optimizing aggregates for a Recommendation
" }, "RecommendationLanguage":{ "type":"string", "enum":[ "en", "ja", "zh", "fr", "de", "ko", "zh_TW", "it", "es", "pt_BR", "id" ] }, "RecommendationLifecycleStage":{ "type":"string", "enum":[ "in_progress", "pending_response", "dismissed", "resolved" ] }, "RecommendationPillar":{ "type":"string", "enum":[ "cost_optimizing", "performance", "security", "service_limits", "fault_tolerance", "operational_excellence" ] }, "RecommendationPillarList":{ "type":"list", "member":{"shape":"RecommendationPillar"} }, "RecommendationPillarSpecificAggregates":{ "type":"structure", "members":{ "costOptimizing":{ "shape":"RecommendationCostOptimizingAggregates", "documentation":"Cost optimizing aggregates
" } }, "documentation":"Recommendation pillar aggregates
" }, "RecommendationRegionCode":{ "type":"string", "max":20, "min":9 }, "RecommendationResourceArn":{ "type":"string", "max":2048, "min":20, "pattern":"^arn:[\\w-]+:trustedadvisor::\\d{12}:recommendation-resource\\/[\\w-]+\\/[\\w-]+$" }, "RecommendationResourceExclusion":{ "type":"structure", "required":[ "arn", "isExcluded" ], "members":{ "arn":{ "shape":"RecommendationResourceArn", "documentation":"The ARN of the Recommendation Resource
" }, "isExcluded":{ "shape":"Boolean", "documentation":"The exclusion status
" } }, "documentation":"The request entry for Recommendation Resource exclusion. Each entry is a combination of Recommendation Resource ARN and corresponding exclusion status
" }, "RecommendationResourceExclusionList":{ "type":"list", "member":{"shape":"RecommendationResourceExclusion"}, "max":100, "min":1 }, "RecommendationResourceSummary":{ "type":"structure", "required":[ "arn", "awsResourceId", "id", "lastUpdatedAt", "metadata", "recommendationArn", "regionCode", "status" ], "members":{ "arn":{ "shape":"RecommendationResourceArn", "documentation":"The ARN of the Recommendation Resource
" }, "awsResourceId":{ "shape":"String", "documentation":"The AWS resource identifier
" }, "exclusionStatus":{ "shape":"ExclusionStatus", "documentation":"The exclusion status of the Recommendation Resource
" }, "id":{ "shape":"String", "documentation":"The ID of the Recommendation Resource
" }, "lastUpdatedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation Resource was last updated
" }, "metadata":{ "shape":"StringMap", "documentation":"Metadata associated with the Recommendation Resource
" }, "recommendationArn":{ "shape":"AccountRecommendationArn", "documentation":"The Recommendation ARN
" }, "regionCode":{ "shape":"RecommendationRegionCode", "documentation":"The AWS Region code that the Recommendation Resource is in
" }, "status":{ "shape":"ResourceStatus", "documentation":"The current status of the Recommendation Resource
" } }, "documentation":"Summary of a Recommendation Resource
" }, "RecommendationResourceSummaryList":{ "type":"list", "member":{"shape":"RecommendationResourceSummary"} }, "RecommendationResourcesAggregates":{ "type":"structure", "required":[ "errorCount", "okCount", "warningCount" ], "members":{ "errorCount":{ "shape":"Long", "documentation":"The number of AWS resources that were flagged to have errors according to the Trusted Advisor check
" }, "okCount":{ "shape":"Long", "documentation":"The number of AWS resources that were flagged to be OK according to the Trusted Advisor check
" }, "warningCount":{ "shape":"Long", "documentation":"The number of AWS resources that were flagged to have warning according to the Trusted Advisor check
" } }, "documentation":"Aggregation of Recommendation Resources
" }, "RecommendationSource":{ "type":"string", "enum":[ "aws_config", "compute_optimizer", "cost_explorer", "lse", "manual", "pse", "rds", "resilience", "resilience_hub", "security_hub", "stir", "ta_check", "well_architected" ] }, "RecommendationStatus":{ "type":"string", "enum":[ "ok", "warning", "error" ] }, "RecommendationSummary":{ "type":"structure", "required":[ "arn", "id", "name", "pillars", "resourcesAggregates", "source", "status", "type" ], "members":{ "arn":{ "shape":"AccountRecommendationArn", "documentation":"The ARN of the Recommendation
" }, "awsServices":{ "shape":"RecommendationAwsServiceList", "documentation":"The AWS Services that the Recommendation applies to
" }, "checkArn":{ "shape":"String", "documentation":"The AWS Trusted Advisor Check ARN that relates to the Recommendation
" }, "createdAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was created, if created by AWS Trusted Advisor Priority
" }, "id":{ "shape":"String", "documentation":"The ID which identifies where the Recommendation was produced
" }, "lastUpdatedAt":{ "shape":"SyntheticTimestamp_date_time", "documentation":"When the Recommendation was last updated
" }, "lifecycleStage":{ "shape":"RecommendationLifecycleStage", "documentation":"The lifecycle stage from AWS Trusted Advisor Priority
" }, "name":{ "shape":"String", "documentation":"The name of the AWS Trusted Advisor Recommendation
" }, "pillarSpecificAggregates":{ "shape":"RecommendationPillarSpecificAggregates", "documentation":"The pillar aggregations for cost savings
" }, "pillars":{ "shape":"RecommendationPillarList", "documentation":"The Pillars that the Recommendation is optimizing
" }, "resourcesAggregates":{ "shape":"RecommendationResourcesAggregates", "documentation":"An aggregation of all resources
" }, "source":{ "shape":"RecommendationSource", "documentation":"The source of the Recommendation
" }, "status":{ "shape":"RecommendationStatus", "documentation":"The status of the Recommendation
" }, "type":{ "shape":"RecommendationType", "documentation":"Whether the Recommendation was automated or generated by AWS Trusted Advisor Priority
" } }, "documentation":"Summary of Recommendation for an Account
" }, "RecommendationSummaryList":{ "type":"list", "member":{"shape":"RecommendationSummary"} }, "RecommendationType":{ "type":"string", "enum":[ "standard", "priority" ] }, "RecommendationUpdateReason":{ "type":"string", "max":4096, "min":10, "pattern":"^[\\s\\S]*$", "sensitive":true }, "ResourceNotFoundException":{ "type":"structure", "required":["message"], "members":{ "message":{"shape":"String"} }, "documentation":"Exception that the requested resource has not been found
", "error":{ "httpStatusCode":404, "senderFault":true }, "exception":true }, "ResourceStatus":{ "type":"string", "enum":[ "ok", "warning", "error" ] }, "String":{"type":"string"}, "StringMap":{ "type":"map", "key":{"shape":"String"}, "value":{"shape":"String"} }, "SyntheticTimestamp_date_time":{ "type":"timestamp", "timestampFormat":"iso8601" }, "ThrottlingException":{ "type":"structure", "required":["message"], "members":{ "message":{"shape":"String"} }, "documentation":"Exception to notify that requests are being throttled
", "error":{ "httpStatusCode":429, "senderFault":true }, "exception":true, "retryable":{"throttling":true} }, "Timestamp":{"type":"timestamp"}, "UpdateOrganizationRecommendationLifecycleRequest":{ "type":"structure", "required":[ "lifecycleStage", "organizationRecommendationIdentifier" ], "members":{ "lifecycleStage":{ "shape":"UpdateRecommendationLifecycleStage", "documentation":"The new lifecycle stage
" }, "organizationRecommendationIdentifier":{ "shape":"OrganizationRecommendationIdentifier", "documentation":"The Recommendation identifier for AWS Trusted Advisor Priority recommendations
", "location":"uri", "locationName":"organizationRecommendationIdentifier" }, "updateReason":{ "shape":"RecommendationUpdateReason", "documentation":"Reason for the lifecycle stage change
" }, "updateReasonCode":{ "shape":"UpdateRecommendationLifecycleStageReasonCode", "documentation":"Reason code for the lifecycle state change
" } } }, "UpdateRecommendationLifecycleRequest":{ "type":"structure", "required":[ "lifecycleStage", "recommendationIdentifier" ], "members":{ "lifecycleStage":{ "shape":"UpdateRecommendationLifecycleStage", "documentation":"The new lifecycle stage
" }, "recommendationIdentifier":{ "shape":"AccountRecommendationIdentifier", "documentation":"The Recommendation identifier for AWS Trusted Advisor Priority recommendations
", "location":"uri", "locationName":"recommendationIdentifier" }, "updateReason":{ "shape":"RecommendationUpdateReason", "documentation":"Reason for the lifecycle stage change
" }, "updateReasonCode":{ "shape":"UpdateRecommendationLifecycleStageReasonCode", "documentation":"Reason code for the lifecycle state change
" } } }, "UpdateRecommendationLifecycleStage":{ "type":"string", "enum":[ "pending_response", "in_progress", "dismissed", "resolved" ] }, "UpdateRecommendationLifecycleStageReasonCode":{ "type":"string", "enum":[ "non_critical_account", "temporary_account", "valid_business_case", "other_methods_available", "low_priority", "not_applicable", "other" ] }, "UpdateRecommendationResourceExclusionError":{ "type":"structure", "members":{ "arn":{ "shape":"RecommendationResourceArn", "documentation":"The ARN of the Recommendation Resource
" }, "errorCode":{ "shape":"String", "documentation":"The error code
" }, "errorMessage":{ "shape":"String", "documentation":"The error message
" } }, "documentation":"The error entry for Recommendation Resource exclusion. Each entry is a combination of Recommendation Resource ARN, error code and error message
" }, "UpdateRecommendationResourceExclusionErrorList":{ "type":"list", "member":{"shape":"UpdateRecommendationResourceExclusionError"} }, "ValidationException":{ "type":"structure", "required":["message"], "members":{ "message":{"shape":"String"} }, "documentation":"Exception that the request failed to satisfy service constraints
", "error":{ "httpStatusCode":400, "senderFault":true }, "exception":true } }, "documentation":"TrustedAdvisor Public API
" }