aws-sdk-ebs 1.2.0 → 1.7.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.
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