aws-sdk-ebs 1.2.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d32428242f78c2ae2500d154e98e4dfd50ffc525ea027d54822d9d563acd7193
4
- data.tar.gz: 02aeb664ad7b72367c2f13253af84be642b4d711efd2431795cc0ff1bf6863fb
3
+ metadata.gz: d227067495ac6ab702b5fcec6c360cc21512b0e2be0ff143c61ca9abb44e8681
4
+ data.tar.gz: bcb93f41e404bb1bbb31a63561fcac6d98ba35729c7c711089067a1aeb27c65d
5
5
  SHA512:
6
- metadata.gz: 7cbad0d3c1f82207abdf0e64fab316cf43f63fa599bf485711baf939ec6810e4ce47264377e147a4c2b6f0f7027f4474685d3a0eab76a25b6c0f7094b73dd9ad
7
- data.tar.gz: 480cf3746c02d4582fffb6b43e41a0400b73604c9160406f5a0dc9eccb7f2c9c3cb06ddd374cdd09daa50b5be69be7d1657927680340ecbec44aea217d67d49a
6
+ metadata.gz: 23d713b9c2c3b5f6b3f77e910d7f7e5c49d804deabe9f60f7159b3b13381d310f4c5fbf3e4fe49d9d8f9157f4f277a703ec654157b2fee31e4964e0e12de01f2
7
+ data.tar.gz: 2e0c5f930b19b956a15a3f4881f98c49d100efffcaa5a36191a86f7f2177fc18076d40a04068a12fa8cd1ce75d3fd30f1da465bc8d6188279a7dc18fc9d0d3f2
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -25,7 +27,7 @@ require_relative 'aws-sdk-ebs/customizations'
25
27
  # structure.
26
28
  #
27
29
  # ebs = Aws::EBS::Client.new
28
- # resp = ebs.get_snapshot_block(params)
30
+ # resp = ebs.complete_snapshot(params)
29
31
  #
30
32
  # See {Client} for more information.
31
33
  #
@@ -45,6 +47,6 @@ require_relative 'aws-sdk-ebs/customizations'
45
47
  # @service
46
48
  module Aws::EBS
47
49
 
48
- GEM_VERSION = '1.2.0'
50
+ GEM_VERSION = '1.7.0'
49
51
 
50
52
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -24,6 +26,7 @@ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
26
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
27
30
  require 'aws-sdk-core/plugins/signature_v4.rb'
28
31
  require 'aws-sdk-core/plugins/protocols/rest_json.rb'
29
32
 
@@ -69,6 +72,7 @@ module Aws::EBS
69
72
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
70
73
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
71
74
  add_plugin(Aws::Plugins::TransferEncoding)
75
+ add_plugin(Aws::Plugins::HttpChecksum)
72
76
  add_plugin(Aws::Plugins::SignatureV4)
73
77
  add_plugin(Aws::Plugins::Protocols::RestJson)
74
78
 
@@ -105,7 +109,7 @@ module Aws::EBS
105
109
  # @option options [required, String] :region
106
110
  # The AWS region to connect to. The configured `:region` is
107
111
  # used to determine the service `:endpoint`. When not passed,
108
- # a default `:region` is search for in the following locations:
112
+ # a default `:region` is searched for in the following locations:
109
113
  #
110
114
  # * `Aws.config[:region]`
111
115
  # * `ENV['AWS_REGION']`
@@ -161,7 +165,7 @@ module Aws::EBS
161
165
  # @option options [String] :endpoint
162
166
  # The client endpoint is normally constructed from the `:region`
163
167
  # option. You should only configure an `:endpoint` when connecting
164
- # to test endpoints. This should be avalid HTTP(S) URI.
168
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
165
169
  #
166
170
  # @option options [Integer] :endpoint_cache_max_entries (1000)
167
171
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -176,7 +180,7 @@ module Aws::EBS
176
180
  # requests fetching endpoints information. Defaults to 60 sec.
177
181
  #
178
182
  # @option options [Boolean] :endpoint_discovery (false)
179
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
183
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
180
184
  #
181
185
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
182
186
  # The log formatter.
@@ -269,8 +273,7 @@ module Aws::EBS
269
273
  #
270
274
  # @option options [Integer] :http_read_timeout (60) The default
271
275
  # number of seconds to wait for response data. This value can
272
- # safely be set
273
- # per-request on the session yielded by {#session_for}.
276
+ # safely be set per-request on the session.
274
277
  #
275
278
  # @option options [Float] :http_idle_timeout (5) The number of
276
279
  # seconds a connection is allowed to sit idle before it is
@@ -282,7 +285,7 @@ module Aws::EBS
282
285
  # request body. This option has no effect unless the request has
283
286
  # "Expect" header set to "100-continue". Defaults to `nil` which
284
287
  # disables this behaviour. This value can safely be set per
285
- # request on the session yielded by {#session_for}.
288
+ # request on the session.
286
289
  #
287
290
  # @option options [Boolean] :http_wire_trace (false) When `true`,
288
291
  # HTTP debug output will be sent to the `:logger`.
@@ -309,6 +312,62 @@ module Aws::EBS
309
312
 
310
313
  # @!group API Operations
311
314
 
315
+ # Seals and completes the snapshot after all of the required blocks of
316
+ # data have been written to it. Completing the snapshot changes the
317
+ # status to `completed`. You cannot write new blocks to a snapshot after
318
+ # it has been completed.
319
+ #
320
+ # @option params [required, String] :snapshot_id
321
+ # The ID of the snapshot.
322
+ #
323
+ # @option params [required, Integer] :changed_blocks_count
324
+ # The number of blocks that were written to the snapshot.
325
+ #
326
+ # @option params [String] :checksum
327
+ # An aggregated Base-64 SHA256 checksum based on the checksums of each
328
+ # written block.
329
+ #
330
+ # To generate the aggregated checksum using the linear aggregation
331
+ # method, arrange the checksums for each written block in ascending
332
+ # order of their block index, concatenate them to form a single string,
333
+ # and then generate the checksum on the entire string using the SHA256
334
+ # algorithm.
335
+ #
336
+ # @option params [String] :checksum_algorithm
337
+ # The algorithm used to generate the checksum. Currently, the only
338
+ # supported algorithm is `SHA256`.
339
+ #
340
+ # @option params [String] :checksum_aggregation_method
341
+ # The aggregation method used to generate the checksum. Currently, the
342
+ # only supported aggregation method is `LINEAR`.
343
+ #
344
+ # @return [Types::CompleteSnapshotResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
345
+ #
346
+ # * {Types::CompleteSnapshotResponse#status #status} => String
347
+ #
348
+ # @example Request syntax with placeholder values
349
+ #
350
+ # resp = client.complete_snapshot({
351
+ # snapshot_id: "SnapshotId", # required
352
+ # changed_blocks_count: 1, # required
353
+ # checksum: "Checksum",
354
+ # checksum_algorithm: "SHA256", # accepts SHA256
355
+ # checksum_aggregation_method: "LINEAR", # accepts LINEAR
356
+ # })
357
+ #
358
+ # @example Response structure
359
+ #
360
+ # resp.status #=> String, one of "completed", "pending", "error"
361
+ #
362
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/CompleteSnapshot AWS API Documentation
363
+ #
364
+ # @overload complete_snapshot(params = {})
365
+ # @param [Hash] params ({})
366
+ def complete_snapshot(params = {}, options = {})
367
+ req = build_request(:complete_snapshot, params)
368
+ req.send_request(options)
369
+ end
370
+
312
371
  # Returns the data in a block in an Amazon Elastic Block Store snapshot.
313
372
  #
314
373
  # @option params [required, String] :snapshot_id
@@ -393,6 +452,8 @@ module Aws::EBS
393
452
  # * {Types::ListChangedBlocksResponse#block_size #block_size} => Integer
394
453
  # * {Types::ListChangedBlocksResponse#next_token #next_token} => String
395
454
  #
455
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
456
+ #
396
457
  # @example Request syntax with placeholder values
397
458
  #
398
459
  # resp = client.list_changed_blocks({
@@ -449,6 +510,8 @@ module Aws::EBS
449
510
  # * {Types::ListSnapshotBlocksResponse#block_size #block_size} => Integer
450
511
  # * {Types::ListSnapshotBlocksResponse#next_token #next_token} => String
451
512
  #
513
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
514
+ #
452
515
  # @example Request syntax with placeholder values
453
516
  #
454
517
  # resp = client.list_snapshot_blocks({
@@ -477,6 +540,244 @@ module Aws::EBS
477
540
  req.send_request(options)
478
541
  end
479
542
 
543
+ # Writes a block of data to a block in the snapshot. If the specified
544
+ # block contains data, the existing data is overwritten. The target
545
+ # snapshot must be in the `pending` state.
546
+ #
547
+ # Data written to a snapshot must be aligned with 512-byte sectors.
548
+ #
549
+ # @option params [required, String] :snapshot_id
550
+ # The ID of the snapshot.
551
+ #
552
+ # @option params [required, Integer] :block_index
553
+ # The block index of the block in which to write the data. A block index
554
+ # is the offset position of a block within a snapshot, and it is used to
555
+ # identify the block. To identify the logical offset of the data in the
556
+ # logical volume, multiply the block index with the block size (Block
557
+ # index * 512 bytes).
558
+ #
559
+ # @option params [required, String, IO] :block_data
560
+ # The data to write to the block.
561
+ #
562
+ # The block data is not signed as part of the Signature Version 4
563
+ # signing process. As a result, you must generate and provide a
564
+ # Base64-encoded SHA256 checksum for the block data using the
565
+ # **x-amz-Checksum** header. Also, you must specify the checksum
566
+ # algorithm using the **x-amz-Checksum-Algorithm** header. The checksum
567
+ # that you provide is part of the Signature Version 4 signing process.
568
+ # It is validated against a checksum generated by Amazon EBS to ensure
569
+ # the validity and authenticity of the data. If the checksums do not
570
+ # correspond, the request fails. For more information, see [ Using
571
+ # checksums with the EBS direct APIs][1] in the *Amazon Elastic Compute
572
+ # Cloud User Guide*.
573
+ #
574
+ #
575
+ #
576
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-checksums
577
+ #
578
+ # @option params [required, Integer] :data_length
579
+ # The size of the data to write to the block, in bytes. Currently, the
580
+ # only supported size is `524288`.
581
+ #
582
+ # Valid values: `524288`
583
+ #
584
+ # @option params [Integer] :progress
585
+ # The progress of the write process, as a percentage.
586
+ #
587
+ # @option params [required, String] :checksum
588
+ # A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums
589
+ # are supported.
590
+ #
591
+ # @option params [required, String] :checksum_algorithm
592
+ # The algorithm used to generate the checksum. Currently, the only
593
+ # supported algorithm is `SHA256`.
594
+ #
595
+ # @return [Types::PutSnapshotBlockResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
596
+ #
597
+ # * {Types::PutSnapshotBlockResponse#checksum #checksum} => String
598
+ # * {Types::PutSnapshotBlockResponse#checksum_algorithm #checksum_algorithm} => String
599
+ #
600
+ # @example Request syntax with placeholder values
601
+ #
602
+ # resp = client.put_snapshot_block({
603
+ # snapshot_id: "SnapshotId", # required
604
+ # block_index: 1, # required
605
+ # block_data: "data", # required
606
+ # data_length: 1, # required
607
+ # progress: 1,
608
+ # checksum: "Checksum", # required
609
+ # checksum_algorithm: "SHA256", # required, accepts SHA256
610
+ # })
611
+ #
612
+ # @example Response structure
613
+ #
614
+ # resp.checksum #=> String
615
+ # resp.checksum_algorithm #=> String, one of "SHA256"
616
+ #
617
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/PutSnapshotBlock AWS API Documentation
618
+ #
619
+ # @overload put_snapshot_block(params = {})
620
+ # @param [Hash] params ({})
621
+ def put_snapshot_block(params = {}, options = {})
622
+ req = build_request(:put_snapshot_block, params)
623
+ req.send_request(options)
624
+ end
625
+
626
+ # Creates a new Amazon EBS snapshot. The new snapshot enters the
627
+ # `pending` state after the request completes.
628
+ #
629
+ # After creating the snapshot, use [ PutSnapshotBlock][1] to write
630
+ # blocks of data to the snapshot.
631
+ #
632
+ #
633
+ #
634
+ # [1]: https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html
635
+ #
636
+ # @option params [required, Integer] :volume_size
637
+ # The size of the volume, in GiB. The maximum size is `16384` GiB (16
638
+ # TiB).
639
+ #
640
+ # @option params [String] :parent_snapshot_id
641
+ # The ID of the parent snapshot. If there is no parent snapshot, or if
642
+ # you are creating the first snapshot for an on-premises volume, omit
643
+ # this parameter.
644
+ #
645
+ # If your account is enabled for encryption by default, you cannot use
646
+ # an unencrypted snapshot as a parent snapshot. You must first create an
647
+ # encrypted copy of the parent snapshot using [CopySnapshot][1].
648
+ #
649
+ #
650
+ #
651
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopySnapshot.html
652
+ #
653
+ # @option params [Array<Types::Tag>] :tags
654
+ # The tags to apply to the snapshot.
655
+ #
656
+ # @option params [String] :description
657
+ # A description for the snapshot.
658
+ #
659
+ # @option params [String] :client_token
660
+ # A unique, case-sensitive identifier that you provide to ensure the
661
+ # idempotency of the request. Idempotency ensures that an API request
662
+ # completes only once. With an idempotent request, if the original
663
+ # request completes successfully. The subsequent retries with the same
664
+ # client token return the result from the original successful request
665
+ # and they have no additional effect.
666
+ #
667
+ # If you do not specify a client token, one is automatically generated
668
+ # by the AWS SDK.
669
+ #
670
+ # For more information, see [ Idempotency for StartSnapshot API][1] in
671
+ # the *Amazon Elastic Compute Cloud User Guide*.
672
+ #
673
+ # **A suitable default value is auto-generated.** You should normally
674
+ # not need to pass this option.**
675
+ #
676
+ #
677
+ #
678
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-direct-api-idempotency.html
679
+ #
680
+ # @option params [Boolean] :encrypted
681
+ # Indicates whether to encrypt the snapshot. To create an encrypted
682
+ # snapshot, specify `true`. To create an unencrypted snapshot, omit this
683
+ # parameter.
684
+ #
685
+ # If you specify a value for **ParentSnapshotId**, omit this parameter.
686
+ #
687
+ # If you specify `true`, the snapshot is encrypted using the CMK
688
+ # specified using the **KmsKeyArn** parameter. If no value is specified
689
+ # for **KmsKeyArn**, the default CMK for your account is used. If no
690
+ # default CMK has been specified for your account, the AWS managed CMK
691
+ # is used. To set a default CMK for your account, use [
692
+ # ModifyEbsDefaultKmsKeyId][1].
693
+ #
694
+ # If your account is enabled for encryption by default, you cannot set
695
+ # this parameter to `false`. In this case, you can omit this parameter.
696
+ #
697
+ # For more information, see [ Using encryption][2] in the *Amazon
698
+ # Elastic Compute Cloud User Guide*.
699
+ #
700
+ #
701
+ #
702
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyEbsDefaultKmsKeyId.html
703
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-encryption
704
+ #
705
+ # @option params [String] :kms_key_arn
706
+ # The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS
707
+ # KMS) customer master key (CMK) to be used to encrypt the snapshot. If
708
+ # you do not specify a CMK, the default AWS managed CMK is used.
709
+ #
710
+ # If you specify a **ParentSnapshotId**, omit this parameter; the
711
+ # snapshot will be encrypted using the same CMK that was used to encrypt
712
+ # the parent snapshot.
713
+ #
714
+ # If **Encrypted** is set to `true`, you must specify a CMK ARN.
715
+ #
716
+ # @option params [Integer] :timeout
717
+ # The amount of time (in minutes) after which the snapshot is
718
+ # automatically cancelled if:
719
+ #
720
+ # * No blocks are written to the snapshot.
721
+ #
722
+ # * The snapshot is not completed after writing the last block of data.
723
+ #
724
+ # If no value is specified, the timeout defaults to `60` minutes.
725
+ #
726
+ # @return [Types::StartSnapshotResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
727
+ #
728
+ # * {Types::StartSnapshotResponse#description #description} => String
729
+ # * {Types::StartSnapshotResponse#snapshot_id #snapshot_id} => String
730
+ # * {Types::StartSnapshotResponse#owner_id #owner_id} => String
731
+ # * {Types::StartSnapshotResponse#status #status} => String
732
+ # * {Types::StartSnapshotResponse#start_time #start_time} => Time
733
+ # * {Types::StartSnapshotResponse#volume_size #volume_size} => Integer
734
+ # * {Types::StartSnapshotResponse#block_size #block_size} => Integer
735
+ # * {Types::StartSnapshotResponse#tags #tags} => Array&lt;Types::Tag&gt;
736
+ # * {Types::StartSnapshotResponse#parent_snapshot_id #parent_snapshot_id} => String
737
+ # * {Types::StartSnapshotResponse#kms_key_arn #kms_key_arn} => String
738
+ #
739
+ # @example Request syntax with placeholder values
740
+ #
741
+ # resp = client.start_snapshot({
742
+ # volume_size: 1, # required
743
+ # parent_snapshot_id: "SnapshotId",
744
+ # tags: [
745
+ # {
746
+ # key: "TagKey",
747
+ # value: "TagValue",
748
+ # },
749
+ # ],
750
+ # description: "Description",
751
+ # client_token: "IdempotencyToken",
752
+ # encrypted: false,
753
+ # kms_key_arn: "KmsKeyArn",
754
+ # timeout: 1,
755
+ # })
756
+ #
757
+ # @example Response structure
758
+ #
759
+ # resp.description #=> String
760
+ # resp.snapshot_id #=> String
761
+ # resp.owner_id #=> String
762
+ # resp.status #=> String, one of "completed", "pending", "error"
763
+ # resp.start_time #=> Time
764
+ # resp.volume_size #=> Integer
765
+ # resp.block_size #=> Integer
766
+ # resp.tags #=> Array
767
+ # resp.tags[0].key #=> String
768
+ # resp.tags[0].value #=> String
769
+ # resp.parent_snapshot_id #=> String
770
+ # resp.kms_key_arn #=> String
771
+ #
772
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/StartSnapshot AWS API Documentation
773
+ #
774
+ # @overload start_snapshot(params = {})
775
+ # @param [Hash] params ({})
776
+ def start_snapshot(params = {}, options = {})
777
+ req = build_request(:start_snapshot, params)
778
+ req.send_request(options)
779
+ end
780
+
480
781
  # @!endgroup
481
782
 
482
783
  # @param params ({})
@@ -490,7 +791,7 @@ module Aws::EBS
490
791
  params: params,
491
792
  config: config)
492
793
  context[:gem_name] = 'aws-sdk-ebs'
493
- context[:gem_version] = '1.2.0'
794
+ context[:gem_version] = '1.7.0'
494
795
  Seahorse::Client::Request.new(handlers, context)
495
796
  end
496
797
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -11,33 +13,67 @@ module Aws::EBS
11
13
 
12
14
  include Seahorse::Model
13
15
 
16
+ AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException')
17
+ AccessDeniedExceptionReason = Shapes::StringShape.new(name: 'AccessDeniedExceptionReason')
14
18
  Block = Shapes::StructureShape.new(name: 'Block')
15
19
  BlockData = Shapes::BlobShape.new(name: 'BlockData', streaming: true)
16
20
  BlockIndex = Shapes::IntegerShape.new(name: 'BlockIndex')
17
21
  BlockSize = Shapes::IntegerShape.new(name: 'BlockSize')
18
22
  BlockToken = Shapes::StringShape.new(name: 'BlockToken')
19
23
  Blocks = Shapes::ListShape.new(name: 'Blocks')
24
+ Boolean = Shapes::BooleanShape.new(name: 'Boolean')
20
25
  ChangedBlock = Shapes::StructureShape.new(name: 'ChangedBlock')
21
26
  ChangedBlocks = Shapes::ListShape.new(name: 'ChangedBlocks')
27
+ ChangedBlocksCount = Shapes::IntegerShape.new(name: 'ChangedBlocksCount')
22
28
  Checksum = Shapes::StringShape.new(name: 'Checksum')
29
+ ChecksumAggregationMethod = Shapes::StringShape.new(name: 'ChecksumAggregationMethod')
23
30
  ChecksumAlgorithm = Shapes::StringShape.new(name: 'ChecksumAlgorithm')
31
+ CompleteSnapshotRequest = Shapes::StructureShape.new(name: 'CompleteSnapshotRequest')
32
+ CompleteSnapshotResponse = Shapes::StructureShape.new(name: 'CompleteSnapshotResponse')
33
+ ConcurrentLimitExceededException = Shapes::StructureShape.new(name: 'ConcurrentLimitExceededException')
34
+ ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
24
35
  DataLength = Shapes::IntegerShape.new(name: 'DataLength')
36
+ Description = Shapes::StringShape.new(name: 'Description')
25
37
  ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
26
38
  GetSnapshotBlockRequest = Shapes::StructureShape.new(name: 'GetSnapshotBlockRequest')
27
39
  GetSnapshotBlockResponse = Shapes::StructureShape.new(name: 'GetSnapshotBlockResponse')
40
+ IdempotencyToken = Shapes::StringShape.new(name: 'IdempotencyToken')
41
+ InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
42
+ KmsKeyArn = Shapes::StringShape.new(name: 'KmsKeyArn')
28
43
  ListChangedBlocksRequest = Shapes::StructureShape.new(name: 'ListChangedBlocksRequest')
29
44
  ListChangedBlocksResponse = Shapes::StructureShape.new(name: 'ListChangedBlocksResponse')
30
45
  ListSnapshotBlocksRequest = Shapes::StructureShape.new(name: 'ListSnapshotBlocksRequest')
31
46
  ListSnapshotBlocksResponse = Shapes::StructureShape.new(name: 'ListSnapshotBlocksResponse')
32
47
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
48
+ OwnerId = Shapes::StringShape.new(name: 'OwnerId')
33
49
  PageToken = Shapes::StringShape.new(name: 'PageToken')
50
+ Progress = Shapes::IntegerShape.new(name: 'Progress')
51
+ PutSnapshotBlockRequest = Shapes::StructureShape.new(name: 'PutSnapshotBlockRequest')
52
+ PutSnapshotBlockResponse = Shapes::StructureShape.new(name: 'PutSnapshotBlockResponse')
53
+ RequestThrottledException = Shapes::StructureShape.new(name: 'RequestThrottledException')
54
+ RequestThrottledExceptionReason = Shapes::StringShape.new(name: 'RequestThrottledExceptionReason')
34
55
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
56
+ ResourceNotFoundExceptionReason = Shapes::StringShape.new(name: 'ResourceNotFoundExceptionReason')
57
+ ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
58
+ ServiceQuotaExceededExceptionReason = Shapes::StringShape.new(name: 'ServiceQuotaExceededExceptionReason')
35
59
  SnapshotId = Shapes::StringShape.new(name: 'SnapshotId')
60
+ StartSnapshotRequest = Shapes::StructureShape.new(name: 'StartSnapshotRequest')
61
+ StartSnapshotResponse = Shapes::StructureShape.new(name: 'StartSnapshotResponse')
62
+ Status = Shapes::StringShape.new(name: 'Status')
63
+ Tag = Shapes::StructureShape.new(name: 'Tag')
64
+ TagKey = Shapes::StringShape.new(name: 'TagKey')
65
+ TagValue = Shapes::StringShape.new(name: 'TagValue')
66
+ Tags = Shapes::ListShape.new(name: 'Tags')
36
67
  TimeStamp = Shapes::TimestampShape.new(name: 'TimeStamp')
68
+ Timeout = Shapes::IntegerShape.new(name: 'Timeout')
37
69
  ValidationException = Shapes::StructureShape.new(name: 'ValidationException')
38
70
  ValidationExceptionReason = Shapes::StringShape.new(name: 'ValidationExceptionReason')
39
71
  VolumeSize = Shapes::IntegerShape.new(name: 'VolumeSize')
40
72
 
73
+ AccessDeniedException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
74
+ AccessDeniedException.add_member(:reason, Shapes::ShapeRef.new(shape: AccessDeniedExceptionReason, required: true, location_name: "Reason"))
75
+ AccessDeniedException.struct_class = Types::AccessDeniedException
76
+
41
77
  Block.add_member(:block_index, Shapes::ShapeRef.new(shape: BlockIndex, location_name: "BlockIndex"))
42
78
  Block.add_member(:block_token, Shapes::ShapeRef.new(shape: BlockToken, location_name: "BlockToken"))
43
79
  Block.struct_class = Types::Block
@@ -51,6 +87,22 @@ module Aws::EBS
51
87
 
52
88
  ChangedBlocks.member = Shapes::ShapeRef.new(shape: ChangedBlock)
53
89
 
90
+ CompleteSnapshotRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location: "uri", location_name: "snapshotId"))
91
+ CompleteSnapshotRequest.add_member(:changed_blocks_count, Shapes::ShapeRef.new(shape: ChangedBlocksCount, required: true, location: "header", location_name: "x-amz-ChangedBlocksCount"))
92
+ CompleteSnapshotRequest.add_member(:checksum, Shapes::ShapeRef.new(shape: Checksum, location: "header", location_name: "x-amz-Checksum"))
93
+ CompleteSnapshotRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-Checksum-Algorithm"))
94
+ CompleteSnapshotRequest.add_member(:checksum_aggregation_method, Shapes::ShapeRef.new(shape: ChecksumAggregationMethod, location: "header", location_name: "x-amz-Checksum-Aggregation-Method"))
95
+ CompleteSnapshotRequest.struct_class = Types::CompleteSnapshotRequest
96
+
97
+ CompleteSnapshotResponse.add_member(:status, Shapes::ShapeRef.new(shape: Status, location_name: "Status"))
98
+ CompleteSnapshotResponse.struct_class = Types::CompleteSnapshotResponse
99
+
100
+ ConcurrentLimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
101
+ ConcurrentLimitExceededException.struct_class = Types::ConcurrentLimitExceededException
102
+
103
+ ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
104
+ ConflictException.struct_class = Types::ConflictException
105
+
54
106
  GetSnapshotBlockRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location: "uri", location_name: "snapshotId"))
55
107
  GetSnapshotBlockRequest.add_member(:block_index, Shapes::ShapeRef.new(shape: BlockIndex, required: true, location: "uri", location_name: "blockIndex"))
56
108
  GetSnapshotBlockRequest.add_member(:block_token, Shapes::ShapeRef.new(shape: BlockToken, required: true, location: "querystring", location_name: "blockToken"))
@@ -64,6 +116,9 @@ module Aws::EBS
64
116
  GetSnapshotBlockResponse[:payload] = :block_data
65
117
  GetSnapshotBlockResponse[:payload_member] = GetSnapshotBlockResponse.member(:block_data)
66
118
 
119
+ InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
120
+ InternalServerException.struct_class = Types::InternalServerException
121
+
67
122
  ListChangedBlocksRequest.add_member(:first_snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location: "querystring", location_name: "firstSnapshotId"))
68
123
  ListChangedBlocksRequest.add_member(:second_snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location: "uri", location_name: "secondSnapshotId"))
69
124
  ListChangedBlocksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PageToken, location: "querystring", location_name: "pageToken"))
@@ -91,9 +146,61 @@ module Aws::EBS
91
146
  ListSnapshotBlocksResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PageToken, location_name: "NextToken"))
92
147
  ListSnapshotBlocksResponse.struct_class = Types::ListSnapshotBlocksResponse
93
148
 
149
+ PutSnapshotBlockRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location: "uri", location_name: "snapshotId"))
150
+ PutSnapshotBlockRequest.add_member(:block_index, Shapes::ShapeRef.new(shape: BlockIndex, required: true, location: "uri", location_name: "blockIndex"))
151
+ PutSnapshotBlockRequest.add_member(:block_data, Shapes::ShapeRef.new(shape: BlockData, required: true, location_name: "BlockData"))
152
+ PutSnapshotBlockRequest.add_member(:data_length, Shapes::ShapeRef.new(shape: DataLength, required: true, location: "header", location_name: "x-amz-Data-Length"))
153
+ PutSnapshotBlockRequest.add_member(:progress, Shapes::ShapeRef.new(shape: Progress, location: "header", location_name: "x-amz-Progress"))
154
+ PutSnapshotBlockRequest.add_member(:checksum, Shapes::ShapeRef.new(shape: Checksum, required: true, location: "header", location_name: "x-amz-Checksum"))
155
+ PutSnapshotBlockRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, required: true, location: "header", location_name: "x-amz-Checksum-Algorithm"))
156
+ PutSnapshotBlockRequest.struct_class = Types::PutSnapshotBlockRequest
157
+ PutSnapshotBlockRequest[:payload] = :block_data
158
+ PutSnapshotBlockRequest[:payload_member] = PutSnapshotBlockRequest.member(:block_data)
159
+
160
+ PutSnapshotBlockResponse.add_member(:checksum, Shapes::ShapeRef.new(shape: Checksum, location: "header", location_name: "x-amz-Checksum"))
161
+ PutSnapshotBlockResponse.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-Checksum-Algorithm"))
162
+ PutSnapshotBlockResponse.struct_class = Types::PutSnapshotBlockResponse
163
+
164
+ RequestThrottledException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
165
+ RequestThrottledException.add_member(:reason, Shapes::ShapeRef.new(shape: RequestThrottledExceptionReason, location_name: "Reason"))
166
+ RequestThrottledException.struct_class = Types::RequestThrottledException
167
+
94
168
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
169
+ ResourceNotFoundException.add_member(:reason, Shapes::ShapeRef.new(shape: ResourceNotFoundExceptionReason, location_name: "Reason"))
95
170
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
96
171
 
172
+ ServiceQuotaExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
173
+ ServiceQuotaExceededException.add_member(:reason, Shapes::ShapeRef.new(shape: ServiceQuotaExceededExceptionReason, location_name: "Reason"))
174
+ ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
175
+
176
+ StartSnapshotRequest.add_member(:volume_size, Shapes::ShapeRef.new(shape: VolumeSize, required: true, location_name: "VolumeSize"))
177
+ StartSnapshotRequest.add_member(:parent_snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "ParentSnapshotId"))
178
+ StartSnapshotRequest.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
179
+ StartSnapshotRequest.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
180
+ StartSnapshotRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: IdempotencyToken, location_name: "ClientToken", metadata: {"idempotencyToken"=>true}))
181
+ StartSnapshotRequest.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "Encrypted"))
182
+ StartSnapshotRequest.add_member(:kms_key_arn, Shapes::ShapeRef.new(shape: KmsKeyArn, location_name: "KmsKeyArn"))
183
+ StartSnapshotRequest.add_member(:timeout, Shapes::ShapeRef.new(shape: Timeout, location_name: "Timeout"))
184
+ StartSnapshotRequest.struct_class = Types::StartSnapshotRequest
185
+
186
+ StartSnapshotResponse.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
187
+ StartSnapshotResponse.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "SnapshotId"))
188
+ StartSnapshotResponse.add_member(:owner_id, Shapes::ShapeRef.new(shape: OwnerId, location_name: "OwnerId"))
189
+ StartSnapshotResponse.add_member(:status, Shapes::ShapeRef.new(shape: Status, location_name: "Status"))
190
+ StartSnapshotResponse.add_member(:start_time, Shapes::ShapeRef.new(shape: TimeStamp, location_name: "StartTime"))
191
+ StartSnapshotResponse.add_member(:volume_size, Shapes::ShapeRef.new(shape: VolumeSize, location_name: "VolumeSize"))
192
+ StartSnapshotResponse.add_member(:block_size, Shapes::ShapeRef.new(shape: BlockSize, location_name: "BlockSize"))
193
+ StartSnapshotResponse.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
194
+ StartSnapshotResponse.add_member(:parent_snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location_name: "ParentSnapshotId"))
195
+ StartSnapshotResponse.add_member(:kms_key_arn, Shapes::ShapeRef.new(shape: KmsKeyArn, location_name: "KmsKeyArn"))
196
+ StartSnapshotResponse.struct_class = Types::StartSnapshotResponse
197
+
198
+ Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, location_name: "Key"))
199
+ Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, location_name: "Value"))
200
+ Tag.struct_class = Types::Tag
201
+
202
+ Tags.member = Shapes::ShapeRef.new(shape: Tag)
203
+
97
204
  ValidationException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
98
205
  ValidationException.add_member(:reason, Shapes::ShapeRef.new(shape: ValidationExceptionReason, location_name: "Reason"))
99
206
  ValidationException.struct_class = Types::ValidationException
@@ -116,14 +223,32 @@ module Aws::EBS
116
223
  "uid" => "ebs-2019-11-02",
117
224
  }
118
225
 
226
+ api.add_operation(:complete_snapshot, Seahorse::Model::Operation.new.tap do |o|
227
+ o.name = "CompleteSnapshot"
228
+ o.http_method = "POST"
229
+ o.http_request_uri = "/snapshots/completion/{snapshotId}"
230
+ o.input = Shapes::ShapeRef.new(shape: CompleteSnapshotRequest)
231
+ o.output = Shapes::ShapeRef.new(shape: CompleteSnapshotResponse)
232
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
233
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
234
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
235
+ o.errors << Shapes::ShapeRef.new(shape: RequestThrottledException)
236
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
237
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
238
+ end)
239
+
119
240
  api.add_operation(:get_snapshot_block, Seahorse::Model::Operation.new.tap do |o|
120
241
  o.name = "GetSnapshotBlock"
121
242
  o.http_method = "GET"
122
243
  o.http_request_uri = "/snapshots/{snapshotId}/blocks/{blockIndex}"
123
244
  o.input = Shapes::ShapeRef.new(shape: GetSnapshotBlockRequest)
124
245
  o.output = Shapes::ShapeRef.new(shape: GetSnapshotBlockResponse)
246
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
125
247
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
126
248
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
249
+ o.errors << Shapes::ShapeRef.new(shape: RequestThrottledException)
250
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
251
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
127
252
  end)
128
253
 
129
254
  api.add_operation(:list_changed_blocks, Seahorse::Model::Operation.new.tap do |o|
@@ -132,8 +257,12 @@ module Aws::EBS
132
257
  o.http_request_uri = "/snapshots/{secondSnapshotId}/changedblocks"
133
258
  o.input = Shapes::ShapeRef.new(shape: ListChangedBlocksRequest)
134
259
  o.output = Shapes::ShapeRef.new(shape: ListChangedBlocksResponse)
260
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
135
261
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
136
262
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
263
+ o.errors << Shapes::ShapeRef.new(shape: RequestThrottledException)
264
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
265
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
137
266
  o[:pager] = Aws::Pager.new(
138
267
  limit_key: "max_results",
139
268
  tokens: {
@@ -148,8 +277,12 @@ module Aws::EBS
148
277
  o.http_request_uri = "/snapshots/{snapshotId}/blocks"
149
278
  o.input = Shapes::ShapeRef.new(shape: ListSnapshotBlocksRequest)
150
279
  o.output = Shapes::ShapeRef.new(shape: ListSnapshotBlocksResponse)
280
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
151
281
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
152
282
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
283
+ o.errors << Shapes::ShapeRef.new(shape: RequestThrottledException)
284
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
285
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
153
286
  o[:pager] = Aws::Pager.new(
154
287
  limit_key: "max_results",
155
288
  tokens: {
@@ -157,6 +290,37 @@ module Aws::EBS
157
290
  }
158
291
  )
159
292
  end)
293
+
294
+ api.add_operation(:put_snapshot_block, Seahorse::Model::Operation.new.tap do |o|
295
+ o.name = "PutSnapshotBlock"
296
+ o.http_method = "PUT"
297
+ o.http_request_uri = "/snapshots/{snapshotId}/blocks/{blockIndex}"
298
+ o['authtype'] = "v4-unsigned-body"
299
+ o.input = Shapes::ShapeRef.new(shape: PutSnapshotBlockRequest)
300
+ o.output = Shapes::ShapeRef.new(shape: PutSnapshotBlockResponse)
301
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
302
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
303
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
304
+ o.errors << Shapes::ShapeRef.new(shape: RequestThrottledException)
305
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
306
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
307
+ end)
308
+
309
+ api.add_operation(:start_snapshot, Seahorse::Model::Operation.new.tap do |o|
310
+ o.name = "StartSnapshot"
311
+ o.http_method = "POST"
312
+ o.http_request_uri = "/snapshots"
313
+ o.input = Shapes::ShapeRef.new(shape: StartSnapshotRequest)
314
+ o.output = Shapes::ShapeRef.new(shape: StartSnapshotResponse)
315
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
316
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
317
+ o.errors << Shapes::ShapeRef.new(shape: RequestThrottledException)
318
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
319
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
320
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
321
+ o.errors << Shapes::ShapeRef.new(shape: ConcurrentLimitExceededException)
322
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
323
+ end)
160
324
  end
161
325
 
162
326
  end