aws-sdk-ebs 1.5.1 → 1.10.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: '0457688f01022802db9c652777675a77a80632d123abf4218049d2cfe6bea542'
4
- data.tar.gz: 3109a3f509871cb0f53023c356ab8eccae85948ea4ebdb3a8b15c2ce697ba33b
3
+ metadata.gz: 7c6d35d27029d77307525fab1dbfa64eb2947b529a607623bf8c67294b1124b8
4
+ data.tar.gz: 1385a9f4b1485ab539d95ff9e311cf9f7291b009dd6d316f9dd2702dcbf45f22
5
5
  SHA512:
6
- metadata.gz: 281ba49f8ec5c0485c957baa542c2628d74c403b86ba2c7101082f0c081fbbdef048430aa8035ca256cd2e423df89df8da7a09bfd4582ab72726dc710da5f871
7
- data.tar.gz: ff09f1a663fbcfc7dbfe5d57c590e1289acb0e78ef4df171562321c4a536e818d72ba02e6e9b76c550f4b5608787d7c2ddd33979a38f8c67e2a1f813588f928b
6
+ metadata.gz: f997dd4b499af4f50bba7585d22eda14deed451ca13d0ab299466e1e365c1e265954e60a14dd1d5fc126d396f51f345170dcad9dcad43712502c3e0e23448b19
7
+ data.tar.gz: aef4a752dc69aecf149b59fe57343cdaeefdac29d7112ca62d17aeb7be97c4397c62d92860ac2a852509b3fcc908fb3f9c494068cfbdcd983e4e68e7c85c55d6
@@ -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:
@@ -5,6 +7,7 @@
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
10
+
8
11
  require 'aws-sdk-core'
9
12
  require 'aws-sigv4'
10
13
 
@@ -25,7 +28,7 @@ require_relative 'aws-sdk-ebs/customizations'
25
28
  # structure.
26
29
  #
27
30
  # ebs = Aws::EBS::Client.new
28
- # resp = ebs.get_snapshot_block(params)
31
+ # resp = ebs.complete_snapshot(params)
29
32
  #
30
33
  # See {Client} for more information.
31
34
  #
@@ -42,9 +45,9 @@ require_relative 'aws-sdk-ebs/customizations'
42
45
  #
43
46
  # See {Errors} for more information.
44
47
  #
45
- # @service
48
+ # @!group service
46
49
  module Aws::EBS
47
50
 
48
- GEM_VERSION = '1.5.1'
51
+ GEM_VERSION = '1.10.0'
49
52
 
50
53
  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:
@@ -83,13 +85,28 @@ module Aws::EBS
83
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
84
86
  # credentials.
85
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
+ #
86
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
87
103
  # from an EC2 IMDS on an EC2 instance.
88
104
  #
89
- # * `Aws::SharedCredentials` - Used for loading credentials from a
90
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
91
107
  #
92
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
93
110
  #
94
111
  # When `:credentials` are not configured directly, the following
95
112
  # locations will be searched for credentials:
@@ -99,10 +116,10 @@ module Aws::EBS
99
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
100
117
  # * `~/.aws/credentials`
101
118
  # * `~/.aws/config`
102
- # * EC2 IMDS instance profile - When used by default, the timeouts are
103
- # very aggressive. Construct and pass an instance of
104
- # `Aws::InstanceProfileCredentails` to enable retries and extended
105
- # 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.
106
123
  #
107
124
  # @option options [required, String] :region
108
125
  # The AWS region to connect to. The configured `:region` is
@@ -310,6 +327,62 @@ module Aws::EBS
310
327
 
311
328
  # @!group API Operations
312
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
+
313
386
  # Returns the data in a block in an Amazon Elastic Block Store snapshot.
314
387
  #
315
388
  # @option params [required, String] :snapshot_id
@@ -358,9 +431,9 @@ module Aws::EBS
358
431
  req.send_request(options, &block)
359
432
  end
360
433
 
361
- # Returns the block indexes and block tokens for blocks that are
362
- # different between two Amazon Elastic Block Store snapshots of the same
363
- # 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.
364
437
  #
365
438
  # @option params [String] :first_snapshot_id
366
439
  # The ID of the first snapshot to use for the comparison.
@@ -426,8 +499,8 @@ module Aws::EBS
426
499
  req.send_request(options)
427
500
  end
428
501
 
429
- # Returns the block indexes and block tokens for blocks in an Amazon
430
- # Elastic Block Store snapshot.
502
+ # Returns information about the blocks in an Amazon Elastic Block Store
503
+ # snapshot.
431
504
  #
432
505
  # @option params [required, String] :snapshot_id
433
506
  # The ID of the snapshot from which to get block indexes and block
@@ -482,6 +555,244 @@ module Aws::EBS
482
555
  req.send_request(options)
483
556
  end
484
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
+
485
796
  # @!endgroup
486
797
 
487
798
  # @param params ({})
@@ -495,7 +806,7 @@ module Aws::EBS
495
806
  params: params,
496
807
  config: config)
497
808
  context[:gem_name] = 'aws-sdk-ebs'
498
- context[:gem_version] = '1.5.1'
809
+ context[:gem_version] = '1.10.0'
499
810
  Seahorse::Client::Request.new(handlers, context)
500
811
  end
501
812
 
@@ -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