aws-sdk-resiliencehub 1.32.0 → 1.34.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.
data/sig/client.rbs CHANGED
@@ -50,6 +50,7 @@ module Aws
50
50
  ?session_token: String,
51
51
  ?sigv4a_signing_region_set: Array[String],
52
52
  ?stub_responses: untyped,
53
+ ?telemetry_provider: Aws::Telemetry::TelemetryProviderBase,
53
54
  ?token_provider: untyped,
54
55
  ?use_dualstack_endpoint: bool,
55
56
  ?use_fips_endpoint: bool,
@@ -73,6 +74,22 @@ module Aws
73
74
  | (?Hash[Symbol, untyped]) -> instance
74
75
 
75
76
 
77
+ interface _AcceptResourceGroupingRecommendationsResponseSuccess
78
+ include ::Seahorse::Client::_ResponseSuccess[Types::AcceptResourceGroupingRecommendationsResponse]
79
+ def app_arn: () -> ::String
80
+ def failed_entries: () -> ::Array[Types::FailedGroupingRecommendationEntry]
81
+ end
82
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ResilienceHub/Client.html#accept_resource_grouping_recommendations-instance_method
83
+ def accept_resource_grouping_recommendations: (
84
+ app_arn: ::String,
85
+ entries: Array[
86
+ {
87
+ grouping_recommendation_id: ::String
88
+ },
89
+ ]
90
+ ) -> _AcceptResourceGroupingRecommendationsResponseSuccess
91
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _AcceptResourceGroupingRecommendationsResponseSuccess
92
+
76
93
  interface _AddDraftAppVersionResourceMappingsResponseSuccess
77
94
  include ::Seahorse::Client::_ResponseSuccess[Types::AddDraftAppVersionResourceMappingsResponse]
78
95
  def app_arn: () -> ::String
@@ -463,6 +480,19 @@ module Aws
463
480
  ) -> _DescribeResiliencyPolicyResponseSuccess
464
481
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DescribeResiliencyPolicyResponseSuccess
465
482
 
483
+ interface _DescribeResourceGroupingRecommendationTaskResponseSuccess
484
+ include ::Seahorse::Client::_ResponseSuccess[Types::DescribeResourceGroupingRecommendationTaskResponse]
485
+ def error_message: () -> ::String
486
+ def grouping_id: () -> ::String
487
+ def status: () -> ("Pending" | "InProgress" | "Failed" | "Success")
488
+ end
489
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ResilienceHub/Client.html#describe_resource_grouping_recommendation_task-instance_method
490
+ def describe_resource_grouping_recommendation_task: (
491
+ app_arn: ::String,
492
+ ?grouping_id: ::String
493
+ ) -> _DescribeResourceGroupingRecommendationTaskResponseSuccess
494
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DescribeResourceGroupingRecommendationTaskResponseSuccess
495
+
466
496
  interface _ImportResourcesToDraftAppVersionResponseSuccess
467
497
  include ::Seahorse::Client::_ResponseSuccess[Types::ImportResourcesToDraftAppVersionResponse]
468
498
  def app_arn: () -> ::String
@@ -540,7 +570,7 @@ module Aws
540
570
  ?app_arn: ::String,
541
571
  ?assessment_name: ::String,
542
572
  ?assessment_status: Array[("Pending" | "InProgress" | "Failed" | "Success")],
543
- ?compliance_status: ("PolicyBreached" | "PolicyMet"),
573
+ ?compliance_status: ("PolicyBreached" | "PolicyMet" | "NotApplicable" | "MissingPolicy"),
544
574
  ?invoker: ("User" | "System"),
545
575
  ?max_results: ::Integer,
546
576
  ?next_token: ::String,
@@ -696,6 +726,19 @@ module Aws
696
726
  ) -> _ListResiliencyPoliciesResponseSuccess
697
727
  | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListResiliencyPoliciesResponseSuccess
698
728
 
729
+ interface _ListResourceGroupingRecommendationsResponseSuccess
730
+ include ::Seahorse::Client::_ResponseSuccess[Types::ListResourceGroupingRecommendationsResponse]
731
+ def grouping_recommendations: () -> ::Array[Types::GroupingRecommendation]
732
+ def next_token: () -> ::String
733
+ end
734
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ResilienceHub/Client.html#list_resource_grouping_recommendations-instance_method
735
+ def list_resource_grouping_recommendations: (
736
+ ?app_arn: ::String,
737
+ ?max_results: ::Integer,
738
+ ?next_token: ::String
739
+ ) -> _ListResourceGroupingRecommendationsResponseSuccess
740
+ | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListResourceGroupingRecommendationsResponseSuccess
741
+
699
742
  interface _ListSopRecommendationsResponseSuccess
700
743
  include ::Seahorse::Client::_ResponseSuccess[Types::ListSopRecommendationsResponse]
701
744
  def next_token: () -> ::String
@@ -786,6 +829,23 @@ module Aws
786
829
  ) -> _PutDraftAppVersionTemplateResponseSuccess
787
830
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _PutDraftAppVersionTemplateResponseSuccess
788
831
 
832
+ interface _RejectResourceGroupingRecommendationsResponseSuccess
833
+ include ::Seahorse::Client::_ResponseSuccess[Types::RejectResourceGroupingRecommendationsResponse]
834
+ def app_arn: () -> ::String
835
+ def failed_entries: () -> ::Array[Types::FailedGroupingRecommendationEntry]
836
+ end
837
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ResilienceHub/Client.html#reject_resource_grouping_recommendations-instance_method
838
+ def reject_resource_grouping_recommendations: (
839
+ app_arn: ::String,
840
+ entries: Array[
841
+ {
842
+ grouping_recommendation_id: ::String,
843
+ rejection_reason: ("DistinctBusinessPurpose" | "SeparateDataConcern" | "DistinctUserGroupHandling" | "Other")?
844
+ },
845
+ ]
846
+ ) -> _RejectResourceGroupingRecommendationsResponseSuccess
847
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _RejectResourceGroupingRecommendationsResponseSuccess
848
+
789
849
  interface _RemoveDraftAppVersionResourceMappingsResponseSuccess
790
850
  include ::Seahorse::Client::_ResponseSuccess[Types::RemoveDraftAppVersionResourceMappingsResponse]
791
851
  def app_arn: () -> ::String
@@ -831,6 +891,19 @@ module Aws
831
891
  ) -> _StartAppAssessmentResponseSuccess
832
892
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _StartAppAssessmentResponseSuccess
833
893
 
894
+ interface _StartResourceGroupingRecommendationTaskResponseSuccess
895
+ include ::Seahorse::Client::_ResponseSuccess[Types::StartResourceGroupingRecommendationTaskResponse]
896
+ def app_arn: () -> ::String
897
+ def error_message: () -> ::String
898
+ def grouping_id: () -> ::String
899
+ def status: () -> ("Pending" | "InProgress" | "Failed" | "Success")
900
+ end
901
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/ResilienceHub/Client.html#start_resource_grouping_recommendation_task-instance_method
902
+ def start_resource_grouping_recommendation_task: (
903
+ app_arn: ::String
904
+ ) -> _StartResourceGroupingRecommendationTaskResponseSuccess
905
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _StartResourceGroupingRecommendationTaskResponseSuccess
906
+
834
907
  interface _TagResourceResponseSuccess
835
908
  include ::Seahorse::Client::_ResponseSuccess[Types::TagResourceResponse]
836
909
  end
data/sig/resource.rbs CHANGED
@@ -50,6 +50,7 @@ module Aws
50
50
  ?session_token: String,
51
51
  ?sigv4a_signing_region_set: Array[String],
52
52
  ?stub_responses: untyped,
53
+ ?telemetry_provider: Aws::Telemetry::TelemetryProviderBase,
53
54
  ?token_provider: untyped,
54
55
  ?use_dualstack_endpoint: bool,
55
56
  ?use_fips_endpoint: bool,
data/sig/types.rbs CHANGED
@@ -8,6 +8,23 @@
8
8
  module Aws::ResilienceHub
9
9
  module Types
10
10
 
11
+ class AcceptGroupingRecommendationEntry
12
+ attr_accessor grouping_recommendation_id: ::String
13
+ SENSITIVE: []
14
+ end
15
+
16
+ class AcceptResourceGroupingRecommendationsRequest
17
+ attr_accessor app_arn: ::String
18
+ attr_accessor entries: ::Array[Types::AcceptGroupingRecommendationEntry]
19
+ SENSITIVE: []
20
+ end
21
+
22
+ class AcceptResourceGroupingRecommendationsResponse
23
+ attr_accessor app_arn: ::String
24
+ attr_accessor failed_entries: ::Array[Types::FailedGroupingRecommendationEntry]
25
+ SENSITIVE: []
26
+ end
27
+
11
28
  class AccessDeniedException
12
29
  attr_accessor message: ::String
13
30
  SENSITIVE: []
@@ -43,7 +60,7 @@ module Aws::ResilienceHub
43
60
  class App
44
61
  attr_accessor app_arn: ::String
45
62
  attr_accessor assessment_schedule: ("Disabled" | "Daily")
46
- attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet" | "NotAssessed" | "ChangesDetected")
63
+ attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet" | "NotAssessed" | "ChangesDetected" | "NotApplicable" | "MissingPolicy")
47
64
  attr_accessor creation_time: ::Time
48
65
  attr_accessor description: ::String
49
66
  attr_accessor drift_status: ("NotChecked" | "NotDetected" | "Detected")
@@ -69,7 +86,7 @@ module Aws::ResilienceHub
69
86
  attr_accessor assessment_name: ::String
70
87
  attr_accessor assessment_status: ("Pending" | "InProgress" | "Failed" | "Success")
71
88
  attr_accessor compliance: ::Hash[("Software" | "Hardware" | "AZ" | "Region"), Types::DisruptionCompliance]
72
- attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet")
89
+ attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet" | "NotApplicable" | "MissingPolicy")
73
90
  attr_accessor cost: Types::Cost
74
91
  attr_accessor drift_status: ("NotChecked" | "NotDetected" | "Detected")
75
92
  attr_accessor end_time: ::Time
@@ -79,6 +96,7 @@ module Aws::ResilienceHub
79
96
  attr_accessor resiliency_score: Types::ResiliencyScore
80
97
  attr_accessor resource_errors_details: Types::ResourceErrorsDetails
81
98
  attr_accessor start_time: ::Time
99
+ attr_accessor summary: Types::AssessmentSummary
82
100
  attr_accessor tags: ::Hash[::String, ::String]
83
101
  attr_accessor version_name: ::String
84
102
  SENSITIVE: [:tags]
@@ -90,7 +108,7 @@ module Aws::ResilienceHub
90
108
  attr_accessor assessment_arn: ::String
91
109
  attr_accessor assessment_name: ::String
92
110
  attr_accessor assessment_status: ("Pending" | "InProgress" | "Failed" | "Success")
93
- attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet")
111
+ attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet" | "NotApplicable" | "MissingPolicy")
94
112
  attr_accessor cost: Types::Cost
95
113
  attr_accessor drift_status: ("NotChecked" | "NotDetected" | "Detected")
96
114
  attr_accessor end_time: ::Time
@@ -116,7 +134,7 @@ module Aws::ResilienceHub
116
134
  attr_accessor cost: Types::Cost
117
135
  attr_accessor message: ::String
118
136
  attr_accessor resiliency_score: Types::ResiliencyScore
119
- attr_accessor status: ("PolicyBreached" | "PolicyMet")
137
+ attr_accessor status: ("PolicyBreached" | "PolicyMet" | "NotApplicable" | "MissingPolicy")
120
138
  SENSITIVE: []
121
139
  end
122
140
 
@@ -133,7 +151,7 @@ module Aws::ResilienceHub
133
151
  class AppSummary
134
152
  attr_accessor app_arn: ::String
135
153
  attr_accessor assessment_schedule: ("Disabled" | "Daily")
136
- attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet" | "NotAssessed" | "ChangesDetected")
154
+ attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet" | "NotAssessed" | "ChangesDetected" | "NotApplicable" | "MissingPolicy")
137
155
  attr_accessor creation_time: ::Time
138
156
  attr_accessor description: ::String
139
157
  attr_accessor drift_status: ("NotChecked" | "NotDetected" | "Detected")
@@ -154,6 +172,19 @@ module Aws::ResilienceHub
154
172
  SENSITIVE: []
155
173
  end
156
174
 
175
+ class AssessmentRiskRecommendation
176
+ attr_accessor app_components: ::Array[::String]
177
+ attr_accessor recommendation: ::String
178
+ attr_accessor risk: ::String
179
+ SENSITIVE: []
180
+ end
181
+
182
+ class AssessmentSummary
183
+ attr_accessor risk_recommendations: ::Array[Types::AssessmentRiskRecommendation]
184
+ attr_accessor summary: ::String
185
+ SENSITIVE: []
186
+ end
187
+
157
188
  class BatchUpdateRecommendationStatusFailedEntry
158
189
  attr_accessor entry_id: ::String
159
190
  attr_accessor error_message: ::String
@@ -199,7 +230,7 @@ module Aws::ResilienceHub
199
230
  class ComponentRecommendation
200
231
  attr_accessor app_component_name: ::String
201
232
  attr_accessor config_recommendations: ::Array[Types::ConfigRecommendation]
202
- attr_accessor recommendation_status: ("BreachedUnattainable" | "BreachedCanMeet" | "MetCanImprove")
233
+ attr_accessor recommendation_status: ("BreachedUnattainable" | "BreachedCanMeet" | "MetCanImprove" | "MissingPolicy")
203
234
  SENSITIVE: []
204
235
  end
205
236
 
@@ -531,10 +562,23 @@ module Aws::ResilienceHub
531
562
  SENSITIVE: []
532
563
  end
533
564
 
565
+ class DescribeResourceGroupingRecommendationTaskRequest
566
+ attr_accessor app_arn: ::String
567
+ attr_accessor grouping_id: ::String
568
+ SENSITIVE: []
569
+ end
570
+
571
+ class DescribeResourceGroupingRecommendationTaskResponse
572
+ attr_accessor error_message: ::String
573
+ attr_accessor grouping_id: ::String
574
+ attr_accessor status: ("Pending" | "InProgress" | "Failed" | "Success")
575
+ SENSITIVE: []
576
+ end
577
+
534
578
  class DisruptionCompliance
535
579
  attr_accessor achievable_rpo_in_secs: ::Integer
536
580
  attr_accessor achievable_rto_in_secs: ::Integer
537
- attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet")
581
+ attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet" | "NotApplicable" | "MissingPolicy")
538
582
  attr_accessor current_rpo_in_secs: ::Integer
539
583
  attr_accessor current_rto_in_secs: ::Integer
540
584
  attr_accessor message: ::String
@@ -564,12 +608,47 @@ module Aws::ResilienceHub
564
608
  SENSITIVE: []
565
609
  end
566
610
 
611
+ class FailedGroupingRecommendationEntry
612
+ attr_accessor error_message: ::String
613
+ attr_accessor grouping_recommendation_id: ::String
614
+ SENSITIVE: []
615
+ end
616
+
567
617
  class FailurePolicy
568
618
  attr_accessor rpo_in_secs: ::Integer
569
619
  attr_accessor rto_in_secs: ::Integer
570
620
  SENSITIVE: []
571
621
  end
572
622
 
623
+ class GroupingAppComponent
624
+ attr_accessor app_component_id: ::String
625
+ attr_accessor app_component_name: ::String
626
+ attr_accessor app_component_type: ::String
627
+ SENSITIVE: []
628
+ end
629
+
630
+ class GroupingRecommendation
631
+ attr_accessor confidence_level: ("High" | "Medium")
632
+ attr_accessor creation_time: ::Time
633
+ attr_accessor grouping_app_component: Types::GroupingAppComponent
634
+ attr_accessor grouping_recommendation_id: ::String
635
+ attr_accessor recommendation_reasons: ::Array[::String]
636
+ attr_accessor rejection_reason: ("DistinctBusinessPurpose" | "SeparateDataConcern" | "DistinctUserGroupHandling" | "Other")
637
+ attr_accessor resources: ::Array[Types::GroupingResource]
638
+ attr_accessor score: ::Float
639
+ attr_accessor status: ("Accepted" | "Rejected" | "PendingDecision")
640
+ SENSITIVE: []
641
+ end
642
+
643
+ class GroupingResource
644
+ attr_accessor logical_resource_id: Types::LogicalResourceId
645
+ attr_accessor physical_resource_id: Types::PhysicalResourceId
646
+ attr_accessor resource_name: ::String
647
+ attr_accessor resource_type: ::String
648
+ attr_accessor source_app_component_ids: ::Array[::String]
649
+ SENSITIVE: []
650
+ end
651
+
573
652
  class ImportResourcesToDraftAppVersionRequest
574
653
  attr_accessor app_arn: ::String
575
654
  attr_accessor eks_sources: ::Array[Types::EksSource]
@@ -637,7 +716,7 @@ module Aws::ResilienceHub
637
716
  attr_accessor app_arn: ::String
638
717
  attr_accessor assessment_name: ::String
639
718
  attr_accessor assessment_status: ::Array[("Pending" | "InProgress" | "Failed" | "Success")]
640
- attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet")
719
+ attr_accessor compliance_status: ("PolicyBreached" | "PolicyMet" | "NotApplicable" | "MissingPolicy")
641
720
  attr_accessor invoker: ("User" | "System")
642
721
  attr_accessor max_results: ::Integer
643
722
  attr_accessor next_token: ::String
@@ -799,6 +878,19 @@ module Aws::ResilienceHub
799
878
  SENSITIVE: []
800
879
  end
801
880
 
881
+ class ListResourceGroupingRecommendationsRequest
882
+ attr_accessor app_arn: ::String
883
+ attr_accessor max_results: ::Integer
884
+ attr_accessor next_token: ::String
885
+ SENSITIVE: []
886
+ end
887
+
888
+ class ListResourceGroupingRecommendationsResponse
889
+ attr_accessor grouping_recommendations: ::Array[Types::GroupingRecommendation]
890
+ attr_accessor next_token: ::String
891
+ SENSITIVE: []
892
+ end
893
+
802
894
  class ListSopRecommendationsRequest
803
895
  attr_accessor assessment_arn: ::String
804
896
  attr_accessor max_results: ::Integer
@@ -927,7 +1019,7 @@ module Aws::ResilienceHub
927
1019
  end
928
1020
 
929
1021
  class RecommendationDisruptionCompliance
930
- attr_accessor expected_compliance_status: ("PolicyBreached" | "PolicyMet")
1022
+ attr_accessor expected_compliance_status: ("PolicyBreached" | "PolicyMet" | "NotApplicable" | "MissingPolicy")
931
1023
  attr_accessor expected_rpo_description: ::String
932
1024
  attr_accessor expected_rpo_in_secs: ::Integer
933
1025
  attr_accessor expected_rto_description: ::String
@@ -963,6 +1055,24 @@ module Aws::ResilienceHub
963
1055
  SENSITIVE: [:tags]
964
1056
  end
965
1057
 
1058
+ class RejectGroupingRecommendationEntry
1059
+ attr_accessor grouping_recommendation_id: ::String
1060
+ attr_accessor rejection_reason: ("DistinctBusinessPurpose" | "SeparateDataConcern" | "DistinctUserGroupHandling" | "Other")
1061
+ SENSITIVE: []
1062
+ end
1063
+
1064
+ class RejectResourceGroupingRecommendationsRequest
1065
+ attr_accessor app_arn: ::String
1066
+ attr_accessor entries: ::Array[Types::RejectGroupingRecommendationEntry]
1067
+ SENSITIVE: []
1068
+ end
1069
+
1070
+ class RejectResourceGroupingRecommendationsResponse
1071
+ attr_accessor app_arn: ::String
1072
+ attr_accessor failed_entries: ::Array[Types::FailedGroupingRecommendationEntry]
1073
+ SENSITIVE: []
1074
+ end
1075
+
966
1076
  class RemoveDraftAppVersionResourceMappingsRequest
967
1077
  attr_accessor app_arn: ::String
968
1078
  attr_accessor app_registry_app_names: ::Array[::String]
@@ -1107,6 +1217,19 @@ module Aws::ResilienceHub
1107
1217
  SENSITIVE: []
1108
1218
  end
1109
1219
 
1220
+ class StartResourceGroupingRecommendationTaskRequest
1221
+ attr_accessor app_arn: ::String
1222
+ SENSITIVE: []
1223
+ end
1224
+
1225
+ class StartResourceGroupingRecommendationTaskResponse
1226
+ attr_accessor app_arn: ::String
1227
+ attr_accessor error_message: ::String
1228
+ attr_accessor grouping_id: ::String
1229
+ attr_accessor status: ("Pending" | "InProgress" | "Failed" | "Success")
1230
+ SENSITIVE: []
1231
+ end
1232
+
1110
1233
  class TagResourceRequest
1111
1234
  attr_accessor resource_arn: ::String
1112
1235
  attr_accessor tags: ::Hash[::String, ::String]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-resiliencehub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.32.0
4
+ version: 1.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-02 00:00:00.000000000 Z
11
+ date: 2024-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.201.0
22
+ version: 3.203.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,21 +29,21 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.201.0
32
+ version: 3.203.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.1'
39
+ version: '1.5'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.1'
46
+ version: '1.5'
47
47
  description: Official AWS Ruby gem for AWS Resilience Hub. This gem is part of the
48
48
  AWS SDK for Ruby.
49
49
  email: