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 +4 -4
- data/CHANGELOG.md +5 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-trustedadvisor/client.rb +121 -1
- data/lib/aws-sdk-trustedadvisor/client_api.rb +58 -0
- data/lib/aws-sdk-trustedadvisor/types.rb +138 -1
- data/lib/aws-sdk-trustedadvisor.rb +1 -1
- data/sig/client.rbs +17 -0
- data/sig/types.rbs +33 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3d00e1b9d396cd2323565555010eb77d719206791a68c151fc01a58965ac2c9e
|
|
4
|
+
data.tar.gz: d50f694e2d6a4a23923aaf3fd9c7fe4137b065ac378e092ba64d4ab5d4d7b4d3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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<Types::RecommendationForResourceSummary>
|
|
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.
|
|
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
|
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: []
|