aws-sdk-ebs 1.6.0 → 1.11.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: c21ce0cd3f92239328f36ff544e93b7878f7ca7e091b5c75cee69cef056bf16d
4
- data.tar.gz: f619293cffc92d8ca04734f1010e6478b31f6c49e69e7f6a56375053ebc42a08
3
+ metadata.gz: c8bcb009a20d9debeb0d25eadc4a171ac77fbdd07f1683332f2b07fbb8fe662f
4
+ data.tar.gz: 6c87e8514cfddc65b69cd3dcaf0c72a23ac26da0e57fd6078146fea4c78e034f
5
5
  SHA512:
6
- metadata.gz: e4e786c80fca3ec0adbc6a500415114ca1f30564d35edf22fe6d987db0b0ceb30d77e5c2f05ae5512fc790c8edd30e7401eb0bdf1bea853c3c0b86246a9d121d
7
- data.tar.gz: 9e085d7d050610b6cfd3dd1c1266d9e5d23a698b64db3ef24c2085de88efba7b4fd6798dcfb59bd14b45e4145afec7cb4536e472235afcbc35366f45daed388e
6
+ metadata.gz: a431728da692ac6e4e21e3d962b20796fca06624eb198e789721d1ebd705a96326f83e3922e3ec9d034d6ffb54f9eeeacea7992341040d655d5d6f11e7d0cead
7
+ data.tar.gz: 04e0e30ca77185cc0bbaa82cbad7b119f10460745b471a2aef4808f63827cd3cf161a6436d998b119174b8bc9838e47bff3a78790c1511b82d46c17590790762
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-core'
11
12
  require 'aws-sigv4'
12
13
 
@@ -27,7 +28,7 @@ require_relative 'aws-sdk-ebs/customizations'
27
28
  # structure.
28
29
  #
29
30
  # ebs = Aws::EBS::Client.new
30
- # resp = ebs.get_snapshot_block(params)
31
+ # resp = ebs.complete_snapshot(params)
31
32
  #
32
33
  # See {Client} for more information.
33
34
  #
@@ -44,9 +45,9 @@ require_relative 'aws-sdk-ebs/customizations'
44
45
  #
45
46
  # See {Errors} for more information.
46
47
  #
47
- # @service
48
+ # @!group service
48
49
  module Aws::EBS
49
50
 
50
- GEM_VERSION = '1.6.0'
51
+ GEM_VERSION = '1.11.0'
51
52
 
52
53
  end
@@ -85,13 +85,28 @@ module Aws::EBS
85
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
86
  # credentials.
87
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
+ #
88
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
103
  # from an EC2 IMDS on an EC2 instance.
90
104
  #
91
- # * `Aws::SharedCredentials` - Used for loading credentials from a
92
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
93
107
  #
94
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
95
110
  #
96
111
  # When `:credentials` are not configured directly, the following
97
112
  # locations will be searched for credentials:
@@ -101,10 +116,10 @@ module Aws::EBS
101
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
117
  # * `~/.aws/credentials`
103
118
  # * `~/.aws/config`
104
- # * EC2 IMDS instance profile - When used by default, the timeouts are
105
- # very aggressive. Construct and pass an instance of
106
- # `Aws::InstanceProfileCredentails` to enable retries and extended
107
- # timeouts.
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.
108
123
  #
109
124
  # @option options [required, String] :region
110
125
  # The AWS region to connect to. The configured `:region` is
@@ -312,6 +327,62 @@ module Aws::EBS
312
327
 
313
328
  # @!group API Operations
314
329
 
330
+ # Seals and completes the snapshot after all of the required blocks of
331
+ # data have been written to it. Completing the snapshot changes the
332
+ # status to `completed`. You cannot write new blocks to a snapshot after
333
+ # it has been completed.
334
+ #
335
+ # @option params [required, String] :snapshot_id
336
+ # The ID of the snapshot.
337
+ #
338
+ # @option params [required, Integer] :changed_blocks_count
339
+ # The number of blocks that were written to the snapshot.
340
+ #
341
+ # @option params [String] :checksum
342
+ # An aggregated Base-64 SHA256 checksum based on the checksums of each
343
+ # written block.
344
+ #
345
+ # To generate the aggregated checksum using the linear aggregation
346
+ # method, arrange the checksums for each written block in ascending
347
+ # order of their block index, concatenate them to form a single string,
348
+ # and then generate the checksum on the entire string using the SHA256
349
+ # algorithm.
350
+ #
351
+ # @option params [String] :checksum_algorithm
352
+ # The algorithm used to generate the checksum. Currently, the only
353
+ # supported algorithm is `SHA256`.
354
+ #
355
+ # @option params [String] :checksum_aggregation_method
356
+ # The aggregation method used to generate the checksum. Currently, the
357
+ # only supported aggregation method is `LINEAR`.
358
+ #
359
+ # @return [Types::CompleteSnapshotResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
360
+ #
361
+ # * {Types::CompleteSnapshotResponse#status #status} => String
362
+ #
363
+ # @example Request syntax with placeholder values
364
+ #
365
+ # resp = client.complete_snapshot({
366
+ # snapshot_id: "SnapshotId", # required
367
+ # changed_blocks_count: 1, # required
368
+ # checksum: "Checksum",
369
+ # checksum_algorithm: "SHA256", # accepts SHA256
370
+ # checksum_aggregation_method: "LINEAR", # accepts LINEAR
371
+ # })
372
+ #
373
+ # @example Response structure
374
+ #
375
+ # resp.status #=> String, one of "completed", "pending", "error"
376
+ #
377
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/CompleteSnapshot AWS API Documentation
378
+ #
379
+ # @overload complete_snapshot(params = {})
380
+ # @param [Hash] params ({})
381
+ def complete_snapshot(params = {}, options = {})
382
+ req = build_request(:complete_snapshot, params)
383
+ req.send_request(options)
384
+ end
385
+
315
386
  # Returns the data in a block in an Amazon Elastic Block Store snapshot.
316
387
  #
317
388
  # @option params [required, String] :snapshot_id
@@ -360,9 +431,9 @@ module Aws::EBS
360
431
  req.send_request(options, &block)
361
432
  end
362
433
 
363
- # Returns the block indexes and block tokens for blocks that are
364
- # different between two Amazon Elastic Block Store snapshots of the same
365
- # volume/snapshot lineage.
434
+ # Returns information about the blocks that are different between two
435
+ # Amazon Elastic Block Store snapshots of the same volume/snapshot
436
+ # lineage.
366
437
  #
367
438
  # @option params [String] :first_snapshot_id
368
439
  # The ID of the first snapshot to use for the comparison.
@@ -428,8 +499,8 @@ module Aws::EBS
428
499
  req.send_request(options)
429
500
  end
430
501
 
431
- # Returns the block indexes and block tokens for blocks in an Amazon
432
- # Elastic Block Store snapshot.
502
+ # Returns information about the blocks in an Amazon Elastic Block Store
503
+ # snapshot.
433
504
  #
434
505
  # @option params [required, String] :snapshot_id
435
506
  # The ID of the snapshot from which to get block indexes and block
@@ -484,6 +555,244 @@ module Aws::EBS
484
555
  req.send_request(options)
485
556
  end
486
557
 
558
+ # Writes a block of data to a snapshot. If the specified block contains
559
+ # data, the existing data is overwritten. The target snapshot must be in
560
+ # the `pending` state.
561
+ #
562
+ # Data written to a snapshot must be aligned with 512-byte sectors.
563
+ #
564
+ # @option params [required, String] :snapshot_id
565
+ # The ID of the snapshot.
566
+ #
567
+ # @option params [required, Integer] :block_index
568
+ # The block index of the block in which to write the data. A block index
569
+ # is a logical index in units of `512` KiB blocks. To identify the block
570
+ # index, divide the logical offset of the data in the logical volume by
571
+ # the block size (logical offset of data/`524288`). The logical offset
572
+ # of the data must be `512` KiB aligned.
573
+ #
574
+ # @option params [required, String, IO] :block_data
575
+ # The data to write to the block.
576
+ #
577
+ # The block data is not signed as part of the Signature Version 4
578
+ # signing process. As a result, you must generate and provide a
579
+ # Base64-encoded SHA256 checksum for the block data using the
580
+ # **x-amz-Checksum** header. Also, you must specify the checksum
581
+ # algorithm using the **x-amz-Checksum-Algorithm** header. The checksum
582
+ # that you provide is part of the Signature Version 4 signing process.
583
+ # It is validated against a checksum generated by Amazon EBS to ensure
584
+ # the validity and authenticity of the data. If the checksums do not
585
+ # correspond, the request fails. For more information, see [ Using
586
+ # checksums with the EBS direct APIs][1] in the *Amazon Elastic Compute
587
+ # Cloud User Guide*.
588
+ #
589
+ #
590
+ #
591
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-checksums
592
+ #
593
+ # @option params [required, Integer] :data_length
594
+ # The size of the data to write to the block, in bytes. Currently, the
595
+ # only supported size is `524288`.
596
+ #
597
+ # Valid values: `524288`
598
+ #
599
+ # @option params [Integer] :progress
600
+ # The progress of the write process, as a percentage.
601
+ #
602
+ # @option params [required, String] :checksum
603
+ # A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums
604
+ # are supported.
605
+ #
606
+ # @option params [required, String] :checksum_algorithm
607
+ # The algorithm used to generate the checksum. Currently, the only
608
+ # supported algorithm is `SHA256`.
609
+ #
610
+ # @return [Types::PutSnapshotBlockResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
611
+ #
612
+ # * {Types::PutSnapshotBlockResponse#checksum #checksum} => String
613
+ # * {Types::PutSnapshotBlockResponse#checksum_algorithm #checksum_algorithm} => String
614
+ #
615
+ # @example Request syntax with placeholder values
616
+ #
617
+ # resp = client.put_snapshot_block({
618
+ # snapshot_id: "SnapshotId", # required
619
+ # block_index: 1, # required
620
+ # block_data: "data", # required
621
+ # data_length: 1, # required
622
+ # progress: 1,
623
+ # checksum: "Checksum", # required
624
+ # checksum_algorithm: "SHA256", # required, accepts SHA256
625
+ # })
626
+ #
627
+ # @example Response structure
628
+ #
629
+ # resp.checksum #=> String
630
+ # resp.checksum_algorithm #=> String, one of "SHA256"
631
+ #
632
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/PutSnapshotBlock AWS API Documentation
633
+ #
634
+ # @overload put_snapshot_block(params = {})
635
+ # @param [Hash] params ({})
636
+ def put_snapshot_block(params = {}, options = {})
637
+ req = build_request(:put_snapshot_block, params)
638
+ req.send_request(options)
639
+ end
640
+
641
+ # Creates a new Amazon EBS snapshot. The new snapshot enters the
642
+ # `pending` state after the request completes.
643
+ #
644
+ # After creating the snapshot, use [ PutSnapshotBlock][1] to write
645
+ # blocks of data to the snapshot.
646
+ #
647
+ #
648
+ #
649
+ # [1]: https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html
650
+ #
651
+ # @option params [required, Integer] :volume_size
652
+ # The size of the volume, in GiB. The maximum size is `16384` GiB (16
653
+ # TiB).
654
+ #
655
+ # @option params [String] :parent_snapshot_id
656
+ # The ID of the parent snapshot. If there is no parent snapshot, or if
657
+ # you are creating the first snapshot for an on-premises volume, omit
658
+ # this parameter.
659
+ #
660
+ # If your account is enabled for encryption by default, you cannot use
661
+ # an unencrypted snapshot as a parent snapshot. You must first create an
662
+ # encrypted copy of the parent snapshot using [CopySnapshot][1].
663
+ #
664
+ #
665
+ #
666
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopySnapshot.html
667
+ #
668
+ # @option params [Array<Types::Tag>] :tags
669
+ # The tags to apply to the snapshot.
670
+ #
671
+ # @option params [String] :description
672
+ # A description for the snapshot.
673
+ #
674
+ # @option params [String] :client_token
675
+ # A unique, case-sensitive identifier that you provide to ensure the
676
+ # idempotency of the request. Idempotency ensures that an API request
677
+ # completes only once. With an idempotent request, if the original
678
+ # request completes successfully. The subsequent retries with the same
679
+ # client token return the result from the original successful request
680
+ # and they have no additional effect.
681
+ #
682
+ # If you do not specify a client token, one is automatically generated
683
+ # by the AWS SDK.
684
+ #
685
+ # For more information, see [ Idempotency for StartSnapshot API][1] in
686
+ # the *Amazon Elastic Compute Cloud User Guide*.
687
+ #
688
+ # **A suitable default value is auto-generated.** You should normally
689
+ # not need to pass this option.**
690
+ #
691
+ #
692
+ #
693
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-direct-api-idempotency.html
694
+ #
695
+ # @option params [Boolean] :encrypted
696
+ # Indicates whether to encrypt the snapshot. To create an encrypted
697
+ # snapshot, specify `true`. To create an unencrypted snapshot, omit this
698
+ # parameter.
699
+ #
700
+ # If you specify a value for **ParentSnapshotId**, omit this parameter.
701
+ #
702
+ # If you specify `true`, the snapshot is encrypted using the CMK
703
+ # specified using the **KmsKeyArn** parameter. If no value is specified
704
+ # for **KmsKeyArn**, the default CMK for your account is used. If no
705
+ # default CMK has been specified for your account, the AWS managed CMK
706
+ # is used. To set a default CMK for your account, use [
707
+ # ModifyEbsDefaultKmsKeyId][1].
708
+ #
709
+ # If your account is enabled for encryption by default, you cannot set
710
+ # this parameter to `false`. In this case, you can omit this parameter.
711
+ #
712
+ # For more information, see [ Using encryption][2] in the *Amazon
713
+ # Elastic Compute Cloud User Guide*.
714
+ #
715
+ #
716
+ #
717
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyEbsDefaultKmsKeyId.html
718
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-encryption
719
+ #
720
+ # @option params [String] :kms_key_arn
721
+ # The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS
722
+ # KMS) customer master key (CMK) to be used to encrypt the snapshot. If
723
+ # you do not specify a CMK, the default AWS managed CMK is used.
724
+ #
725
+ # If you specify a **ParentSnapshotId**, omit this parameter; the
726
+ # snapshot will be encrypted using the same CMK that was used to encrypt
727
+ # the parent snapshot.
728
+ #
729
+ # If **Encrypted** is set to `true`, you must specify a CMK ARN.
730
+ #
731
+ # @option params [Integer] :timeout
732
+ # The amount of time (in minutes) after which the snapshot is
733
+ # automatically cancelled if:
734
+ #
735
+ # * No blocks are written to the snapshot.
736
+ #
737
+ # * The snapshot is not completed after writing the last block of data.
738
+ #
739
+ # If no value is specified, the timeout defaults to `60` minutes.
740
+ #
741
+ # @return [Types::StartSnapshotResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
742
+ #
743
+ # * {Types::StartSnapshotResponse#description #description} => String
744
+ # * {Types::StartSnapshotResponse#snapshot_id #snapshot_id} => String
745
+ # * {Types::StartSnapshotResponse#owner_id #owner_id} => String
746
+ # * {Types::StartSnapshotResponse#status #status} => String
747
+ # * {Types::StartSnapshotResponse#start_time #start_time} => Time
748
+ # * {Types::StartSnapshotResponse#volume_size #volume_size} => Integer
749
+ # * {Types::StartSnapshotResponse#block_size #block_size} => Integer
750
+ # * {Types::StartSnapshotResponse#tags #tags} => Array&lt;Types::Tag&gt;
751
+ # * {Types::StartSnapshotResponse#parent_snapshot_id #parent_snapshot_id} => String
752
+ # * {Types::StartSnapshotResponse#kms_key_arn #kms_key_arn} => String
753
+ #
754
+ # @example Request syntax with placeholder values
755
+ #
756
+ # resp = client.start_snapshot({
757
+ # volume_size: 1, # required
758
+ # parent_snapshot_id: "SnapshotId",
759
+ # tags: [
760
+ # {
761
+ # key: "TagKey",
762
+ # value: "TagValue",
763
+ # },
764
+ # ],
765
+ # description: "Description",
766
+ # client_token: "IdempotencyToken",
767
+ # encrypted: false,
768
+ # kms_key_arn: "KmsKeyArn",
769
+ # timeout: 1,
770
+ # })
771
+ #
772
+ # @example Response structure
773
+ #
774
+ # resp.description #=> String
775
+ # resp.snapshot_id #=> String
776
+ # resp.owner_id #=> String
777
+ # resp.status #=> String, one of "completed", "pending", "error"
778
+ # resp.start_time #=> Time
779
+ # resp.volume_size #=> Integer
780
+ # resp.block_size #=> Integer
781
+ # resp.tags #=> Array
782
+ # resp.tags[0].key #=> String
783
+ # resp.tags[0].value #=> String
784
+ # resp.parent_snapshot_id #=> String
785
+ # resp.kms_key_arn #=> String
786
+ #
787
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ebs-2019-11-02/StartSnapshot AWS API Documentation
788
+ #
789
+ # @overload start_snapshot(params = {})
790
+ # @param [Hash] params ({})
791
+ def start_snapshot(params = {}, options = {})
792
+ req = build_request(:start_snapshot, params)
793
+ req.send_request(options)
794
+ end
795
+
487
796
  # @!endgroup
488
797
 
489
798
  # @param params ({})
@@ -497,7 +806,7 @@ module Aws::EBS
497
806
  params: params,
498
807
  config: config)
499
808
  context[:gem_name] = 'aws-sdk-ebs'
500
- context[:gem_version] = '1.6.0'
809
+ context[:gem_version] = '1.11.0'
501
810
  Seahorse::Client::Request.new(handlers, context)
502
811
  end
503
812
 
@@ -13,33 +13,67 @@ module Aws::EBS
13
13
 
14
14
  include Seahorse::Model
15
15
 
16
+ AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException')
17
+ AccessDeniedExceptionReason = Shapes::StringShape.new(name: 'AccessDeniedExceptionReason')
16
18
  Block = Shapes::StructureShape.new(name: 'Block')
17
19
  BlockData = Shapes::BlobShape.new(name: 'BlockData', streaming: true)
18
20
  BlockIndex = Shapes::IntegerShape.new(name: 'BlockIndex')
19
21
  BlockSize = Shapes::IntegerShape.new(name: 'BlockSize')
20
22
  BlockToken = Shapes::StringShape.new(name: 'BlockToken')
21
23
  Blocks = Shapes::ListShape.new(name: 'Blocks')
24
+ Boolean = Shapes::BooleanShape.new(name: 'Boolean')
22
25
  ChangedBlock = Shapes::StructureShape.new(name: 'ChangedBlock')
23
26
  ChangedBlocks = Shapes::ListShape.new(name: 'ChangedBlocks')
27
+ ChangedBlocksCount = Shapes::IntegerShape.new(name: 'ChangedBlocksCount')
24
28
  Checksum = Shapes::StringShape.new(name: 'Checksum')
29
+ ChecksumAggregationMethod = Shapes::StringShape.new(name: 'ChecksumAggregationMethod')
25
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')
26
35
  DataLength = Shapes::IntegerShape.new(name: 'DataLength')
36
+ Description = Shapes::StringShape.new(name: 'Description')
27
37
  ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
28
38
  GetSnapshotBlockRequest = Shapes::StructureShape.new(name: 'GetSnapshotBlockRequest')
29
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')
30
43
  ListChangedBlocksRequest = Shapes::StructureShape.new(name: 'ListChangedBlocksRequest')
31
44
  ListChangedBlocksResponse = Shapes::StructureShape.new(name: 'ListChangedBlocksResponse')
32
45
  ListSnapshotBlocksRequest = Shapes::StructureShape.new(name: 'ListSnapshotBlocksRequest')
33
46
  ListSnapshotBlocksResponse = Shapes::StructureShape.new(name: 'ListSnapshotBlocksResponse')
34
47
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
48
+ OwnerId = Shapes::StringShape.new(name: 'OwnerId')
35
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')
36
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')
37
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')
38
67
  TimeStamp = Shapes::TimestampShape.new(name: 'TimeStamp')
68
+ Timeout = Shapes::IntegerShape.new(name: 'Timeout')
39
69
  ValidationException = Shapes::StructureShape.new(name: 'ValidationException')
40
70
  ValidationExceptionReason = Shapes::StringShape.new(name: 'ValidationExceptionReason')
41
71
  VolumeSize = Shapes::IntegerShape.new(name: 'VolumeSize')
42
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
+
43
77
  Block.add_member(:block_index, Shapes::ShapeRef.new(shape: BlockIndex, location_name: "BlockIndex"))
44
78
  Block.add_member(:block_token, Shapes::ShapeRef.new(shape: BlockToken, location_name: "BlockToken"))
45
79
  Block.struct_class = Types::Block
@@ -53,6 +87,22 @@ module Aws::EBS
53
87
 
54
88
  ChangedBlocks.member = Shapes::ShapeRef.new(shape: ChangedBlock)
55
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
+
56
106
  GetSnapshotBlockRequest.add_member(:snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location: "uri", location_name: "snapshotId"))
57
107
  GetSnapshotBlockRequest.add_member(:block_index, Shapes::ShapeRef.new(shape: BlockIndex, required: true, location: "uri", location_name: "blockIndex"))
58
108
  GetSnapshotBlockRequest.add_member(:block_token, Shapes::ShapeRef.new(shape: BlockToken, required: true, location: "querystring", location_name: "blockToken"))
@@ -66,6 +116,9 @@ module Aws::EBS
66
116
  GetSnapshotBlockResponse[:payload] = :block_data
67
117
  GetSnapshotBlockResponse[:payload_member] = GetSnapshotBlockResponse.member(:block_data)
68
118
 
119
+ InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
120
+ InternalServerException.struct_class = Types::InternalServerException
121
+
69
122
  ListChangedBlocksRequest.add_member(:first_snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, location: "querystring", location_name: "firstSnapshotId"))
70
123
  ListChangedBlocksRequest.add_member(:second_snapshot_id, Shapes::ShapeRef.new(shape: SnapshotId, required: true, location: "uri", location_name: "secondSnapshotId"))
71
124
  ListChangedBlocksRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PageToken, location: "querystring", location_name: "pageToken"))
@@ -93,9 +146,61 @@ module Aws::EBS
93
146
  ListSnapshotBlocksResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PageToken, location_name: "NextToken"))
94
147
  ListSnapshotBlocksResponse.struct_class = Types::ListSnapshotBlocksResponse
95
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
+
96
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"))
97
170
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
98
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
+
99
204
  ValidationException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
100
205
  ValidationException.add_member(:reason, Shapes::ShapeRef.new(shape: ValidationExceptionReason, location_name: "Reason"))
101
206
  ValidationException.struct_class = Types::ValidationException
@@ -118,14 +223,32 @@ module Aws::EBS
118
223
  "uid" => "ebs-2019-11-02",
119
224
  }
120
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
+
121
240
  api.add_operation(:get_snapshot_block, Seahorse::Model::Operation.new.tap do |o|
122
241
  o.name = "GetSnapshotBlock"
123
242
  o.http_method = "GET"
124
243
  o.http_request_uri = "/snapshots/{snapshotId}/blocks/{blockIndex}"
125
244
  o.input = Shapes::ShapeRef.new(shape: GetSnapshotBlockRequest)
126
245
  o.output = Shapes::ShapeRef.new(shape: GetSnapshotBlockResponse)
246
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
127
247
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
128
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)
129
252
  end)
130
253
 
131
254
  api.add_operation(:list_changed_blocks, Seahorse::Model::Operation.new.tap do |o|
@@ -134,8 +257,12 @@ module Aws::EBS
134
257
  o.http_request_uri = "/snapshots/{secondSnapshotId}/changedblocks"
135
258
  o.input = Shapes::ShapeRef.new(shape: ListChangedBlocksRequest)
136
259
  o.output = Shapes::ShapeRef.new(shape: ListChangedBlocksResponse)
260
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
137
261
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
138
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)
139
266
  o[:pager] = Aws::Pager.new(
140
267
  limit_key: "max_results",
141
268
  tokens: {
@@ -150,8 +277,12 @@ module Aws::EBS
150
277
  o.http_request_uri = "/snapshots/{snapshotId}/blocks"
151
278
  o.input = Shapes::ShapeRef.new(shape: ListSnapshotBlocksRequest)
152
279
  o.output = Shapes::ShapeRef.new(shape: ListSnapshotBlocksResponse)
280
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
153
281
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
154
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)
155
286
  o[:pager] = Aws::Pager.new(
156
287
  limit_key: "max_results",
157
288
  tokens: {
@@ -159,6 +290,37 @@ module Aws::EBS
159
290
  }
160
291
  )
161
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)
162
324
  end
163
325
 
164
326
  end