aws-sdk-trustedadvisor 1.41.0 → 1.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 923af7456bd3445624c308634b3c9a1933a71551d871817a13cf2c379d5c8ad9
4
- data.tar.gz: 9cd6b88d87b4ef8f74df854422e808a0c37ccd2498bff3001909ac0963ff4078
3
+ metadata.gz: 3d00e1b9d396cd2323565555010eb77d719206791a68c151fc01a58965ac2c9e
4
+ data.tar.gz: d50f694e2d6a4a23923aaf3fd9c7fe4137b065ac378e092ba64d4ab5d4d7b4d3
5
5
  SHA512:
6
- metadata.gz: f693ae0f32c42dc12c6a7265abfaad96c14882f372bc8ce31d9674c4911080a63400168d776687a15bca2b519f93182e41a5717aa0fe60d52873859da82fac49
7
- data.tar.gz: 1e8117ce9620915085374f88606f4b146d9810a1a22245066f8b9660602ed3f03180f4a21b29cfbfa8b57ee75d62566a4571b7b1e2cddf639671af534b027b3d
6
+ metadata.gz: e649c6bfe7130e71e3608bbfc3489a3c9f05dc4046d7713855d1e9b9f591caaf0f38331ecd6d927831cb641638d9c61510f58dcfae4198e023fdd02a9da0f96c
7
+ data.tar.gz: 0a02ae0e514f2cd127bfe33fe11d16fb482224ce873f7df426c0c84c05e21db5350760d50c59dbd9168d06c48ae34a990dcf1732cb02fa041079ab742783ec18
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.42.0 (2026-07-28)
5
+ ------------------
6
+
7
+ * Feature - Adds ListRecommendationsForResource API and four CheckSummary fields (resourceArnQueryable, awsResourceTypes, checkGranularity, recommendationId) to retrieve recommendations for a given resource ARN.
8
+
4
9
  1.41.0 (2026-07-09)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.41.0
1
+ 1.42.0
@@ -783,14 +783,20 @@ module Aws::TrustedAdvisor
783
783
  # },
784
784
  # name: "Security Groups - Unrestricted Access",
785
785
  # arn: "arn:aws:trustedadvisor:::check/1iG5NDGVre",
786
+ # aws_resource_types: [
787
+ # "AWS::EC2::SecurityGroup",
788
+ # ],
786
789
  # aws_services: [
787
790
  # "EC2",
788
791
  # ],
792
+ # check_granularity: "resource",
789
793
  # 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).\n<br>\n<br>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 <a href=\"https://aws.amazon.com/premiumsupport/faqs/#AWS_Trusted_Advisor\" target=\"_blank\">Trusted Advisor FAQ</a>.\n<br>\n<br>\n<h4 class='headerBodyStyle'>Alert Criteria</h4>\n<br>\nRed: A security group rule has a source IP address with a /0 suffix for ports other than 25, 80, or 443.\n<br>\n<br>\n<h4 class='headerBodyStyle'>Recommended Action</h4>\n<br>\nRestrict 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.\n<br>\n<br>\n<h4 class='headerBodyStyle'>Additional Resources</h4>\n<br><a href=\"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html\" target=\"_blank\">Amazon EC2 Security Groups</a><br>\n<a href=\"https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing\" target=\"_blank\">Classless Inter-Domain Routing</a> (Wikipedia)",
790
794
  # id: "1iG5NDGVre",
791
795
  # pillars: [
792
796
  # "security",
793
797
  # ],
798
+ # recommendation_id: "9534ec9b-bf3a-44e8-8213-2ed68b39d9d5",
799
+ # resource_arn_queryable: true,
794
800
  # source: "ta_check",
795
801
  # },
796
802
  # {
@@ -814,14 +820,19 @@ module Aws::TrustedAdvisor
814
820
  # },
815
821
  # name: "Amazon Relational Database Service (RDS) Reserved Instance Optimization",
816
822
  # arn: "arn:aws:trustedadvisor:::check/1qazXsw23e",
823
+ # aws_resource_types: [
824
+ # ],
817
825
  # aws_services: [
818
826
  # "RDS",
819
827
  # ],
828
+ # check_granularity: "account",
820
829
  # 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.<br/><br/>\r\n<h4 class='headerBodyStyle'>Alert Criteria</h4><br/>\nYellow: Optimizing the purchase of RDS Reserved Instances can help reduce costs.<br/><br/>\r\n<h4 class='headerBodyStyle'>Recommended Action</h4><br/>\r\nSee the <a href=\"http://console.aws.amazon.com/billing/home?/costexplorer#/costexplorer\" target=\"_blank\">Cost Explorer</a> page for more detailed recommendations, customization options (e.g. look-back period, payment option, etc.) and to purchase RDS Reserved Instances.\n<br/>\n<br/>\n<h4 class='headerBodyStyle'>Additional Resources</h4><br/>\nInformation on RDS Reserved Instances and how they can save you money can be found <a href=\"http://aws.amazon.com/rds/reserved-instances/\" target=\"_blank\">here</a>.<br>\nFor more information on this recommendation, see <a href=\"http://aws.amazon.com/premiumsupport/technology/trusted-advisor/faqs/#Reserved_Instance_Optimization_Check_Questions\" target=\"_blank\">Reserved Instance Optimization Check Questions</a> in the Trusted Advisor FAQs.<br>\nFor more detailed description of fields, see <a href=\"http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ReservationPurchaseRecommendationDetail.html#awscostmanagement-Type-ReservationPurchaseRecommendationDetail-AverageUtilization\" target=\"_blank\">Cost Explorer documentation</a>",
821
830
  # id: "1qazXsw23e",
822
831
  # pillars: [
823
832
  # "cost_optimizing",
824
833
  # ],
834
+ # recommendation_id: "8b602b6f-452d-4cb2-8a9e-c7650955d9cd",
835
+ # resource_arn_queryable: false,
825
836
  # source: "ta_check",
826
837
  # },
827
838
  # {
@@ -841,14 +852,19 @@ module Aws::TrustedAdvisor
841
852
  # },
842
853
  # name: "Amazon Redshift Reserved Node Optimization",
843
854
  # arn: "arn:aws:trustedadvisor:::check/1qw23er45t",
855
+ # aws_resource_types: [
856
+ # ],
844
857
  # aws_services: [
845
858
  # "Redshift",
846
859
  # ],
860
+ # check_granularity: "account",
847
861
  # 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.<br/><br/>\n<h4 class='headerBodyStyle'>Alert Criteria</h4><br/>Yellow: Optimizing the purchase of Redshift Reserved Nodes can help reduce costs.<br/><br/>\n<h4 class='headerBodyStyle'>Recommended Action</h4><br/>See the <a href=\"https://console.aws.amazon.com/billing/home?/costexplorer#/costexplorer\" target=\"_blank\">Cost Explorer</a> page for more detailed recommendations, customization options (e.g. look-back period, payment option, etc.) and to purchase Redshift Reserved Nodes.<br/><br/>\n<h4 class='headerBodyStyle'>Additional Resources</h4><br/>Information on Redshift Reserved Nodes and how they can save you money can be found <a href=\"http://docs.aws.amazon.com/redshift/latest/mgmt/purchase-reserved-node-instance.html\" target=\"_blank\">here</a>.<br>\nFor more information on this recommendation, see <a href=\"http://aws.amazon.com/premiumsupport/technology/trusted-advisor/faqs/#Reserved_Instance_Optimization_Check_Questions\" target=\"_blank\">Reserved Instance Optimization Check Questions</a> in the Trusted Advisor FAQs.<br/>\nFor more detailed description of fields, see <a href=\"http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ReservationPurchaseRecommendationDetail.html#awscostmanagement-Type-ReservationPurchaseRecommendationDetail-AverageUtilization\" target=\"_blank\">Cost Explorer documentation</a>",
848
862
  # id: "1qw23er45t",
849
863
  # pillars: [
850
864
  # "cost_optimizing",
851
865
  # ],
866
+ # recommendation_id: "4ecff4d4-1bc1-4c99-a5b8-0fff9ee500d6",
867
+ # resource_arn_queryable: false,
852
868
  # source: "ta_check",
853
869
  # },
854
870
  # ],
@@ -881,6 +897,11 @@ module Aws::TrustedAdvisor
881
897
  # resp.check_summaries[0].source #=> String, one of "aws_config", "compute_optimizer", "cost_explorer", "lse", "manual", "pse", "rds", "resilience", "resilience_hub", "security_hub", "stir", "ta_check", "well_architected", "cost_optimization_hub"
882
898
  # resp.check_summaries[0].metadata #=> Hash
883
899
  # resp.check_summaries[0].metadata["String"] #=> String
900
+ # resp.check_summaries[0].resource_arn_queryable #=> Boolean
901
+ # resp.check_summaries[0].aws_resource_types #=> Array
902
+ # resp.check_summaries[0].aws_resource_types[0] #=> String
903
+ # resp.check_summaries[0].check_granularity #=> String
904
+ # resp.check_summaries[0].recommendation_id #=> String
884
905
  #
885
906
  # @see http://docs.aws.amazon.com/goto/WebAPI/trustedadvisor-2022-09-15/ListChecks AWS API Documentation
886
907
  #
@@ -1726,6 +1747,105 @@ module Aws::TrustedAdvisor
1726
1747
  req.send_request(options)
1727
1748
  end
1728
1749
 
1750
+ # List all Trusted Advisor recommendations for a given AWS resource ARN.
1751
+ #
1752
+ # @option params [String] :next_token
1753
+ # The token for the next set of results. Use the value returned in the
1754
+ # previous response in the next request to retrieve the next set of
1755
+ # results.
1756
+ #
1757
+ # @option params [Integer] :max_results
1758
+ # The maximum number of results to return per page
1759
+ #
1760
+ # @option params [required, String] :aws_resource_arn
1761
+ # The ARN of the AWS resource to query recommendations for
1762
+ #
1763
+ # @option params [String] :pillar
1764
+ # The pillar that the recommendation belongs to
1765
+ #
1766
+ # @option params [String] :status
1767
+ # The current status of the Recommendation Resource
1768
+ #
1769
+ # @option params [String] :check_arn
1770
+ # The AWS Trusted Advisor Check ARN that relates to the Recommendation
1771
+ #
1772
+ # @option params [String] :language
1773
+ # The ISO 639-1 code for the language that you want your recommendations
1774
+ # to appear in.
1775
+ #
1776
+ # @return [Types::ListRecommendationsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1777
+ #
1778
+ # * {Types::ListRecommendationsForResourceResponse#next_token #next_token} => String
1779
+ # * {Types::ListRecommendationsForResourceResponse#recommendation_for_resource_summaries #recommendation_for_resource_summaries} => Array&lt;Types::RecommendationForResourceSummary&gt;
1780
+ #
1781
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1782
+ #
1783
+ #
1784
+ # @example Example: List all Trusted Advisor Recommendations for an AWS Resource
1785
+ #
1786
+ # resp = client.list_recommendations_for_resource({
1787
+ # aws_resource_arn: "arn:aws:ec2:us-east-1:000000000000:instance/i-0abcd1234efgh5678",
1788
+ # })
1789
+ #
1790
+ # resp.to_h outputs the following:
1791
+ # {
1792
+ # next_token: "<REDACTED>",
1793
+ # recommendation_for_resource_summaries: [
1794
+ # {
1795
+ # metadata: {
1796
+ # "Region" => "us-east-1",
1797
+ # "Resource" => "i-0abcd1234efgh5678",
1798
+ # "Status" => "Yellow",
1799
+ # },
1800
+ # aws_resource_arn: "arn:aws:ec2:us-east-1:000000000000:instance/i-0abcd1234efgh5678",
1801
+ # check_arn: "arn:aws:trustedadvisor:::check/Qch7DwouX1",
1802
+ # exclusion_status: "included",
1803
+ # last_updated_at: Time.parse("2026-05-21T15:09:51.891Z"),
1804
+ # pillars: [
1805
+ # "cost_optimizing",
1806
+ # ],
1807
+ # recommendation_arn: "arn:aws:trustedadvisor::000000000000:recommendation/55fa4d2e-bbb7-491a-833b-5773e9589578",
1808
+ # status: "warning",
1809
+ # },
1810
+ # ],
1811
+ # }
1812
+ #
1813
+ # @example Request syntax with placeholder values
1814
+ #
1815
+ # resp = client.list_recommendations_for_resource({
1816
+ # next_token: "ListRecommendationsForResourceRequestNextTokenString",
1817
+ # max_results: 1,
1818
+ # aws_resource_arn: "AwsResourceArn", # required
1819
+ # pillar: "cost_optimizing", # accepts cost_optimizing, performance, security, service_limits, fault_tolerance, operational_excellence
1820
+ # status: "ok", # accepts ok, warning, error
1821
+ # check_arn: "CheckArn",
1822
+ # language: "en", # accepts en, ja, zh, fr, de, ko, zh_TW, it, es, pt_BR, id
1823
+ # })
1824
+ #
1825
+ # @example Response structure
1826
+ #
1827
+ # resp.next_token #=> String
1828
+ # resp.recommendation_for_resource_summaries #=> Array
1829
+ # resp.recommendation_for_resource_summaries[0].check_arn #=> String
1830
+ # resp.recommendation_for_resource_summaries[0].recommendation_arn #=> String
1831
+ # resp.recommendation_for_resource_summaries[0].aws_resource_arn #=> String
1832
+ # resp.recommendation_for_resource_summaries[0].status #=> String, one of "ok", "warning", "error"
1833
+ # resp.recommendation_for_resource_summaries[0].last_updated_at #=> Time
1834
+ # resp.recommendation_for_resource_summaries[0].exclusion_status #=> String, one of "excluded", "included"
1835
+ # resp.recommendation_for_resource_summaries[0].metadata #=> Hash
1836
+ # resp.recommendation_for_resource_summaries[0].metadata["String"] #=> String
1837
+ # resp.recommendation_for_resource_summaries[0].pillars #=> Array
1838
+ # resp.recommendation_for_resource_summaries[0].pillars[0] #=> String, one of "cost_optimizing", "performance", "security", "service_limits", "fault_tolerance", "operational_excellence"
1839
+ #
1840
+ # @see http://docs.aws.amazon.com/goto/WebAPI/trustedadvisor-2022-09-15/ListRecommendationsForResource AWS API Documentation
1841
+ #
1842
+ # @overload list_recommendations_for_resource(params = {})
1843
+ # @param [Hash] params ({})
1844
+ def list_recommendations_for_resource(params = {}, options = {})
1845
+ req = build_request(:list_recommendations_for_resource, params)
1846
+ req.send_request(options)
1847
+ end
1848
+
1729
1849
  # Update the lifecycle of a Recommendation within an Organization. This
1730
1850
  # API only supports prioritized recommendations and updates global
1731
1851
  # priority recommendations, eliminating the need to call the API in each
@@ -1848,7 +1968,7 @@ module Aws::TrustedAdvisor
1848
1968
  tracer: tracer
1849
1969
  )
1850
1970
  context[:gem_name] = 'aws-sdk-trustedadvisor'
1851
- context[:gem_version] = '1.41.0'
1971
+ context[:gem_version] = '1.42.0'
1852
1972
  Seahorse::Client::Request.new(handlers, context)
1853
1973
  end
1854
1974
 
@@ -20,6 +20,7 @@ module Aws::TrustedAdvisor
20
20
  AccountRecommendationIdentifier = Shapes::StringShape.new(name: 'AccountRecommendationIdentifier')
21
21
  AccountRecommendationLifecycleSummary = Shapes::StructureShape.new(name: 'AccountRecommendationLifecycleSummary')
22
22
  AccountRecommendationLifecycleSummaryList = Shapes::ListShape.new(name: 'AccountRecommendationLifecycleSummaryList')
23
+ AwsResourceArn = Shapes::StringShape.new(name: 'AwsResourceArn')
23
24
  BatchUpdateRecommendationResourceExclusionRequest = Shapes::StructureShape.new(name: 'BatchUpdateRecommendationResourceExclusionRequest')
24
25
  BatchUpdateRecommendationResourceExclusionResponse = Shapes::StructureShape.new(name: 'BatchUpdateRecommendationResourceExclusionResponse')
25
26
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
@@ -60,6 +61,11 @@ module Aws::TrustedAdvisor
60
61
  ListRecommendationResourcesRequestNextTokenString = Shapes::StringShape.new(name: 'ListRecommendationResourcesRequestNextTokenString')
61
62
  ListRecommendationResourcesResponse = Shapes::StructureShape.new(name: 'ListRecommendationResourcesResponse')
62
63
  ListRecommendationResourcesResponseNextTokenString = Shapes::StringShape.new(name: 'ListRecommendationResourcesResponseNextTokenString')
64
+ ListRecommendationsForResourceRequest = Shapes::StructureShape.new(name: 'ListRecommendationsForResourceRequest')
65
+ ListRecommendationsForResourceRequestMaxResultsInteger = Shapes::IntegerShape.new(name: 'ListRecommendationsForResourceRequestMaxResultsInteger')
66
+ ListRecommendationsForResourceRequestNextTokenString = Shapes::StringShape.new(name: 'ListRecommendationsForResourceRequestNextTokenString')
67
+ ListRecommendationsForResourceResponse = Shapes::StructureShape.new(name: 'ListRecommendationsForResourceResponse')
68
+ ListRecommendationsForResourceResponseNextTokenString = Shapes::StringShape.new(name: 'ListRecommendationsForResourceResponseNextTokenString')
63
69
  ListRecommendationsRequest = Shapes::StructureShape.new(name: 'ListRecommendationsRequest')
64
70
  ListRecommendationsRequestMaxResultsInteger = Shapes::IntegerShape.new(name: 'ListRecommendationsRequestMaxResultsInteger')
65
71
  ListRecommendationsRequestNextTokenString = Shapes::StringShape.new(name: 'ListRecommendationsRequestNextTokenString')
@@ -77,6 +83,8 @@ module Aws::TrustedAdvisor
77
83
  RecommendationAwsService = Shapes::StringShape.new(name: 'RecommendationAwsService')
78
84
  RecommendationAwsServiceList = Shapes::ListShape.new(name: 'RecommendationAwsServiceList')
79
85
  RecommendationCostOptimizingAggregates = Shapes::StructureShape.new(name: 'RecommendationCostOptimizingAggregates')
86
+ RecommendationForResourceSummary = Shapes::StructureShape.new(name: 'RecommendationForResourceSummary')
87
+ RecommendationForResourceSummaryList = Shapes::ListShape.new(name: 'RecommendationForResourceSummaryList')
80
88
  RecommendationLanguage = Shapes::StringShape.new(name: 'RecommendationLanguage')
81
89
  RecommendationLifecycleStage = Shapes::StringShape.new(name: 'RecommendationLifecycleStage')
82
90
  RecommendationPillar = Shapes::StringShape.new(name: 'RecommendationPillar')
@@ -99,6 +107,7 @@ module Aws::TrustedAdvisor
99
107
  ResourceStatus = Shapes::StringShape.new(name: 'ResourceStatus')
100
108
  StatusReason = Shapes::StringShape.new(name: 'StatusReason')
101
109
  String = Shapes::StringShape.new(name: 'String')
110
+ StringList = Shapes::ListShape.new(name: 'StringList')
102
111
  StringMap = Shapes::MapShape.new(name: 'StringMap')
103
112
  SyntheticTimestamp_date_time = Shapes::TimestampShape.new(name: 'SyntheticTimestamp_date_time', timestampFormat: "iso8601")
104
113
  ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
@@ -140,6 +149,10 @@ module Aws::TrustedAdvisor
140
149
  CheckSummary.add_member(:aws_services, Shapes::ShapeRef.new(shape: RecommendationAwsServiceList, required: true, location_name: "awsServices"))
141
150
  CheckSummary.add_member(:source, Shapes::ShapeRef.new(shape: RecommendationSource, required: true, location_name: "source"))
142
151
  CheckSummary.add_member(:metadata, Shapes::ShapeRef.new(shape: StringMap, required: true, location_name: "metadata"))
152
+ CheckSummary.add_member(:resource_arn_queryable, Shapes::ShapeRef.new(shape: Boolean, location_name: "resourceArnQueryable"))
153
+ CheckSummary.add_member(:aws_resource_types, Shapes::ShapeRef.new(shape: StringList, location_name: "awsResourceTypes"))
154
+ CheckSummary.add_member(:check_granularity, Shapes::ShapeRef.new(shape: String, location_name: "checkGranularity"))
155
+ CheckSummary.add_member(:recommendation_id, Shapes::ShapeRef.new(shape: String, location_name: "recommendationId"))
143
156
  CheckSummary.struct_class = Types::CheckSummary
144
157
 
145
158
  CheckSummaryList.member = Shapes::ShapeRef.new(shape: CheckSummary)
@@ -227,6 +240,19 @@ module Aws::TrustedAdvisor
227
240
  ListRecommendationResourcesResponse.add_member(:recommendation_resource_summaries, Shapes::ShapeRef.new(shape: RecommendationResourceSummaryList, required: true, location_name: "recommendationResourceSummaries"))
228
241
  ListRecommendationResourcesResponse.struct_class = Types::ListRecommendationResourcesResponse
229
242
 
243
+ ListRecommendationsForResourceRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: ListRecommendationsForResourceRequestNextTokenString, location: "querystring", location_name: "nextToken"))
244
+ ListRecommendationsForResourceRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListRecommendationsForResourceRequestMaxResultsInteger, location: "querystring", location_name: "maxResults"))
245
+ ListRecommendationsForResourceRequest.add_member(:aws_resource_arn, Shapes::ShapeRef.new(shape: AwsResourceArn, required: true, location: "uri", location_name: "awsResourceArn"))
246
+ ListRecommendationsForResourceRequest.add_member(:pillar, Shapes::ShapeRef.new(shape: RecommendationPillar, location: "querystring", location_name: "pillar"))
247
+ ListRecommendationsForResourceRequest.add_member(:status, Shapes::ShapeRef.new(shape: ResourceStatus, location: "querystring", location_name: "status"))
248
+ ListRecommendationsForResourceRequest.add_member(:check_arn, Shapes::ShapeRef.new(shape: CheckArn, location: "querystring", location_name: "checkArn"))
249
+ ListRecommendationsForResourceRequest.add_member(:language, Shapes::ShapeRef.new(shape: RecommendationLanguage, location: "querystring", location_name: "language"))
250
+ ListRecommendationsForResourceRequest.struct_class = Types::ListRecommendationsForResourceRequest
251
+
252
+ ListRecommendationsForResourceResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: ListRecommendationsForResourceResponseNextTokenString, location_name: "nextToken"))
253
+ ListRecommendationsForResourceResponse.add_member(:recommendation_for_resource_summaries, Shapes::ShapeRef.new(shape: RecommendationForResourceSummaryList, required: true, location_name: "recommendationForResourceSummaries"))
254
+ ListRecommendationsForResourceResponse.struct_class = Types::ListRecommendationsForResourceResponse
255
+
230
256
  ListRecommendationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: ListRecommendationsRequestNextTokenString, location: "querystring", location_name: "nextToken"))
231
257
  ListRecommendationsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListRecommendationsRequestMaxResultsInteger, location: "querystring", location_name: "maxResults"))
232
258
  ListRecommendationsRequest.add_member(:type, Shapes::ShapeRef.new(shape: RecommendationType, location: "querystring", location_name: "type"))
@@ -329,6 +355,18 @@ module Aws::TrustedAdvisor
329
355
  RecommendationCostOptimizingAggregates.add_member(:estimated_percent_monthly_savings, Shapes::ShapeRef.new(shape: Double, required: true, location_name: "estimatedPercentMonthlySavings"))
330
356
  RecommendationCostOptimizingAggregates.struct_class = Types::RecommendationCostOptimizingAggregates
331
357
 
358
+ RecommendationForResourceSummary.add_member(:check_arn, Shapes::ShapeRef.new(shape: CheckArn, required: true, location_name: "checkArn"))
359
+ RecommendationForResourceSummary.add_member(:recommendation_arn, Shapes::ShapeRef.new(shape: AccountRecommendationArn, required: true, location_name: "recommendationArn"))
360
+ RecommendationForResourceSummary.add_member(:aws_resource_arn, Shapes::ShapeRef.new(shape: AwsResourceArn, required: true, location_name: "awsResourceArn"))
361
+ RecommendationForResourceSummary.add_member(:status, Shapes::ShapeRef.new(shape: ResourceStatus, required: true, location_name: "status"))
362
+ RecommendationForResourceSummary.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "lastUpdatedAt"))
363
+ RecommendationForResourceSummary.add_member(:exclusion_status, Shapes::ShapeRef.new(shape: ExclusionStatus, required: true, location_name: "exclusionStatus"))
364
+ RecommendationForResourceSummary.add_member(:metadata, Shapes::ShapeRef.new(shape: StringMap, required: true, location_name: "metadata"))
365
+ RecommendationForResourceSummary.add_member(:pillars, Shapes::ShapeRef.new(shape: RecommendationPillarList, required: true, location_name: "pillars"))
366
+ RecommendationForResourceSummary.struct_class = Types::RecommendationForResourceSummary
367
+
368
+ RecommendationForResourceSummaryList.member = Shapes::ShapeRef.new(shape: RecommendationForResourceSummary)
369
+
332
370
  RecommendationPillarList.member = Shapes::ShapeRef.new(shape: RecommendationPillar)
333
371
 
334
372
  RecommendationPillarSpecificAggregates.add_member(:cost_optimizing, Shapes::ShapeRef.new(shape: RecommendationCostOptimizingAggregates, location_name: "costOptimizing"))
@@ -381,6 +419,8 @@ module Aws::TrustedAdvisor
381
419
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
382
420
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
383
421
 
422
+ StringList.member = Shapes::ShapeRef.new(shape: String)
423
+
384
424
  StringMap.key = Shapes::ShapeRef.new(shape: String)
385
425
  StringMap.value = Shapes::ShapeRef.new(shape: String)
386
426
 
@@ -578,6 +618,24 @@ module Aws::TrustedAdvisor
578
618
  )
579
619
  end)
580
620
 
621
+ api.add_operation(:list_recommendations_for_resource, Seahorse::Model::Operation.new.tap do |o|
622
+ o.name = "ListRecommendationsForResource"
623
+ o.http_method = "GET"
624
+ o.http_request_uri = "/v1/recommendations-for-resource/{awsResourceArn}"
625
+ o.input = Shapes::ShapeRef.new(shape: ListRecommendationsForResourceRequest)
626
+ o.output = Shapes::ShapeRef.new(shape: ListRecommendationsForResourceResponse)
627
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
628
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
629
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
630
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
631
+ o[:pager] = Aws::Pager.new(
632
+ limit_key: "max_results",
633
+ tokens: {
634
+ "next_token" => "next_token"
635
+ }
636
+ )
637
+ end)
638
+
581
639
  api.add_operation(:update_organization_recommendation_lifecycle, Seahorse::Model::Operation.new.tap do |o|
582
640
  o.name = "UpdateOrganizationRecommendationLifecycle"
583
641
  o.http_method = "PUT"
@@ -140,6 +140,25 @@ module Aws::TrustedAdvisor
140
140
  # The column headings for the metadata returned in the resource
141
141
  # @return [Hash<String,String>]
142
142
  #
143
+ # @!attribute [rw] resource_arn_queryable
144
+ # Indicates whether this check is supported by the
145
+ # ListRecommendationsForResource API.
146
+ # @return [Boolean]
147
+ #
148
+ # @!attribute [rw] aws_resource_types
149
+ # The AWS resource types that this check evaluates (for example,
150
+ # AWS::EC2::Instance).
151
+ # @return [Array<String>]
152
+ #
153
+ # @!attribute [rw] check_granularity
154
+ # The granularity level at which the check operates: resource,
155
+ # account, or account\_region.
156
+ # @return [String]
157
+ #
158
+ # @!attribute [rw] recommendation_id
159
+ # The recommendation identifier associated with the check.
160
+ # @return [String]
161
+ #
143
162
  # @see http://docs.aws.amazon.com/goto/WebAPI/trustedadvisor-2022-09-15/CheckSummary AWS API Documentation
144
163
  #
145
164
  class CheckSummary < Struct.new(
@@ -150,7 +169,11 @@ module Aws::TrustedAdvisor
150
169
  :pillars,
151
170
  :aws_services,
152
171
  :source,
153
- :metadata)
172
+ :metadata,
173
+ :resource_arn_queryable,
174
+ :aws_resource_types,
175
+ :check_granularity,
176
+ :recommendation_id)
154
177
  SENSITIVE = []
155
178
  include Aws::Structure
156
179
  end
@@ -549,6 +572,71 @@ module Aws::TrustedAdvisor
549
572
  include Aws::Structure
550
573
  end
551
574
 
575
+ # @!attribute [rw] next_token
576
+ # The token for the next set of results. Use the value returned in the
577
+ # previous response in the next request to retrieve the next set of
578
+ # results.
579
+ # @return [String]
580
+ #
581
+ # @!attribute [rw] max_results
582
+ # The maximum number of results to return per page
583
+ # @return [Integer]
584
+ #
585
+ # @!attribute [rw] aws_resource_arn
586
+ # The ARN of the AWS resource to query recommendations for
587
+ # @return [String]
588
+ #
589
+ # @!attribute [rw] pillar
590
+ # The pillar that the recommendation belongs to
591
+ # @return [String]
592
+ #
593
+ # @!attribute [rw] status
594
+ # The current status of the Recommendation Resource
595
+ # @return [String]
596
+ #
597
+ # @!attribute [rw] check_arn
598
+ # The AWS Trusted Advisor Check ARN that relates to the Recommendation
599
+ # @return [String]
600
+ #
601
+ # @!attribute [rw] language
602
+ # The ISO 639-1 code for the language that you want your
603
+ # recommendations to appear in.
604
+ # @return [String]
605
+ #
606
+ # @see http://docs.aws.amazon.com/goto/WebAPI/trustedadvisor-2022-09-15/ListRecommendationsForResourceRequest AWS API Documentation
607
+ #
608
+ class ListRecommendationsForResourceRequest < Struct.new(
609
+ :next_token,
610
+ :max_results,
611
+ :aws_resource_arn,
612
+ :pillar,
613
+ :status,
614
+ :check_arn,
615
+ :language)
616
+ SENSITIVE = []
617
+ include Aws::Structure
618
+ end
619
+
620
+ # @!attribute [rw] next_token
621
+ # The token for the next set of results. Use the value returned in the
622
+ # previous response in the next request to retrieve the next set of
623
+ # results.
624
+ # @return [String]
625
+ #
626
+ # @!attribute [rw] recommendation_for_resource_summaries
627
+ # List of Trusted Advisor recommendations associated with the given
628
+ # AWS resource
629
+ # @return [Array<Types::RecommendationForResourceSummary>]
630
+ #
631
+ # @see http://docs.aws.amazon.com/goto/WebAPI/trustedadvisor-2022-09-15/ListRecommendationsForResourceResponse AWS API Documentation
632
+ #
633
+ class ListRecommendationsForResourceResponse < Struct.new(
634
+ :next_token,
635
+ :recommendation_for_resource_summaries)
636
+ SENSITIVE = []
637
+ include Aws::Structure
638
+ end
639
+
552
640
  # @!attribute [rw] next_token
553
641
  # The token for the next set of results. Use the value returned in the
554
642
  # previous response in the next request to retrieve the next set of
@@ -1043,6 +1131,55 @@ module Aws::TrustedAdvisor
1043
1131
  include Aws::Structure
1044
1132
  end
1045
1133
 
1134
+ # Summary of a Recommendation for a specific AWS Resource
1135
+ #
1136
+ # @!attribute [rw] check_arn
1137
+ # The Check ARN
1138
+ # @return [String]
1139
+ #
1140
+ # @!attribute [rw] recommendation_arn
1141
+ # The Recommendation ARN
1142
+ # @return [String]
1143
+ #
1144
+ # @!attribute [rw] aws_resource_arn
1145
+ # The AWS Resource ARN
1146
+ # @return [String]
1147
+ #
1148
+ # @!attribute [rw] status
1149
+ # The current status of the recommendation
1150
+ # @return [String]
1151
+ #
1152
+ # @!attribute [rw] last_updated_at
1153
+ # When the recommendation was last updated
1154
+ # @return [Time]
1155
+ #
1156
+ # @!attribute [rw] exclusion_status
1157
+ # The exclusion status of the recommendation
1158
+ # @return [String]
1159
+ #
1160
+ # @!attribute [rw] metadata
1161
+ # Metadata associated with the recommendation
1162
+ # @return [Hash<String,String>]
1163
+ #
1164
+ # @!attribute [rw] pillars
1165
+ # The Pillars that the Recommendation is optimizing
1166
+ # @return [Array<String>]
1167
+ #
1168
+ # @see http://docs.aws.amazon.com/goto/WebAPI/trustedadvisor-2022-09-15/RecommendationForResourceSummary AWS API Documentation
1169
+ #
1170
+ class RecommendationForResourceSummary < Struct.new(
1171
+ :check_arn,
1172
+ :recommendation_arn,
1173
+ :aws_resource_arn,
1174
+ :status,
1175
+ :last_updated_at,
1176
+ :exclusion_status,
1177
+ :metadata,
1178
+ :pillars)
1179
+ SENSITIVE = []
1180
+ include Aws::Structure
1181
+ end
1182
+
1046
1183
  # Recommendation pillar aggregates
1047
1184
  #
1048
1185
  # @!attribute [rw] cost_optimizing
@@ -55,7 +55,7 @@ module Aws::TrustedAdvisor
55
55
  autoload :EndpointProvider, 'aws-sdk-trustedadvisor/endpoint_provider'
56
56
  autoload :Endpoints, 'aws-sdk-trustedadvisor/endpoints'
57
57
 
58
- GEM_VERSION = '1.41.0'
58
+ GEM_VERSION = '1.42.0'
59
59
 
60
60
  end
61
61
 
data/sig/client.rbs CHANGED
@@ -219,6 +219,23 @@ module Aws
219
219
  ) -> _ListRecommendationsResponseSuccess
220
220
  | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListRecommendationsResponseSuccess
221
221
 
222
+ interface _ListRecommendationsForResourceResponseSuccess
223
+ include ::Seahorse::Client::_ResponseSuccess[Types::ListRecommendationsForResourceResponse]
224
+ def next_token: () -> ::String
225
+ def recommendation_for_resource_summaries: () -> ::Array[Types::RecommendationForResourceSummary]
226
+ end
227
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/TrustedAdvisor/Client.html#list_recommendations_for_resource-instance_method
228
+ def list_recommendations_for_resource: (
229
+ ?next_token: ::String,
230
+ ?max_results: ::Integer,
231
+ aws_resource_arn: ::String,
232
+ ?pillar: ("cost_optimizing" | "performance" | "security" | "service_limits" | "fault_tolerance" | "operational_excellence"),
233
+ ?status: ("ok" | "warning" | "error"),
234
+ ?check_arn: ::String,
235
+ ?language: ("en" | "ja" | "zh" | "fr" | "de" | "ko" | "zh_TW" | "it" | "es" | "pt_BR" | "id")
236
+ ) -> _ListRecommendationsForResourceResponseSuccess
237
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListRecommendationsForResourceResponseSuccess
238
+
222
239
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/TrustedAdvisor/Client.html#update_organization_recommendation_lifecycle-instance_method
223
240
  def update_organization_recommendation_lifecycle: (
224
241
  lifecycle_stage: ("pending_response" | "in_progress" | "dismissed" | "resolved"),
data/sig/types.rbs CHANGED
@@ -44,6 +44,10 @@ module Aws::TrustedAdvisor
44
44
  attr_accessor aws_services: ::Array[::String]
45
45
  attr_accessor source: ("aws_config" | "compute_optimizer" | "cost_explorer" | "lse" | "manual" | "pse" | "rds" | "resilience" | "resilience_hub" | "security_hub" | "stir" | "ta_check" | "well_architected" | "cost_optimization_hub")
46
46
  attr_accessor metadata: ::Hash[::String, ::String]
47
+ attr_accessor resource_arn_queryable: bool
48
+ attr_accessor aws_resource_types: ::Array[::String]
49
+ attr_accessor check_granularity: ::String
50
+ attr_accessor recommendation_id: ::String
47
51
  SENSITIVE: []
48
52
  end
49
53
 
@@ -162,6 +166,23 @@ module Aws::TrustedAdvisor
162
166
  SENSITIVE: []
163
167
  end
164
168
 
169
+ class ListRecommendationsForResourceRequest
170
+ attr_accessor next_token: ::String
171
+ attr_accessor max_results: ::Integer
172
+ attr_accessor aws_resource_arn: ::String
173
+ attr_accessor pillar: ("cost_optimizing" | "performance" | "security" | "service_limits" | "fault_tolerance" | "operational_excellence")
174
+ attr_accessor status: ("ok" | "warning" | "error")
175
+ attr_accessor check_arn: ::String
176
+ attr_accessor language: ("en" | "ja" | "zh" | "fr" | "de" | "ko" | "zh_TW" | "it" | "es" | "pt_BR" | "id")
177
+ SENSITIVE: []
178
+ end
179
+
180
+ class ListRecommendationsForResourceResponse
181
+ attr_accessor next_token: ::String
182
+ attr_accessor recommendation_for_resource_summaries: ::Array[Types::RecommendationForResourceSummary]
183
+ SENSITIVE: []
184
+ end
185
+
165
186
  class ListRecommendationsRequest
166
187
  attr_accessor next_token: ::String
167
188
  attr_accessor max_results: ::Integer
@@ -272,6 +293,18 @@ module Aws::TrustedAdvisor
272
293
  SENSITIVE: []
273
294
  end
274
295
 
296
+ class RecommendationForResourceSummary
297
+ attr_accessor check_arn: ::String
298
+ attr_accessor recommendation_arn: ::String
299
+ attr_accessor aws_resource_arn: ::String
300
+ attr_accessor status: ("ok" | "warning" | "error")
301
+ attr_accessor last_updated_at: ::Time
302
+ attr_accessor exclusion_status: ("excluded" | "included")
303
+ attr_accessor metadata: ::Hash[::String, ::String]
304
+ attr_accessor pillars: ::Array[("cost_optimizing" | "performance" | "security" | "service_limits" | "fault_tolerance" | "operational_excellence")]
305
+ SENSITIVE: []
306
+ end
307
+
275
308
  class RecommendationPillarSpecificAggregates
276
309
  attr_accessor cost_optimizing: Types::RecommendationCostOptimizingAggregates
277
310
  SENSITIVE: []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-trustedadvisor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.41.0
4
+ version: 1.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services