SDK for PHP V3

Client: Aws\TrustedAdvisor\TrustedAdvisorClient
Service ID: trustedadvisor
Version: 2022-09-15

This page describes the parameters and results for the operations of the TrustedAdvisor Public API (2022-09-15), and shows how to use the Aws\TrustedAdvisor\TrustedAdvisorClient object to call the described operations. This documentation is specific to the 2022-09-15 API version of the service.

Operation Summary

Each of the following operations can be created from a client using $client->getCommand('CommandName'), where "CommandName" is the name of one of the following operations. Note: a command is a value that encapsulates an operation and the parameters used to create an HTTP request.

You can also create and send a command immediately using the magic methods available on a client object: $client->commandName(/* parameters */). You can send the command asynchronously (returning a promise) by appending the word "Async" to the operation name: $client->commandNameAsync(/* parameters */).

BatchUpdateRecommendationResourceExclusion ( array $params = [] )
Update one or more exclusion statuses for a list of recommendation resources.
GetOrganizationRecommendation ( array $params = [] )
Get a specific recommendation within an AWS Organizations organization.
GetRecommendation ( array $params = [] )
Get a specific Recommendation.
ListChecks ( array $params = [] )
List a filterable set of Checks.
ListOrganizationRecommendationAccounts ( array $params = [] )
Lists the accounts that own the resources for an organization aggregate recommendation.
ListOrganizationRecommendationResources ( array $params = [] )
List Resources of a Recommendation within an Organization.
ListOrganizationRecommendations ( array $params = [] )
List a filterable set of Recommendations within an Organization.
ListRecommendationResources ( array $params = [] )
List Resources of a Recommendation.
ListRecommendations ( array $params = [] )
List a filterable set of Recommendations.
UpdateOrganizationRecommendationLifecycle ( array $params = [] )
Update the lifecycle of a Recommendation within an Organization.
UpdateRecommendationLifecycle ( array $params = [] )
Update the lifecyle of a Recommendation.

Paginators

Paginators handle automatically iterating over paginated API results. Paginators are associated with specific API operations, and they accept the parameters that the corresponding API operation accepts. You can get a paginator from a client class using getPaginator($paginatorName, $operationParameters). This client supports the following paginators:

ListChecks
ListOrganizationRecommendationAccounts
ListOrganizationRecommendationResources
ListOrganizationRecommendations
ListRecommendationResources
ListRecommendations

Operations

BatchUpdateRecommendationResourceExclusion

$result = $client->batchUpdateRecommendationResourceExclusion([/* ... */]);
$promise = $client->batchUpdateRecommendationResourceExclusionAsync([/* ... */]);

Update one or more exclusion statuses for a list of recommendation resources. This API supports up to 25 unique recommendation resource ARNs per request. This API currently doesn't support prioritized recommendation resources. This API updates global recommendations, eliminating the need to call the API in each AWS Region. After submitting an exclusion update, note that it might take a few minutes for the changes to be reflected in the system.

Parameter Syntax

$result = $client->batchUpdateRecommendationResourceExclusion([
    'recommendationResourceExclusions' => [ // REQUIRED
        [
            'arn' => '<string>', // REQUIRED
            'isExcluded' => true || false, // REQUIRED
        ],
        // ...
    ],
]);

Parameter Details

Members
recommendationResourceExclusions
Required: Yes
Type: Array of RecommendationResourceExclusion structures

A list of recommendation resource ARNs and exclusion status to update

Result Syntax

[
    'batchUpdateRecommendationResourceExclusionErrors' => [
        [
            'arn' => '<string>',
            'errorCode' => '<string>',
            'errorMessage' => '<string>',
        ],
        // ...
    ],
]

Result Details

Members
batchUpdateRecommendationResourceExclusionErrors
Required: Yes
Type: Array of UpdateRecommendationResourceExclusionError structures

A list of recommendation resource ARNs whose exclusion status failed to update, if any

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

ConflictException:

Exception that the request was denied due to conflictions in state

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

Examples

Example 1: Batch updates the exclusion status for a list of recommendation resources
$result = $client->batchUpdateRecommendationResourceExclusion([
    'recommendationResourceExclusions' => [
        [
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/18959a1f1973cff8e706e9d9bde28bba36cd602a6b2cb86c8b61252835236010',
            'isExcluded' => 1,
        ],
    ],
]);

Result syntax:

[
    'batchUpdateRecommendationResourceExclusionErrors' => [
        [
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/18959a1f1973cff8e706e9d9bde28bba36cd602a6b2cb86c8b61252835236010',
            'errorCode' => '404',
            'errorMessage' => 'Exception that the requested resource has not been found',
        ],
    ],
]

GetOrganizationRecommendation

$result = $client->getOrganizationRecommendation([/* ... */]);
$promise = $client->getOrganizationRecommendationAsync([/* ... */]);

Get a specific recommendation within an AWS Organizations organization. This API supports only prioritized recommendations and provides global priority recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->getOrganizationRecommendation([
    'organizationRecommendationIdentifier' => '<string>', // REQUIRED
]);

Parameter Details

Members
organizationRecommendationIdentifier
Required: Yes
Type: string

The Recommendation identifier

Result Syntax

[
    'organizationRecommendation' => [
        'arn' => '<string>',
        'awsServices' => ['<string>', ...],
        'checkArn' => '<string>',
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'description' => '<string>',
        'id' => '<string>',
        'lastUpdatedAt' => <DateTime>,
        'lifecycleStage' => 'in_progress|pending_response|dismissed|resolved',
        'name' => '<string>',
        'pillarSpecificAggregates' => [
            'costOptimizing' => [
                'estimatedMonthlySavings' => <float>,
                'estimatedPercentMonthlySavings' => <float>,
            ],
        ],
        'pillars' => ['<string>', ...],
        'resolvedAt' => <DateTime>,
        'resourcesAggregates' => [
            'errorCount' => <integer>,
            'excludedCount' => <integer>,
            'okCount' => <integer>,
            'warningCount' => <integer>,
        ],
        'source' => 'aws_config|compute_optimizer|cost_explorer|lse|manual|pse|rds|resilience|resilience_hub|security_hub|stir|ta_check|well_architected|cost_optimization_hub',
        'status' => 'ok|warning|error',
        'type' => 'standard|priority',
        'updateReason' => '<string>',
        'updateReasonCode' => 'non_critical_account|temporary_account|valid_business_case|other_methods_available|low_priority|not_applicable|other',
        'updatedOnBehalfOf' => '<string>',
        'updatedOnBehalfOfJobTitle' => '<string>',
    ],
]

Result Details

Members
organizationRecommendation
Type: OrganizationRecommendation structure

The Recommendation

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

ResourceNotFoundException:

Exception that the requested resource has not been found

Examples

Example 1: Get an AWS Organization's Recommendation by ARN
$result = $client->getOrganizationRecommendation([
    'organizationRecommendationIdentifier' => 'arn:aws:trustedadvisor:::organization-recommendation/9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
]);

Result syntax:

[
    'organizationRecommendation' => [
        'name' => 'Lambda Runtime Deprecation Warning',
        'type' => 'priority',
        'arn' => 'arn:aws:trustedadvisor:::organization-recommendation/9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
        'awsServices' => [
            'lambda',
        ],
        'checkArn' => 'arn:aws:trustedadvisor:::check/L4dfs2Q4C5',
        'description' => 'One or more lambdas are using a deprecated runtime',
        'id' => '9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
        'lifecycleStage' => 'resolved',
        'pillars' => [
            'security',
        ],
        'resourcesAggregates' => [
            'errorCount' => 0,
            'okCount' => 0,
            'warningCount' => 0,
        ],
        'source' => 'ta_check',
        'status' => 'warning',
    ],
]

GetRecommendation

$result = $client->getRecommendation([/* ... */]);
$promise = $client->getRecommendationAsync([/* ... */]);

Get a specific Recommendation. This API provides global recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->getRecommendation([
    'language' => 'en|ja|zh|fr|de|ko|zh_TW|it|es|pt_BR|id',
    'recommendationIdentifier' => '<string>', // REQUIRED
]);

Parameter Details

Members
language
Type: string

The ISO 639-1 code for the language that you want your recommendations to appear in.

recommendationIdentifier
Required: Yes
Type: string

The Recommendation identifier

Result Syntax

[
    'recommendation' => [
        'arn' => '<string>',
        'awsServices' => ['<string>', ...],
        'checkArn' => '<string>',
        'createdAt' => <DateTime>,
        'createdBy' => '<string>',
        'description' => '<string>',
        'id' => '<string>',
        'lastUpdatedAt' => <DateTime>,
        'lifecycleStage' => 'in_progress|pending_response|dismissed|resolved',
        'name' => '<string>',
        'pillarSpecificAggregates' => [
            'costOptimizing' => [
                'estimatedMonthlySavings' => <float>,
                'estimatedPercentMonthlySavings' => <float>,
            ],
        ],
        'pillars' => ['<string>', ...],
        'resolvedAt' => <DateTime>,
        'resourcesAggregates' => [
            'errorCount' => <integer>,
            'excludedCount' => <integer>,
            'okCount' => <integer>,
            'warningCount' => <integer>,
        ],
        'source' => 'aws_config|compute_optimizer|cost_explorer|lse|manual|pse|rds|resilience|resilience_hub|security_hub|stir|ta_check|well_architected|cost_optimization_hub',
        'status' => 'ok|warning|error',
        'statusReason' => 'no_data_ok',
        'type' => 'standard|priority',
        'updateReason' => '<string>',
        'updateReasonCode' => 'non_critical_account|temporary_account|valid_business_case|other_methods_available|low_priority|not_applicable|other',
        'updatedOnBehalfOf' => '<string>',
        'updatedOnBehalfOfJobTitle' => '<string>',
    ],
]

Result Details

Members
recommendation
Type: Recommendation structure

The Recommendation

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

ResourceNotFoundException:

Exception that the requested resource has not been found

Examples

Example 1: Get a Recommendation by ARN
$result = $client->getRecommendation([
    'recommendationIdentifier' => 'arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578',
]);

Result syntax:

[
    'recommendation' => [
        'name' => 'MFA Recommendation',
        'type' => 'standard',
        'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578',
        'awsServices' => [
            'iam',
        ],
        'checkArn' => 'arn:aws:trustedadvisor:::check/7DAFEmoDos',
        'description' => 'Enable multi-factor authentication',
        'id' => '55fa4d2e-bbb7-491a-833b-5773e9589578',
        'lastUpdatedAt' => ,
        'pillarSpecificAggregates' => [
            'costOptimizing' => [
                'estimatedMonthlySavings' => 0,
                'estimatedPercentMonthlySavings' => 0,
            ],
        ],
        'pillars' => [
            'security',
        ],
        'resourcesAggregates' => [
            'errorCount' => 1,
            'okCount' => 0,
            'warningCount' => 0,
        ],
        'source' => 'ta_check',
        'status' => 'error',
    ],
]

ListChecks

$result = $client->listChecks([/* ... */]);
$promise = $client->listChecksAsync([/* ... */]);

List a filterable set of Checks. This API provides global recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->listChecks([
    'awsService' => '<string>',
    'language' => 'en|ja|zh|fr|de|ko|zh_TW|it|es|pt_BR|id',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'pillar' => 'cost_optimizing|performance|security|service_limits|fault_tolerance|operational_excellence',
    'source' => 'aws_config|compute_optimizer|cost_explorer|lse|manual|pse|rds|resilience|resilience_hub|security_hub|stir|ta_check|well_architected|cost_optimization_hub',
]);

Parameter Details

Members
awsService
Type: string

The aws service associated with the check

language
Type: string

The ISO 639-1 code for the language that you want your checks to appear in.

maxResults
Type: int

The maximum number of results to return per page.

nextToken
Type: string

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.

pillar
Type: string

The pillar of the check

source
Type: string

The source of the check

Result Syntax

[
    'checkSummaries' => [
        [
            'arn' => '<string>',
            'awsServices' => ['<string>', ...],
            'description' => '<string>',
            'id' => '<string>',
            'metadata' => ['<string>', ...],
            'name' => '<string>',
            'pillars' => ['<string>', ...],
            'source' => 'aws_config|compute_optimizer|cost_explorer|lse|manual|pse|rds|resilience|resilience_hub|security_hub|stir|ta_check|well_architected|cost_optimization_hub',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
checkSummaries
Required: Yes
Type: Array of CheckSummary structures

The list of Checks

nextToken
Type: string

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.

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

Examples

Example 1: List all AWS Trusted Advisor Checks
$result = $client->listChecks([
]);

Result syntax:

[
    'checkSummaries' => [
        [
            'metadata' => [
                '0' => 'Region',
                '1' => 'Security Group Name',
                '2' => 'Security Group ID',
                '3' => 'Protocol',
                '4' => 'Port',
                '5' => 'Status',
                '6' => 'IP Range',
            ],
            'name' => 'Security Groups - Unrestricted Access',
            'arn' => 'arn:aws:trustedadvisor:::check/1iG5NDGVre',
            'awsServices' => [
                'EC2',
            ],
            'description' => 'Checks security groups for rules that allow unrestricted access to a resource. Unrestricted access increases opportunities for malicious activity (hacking, denial-of-service attacks, loss of data).

Note: This check only evaluates security groups that you create and their inbound rules for IPv4 addresses. Security groups created by AWS Directory Services are flagged as red or yellow, but they don’t pose a security risk and can be safely ignored or excluded. For more information, see the Trusted Advisor FAQ.

Alert Criteria


Red: A security group rule has a source IP address with a /0 suffix for ports other than 25, 80, or 443.

Recommended Action


Restrict access to only those IP addresses that require it. To restrict access to a specific IP address, set the suffix to /32 (for example, 192.0.2.10/32). Be sure to delete overly permissive rules after creating rules that are more restrictive.

Additional Resources


Amazon EC2 Security Groups
Classless Inter-Domain Routing (Wikipedia)', 'id' => '1iG5NDGVre', 'pillars' => [ 'security', ], 'source' => 'ta_check', ], [ 'metadata' => [ '0' => 'Region', '1' => 'Family', '2' => 'Upfront Cost of Reserved Instances', '3' => 'Estimated cost of Reserved Instances (monthly)', '4' => 'Estimated On-Demand Cost Post Recommended Reserved Instance Purchase (monthly)', '5' => 'Estimated Break Even (months)', '6' => 'Lookback Period (days)', '7' => 'Term (years)', '8' => 'Instance Type', '9' => 'License Model', '10' => 'Database Edition', '11' => 'Database Engine', '12' => 'Deployment Option', '13' => 'Recommended number of Reserved Instances to purchase', '14' => 'Expected Average Reserved Instance Utilization', '15' => 'Estimated Savings with Recommendation (monthly)', ], 'name' => 'Amazon Relational Database Service (RDS) Reserved Instance Optimization', 'arn' => 'arn:aws:trustedadvisor:::check/1qazXsw23e', 'awsServices' => [ 'RDS', ], 'description' => 'Checks your usage of RDS and provides recommendations on purchase of Reserved Instances to help reduce costs incurred from using RDS On-Demand. AWS generates these recommendations by analyzing your On-Demand usage for the past 30 days. We then simulate every combination of reservations in the generated category of usage in order to identify the best number of each type of Reserved Instance to purchase to maximize your savings. This check covers recommendations based on partial upfront payment option with 1-year or 3-year commitment. This check is not available to accounts linked in Consolidated Billing. Recommendations are only available for the Paying Account.

Alert Criteria


Yellow: Optimizing the purchase of RDS Reserved Instances can help reduce costs.

Recommended Action


See the Cost Explorer page for more detailed recommendations, customization options (e.g. look-back period, payment option, etc.) and to purchase RDS Reserved Instances.

Additional Resources


Information on RDS Reserved Instances and how they can save you money can be found here.
For more information on this recommendation, see Reserved Instance Optimization Check Questions in the Trusted Advisor FAQs.
For more detailed description of fields, see Cost Explorer documentation', 'id' => '1qazXsw23e', 'pillars' => [ 'cost_optimizing', ], 'source' => 'ta_check', ], [ 'metadata' => [ '0' => 'Region', '1' => 'Family', '2' => 'Lookback Period (days)', '3' => 'Term (years)', '4' => 'Node Type', '5' => 'Recommended number of Reserved Nodes to purchase', '6' => 'Expected Average Reserved Node Utilization', '7' => 'Estimated Savings with Recommendation (monthly)', '8' => 'Upfront Cost of Reserved Nodes', '9' => 'Estimated cost of Reserved Nodes (monthly)', '10' => 'Estimated On-Demand Cost Post Recommended Reserved Nodes Purchase (monthly)', '11' => 'Estimated Break Even (months)', ], 'name' => 'Amazon Redshift Reserved Node Optimization', 'arn' => 'arn:aws:trustedadvisor:::check/1qw23er45t', 'awsServices' => [ 'Redshift', ], 'description' => 'Checks your usage of Redshift and provides recommendations on purchase of Reserved Nodes to help reduce costs incurred from using Redshift On-Demand. AWS generates these recommendations by analyzing your On-Demand usage for the past 30 days. We then simulate every combination of reservations in the generated category of usage in order to identify the best number of each type of Reserved Nodes to purchase to maximize your savings. This check covers recommendations based on partial upfront payment option with 1-year or 3-year commitment. This check is not available to accounts linked in Consolidated Billing. Recommendations are only available for the Paying Account.

Alert Criteria


Yellow: Optimizing the purchase of Redshift Reserved Nodes can help reduce costs.

Recommended Action


See the Cost Explorer page for more detailed recommendations, customization options (e.g. look-back period, payment option, etc.) and to purchase Redshift Reserved Nodes.

Additional Resources


Information on Redshift Reserved Nodes and how they can save you money can be found here.
For more information on this recommendation, see Reserved Instance Optimization Check Questions in the Trusted Advisor FAQs.
For more detailed description of fields, see Cost Explorer documentation', 'id' => '1qw23er45t', 'pillars' => [ 'cost_optimizing', ], 'source' => 'ta_check', ], ], 'nextToken' => '', ]

ListOrganizationRecommendationAccounts

$result = $client->listOrganizationRecommendationAccounts([/* ... */]);
$promise = $client->listOrganizationRecommendationAccountsAsync([/* ... */]);

Lists the accounts that own the resources for an organization aggregate recommendation. This API only supports prioritized recommendations and provides global priority recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->listOrganizationRecommendationAccounts([
    'affectedAccountId' => '<string>',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'organizationRecommendationIdentifier' => '<string>', // REQUIRED
]);

Parameter Details

Members
affectedAccountId
Type: string

An account affected by this organization recommendation

maxResults
Type: int

The maximum number of results to return per page.

nextToken
Type: string

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.

organizationRecommendationIdentifier
Required: Yes
Type: string

The Recommendation identifier

Result Syntax

[
    'accountRecommendationLifecycleSummaries' => [
        [
            'accountId' => '<string>',
            'accountRecommendationArn' => '<string>',
            'lastUpdatedAt' => <DateTime>,
            'lifecycleStage' => 'in_progress|pending_response|dismissed|resolved',
            'updateReason' => '<string>',
            'updateReasonCode' => 'non_critical_account|temporary_account|valid_business_case|other_methods_available|low_priority|not_applicable|other',
            'updatedOnBehalfOf' => '<string>',
            'updatedOnBehalfOfJobTitle' => '<string>',
        ],
        // ...
    ],
    'nextToken' => '<string>',
]

Result Details

Members
accountRecommendationLifecycleSummaries
Required: Yes
Type: Array of AccountRecommendationLifecycleSummary structures

The account recommendations lifecycles that are applicable to the Recommendation

nextToken
Type: string

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.

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

ResourceNotFoundException:

Exception that the requested resource has not been found

Examples

Example 1: List all Accounts for an AWS Organization's Recommendation
$result = $client->listOrganizationRecommendationAccounts([
    'organizationRecommendationIdentifier' => 'arn:aws:trustedadvisor:::organization-recommendation/9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
]);

Result syntax:

[
    'accountRecommendationLifecycleSummaries' => [
        [
            'accountId' => '000000000000',
            'accountRecommendationArn' => 'arn:aws:trustedadvisor::000000000000:recommendation/9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
            'lastUpdatedAt' => ,
            'lifecycleStage' => 'resolved',
            'updateReason' => 'Resolved issue',
            'updateReasonCode' => 'valid_business_case',
        ],
    ],
    'nextToken' => '',
]

ListOrganizationRecommendationResources

$result = $client->listOrganizationRecommendationResources([/* ... */]);
$promise = $client->listOrganizationRecommendationResourcesAsync([/* ... */]);

List Resources of a Recommendation within an Organization. This API only supports prioritized recommendations and provides global priority recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->listOrganizationRecommendationResources([
    'affectedAccountId' => '<string>',
    'exclusionStatus' => 'excluded|included',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'organizationRecommendationIdentifier' => '<string>', // REQUIRED
    'regionCode' => '<string>',
    'status' => 'ok|warning|error',
]);

Parameter Details

Members
affectedAccountId
Type: string

An account affected by this organization recommendation

exclusionStatus
Type: string

The exclusion status of the resource

maxResults
Type: int

The maximum number of results to return per page.

nextToken
Type: string

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.

organizationRecommendationIdentifier
Required: Yes
Type: string

The AWS Organization organization's Recommendation identifier

regionCode
Type: string

The AWS Region code of the resource

status
Type: string

The status of the resource

Result Syntax

[
    'nextToken' => '<string>',
    'organizationRecommendationResourceSummaries' => [
        [
            'accountId' => '<string>',
            'arn' => '<string>',
            'awsResourceId' => '<string>',
            'exclusionStatus' => 'excluded|included',
            'id' => '<string>',
            'lastUpdatedAt' => <DateTime>,
            'metadata' => ['<string>', ...],
            'recommendationArn' => '<string>',
            'regionCode' => '<string>',
            'status' => 'ok|warning|error',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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
Required: Yes
Type: Array of OrganizationRecommendationResourceSummary structures

A list of Recommendation Resources

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

ResourceNotFoundException:

Exception that the requested resource has not been found

Examples

Example 1: List all Resources for an AWS Organization's Recommendation
$result = $client->listOrganizationRecommendationResources([
    'organizationRecommendationIdentifier' => 'arn:aws:trustedadvisor:::organization-recommendation/5a694939-2e54-45a2-ae72-730598fa89d0',
]);

Result syntax:

[
    'nextToken' => '',
    'organizationRecommendationResourceSummaries' => [
        [
            'metadata' => [
                '0' => '14',
                '1' => '208.79999999999998',
                '2' => 'database-1-instance-1',
                '3' => 'db.r5.large',
                '4' => 'false',
                '5' => 'us-west-2',
                '6' => 'arn:aws:rds:us-west-2:000000000000:db:database-1-instance-1',
                '7' => '1',
            ],
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation-resource/5a694939-2e54-45a2-ae72-730598fa89d0/bb38affc0ce0681d9a6cd13f30238ba03a8f63dfe7a379dc403c619119d86af',
            'awsResourceId' => 'database-1-instance-1',
            'exclusionStatus' => 'excluded',
            'id' => 'bb38affc0ce0681d9a6cd13f302383ba03a8f63dfe7a379dc403c619119d86af',
            'lastUpdatedAt' => ,
            'recommendationArn' => 'arn:aws:trustedadvisor:::organization-recommendation/5a694939-2e54-45a2-ae72-730598fa89d0',
            'regionCode' => 'us-west-2',
            'status' => 'warning',
        ],
        [
            'metadata' => [
                '0' => '14',
                '1' => '31.679999999999996',
                '2' => 'database-1',
                '3' => 'db.t3.small',
                '4' => 'false',
                '5' => 'us-west-2',
                '6' => 'arn:aws:rds:us-west-2:000000000000:db:database-1',
                '7' => '20',
            ],
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation-resource/5a694939-2e54-45a2-ae72-730598fa89d0/51fded4d7a3278818df9cfe344ff5762cec46c095a6763d1ba1ba53bd0e1b0e6',
            'awsResourceId' => 'database-1',
            'exclusionStatus' => 'excluded',
            'id' => '51fded4d7a3278818df9cfe344ff5762cec46c095a6763d1ba1ba53bd0e1b0e6',
            'lastUpdatedAt' => ,
            'recommendationArn' => 'arn:aws:trustedadvisor:::organization-recommendation/5a694939-2e54-45a2-ae72-730598fa89d0',
            'regionCode' => 'us-west-2',
            'status' => 'warning',
        ],
        [
            'metadata' => [
                '0' => '14',
                '1' => '187.20000000000002',
                '2' => 'database-2-instance-1-us-west-2a',
                '3' => 'db.r6g.large',
                '4' => 'true',
                '5' => 'us-west-2',
                '6' => 'arn:aws:rds:us-west-2:000000000000:db:database-2-instance-1-us-west-2a',
                '7' => '1',
            ],
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation-resource/5a694939-2e54-45a2-ae72-730598fa89d0/f4d01bd20f4cd5372062aafc8786c489e48f0ead7cdab121463bf9f89e40a36b',
            'awsResourceId' => 'database-2-instance-1-us-west-2a',
            'exclusionStatus' => 'included',
            'id' => 'f4d01bd20f4cd5372062aafc8786c489e48f0ead7cdab121463bf9f89e40a36b',
            'lastUpdatedAt' => ,
            'recommendationArn' => 'arn:aws:trustedadvisor:::organization-recommendation/5a694939-2e54-45a2-ae72-730598fa89d0',
            'regionCode' => 'us-west-2',
            'status' => 'warning',
        ],
    ],
]

ListOrganizationRecommendations

$result = $client->listOrganizationRecommendations([/* ... */]);
$promise = $client->listOrganizationRecommendationsAsync([/* ... */]);

List a filterable set of Recommendations within an Organization. This API only supports prioritized recommendations and provides global priority recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->listOrganizationRecommendations([
    'afterLastUpdatedAt' => <integer || string || DateTime>,
    'awsService' => '<string>',
    'beforeLastUpdatedAt' => <integer || string || DateTime>,
    'checkIdentifier' => '<string>',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'pillar' => 'cost_optimizing|performance|security|service_limits|fault_tolerance|operational_excellence',
    'source' => 'aws_config|compute_optimizer|cost_explorer|lse|manual|pse|rds|resilience|resilience_hub|security_hub|stir|ta_check|well_architected|cost_optimization_hub',
    'status' => 'ok|warning|error',
    'type' => 'standard|priority',
]);

Parameter Details

Members
afterLastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

After the last update of the Recommendation

awsService
Type: string

The aws service associated with the Recommendation

beforeLastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

Before the last update of the Recommendation

checkIdentifier
Type: string

The check identifier of the Recommendation

maxResults
Type: int

The maximum number of results to return per page.

nextToken
Type: string

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.

pillar
Type: string

The pillar of the Recommendation

source
Type: string

The source of the Recommendation

status
Type: string

The status of the Recommendation

type
Type: string

The type of the Recommendation

Result Syntax

[
    'nextToken' => '<string>',
    'organizationRecommendationSummaries' => [
        [
            'arn' => '<string>',
            'awsServices' => ['<string>', ...],
            'checkArn' => '<string>',
            'createdAt' => <DateTime>,
            'id' => '<string>',
            'lastUpdatedAt' => <DateTime>,
            'lifecycleStage' => 'in_progress|pending_response|dismissed|resolved',
            'name' => '<string>',
            'pillarSpecificAggregates' => [
                'costOptimizing' => [
                    'estimatedMonthlySavings' => <float>,
                    'estimatedPercentMonthlySavings' => <float>,
                ],
            ],
            'pillars' => ['<string>', ...],
            'resourcesAggregates' => [
                'errorCount' => <integer>,
                'excludedCount' => <integer>,
                'okCount' => <integer>,
                'warningCount' => <integer>,
            ],
            'source' => 'aws_config|compute_optimizer|cost_explorer|lse|manual|pse|rds|resilience|resilience_hub|security_hub|stir|ta_check|well_architected|cost_optimization_hub',
            'status' => 'ok|warning|error',
            'type' => 'standard|priority',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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
Required: Yes
Type: Array of OrganizationRecommendationSummary structures

The list of Recommendations

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

Examples

Example 1: List all of an AWS Organization's Recommendations
$result = $client->listOrganizationRecommendations([
]);

Result syntax:

[
    'nextToken' => '',
    'organizationRecommendationSummaries' => [
        [
            'name' => 'Lambda Runtime Deprecation Warning',
            'type' => 'priority',
            'arn' => 'arn:aws:trustedadvisor:::organization-recommendation/9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
            'awsServices' => [
                'lambda',
            ],
            'checkArn' => 'arn:aws:trustedadvisor:::check/L4dfs2Q4C5',
            'id' => '9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
            'lifecycleStage' => 'resolved',
            'pillars' => [
                'security',
            ],
            'resourcesAggregates' => [
                'errorCount' => 0,
                'okCount' => 0,
                'warningCount' => 0,
            ],
            'source' => 'ta_check',
            'status' => 'warning',
        ],
        [
            'name' => 'Lambda Runtime Deprecation Warning',
            'type' => 'priority',
            'arn' => 'arn:aws:trustedadvisor:::organization-recommendation/4ecff4d4-1bc1-4c99-a5b8-0fff9ee500d6',
            'awsServices' => [
                'lambda',
            ],
            'checkArn' => 'arn:aws:trustedadvisor:::check/L4dfs2Q4C5',
            'id' => '4ecff4d4-1bc1-4c99-a5b8-0fff9ee500d6',
            'lifecycleStage' => 'resolved',
            'pillars' => [
                'security',
            ],
            'resourcesAggregates' => [
                'errorCount' => 0,
                'okCount' => 0,
                'warningCount' => 0,
            ],
            'source' => 'ta_check',
            'status' => 'warning',
        ],
    ],
]
Example 2: Filter and return a max of one AWS Organization Recommendation that is a part of the "security" pillar
$result = $client->listOrganizationRecommendations([
    'maxResults' => 100,
    'pillar' => 'security',
]);

Result syntax:

[
    'nextToken' => '',
    'organizationRecommendationSummaries' => [
        [
            'name' => 'Lambda Runtime Deprecation Warning',
            'type' => 'priority',
            'arn' => 'arn:aws:trustedadvisor:::organization-recommendation/9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
            'awsServices' => [
                'lambda',
            ],
            'checkArn' => 'arn:aws:trustedadvisor:::check/L4dfs2Q4C5',
            'id' => '9534ec9b-bf3a-44e8-8213-2ed68b39d9d5',
            'lifecycleStage' => 'resolved',
            'pillars' => [
                'security',
            ],
            'resourcesAggregates' => [
                'errorCount' => 0,
                'okCount' => 0,
                'warningCount' => 0,
            ],
            'source' => 'ta_check',
            'status' => 'warning',
        ],
    ],
]
Example 3: Use the "nextToken" returned from a previous request to fetch the next page of filtered AWS Organization Recommendations that are a part of the "security" pillar
$result = $client->listOrganizationRecommendations([
    'maxResults' => 100,
    'nextToken' => '',
    'pillar' => 'security',
]);

Result syntax:

[
    'organizationRecommendationSummaries' => [
        [
            'name' => 'Lambda Runtime Deprecation Warning',
            'type' => 'priority',
            'arn' => 'arn:aws:trustedadvisor:::organization-recommendation/4ecff4d4-1bc1-4c99-a5b8-0fff9ee500d6',
            'awsServices' => [
                'lambda',
            ],
            'checkArn' => 'arn:aws:trustedadvisor:::check/L4dfs2Q4C5',
            'id' => '4ecff4d4-1bc1-4c99-a5b8-0fff9ee500d6',
            'lifecycleStage' => 'resolved',
            'pillars' => [
                'security',
            ],
            'resourcesAggregates' => [
                'errorCount' => 0,
                'okCount' => 0,
                'warningCount' => 0,
            ],
            'source' => 'ta_check',
            'status' => 'warning',
        ],
    ],
]

ListRecommendationResources

$result = $client->listRecommendationResources([/* ... */]);
$promise = $client->listRecommendationResourcesAsync([/* ... */]);

List Resources of a Recommendation. This API provides global recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->listRecommendationResources([
    'exclusionStatus' => 'excluded|included',
    'language' => 'en|ja|zh|fr|de|ko|zh_TW|it|es|pt_BR|id',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'recommendationIdentifier' => '<string>', // REQUIRED
    'regionCode' => '<string>',
    'status' => 'ok|warning|error',
]);

Parameter Details

Members
exclusionStatus
Type: string

The exclusion status of the resource

language
Type: string

The ISO 639-1 code for the language that you want your recommendations to appear in.

maxResults
Type: int

The maximum number of results to return per page.

nextToken
Type: string

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.

recommendationIdentifier
Required: Yes
Type: string

The Recommendation identifier

regionCode
Type: string

The AWS Region code of the resource

status
Type: string

The status of the resource

Result Syntax

[
    'nextToken' => '<string>',
    'recommendationResourceSummaries' => [
        [
            'arn' => '<string>',
            'awsResourceId' => '<string>',
            'exclusionStatus' => 'excluded|included',
            'id' => '<string>',
            'lastUpdatedAt' => <DateTime>,
            'metadata' => ['<string>', ...],
            'recommendationArn' => '<string>',
            'regionCode' => '<string>',
            'status' => 'ok|warning|error',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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
Required: Yes
Type: Array of RecommendationResourceSummary structures

A list of Recommendation Resources

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

ResourceNotFoundException:

Exception that the requested resource has not been found

Examples

Example 1: List all Resources for a Recommendation
$result = $client->listRecommendationResources([
    'recommendationIdentifier' => 'arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578',
]);

Result syntax:

[
    'nextToken' => '',
    'recommendationResourceSummaries' => [
        [
            'metadata' => [
                '0' => '14',
                '1' => '123.12000000000002',
                '2' => 'webcms-dev-01',
                '3' => 'db.m6i.large',
                '4' => 'false',
                '5' => 'us-east-1',
                '6' => 'arn:aws:rds:us-east-1:000000000000:db:webcms-dev-01',
                '7' => '20',
            ],
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/18959a1f1973cff8e706e9d9bde28bba36cd602a6b2cb86c8b61252835236010',
            'awsResourceId' => 'webcms-dev-01',
            'exclusionStatus' => 'excluded',
            'id' => '18959a1f1973cff8e706e9d9bde28bba36cd602a6b2cb86c8b61252835236010',
            'lastUpdatedAt' => ,
            'recommendationArn' => 'arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578',
            'regionCode' => 'us-east-1',
            'status' => 'warning',
        ],
        [
            'metadata' => [
                '0' => '14',
                '1' => '29.52',
                '2' => 'aws-dev-db-stack-instance-1',
                '3' => 'db.t2.small',
                '4' => 'false',
                '5' => 'us-east-1',
                '6' => 'arn:aws:rds:us-east-1:000000000000:db:aws-dev-db-stack-instance-1',
                '7' => '1',
            ],
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/e6367ff500ac90db8e4adeb4892e39ee9c36bbf812dcbce4b9e4fefcec9eb63e',
            'awsResourceId' => 'aws-dev-db-stack-instance-1',
            'exclusionStatus' => 'included',
            'id' => 'e6367ff500ac90db8e4adeb4892e39ee9c36bbf812dcbce4b9e4fefcec9eb63e',
            'lastUpdatedAt' => ,
            'recommendationArn' => 'arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578',
            'regionCode' => 'us-east-1',
            'status' => 'warning',
        ],
        [
            'metadata' => [
                '0' => '14',
                '1' => '114.48000000000002',
                '2' => 'aws-awesome-apps-stack-db',
                '3' => 'db.m6g.large',
                '4' => 'false',
                '5' => 'us-east-1',
                '6' => 'arn:aws:rds:us-east-1:000000000000:db:aws-awesome-apps-stack-db',
                '7' => '100',
            ],
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation-resource/55fa4d2e-bbb7-491a-833b-5773e9589578/31aa78ba050a5015d2d38cca7f5f1ce88f70857c4e1c3ad03f8f9fd95dad7459',
            'awsResourceId' => 'aws-awesome-apps-stack-db',
            'exclusionStatus' => 'excluded',
            'id' => '31aa78ba050a5015d2d38cca7f5f1ce88f70857c4e1c3ad03f8f9fd95dad7459',
            'lastUpdatedAt' => ,
            'recommendationArn' => 'arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578',
            'regionCode' => 'us-east-1',
            'status' => 'warning',
        ],
    ],
]

ListRecommendations

$result = $client->listRecommendations([/* ... */]);
$promise = $client->listRecommendationsAsync([/* ... */]);

List a filterable set of Recommendations. This API provides global recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->listRecommendations([
    'afterLastUpdatedAt' => <integer || string || DateTime>,
    'awsService' => '<string>',
    'beforeLastUpdatedAt' => <integer || string || DateTime>,
    'checkIdentifier' => '<string>',
    'language' => 'en|ja|zh|fr|de|ko|zh_TW|it|es|pt_BR|id',
    'maxResults' => <integer>,
    'nextToken' => '<string>',
    'pillar' => 'cost_optimizing|performance|security|service_limits|fault_tolerance|operational_excellence',
    'source' => 'aws_config|compute_optimizer|cost_explorer|lse|manual|pse|rds|resilience|resilience_hub|security_hub|stir|ta_check|well_architected|cost_optimization_hub',
    'status' => 'ok|warning|error',
    'type' => 'standard|priority',
]);

Parameter Details

Members
afterLastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

After the last update of the Recommendation

awsService
Type: string

The aws service associated with the Recommendation

beforeLastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

Before the last update of the Recommendation

checkIdentifier
Type: string

The check identifier of the Recommendation

language
Type: string

The ISO 639-1 code for the language that you want your recommendations to appear in.

maxResults
Type: int

The maximum number of results to return per page.

nextToken
Type: string

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.

pillar
Type: string

The pillar of the Recommendation

source
Type: string

The source of the Recommendation

status
Type: string

The status of the Recommendation

type
Type: string

The type of the Recommendation

Result Syntax

[
    'nextToken' => '<string>',
    'recommendationSummaries' => [
        [
            'arn' => '<string>',
            'awsServices' => ['<string>', ...],
            'checkArn' => '<string>',
            'createdAt' => <DateTime>,
            'id' => '<string>',
            'lastUpdatedAt' => <DateTime>,
            'lifecycleStage' => 'in_progress|pending_response|dismissed|resolved',
            'name' => '<string>',
            'pillarSpecificAggregates' => [
                'costOptimizing' => [
                    'estimatedMonthlySavings' => <float>,
                    'estimatedPercentMonthlySavings' => <float>,
                ],
            ],
            'pillars' => ['<string>', ...],
            'resourcesAggregates' => [
                'errorCount' => <integer>,
                'excludedCount' => <integer>,
                'okCount' => <integer>,
                'warningCount' => <integer>,
            ],
            'source' => 'aws_config|compute_optimizer|cost_explorer|lse|manual|pse|rds|resilience|resilience_hub|security_hub|stir|ta_check|well_architected|cost_optimization_hub',
            'status' => 'ok|warning|error',
            'statusReason' => 'no_data_ok',
            'type' => 'standard|priority',
        ],
        // ...
    ],
]

Result Details

Members
nextToken
Type: string

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
Required: Yes
Type: Array of RecommendationSummary structures

The list of Recommendations

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

Examples

Example 1: List all Recommendations
$result = $client->listRecommendations([
]);

Result syntax:

[
    'nextToken' => '',
    'recommendationSummaries' => [
        [
            'name' => 'MFA Recommendation',
            'type' => 'standard',
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578',
            'awsServices' => [
                'iam',
            ],
            'checkArn' => 'arn:aws:trustedadvisor:::check/7DAFEmoDos',
            'id' => '55fa4d2e-bbb7-491a-833b-5773e9589578',
            'lastUpdatedAt' => ,
            'pillarSpecificAggregates' => [
                'costOptimizing' => [
                    'estimatedMonthlySavings' => 0,
                    'estimatedPercentMonthlySavings' => 0,
                ],
            ],
            'pillars' => [
                'security',
            ],
            'resourcesAggregates' => [
                'errorCount' => 1,
                'okCount' => 0,
                'warningCount' => 0,
            ],
            'source' => 'ta_check',
            'status' => 'error',
        ],
        [
            'name' => 'RDS clusters quota warning',
            'type' => 'standard',
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation/8b602b6f-452d-4cb2-8a9e-c7650955d9cd',
            'awsServices' => [
                'rds',
            ],
            'checkArn' => 'arn:aws:trustedadvisor:::check/gjqMBn6pjz',
            'id' => '8b602b6f-452d-4cb2-8a9e-c7650955d9cd',
            'lastUpdatedAt' => ,
            'pillarSpecificAggregates' => [
                'costOptimizing' => [
                    'estimatedMonthlySavings' => 0,
                    'estimatedPercentMonthlySavings' => 0,
                ],
            ],
            'pillars' => [
                'service_limits',
            ],
            'resourcesAggregates' => [
                'errorCount' => 0,
                'okCount' => 3,
                'warningCount' => 6,
            ],
            'source' => 'ta_check',
            'status' => 'warning',
        ],
    ],
]
Example 2: Filter and return a max of one Recommendation that is a part of AWS IAM
$result = $client->listRecommendations([
    'awsService' => 'iam',
    'maxResults' => 100,
]);

Result syntax:

[
    'nextToken' => '',
    'recommendationSummaries' => [
        [
            'name' => 'MFA Recommendation',
            'type' => 'standard',
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578',
            'awsServices' => [
                'iam',
            ],
            'checkArn' => 'arn:aws:trustedadvisor:::check/7DAFEmoDos',
            'id' => '55fa4d2e-bbb7-491a-833b-5773e9589578',
            'lastUpdatedAt' => ,
            'pillarSpecificAggregates' => [
                'costOptimizing' => [
                    'estimatedMonthlySavings' => 0,
                    'estimatedPercentMonthlySavings' => 0,
                ],
            ],
            'pillars' => [
                'security',
            ],
            'resourcesAggregates' => [
                'errorCount' => 1,
                'okCount' => 0,
                'warningCount' => 0,
            ],
            'source' => 'ta_check',
            'status' => 'error',
        ],
    ],
]
Example 3: Use the "nextToken" returned from a previous request to fetch the next page of filtered Recommendations
$result = $client->listRecommendations([
    'awsService' => 'rds',
    'maxResults' => 100,
    'nextToken' => '',
]);

Result syntax:

[
    'recommendationSummaries' => [
        [
            'name' => 'RDS clusters quota warning',
            'type' => 'standard',
            'arn' => 'arn:aws:trustedadvisor::000000000000:recommendation/8b602b6f-452d-4cb2-8a9e-c7650955d9cd',
            'awsServices' => [
                'rds',
            ],
            'checkArn' => 'arn:aws:trustedadvisor:::check/gjqMBn6pjz',
            'id' => '8b602b6f-452d-4cb2-8a9e-c7650955d9cd',
            'lastUpdatedAt' => ,
            'pillarSpecificAggregates' => [
                'costOptimizing' => [
                    'estimatedMonthlySavings' => 0,
                    'estimatedPercentMonthlySavings' => 0,
                ],
            ],
            'pillars' => [
                'service_limits',
            ],
            'resourcesAggregates' => [
                'errorCount' => 0,
                'okCount' => 3,
                'warningCount' => 6,
            ],
            'source' => 'ta_check',
            'status' => 'warning',
        ],
    ],
]

UpdateOrganizationRecommendationLifecycle

$result = $client->updateOrganizationRecommendationLifecycle([/* ... */]);
$promise = $client->updateOrganizationRecommendationLifecycleAsync([/* ... */]);

Update the lifecycle of a Recommendation within an Organization. This API only supports prioritized recommendations and updates global priority recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->updateOrganizationRecommendationLifecycle([
    'lifecycleStage' => 'pending_response|in_progress|dismissed|resolved', // REQUIRED
    'organizationRecommendationIdentifier' => '<string>', // REQUIRED
    'updateReason' => '<string>',
    'updateReasonCode' => 'non_critical_account|temporary_account|valid_business_case|other_methods_available|low_priority|not_applicable|other',
]);

Parameter Details

Members
lifecycleStage
Required: Yes
Type: string

The new lifecycle stage

organizationRecommendationIdentifier
Required: Yes
Type: string

The Recommendation identifier for AWS Trusted Advisor Priority recommendations

updateReason
Type: string

Reason for the lifecycle stage change

updateReasonCode
Type: string

Reason code for the lifecycle state change

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

ConflictException:

Exception that the request was denied due to conflictions in state

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

ResourceNotFoundException:

Exception that the requested resource has not been found

Examples

Example 1: Update the lifecycle stage of an AWS Organization's Recommendation that is managed by AWS Trusted Advisor Priority
$result = $client->updateOrganizationRecommendationLifecycle([
    'lifecycleStage' => 'dismissed',
    'organizationRecommendationIdentifier' => 'arn:aws:trustedadvisor:::organization-recommendation/96b5e5ca-7930-444c-90c6-06d386128100',
    'updateReason' => 'Does not apply to this resource',
    'updateReasonCode' => 'not_applicable',
]);

Result syntax:

[
]

UpdateRecommendationLifecycle

$result = $client->updateRecommendationLifecycle([/* ... */]);
$promise = $client->updateRecommendationLifecycleAsync([/* ... */]);

Update the lifecyle of a Recommendation. This API only supports prioritized recommendations and updates global priority recommendations, eliminating the need to call the API in each AWS Region.

Parameter Syntax

$result = $client->updateRecommendationLifecycle([
    'lifecycleStage' => 'pending_response|in_progress|dismissed|resolved', // REQUIRED
    'recommendationIdentifier' => '<string>', // REQUIRED
    'updateReason' => '<string>',
    'updateReasonCode' => 'non_critical_account|temporary_account|valid_business_case|other_methods_available|low_priority|not_applicable|other',
]);

Parameter Details

Members
lifecycleStage
Required: Yes
Type: string

The new lifecycle stage

recommendationIdentifier
Required: Yes
Type: string

The Recommendation identifier for AWS Trusted Advisor Priority recommendations

updateReason
Type: string

Reason for the lifecycle stage change

updateReasonCode
Type: string

Reason code for the lifecycle state change

Result Syntax

[]

Result Details

The results for this operation are always empty.

Errors

AccessDeniedException:

Exception that access has been denied due to insufficient access

ConflictException:

Exception that the request was denied due to conflictions in state

InternalServerException:

Exception to notify that an unexpected internal error occurred during processing of the request

ValidationException:

Exception that the request failed to satisfy service constraints

ThrottlingException:

Exception to notify that requests are being throttled

ResourceNotFoundException:

Exception that the requested resource has not been found

Examples

Example 1: Update the lifecycle stage of a Recommendation managed by AWS Trusted Advisor Priority
$result = $client->updateRecommendationLifecycle([
    'lifecycleStage' => 'resolved',
    'recommendationIdentifier' => 'arn:aws:trustedadvisor::000000000000:recommendation/861c9c6e-f169-405a-8b59-537a8caccd7a',
    'updateReason' => 'Resolved the recommendation',
    'updateReasonCode' => 'valid_business_case',
]);

Result syntax:

[
]

Shapes

AccessDeniedException

Description

Exception that access has been denied due to insufficient access

Members
message
Required: Yes
Type: string

AccountRecommendationLifecycleSummary

Description

Summary of an AccountRecommendationLifecycle for an Organization Recommendation

Members
accountId
Type: string

The AWS account ID

accountRecommendationArn
Type: string

The Recommendation ARN

lastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was last updated

lifecycleStage
Type: string

The lifecycle stage from AWS Trusted Advisor Priority

updateReason
Type: string

Reason for the lifecycle stage change

updateReasonCode
Type: string

Reason code for the lifecycle state change

updatedOnBehalfOf
Type: string

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
Type: string

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

CheckSummary

Description

A summary of an AWS Trusted Advisor Check

Members
arn
Required: Yes
Type: string

The ARN of the AWS Trusted Advisor Check

awsServices
Required: Yes
Type: Array of strings

The AWS Services that the Check applies to

description
Required: Yes
Type: string

A description of what the AWS Trusted Advisor Check is monitoring

id
Required: Yes
Type: string

The unique identifier of the AWS Trusted Advisor Check

metadata
Required: Yes
Type: Associative array of custom strings keys (String) to strings

The column headings for the metadata returned in the resource

name
Required: Yes
Type: string

The name of the AWS Trusted Advisor Check

pillars
Required: Yes
Type: Array of strings

The Recommendation pillars that the AWS Trusted Advisor Check falls under

source
Required: Yes
Type: string

The source of the Recommendation

ConflictException

Description

Exception that the request was denied due to conflictions in state

Members
message
Required: Yes
Type: string

InternalServerException

Description

Exception to notify that an unexpected internal error occurred during processing of the request

Members
message
Required: Yes
Type: string

OrganizationRecommendation

Description

A Recommendation for accounts within an Organization

Members
arn
Required: Yes
Type: string

The ARN of the Recommendation

awsServices
Type: Array of strings

The AWS Services that the Recommendation applies to

checkArn
Type: string

The AWS Trusted Advisor Check ARN that relates to the Recommendation

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was created, if created by AWS Trusted Advisor Priority

createdBy
Type: string

The creator, if created by AWS Trusted Advisor Priority

description
Required: Yes
Type: string

A description for AWS Trusted Advisor recommendations

id
Required: Yes
Type: string

The ID which identifies where the Recommendation was produced

lastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was last updated

lifecycleStage
Type: string

The lifecycle stage from AWS Trusted Advisor Priority

name
Required: Yes
Type: string

The name of the AWS Trusted Advisor Recommendation

pillarSpecificAggregates

The pillar aggregations for cost savings

pillars
Required: Yes
Type: Array of strings

The Pillars that the Recommendation is optimizing

resolvedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was resolved

resourcesAggregates
Required: Yes
Type: RecommendationResourcesAggregates structure

An aggregation of all resources

source
Required: Yes
Type: string

The source of the Recommendation

status
Required: Yes
Type: string

The status of the Recommendation

type
Required: Yes
Type: string

Whether the Recommendation was automated or generated by AWS Trusted Advisor Priority

updateReason
Type: string

Reason for the lifecycle stage change

updateReasonCode
Type: string

Reason code for the lifecycle state change

updatedOnBehalfOf
Type: string

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
Type: string

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

OrganizationRecommendationResourceSummary

Description

Organization Recommendation Resource Summary

Members
accountId
Type: string

The AWS account ID

arn
Required: Yes
Type: string

The ARN of the Recommendation Resource

awsResourceId
Required: Yes
Type: string

The AWS resource identifier. There are certain checks that generate recommendation resources without an awsResourceId.

exclusionStatus
Type: string

The exclusion status of the Recommendation Resource

id
Required: Yes
Type: string

The ID of the Recommendation Resource

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation Resource was last updated

metadata
Required: Yes
Type: Associative array of custom strings keys (String) to strings

Metadata associated with the Recommendation Resource

recommendationArn
Required: Yes
Type: string

The Recommendation ARN

regionCode
Required: Yes
Type: string

The AWS Region code that the Recommendation Resource is in

status
Required: Yes
Type: string

The current status of the Recommendation Resource

OrganizationRecommendationSummary

Description

Summary of recommendation for accounts within an Organization

Members
arn
Required: Yes
Type: string

The ARN of the Recommendation

awsServices
Type: Array of strings

The AWS Services that the Recommendation applies to

checkArn
Type: string

The AWS Trusted Advisor Check ARN that relates to the Recommendation

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was created, if created by AWS Trusted Advisor Priority

id
Required: Yes
Type: string

The ID which identifies where the Recommendation was produced

lastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was last updated

lifecycleStage
Type: string

The lifecycle stage from AWS Trusted Advisor Priority

name
Required: Yes
Type: string

The name of the AWS Trusted Advisor Recommendation

pillarSpecificAggregates

The pillar aggregations for cost savings

pillars
Required: Yes
Type: Array of strings

The Pillars that the Recommendation is optimizing

resourcesAggregates
Required: Yes
Type: RecommendationResourcesAggregates structure

An aggregation of all resources

source
Required: Yes
Type: string

The source of the Recommendation

status
Required: Yes
Type: string

The status of the Recommendation

type
Required: Yes
Type: string

Whether the Recommendation was automated or generated by AWS Trusted Advisor Priority

Recommendation

Description

A Recommendation for an Account

Members
arn
Required: Yes
Type: string

The ARN of the Recommendation

awsServices
Type: Array of strings

The AWS Services that the Recommendation applies to

checkArn
Type: string

The AWS Trusted Advisor Check ARN that relates to the Recommendation

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was created, if created by AWS Trusted Advisor Priority

createdBy
Type: string

The creator, if created by AWS Trusted Advisor Priority

description
Required: Yes
Type: string

A description for AWS Trusted Advisor recommendations

id
Required: Yes
Type: string

The ID which identifies where the Recommendation was produced

lastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was last updated

lifecycleStage
Type: string

The lifecycle stage from AWS Trusted Advisor Priority

name
Required: Yes
Type: string

The name of the AWS Trusted Advisor Recommendation

pillarSpecificAggregates

The pillar aggregations for cost savings

pillars
Required: Yes
Type: Array of strings

The Pillars that the Recommendation is optimizing

resolvedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was resolved

resourcesAggregates
Required: Yes
Type: RecommendationResourcesAggregates structure

An aggregation of all resources

source
Required: Yes
Type: string

The source of the Recommendation

status
Required: Yes
Type: string

The status of the Recommendation

statusReason
Type: string

This attribute provides additional details about potential discrepancies in check status determination.

type
Required: Yes
Type: string

Whether the Recommendation was automated or generated by AWS Trusted Advisor Priority

updateReason
Type: string

Reason for the lifecycle stage change

updateReasonCode
Type: string

Reason code for the lifecycle state change

updatedOnBehalfOf
Type: string

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
Type: string

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

RecommendationCostOptimizingAggregates

Description

Cost optimizing aggregates for a Recommendation

Members
estimatedMonthlySavings
Required: Yes
Type: double

The estimated monthly savings

estimatedPercentMonthlySavings
Required: Yes
Type: double

The estimated percently monthly savings

RecommendationPillarSpecificAggregates

Description

Recommendation pillar aggregates

Members
costOptimizing

Cost optimizing aggregates

RecommendationResourceExclusion

Description

The request entry for Recommendation Resource exclusion. Each entry is a combination of Recommendation Resource ARN and corresponding exclusion status

Members
arn
Required: Yes
Type: string

The ARN of the Recommendation Resource

isExcluded
Required: Yes
Type: boolean

The exclusion status

RecommendationResourceSummary

Description

Summary of a Recommendation Resource

Members
arn
Required: Yes
Type: string

The ARN of the Recommendation Resource

awsResourceId
Required: Yes
Type: string

The AWS resource identifier. There are certain checks that generate recommendation resources without an awsResourceId.

exclusionStatus
Type: string

The exclusion status of the Recommendation Resource

id
Required: Yes
Type: string

The ID of the Recommendation Resource

lastUpdatedAt
Required: Yes
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation Resource was last updated

metadata
Required: Yes
Type: Associative array of custom strings keys (String) to strings

Metadata associated with the Recommendation Resource

recommendationArn
Required: Yes
Type: string

The Recommendation ARN

regionCode
Required: Yes
Type: string

The AWS Region code that the Recommendation Resource is in

status
Required: Yes
Type: string

The current status of the Recommendation Resource

RecommendationResourcesAggregates

Description

Aggregation of Recommendation Resources

Members
errorCount
Required: Yes
Type: long (int|float)

The number of AWS resources that were flagged to have errors according to the Trusted Advisor check

excludedCount
Type: long (int|float)

The number of AWS resources belonging to this Trusted Advisor check that were excluded by the customer

okCount
Required: Yes
Type: long (int|float)

The number of AWS resources that were flagged to be OK according to the Trusted Advisor check

warningCount
Required: Yes
Type: long (int|float)

The number of AWS resources that were flagged to have warning according to the Trusted Advisor check

RecommendationSummary

Description

Summary of Recommendation for an Account

Members
arn
Required: Yes
Type: string

The ARN of the Recommendation

awsServices
Type: Array of strings

The AWS Services that the Recommendation applies to

checkArn
Type: string

The AWS Trusted Advisor Check ARN that relates to the Recommendation

createdAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was created, if created by AWS Trusted Advisor Priority

id
Required: Yes
Type: string

The ID which identifies where the Recommendation was produced

lastUpdatedAt
Type: timestamp (string|DateTime or anything parsable by strtotime)

When the Recommendation was last updated

lifecycleStage
Type: string

The lifecycle stage from AWS Trusted Advisor Priority

name
Required: Yes
Type: string

The name of the AWS Trusted Advisor Recommendation

pillarSpecificAggregates

The pillar aggregations for cost savings

pillars
Required: Yes
Type: Array of strings

The Pillars that the Recommendation is optimizing

resourcesAggregates
Required: Yes
Type: RecommendationResourcesAggregates structure

An aggregation of all resources

source
Required: Yes
Type: string

The source of the Recommendation

status
Required: Yes
Type: string

The status of the Recommendation

statusReason
Type: string

This attribute provides additional details about potential discrepancies in check status determination.

type
Required: Yes
Type: string

Whether the Recommendation was automated or generated by AWS Trusted Advisor Priority

ResourceNotFoundException

Description

Exception that the requested resource has not been found

Members
message
Required: Yes
Type: string

ThrottlingException

Description

Exception to notify that requests are being throttled

Members
message
Required: Yes
Type: string

UpdateRecommendationResourceExclusionError

Description

The error entry for Recommendation Resource exclusion. Each entry is a combination of Recommendation Resource ARN, error code and error message

Members
arn
Type: string

The ARN of the Recommendation Resource

errorCode
Type: string

The error code

errorMessage
Type: string

The error message

ValidationException

Description

Exception that the request failed to satisfy service constraints

Members
message
Required: Yes
Type: string