aws-sdk-groundstation 1.30.0 → 1.32.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.
@@ -10,6 +10,59 @@
10
10
  module Aws::GroundStation
11
11
  module Types
12
12
 
13
+ # Detailed information about the agent.
14
+ #
15
+ # @!attribute [rw] agent_version
16
+ # Current agent version.
17
+ # @return [String]
18
+ #
19
+ # @!attribute [rw] component_versions
20
+ # List of versions being used by agent components.
21
+ # @return [Array<Types::ComponentVersion>]
22
+ #
23
+ # @!attribute [rw] instance_id
24
+ # ID of EC2 instance agent is running on.
25
+ # @return [String]
26
+ #
27
+ # @!attribute [rw] instance_type
28
+ # Type of EC2 instance agent is running on.
29
+ # @return [String]
30
+ #
31
+ # @!attribute [rw] reserved_cpu_cores
32
+ # Number of Cpu cores reserved for agent.
33
+ # @return [Array<Integer>]
34
+ #
35
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/AgentDetails AWS API Documentation
36
+ #
37
+ class AgentDetails < Struct.new(
38
+ :agent_version,
39
+ :component_versions,
40
+ :instance_id,
41
+ :instance_type,
42
+ :reserved_cpu_cores)
43
+ SENSITIVE = []
44
+ include Aws::Structure
45
+ end
46
+
47
+ # Aggregate status of Agent components.
48
+ #
49
+ # @!attribute [rw] signature_map
50
+ # Sparse map of failure signatures.
51
+ # @return [Hash<String,Boolean>]
52
+ #
53
+ # @!attribute [rw] status
54
+ # Aggregate status.
55
+ # @return [String]
56
+ #
57
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/AggregateStatus AWS API Documentation
58
+ #
59
+ class AggregateStatus < Struct.new(
60
+ :signature_map,
61
+ :status)
62
+ SENSITIVE = []
63
+ include Aws::Structure
64
+ end
65
+
13
66
  # Details about an antenna demod decode `Config` used in a contact.
14
67
  #
15
68
  # @!attribute [rw] output_node
@@ -88,6 +141,41 @@ module Aws::GroundStation
88
141
  include Aws::Structure
89
142
  end
90
143
 
144
+ # Information about AwsGroundStationAgentEndpoint.
145
+ #
146
+ # @!attribute [rw] agent_status
147
+ # The status of AgentEndpoint.
148
+ # @return [String]
149
+ #
150
+ # @!attribute [rw] audit_results
151
+ # The results of the audit.
152
+ # @return [String]
153
+ #
154
+ # @!attribute [rw] egress_address
155
+ # The egress address of AgentEndpoint.
156
+ # @return [Types::ConnectionDetails]
157
+ #
158
+ # @!attribute [rw] ingress_address
159
+ # The ingress address of AgentEndpoint.
160
+ # @return [Types::RangedConnectionDetails]
161
+ #
162
+ # @!attribute [rw] name
163
+ # Name string associated with AgentEndpoint. Used as a human-readable
164
+ # identifier for AgentEndpoint.
165
+ # @return [String]
166
+ #
167
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/AwsGroundStationAgentEndpoint AWS API Documentation
168
+ #
169
+ class AwsGroundStationAgentEndpoint < Struct.new(
170
+ :agent_status,
171
+ :audit_results,
172
+ :egress_address,
173
+ :ingress_address,
174
+ :name)
175
+ SENSITIVE = []
176
+ include Aws::Structure
177
+ end
178
+
91
179
  # @!attribute [rw] contact_id
92
180
  # UUID of a contact.
93
181
  # @return [String]
@@ -100,6 +188,69 @@ module Aws::GroundStation
100
188
  include Aws::Structure
101
189
  end
102
190
 
191
+ # Data on the status of agent components.
192
+ #
193
+ # @!attribute [rw] bytes_received
194
+ # Bytes received by the component.
195
+ # @return [Integer]
196
+ #
197
+ # @!attribute [rw] bytes_sent
198
+ # Bytes sent by the component.
199
+ # @return [Integer]
200
+ #
201
+ # @!attribute [rw] capability_arn
202
+ # Capability ARN of the component.
203
+ # @return [String]
204
+ #
205
+ # @!attribute [rw] component_type
206
+ # The Component type.
207
+ # @return [String]
208
+ #
209
+ # @!attribute [rw] dataflow_id
210
+ # Dataflow UUID associated with the component.
211
+ # @return [String]
212
+ #
213
+ # @!attribute [rw] packets_dropped
214
+ # Packets dropped by component.
215
+ # @return [Integer]
216
+ #
217
+ # @!attribute [rw] status
218
+ # Component status.
219
+ # @return [String]
220
+ #
221
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/ComponentStatusData AWS API Documentation
222
+ #
223
+ class ComponentStatusData < Struct.new(
224
+ :bytes_received,
225
+ :bytes_sent,
226
+ :capability_arn,
227
+ :component_type,
228
+ :dataflow_id,
229
+ :packets_dropped,
230
+ :status)
231
+ SENSITIVE = []
232
+ include Aws::Structure
233
+ end
234
+
235
+ # Version information for agent components.
236
+ #
237
+ # @!attribute [rw] component_type
238
+ # Component type.
239
+ # @return [String]
240
+ #
241
+ # @!attribute [rw] versions
242
+ # List of versions.
243
+ # @return [Array<String>]
244
+ #
245
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/ComponentVersion AWS API Documentation
246
+ #
247
+ class ComponentVersion < Struct.new(
248
+ :component_type,
249
+ :versions)
250
+ SENSITIVE = []
251
+ include Aws::Structure
252
+ end
253
+
103
254
  # Details for certain `Config` object types in a contact.
104
255
  #
105
256
  # @note ConfigDetails is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of ConfigDetails corresponding to the set member.
@@ -253,6 +404,26 @@ module Aws::GroundStation
253
404
  class Unknown < ConfigTypeData; end
254
405
  end
255
406
 
407
+ # Egress address of AgentEndpoint with an optional mtu.
408
+ #
409
+ # @!attribute [rw] mtu
410
+ # Maximum transmission unit (MTU) size in bytes of a dataflow
411
+ # endpoint.
412
+ # @return [Integer]
413
+ #
414
+ # @!attribute [rw] socket_address
415
+ # A socket address.
416
+ # @return [Types::SocketAddress]
417
+ #
418
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/ConnectionDetails AWS API Documentation
419
+ #
420
+ class ConnectionDetails < Struct.new(
421
+ :mtu,
422
+ :socket_address)
423
+ SENSITIVE = []
424
+ include Aws::Structure
425
+ end
426
+
256
427
  # Data describing a contact.
257
428
  #
258
429
  # @!attribute [rw] contact_id
@@ -363,6 +534,18 @@ module Aws::GroundStation
363
534
  include Aws::Structure
364
535
  end
365
536
 
537
+ # @!attribute [rw] contact_post_pass_duration_seconds
538
+ # Amount of time, in seconds, after a contact ends for the contact to
539
+ # remain in a `POSTPASS` state. A CloudWatch event is emitted when the
540
+ # contact enters and exits the `POSTPASS` state.
541
+ # @return [Integer]
542
+ #
543
+ # @!attribute [rw] contact_pre_pass_duration_seconds
544
+ # Amount of time, in seconds, prior to contact start for the contact
545
+ # to remain in a `PREPASS` state. A CloudWatch event is emitted when
546
+ # the contact enters and exits the `PREPASS` state.
547
+ # @return [Integer]
548
+ #
366
549
  # @!attribute [rw] endpoint_details
367
550
  # Endpoint details of each endpoint in the dataflow endpoint group.
368
551
  # @return [Array<Types::EndpointDetails>]
@@ -374,6 +557,8 @@ module Aws::GroundStation
374
557
  # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/CreateDataflowEndpointGroupRequest AWS API Documentation
375
558
  #
376
559
  class CreateDataflowEndpointGroupRequest < Struct.new(
560
+ :contact_post_pass_duration_seconds,
561
+ :contact_pre_pass_duration_seconds,
377
562
  :endpoint_details,
378
563
  :tags)
379
564
  SENSITIVE = []
@@ -464,6 +649,14 @@ module Aws::GroundStation
464
649
  # Name of a mission profile.
465
650
  # @return [String]
466
651
  #
652
+ # @!attribute [rw] streams_kms_key
653
+ # KMS key to use for encrypting streams.
654
+ # @return [Types::KmsKey]
655
+ #
656
+ # @!attribute [rw] streams_kms_role
657
+ # Role to use for encrypting streams with KMS key.
658
+ # @return [String]
659
+ #
467
660
  # @!attribute [rw] tags
468
661
  # Tags assigned to a mission profile.
469
662
  # @return [Hash<String,String>]
@@ -480,6 +673,8 @@ module Aws::GroundStation
480
673
  :dataflow_edges,
481
674
  :minimum_viable_contact_duration_seconds,
482
675
  :name,
676
+ :streams_kms_key,
677
+ :streams_kms_role,
483
678
  :tags,
484
679
  :tracking_config_arn)
485
680
  SENSITIVE = []
@@ -887,6 +1082,30 @@ module Aws::GroundStation
887
1082
  include Aws::Structure
888
1083
  end
889
1084
 
1085
+ # Data for agent discovery.
1086
+ #
1087
+ # @!attribute [rw] capability_arns
1088
+ # List of capabilities to associate with agent.
1089
+ # @return [Array<String>]
1090
+ #
1091
+ # @!attribute [rw] private_ip_addresses
1092
+ # List of private IP addresses to associate with agent.
1093
+ # @return [Array<String>]
1094
+ #
1095
+ # @!attribute [rw] public_ip_addresses
1096
+ # List of public IP addresses to associate with agent.
1097
+ # @return [Array<String>]
1098
+ #
1099
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/DiscoveryData AWS API Documentation
1100
+ #
1101
+ class DiscoveryData < Struct.new(
1102
+ :capability_arns,
1103
+ :private_ip_addresses,
1104
+ :public_ip_addresses)
1105
+ SENSITIVE = []
1106
+ include Aws::Structure
1107
+ end
1108
+
890
1109
  # Object that represents EIRP.
891
1110
  #
892
1111
  # @!attribute [rw] units
@@ -927,6 +1146,10 @@ module Aws::GroundStation
927
1146
 
928
1147
  # Information about the endpoint details.
929
1148
  #
1149
+ # @!attribute [rw] aws_ground_station_agent_endpoint
1150
+ # An agent endpoint.
1151
+ # @return [Types::AwsGroundStationAgentEndpoint]
1152
+ #
930
1153
  # @!attribute [rw] endpoint
931
1154
  # A dataflow endpoint.
932
1155
  # @return [Types::DataflowEndpoint]
@@ -939,6 +1162,7 @@ module Aws::GroundStation
939
1162
  # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/EndpointDetails AWS API Documentation
940
1163
  #
941
1164
  class EndpointDetails < Struct.new(
1165
+ :aws_ground_station_agent_endpoint,
942
1166
  :endpoint,
943
1167
  :security_details)
944
1168
  SENSITIVE = []
@@ -1166,6 +1390,35 @@ module Aws::GroundStation
1166
1390
  include Aws::Structure
1167
1391
  end
1168
1392
 
1393
+ # @!attribute [rw] agent_id
1394
+ # UUID of agent to get configuration information for.
1395
+ # @return [String]
1396
+ #
1397
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/GetAgentConfigurationRequest AWS API Documentation
1398
+ #
1399
+ class GetAgentConfigurationRequest < Struct.new(
1400
+ :agent_id)
1401
+ SENSITIVE = []
1402
+ include Aws::Structure
1403
+ end
1404
+
1405
+ # @!attribute [rw] agent_id
1406
+ # UUID of agent.
1407
+ # @return [String]
1408
+ #
1409
+ # @!attribute [rw] tasking_document
1410
+ # Tasking document for agent.
1411
+ # @return [String]
1412
+ #
1413
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/GetAgentConfigurationResponse AWS API Documentation
1414
+ #
1415
+ class GetAgentConfigurationResponse < Struct.new(
1416
+ :agent_id,
1417
+ :tasking_document)
1418
+ SENSITIVE = []
1419
+ include Aws::Structure
1420
+ end
1421
+
1169
1422
  # @!attribute [rw] config_id
1170
1423
  # UUID of a `Config`.
1171
1424
  # @return [String]
@@ -1232,6 +1485,18 @@ module Aws::GroundStation
1232
1485
  include Aws::Structure
1233
1486
  end
1234
1487
 
1488
+ # @!attribute [rw] contact_post_pass_duration_seconds
1489
+ # Amount of time, in seconds, after a contact ends for the contact to
1490
+ # remain in a `POSTPASS` state. A CloudWatch event is emitted when the
1491
+ # contact enters and exits the `POSTPASS` state.
1492
+ # @return [Integer]
1493
+ #
1494
+ # @!attribute [rw] contact_pre_pass_duration_seconds
1495
+ # Amount of time, in seconds, prior to contact start for the contact
1496
+ # to remain in a `PREPASS` state. A CloudWatch event is emitted when
1497
+ # the contact enters and exits the `PREPASS` state.
1498
+ # @return [Integer]
1499
+ #
1235
1500
  # @!attribute [rw] dataflow_endpoint_group_arn
1236
1501
  # ARN of a dataflow endpoint group.
1237
1502
  # @return [String]
@@ -1251,6 +1516,8 @@ module Aws::GroundStation
1251
1516
  # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/GetDataflowEndpointGroupResponse AWS API Documentation
1252
1517
  #
1253
1518
  class GetDataflowEndpointGroupResponse < Struct.new(
1519
+ :contact_post_pass_duration_seconds,
1520
+ :contact_pre_pass_duration_seconds,
1254
1521
  :dataflow_endpoint_group_arn,
1255
1522
  :dataflow_endpoint_group_id,
1256
1523
  :endpoints_details,
@@ -1362,6 +1629,14 @@ module Aws::GroundStation
1362
1629
  # Region of a mission profile.
1363
1630
  # @return [String]
1364
1631
  #
1632
+ # @!attribute [rw] streams_kms_key
1633
+ # KMS key to use for encrypting streams.
1634
+ # @return [Types::KmsKey]
1635
+ #
1636
+ # @!attribute [rw] streams_kms_role
1637
+ # Role to use for encrypting streams with KMS key.
1638
+ # @return [String]
1639
+ #
1365
1640
  # @!attribute [rw] tags
1366
1641
  # Tags assigned to a mission profile.
1367
1642
  # @return [Hash<String,String>]
@@ -1381,6 +1656,8 @@ module Aws::GroundStation
1381
1656
  :mission_profile_id,
1382
1657
  :name,
1383
1658
  :region,
1659
+ :streams_kms_key,
1660
+ :streams_kms_role,
1384
1661
  :tags,
1385
1662
  :tracking_config_arn)
1386
1663
  SENSITIVE = []
@@ -1456,6 +1733,25 @@ module Aws::GroundStation
1456
1733
  include Aws::Structure
1457
1734
  end
1458
1735
 
1736
+ # An integer range that has a minimum and maximum value.
1737
+ #
1738
+ # @!attribute [rw] maximum
1739
+ # A maximum value.
1740
+ # @return [Integer]
1741
+ #
1742
+ # @!attribute [rw] minimum
1743
+ # A minimum value.
1744
+ # @return [Integer]
1745
+ #
1746
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/IntegerRange AWS API Documentation
1747
+ #
1748
+ class IntegerRange < Struct.new(
1749
+ :maximum,
1750
+ :minimum)
1751
+ SENSITIVE = []
1752
+ include Aws::Structure
1753
+ end
1754
+
1459
1755
  # One or more parameters are not valid.
1460
1756
  #
1461
1757
  # @!attribute [rw] message
@@ -1473,6 +1769,35 @@ module Aws::GroundStation
1473
1769
  include Aws::Structure
1474
1770
  end
1475
1771
 
1772
+ # AWS Key Management Service (KMS) Key.
1773
+ #
1774
+ # @note KmsKey is a union - when making an API calls you must set exactly one of the members.
1775
+ #
1776
+ # @note KmsKey is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of KmsKey corresponding to the set member.
1777
+ #
1778
+ # @!attribute [rw] kms_alias_arn
1779
+ # KMS Alias Arn.
1780
+ # @return [String]
1781
+ #
1782
+ # @!attribute [rw] kms_key_arn
1783
+ # KMS Key Arn.
1784
+ # @return [String]
1785
+ #
1786
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/KmsKey AWS API Documentation
1787
+ #
1788
+ class KmsKey < Struct.new(
1789
+ :kms_alias_arn,
1790
+ :kms_key_arn,
1791
+ :unknown)
1792
+ SENSITIVE = []
1793
+ include Aws::Structure
1794
+ include Aws::Structure::Union
1795
+
1796
+ class KmsAliasArn < KmsKey; end
1797
+ class KmsKeyArn < KmsKey; end
1798
+ class Unknown < KmsKey; end
1799
+ end
1800
+
1476
1801
  # @!attribute [rw] max_results
1477
1802
  # Maximum number of `Configs` returned.
1478
1803
  # @return [Integer]
@@ -1869,6 +2194,75 @@ module Aws::GroundStation
1869
2194
  include Aws::Structure
1870
2195
  end
1871
2196
 
2197
+ # Ingress address of AgentEndpoint with a port range and an optional
2198
+ # mtu.
2199
+ #
2200
+ # @!attribute [rw] mtu
2201
+ # Maximum transmission unit (MTU) size in bytes of a dataflow
2202
+ # endpoint.
2203
+ # @return [Integer]
2204
+ #
2205
+ # @!attribute [rw] socket_address
2206
+ # A ranged socket address.
2207
+ # @return [Types::RangedSocketAddress]
2208
+ #
2209
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/RangedConnectionDetails AWS API Documentation
2210
+ #
2211
+ class RangedConnectionDetails < Struct.new(
2212
+ :mtu,
2213
+ :socket_address)
2214
+ SENSITIVE = []
2215
+ include Aws::Structure
2216
+ end
2217
+
2218
+ # A socket address with a port range.
2219
+ #
2220
+ # @!attribute [rw] name
2221
+ # IPv4 socket address.
2222
+ # @return [String]
2223
+ #
2224
+ # @!attribute [rw] port_range
2225
+ # Port range of a socket address.
2226
+ # @return [Types::IntegerRange]
2227
+ #
2228
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/RangedSocketAddress AWS API Documentation
2229
+ #
2230
+ class RangedSocketAddress < Struct.new(
2231
+ :name,
2232
+ :port_range)
2233
+ SENSITIVE = []
2234
+ include Aws::Structure
2235
+ end
2236
+
2237
+ # @!attribute [rw] agent_details
2238
+ # Detailed information about the agent being registered.
2239
+ # @return [Types::AgentDetails]
2240
+ #
2241
+ # @!attribute [rw] discovery_data
2242
+ # Data for associating and agent with the capabilities it is managing.
2243
+ # @return [Types::DiscoveryData]
2244
+ #
2245
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/RegisterAgentRequest AWS API Documentation
2246
+ #
2247
+ class RegisterAgentRequest < Struct.new(
2248
+ :agent_details,
2249
+ :discovery_data)
2250
+ SENSITIVE = []
2251
+ include Aws::Structure
2252
+ end
2253
+
2254
+ # @!attribute [rw] agent_id
2255
+ # UUID of registered agent.
2256
+ # @return [String]
2257
+ #
2258
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/RegisterAgentResponse AWS API Documentation
2259
+ #
2260
+ class RegisterAgentResponse < Struct.new(
2261
+ :agent_id)
2262
+ SENSITIVE = []
2263
+ include Aws::Structure
2264
+ end
2265
+
1872
2266
  # @!attribute [rw] end_time
1873
2267
  # End time of a contact in UTC.
1874
2268
  # @return [Time]
@@ -2269,6 +2663,45 @@ module Aws::GroundStation
2269
2663
  #
2270
2664
  class UntagResourceResponse < Aws::EmptyStructure; end
2271
2665
 
2666
+ # @!attribute [rw] agent_id
2667
+ # UUID of agent to update.
2668
+ # @return [String]
2669
+ #
2670
+ # @!attribute [rw] aggregate_status
2671
+ # Aggregate status for agent.
2672
+ # @return [Types::AggregateStatus]
2673
+ #
2674
+ # @!attribute [rw] component_statuses
2675
+ # List of component statuses for agent.
2676
+ # @return [Array<Types::ComponentStatusData>]
2677
+ #
2678
+ # @!attribute [rw] task_id
2679
+ # GUID of agent task.
2680
+ # @return [String]
2681
+ #
2682
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/UpdateAgentStatusRequest AWS API Documentation
2683
+ #
2684
+ class UpdateAgentStatusRequest < Struct.new(
2685
+ :agent_id,
2686
+ :aggregate_status,
2687
+ :component_statuses,
2688
+ :task_id)
2689
+ SENSITIVE = []
2690
+ include Aws::Structure
2691
+ end
2692
+
2693
+ # @!attribute [rw] agent_id
2694
+ # UUID of updated agent.
2695
+ # @return [String]
2696
+ #
2697
+ # @see http://docs.aws.amazon.com/goto/WebAPI/groundstation-2019-05-23/UpdateAgentStatusResponse AWS API Documentation
2698
+ #
2699
+ class UpdateAgentStatusResponse < Struct.new(
2700
+ :agent_id)
2701
+ SENSITIVE = []
2702
+ include Aws::Structure
2703
+ end
2704
+
2272
2705
  # @!attribute [rw] config_data
2273
2706
  # Parameters of a `Config`.
2274
2707
  # @return [Types::ConfigTypeData]
@@ -2360,6 +2793,14 @@ module Aws::GroundStation
2360
2793
  # Name of a mission profile.
2361
2794
  # @return [String]
2362
2795
  #
2796
+ # @!attribute [rw] streams_kms_key
2797
+ # KMS key to use for encrypting streams.
2798
+ # @return [Types::KmsKey]
2799
+ #
2800
+ # @!attribute [rw] streams_kms_role
2801
+ # Role to use for encrypting streams with KMS key.
2802
+ # @return [String]
2803
+ #
2363
2804
  # @!attribute [rw] tracking_config_arn
2364
2805
  # ARN of a tracking `Config`.
2365
2806
  # @return [String]
@@ -2373,6 +2814,8 @@ module Aws::GroundStation
2373
2814
  :minimum_viable_contact_duration_seconds,
2374
2815
  :mission_profile_id,
2375
2816
  :name,
2817
+ :streams_kms_key,
2818
+ :streams_kms_role,
2376
2819
  :tracking_config_arn)
2377
2820
  SENSITIVE = []
2378
2821
  include Aws::Structure
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ require 'aws-sdk-core/waiters'
11
+
12
+ module Aws::GroundStation
13
+ # Waiters are utility methods that poll for a particular state to occur
14
+ # on a client. Waiters can fail after a number of attempts at a polling
15
+ # interval defined for the service client.
16
+ #
17
+ # For a list of operations that can be waited for and the
18
+ # client methods called for each operation, see the table below or the
19
+ # {Client#wait_until} field documentation for the {Client}.
20
+ #
21
+ # # Invoking a Waiter
22
+ # To invoke a waiter, call #wait_until on a {Client}. The first parameter
23
+ # is the waiter name, which is specific to the service client and indicates
24
+ # which operation is being waited for. The second parameter is a hash of
25
+ # parameters that are passed to the client method called by the waiter,
26
+ # which varies according to the waiter name.
27
+ #
28
+ # # Wait Failures
29
+ # To catch errors in a waiter, use WaiterFailed,
30
+ # as shown in the following example.
31
+ #
32
+ # rescue rescue Aws::Waiters::Errors::WaiterFailed => error
33
+ # puts "failed waiting for instance running: #{error.message}
34
+ # end
35
+ #
36
+ # # Configuring a Waiter
37
+ # Each waiter has a default polling interval and a maximum number of
38
+ # attempts it will make before returning control to your program.
39
+ # To set these values, use the `max_attempts` and `delay` parameters
40
+ # in your `#wait_until` call.
41
+ # The following example waits for up to 25 seconds, polling every five seconds.
42
+ #
43
+ # client.wait_until(...) do |w|
44
+ # w.max_attempts = 5
45
+ # w.delay = 5
46
+ # end
47
+ #
48
+ # To disable wait failures, set the value of either of these parameters
49
+ # to `nil`.
50
+ #
51
+ # # Extending a Waiter
52
+ # To modify the behavior of waiters, you can register callbacks that are
53
+ # triggered before each polling attempt and before waiting.
54
+ #
55
+ # The following example implements an exponential backoff in a waiter
56
+ # by doubling the amount of time to wait on every attempt.
57
+ #
58
+ # client.wait_until(...) do |w|
59
+ # w.interval = 0 # disable normal sleep
60
+ # w.before_wait do |n, resp|
61
+ # sleep(n ** 2)
62
+ # end
63
+ # end
64
+ #
65
+ # # Available Waiters
66
+ #
67
+ # The following table lists the valid waiter names, the operations they call,
68
+ # and the default `:delay` and `:max_attempts` values.
69
+ #
70
+ # | waiter_name | params | :delay | :max_attempts |
71
+ # | ----------------- | ------------------------- | -------- | ------------- |
72
+ # | contact_scheduled | {Client#describe_contact} | 5 | 180 |
73
+ #
74
+ module Waiters
75
+
76
+ # Waits until a contact has been scheduled
77
+ class ContactScheduled
78
+
79
+ # @param [Hash] options
80
+ # @option options [required, Client] :client
81
+ # @option options [Integer] :max_attempts (180)
82
+ # @option options [Integer] :delay (5)
83
+ # @option options [Proc] :before_attempt
84
+ # @option options [Proc] :before_wait
85
+ def initialize(options)
86
+ @client = options.fetch(:client)
87
+ @waiter = Aws::Waiters::Waiter.new({
88
+ max_attempts: 180,
89
+ delay: 5,
90
+ poller: Aws::Waiters::Poller.new(
91
+ operation_name: :describe_contact,
92
+ acceptors: [
93
+ {
94
+ "matcher" => "path",
95
+ "argument" => "contact_status",
96
+ "state" => "failure",
97
+ "expected" => "FAILED_TO_SCHEDULE"
98
+ },
99
+ {
100
+ "matcher" => "path",
101
+ "argument" => "contact_status",
102
+ "state" => "success",
103
+ "expected" => "SCHEDULED"
104
+ }
105
+ ]
106
+ )
107
+ }.merge(options))
108
+ end
109
+
110
+ # @option (see Client#describe_contact)
111
+ # @return (see Client#describe_contact)
112
+ def wait(params = {})
113
+ @waiter.wait(client: @client, params: params)
114
+ end
115
+
116
+ # @api private
117
+ attr_reader :waiter
118
+
119
+ end
120
+ end
121
+ end