aws-sdk-drs 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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