aws-sdk-internetmonitor 1.10.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d8a846b18f6295cfe1efdd93af1fa38b856888156d9ba8c60aebc0d8e8f392f
4
- data.tar.gz: 4b7de2a58db7ddf8c054e488d094abfd0e6a610bcda3f8d918159ac5fd73203d
3
+ metadata.gz: bd85642189b06def1f20e4a36cf0a50bf27198fd8b85edb28ad027f251e1c4f3
4
+ data.tar.gz: 3d97063bc5c945fb3c64f2e48cbd7892b8718a487fa820235e5e7a9848d3f3c5
5
5
  SHA512:
6
- metadata.gz: b7b35f327cc2728f68f693cdeafa49ded6390513461490ed0865db6534790fc0d7073582f4cd9670952cdac5d69ce0a65a3519970795b9f4b8b0b668da992faa
7
- data.tar.gz: 6089c568680ab6f7f395e97dab943a66ee9f4a5b6e28286457fda887f3fe33382dc7df65efd9414e6602ea0169d7c9f20d22c46dcd0c58f04a04583d3f930248
6
+ metadata.gz: 6ae6b11bb7e01536feb44d7e306ea6b461ca48a776d80b36bc56699a2c5a2c988e58a05377cd28d044349f7d0bcb3ff7dbd30c91cd7dfece756d11eb7c4bac88
7
+ data.tar.gz: 782135a27cb6e8db1ffe20733593bd01029418fd6bcdce694d3126d08ea2bedeb400bf6113e68f6c66ac96acd34c655f98f6511f4fa2e18e5e72a284b4a5d4f0
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.11.0 (2023-11-17)
5
+ ------------------
6
+
7
+ * Feature - Adds new querying capabilities for running data queries on a monitor
8
+
4
9
  1.10.0 (2023-09-27)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.10.0
1
+ 1.11.0
@@ -583,7 +583,7 @@ module Aws::InternetMonitor
583
583
  # The name of the monitor.
584
584
  #
585
585
  # @option params [required, String] :event_id
586
- # The internally generated identifier of a health event. Because
586
+ # The internally-generated identifier of a health event. Because
587
587
  # `EventID` contains the forward slash (“/”) character, you must
588
588
  # URL-encode the `EventID` field in the request URL.
589
589
  #
@@ -725,6 +725,114 @@ module Aws::InternetMonitor
725
725
  req.send_request(options)
726
726
  end
727
727
 
728
+ # Return the data for a query with the Amazon CloudWatch Internet
729
+ # Monitor query interface. Specify the query that you want to return
730
+ # results for by providing a `QueryId` and a monitor name.
731
+ #
732
+ # For more information about using the query interface, including
733
+ # examples, see [Using the Amazon CloudWatch Internet Monitor query
734
+ # interface][1] in the Amazon CloudWatch Internet Monitor User Guide.
735
+ #
736
+ #
737
+ #
738
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-view-cw-tools-cwim-query.html
739
+ #
740
+ # @option params [required, String] :monitor_name
741
+ # The name of the monitor to return data for.
742
+ #
743
+ # @option params [required, String] :query_id
744
+ # The ID of the query that you want to return data results for. A
745
+ # `QueryId` is an internally-generated identifier for a specific query.
746
+ #
747
+ # @option params [String] :next_token
748
+ # The token for the next set of results. You receive this token from a
749
+ # previous call.
750
+ #
751
+ # @option params [Integer] :max_results
752
+ # The number of query results that you want to return with this call.
753
+ #
754
+ # @return [Types::GetQueryResultsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
755
+ #
756
+ # * {Types::GetQueryResultsOutput#fields #fields} => Array<Types::QueryField>
757
+ # * {Types::GetQueryResultsOutput#data #data} => Array<Array<String>>
758
+ # * {Types::GetQueryResultsOutput#next_token #next_token} => String
759
+ #
760
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
761
+ #
762
+ # @example Request syntax with placeholder values
763
+ #
764
+ # resp = client.get_query_results({
765
+ # monitor_name: "ResourceName", # required
766
+ # query_id: "String", # required
767
+ # next_token: "String",
768
+ # max_results: 1,
769
+ # })
770
+ #
771
+ # @example Response structure
772
+ #
773
+ # resp.fields #=> Array
774
+ # resp.fields[0].name #=> String
775
+ # resp.fields[0].type #=> String
776
+ # resp.data #=> Array
777
+ # resp.data[0] #=> Array
778
+ # resp.data[0][0] #=> String
779
+ # resp.next_token #=> String
780
+ #
781
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/GetQueryResults AWS API Documentation
782
+ #
783
+ # @overload get_query_results(params = {})
784
+ # @param [Hash] params ({})
785
+ def get_query_results(params = {}, options = {})
786
+ req = build_request(:get_query_results, params)
787
+ req.send_request(options)
788
+ end
789
+
790
+ # Returns the current status of a query for the Amazon CloudWatch
791
+ # Internet Monitor query interface, for a specified query ID and
792
+ # monitor. When you run a query, check the status to make sure that the
793
+ # query has `SUCCEEDED` before you review the results.
794
+ #
795
+ # * `QUEUED`: The query is scheduled to run.
796
+ #
797
+ # * `RUNNING`: The query is in progress but not complete.
798
+ #
799
+ # * `SUCCEEDED`: The query completed sucessfully.
800
+ #
801
+ # * `FAILED`: The query failed due to an error.
802
+ #
803
+ # * `CANCELED`: The query was canceled.
804
+ #
805
+ # @option params [required, String] :monitor_name
806
+ # The name of the monitor.
807
+ #
808
+ # @option params [required, String] :query_id
809
+ # The ID of the query that you want to return the status for. A
810
+ # `QueryId` is an internally-generated dentifier for a specific query.
811
+ #
812
+ # @return [Types::GetQueryStatusOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
813
+ #
814
+ # * {Types::GetQueryStatusOutput#status #status} => String
815
+ #
816
+ # @example Request syntax with placeholder values
817
+ #
818
+ # resp = client.get_query_status({
819
+ # monitor_name: "ResourceName", # required
820
+ # query_id: "String", # required
821
+ # })
822
+ #
823
+ # @example Response structure
824
+ #
825
+ # resp.status #=> String, one of "QUEUED", "RUNNING", "SUCCEEDED", "FAILED", "CANCELED"
826
+ #
827
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/GetQueryStatus AWS API Documentation
828
+ #
829
+ # @overload get_query_status(params = {})
830
+ # @param [Hash] params ({})
831
+ def get_query_status(params = {}, options = {})
832
+ req = build_request(:get_query_status, params)
833
+ req.send_request(options)
834
+ end
835
+
728
836
  # Lists all health events for a monitor in Amazon CloudWatch Internet
729
837
  # Monitor. Returns information for health events including the event
730
838
  # start and end time and the status.
@@ -910,6 +1018,125 @@ module Aws::InternetMonitor
910
1018
  req.send_request(options)
911
1019
  end
912
1020
 
1021
+ # Start a query to return data for a specific query type for the Amazon
1022
+ # CloudWatch Internet Monitor query interface. Specify a time period for
1023
+ # the data that you want returned by using `StartTime` and `EndTime`.
1024
+ # You filter the query results to return by providing parameters that
1025
+ # you specify with `FilterParameters`.
1026
+ #
1027
+ # For more information about using the query interface, including
1028
+ # examples, see [Using the Amazon CloudWatch Internet Monitor query
1029
+ # interface][1] in the Amazon CloudWatch Internet Monitor User Guide.
1030
+ #
1031
+ #
1032
+ #
1033
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-view-cw-tools-cwim-query.html
1034
+ #
1035
+ # @option params [required, String] :monitor_name
1036
+ # The name of the monitor to query.
1037
+ #
1038
+ # @option params [required, Time,DateTime,Date,Integer,String] :start_time
1039
+ # The timestamp that is the beginning of the period that you want to
1040
+ # retrieve data for with your query.
1041
+ #
1042
+ # @option params [required, Time,DateTime,Date,Integer,String] :end_time
1043
+ # The timestamp that is the end of the period that you want to retrieve
1044
+ # data for with your query.
1045
+ #
1046
+ # @option params [required, String] :query_type
1047
+ # The type of query to run. The following are the three types of queries
1048
+ # that you can run using the Internet Monitor query interface:
1049
+ #
1050
+ # * `MEASUREMENTS`: TBD definition
1051
+ #
1052
+ # * `TOP_LOCATIONS`: TBD definition
1053
+ #
1054
+ # * `TOP_LOCATION_DETAILS`: TBD definition
1055
+ #
1056
+ # For lists of the fields returned with each query type and more
1057
+ # information about how each type of query is performed, see [ Using the
1058
+ # Amazon CloudWatch Internet Monitor query interface][1] in the Amazon
1059
+ # CloudWatch Internet Monitor User Guide.
1060
+ #
1061
+ #
1062
+ #
1063
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-view-cw-tools-cwim-query.html
1064
+ #
1065
+ # @option params [Array<Types::FilterParameter>] :filter_parameters
1066
+ # The `FilterParameters` field that you use with Amazon CloudWatch
1067
+ # Internet Monitor queries is a string the defines how you want a query
1068
+ # to be filtered. The filter parameters that you can specify depend on
1069
+ # the query type, since each query type returns a different set of
1070
+ # Internet Monitor data.
1071
+ #
1072
+ # For more information about specifying filter parameters, see [Using
1073
+ # the Amazon CloudWatch Internet Monitor query interface][1] in the
1074
+ # Amazon CloudWatch Internet Monitor User Guide.
1075
+ #
1076
+ #
1077
+ #
1078
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-view-cw-tools-cwim-query.html
1079
+ #
1080
+ # @return [Types::StartQueryOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1081
+ #
1082
+ # * {Types::StartQueryOutput#query_id #query_id} => String
1083
+ #
1084
+ # @example Request syntax with placeholder values
1085
+ #
1086
+ # resp = client.start_query({
1087
+ # monitor_name: "ResourceName", # required
1088
+ # start_time: Time.now, # required
1089
+ # end_time: Time.now, # required
1090
+ # query_type: "MEASUREMENTS", # required, accepts MEASUREMENTS, TOP_LOCATIONS, TOP_LOCATION_DETAILS
1091
+ # filter_parameters: [
1092
+ # {
1093
+ # field: "String",
1094
+ # operator: "EQUALS", # accepts EQUALS, NOT_EQUALS
1095
+ # values: ["String"],
1096
+ # },
1097
+ # ],
1098
+ # })
1099
+ #
1100
+ # @example Response structure
1101
+ #
1102
+ # resp.query_id #=> String
1103
+ #
1104
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/StartQuery AWS API Documentation
1105
+ #
1106
+ # @overload start_query(params = {})
1107
+ # @param [Hash] params ({})
1108
+ def start_query(params = {}, options = {})
1109
+ req = build_request(:start_query, params)
1110
+ req.send_request(options)
1111
+ end
1112
+
1113
+ # Stop a query that is progress for a specific monitor.
1114
+ #
1115
+ # @option params [required, String] :monitor_name
1116
+ # The name of the monitor.
1117
+ #
1118
+ # @option params [required, String] :query_id
1119
+ # The ID of the query that you want to stop. A `QueryId` is an
1120
+ # internally-generated identifier for a specific query.
1121
+ #
1122
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1123
+ #
1124
+ # @example Request syntax with placeholder values
1125
+ #
1126
+ # resp = client.stop_query({
1127
+ # monitor_name: "ResourceName", # required
1128
+ # query_id: "String", # required
1129
+ # })
1130
+ #
1131
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/StopQuery AWS API Documentation
1132
+ #
1133
+ # @overload stop_query(params = {})
1134
+ # @param [Hash] params ({})
1135
+ def stop_query(params = {}, options = {})
1136
+ req = build_request(:stop_query, params)
1137
+ req.send_request(options)
1138
+ end
1139
+
913
1140
  # Adds a tag to a resource. Tags are supported only for monitors in
914
1141
  # Amazon CloudWatch Internet Monitor. You can add a maximum of 50 tags
915
1142
  # in Internet Monitor.
@@ -1125,7 +1352,7 @@ module Aws::InternetMonitor
1125
1352
  params: params,
1126
1353
  config: config)
1127
1354
  context[:gem_name] = 'aws-sdk-internetmonitor'
1128
- context[:gem_version] = '1.10.0'
1355
+ context[:gem_version] = '1.11.0'
1129
1356
  Seahorse::Client::Request.new(handlers, context)
1130
1357
  end
1131
1358
 
@@ -23,10 +23,17 @@ module Aws::InternetMonitor
23
23
  DeleteMonitorInput = Shapes::StructureShape.new(name: 'DeleteMonitorInput')
24
24
  DeleteMonitorOutput = Shapes::StructureShape.new(name: 'DeleteMonitorOutput')
25
25
  Double = Shapes::FloatShape.new(name: 'Double')
26
+ FilterList = Shapes::ListShape.new(name: 'FilterList')
27
+ FilterParameter = Shapes::StructureShape.new(name: 'FilterParameter')
28
+ FilterParameters = Shapes::ListShape.new(name: 'FilterParameters')
26
29
  GetHealthEventInput = Shapes::StructureShape.new(name: 'GetHealthEventInput')
27
30
  GetHealthEventOutput = Shapes::StructureShape.new(name: 'GetHealthEventOutput')
28
31
  GetMonitorInput = Shapes::StructureShape.new(name: 'GetMonitorInput')
29
32
  GetMonitorOutput = Shapes::StructureShape.new(name: 'GetMonitorOutput')
33
+ GetQueryResultsInput = Shapes::StructureShape.new(name: 'GetQueryResultsInput')
34
+ GetQueryResultsOutput = Shapes::StructureShape.new(name: 'GetQueryResultsOutput')
35
+ GetQueryStatusInput = Shapes::StructureShape.new(name: 'GetQueryStatusInput')
36
+ GetQueryStatusOutput = Shapes::StructureShape.new(name: 'GetQueryStatusOutput')
30
37
  HealthEvent = Shapes::StructureShape.new(name: 'HealthEvent')
31
38
  HealthEventImpactType = Shapes::StringShape.new(name: 'HealthEventImpactType')
32
39
  HealthEventList = Shapes::ListShape.new(name: 'HealthEventList')
@@ -61,14 +68,26 @@ module Aws::InternetMonitor
61
68
  NetworkImpairment = Shapes::StructureShape.new(name: 'NetworkImpairment')
62
69
  NetworkList = Shapes::ListShape.new(name: 'NetworkList')
63
70
  NotFoundException = Shapes::StructureShape.new(name: 'NotFoundException')
71
+ Operator = Shapes::StringShape.new(name: 'Operator')
64
72
  Percentage = Shapes::FloatShape.new(name: 'Percentage')
65
73
  PerformanceMeasurement = Shapes::StructureShape.new(name: 'PerformanceMeasurement')
74
+ QueryData = Shapes::ListShape.new(name: 'QueryData')
75
+ QueryField = Shapes::StructureShape.new(name: 'QueryField')
76
+ QueryFields = Shapes::ListShape.new(name: 'QueryFields')
77
+ QueryMaxResults = Shapes::IntegerShape.new(name: 'QueryMaxResults')
78
+ QueryRow = Shapes::ListShape.new(name: 'QueryRow')
79
+ QueryStatus = Shapes::StringShape.new(name: 'QueryStatus')
80
+ QueryType = Shapes::StringShape.new(name: 'QueryType')
66
81
  ResourceName = Shapes::StringShape.new(name: 'ResourceName')
67
82
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
68
83
  RoundTripTime = Shapes::StructureShape.new(name: 'RoundTripTime')
69
84
  S3Config = Shapes::StructureShape.new(name: 'S3Config')
70
85
  S3ConfigBucketNameString = Shapes::StringShape.new(name: 'S3ConfigBucketNameString')
71
86
  SetOfARNs = Shapes::ListShape.new(name: 'SetOfARNs')
87
+ StartQueryInput = Shapes::StructureShape.new(name: 'StartQueryInput')
88
+ StartQueryOutput = Shapes::StructureShape.new(name: 'StartQueryOutput')
89
+ StopQueryInput = Shapes::StructureShape.new(name: 'StopQueryInput')
90
+ StopQueryOutput = Shapes::StructureShape.new(name: 'StopQueryOutput')
72
91
  String = Shapes::StringShape.new(name: 'String')
73
92
  SyntheticTimestamp_date_time = Shapes::TimestampShape.new(name: 'SyntheticTimestamp_date_time', timestampFormat: "iso8601")
74
93
  TagKey = Shapes::StringShape.new(name: 'TagKey')
@@ -120,6 +139,15 @@ module Aws::InternetMonitor
120
139
 
121
140
  DeleteMonitorOutput.struct_class = Types::DeleteMonitorOutput
122
141
 
142
+ FilterList.member = Shapes::ShapeRef.new(shape: String)
143
+
144
+ FilterParameter.add_member(:field, Shapes::ShapeRef.new(shape: String, location_name: "Field"))
145
+ FilterParameter.add_member(:operator, Shapes::ShapeRef.new(shape: Operator, location_name: "Operator"))
146
+ FilterParameter.add_member(:values, Shapes::ShapeRef.new(shape: FilterList, location_name: "Values"))
147
+ FilterParameter.struct_class = Types::FilterParameter
148
+
149
+ FilterParameters.member = Shapes::ShapeRef.new(shape: FilterParameter)
150
+
123
151
  GetHealthEventInput.add_member(:monitor_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "MonitorName"))
124
152
  GetHealthEventInput.add_member(:event_id, Shapes::ShapeRef.new(shape: HealthEventName, required: true, location: "uri", location_name: "EventId"))
125
153
  GetHealthEventInput.struct_class = Types::GetHealthEventInput
@@ -155,6 +183,24 @@ module Aws::InternetMonitor
155
183
  GetMonitorOutput.add_member(:health_events_config, Shapes::ShapeRef.new(shape: HealthEventsConfig, location_name: "HealthEventsConfig"))
156
184
  GetMonitorOutput.struct_class = Types::GetMonitorOutput
157
185
 
186
+ GetQueryResultsInput.add_member(:monitor_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "MonitorName"))
187
+ GetQueryResultsInput.add_member(:query_id, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "QueryId"))
188
+ GetQueryResultsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "NextToken"))
189
+ GetQueryResultsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: QueryMaxResults, location: "querystring", location_name: "MaxResults"))
190
+ GetQueryResultsInput.struct_class = Types::GetQueryResultsInput
191
+
192
+ GetQueryResultsOutput.add_member(:fields, Shapes::ShapeRef.new(shape: QueryFields, required: true, location_name: "Fields"))
193
+ GetQueryResultsOutput.add_member(:data, Shapes::ShapeRef.new(shape: QueryData, required: true, location_name: "Data"))
194
+ GetQueryResultsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
195
+ GetQueryResultsOutput.struct_class = Types::GetQueryResultsOutput
196
+
197
+ GetQueryStatusInput.add_member(:monitor_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "MonitorName"))
198
+ GetQueryStatusInput.add_member(:query_id, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "QueryId"))
199
+ GetQueryStatusInput.struct_class = Types::GetQueryStatusInput
200
+
201
+ GetQueryStatusOutput.add_member(:status, Shapes::ShapeRef.new(shape: QueryStatus, required: true, location_name: "Status"))
202
+ GetQueryStatusOutput.struct_class = Types::GetQueryStatusOutput
203
+
158
204
  HealthEvent.add_member(:event_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "EventArn"))
159
205
  HealthEvent.add_member(:event_id, Shapes::ShapeRef.new(shape: HealthEventName, required: true, location_name: "EventId"))
160
206
  HealthEvent.add_member(:started_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "StartedAt"))
@@ -270,6 +316,16 @@ module Aws::InternetMonitor
270
316
  PerformanceMeasurement.add_member(:round_trip_time, Shapes::ShapeRef.new(shape: RoundTripTime, location_name: "RoundTripTime"))
271
317
  PerformanceMeasurement.struct_class = Types::PerformanceMeasurement
272
318
 
319
+ QueryData.member = Shapes::ShapeRef.new(shape: QueryRow)
320
+
321
+ QueryField.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "Name"))
322
+ QueryField.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "Type"))
323
+ QueryField.struct_class = Types::QueryField
324
+
325
+ QueryFields.member = Shapes::ShapeRef.new(shape: QueryField)
326
+
327
+ QueryRow.member = Shapes::ShapeRef.new(shape: String)
328
+
273
329
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
274
330
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
275
331
 
@@ -285,6 +341,22 @@ module Aws::InternetMonitor
285
341
 
286
342
  SetOfARNs.member = Shapes::ShapeRef.new(shape: Arn)
287
343
 
344
+ StartQueryInput.add_member(:monitor_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "MonitorName"))
345
+ StartQueryInput.add_member(:start_time, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "StartTime"))
346
+ StartQueryInput.add_member(:end_time, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "EndTime"))
347
+ StartQueryInput.add_member(:query_type, Shapes::ShapeRef.new(shape: QueryType, required: true, location_name: "QueryType"))
348
+ StartQueryInput.add_member(:filter_parameters, Shapes::ShapeRef.new(shape: FilterParameters, location_name: "FilterParameters"))
349
+ StartQueryInput.struct_class = Types::StartQueryInput
350
+
351
+ StartQueryOutput.add_member(:query_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "QueryId"))
352
+ StartQueryOutput.struct_class = Types::StartQueryOutput
353
+
354
+ StopQueryInput.add_member(:monitor_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location: "uri", location_name: "MonitorName"))
355
+ StopQueryInput.add_member(:query_id, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "QueryId"))
356
+ StopQueryInput.struct_class = Types::StopQueryInput
357
+
358
+ StopQueryOutput.struct_class = Types::StopQueryOutput
359
+
288
360
  TagKeys.member = Shapes::ShapeRef.new(shape: TagKey)
289
361
 
290
362
  TagMap.key = Shapes::ShapeRef.new(shape: TagKey)
@@ -394,6 +466,38 @@ module Aws::InternetMonitor
394
466
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
395
467
  end)
396
468
 
469
+ api.add_operation(:get_query_results, Seahorse::Model::Operation.new.tap do |o|
470
+ o.name = "GetQueryResults"
471
+ o.http_method = "GET"
472
+ o.http_request_uri = "/v20210603/Monitors/{MonitorName}/Queries/{QueryId}/Results"
473
+ o.input = Shapes::ShapeRef.new(shape: GetQueryResultsInput)
474
+ o.output = Shapes::ShapeRef.new(shape: GetQueryResultsOutput)
475
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
476
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
477
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
478
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
479
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
480
+ o[:pager] = Aws::Pager.new(
481
+ limit_key: "max_results",
482
+ tokens: {
483
+ "next_token" => "next_token"
484
+ }
485
+ )
486
+ end)
487
+
488
+ api.add_operation(:get_query_status, Seahorse::Model::Operation.new.tap do |o|
489
+ o.name = "GetQueryStatus"
490
+ o.http_method = "GET"
491
+ o.http_request_uri = "/v20210603/Monitors/{MonitorName}/Queries/{QueryId}/Status"
492
+ o.input = Shapes::ShapeRef.new(shape: GetQueryStatusInput)
493
+ o.output = Shapes::ShapeRef.new(shape: GetQueryStatusOutput)
494
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
495
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
496
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
497
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
498
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
499
+ end)
500
+
397
501
  api.add_operation(:list_health_events, Seahorse::Model::Operation.new.tap do |o|
398
502
  o.name = "ListHealthEvents"
399
503
  o.http_method = "GET"
@@ -443,6 +547,32 @@ module Aws::InternetMonitor
443
547
  o.errors << Shapes::ShapeRef.new(shape: InternalServerErrorException)
444
548
  end)
445
549
 
550
+ api.add_operation(:start_query, Seahorse::Model::Operation.new.tap do |o|
551
+ o.name = "StartQuery"
552
+ o.http_method = "POST"
553
+ o.http_request_uri = "/v20210603/Monitors/{MonitorName}/Queries"
554
+ o.input = Shapes::ShapeRef.new(shape: StartQueryInput)
555
+ o.output = Shapes::ShapeRef.new(shape: StartQueryOutput)
556
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
557
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
558
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
559
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
560
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
561
+ end)
562
+
563
+ api.add_operation(:stop_query, Seahorse::Model::Operation.new.tap do |o|
564
+ o.name = "StopQuery"
565
+ o.http_method = "DELETE"
566
+ o.http_request_uri = "/v20210603/Monitors/{MonitorName}/Queries/{QueryId}"
567
+ o.input = Shapes::ShapeRef.new(shape: StopQueryInput)
568
+ o.output = Shapes::ShapeRef.new(shape: StopQueryOutput)
569
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
570
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
571
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
572
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
573
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
574
+ end)
575
+
446
576
  api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
447
577
  o.name = "TagResource"
448
578
  o.http_method = "POST"
@@ -32,7 +32,7 @@ module Aws::InternetMonitor
32
32
  raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
33
33
  end
34
34
  if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
35
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
+ if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"), true)
36
36
  return Aws::Endpoints::Endpoint.new(url: "https://internetmonitor-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
37
37
  end
38
38
  raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
@@ -68,6 +68,34 @@ module Aws::InternetMonitor
68
68
  end
69
69
  end
70
70
 
71
+ class GetQueryResults
72
+ def self.build(context)
73
+ unless context.config.regional_endpoint
74
+ endpoint = context.config.endpoint.to_s
75
+ end
76
+ Aws::InternetMonitor::EndpointParameters.new(
77
+ region: context.config.region,
78
+ use_dual_stack: context.config.use_dualstack_endpoint,
79
+ use_fips: context.config.use_fips_endpoint,
80
+ endpoint: endpoint,
81
+ )
82
+ end
83
+ end
84
+
85
+ class GetQueryStatus
86
+ def self.build(context)
87
+ unless context.config.regional_endpoint
88
+ endpoint = context.config.endpoint.to_s
89
+ end
90
+ Aws::InternetMonitor::EndpointParameters.new(
91
+ region: context.config.region,
92
+ use_dual_stack: context.config.use_dualstack_endpoint,
93
+ use_fips: context.config.use_fips_endpoint,
94
+ endpoint: endpoint,
95
+ )
96
+ end
97
+ end
98
+
71
99
  class ListHealthEvents
72
100
  def self.build(context)
73
101
  unless context.config.regional_endpoint
@@ -110,6 +138,34 @@ module Aws::InternetMonitor
110
138
  end
111
139
  end
112
140
 
141
+ class StartQuery
142
+ def self.build(context)
143
+ unless context.config.regional_endpoint
144
+ endpoint = context.config.endpoint.to_s
145
+ end
146
+ Aws::InternetMonitor::EndpointParameters.new(
147
+ region: context.config.region,
148
+ use_dual_stack: context.config.use_dualstack_endpoint,
149
+ use_fips: context.config.use_fips_endpoint,
150
+ endpoint: endpoint,
151
+ )
152
+ end
153
+ end
154
+
155
+ class StopQuery
156
+ def self.build(context)
157
+ unless context.config.regional_endpoint
158
+ endpoint = context.config.endpoint.to_s
159
+ end
160
+ Aws::InternetMonitor::EndpointParameters.new(
161
+ region: context.config.region,
162
+ use_dual_stack: context.config.use_dualstack_endpoint,
163
+ use_fips: context.config.use_fips_endpoint,
164
+ endpoint: endpoint,
165
+ )
166
+ end
167
+ end
168
+
113
169
  class TagResource
114
170
  def self.build(context)
115
171
  unless context.config.regional_endpoint
@@ -64,12 +64,20 @@ module Aws::InternetMonitor
64
64
  Aws::InternetMonitor::Endpoints::GetHealthEvent.build(context)
65
65
  when :get_monitor
66
66
  Aws::InternetMonitor::Endpoints::GetMonitor.build(context)
67
+ when :get_query_results
68
+ Aws::InternetMonitor::Endpoints::GetQueryResults.build(context)
69
+ when :get_query_status
70
+ Aws::InternetMonitor::Endpoints::GetQueryStatus.build(context)
67
71
  when :list_health_events
68
72
  Aws::InternetMonitor::Endpoints::ListHealthEvents.build(context)
69
73
  when :list_monitors
70
74
  Aws::InternetMonitor::Endpoints::ListMonitors.build(context)
71
75
  when :list_tags_for_resource
72
76
  Aws::InternetMonitor::Endpoints::ListTagsForResource.build(context)
77
+ when :start_query
78
+ Aws::InternetMonitor::Endpoints::StartQuery.build(context)
79
+ when :stop_query
80
+ Aws::InternetMonitor::Endpoints::StopQuery.build(context)
73
81
  when :tag_resource
74
82
  Aws::InternetMonitor::Endpoints::TagResource.build(context)
75
83
  when :untag_resource
@@ -275,12 +275,64 @@ module Aws::InternetMonitor
275
275
  #
276
276
  class DeleteMonitorOutput < Aws::EmptyStructure; end
277
277
 
278
+ # A filter that you use with the results of a Amazon CloudWatch Internet
279
+ # Monitor query that you created and ran. The query sets up a repository
280
+ # of data that is a subset of your application's Internet Monitor data.
281
+ # `FilterParameter` is a string that defines how you want to filter the
282
+ # repository of data to return a set of results, based on your criteria.
283
+ #
284
+ # The filter parameters that you can specify depend on the query type
285
+ # that you used to create the repository, since each query type returns
286
+ # a different set of Internet Monitor data.
287
+ #
288
+ # For each filter, you specify a field (such as `city`), an operator
289
+ # (such as `not_equals`, and a value or array of values (such as
290
+ # `["Seattle", "Redmond"]`). Separate values in the array with commas.
291
+ #
292
+ # For more information about specifying filter parameters, see [Using
293
+ # the Amazon CloudWatch Internet Monitor query interface][1] in the
294
+ # Amazon CloudWatch Internet Monitor User Guide.
295
+ #
296
+ #
297
+ #
298
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-view-cw-tools-cwim-query.html
299
+ #
300
+ # @!attribute [rw] field
301
+ # A data field that you want to filter, to further scope your
302
+ # application's Internet Monitor data in a repository that you
303
+ # created by running a query. A field might be `city`, for example.
304
+ # The field must be one of the fields that was returned by the
305
+ # specific query that you used to create the repository.
306
+ # @return [String]
307
+ #
308
+ # @!attribute [rw] operator
309
+ # The operator to use with the filter field and a value, such as
310
+ # `not_equals`.
311
+ # @return [String]
312
+ #
313
+ # @!attribute [rw] values
314
+ # One or more values to be used, together with the specified operator,
315
+ # to filter data for a query. For example, you could specify an array
316
+ # of values such as `["Seattle", "Redmond"]`. Values in the array are
317
+ # separated by commas.
318
+ # @return [Array<String>]
319
+ #
320
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/FilterParameter AWS API Documentation
321
+ #
322
+ class FilterParameter < Struct.new(
323
+ :field,
324
+ :operator,
325
+ :values)
326
+ SENSITIVE = []
327
+ include Aws::Structure
328
+ end
329
+
278
330
  # @!attribute [rw] monitor_name
279
331
  # The name of the monitor.
280
332
  # @return [String]
281
333
  #
282
334
  # @!attribute [rw] event_id
283
- # The internally generated identifier of a health event. Because
335
+ # The internally-generated identifier of a health event. Because
284
336
  # `EventID` contains the forward slash (“/”) character, you must
285
337
  # URL-encode the `EventID` field in the request URL.
286
338
  # @return [String]
@@ -299,7 +351,7 @@ module Aws::InternetMonitor
299
351
  # @return [String]
300
352
  #
301
353
  # @!attribute [rw] event_id
302
- # The internally generated identifier of a health event.
354
+ # The internally-generated identifier of a health event.
303
355
  # @return [String]
304
356
  #
305
357
  # @!attribute [rw] started_at
@@ -486,6 +538,94 @@ module Aws::InternetMonitor
486
538
  include Aws::Structure
487
539
  end
488
540
 
541
+ # @!attribute [rw] monitor_name
542
+ # The name of the monitor to return data for.
543
+ # @return [String]
544
+ #
545
+ # @!attribute [rw] query_id
546
+ # The ID of the query that you want to return data results for. A
547
+ # `QueryId` is an internally-generated identifier for a specific
548
+ # query.
549
+ # @return [String]
550
+ #
551
+ # @!attribute [rw] next_token
552
+ # The token for the next set of results. You receive this token from a
553
+ # previous call.
554
+ # @return [String]
555
+ #
556
+ # @!attribute [rw] max_results
557
+ # The number of query results that you want to return with this call.
558
+ # @return [Integer]
559
+ #
560
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/GetQueryResultsInput AWS API Documentation
561
+ #
562
+ class GetQueryResultsInput < Struct.new(
563
+ :monitor_name,
564
+ :query_id,
565
+ :next_token,
566
+ :max_results)
567
+ SENSITIVE = []
568
+ include Aws::Structure
569
+ end
570
+
571
+ # @!attribute [rw] fields
572
+ # The fields that the query returns data for. Fields are name-data
573
+ # type pairs, such as `availability_score`-`float`.
574
+ # @return [Array<Types::QueryField>]
575
+ #
576
+ # @!attribute [rw] data
577
+ # The data results that the query returns. Data is returned in arrays,
578
+ # aligned with the `Fields` for the query, which creates a repository
579
+ # of Amazon CloudWatch Internet Monitor information for your
580
+ # application. Then, you can filter the information in the repository
581
+ # by using `FilterParameters` that you define.
582
+ # @return [Array<Array<String>>]
583
+ #
584
+ # @!attribute [rw] next_token
585
+ # The token for the next set of results. You receive this token from a
586
+ # previous call.
587
+ # @return [String]
588
+ #
589
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/GetQueryResultsOutput AWS API Documentation
590
+ #
591
+ class GetQueryResultsOutput < Struct.new(
592
+ :fields,
593
+ :data,
594
+ :next_token)
595
+ SENSITIVE = []
596
+ include Aws::Structure
597
+ end
598
+
599
+ # @!attribute [rw] monitor_name
600
+ # The name of the monitor.
601
+ # @return [String]
602
+ #
603
+ # @!attribute [rw] query_id
604
+ # The ID of the query that you want to return the status for. A
605
+ # `QueryId` is an internally-generated dentifier for a specific query.
606
+ # @return [String]
607
+ #
608
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/GetQueryStatusInput AWS API Documentation
609
+ #
610
+ class GetQueryStatusInput < Struct.new(
611
+ :monitor_name,
612
+ :query_id)
613
+ SENSITIVE = []
614
+ include Aws::Structure
615
+ end
616
+
617
+ # @!attribute [rw] status
618
+ # The current status for a query.
619
+ # @return [String]
620
+ #
621
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/GetQueryStatusOutput AWS API Documentation
622
+ #
623
+ class GetQueryStatusOutput < Struct.new(
624
+ :status)
625
+ SENSITIVE = []
626
+ include Aws::Structure
627
+ end
628
+
489
629
  # Information about a health event created in a monitor in Amazon
490
630
  # CloudWatch Internet Monitor.
491
631
  #
@@ -494,7 +634,7 @@ module Aws::InternetMonitor
494
634
  # @return [String]
495
635
  #
496
636
  # @!attribute [rw] event_id
497
- # The internally generated identifier of a specific network traffic
637
+ # The internally-generated identifier of a specific network traffic
498
638
  # impairment health event.
499
639
  # @return [String]
500
640
  #
@@ -977,6 +1117,9 @@ module Aws::InternetMonitor
977
1117
  # Monitor creates an event when a threshold is crossed for a local
978
1118
  # health score.
979
1119
  #
1120
+ # If you don't set a local health event threshold, the default value is
1121
+ # 60%.
1122
+ #
980
1123
  # For more information, see [ Change health event thresholds][1] in the
981
1124
  # Internet Monitor section of the *CloudWatch User Guide*.
982
1125
  #
@@ -998,6 +1141,9 @@ module Aws::InternetMonitor
998
1141
  # The minimum percentage of overall traffic for an application that
999
1142
  # must be impacted by an issue before Internet Monitor creates an
1000
1143
  # event when a threshold is crossed for a local health score.
1144
+ #
1145
+ # If you don't set a minimum traffic impact threshold, the default
1146
+ # value is 0.01%.
1001
1147
  # @return [Float]
1002
1148
  #
1003
1149
  # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/LocalHealthEventsConfig AWS API Documentation
@@ -1205,6 +1351,31 @@ module Aws::InternetMonitor
1205
1351
  include Aws::Structure
1206
1352
  end
1207
1353
 
1354
+ # Defines a field to query for your application's Amazon CloudWatch
1355
+ # Internet Monitor data. You create a data repository by running a query
1356
+ # of a specific type. Each `QueryType` includes a specific set of fields
1357
+ # and datatypes to retrieve data for.
1358
+ #
1359
+ # @!attribute [rw] name
1360
+ # The name of a field to query your application's Amazon CloudWatch
1361
+ # Internet Monitor data for, such as `availability_score`.
1362
+ # @return [String]
1363
+ #
1364
+ # @!attribute [rw] type
1365
+ # The data type for a query field, which must correspond to the field
1366
+ # you're defining for `QueryField`. For example, if the query field
1367
+ # name is `availability_score`, the data type is `float`.
1368
+ # @return [String]
1369
+ #
1370
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/QueryField AWS API Documentation
1371
+ #
1372
+ class QueryField < Struct.new(
1373
+ :name,
1374
+ :type)
1375
+ SENSITIVE = []
1376
+ include Aws::Structure
1377
+ end
1378
+
1208
1379
  # The request specifies a resource that doesn't exist.
1209
1380
  #
1210
1381
  # @!attribute [rw] message
@@ -1274,6 +1445,102 @@ module Aws::InternetMonitor
1274
1445
  include Aws::Structure
1275
1446
  end
1276
1447
 
1448
+ # @!attribute [rw] monitor_name
1449
+ # The name of the monitor to query.
1450
+ # @return [String]
1451
+ #
1452
+ # @!attribute [rw] start_time
1453
+ # The timestamp that is the beginning of the period that you want to
1454
+ # retrieve data for with your query.
1455
+ # @return [Time]
1456
+ #
1457
+ # @!attribute [rw] end_time
1458
+ # The timestamp that is the end of the period that you want to
1459
+ # retrieve data for with your query.
1460
+ # @return [Time]
1461
+ #
1462
+ # @!attribute [rw] query_type
1463
+ # The type of query to run. The following are the three types of
1464
+ # queries that you can run using the Internet Monitor query interface:
1465
+ #
1466
+ # * `MEASUREMENTS`: TBD definition
1467
+ #
1468
+ # * `TOP_LOCATIONS`: TBD definition
1469
+ #
1470
+ # * `TOP_LOCATION_DETAILS`: TBD definition
1471
+ #
1472
+ # For lists of the fields returned with each query type and more
1473
+ # information about how each type of query is performed, see [ Using
1474
+ # the Amazon CloudWatch Internet Monitor query interface][1] in the
1475
+ # Amazon CloudWatch Internet Monitor User Guide.
1476
+ #
1477
+ #
1478
+ #
1479
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-view-cw-tools-cwim-query.html
1480
+ # @return [String]
1481
+ #
1482
+ # @!attribute [rw] filter_parameters
1483
+ # The `FilterParameters` field that you use with Amazon CloudWatch
1484
+ # Internet Monitor queries is a string the defines how you want a
1485
+ # query to be filtered. The filter parameters that you can specify
1486
+ # depend on the query type, since each query type returns a different
1487
+ # set of Internet Monitor data.
1488
+ #
1489
+ # For more information about specifying filter parameters, see [Using
1490
+ # the Amazon CloudWatch Internet Monitor query interface][1] in the
1491
+ # Amazon CloudWatch Internet Monitor User Guide.
1492
+ #
1493
+ #
1494
+ #
1495
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-view-cw-tools-cwim-query.html
1496
+ # @return [Array<Types::FilterParameter>]
1497
+ #
1498
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/StartQueryInput AWS API Documentation
1499
+ #
1500
+ class StartQueryInput < Struct.new(
1501
+ :monitor_name,
1502
+ :start_time,
1503
+ :end_time,
1504
+ :query_type,
1505
+ :filter_parameters)
1506
+ SENSITIVE = []
1507
+ include Aws::Structure
1508
+ end
1509
+
1510
+ # @!attribute [rw] query_id
1511
+ # The internally-generated identifier of a specific query.
1512
+ # @return [String]
1513
+ #
1514
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/StartQueryOutput AWS API Documentation
1515
+ #
1516
+ class StartQueryOutput < Struct.new(
1517
+ :query_id)
1518
+ SENSITIVE = []
1519
+ include Aws::Structure
1520
+ end
1521
+
1522
+ # @!attribute [rw] monitor_name
1523
+ # The name of the monitor.
1524
+ # @return [String]
1525
+ #
1526
+ # @!attribute [rw] query_id
1527
+ # The ID of the query that you want to stop. A `QueryId` is an
1528
+ # internally-generated identifier for a specific query.
1529
+ # @return [String]
1530
+ #
1531
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/StopQueryInput AWS API Documentation
1532
+ #
1533
+ class StopQueryInput < Struct.new(
1534
+ :monitor_name,
1535
+ :query_id)
1536
+ SENSITIVE = []
1537
+ include Aws::Structure
1538
+ end
1539
+
1540
+ # @see http://docs.aws.amazon.com/goto/WebAPI/internetmonitor-2021-06-03/StopQueryOutput AWS API Documentation
1541
+ #
1542
+ class StopQueryOutput < Aws::EmptyStructure; end
1543
+
1277
1544
  # @!attribute [rw] resource_arn
1278
1545
  # The Amazon Resource Name (ARN) for a tag that you add to a resource.
1279
1546
  # Tags are supported only for monitors in Amazon CloudWatch Internet
@@ -53,6 +53,6 @@ require_relative 'aws-sdk-internetmonitor/customizations'
53
53
  # @!group service
54
54
  module Aws::InternetMonitor
55
55
 
56
- GEM_VERSION = '1.10.0'
56
+ GEM_VERSION = '1.11.0'
57
57
 
58
58
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-internetmonitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.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: 2023-09-27 00:00:00.000000000 Z
11
+ date: 2023-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core