aws-sdk-drs 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2061 @@
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 'seahorse/client/plugins/content_length.rb'
11
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
+ require 'aws-sdk-core/plugins/logging.rb'
13
+ require 'aws-sdk-core/plugins/param_converter.rb'
14
+ require 'aws-sdk-core/plugins/param_validator.rb'
15
+ require 'aws-sdk-core/plugins/user_agent.rb'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
+ require 'aws-sdk-core/plugins/retry_errors.rb'
18
+ require 'aws-sdk-core/plugins/global_configuration.rb'
19
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
+ require 'aws-sdk-core/plugins/response_paging.rb'
23
+ require 'aws-sdk-core/plugins/stub_responses.rb'
24
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/signature_v4.rb'
31
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
32
+
33
+ Aws::Plugins::GlobalConfiguration.add_identifier(:drs)
34
+
35
+ module Aws::Drs
36
+ # An API client for Drs. To construct a client, you need to configure a `:region` and `:credentials`.
37
+ #
38
+ # client = Aws::Drs::Client.new(
39
+ # region: region_name,
40
+ # credentials: credentials,
41
+ # # ...
42
+ # )
43
+ #
44
+ # For details on configuring region and credentials see
45
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
46
+ #
47
+ # See {#initialize} for a full list of supported configuration options.
48
+ class Client < Seahorse::Client::Base
49
+
50
+ include Aws::ClientStubs
51
+
52
+ @identifier = :drs
53
+
54
+ set_api(ClientApi::API)
55
+
56
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
57
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
58
+ add_plugin(Aws::Plugins::Logging)
59
+ add_plugin(Aws::Plugins::ParamConverter)
60
+ add_plugin(Aws::Plugins::ParamValidator)
61
+ add_plugin(Aws::Plugins::UserAgent)
62
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
63
+ add_plugin(Aws::Plugins::RetryErrors)
64
+ add_plugin(Aws::Plugins::GlobalConfiguration)
65
+ add_plugin(Aws::Plugins::RegionalEndpoint)
66
+ add_plugin(Aws::Plugins::EndpointDiscovery)
67
+ add_plugin(Aws::Plugins::EndpointPattern)
68
+ add_plugin(Aws::Plugins::ResponsePaging)
69
+ add_plugin(Aws::Plugins::StubResponses)
70
+ add_plugin(Aws::Plugins::IdempotencyToken)
71
+ add_plugin(Aws::Plugins::JsonvalueConverter)
72
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
73
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
+ add_plugin(Aws::Plugins::TransferEncoding)
75
+ add_plugin(Aws::Plugins::HttpChecksum)
76
+ add_plugin(Aws::Plugins::SignatureV4)
77
+ add_plugin(Aws::Plugins::Protocols::RestJson)
78
+
79
+ # @overload initialize(options)
80
+ # @param [Hash] options
81
+ # @option options [required, Aws::CredentialProvider] :credentials
82
+ # Your AWS credentials. This can be an instance of any one of the
83
+ # following classes:
84
+ #
85
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
+ # credentials.
87
+ #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
102
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
103
+ # from an EC2 IMDS on an EC2 instance.
104
+ #
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
107
+ #
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
110
+ #
111
+ # When `:credentials` are not configured directly, the following
112
+ # locations will be searched for credentials:
113
+ #
114
+ # * `Aws.config[:credentials]`
115
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
116
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
117
+ # * `~/.aws/credentials`
118
+ # * `~/.aws/config`
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
123
+ #
124
+ # @option options [required, String] :region
125
+ # The AWS region to connect to. The configured `:region` is
126
+ # used to determine the service `:endpoint`. When not passed,
127
+ # a default `:region` is searched for in the following locations:
128
+ #
129
+ # * `Aws.config[:region]`
130
+ # * `ENV['AWS_REGION']`
131
+ # * `ENV['AMAZON_REGION']`
132
+ # * `ENV['AWS_DEFAULT_REGION']`
133
+ # * `~/.aws/credentials`
134
+ # * `~/.aws/config`
135
+ #
136
+ # @option options [String] :access_key_id
137
+ #
138
+ # @option options [Boolean] :active_endpoint_cache (false)
139
+ # When set to `true`, a thread polling for endpoints will be running in
140
+ # the background every 60 secs (default). Defaults to `false`.
141
+ #
142
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
143
+ # Used only in `adaptive` retry mode. When true, the request will sleep
144
+ # until there is sufficent client side capacity to retry the request.
145
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
146
+ # not retry instead of sleeping.
147
+ #
148
+ # @option options [Boolean] :client_side_monitoring (false)
149
+ # When `true`, client-side metrics will be collected for all API requests from
150
+ # this client.
151
+ #
152
+ # @option options [String] :client_side_monitoring_client_id ("")
153
+ # Allows you to provide an identifier for this client which will be attached to
154
+ # all generated client side metrics. Defaults to an empty string.
155
+ #
156
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
157
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
158
+ # side monitoring agent is running on, where client metrics will be published via UDP.
159
+ #
160
+ # @option options [Integer] :client_side_monitoring_port (31000)
161
+ # Required for publishing client metrics. The port that the client side monitoring
162
+ # agent is running on, where client metrics will be published via UDP.
163
+ #
164
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
165
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
166
+ # will use the Client Side Monitoring Agent Publisher.
167
+ #
168
+ # @option options [Boolean] :convert_params (true)
169
+ # When `true`, an attempt is made to coerce request parameters into
170
+ # the required types.
171
+ #
172
+ # @option options [Boolean] :correct_clock_skew (true)
173
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
174
+ # a clock skew correction and retry requests with skewed client clocks.
175
+ #
176
+ # @option options [Boolean] :disable_host_prefix_injection (false)
177
+ # Set to true to disable SDK automatically adding host prefix
178
+ # to default service endpoint when available.
179
+ #
180
+ # @option options [String] :endpoint
181
+ # The client endpoint is normally constructed from the `:region`
182
+ # option. You should only configure an `:endpoint` when connecting
183
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
184
+ #
185
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
186
+ # Used for the maximum size limit of the LRU cache storing endpoints data
187
+ # for endpoint discovery enabled operations. Defaults to 1000.
188
+ #
189
+ # @option options [Integer] :endpoint_cache_max_threads (10)
190
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
191
+ #
192
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
193
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
194
+ # Use this option to config the time interval in seconds for making
195
+ # requests fetching endpoints information. Defaults to 60 sec.
196
+ #
197
+ # @option options [Boolean] :endpoint_discovery (false)
198
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
199
+ #
200
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
201
+ # The log formatter.
202
+ #
203
+ # @option options [Symbol] :log_level (:info)
204
+ # The log level to send messages to the `:logger` at.
205
+ #
206
+ # @option options [Logger] :logger
207
+ # The Logger instance to send log messages to. If this option
208
+ # is not set, logging will be disabled.
209
+ #
210
+ # @option options [Integer] :max_attempts (3)
211
+ # An integer representing the maximum number attempts that will be made for
212
+ # a single request, including the initial attempt. For example,
213
+ # setting this value to 5 will result in a request being retried up to
214
+ # 4 times. Used in `standard` and `adaptive` retry modes.
215
+ #
216
+ # @option options [String] :profile ("default")
217
+ # Used when loading credentials from the shared credentials file
218
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
219
+ #
220
+ # @option options [Proc] :retry_backoff
221
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
222
+ # This option is only used in the `legacy` retry mode.
223
+ #
224
+ # @option options [Float] :retry_base_delay (0.3)
225
+ # The base delay in seconds used by the default backoff function. This option
226
+ # is only used in the `legacy` retry mode.
227
+ #
228
+ # @option options [Symbol] :retry_jitter (:none)
229
+ # A delay randomiser function used by the default backoff function.
230
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
231
+ # otherwise a Proc that takes and returns a number. This option is only used
232
+ # in the `legacy` retry mode.
233
+ #
234
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
235
+ #
236
+ # @option options [Integer] :retry_limit (3)
237
+ # The maximum number of times to retry failed requests. Only
238
+ # ~ 500 level server errors and certain ~ 400 level client errors
239
+ # are retried. Generally, these are throttling errors, data
240
+ # checksum errors, networking errors, timeout errors, auth errors,
241
+ # endpoint discovery, and errors from expired credentials.
242
+ # This option is only used in the `legacy` retry mode.
243
+ #
244
+ # @option options [Integer] :retry_max_delay (0)
245
+ # The maximum number of seconds to delay between retries (0 for no limit)
246
+ # used by the default backoff function. This option is only used in the
247
+ # `legacy` retry mode.
248
+ #
249
+ # @option options [String] :retry_mode ("legacy")
250
+ # Specifies which retry algorithm to use. Values are:
251
+ #
252
+ # * `legacy` - The pre-existing retry behavior. This is default value if
253
+ # no retry mode is provided.
254
+ #
255
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
256
+ # This includes support for retry quotas, which limit the number of
257
+ # unsuccessful retries a client can make.
258
+ #
259
+ # * `adaptive` - An experimental retry mode that includes all the
260
+ # functionality of `standard` mode along with automatic client side
261
+ # throttling. This is a provisional mode that may change behavior
262
+ # in the future.
263
+ #
264
+ #
265
+ # @option options [String] :secret_access_key
266
+ #
267
+ # @option options [String] :session_token
268
+ #
269
+ # @option options [Boolean] :stub_responses (false)
270
+ # Causes the client to return stubbed responses. By default
271
+ # fake responses are generated and returned. You can specify
272
+ # the response data to return or errors to raise by calling
273
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
274
+ #
275
+ # ** Please note ** When response stubbing is enabled, no HTTP
276
+ # requests are made, and retries are disabled.
277
+ #
278
+ # @option options [Boolean] :use_dualstack_endpoint
279
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
280
+ # will be used if available.
281
+ #
282
+ # @option options [Boolean] :use_fips_endpoint
283
+ # When set to `true`, fips compatible endpoints will be used if available.
284
+ # When a `fips` region is used, the region is normalized and this config
285
+ # is set to `true`.
286
+ #
287
+ # @option options [Boolean] :validate_params (true)
288
+ # When `true`, request parameters are validated before
289
+ # sending the request.
290
+ #
291
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
292
+ # requests through. Formatted like 'http://proxy.com:123'.
293
+ #
294
+ # @option options [Float] :http_open_timeout (15) The number of
295
+ # seconds to wait when opening a HTTP session before raising a
296
+ # `Timeout::Error`.
297
+ #
298
+ # @option options [Integer] :http_read_timeout (60) The default
299
+ # number of seconds to wait for response data. This value can
300
+ # safely be set per-request on the session.
301
+ #
302
+ # @option options [Float] :http_idle_timeout (5) The number of
303
+ # seconds a connection is allowed to sit idle before it is
304
+ # considered stale. Stale connections are closed and removed
305
+ # from the pool before making a request.
306
+ #
307
+ # @option options [Float] :http_continue_timeout (1) The number of
308
+ # seconds to wait for a 100-continue response before sending the
309
+ # request body. This option has no effect unless the request has
310
+ # "Expect" header set to "100-continue". Defaults to `nil` which
311
+ # disables this behaviour. This value can safely be set per
312
+ # request on the session.
313
+ #
314
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
315
+ # HTTP debug output will be sent to the `:logger`.
316
+ #
317
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
318
+ # SSL peer certificates are verified when establishing a
319
+ # connection.
320
+ #
321
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
322
+ # certificate authority bundle file that should be used when
323
+ # verifying peer certificates. If you do not pass
324
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
325
+ # will be used if available.
326
+ #
327
+ # @option options [String] :ssl_ca_directory Full path of the
328
+ # directory that contains the unbundled SSL certificate
329
+ # authority files for verifying peer certificates. If you do
330
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
331
+ # system default will be used if available.
332
+ #
333
+ def initialize(*args)
334
+ super
335
+ end
336
+
337
+ # @!group API Operations
338
+
339
+ # Creates a new ReplicationConfigurationTemplate.
340
+ #
341
+ # @option params [required, Boolean] :associate_default_security_group
342
+ # Whether to associate the default Elastic Disaster Recovery Security
343
+ # group with the Replication Configuration Template.
344
+ #
345
+ # @option params [required, Integer] :bandwidth_throttling
346
+ # Configure bandwidth throttling for the outbound data transfer rate of
347
+ # the Source Server in Mbps.
348
+ #
349
+ # @option params [required, Boolean] :create_public_ip
350
+ # Whether to create a Public IP for the Recovery Instance by default.
351
+ #
352
+ # @option params [required, String] :data_plane_routing
353
+ # The data plane routing mechanism that will be used for replication.
354
+ #
355
+ # @option params [required, String] :default_large_staging_disk_type
356
+ # The Staging Disk EBS volume type to be used during replication.
357
+ #
358
+ # @option params [required, String] :ebs_encryption
359
+ # The type of EBS encryption to be used during replication.
360
+ #
361
+ # @option params [String] :ebs_encryption_key_arn
362
+ # The ARN of the EBS encryption key to be used during replication.
363
+ #
364
+ # @option params [required, Array<Types::PITPolicyRule>] :pit_policy
365
+ # The Point in time (PIT) policy to manage snapshots taken during
366
+ # replication.
367
+ #
368
+ # @option params [required, String] :replication_server_instance_type
369
+ # The instance type to be used for the replication server.
370
+ #
371
+ # @option params [required, Array<String>] :replication_servers_security_groups_i_ds
372
+ # The security group IDs that will be used by the replication server.
373
+ #
374
+ # @option params [required, String] :staging_area_subnet_id
375
+ # The subnet to be used by the replication staging area.
376
+ #
377
+ # @option params [required, Hash<String,String>] :staging_area_tags
378
+ # A set of tags to be associated with all resources created in the
379
+ # replication staging area: EC2 replication server, EBS volumes, EBS
380
+ # snapshots, etc.
381
+ #
382
+ # @option params [Hash<String,String>] :tags
383
+ # A set of tags to be associated with the Replication Configuration
384
+ # Template resource.
385
+ #
386
+ # @option params [required, Boolean] :use_dedicated_replication_server
387
+ # Whether to use a dedicated Replication Server in the replication
388
+ # staging area.
389
+ #
390
+ # @return [Types::ReplicationConfigurationTemplate] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
391
+ #
392
+ # * {Types::ReplicationConfigurationTemplate#arn #arn} => String
393
+ # * {Types::ReplicationConfigurationTemplate#associate_default_security_group #associate_default_security_group} => Boolean
394
+ # * {Types::ReplicationConfigurationTemplate#bandwidth_throttling #bandwidth_throttling} => Integer
395
+ # * {Types::ReplicationConfigurationTemplate#create_public_ip #create_public_ip} => Boolean
396
+ # * {Types::ReplicationConfigurationTemplate#data_plane_routing #data_plane_routing} => String
397
+ # * {Types::ReplicationConfigurationTemplate#default_large_staging_disk_type #default_large_staging_disk_type} => String
398
+ # * {Types::ReplicationConfigurationTemplate#ebs_encryption #ebs_encryption} => String
399
+ # * {Types::ReplicationConfigurationTemplate#ebs_encryption_key_arn #ebs_encryption_key_arn} => String
400
+ # * {Types::ReplicationConfigurationTemplate#pit_policy #pit_policy} => Array&lt;Types::PITPolicyRule&gt;
401
+ # * {Types::ReplicationConfigurationTemplate#replication_configuration_template_id #replication_configuration_template_id} => String
402
+ # * {Types::ReplicationConfigurationTemplate#replication_server_instance_type #replication_server_instance_type} => String
403
+ # * {Types::ReplicationConfigurationTemplate#replication_servers_security_groups_i_ds #replication_servers_security_groups_i_ds} => Array&lt;String&gt;
404
+ # * {Types::ReplicationConfigurationTemplate#staging_area_subnet_id #staging_area_subnet_id} => String
405
+ # * {Types::ReplicationConfigurationTemplate#staging_area_tags #staging_area_tags} => Hash&lt;String,String&gt;
406
+ # * {Types::ReplicationConfigurationTemplate#tags #tags} => Hash&lt;String,String&gt;
407
+ # * {Types::ReplicationConfigurationTemplate#use_dedicated_replication_server #use_dedicated_replication_server} => Boolean
408
+ #
409
+ # @example Request syntax with placeholder values
410
+ #
411
+ # resp = client.create_replication_configuration_template({
412
+ # associate_default_security_group: false, # required
413
+ # bandwidth_throttling: 1, # required
414
+ # create_public_ip: false, # required
415
+ # data_plane_routing: "PRIVATE_IP", # required, accepts PRIVATE_IP, PUBLIC_IP
416
+ # default_large_staging_disk_type: "GP2", # required, accepts GP2, GP3, ST1
417
+ # ebs_encryption: "DEFAULT", # required, accepts DEFAULT, CUSTOM
418
+ # ebs_encryption_key_arn: "ARN",
419
+ # pit_policy: [ # required
420
+ # {
421
+ # enabled: false,
422
+ # interval: 1, # required
423
+ # retention_duration: 1, # required
424
+ # rule_id: 1,
425
+ # units: "MINUTE", # required, accepts MINUTE, HOUR, DAY
426
+ # },
427
+ # ],
428
+ # replication_server_instance_type: "EC2InstanceType", # required
429
+ # replication_servers_security_groups_i_ds: ["SecurityGroupID"], # required
430
+ # staging_area_subnet_id: "SubnetID", # required
431
+ # staging_area_tags: { # required
432
+ # "TagKey" => "TagValue",
433
+ # },
434
+ # tags: {
435
+ # "TagKey" => "TagValue",
436
+ # },
437
+ # use_dedicated_replication_server: false, # required
438
+ # })
439
+ #
440
+ # @example Response structure
441
+ #
442
+ # resp.arn #=> String
443
+ # resp.associate_default_security_group #=> Boolean
444
+ # resp.bandwidth_throttling #=> Integer
445
+ # resp.create_public_ip #=> Boolean
446
+ # resp.data_plane_routing #=> String, one of "PRIVATE_IP", "PUBLIC_IP"
447
+ # resp.default_large_staging_disk_type #=> String, one of "GP2", "GP3", "ST1"
448
+ # resp.ebs_encryption #=> String, one of "DEFAULT", "CUSTOM"
449
+ # resp.ebs_encryption_key_arn #=> String
450
+ # resp.pit_policy #=> Array
451
+ # resp.pit_policy[0].enabled #=> Boolean
452
+ # resp.pit_policy[0].interval #=> Integer
453
+ # resp.pit_policy[0].retention_duration #=> Integer
454
+ # resp.pit_policy[0].rule_id #=> Integer
455
+ # resp.pit_policy[0].units #=> String, one of "MINUTE", "HOUR", "DAY"
456
+ # resp.replication_configuration_template_id #=> String
457
+ # resp.replication_server_instance_type #=> String
458
+ # resp.replication_servers_security_groups_i_ds #=> Array
459
+ # resp.replication_servers_security_groups_i_ds[0] #=> String
460
+ # resp.staging_area_subnet_id #=> String
461
+ # resp.staging_area_tags #=> Hash
462
+ # resp.staging_area_tags["TagKey"] #=> String
463
+ # resp.tags #=> Hash
464
+ # resp.tags["TagKey"] #=> String
465
+ # resp.use_dedicated_replication_server #=> Boolean
466
+ #
467
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/CreateReplicationConfigurationTemplate AWS API Documentation
468
+ #
469
+ # @overload create_replication_configuration_template(params = {})
470
+ # @param [Hash] params ({})
471
+ def create_replication_configuration_template(params = {}, options = {})
472
+ req = build_request(:create_replication_configuration_template, params)
473
+ req.send_request(options)
474
+ end
475
+
476
+ # Deletes a single Job by ID.
477
+ #
478
+ # @option params [required, String] :job_id
479
+ # The ID of the Job to be deleted.
480
+ #
481
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
482
+ #
483
+ # @example Request syntax with placeholder values
484
+ #
485
+ # resp = client.delete_job({
486
+ # job_id: "JobID", # required
487
+ # })
488
+ #
489
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DeleteJob AWS API Documentation
490
+ #
491
+ # @overload delete_job(params = {})
492
+ # @param [Hash] params ({})
493
+ def delete_job(params = {}, options = {})
494
+ req = build_request(:delete_job, params)
495
+ req.send_request(options)
496
+ end
497
+
498
+ # Deletes a single Recovery Instance by ID. This deletes the Recovery
499
+ # Instance resource from Elastic Disaster Recovery. The Recovery
500
+ # Instance must be disconnected first in order to delete it.
501
+ #
502
+ # @option params [required, String] :recovery_instance_id
503
+ # RThe ID of the Recovery Instance to be deleted.
504
+ #
505
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
506
+ #
507
+ # @example Request syntax with placeholder values
508
+ #
509
+ # resp = client.delete_recovery_instance({
510
+ # recovery_instance_id: "RecoveryInstanceID", # required
511
+ # })
512
+ #
513
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DeleteRecoveryInstance AWS API Documentation
514
+ #
515
+ # @overload delete_recovery_instance(params = {})
516
+ # @param [Hash] params ({})
517
+ def delete_recovery_instance(params = {}, options = {})
518
+ req = build_request(:delete_recovery_instance, params)
519
+ req.send_request(options)
520
+ end
521
+
522
+ # Deletes a single Replication Configuration Template by ID
523
+ #
524
+ # @option params [required, String] :replication_configuration_template_id
525
+ # The ID of the Replication Configuration Template to be deleted.
526
+ #
527
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
528
+ #
529
+ # @example Request syntax with placeholder values
530
+ #
531
+ # resp = client.delete_replication_configuration_template({
532
+ # replication_configuration_template_id: "ReplicationConfigurationTemplateID", # required
533
+ # })
534
+ #
535
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DeleteReplicationConfigurationTemplate AWS API Documentation
536
+ #
537
+ # @overload delete_replication_configuration_template(params = {})
538
+ # @param [Hash] params ({})
539
+ def delete_replication_configuration_template(params = {}, options = {})
540
+ req = build_request(:delete_replication_configuration_template, params)
541
+ req.send_request(options)
542
+ end
543
+
544
+ # Deletes a single Source Server by ID. The Source Server must be
545
+ # disconnected first.
546
+ #
547
+ # @option params [required, String] :source_server_id
548
+ # The ID of the Source Server to be deleted.
549
+ #
550
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
551
+ #
552
+ # @example Request syntax with placeholder values
553
+ #
554
+ # resp = client.delete_source_server({
555
+ # source_server_id: "SourceServerID", # required
556
+ # })
557
+ #
558
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DeleteSourceServer AWS API Documentation
559
+ #
560
+ # @overload delete_source_server(params = {})
561
+ # @param [Hash] params ({})
562
+ def delete_source_server(params = {}, options = {})
563
+ req = build_request(:delete_source_server, params)
564
+ req.send_request(options)
565
+ end
566
+
567
+ # Retrieves a detailed Job log with pagination.
568
+ #
569
+ # @option params [required, String] :job_id
570
+ # The ID of the Job for which Job log items will be retrieved.
571
+ #
572
+ # @option params [Integer] :max_results
573
+ # Maximum number of Job log items to retrieve.
574
+ #
575
+ # @option params [String] :next_token
576
+ # The token of the next Job log items to retrieve.
577
+ #
578
+ # @return [Types::DescribeJobLogItemsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
579
+ #
580
+ # * {Types::DescribeJobLogItemsResponse#items #items} => Array&lt;Types::JobLog&gt;
581
+ # * {Types::DescribeJobLogItemsResponse#next_token #next_token} => String
582
+ #
583
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
584
+ #
585
+ # @example Request syntax with placeholder values
586
+ #
587
+ # resp = client.describe_job_log_items({
588
+ # job_id: "JobID", # required
589
+ # max_results: 1,
590
+ # next_token: "PaginationToken",
591
+ # })
592
+ #
593
+ # @example Response structure
594
+ #
595
+ # resp.items #=> Array
596
+ # resp.items[0].event #=> String, one of "JOB_START", "SERVER_SKIPPED", "CLEANUP_START", "CLEANUP_END", "CLEANUP_FAIL", "SNAPSHOT_START", "SNAPSHOT_END", "SNAPSHOT_FAIL", "USING_PREVIOUS_SNAPSHOT", "USING_PREVIOUS_SNAPSHOT_FAILED", "CONVERSION_START", "CONVERSION_END", "CONVERSION_FAIL", "LAUNCH_START", "LAUNCH_FAILED", "JOB_CANCEL", "JOB_END"
597
+ # resp.items[0].event_data.conversion_server_id #=> String
598
+ # resp.items[0].event_data.raw_error #=> String
599
+ # resp.items[0].event_data.source_server_id #=> String
600
+ # resp.items[0].event_data.target_instance_id #=> String
601
+ # resp.items[0].log_date_time #=> String
602
+ # resp.next_token #=> String
603
+ #
604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DescribeJobLogItems AWS API Documentation
605
+ #
606
+ # @overload describe_job_log_items(params = {})
607
+ # @param [Hash] params ({})
608
+ def describe_job_log_items(params = {}, options = {})
609
+ req = build_request(:describe_job_log_items, params)
610
+ req.send_request(options)
611
+ end
612
+
613
+ # Returns a list of Jobs. Use the JobsID and fromDate and toDate filters
614
+ # to limit which jobs are returned. The response is sorted by
615
+ # creationDataTime - latest date first. Jobs are created by the
616
+ # StartRecovery, TerminateRecoveryInstances and StartFailbackLaunch
617
+ # APIs. Jobs are also created by DiagnosticLaunch and
618
+ # TerminateDiagnosticInstances, which are APIs available only to
619
+ # *Support* and only used in response to relevant support tickets.
620
+ #
621
+ # @option params [required, Types::DescribeJobsRequestFilters] :filters
622
+ # A set of filters by which to return Jobs.
623
+ #
624
+ # @option params [Integer] :max_results
625
+ # Maximum number of Jobs to retrieve.
626
+ #
627
+ # @option params [String] :next_token
628
+ # The token of the next Job to retrieve.
629
+ #
630
+ # @return [Types::DescribeJobsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
631
+ #
632
+ # * {Types::DescribeJobsResponse#items #items} => Array&lt;Types::Job&gt;
633
+ # * {Types::DescribeJobsResponse#next_token #next_token} => String
634
+ #
635
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
636
+ #
637
+ # @example Request syntax with placeholder values
638
+ #
639
+ # resp = client.describe_jobs({
640
+ # filters: { # required
641
+ # from_date: "ISO8601DatetimeString",
642
+ # job_i_ds: ["JobID"],
643
+ # to_date: "ISO8601DatetimeString",
644
+ # },
645
+ # max_results: 1,
646
+ # next_token: "PaginationToken",
647
+ # })
648
+ #
649
+ # @example Response structure
650
+ #
651
+ # resp.items #=> Array
652
+ # resp.items[0].arn #=> String
653
+ # resp.items[0].creation_date_time #=> String
654
+ # resp.items[0].end_date_time #=> String
655
+ # resp.items[0].initiated_by #=> String, one of "START_RECOVERY", "START_DRILL", "FAILBACK", "DIAGNOSTIC", "TERMINATE_RECOVERY_INSTANCES"
656
+ # resp.items[0].job_id #=> String
657
+ # resp.items[0].participating_servers #=> Array
658
+ # resp.items[0].participating_servers[0].launch_status #=> String, one of "PENDING", "IN_PROGRESS", "LAUNCHED", "FAILED", "TERMINATED"
659
+ # resp.items[0].participating_servers[0].recovery_instance_id #=> String
660
+ # resp.items[0].participating_servers[0].source_server_id #=> String
661
+ # resp.items[0].status #=> String, one of "PENDING", "STARTED", "COMPLETED"
662
+ # resp.items[0].tags #=> Hash
663
+ # resp.items[0].tags["TagKey"] #=> String
664
+ # resp.items[0].type #=> String, one of "LAUNCH", "TERMINATE"
665
+ # resp.next_token #=> String
666
+ #
667
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DescribeJobs AWS API Documentation
668
+ #
669
+ # @overload describe_jobs(params = {})
670
+ # @param [Hash] params ({})
671
+ def describe_jobs(params = {}, options = {})
672
+ req = build_request(:describe_jobs, params)
673
+ req.send_request(options)
674
+ end
675
+
676
+ # Lists all Recovery Instances or multiple Recovery Instances by ID.
677
+ #
678
+ # @option params [required, Types::DescribeRecoveryInstancesRequestFilters] :filters
679
+ # A set of filters by which to return Recovery Instances.
680
+ #
681
+ # @option params [Integer] :max_results
682
+ # Maximum number of Recovery Instances to retrieve.
683
+ #
684
+ # @option params [String] :next_token
685
+ # The token of the next Recovery Instance to retrieve.
686
+ #
687
+ # @return [Types::DescribeRecoveryInstancesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
688
+ #
689
+ # * {Types::DescribeRecoveryInstancesResponse#items #items} => Array&lt;Types::RecoveryInstance&gt;
690
+ # * {Types::DescribeRecoveryInstancesResponse#next_token #next_token} => String
691
+ #
692
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
693
+ #
694
+ # @example Request syntax with placeholder values
695
+ #
696
+ # resp = client.describe_recovery_instances({
697
+ # filters: { # required
698
+ # recovery_instance_i_ds: ["RecoveryInstanceID"],
699
+ # source_server_i_ds: ["SourceServerID"],
700
+ # },
701
+ # max_results: 1,
702
+ # next_token: "PaginationToken",
703
+ # })
704
+ #
705
+ # @example Response structure
706
+ #
707
+ # resp.items #=> Array
708
+ # resp.items[0].arn #=> String
709
+ # resp.items[0].data_replication_info.data_replication_error.error #=> String, one of "AGENT_NOT_SEEN", "FAILBACK_CLIENT_NOT_SEEN", "NOT_CONVERGING", "UNSTABLE_NETWORK", "FAILED_TO_ESTABLISH_RECOVERY_INSTANCE_COMMUNICATION", "FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE_TO_FAILBACK_CLIENT", "FAILED_TO_CONFIGURE_REPLICATION_SOFTWARE", "FAILED_TO_PAIR_AGENT_WITH_REPLICATION_SOFTWARE", "FAILED_TO_ESTABLISH_AGENT_REPLICATOR_SOFTWARE_COMMUNICATION"
710
+ # resp.items[0].data_replication_info.data_replication_error.raw_error #=> String
711
+ # resp.items[0].data_replication_info.data_replication_initiation.start_date_time #=> String
712
+ # resp.items[0].data_replication_info.data_replication_initiation.steps #=> Array
713
+ # resp.items[0].data_replication_info.data_replication_initiation.steps[0].name #=> String, one of "LINK_FAILBACK_CLIENT_WITH_RECOVERY_INSTANCE", "COMPLETE_VOLUME_MAPPING", "ESTABLISH_RECOVERY_INSTANCE_COMMUNICATION", "DOWNLOAD_REPLICATION_SOFTWARE_TO_FAILBACK_CLIENT", "CONFIGURE_REPLICATION_SOFTWARE", "PAIR_AGENT_WITH_REPLICATION_SOFTWARE", "ESTABLISH_AGENT_REPLICATOR_SOFTWARE_COMMUNICATION"
714
+ # resp.items[0].data_replication_info.data_replication_initiation.steps[0].status #=> String, one of "NOT_STARTED", "IN_PROGRESS", "SUCCEEDED", "FAILED", "SKIPPED"
715
+ # resp.items[0].data_replication_info.data_replication_state #=> String, one of "STOPPED", "INITIATING", "INITIAL_SYNC", "BACKLOG", "CREATING_SNAPSHOT", "CONTINUOUS", "PAUSED", "RESCAN", "STALLED", "DISCONNECTED"
716
+ # resp.items[0].data_replication_info.eta_date_time #=> String
717
+ # resp.items[0].data_replication_info.lag_duration #=> String
718
+ # resp.items[0].data_replication_info.replicated_disks #=> Array
719
+ # resp.items[0].data_replication_info.replicated_disks[0].backlogged_storage_bytes #=> Integer
720
+ # resp.items[0].data_replication_info.replicated_disks[0].device_name #=> String
721
+ # resp.items[0].data_replication_info.replicated_disks[0].replicated_storage_bytes #=> Integer
722
+ # resp.items[0].data_replication_info.replicated_disks[0].rescanned_storage_bytes #=> Integer
723
+ # resp.items[0].data_replication_info.replicated_disks[0].total_storage_bytes #=> Integer
724
+ # resp.items[0].ec2_instance_id #=> String
725
+ # resp.items[0].ec2_instance_state #=> String, one of "PENDING", "RUNNING", "STOPPING", "STOPPED", "SHUTTING-DOWN", "TERMINATED", "NOT_FOUND"
726
+ # resp.items[0].failback.agent_last_seen_by_service_date_time #=> String
727
+ # resp.items[0].failback.elapsed_replication_duration #=> String
728
+ # resp.items[0].failback.failback_client_id #=> String
729
+ # resp.items[0].failback.failback_client_last_seen_by_service_date_time #=> String
730
+ # resp.items[0].failback.failback_initiation_time #=> String
731
+ # resp.items[0].failback.failback_job_id #=> String
732
+ # resp.items[0].failback.failback_to_original_server #=> Boolean
733
+ # resp.items[0].failback.first_byte_date_time #=> String
734
+ # resp.items[0].failback.state #=> String, one of "FAILBACK_NOT_STARTED", "FAILBACK_IN_PROGRESS", "FAILBACK_READY_FOR_LAUNCH", "FAILBACK_COMPLETED", "FAILBACK_ERROR"
735
+ # resp.items[0].is_drill #=> Boolean
736
+ # resp.items[0].job_id #=> String
737
+ # resp.items[0].point_in_time_snapshot_date_time #=> String
738
+ # resp.items[0].recovery_instance_id #=> String
739
+ # resp.items[0].recovery_instance_properties.cpus #=> Array
740
+ # resp.items[0].recovery_instance_properties.cpus[0].cores #=> Integer
741
+ # resp.items[0].recovery_instance_properties.cpus[0].model_name #=> String
742
+ # resp.items[0].recovery_instance_properties.disks #=> Array
743
+ # resp.items[0].recovery_instance_properties.disks[0].bytes #=> Integer
744
+ # resp.items[0].recovery_instance_properties.disks[0].ebs_volume_id #=> String
745
+ # resp.items[0].recovery_instance_properties.disks[0].internal_device_name #=> String
746
+ # resp.items[0].recovery_instance_properties.identification_hints.aws_instance_id #=> String
747
+ # resp.items[0].recovery_instance_properties.identification_hints.fqdn #=> String
748
+ # resp.items[0].recovery_instance_properties.identification_hints.hostname #=> String
749
+ # resp.items[0].recovery_instance_properties.identification_hints.vm_ware_uuid #=> String
750
+ # resp.items[0].recovery_instance_properties.last_updated_date_time #=> String
751
+ # resp.items[0].recovery_instance_properties.network_interfaces #=> Array
752
+ # resp.items[0].recovery_instance_properties.network_interfaces[0].ips #=> Array
753
+ # resp.items[0].recovery_instance_properties.network_interfaces[0].ips[0] #=> String
754
+ # resp.items[0].recovery_instance_properties.network_interfaces[0].is_primary #=> Boolean
755
+ # resp.items[0].recovery_instance_properties.network_interfaces[0].mac_address #=> String
756
+ # resp.items[0].recovery_instance_properties.os.full_string #=> String
757
+ # resp.items[0].recovery_instance_properties.ram_bytes #=> Integer
758
+ # resp.items[0].source_server_id #=> String
759
+ # resp.items[0].tags #=> Hash
760
+ # resp.items[0].tags["TagKey"] #=> String
761
+ # resp.next_token #=> String
762
+ #
763
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DescribeRecoveryInstances AWS API Documentation
764
+ #
765
+ # @overload describe_recovery_instances(params = {})
766
+ # @param [Hash] params ({})
767
+ def describe_recovery_instances(params = {}, options = {})
768
+ req = build_request(:describe_recovery_instances, params)
769
+ req.send_request(options)
770
+ end
771
+
772
+ # Lists all Recovery Snapshots for a single Source Server.
773
+ #
774
+ # @option params [Types::DescribeRecoverySnapshotsRequestFilters] :filters
775
+ # A set of filters by which to return Recovery Snapshots.
776
+ #
777
+ # @option params [Integer] :max_results
778
+ # Maximum number of Recovery Snapshots to retrieve.
779
+ #
780
+ # @option params [String] :next_token
781
+ # The token of the next Recovery Snapshot to retrieve.
782
+ #
783
+ # @option params [String] :order
784
+ # The sorted ordering by which to return Recovery Snapshots.
785
+ #
786
+ # @option params [required, String] :source_server_id
787
+ # Filter Recovery Snapshots by Source Server ID.
788
+ #
789
+ # @return [Types::DescribeRecoverySnapshotsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
790
+ #
791
+ # * {Types::DescribeRecoverySnapshotsResponse#items #items} => Array&lt;Types::RecoverySnapshot&gt;
792
+ # * {Types::DescribeRecoverySnapshotsResponse#next_token #next_token} => String
793
+ #
794
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
795
+ #
796
+ # @example Request syntax with placeholder values
797
+ #
798
+ # resp = client.describe_recovery_snapshots({
799
+ # filters: {
800
+ # from_date_time: "ISO8601DatetimeString",
801
+ # to_date_time: "ISO8601DatetimeString",
802
+ # },
803
+ # max_results: 1,
804
+ # next_token: "PaginationToken",
805
+ # order: "ASC", # accepts ASC, DESC
806
+ # source_server_id: "SourceServerID", # required
807
+ # })
808
+ #
809
+ # @example Response structure
810
+ #
811
+ # resp.items #=> Array
812
+ # resp.items[0].ebs_snapshots #=> Array
813
+ # resp.items[0].ebs_snapshots[0] #=> String
814
+ # resp.items[0].expected_timestamp #=> String
815
+ # resp.items[0].snapshot_id #=> String
816
+ # resp.items[0].source_server_id #=> String
817
+ # resp.items[0].timestamp #=> String
818
+ # resp.next_token #=> String
819
+ #
820
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DescribeRecoverySnapshots AWS API Documentation
821
+ #
822
+ # @overload describe_recovery_snapshots(params = {})
823
+ # @param [Hash] params ({})
824
+ def describe_recovery_snapshots(params = {}, options = {})
825
+ req = build_request(:describe_recovery_snapshots, params)
826
+ req.send_request(options)
827
+ end
828
+
829
+ # Lists all ReplicationConfigurationTemplates, filtered by Source Server
830
+ # IDs.
831
+ #
832
+ # @option params [Integer] :max_results
833
+ # Maximum number of Replication Configuration Templates to retrieve.
834
+ #
835
+ # @option params [String] :next_token
836
+ # The token of the next Replication Configuration Template to retrieve.
837
+ #
838
+ # @option params [required, Array<String>] :replication_configuration_template_i_ds
839
+ # The IDs of the Replication Configuration Templates to retrieve. An
840
+ # empty list means all Replication Configuration Templates.
841
+ #
842
+ # @return [Types::DescribeReplicationConfigurationTemplatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
843
+ #
844
+ # * {Types::DescribeReplicationConfigurationTemplatesResponse#items #items} => Array&lt;Types::ReplicationConfigurationTemplate&gt;
845
+ # * {Types::DescribeReplicationConfigurationTemplatesResponse#next_token #next_token} => String
846
+ #
847
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
848
+ #
849
+ # @example Request syntax with placeholder values
850
+ #
851
+ # resp = client.describe_replication_configuration_templates({
852
+ # max_results: 1,
853
+ # next_token: "PaginationToken",
854
+ # replication_configuration_template_i_ds: ["ReplicationConfigurationTemplateID"], # required
855
+ # })
856
+ #
857
+ # @example Response structure
858
+ #
859
+ # resp.items #=> Array
860
+ # resp.items[0].arn #=> String
861
+ # resp.items[0].associate_default_security_group #=> Boolean
862
+ # resp.items[0].bandwidth_throttling #=> Integer
863
+ # resp.items[0].create_public_ip #=> Boolean
864
+ # resp.items[0].data_plane_routing #=> String, one of "PRIVATE_IP", "PUBLIC_IP"
865
+ # resp.items[0].default_large_staging_disk_type #=> String, one of "GP2", "GP3", "ST1"
866
+ # resp.items[0].ebs_encryption #=> String, one of "DEFAULT", "CUSTOM"
867
+ # resp.items[0].ebs_encryption_key_arn #=> String
868
+ # resp.items[0].pit_policy #=> Array
869
+ # resp.items[0].pit_policy[0].enabled #=> Boolean
870
+ # resp.items[0].pit_policy[0].interval #=> Integer
871
+ # resp.items[0].pit_policy[0].retention_duration #=> Integer
872
+ # resp.items[0].pit_policy[0].rule_id #=> Integer
873
+ # resp.items[0].pit_policy[0].units #=> String, one of "MINUTE", "HOUR", "DAY"
874
+ # resp.items[0].replication_configuration_template_id #=> String
875
+ # resp.items[0].replication_server_instance_type #=> String
876
+ # resp.items[0].replication_servers_security_groups_i_ds #=> Array
877
+ # resp.items[0].replication_servers_security_groups_i_ds[0] #=> String
878
+ # resp.items[0].staging_area_subnet_id #=> String
879
+ # resp.items[0].staging_area_tags #=> Hash
880
+ # resp.items[0].staging_area_tags["TagKey"] #=> String
881
+ # resp.items[0].tags #=> Hash
882
+ # resp.items[0].tags["TagKey"] #=> String
883
+ # resp.items[0].use_dedicated_replication_server #=> Boolean
884
+ # resp.next_token #=> String
885
+ #
886
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DescribeReplicationConfigurationTemplates AWS API Documentation
887
+ #
888
+ # @overload describe_replication_configuration_templates(params = {})
889
+ # @param [Hash] params ({})
890
+ def describe_replication_configuration_templates(params = {}, options = {})
891
+ req = build_request(:describe_replication_configuration_templates, params)
892
+ req.send_request(options)
893
+ end
894
+
895
+ # Lists all Source Servers or multiple Source Servers filtered by ID.
896
+ #
897
+ # @option params [required, Types::DescribeSourceServersRequestFilters] :filters
898
+ # A set of filters by which to return Source Servers.
899
+ #
900
+ # @option params [Integer] :max_results
901
+ # Maximum number of Source Servers to retrieve.
902
+ #
903
+ # @option params [String] :next_token
904
+ # The token of the next Source Server to retrieve.
905
+ #
906
+ # @return [Types::DescribeSourceServersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
907
+ #
908
+ # * {Types::DescribeSourceServersResponse#items #items} => Array&lt;Types::SourceServer&gt;
909
+ # * {Types::DescribeSourceServersResponse#next_token #next_token} => String
910
+ #
911
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
912
+ #
913
+ # @example Request syntax with placeholder values
914
+ #
915
+ # resp = client.describe_source_servers({
916
+ # filters: { # required
917
+ # hardware_id: "BoundedString",
918
+ # source_server_i_ds: ["SourceServerID"],
919
+ # },
920
+ # max_results: 1,
921
+ # next_token: "PaginationToken",
922
+ # })
923
+ #
924
+ # @example Response structure
925
+ #
926
+ # resp.items #=> Array
927
+ # resp.items[0].arn #=> String
928
+ # resp.items[0].data_replication_info.data_replication_error.error #=> String, one of "AGENT_NOT_SEEN", "SNAPSHOTS_FAILURE", "NOT_CONVERGING", "UNSTABLE_NETWORK", "FAILED_TO_CREATE_SECURITY_GROUP", "FAILED_TO_LAUNCH_REPLICATION_SERVER", "FAILED_TO_BOOT_REPLICATION_SERVER", "FAILED_TO_AUTHENTICATE_WITH_SERVICE", "FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE", "FAILED_TO_CREATE_STAGING_DISKS", "FAILED_TO_ATTACH_STAGING_DISKS", "FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT", "FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER", "FAILED_TO_START_DATA_TRANSFER"
929
+ # resp.items[0].data_replication_info.data_replication_error.raw_error #=> String
930
+ # resp.items[0].data_replication_info.data_replication_initiation.next_attempt_date_time #=> String
931
+ # resp.items[0].data_replication_info.data_replication_initiation.start_date_time #=> String
932
+ # resp.items[0].data_replication_info.data_replication_initiation.steps #=> Array
933
+ # resp.items[0].data_replication_info.data_replication_initiation.steps[0].name #=> String, one of "WAIT", "CREATE_SECURITY_GROUP", "LAUNCH_REPLICATION_SERVER", "BOOT_REPLICATION_SERVER", "AUTHENTICATE_WITH_SERVICE", "DOWNLOAD_REPLICATION_SOFTWARE", "CREATE_STAGING_DISKS", "ATTACH_STAGING_DISKS", "PAIR_REPLICATION_SERVER_WITH_AGENT", "CONNECT_AGENT_TO_REPLICATION_SERVER", "START_DATA_TRANSFER"
934
+ # resp.items[0].data_replication_info.data_replication_initiation.steps[0].status #=> String, one of "NOT_STARTED", "IN_PROGRESS", "SUCCEEDED", "FAILED", "SKIPPED"
935
+ # resp.items[0].data_replication_info.data_replication_state #=> String, one of "STOPPED", "INITIATING", "INITIAL_SYNC", "BACKLOG", "CREATING_SNAPSHOT", "CONTINUOUS", "PAUSED", "RESCAN", "STALLED", "DISCONNECTED"
936
+ # resp.items[0].data_replication_info.eta_date_time #=> String
937
+ # resp.items[0].data_replication_info.lag_duration #=> String
938
+ # resp.items[0].data_replication_info.replicated_disks #=> Array
939
+ # resp.items[0].data_replication_info.replicated_disks[0].backlogged_storage_bytes #=> Integer
940
+ # resp.items[0].data_replication_info.replicated_disks[0].device_name #=> String
941
+ # resp.items[0].data_replication_info.replicated_disks[0].replicated_storage_bytes #=> Integer
942
+ # resp.items[0].data_replication_info.replicated_disks[0].rescanned_storage_bytes #=> Integer
943
+ # resp.items[0].data_replication_info.replicated_disks[0].total_storage_bytes #=> Integer
944
+ # resp.items[0].last_launch_result #=> String, one of "NOT_STARTED", "PENDING", "SUCCEEDED", "FAILED"
945
+ # resp.items[0].life_cycle.added_to_service_date_time #=> String
946
+ # resp.items[0].life_cycle.elapsed_replication_duration #=> String
947
+ # resp.items[0].life_cycle.first_byte_date_time #=> String
948
+ # resp.items[0].life_cycle.last_launch.initiated.api_call_date_time #=> String
949
+ # resp.items[0].life_cycle.last_launch.initiated.job_id #=> String
950
+ # resp.items[0].life_cycle.last_launch.initiated.type #=> String, one of "RECOVERY", "DRILL"
951
+ # resp.items[0].life_cycle.last_seen_by_service_date_time #=> String
952
+ # resp.items[0].recovery_instance_id #=> String
953
+ # resp.items[0].source_properties.cpus #=> Array
954
+ # resp.items[0].source_properties.cpus[0].cores #=> Integer
955
+ # resp.items[0].source_properties.cpus[0].model_name #=> String
956
+ # resp.items[0].source_properties.disks #=> Array
957
+ # resp.items[0].source_properties.disks[0].bytes #=> Integer
958
+ # resp.items[0].source_properties.disks[0].device_name #=> String
959
+ # resp.items[0].source_properties.identification_hints.aws_instance_id #=> String
960
+ # resp.items[0].source_properties.identification_hints.fqdn #=> String
961
+ # resp.items[0].source_properties.identification_hints.hostname #=> String
962
+ # resp.items[0].source_properties.identification_hints.vm_ware_uuid #=> String
963
+ # resp.items[0].source_properties.last_updated_date_time #=> String
964
+ # resp.items[0].source_properties.network_interfaces #=> Array
965
+ # resp.items[0].source_properties.network_interfaces[0].ips #=> Array
966
+ # resp.items[0].source_properties.network_interfaces[0].ips[0] #=> String
967
+ # resp.items[0].source_properties.network_interfaces[0].is_primary #=> Boolean
968
+ # resp.items[0].source_properties.network_interfaces[0].mac_address #=> String
969
+ # resp.items[0].source_properties.os.full_string #=> String
970
+ # resp.items[0].source_properties.ram_bytes #=> Integer
971
+ # resp.items[0].source_properties.recommended_instance_type #=> String
972
+ # resp.items[0].source_server_id #=> String
973
+ # resp.items[0].tags #=> Hash
974
+ # resp.items[0].tags["TagKey"] #=> String
975
+ # resp.next_token #=> String
976
+ #
977
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DescribeSourceServers AWS API Documentation
978
+ #
979
+ # @overload describe_source_servers(params = {})
980
+ # @param [Hash] params ({})
981
+ def describe_source_servers(params = {}, options = {})
982
+ req = build_request(:describe_source_servers, params)
983
+ req.send_request(options)
984
+ end
985
+
986
+ # Disconnect a Recovery Instance from Elastic Disaster Recovery. Data
987
+ # replication is stopped immediately. All AWS resources created by
988
+ # Elastic Disaster Recovery for enabling the replication of the Recovery
989
+ # Instance will be terminated / deleted within 90 minutes. If the agent
990
+ # on the Recovery Instance has not been prevented from communicating
991
+ # with the Elastic Disaster Recovery service, then it will receive a
992
+ # command to uninstall itself (within approximately 10 minutes). The
993
+ # following properties of the Recovery Instance will be changed
994
+ # immediately: dataReplicationInfo.dataReplicationState will be set to
995
+ # DISCONNECTED; The totalStorageBytes property for each of
996
+ # dataReplicationInfo.replicatedDisks will be set to zero;
997
+ # dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration
998
+ # will be nullified.
999
+ #
1000
+ # @option params [required, String] :recovery_instance_id
1001
+ # The ID of the Recovery Instance to disconnect.
1002
+ #
1003
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1004
+ #
1005
+ # @example Request syntax with placeholder values
1006
+ #
1007
+ # resp = client.disconnect_recovery_instance({
1008
+ # recovery_instance_id: "RecoveryInstanceID", # required
1009
+ # })
1010
+ #
1011
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DisconnectRecoveryInstance AWS API Documentation
1012
+ #
1013
+ # @overload disconnect_recovery_instance(params = {})
1014
+ # @param [Hash] params ({})
1015
+ def disconnect_recovery_instance(params = {}, options = {})
1016
+ req = build_request(:disconnect_recovery_instance, params)
1017
+ req.send_request(options)
1018
+ end
1019
+
1020
+ # Disconnects a specific Source Server from Elastic Disaster Recovery.
1021
+ # Data replication is stopped immediately. All AWS resources created by
1022
+ # Elastic Disaster Recovery for enabling the replication of the Source
1023
+ # Server will be terminated / deleted within 90 minutes. You cannot
1024
+ # disconnect a Source Server if it has a Recovery Instance. If the agent
1025
+ # on the Source Server has not been prevented from communicating with
1026
+ # the Elastic Disaster Recovery service, then it will receive a command
1027
+ # to uninstall itself (within approximately 10 minutes). The following
1028
+ # properties of the SourceServer will be changed immediately:
1029
+ # dataReplicationInfo.dataReplicationState will be set to DISCONNECTED;
1030
+ # The totalStorageBytes property for each of
1031
+ # dataReplicationInfo.replicatedDisks will be set to zero;
1032
+ # dataReplicationInfo.lagDuration and dataReplicationInfo.lagDuration
1033
+ # will be nullified.
1034
+ #
1035
+ # @option params [required, String] :source_server_id
1036
+ # The ID of the Source Server to disconnect.
1037
+ #
1038
+ # @return [Types::SourceServer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1039
+ #
1040
+ # * {Types::SourceServer#arn #arn} => String
1041
+ # * {Types::SourceServer#data_replication_info #data_replication_info} => Types::DataReplicationInfo
1042
+ # * {Types::SourceServer#last_launch_result #last_launch_result} => String
1043
+ # * {Types::SourceServer#life_cycle #life_cycle} => Types::LifeCycle
1044
+ # * {Types::SourceServer#recovery_instance_id #recovery_instance_id} => String
1045
+ # * {Types::SourceServer#source_properties #source_properties} => Types::SourceProperties
1046
+ # * {Types::SourceServer#source_server_id #source_server_id} => String
1047
+ # * {Types::SourceServer#tags #tags} => Hash&lt;String,String&gt;
1048
+ #
1049
+ # @example Request syntax with placeholder values
1050
+ #
1051
+ # resp = client.disconnect_source_server({
1052
+ # source_server_id: "SourceServerID", # required
1053
+ # })
1054
+ #
1055
+ # @example Response structure
1056
+ #
1057
+ # resp.arn #=> String
1058
+ # resp.data_replication_info.data_replication_error.error #=> String, one of "AGENT_NOT_SEEN", "SNAPSHOTS_FAILURE", "NOT_CONVERGING", "UNSTABLE_NETWORK", "FAILED_TO_CREATE_SECURITY_GROUP", "FAILED_TO_LAUNCH_REPLICATION_SERVER", "FAILED_TO_BOOT_REPLICATION_SERVER", "FAILED_TO_AUTHENTICATE_WITH_SERVICE", "FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE", "FAILED_TO_CREATE_STAGING_DISKS", "FAILED_TO_ATTACH_STAGING_DISKS", "FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT", "FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER", "FAILED_TO_START_DATA_TRANSFER"
1059
+ # resp.data_replication_info.data_replication_error.raw_error #=> String
1060
+ # resp.data_replication_info.data_replication_initiation.next_attempt_date_time #=> String
1061
+ # resp.data_replication_info.data_replication_initiation.start_date_time #=> String
1062
+ # resp.data_replication_info.data_replication_initiation.steps #=> Array
1063
+ # resp.data_replication_info.data_replication_initiation.steps[0].name #=> String, one of "WAIT", "CREATE_SECURITY_GROUP", "LAUNCH_REPLICATION_SERVER", "BOOT_REPLICATION_SERVER", "AUTHENTICATE_WITH_SERVICE", "DOWNLOAD_REPLICATION_SOFTWARE", "CREATE_STAGING_DISKS", "ATTACH_STAGING_DISKS", "PAIR_REPLICATION_SERVER_WITH_AGENT", "CONNECT_AGENT_TO_REPLICATION_SERVER", "START_DATA_TRANSFER"
1064
+ # resp.data_replication_info.data_replication_initiation.steps[0].status #=> String, one of "NOT_STARTED", "IN_PROGRESS", "SUCCEEDED", "FAILED", "SKIPPED"
1065
+ # resp.data_replication_info.data_replication_state #=> String, one of "STOPPED", "INITIATING", "INITIAL_SYNC", "BACKLOG", "CREATING_SNAPSHOT", "CONTINUOUS", "PAUSED", "RESCAN", "STALLED", "DISCONNECTED"
1066
+ # resp.data_replication_info.eta_date_time #=> String
1067
+ # resp.data_replication_info.lag_duration #=> String
1068
+ # resp.data_replication_info.replicated_disks #=> Array
1069
+ # resp.data_replication_info.replicated_disks[0].backlogged_storage_bytes #=> Integer
1070
+ # resp.data_replication_info.replicated_disks[0].device_name #=> String
1071
+ # resp.data_replication_info.replicated_disks[0].replicated_storage_bytes #=> Integer
1072
+ # resp.data_replication_info.replicated_disks[0].rescanned_storage_bytes #=> Integer
1073
+ # resp.data_replication_info.replicated_disks[0].total_storage_bytes #=> Integer
1074
+ # resp.last_launch_result #=> String, one of "NOT_STARTED", "PENDING", "SUCCEEDED", "FAILED"
1075
+ # resp.life_cycle.added_to_service_date_time #=> String
1076
+ # resp.life_cycle.elapsed_replication_duration #=> String
1077
+ # resp.life_cycle.first_byte_date_time #=> String
1078
+ # resp.life_cycle.last_launch.initiated.api_call_date_time #=> String
1079
+ # resp.life_cycle.last_launch.initiated.job_id #=> String
1080
+ # resp.life_cycle.last_launch.initiated.type #=> String, one of "RECOVERY", "DRILL"
1081
+ # resp.life_cycle.last_seen_by_service_date_time #=> String
1082
+ # resp.recovery_instance_id #=> String
1083
+ # resp.source_properties.cpus #=> Array
1084
+ # resp.source_properties.cpus[0].cores #=> Integer
1085
+ # resp.source_properties.cpus[0].model_name #=> String
1086
+ # resp.source_properties.disks #=> Array
1087
+ # resp.source_properties.disks[0].bytes #=> Integer
1088
+ # resp.source_properties.disks[0].device_name #=> String
1089
+ # resp.source_properties.identification_hints.aws_instance_id #=> String
1090
+ # resp.source_properties.identification_hints.fqdn #=> String
1091
+ # resp.source_properties.identification_hints.hostname #=> String
1092
+ # resp.source_properties.identification_hints.vm_ware_uuid #=> String
1093
+ # resp.source_properties.last_updated_date_time #=> String
1094
+ # resp.source_properties.network_interfaces #=> Array
1095
+ # resp.source_properties.network_interfaces[0].ips #=> Array
1096
+ # resp.source_properties.network_interfaces[0].ips[0] #=> String
1097
+ # resp.source_properties.network_interfaces[0].is_primary #=> Boolean
1098
+ # resp.source_properties.network_interfaces[0].mac_address #=> String
1099
+ # resp.source_properties.os.full_string #=> String
1100
+ # resp.source_properties.ram_bytes #=> Integer
1101
+ # resp.source_properties.recommended_instance_type #=> String
1102
+ # resp.source_server_id #=> String
1103
+ # resp.tags #=> Hash
1104
+ # resp.tags["TagKey"] #=> String
1105
+ #
1106
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/DisconnectSourceServer AWS API Documentation
1107
+ #
1108
+ # @overload disconnect_source_server(params = {})
1109
+ # @param [Hash] params ({})
1110
+ def disconnect_source_server(params = {}, options = {})
1111
+ req = build_request(:disconnect_source_server, params)
1112
+ req.send_request(options)
1113
+ end
1114
+
1115
+ # Lists all Failback ReplicationConfigurations, filtered by Recovery
1116
+ # Instance ID.
1117
+ #
1118
+ # @option params [required, String] :recovery_instance_id
1119
+ # The ID of the Recovery Instance whose failback replication
1120
+ # configuration should be returned.
1121
+ #
1122
+ # @return [Types::GetFailbackReplicationConfigurationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1123
+ #
1124
+ # * {Types::GetFailbackReplicationConfigurationResponse#bandwidth_throttling #bandwidth_throttling} => Integer
1125
+ # * {Types::GetFailbackReplicationConfigurationResponse#name #name} => String
1126
+ # * {Types::GetFailbackReplicationConfigurationResponse#recovery_instance_id #recovery_instance_id} => String
1127
+ # * {Types::GetFailbackReplicationConfigurationResponse#use_private_ip #use_private_ip} => Boolean
1128
+ #
1129
+ # @example Request syntax with placeholder values
1130
+ #
1131
+ # resp = client.get_failback_replication_configuration({
1132
+ # recovery_instance_id: "RecoveryInstanceID", # required
1133
+ # })
1134
+ #
1135
+ # @example Response structure
1136
+ #
1137
+ # resp.bandwidth_throttling #=> Integer
1138
+ # resp.name #=> String
1139
+ # resp.recovery_instance_id #=> String
1140
+ # resp.use_private_ip #=> Boolean
1141
+ #
1142
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/GetFailbackReplicationConfiguration AWS API Documentation
1143
+ #
1144
+ # @overload get_failback_replication_configuration(params = {})
1145
+ # @param [Hash] params ({})
1146
+ def get_failback_replication_configuration(params = {}, options = {})
1147
+ req = build_request(:get_failback_replication_configuration, params)
1148
+ req.send_request(options)
1149
+ end
1150
+
1151
+ # Gets a LaunchConfiguration, filtered by Source Server IDs.
1152
+ #
1153
+ # @option params [required, String] :source_server_id
1154
+ # The ID of the Source Server that we want to retrieve a Launch
1155
+ # Configuration for.
1156
+ #
1157
+ # @return [Types::LaunchConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1158
+ #
1159
+ # * {Types::LaunchConfiguration#copy_private_ip #copy_private_ip} => Boolean
1160
+ # * {Types::LaunchConfiguration#copy_tags #copy_tags} => Boolean
1161
+ # * {Types::LaunchConfiguration#ec2_launch_template_id #ec2_launch_template_id} => String
1162
+ # * {Types::LaunchConfiguration#launch_disposition #launch_disposition} => String
1163
+ # * {Types::LaunchConfiguration#licensing #licensing} => Types::Licensing
1164
+ # * {Types::LaunchConfiguration#name #name} => String
1165
+ # * {Types::LaunchConfiguration#source_server_id #source_server_id} => String
1166
+ # * {Types::LaunchConfiguration#target_instance_type_right_sizing_method #target_instance_type_right_sizing_method} => String
1167
+ #
1168
+ # @example Request syntax with placeholder values
1169
+ #
1170
+ # resp = client.get_launch_configuration({
1171
+ # source_server_id: "SourceServerID", # required
1172
+ # })
1173
+ #
1174
+ # @example Response structure
1175
+ #
1176
+ # resp.copy_private_ip #=> Boolean
1177
+ # resp.copy_tags #=> Boolean
1178
+ # resp.ec2_launch_template_id #=> String
1179
+ # resp.launch_disposition #=> String, one of "STOPPED", "STARTED"
1180
+ # resp.licensing.os_byol #=> Boolean
1181
+ # resp.name #=> String
1182
+ # resp.source_server_id #=> String
1183
+ # resp.target_instance_type_right_sizing_method #=> String, one of "NONE", "BASIC"
1184
+ #
1185
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/GetLaunchConfiguration AWS API Documentation
1186
+ #
1187
+ # @overload get_launch_configuration(params = {})
1188
+ # @param [Hash] params ({})
1189
+ def get_launch_configuration(params = {}, options = {})
1190
+ req = build_request(:get_launch_configuration, params)
1191
+ req.send_request(options)
1192
+ end
1193
+
1194
+ # Gets a ReplicationConfiguration, filtered by Source Server ID.
1195
+ #
1196
+ # @option params [required, String] :source_server_id
1197
+ # The ID of the Source Serve for this Replication Configuration.r
1198
+ #
1199
+ # @return [Types::ReplicationConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1200
+ #
1201
+ # * {Types::ReplicationConfiguration#associate_default_security_group #associate_default_security_group} => Boolean
1202
+ # * {Types::ReplicationConfiguration#bandwidth_throttling #bandwidth_throttling} => Integer
1203
+ # * {Types::ReplicationConfiguration#create_public_ip #create_public_ip} => Boolean
1204
+ # * {Types::ReplicationConfiguration#data_plane_routing #data_plane_routing} => String
1205
+ # * {Types::ReplicationConfiguration#default_large_staging_disk_type #default_large_staging_disk_type} => String
1206
+ # * {Types::ReplicationConfiguration#ebs_encryption #ebs_encryption} => String
1207
+ # * {Types::ReplicationConfiguration#ebs_encryption_key_arn #ebs_encryption_key_arn} => String
1208
+ # * {Types::ReplicationConfiguration#name #name} => String
1209
+ # * {Types::ReplicationConfiguration#pit_policy #pit_policy} => Array&lt;Types::PITPolicyRule&gt;
1210
+ # * {Types::ReplicationConfiguration#replicated_disks #replicated_disks} => Array&lt;Types::ReplicationConfigurationReplicatedDisk&gt;
1211
+ # * {Types::ReplicationConfiguration#replication_server_instance_type #replication_server_instance_type} => String
1212
+ # * {Types::ReplicationConfiguration#replication_servers_security_groups_i_ds #replication_servers_security_groups_i_ds} => Array&lt;String&gt;
1213
+ # * {Types::ReplicationConfiguration#source_server_id #source_server_id} => String
1214
+ # * {Types::ReplicationConfiguration#staging_area_subnet_id #staging_area_subnet_id} => String
1215
+ # * {Types::ReplicationConfiguration#staging_area_tags #staging_area_tags} => Hash&lt;String,String&gt;
1216
+ # * {Types::ReplicationConfiguration#use_dedicated_replication_server #use_dedicated_replication_server} => Boolean
1217
+ #
1218
+ # @example Request syntax with placeholder values
1219
+ #
1220
+ # resp = client.get_replication_configuration({
1221
+ # source_server_id: "SourceServerID", # required
1222
+ # })
1223
+ #
1224
+ # @example Response structure
1225
+ #
1226
+ # resp.associate_default_security_group #=> Boolean
1227
+ # resp.bandwidth_throttling #=> Integer
1228
+ # resp.create_public_ip #=> Boolean
1229
+ # resp.data_plane_routing #=> String, one of "PRIVATE_IP", "PUBLIC_IP"
1230
+ # resp.default_large_staging_disk_type #=> String, one of "GP2", "GP3", "ST1"
1231
+ # resp.ebs_encryption #=> String, one of "DEFAULT", "CUSTOM"
1232
+ # resp.ebs_encryption_key_arn #=> String
1233
+ # resp.name #=> String
1234
+ # resp.pit_policy #=> Array
1235
+ # resp.pit_policy[0].enabled #=> Boolean
1236
+ # resp.pit_policy[0].interval #=> Integer
1237
+ # resp.pit_policy[0].retention_duration #=> Integer
1238
+ # resp.pit_policy[0].rule_id #=> Integer
1239
+ # resp.pit_policy[0].units #=> String, one of "MINUTE", "HOUR", "DAY"
1240
+ # resp.replicated_disks #=> Array
1241
+ # resp.replicated_disks[0].device_name #=> String
1242
+ # resp.replicated_disks[0].iops #=> Integer
1243
+ # resp.replicated_disks[0].is_boot_disk #=> Boolean
1244
+ # resp.replicated_disks[0].staging_disk_type #=> String, one of "AUTO", "GP2", "GP3", "IO1", "SC1", "ST1", "STANDARD"
1245
+ # resp.replicated_disks[0].throughput #=> Integer
1246
+ # resp.replication_server_instance_type #=> String
1247
+ # resp.replication_servers_security_groups_i_ds #=> Array
1248
+ # resp.replication_servers_security_groups_i_ds[0] #=> String
1249
+ # resp.source_server_id #=> String
1250
+ # resp.staging_area_subnet_id #=> String
1251
+ # resp.staging_area_tags #=> Hash
1252
+ # resp.staging_area_tags["TagKey"] #=> String
1253
+ # resp.use_dedicated_replication_server #=> Boolean
1254
+ #
1255
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/GetReplicationConfiguration AWS API Documentation
1256
+ #
1257
+ # @overload get_replication_configuration(params = {})
1258
+ # @param [Hash] params ({})
1259
+ def get_replication_configuration(params = {}, options = {})
1260
+ req = build_request(:get_replication_configuration, params)
1261
+ req.send_request(options)
1262
+ end
1263
+
1264
+ # Initialize Elastic Disaster Recovery.
1265
+ #
1266
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1267
+ #
1268
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/InitializeService AWS API Documentation
1269
+ #
1270
+ # @overload initialize_service(params = {})
1271
+ # @param [Hash] params ({})
1272
+ def initialize_service(params = {}, options = {})
1273
+ req = build_request(:initialize_service, params)
1274
+ req.send_request(options)
1275
+ end
1276
+
1277
+ # List all tags for your Elastic Disaster Recovery resources.
1278
+ #
1279
+ # @option params [required, String] :resource_arn
1280
+ # The ARN of the resource whose tags should be returned.
1281
+ #
1282
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1283
+ #
1284
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Hash&lt;String,String&gt;
1285
+ #
1286
+ # @example Request syntax with placeholder values
1287
+ #
1288
+ # resp = client.list_tags_for_resource({
1289
+ # resource_arn: "ARN", # required
1290
+ # })
1291
+ #
1292
+ # @example Response structure
1293
+ #
1294
+ # resp.tags #=> Hash
1295
+ # resp.tags["TagKey"] #=> String
1296
+ #
1297
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/ListTagsForResource AWS API Documentation
1298
+ #
1299
+ # @overload list_tags_for_resource(params = {})
1300
+ # @param [Hash] params ({})
1301
+ def list_tags_for_resource(params = {}, options = {})
1302
+ req = build_request(:list_tags_for_resource, params)
1303
+ req.send_request(options)
1304
+ end
1305
+
1306
+ # Causes the data replication initiation sequence to begin immediately
1307
+ # upon next Handshake for the specified Source Server ID, regardless of
1308
+ # when the previous initiation started. This command will work only if
1309
+ # the Source Server is stalled or is in a DISCONNECTED or STOPPED state.
1310
+ #
1311
+ # @option params [required, String] :source_server_id
1312
+ # The ID of the Source Server whose data replication should be retried.
1313
+ #
1314
+ # @return [Types::SourceServer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1315
+ #
1316
+ # * {Types::SourceServer#arn #arn} => String
1317
+ # * {Types::SourceServer#data_replication_info #data_replication_info} => Types::DataReplicationInfo
1318
+ # * {Types::SourceServer#last_launch_result #last_launch_result} => String
1319
+ # * {Types::SourceServer#life_cycle #life_cycle} => Types::LifeCycle
1320
+ # * {Types::SourceServer#recovery_instance_id #recovery_instance_id} => String
1321
+ # * {Types::SourceServer#source_properties #source_properties} => Types::SourceProperties
1322
+ # * {Types::SourceServer#source_server_id #source_server_id} => String
1323
+ # * {Types::SourceServer#tags #tags} => Hash&lt;String,String&gt;
1324
+ #
1325
+ # @example Request syntax with placeholder values
1326
+ #
1327
+ # resp = client.retry_data_replication({
1328
+ # source_server_id: "SourceServerID", # required
1329
+ # })
1330
+ #
1331
+ # @example Response structure
1332
+ #
1333
+ # resp.arn #=> String
1334
+ # resp.data_replication_info.data_replication_error.error #=> String, one of "AGENT_NOT_SEEN", "SNAPSHOTS_FAILURE", "NOT_CONVERGING", "UNSTABLE_NETWORK", "FAILED_TO_CREATE_SECURITY_GROUP", "FAILED_TO_LAUNCH_REPLICATION_SERVER", "FAILED_TO_BOOT_REPLICATION_SERVER", "FAILED_TO_AUTHENTICATE_WITH_SERVICE", "FAILED_TO_DOWNLOAD_REPLICATION_SOFTWARE", "FAILED_TO_CREATE_STAGING_DISKS", "FAILED_TO_ATTACH_STAGING_DISKS", "FAILED_TO_PAIR_REPLICATION_SERVER_WITH_AGENT", "FAILED_TO_CONNECT_AGENT_TO_REPLICATION_SERVER", "FAILED_TO_START_DATA_TRANSFER"
1335
+ # resp.data_replication_info.data_replication_error.raw_error #=> String
1336
+ # resp.data_replication_info.data_replication_initiation.next_attempt_date_time #=> String
1337
+ # resp.data_replication_info.data_replication_initiation.start_date_time #=> String
1338
+ # resp.data_replication_info.data_replication_initiation.steps #=> Array
1339
+ # resp.data_replication_info.data_replication_initiation.steps[0].name #=> String, one of "WAIT", "CREATE_SECURITY_GROUP", "LAUNCH_REPLICATION_SERVER", "BOOT_REPLICATION_SERVER", "AUTHENTICATE_WITH_SERVICE", "DOWNLOAD_REPLICATION_SOFTWARE", "CREATE_STAGING_DISKS", "ATTACH_STAGING_DISKS", "PAIR_REPLICATION_SERVER_WITH_AGENT", "CONNECT_AGENT_TO_REPLICATION_SERVER", "START_DATA_TRANSFER"
1340
+ # resp.data_replication_info.data_replication_initiation.steps[0].status #=> String, one of "NOT_STARTED", "IN_PROGRESS", "SUCCEEDED", "FAILED", "SKIPPED"
1341
+ # resp.data_replication_info.data_replication_state #=> String, one of "STOPPED", "INITIATING", "INITIAL_SYNC", "BACKLOG", "CREATING_SNAPSHOT", "CONTINUOUS", "PAUSED", "RESCAN", "STALLED", "DISCONNECTED"
1342
+ # resp.data_replication_info.eta_date_time #=> String
1343
+ # resp.data_replication_info.lag_duration #=> String
1344
+ # resp.data_replication_info.replicated_disks #=> Array
1345
+ # resp.data_replication_info.replicated_disks[0].backlogged_storage_bytes #=> Integer
1346
+ # resp.data_replication_info.replicated_disks[0].device_name #=> String
1347
+ # resp.data_replication_info.replicated_disks[0].replicated_storage_bytes #=> Integer
1348
+ # resp.data_replication_info.replicated_disks[0].rescanned_storage_bytes #=> Integer
1349
+ # resp.data_replication_info.replicated_disks[0].total_storage_bytes #=> Integer
1350
+ # resp.last_launch_result #=> String, one of "NOT_STARTED", "PENDING", "SUCCEEDED", "FAILED"
1351
+ # resp.life_cycle.added_to_service_date_time #=> String
1352
+ # resp.life_cycle.elapsed_replication_duration #=> String
1353
+ # resp.life_cycle.first_byte_date_time #=> String
1354
+ # resp.life_cycle.last_launch.initiated.api_call_date_time #=> String
1355
+ # resp.life_cycle.last_launch.initiated.job_id #=> String
1356
+ # resp.life_cycle.last_launch.initiated.type #=> String, one of "RECOVERY", "DRILL"
1357
+ # resp.life_cycle.last_seen_by_service_date_time #=> String
1358
+ # resp.recovery_instance_id #=> String
1359
+ # resp.source_properties.cpus #=> Array
1360
+ # resp.source_properties.cpus[0].cores #=> Integer
1361
+ # resp.source_properties.cpus[0].model_name #=> String
1362
+ # resp.source_properties.disks #=> Array
1363
+ # resp.source_properties.disks[0].bytes #=> Integer
1364
+ # resp.source_properties.disks[0].device_name #=> String
1365
+ # resp.source_properties.identification_hints.aws_instance_id #=> String
1366
+ # resp.source_properties.identification_hints.fqdn #=> String
1367
+ # resp.source_properties.identification_hints.hostname #=> String
1368
+ # resp.source_properties.identification_hints.vm_ware_uuid #=> String
1369
+ # resp.source_properties.last_updated_date_time #=> String
1370
+ # resp.source_properties.network_interfaces #=> Array
1371
+ # resp.source_properties.network_interfaces[0].ips #=> Array
1372
+ # resp.source_properties.network_interfaces[0].ips[0] #=> String
1373
+ # resp.source_properties.network_interfaces[0].is_primary #=> Boolean
1374
+ # resp.source_properties.network_interfaces[0].mac_address #=> String
1375
+ # resp.source_properties.os.full_string #=> String
1376
+ # resp.source_properties.ram_bytes #=> Integer
1377
+ # resp.source_properties.recommended_instance_type #=> String
1378
+ # resp.source_server_id #=> String
1379
+ # resp.tags #=> Hash
1380
+ # resp.tags["TagKey"] #=> String
1381
+ #
1382
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/RetryDataReplication AWS API Documentation
1383
+ #
1384
+ # @overload retry_data_replication(params = {})
1385
+ # @param [Hash] params ({})
1386
+ def retry_data_replication(params = {}, options = {})
1387
+ req = build_request(:retry_data_replication, params)
1388
+ req.send_request(options)
1389
+ end
1390
+
1391
+ # Initiates a Job for launching the machine that is being failed back to
1392
+ # from the specified Recovery Instance. This will run conversion on the
1393
+ # failback client and will reboot your machine, thus completing the
1394
+ # failback process.
1395
+ #
1396
+ # @option params [required, Array<String>] :recovery_instance_i_ds
1397
+ # The IDs of the Recovery Instance whose failback launch we want to
1398
+ # request.
1399
+ #
1400
+ # @option params [Hash<String,String>] :tags
1401
+ # The tags to be associated with the failback launch Job.
1402
+ #
1403
+ # @return [Types::StartFailbackLaunchResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1404
+ #
1405
+ # * {Types::StartFailbackLaunchResponse#job #job} => Types::Job
1406
+ #
1407
+ # @example Request syntax with placeholder values
1408
+ #
1409
+ # resp = client.start_failback_launch({
1410
+ # recovery_instance_i_ds: ["RecoveryInstanceID"], # required
1411
+ # tags: {
1412
+ # "TagKey" => "TagValue",
1413
+ # },
1414
+ # })
1415
+ #
1416
+ # @example Response structure
1417
+ #
1418
+ # resp.job.arn #=> String
1419
+ # resp.job.creation_date_time #=> String
1420
+ # resp.job.end_date_time #=> String
1421
+ # resp.job.initiated_by #=> String, one of "START_RECOVERY", "START_DRILL", "FAILBACK", "DIAGNOSTIC", "TERMINATE_RECOVERY_INSTANCES"
1422
+ # resp.job.job_id #=> String
1423
+ # resp.job.participating_servers #=> Array
1424
+ # resp.job.participating_servers[0].launch_status #=> String, one of "PENDING", "IN_PROGRESS", "LAUNCHED", "FAILED", "TERMINATED"
1425
+ # resp.job.participating_servers[0].recovery_instance_id #=> String
1426
+ # resp.job.participating_servers[0].source_server_id #=> String
1427
+ # resp.job.status #=> String, one of "PENDING", "STARTED", "COMPLETED"
1428
+ # resp.job.tags #=> Hash
1429
+ # resp.job.tags["TagKey"] #=> String
1430
+ # resp.job.type #=> String, one of "LAUNCH", "TERMINATE"
1431
+ #
1432
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/StartFailbackLaunch AWS API Documentation
1433
+ #
1434
+ # @overload start_failback_launch(params = {})
1435
+ # @param [Hash] params ({})
1436
+ def start_failback_launch(params = {}, options = {})
1437
+ req = build_request(:start_failback_launch, params)
1438
+ req.send_request(options)
1439
+ end
1440
+
1441
+ # Launches Recovery Instances for the specified Source Servers. For each
1442
+ # Source Server you may choose a point in time snapshot to launch from,
1443
+ # or use an on demand snapshot.
1444
+ #
1445
+ # @option params [Boolean] :is_drill
1446
+ # Whether this Source Server Recovery operation is a drill or not.
1447
+ #
1448
+ # @option params [required, Array<Types::StartRecoveryRequestSourceServer>] :source_servers
1449
+ # The Source Servers that we want to start a Recovery Job for.
1450
+ #
1451
+ # @option params [Hash<String,String>] :tags
1452
+ # The tags to be associated with the Recovery Job.
1453
+ #
1454
+ # @return [Types::StartRecoveryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1455
+ #
1456
+ # * {Types::StartRecoveryResponse#job #job} => Types::Job
1457
+ #
1458
+ # @example Request syntax with placeholder values
1459
+ #
1460
+ # resp = client.start_recovery({
1461
+ # is_drill: false,
1462
+ # source_servers: [ # required
1463
+ # {
1464
+ # recovery_snapshot_id: "RecoverySnapshotID",
1465
+ # source_server_id: "SourceServerID", # required
1466
+ # },
1467
+ # ],
1468
+ # tags: {
1469
+ # "TagKey" => "TagValue",
1470
+ # },
1471
+ # })
1472
+ #
1473
+ # @example Response structure
1474
+ #
1475
+ # resp.job.arn #=> String
1476
+ # resp.job.creation_date_time #=> String
1477
+ # resp.job.end_date_time #=> String
1478
+ # resp.job.initiated_by #=> String, one of "START_RECOVERY", "START_DRILL", "FAILBACK", "DIAGNOSTIC", "TERMINATE_RECOVERY_INSTANCES"
1479
+ # resp.job.job_id #=> String
1480
+ # resp.job.participating_servers #=> Array
1481
+ # resp.job.participating_servers[0].launch_status #=> String, one of "PENDING", "IN_PROGRESS", "LAUNCHED", "FAILED", "TERMINATED"
1482
+ # resp.job.participating_servers[0].recovery_instance_id #=> String
1483
+ # resp.job.participating_servers[0].source_server_id #=> String
1484
+ # resp.job.status #=> String, one of "PENDING", "STARTED", "COMPLETED"
1485
+ # resp.job.tags #=> Hash
1486
+ # resp.job.tags["TagKey"] #=> String
1487
+ # resp.job.type #=> String, one of "LAUNCH", "TERMINATE"
1488
+ #
1489
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/StartRecovery AWS API Documentation
1490
+ #
1491
+ # @overload start_recovery(params = {})
1492
+ # @param [Hash] params ({})
1493
+ def start_recovery(params = {}, options = {})
1494
+ req = build_request(:start_recovery, params)
1495
+ req.send_request(options)
1496
+ end
1497
+
1498
+ # Stops the failback process for a specified Recovery Instance. This
1499
+ # changes the Failback State of the Recovery Instance back to
1500
+ # FAILBACK\_NOT\_STARTED.
1501
+ #
1502
+ # @option params [required, String] :recovery_instance_id
1503
+ # The ID of the Recovery Instance we want to stop failback for.
1504
+ #
1505
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1506
+ #
1507
+ # @example Request syntax with placeholder values
1508
+ #
1509
+ # resp = client.stop_failback({
1510
+ # recovery_instance_id: "RecoveryInstanceID", # required
1511
+ # })
1512
+ #
1513
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/StopFailback AWS API Documentation
1514
+ #
1515
+ # @overload stop_failback(params = {})
1516
+ # @param [Hash] params ({})
1517
+ def stop_failback(params = {}, options = {})
1518
+ req = build_request(:stop_failback, params)
1519
+ req.send_request(options)
1520
+ end
1521
+
1522
+ # Adds or overwrites only the specified tags for the specified Elastic
1523
+ # Disaster Recovery resource or resources. When you specify an existing
1524
+ # tag key, the value is overwritten with the new value. Each resource
1525
+ # can have a maximum of 50 tags. Each tag consists of a key and optional
1526
+ # value.
1527
+ #
1528
+ # @option params [required, String] :resource_arn
1529
+ # ARN of the resource for which tags are to be added or updated.
1530
+ #
1531
+ # @option params [required, Hash<String,String>] :tags
1532
+ # Array of tags to be added or updated.
1533
+ #
1534
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1535
+ #
1536
+ # @example Request syntax with placeholder values
1537
+ #
1538
+ # resp = client.tag_resource({
1539
+ # resource_arn: "ARN", # required
1540
+ # tags: { # required
1541
+ # "TagKey" => "TagValue",
1542
+ # },
1543
+ # })
1544
+ #
1545
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/TagResource AWS API Documentation
1546
+ #
1547
+ # @overload tag_resource(params = {})
1548
+ # @param [Hash] params ({})
1549
+ def tag_resource(params = {}, options = {})
1550
+ req = build_request(:tag_resource, params)
1551
+ req.send_request(options)
1552
+ end
1553
+
1554
+ # Initiates a Job for terminating the EC2 resources associated with the
1555
+ # specified Recovery Instances, and then will delete the Recovery
1556
+ # Instances from the Elastic Disaster Recovery service.
1557
+ #
1558
+ # @option params [required, Array<String>] :recovery_instance_i_ds
1559
+ # The IDs of the Recovery Instances that should be terminated.
1560
+ #
1561
+ # @return [Types::TerminateRecoveryInstancesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1562
+ #
1563
+ # * {Types::TerminateRecoveryInstancesResponse#job #job} => Types::Job
1564
+ #
1565
+ # @example Request syntax with placeholder values
1566
+ #
1567
+ # resp = client.terminate_recovery_instances({
1568
+ # recovery_instance_i_ds: ["RecoveryInstanceID"], # required
1569
+ # })
1570
+ #
1571
+ # @example Response structure
1572
+ #
1573
+ # resp.job.arn #=> String
1574
+ # resp.job.creation_date_time #=> String
1575
+ # resp.job.end_date_time #=> String
1576
+ # resp.job.initiated_by #=> String, one of "START_RECOVERY", "START_DRILL", "FAILBACK", "DIAGNOSTIC", "TERMINATE_RECOVERY_INSTANCES"
1577
+ # resp.job.job_id #=> String
1578
+ # resp.job.participating_servers #=> Array
1579
+ # resp.job.participating_servers[0].launch_status #=> String, one of "PENDING", "IN_PROGRESS", "LAUNCHED", "FAILED", "TERMINATED"
1580
+ # resp.job.participating_servers[0].recovery_instance_id #=> String
1581
+ # resp.job.participating_servers[0].source_server_id #=> String
1582
+ # resp.job.status #=> String, one of "PENDING", "STARTED", "COMPLETED"
1583
+ # resp.job.tags #=> Hash
1584
+ # resp.job.tags["TagKey"] #=> String
1585
+ # resp.job.type #=> String, one of "LAUNCH", "TERMINATE"
1586
+ #
1587
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/TerminateRecoveryInstances AWS API Documentation
1588
+ #
1589
+ # @overload terminate_recovery_instances(params = {})
1590
+ # @param [Hash] params ({})
1591
+ def terminate_recovery_instances(params = {}, options = {})
1592
+ req = build_request(:terminate_recovery_instances, params)
1593
+ req.send_request(options)
1594
+ end
1595
+
1596
+ # Deletes the specified set of tags from the specified set of Elastic
1597
+ # Disaster Recovery resources.
1598
+ #
1599
+ # @option params [required, String] :resource_arn
1600
+ # ARN of the resource for which tags are to be removed.
1601
+ #
1602
+ # @option params [required, Array<String>] :tag_keys
1603
+ # Array of tags to be removed.
1604
+ #
1605
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1606
+ #
1607
+ # @example Request syntax with placeholder values
1608
+ #
1609
+ # resp = client.untag_resource({
1610
+ # resource_arn: "ARN", # required
1611
+ # tag_keys: ["TagKey"], # required
1612
+ # })
1613
+ #
1614
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/UntagResource AWS API Documentation
1615
+ #
1616
+ # @overload untag_resource(params = {})
1617
+ # @param [Hash] params ({})
1618
+ def untag_resource(params = {}, options = {})
1619
+ req = build_request(:untag_resource, params)
1620
+ req.send_request(options)
1621
+ end
1622
+
1623
+ # Allows you to update the failback replication configuration of a
1624
+ # Recovery Instance by ID.
1625
+ #
1626
+ # @option params [Integer] :bandwidth_throttling
1627
+ # Configure bandwidth throttling for the outbound data transfer rate of
1628
+ # the Recovery Instance in Mbps.
1629
+ #
1630
+ # @option params [String] :name
1631
+ # The name of the Failback Replication Configuration.
1632
+ #
1633
+ # @option params [required, String] :recovery_instance_id
1634
+ # The ID of the Recovery Instance.
1635
+ #
1636
+ # @option params [Boolean] :use_private_ip
1637
+ # Whether to use Private IP for the failback replication of the Recovery
1638
+ # Instance.
1639
+ #
1640
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1641
+ #
1642
+ # @example Request syntax with placeholder values
1643
+ #
1644
+ # resp = client.update_failback_replication_configuration({
1645
+ # bandwidth_throttling: 1,
1646
+ # name: "BoundedString",
1647
+ # recovery_instance_id: "RecoveryInstanceID", # required
1648
+ # use_private_ip: false,
1649
+ # })
1650
+ #
1651
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/UpdateFailbackReplicationConfiguration AWS API Documentation
1652
+ #
1653
+ # @overload update_failback_replication_configuration(params = {})
1654
+ # @param [Hash] params ({})
1655
+ def update_failback_replication_configuration(params = {}, options = {})
1656
+ req = build_request(:update_failback_replication_configuration, params)
1657
+ req.send_request(options)
1658
+ end
1659
+
1660
+ # Updates a LaunchConfiguration by Source Server ID.
1661
+ #
1662
+ # @option params [Boolean] :copy_private_ip
1663
+ # Whether we should copy the Private IP of the Source Server to the
1664
+ # Recovery Instance.
1665
+ #
1666
+ # @option params [Boolean] :copy_tags
1667
+ # Whether we want to copy the tags of the Source Server to the EC2
1668
+ # machine of the Recovery Instance.
1669
+ #
1670
+ # @option params [String] :launch_disposition
1671
+ # The state of the Recovery Instance in EC2 after the recovery
1672
+ # operation.
1673
+ #
1674
+ # @option params [Types::Licensing] :licensing
1675
+ # The licensing configuration to be used for this launch configuration.
1676
+ #
1677
+ # @option params [String] :name
1678
+ # The name of the launch configuration.
1679
+ #
1680
+ # @option params [required, String] :source_server_id
1681
+ # The ID of the Source Server that we want to retrieve a Launch
1682
+ # Configuration for.
1683
+ #
1684
+ # @option params [String] :target_instance_type_right_sizing_method
1685
+ # Whether Elastic Disaster Recovery should try to automatically choose
1686
+ # the instance type that best matches the OS, CPU, and RAM of your
1687
+ # Source Server.
1688
+ #
1689
+ # @return [Types::LaunchConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1690
+ #
1691
+ # * {Types::LaunchConfiguration#copy_private_ip #copy_private_ip} => Boolean
1692
+ # * {Types::LaunchConfiguration#copy_tags #copy_tags} => Boolean
1693
+ # * {Types::LaunchConfiguration#ec2_launch_template_id #ec2_launch_template_id} => String
1694
+ # * {Types::LaunchConfiguration#launch_disposition #launch_disposition} => String
1695
+ # * {Types::LaunchConfiguration#licensing #licensing} => Types::Licensing
1696
+ # * {Types::LaunchConfiguration#name #name} => String
1697
+ # * {Types::LaunchConfiguration#source_server_id #source_server_id} => String
1698
+ # * {Types::LaunchConfiguration#target_instance_type_right_sizing_method #target_instance_type_right_sizing_method} => String
1699
+ #
1700
+ # @example Request syntax with placeholder values
1701
+ #
1702
+ # resp = client.update_launch_configuration({
1703
+ # copy_private_ip: false,
1704
+ # copy_tags: false,
1705
+ # launch_disposition: "STOPPED", # accepts STOPPED, STARTED
1706
+ # licensing: {
1707
+ # os_byol: false,
1708
+ # },
1709
+ # name: "SmallBoundedString",
1710
+ # source_server_id: "SourceServerID", # required
1711
+ # target_instance_type_right_sizing_method: "NONE", # accepts NONE, BASIC
1712
+ # })
1713
+ #
1714
+ # @example Response structure
1715
+ #
1716
+ # resp.copy_private_ip #=> Boolean
1717
+ # resp.copy_tags #=> Boolean
1718
+ # resp.ec2_launch_template_id #=> String
1719
+ # resp.launch_disposition #=> String, one of "STOPPED", "STARTED"
1720
+ # resp.licensing.os_byol #=> Boolean
1721
+ # resp.name #=> String
1722
+ # resp.source_server_id #=> String
1723
+ # resp.target_instance_type_right_sizing_method #=> String, one of "NONE", "BASIC"
1724
+ #
1725
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/UpdateLaunchConfiguration AWS API Documentation
1726
+ #
1727
+ # @overload update_launch_configuration(params = {})
1728
+ # @param [Hash] params ({})
1729
+ def update_launch_configuration(params = {}, options = {})
1730
+ req = build_request(:update_launch_configuration, params)
1731
+ req.send_request(options)
1732
+ end
1733
+
1734
+ # Allows you to update a ReplicationConfiguration by Source Server ID.
1735
+ #
1736
+ # @option params [Boolean] :associate_default_security_group
1737
+ # Whether to associate the default Elastic Disaster Recovery Security
1738
+ # group with the Replication Configuration.
1739
+ #
1740
+ # @option params [Integer] :bandwidth_throttling
1741
+ # Configure bandwidth throttling for the outbound data transfer rate of
1742
+ # the Source Server in Mbps.
1743
+ #
1744
+ # @option params [Boolean] :create_public_ip
1745
+ # Whether to create a Public IP for the Recovery Instance by default.
1746
+ #
1747
+ # @option params [String] :data_plane_routing
1748
+ # The data plane routing mechanism that will be used for replication.
1749
+ #
1750
+ # @option params [String] :default_large_staging_disk_type
1751
+ # The Staging Disk EBS volume type to be used during replication.
1752
+ #
1753
+ # @option params [String] :ebs_encryption
1754
+ # The type of EBS encryption to be used during replication.
1755
+ #
1756
+ # @option params [String] :ebs_encryption_key_arn
1757
+ # The ARN of the EBS encryption key to be used during replication.
1758
+ #
1759
+ # @option params [String] :name
1760
+ # The name of the Replication Configuration.
1761
+ #
1762
+ # @option params [Array<Types::PITPolicyRule>] :pit_policy
1763
+ # The Point in time (PIT) policy to manage snapshots taken during
1764
+ # replication.
1765
+ #
1766
+ # @option params [Array<Types::ReplicationConfigurationReplicatedDisk>] :replicated_disks
1767
+ # The configuration of the disks of the Source Server to be replicated.
1768
+ #
1769
+ # @option params [String] :replication_server_instance_type
1770
+ # The instance type to be used for the replication server.
1771
+ #
1772
+ # @option params [Array<String>] :replication_servers_security_groups_i_ds
1773
+ # The security group IDs that will be used by the replication server.
1774
+ #
1775
+ # @option params [required, String] :source_server_id
1776
+ # The ID of the Source Server for this Replication Configuration.
1777
+ #
1778
+ # @option params [String] :staging_area_subnet_id
1779
+ # The subnet to be used by the replication staging area.
1780
+ #
1781
+ # @option params [Hash<String,String>] :staging_area_tags
1782
+ # A set of tags to be associated with all resources created in the
1783
+ # replication staging area: EC2 replication server, EBS volumes, EBS
1784
+ # snapshots, etc.
1785
+ #
1786
+ # @option params [Boolean] :use_dedicated_replication_server
1787
+ # Whether to use a dedicated Replication Server in the replication
1788
+ # staging area.
1789
+ #
1790
+ # @return [Types::ReplicationConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1791
+ #
1792
+ # * {Types::ReplicationConfiguration#associate_default_security_group #associate_default_security_group} => Boolean
1793
+ # * {Types::ReplicationConfiguration#bandwidth_throttling #bandwidth_throttling} => Integer
1794
+ # * {Types::ReplicationConfiguration#create_public_ip #create_public_ip} => Boolean
1795
+ # * {Types::ReplicationConfiguration#data_plane_routing #data_plane_routing} => String
1796
+ # * {Types::ReplicationConfiguration#default_large_staging_disk_type #default_large_staging_disk_type} => String
1797
+ # * {Types::ReplicationConfiguration#ebs_encryption #ebs_encryption} => String
1798
+ # * {Types::ReplicationConfiguration#ebs_encryption_key_arn #ebs_encryption_key_arn} => String
1799
+ # * {Types::ReplicationConfiguration#name #name} => String
1800
+ # * {Types::ReplicationConfiguration#pit_policy #pit_policy} => Array&lt;Types::PITPolicyRule&gt;
1801
+ # * {Types::ReplicationConfiguration#replicated_disks #replicated_disks} => Array&lt;Types::ReplicationConfigurationReplicatedDisk&gt;
1802
+ # * {Types::ReplicationConfiguration#replication_server_instance_type #replication_server_instance_type} => String
1803
+ # * {Types::ReplicationConfiguration#replication_servers_security_groups_i_ds #replication_servers_security_groups_i_ds} => Array&lt;String&gt;
1804
+ # * {Types::ReplicationConfiguration#source_server_id #source_server_id} => String
1805
+ # * {Types::ReplicationConfiguration#staging_area_subnet_id #staging_area_subnet_id} => String
1806
+ # * {Types::ReplicationConfiguration#staging_area_tags #staging_area_tags} => Hash&lt;String,String&gt;
1807
+ # * {Types::ReplicationConfiguration#use_dedicated_replication_server #use_dedicated_replication_server} => Boolean
1808
+ #
1809
+ # @example Request syntax with placeholder values
1810
+ #
1811
+ # resp = client.update_replication_configuration({
1812
+ # associate_default_security_group: false,
1813
+ # bandwidth_throttling: 1,
1814
+ # create_public_ip: false,
1815
+ # data_plane_routing: "PRIVATE_IP", # accepts PRIVATE_IP, PUBLIC_IP
1816
+ # default_large_staging_disk_type: "GP2", # accepts GP2, GP3, ST1
1817
+ # ebs_encryption: "DEFAULT", # accepts DEFAULT, CUSTOM
1818
+ # ebs_encryption_key_arn: "ARN",
1819
+ # name: "SmallBoundedString",
1820
+ # pit_policy: [
1821
+ # {
1822
+ # enabled: false,
1823
+ # interval: 1, # required
1824
+ # retention_duration: 1, # required
1825
+ # rule_id: 1,
1826
+ # units: "MINUTE", # required, accepts MINUTE, HOUR, DAY
1827
+ # },
1828
+ # ],
1829
+ # replicated_disks: [
1830
+ # {
1831
+ # device_name: "BoundedString",
1832
+ # iops: 1,
1833
+ # is_boot_disk: false,
1834
+ # staging_disk_type: "AUTO", # accepts AUTO, GP2, GP3, IO1, SC1, ST1, STANDARD
1835
+ # throughput: 1,
1836
+ # },
1837
+ # ],
1838
+ # replication_server_instance_type: "EC2InstanceType",
1839
+ # replication_servers_security_groups_i_ds: ["SecurityGroupID"],
1840
+ # source_server_id: "SourceServerID", # required
1841
+ # staging_area_subnet_id: "SubnetID",
1842
+ # staging_area_tags: {
1843
+ # "TagKey" => "TagValue",
1844
+ # },
1845
+ # use_dedicated_replication_server: false,
1846
+ # })
1847
+ #
1848
+ # @example Response structure
1849
+ #
1850
+ # resp.associate_default_security_group #=> Boolean
1851
+ # resp.bandwidth_throttling #=> Integer
1852
+ # resp.create_public_ip #=> Boolean
1853
+ # resp.data_plane_routing #=> String, one of "PRIVATE_IP", "PUBLIC_IP"
1854
+ # resp.default_large_staging_disk_type #=> String, one of "GP2", "GP3", "ST1"
1855
+ # resp.ebs_encryption #=> String, one of "DEFAULT", "CUSTOM"
1856
+ # resp.ebs_encryption_key_arn #=> String
1857
+ # resp.name #=> String
1858
+ # resp.pit_policy #=> Array
1859
+ # resp.pit_policy[0].enabled #=> Boolean
1860
+ # resp.pit_policy[0].interval #=> Integer
1861
+ # resp.pit_policy[0].retention_duration #=> Integer
1862
+ # resp.pit_policy[0].rule_id #=> Integer
1863
+ # resp.pit_policy[0].units #=> String, one of "MINUTE", "HOUR", "DAY"
1864
+ # resp.replicated_disks #=> Array
1865
+ # resp.replicated_disks[0].device_name #=> String
1866
+ # resp.replicated_disks[0].iops #=> Integer
1867
+ # resp.replicated_disks[0].is_boot_disk #=> Boolean
1868
+ # resp.replicated_disks[0].staging_disk_type #=> String, one of "AUTO", "GP2", "GP3", "IO1", "SC1", "ST1", "STANDARD"
1869
+ # resp.replicated_disks[0].throughput #=> Integer
1870
+ # resp.replication_server_instance_type #=> String
1871
+ # resp.replication_servers_security_groups_i_ds #=> Array
1872
+ # resp.replication_servers_security_groups_i_ds[0] #=> String
1873
+ # resp.source_server_id #=> String
1874
+ # resp.staging_area_subnet_id #=> String
1875
+ # resp.staging_area_tags #=> Hash
1876
+ # resp.staging_area_tags["TagKey"] #=> String
1877
+ # resp.use_dedicated_replication_server #=> Boolean
1878
+ #
1879
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/UpdateReplicationConfiguration AWS API Documentation
1880
+ #
1881
+ # @overload update_replication_configuration(params = {})
1882
+ # @param [Hash] params ({})
1883
+ def update_replication_configuration(params = {}, options = {})
1884
+ req = build_request(:update_replication_configuration, params)
1885
+ req.send_request(options)
1886
+ end
1887
+
1888
+ # Updates a ReplicationConfigurationTemplate by ID.
1889
+ #
1890
+ # @option params [String] :arn
1891
+ # The Replication Configuration Template ARN.
1892
+ #
1893
+ # @option params [Boolean] :associate_default_security_group
1894
+ # Whether to associate the default Elastic Disaster Recovery Security
1895
+ # group with the Replication Configuration Template.
1896
+ #
1897
+ # @option params [Integer] :bandwidth_throttling
1898
+ # Configure bandwidth throttling for the outbound data transfer rate of
1899
+ # the Source Server in Mbps.
1900
+ #
1901
+ # @option params [Boolean] :create_public_ip
1902
+ # Whether to create a Public IP for the Recovery Instance by default.
1903
+ #
1904
+ # @option params [String] :data_plane_routing
1905
+ # The data plane routing mechanism that will be used for replication.
1906
+ #
1907
+ # @option params [String] :default_large_staging_disk_type
1908
+ # The Staging Disk EBS volume type to be used during replication.
1909
+ #
1910
+ # @option params [String] :ebs_encryption
1911
+ # The type of EBS encryption to be used during replication.
1912
+ #
1913
+ # @option params [String] :ebs_encryption_key_arn
1914
+ # The ARN of the EBS encryption key to be used during replication.
1915
+ #
1916
+ # @option params [Array<Types::PITPolicyRule>] :pit_policy
1917
+ # The Point in time (PIT) policy to manage snapshots taken during
1918
+ # replication.
1919
+ #
1920
+ # @option params [required, String] :replication_configuration_template_id
1921
+ # The Replication Configuration Template ID.
1922
+ #
1923
+ # @option params [String] :replication_server_instance_type
1924
+ # The instance type to be used for the replication server.
1925
+ #
1926
+ # @option params [Array<String>] :replication_servers_security_groups_i_ds
1927
+ # The security group IDs that will be used by the replication server.
1928
+ #
1929
+ # @option params [String] :staging_area_subnet_id
1930
+ # The subnet to be used by the replication staging area.
1931
+ #
1932
+ # @option params [Hash<String,String>] :staging_area_tags
1933
+ # A set of tags to be associated with all resources created in the
1934
+ # replication staging area: EC2 replication server, EBS volumes, EBS
1935
+ # snapshots, etc.
1936
+ #
1937
+ # @option params [Boolean] :use_dedicated_replication_server
1938
+ # Whether to use a dedicated Replication Server in the replication
1939
+ # staging area.
1940
+ #
1941
+ # @return [Types::ReplicationConfigurationTemplate] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1942
+ #
1943
+ # * {Types::ReplicationConfigurationTemplate#arn #arn} => String
1944
+ # * {Types::ReplicationConfigurationTemplate#associate_default_security_group #associate_default_security_group} => Boolean
1945
+ # * {Types::ReplicationConfigurationTemplate#bandwidth_throttling #bandwidth_throttling} => Integer
1946
+ # * {Types::ReplicationConfigurationTemplate#create_public_ip #create_public_ip} => Boolean
1947
+ # * {Types::ReplicationConfigurationTemplate#data_plane_routing #data_plane_routing} => String
1948
+ # * {Types::ReplicationConfigurationTemplate#default_large_staging_disk_type #default_large_staging_disk_type} => String
1949
+ # * {Types::ReplicationConfigurationTemplate#ebs_encryption #ebs_encryption} => String
1950
+ # * {Types::ReplicationConfigurationTemplate#ebs_encryption_key_arn #ebs_encryption_key_arn} => String
1951
+ # * {Types::ReplicationConfigurationTemplate#pit_policy #pit_policy} => Array&lt;Types::PITPolicyRule&gt;
1952
+ # * {Types::ReplicationConfigurationTemplate#replication_configuration_template_id #replication_configuration_template_id} => String
1953
+ # * {Types::ReplicationConfigurationTemplate#replication_server_instance_type #replication_server_instance_type} => String
1954
+ # * {Types::ReplicationConfigurationTemplate#replication_servers_security_groups_i_ds #replication_servers_security_groups_i_ds} => Array&lt;String&gt;
1955
+ # * {Types::ReplicationConfigurationTemplate#staging_area_subnet_id #staging_area_subnet_id} => String
1956
+ # * {Types::ReplicationConfigurationTemplate#staging_area_tags #staging_area_tags} => Hash&lt;String,String&gt;
1957
+ # * {Types::ReplicationConfigurationTemplate#tags #tags} => Hash&lt;String,String&gt;
1958
+ # * {Types::ReplicationConfigurationTemplate#use_dedicated_replication_server #use_dedicated_replication_server} => Boolean
1959
+ #
1960
+ # @example Request syntax with placeholder values
1961
+ #
1962
+ # resp = client.update_replication_configuration_template({
1963
+ # arn: "ARN",
1964
+ # associate_default_security_group: false,
1965
+ # bandwidth_throttling: 1,
1966
+ # create_public_ip: false,
1967
+ # data_plane_routing: "PRIVATE_IP", # accepts PRIVATE_IP, PUBLIC_IP
1968
+ # default_large_staging_disk_type: "GP2", # accepts GP2, GP3, ST1
1969
+ # ebs_encryption: "DEFAULT", # accepts DEFAULT, CUSTOM
1970
+ # ebs_encryption_key_arn: "ARN",
1971
+ # pit_policy: [
1972
+ # {
1973
+ # enabled: false,
1974
+ # interval: 1, # required
1975
+ # retention_duration: 1, # required
1976
+ # rule_id: 1,
1977
+ # units: "MINUTE", # required, accepts MINUTE, HOUR, DAY
1978
+ # },
1979
+ # ],
1980
+ # replication_configuration_template_id: "ReplicationConfigurationTemplateID", # required
1981
+ # replication_server_instance_type: "EC2InstanceType",
1982
+ # replication_servers_security_groups_i_ds: ["SecurityGroupID"],
1983
+ # staging_area_subnet_id: "SubnetID",
1984
+ # staging_area_tags: {
1985
+ # "TagKey" => "TagValue",
1986
+ # },
1987
+ # use_dedicated_replication_server: false,
1988
+ # })
1989
+ #
1990
+ # @example Response structure
1991
+ #
1992
+ # resp.arn #=> String
1993
+ # resp.associate_default_security_group #=> Boolean
1994
+ # resp.bandwidth_throttling #=> Integer
1995
+ # resp.create_public_ip #=> Boolean
1996
+ # resp.data_plane_routing #=> String, one of "PRIVATE_IP", "PUBLIC_IP"
1997
+ # resp.default_large_staging_disk_type #=> String, one of "GP2", "GP3", "ST1"
1998
+ # resp.ebs_encryption #=> String, one of "DEFAULT", "CUSTOM"
1999
+ # resp.ebs_encryption_key_arn #=> String
2000
+ # resp.pit_policy #=> Array
2001
+ # resp.pit_policy[0].enabled #=> Boolean
2002
+ # resp.pit_policy[0].interval #=> Integer
2003
+ # resp.pit_policy[0].retention_duration #=> Integer
2004
+ # resp.pit_policy[0].rule_id #=> Integer
2005
+ # resp.pit_policy[0].units #=> String, one of "MINUTE", "HOUR", "DAY"
2006
+ # resp.replication_configuration_template_id #=> String
2007
+ # resp.replication_server_instance_type #=> String
2008
+ # resp.replication_servers_security_groups_i_ds #=> Array
2009
+ # resp.replication_servers_security_groups_i_ds[0] #=> String
2010
+ # resp.staging_area_subnet_id #=> String
2011
+ # resp.staging_area_tags #=> Hash
2012
+ # resp.staging_area_tags["TagKey"] #=> String
2013
+ # resp.tags #=> Hash
2014
+ # resp.tags["TagKey"] #=> String
2015
+ # resp.use_dedicated_replication_server #=> Boolean
2016
+ #
2017
+ # @see http://docs.aws.amazon.com/goto/WebAPI/drs-2020-02-26/UpdateReplicationConfigurationTemplate AWS API Documentation
2018
+ #
2019
+ # @overload update_replication_configuration_template(params = {})
2020
+ # @param [Hash] params ({})
2021
+ def update_replication_configuration_template(params = {}, options = {})
2022
+ req = build_request(:update_replication_configuration_template, params)
2023
+ req.send_request(options)
2024
+ end
2025
+
2026
+ # @!endgroup
2027
+
2028
+ # @param params ({})
2029
+ # @api private
2030
+ def build_request(operation_name, params = {})
2031
+ handlers = @handlers.for(operation_name)
2032
+ context = Seahorse::Client::RequestContext.new(
2033
+ operation_name: operation_name,
2034
+ operation: config.api.operation(operation_name),
2035
+ client: self,
2036
+ params: params,
2037
+ config: config)
2038
+ context[:gem_name] = 'aws-sdk-drs'
2039
+ context[:gem_version] = '1.0.0'
2040
+ Seahorse::Client::Request.new(handlers, context)
2041
+ end
2042
+
2043
+ # @api private
2044
+ # @deprecated
2045
+ def waiter_names
2046
+ []
2047
+ end
2048
+
2049
+ class << self
2050
+
2051
+ # @api private
2052
+ attr_reader :identifier
2053
+
2054
+ # @api private
2055
+ def errors_module
2056
+ Errors
2057
+ end
2058
+
2059
+ end
2060
+ end
2061
+ end