aws-sdk-ebs 1.3.0 → 1.8.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: 0b3172b824d86226ceb2d390ead2f2f686526fa03fa0e0d4e468fc7afb9230f0
4
- data.tar.gz: daa54c12167ca60a51dd20d31f5c32c13e80c67fed53684c9bf9e49dd25f53fb
3
+ metadata.gz: d1e41c88491c736e7466409588b393fd2f84870be0f00b3fb49ab8c60041bd04
4
+ data.tar.gz: ee5831d7fc2f32b5a48201b4868ffa33202c68693781c3c503939e34f73aa3ee
5
5
  SHA512:
6
- metadata.gz: b5b52f53ed5b577f75fabc020f039d9f64949d4af8a4ff61a8fa29bd13f5db99561dd8bdd64fbb93110cba8ad712a6c00361c57cd9c39cb7dcc072d259e92290
7
- data.tar.gz: d59974d11e1e424742a0750573f680131c42d84a4f42a8f58560c454a4dc5fed348a9a2816e8a2b145ce64e41dc020c4cea89cd0cef2407a062350e036ff1309
6
+ metadata.gz: 62735531c6e5aeedc7a450cdd3e86b8de5674c67ba74506a285f528829474857c07de0f43b2f66a589bf2389bb8be007f808d58c449246092ab4050bf9e29914
7
+ data.tar.gz: def1ad84f9a9cb66100ce5a3dc847a47218be07483ca648490113593a50e21802f8e340de3902ee0af710eed1859251ec361d19c0cbd7494c01e1f4f089a7497
@@ -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
  #
@@ -42,9 +44,9 @@ require_relative 'aws-sdk-ebs/customizations'
42
44
  #
43
45
  # See {Errors} for more information.
44
46
  #
45
- # @service
47
+ # @!group service
46
48
  module Aws::EBS
47
49
 
48
- GEM_VERSION = '1.3.0'
50
+ GEM_VERSION = '1.8.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
 
@@ -81,13 +85,28 @@ module Aws::EBS
81
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
82
86
  # credentials.
83
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
+ #
84
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
85
103
  # from an EC2 IMDS on an EC2 instance.
86
104
  #
87
- # * `Aws::SharedCredentials` - Used for loading credentials from a
88
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
89
107
  #
90
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
91
110
  #
92
111
  # When `:credentials` are not configured directly, the following
93
112
  # locations will be searched for credentials:
@@ -97,10 +116,10 @@ module Aws::EBS
97
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
98
117
  # * `~/.aws/credentials`
99
118
  # * `~/.aws/config`
100
- # * EC2 IMDS instance profile - When used by default, the timeouts are
101
- # very aggressive. Construct and pass an instance of
102
- # `Aws::InstanceProfileCredentails` to enable retries and extended
103
- # 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.
104
123
  #
105
124
  # @option options [required, String] :region
106
125
  # The AWS region to connect to. The configured `:region` is
@@ -161,7 +180,7 @@ module Aws::EBS
161
180
  # @option options [String] :endpoint
162
181
  # The client endpoint is normally constructed from the `:region`
163
182
  # option. You should only configure an `:endpoint` when connecting
164
- # to test endpoints. This should be a valid HTTP(S) URI.
183
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
165
184
  #
166
185
  # @option options [Integer] :endpoint_cache_max_entries (1000)
167
186
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -176,7 +195,7 @@ module Aws::EBS
176
195
  # requests fetching endpoints information. Defaults to 60 sec.
177
196
  #
178
197
  # @option options [Boolean] :endpoint_discovery (false)
179
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
198
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
180
199
  #
181
200
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
182
201
  # The log formatter.
@@ -308,6 +327,62 @@ module Aws::EBS
308
327
 
309
328
  # @!group API Operations
310
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
+
311
386
  # Returns the data in a block in an Amazon Elastic Block Store snapshot.
312
387
  #
313
388
  # @option params [required, String] :snapshot_id
@@ -480,6 +555,244 @@ module Aws::EBS
480
555
  req.send_request(options)
481
556
  end
482
557
 
558
+ # Writes a block of data to a block in the snapshot. If the specified
559
+ # block contains data, the existing data is overwritten. The target
560
+ # snapshot must be in 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 the offset position of a block within a snapshot, and it is used to
570
+ # identify the block. To identify the logical offset of the data in the
571
+ # logical volume, multiply the block index with the block size (Block
572
+ # index * 512 bytes).
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
+
483
796
  # @!endgroup
484
797
 
485
798
  # @param params ({})
@@ -493,7 +806,7 @@ module Aws::EBS
493
806
  params: params,
494
807
  config: config)
495
808
  context[:gem_name] = 'aws-sdk-ebs'
496
- context[:gem_version] = '1.3.0'
809
+ context[:gem_version] = '1.8.0'
497
810
  Seahorse::Client::Request.new(handlers, context)
498
811
  end
499
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