Client Test

Client Test

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/operation/put_snapshot_block/builders.rs

@@ -1,1 +216,249 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* CodegenDelegator.kt:255 */
    2      3   
pub use crate::operation::put_snapshot_block::_put_snapshot_block_output::PutSnapshotBlockOutputBuilder;
    3      4   
           5  +
/* CodegenDelegator.kt:255 */
    4      6   
pub use crate::operation::put_snapshot_block::_put_snapshot_block_input::PutSnapshotBlockInputBuilder;
    5      7   
           8  +
/* FluentBuilderGenerator.kt:408 */
    6      9   
impl crate::operation::put_snapshot_block::builders::PutSnapshotBlockInputBuilder {
    7     10   
    /// Sends a request with this input using the given client.
    8     11   
    pub async fn send_with(
    9     12   
        self,
   10     13   
        client: &crate::Client,
   11     14   
    ) -> ::std::result::Result<
   12     15   
        crate::operation::put_snapshot_block::PutSnapshotBlockOutput,
   13     16   
        ::aws_smithy_runtime_api::client::result::SdkError<
   14     17   
            crate::operation::put_snapshot_block::PutSnapshotBlockError,
   15     18   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   16     19   
        >,
   17     20   
    > {
   18     21   
        let mut fluent_builder = client.put_snapshot_block();
   19     22   
        fluent_builder.inner = self;
   20     23   
        fluent_builder.send().await
   21     24   
    }
   22     25   
}
   23         -
/// Fluent builder constructing a request to `PutSnapshotBlock`.
          26  +
/// /* FluentBuilderGenerator.kt:129 */Fluent builder constructing a request to `PutSnapshotBlock`.
   24     27   
///
   25         -
/// <p>Writes a block of data to a snapshot. If the specified block contains data, the existing data is overwritten. The target snapshot must be in the <code>pending</code> state.</p>
          28  +
/// /* FluentBuilderGenerator.kt:130 */<p>Writes a block of data to a snapshot. If the specified block contains data, the existing data is overwritten. The target snapshot must be in the <code>pending</code> state.</p>
   26     29   
/// <p>Data written to a snapshot must be aligned with 512-byte sectors.</p>
          30  +
/* RustType.kt:516 */
   27     31   
#[derive(::std::fmt::Debug)]
          32  +
/* FluentBuilderGenerator.kt:270 */
   28     33   
pub struct PutSnapshotBlockFluentBuilder {
   29     34   
    handle: ::std::sync::Arc<crate::client::Handle>,
   30     35   
    inner: crate::operation::put_snapshot_block::builders::PutSnapshotBlockInputBuilder,
   31     36   
    config_override: ::std::option::Option<crate::config::Builder>,
   32     37   
}
          38  +
/* FluentBuilderGenerator.kt:381 */
   33     39   
impl
   34     40   
    crate::client::customize::internal::CustomizableSend<
   35     41   
        crate::operation::put_snapshot_block::PutSnapshotBlockOutput,
   36     42   
        crate::operation::put_snapshot_block::PutSnapshotBlockError,
   37     43   
    > for PutSnapshotBlockFluentBuilder
   38     44   
{
   39     45   
    fn send(
   40     46   
        self,
   41     47   
        config_override: crate::config::Builder,
   42     48   
    ) -> crate::client::customize::internal::BoxFuture<
   43     49   
        crate::client::customize::internal::SendResult<
   44     50   
            crate::operation::put_snapshot_block::PutSnapshotBlockOutput,
   45     51   
            crate::operation::put_snapshot_block::PutSnapshotBlockError,
   46     52   
        >,
   47     53   
    > {
   48     54   
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
   49     55   
    }
   50     56   
}
          57  +
/* FluentBuilderGenerator.kt:282 */
   51     58   
impl PutSnapshotBlockFluentBuilder {
          59  +
    /* FluentBuilderGenerator.kt:288 */
   52     60   
    /// Creates a new `PutSnapshotBlockFluentBuilder`.
   53     61   
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
   54     62   
        Self {
   55     63   
            handle,
   56     64   
            inner: ::std::default::Default::default(),
   57     65   
            config_override: ::std::option::Option::None,
   58     66   
        }
   59     67   
    }
          68  +
    /* FluentBuilderGenerator.kt:301 */
   60     69   
    /// Access the PutSnapshotBlock as a reference.
   61     70   
    pub fn as_input(&self) -> &crate::operation::put_snapshot_block::builders::PutSnapshotBlockInputBuilder {
   62     71   
        &self.inner
   63     72   
    }
          73  +
    /* FluentBuilderGenerator.kt:145 */
   64     74   
    /// Sends the request and returns the response.
   65     75   
    ///
   66     76   
    /// If an error occurs, an `SdkError` will be returned with additional details that
   67     77   
    /// can be matched against.
   68     78   
    ///
   69     79   
    /// By default, any retryable failures will be retried twice. Retry behavior
   70     80   
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
   71     81   
    /// set when configuring the client.
   72     82   
    pub async fn send(
   73     83   
        self,
   74     84   
    ) -> ::std::result::Result<
   75     85   
        crate::operation::put_snapshot_block::PutSnapshotBlockOutput,
   76     86   
        ::aws_smithy_runtime_api::client::result::SdkError<
   77     87   
            crate::operation::put_snapshot_block::PutSnapshotBlockError,
   78     88   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   79     89   
        >,
   80     90   
    > {
   81     91   
        let input = self
   82     92   
            .inner
   83     93   
            .build()
   84     94   
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
   85     95   
        let runtime_plugins = crate::operation::put_snapshot_block::PutSnapshotBlock::operation_runtime_plugins(
   86     96   
            self.handle.runtime_plugins.clone(),
   87     97   
            &self.handle.conf,
   88     98   
            self.config_override,
   89     99   
        );
   90    100   
        crate::operation::put_snapshot_block::PutSnapshotBlock::orchestrate(&runtime_plugins, input).await
   91    101   
    }
   92    102   
   93    103   
    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
   94    104   
    pub fn customize(
   95    105   
        self,
   96    106   
    ) -> crate::client::customize::CustomizableOperation<
   97    107   
        crate::operation::put_snapshot_block::PutSnapshotBlockOutput,
   98    108   
        crate::operation::put_snapshot_block::PutSnapshotBlockError,
   99    109   
        Self,
  100    110   
    > {
  101    111   
        crate::client::customize::CustomizableOperation::new(self)
  102    112   
    }
         113  +
    /* FluentBuilderGenerator.kt:315 */
  103    114   
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
  104    115   
        self.set_config_override(::std::option::Option::Some(config_override.into()));
  105    116   
        self
  106    117   
    }
  107    118   
  108    119   
    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
  109    120   
        self.config_override = config_override;
  110    121   
        self
  111    122   
    }
  112         -
    /// <p>The ID of the snapshot.</p>
         123  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The ID of the snapshot.</p>
         124  +
    /* FluentBuilderGenerator.kt:500 */
  113    125   
    pub fn snapshot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  114    126   
        self.inner = self.inner.snapshot_id(input.into());
  115    127   
        self
  116    128   
    }
  117         -
    /// <p>The ID of the snapshot.</p>
         129  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The ID of the snapshot.</p>
         130  +
    /* FluentBuilderGenerator.kt:500 */
  118    131   
    pub fn set_snapshot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  119    132   
        self.inner = self.inner.set_snapshot_id(input);
  120    133   
        self
  121    134   
    }
  122         -
    /// <p>The ID of the snapshot.</p>
         135  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The ID of the snapshot.</p>
         136  +
    /* FluentBuilderGenerator.kt:520 */
  123    137   
    pub fn get_snapshot_id(&self) -> &::std::option::Option<::std::string::String> {
  124    138   
        self.inner.get_snapshot_id()
  125    139   
    }
  126         -
    /// <p>The block index of the block in which to write the data. A block index is a logical index in units of <code>512</code> KiB blocks. To identify the block index, divide the logical offset of the data in the logical volume by the block size (logical offset of data/<code>524288</code>). The logical offset of the data must be <code>512</code> KiB aligned.</p>
         140  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The block index of the block in which to write the data. A block index is a logical index in units of <code>512</code> KiB blocks. To identify the block index, divide the logical offset of the data in the logical volume by the block size (logical offset of data/<code>524288</code>). The logical offset of the data must be <code>512</code> KiB aligned.</p>
         141  +
    /* FluentBuilderGenerator.kt:500 */
  127    142   
    pub fn block_index(mut self, input: i32) -> Self {
  128    143   
        self.inner = self.inner.block_index(input);
  129    144   
        self
  130    145   
    }
  131         -
    /// <p>The block index of the block in which to write the data. A block index is a logical index in units of <code>512</code> KiB blocks. To identify the block index, divide the logical offset of the data in the logical volume by the block size (logical offset of data/<code>524288</code>). The logical offset of the data must be <code>512</code> KiB aligned.</p>
         146  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The block index of the block in which to write the data. A block index is a logical index in units of <code>512</code> KiB blocks. To identify the block index, divide the logical offset of the data in the logical volume by the block size (logical offset of data/<code>524288</code>). The logical offset of the data must be <code>512</code> KiB aligned.</p>
         147  +
    /* FluentBuilderGenerator.kt:500 */
  132    148   
    pub fn set_block_index(mut self, input: ::std::option::Option<i32>) -> Self {
  133    149   
        self.inner = self.inner.set_block_index(input);
  134    150   
        self
  135    151   
    }
  136         -
    /// <p>The block index of the block in which to write the data. A block index is a logical index in units of <code>512</code> KiB blocks. To identify the block index, divide the logical offset of the data in the logical volume by the block size (logical offset of data/<code>524288</code>). The logical offset of the data must be <code>512</code> KiB aligned.</p>
         152  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The block index of the block in which to write the data. A block index is a logical index in units of <code>512</code> KiB blocks. To identify the block index, divide the logical offset of the data in the logical volume by the block size (logical offset of data/<code>524288</code>). The logical offset of the data must be <code>512</code> KiB aligned.</p>
         153  +
    /* FluentBuilderGenerator.kt:520 */
  137    154   
    pub fn get_block_index(&self) -> &::std::option::Option<i32> {
  138    155   
        self.inner.get_block_index()
  139    156   
    }
  140         -
    /// <p>A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums are supported.</p>
         157  +
    /// /* FluentBuilderGenerator.kt:498 */<p>A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums are supported.</p>
         158  +
    /* FluentBuilderGenerator.kt:500 */
  141    159   
    pub fn checksum(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
  142    160   
        self.inner = self.inner.checksum(input.into());
  143    161   
        self
  144    162   
    }
  145         -
    /// <p>A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums are supported.</p>
         163  +
    /// /* FluentBuilderGenerator.kt:498 */<p>A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums are supported.</p>
         164  +
    /* FluentBuilderGenerator.kt:500 */
  146    165   
    pub fn set_checksum(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  147    166   
        self.inner = self.inner.set_checksum(input);
  148    167   
        self
  149    168   
    }
  150         -
    /// <p>A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums are supported.</p>
         169  +
    /// /* FluentBuilderGenerator.kt:518 */<p>A Base64-encoded SHA256 checksum of the data. Only SHA256 checksums are supported.</p>
         170  +
    /* FluentBuilderGenerator.kt:520 */
  151    171   
    pub fn get_checksum(&self) -> &::std::option::Option<::std::string::String> {
  152    172   
        self.inner.get_checksum()
  153    173   
    }
  154         -
    /// <p>The progress of the write process, as a percentage.</p>
         174  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The progress of the write process, as a percentage.</p>
         175  +
    /* FluentBuilderGenerator.kt:500 */
  155    176   
    pub fn progress(mut self, input: i32) -> Self {
  156    177   
        self.inner = self.inner.progress(input);
  157    178   
        self
  158    179   
    }
  159         -
    /// <p>The progress of the write process, as a percentage.</p>
         180  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The progress of the write process, as a percentage.</p>
         181  +
    /* FluentBuilderGenerator.kt:500 */
  160    182   
    pub fn set_progress(mut self, input: ::std::option::Option<i32>) -> Self {
  161    183   
        self.inner = self.inner.set_progress(input);
  162    184   
        self
  163    185   
    }
  164         -
    /// <p>The progress of the write process, as a percentage.</p>
         186  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The progress of the write process, as a percentage.</p>
         187  +
    /* FluentBuilderGenerator.kt:520 */
  165    188   
    pub fn get_progress(&self) -> &::std::option::Option<i32> {
  166    189   
        self.inner.get_progress()
  167    190   
    }
  168         -
    /// <p>The data to write to the block.</p>
         191  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The data to write to the block.</p>
  169    192   
    /// <p>The block data is not signed as part of the Signature Version 4 signing process. As a result, you must generate and provide a Base64-encoded SHA256 checksum for the block data using the <b>x-amz-Checksum</b> header. Also, you must specify the checksum algorithm using the <b>x-amz-Checksum-Algorithm</b> header. The checksum that you provide is part of the Signature Version 4 signing process. It is validated against a checksum generated by Amazon EBS to ensure the validity and authenticity of the data. If the checksums do not correspond, the request fails. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-checksums"> Using checksums with the EBS direct APIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         193  +
    /* FluentBuilderGenerator.kt:500 */
  170    194   
    pub fn block_data(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
  171    195   
        self.inner = self.inner.block_data(input);
  172    196   
        self
  173    197   
    }
  174         -
    /// <p>The data to write to the block.</p>
         198  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The data to write to the block.</p>
  175    199   
    /// <p>The block data is not signed as part of the Signature Version 4 signing process. As a result, you must generate and provide a Base64-encoded SHA256 checksum for the block data using the <b>x-amz-Checksum</b> header. Also, you must specify the checksum algorithm using the <b>x-amz-Checksum-Algorithm</b> header. The checksum that you provide is part of the Signature Version 4 signing process. It is validated against a checksum generated by Amazon EBS to ensure the validity and authenticity of the data. If the checksums do not correspond, the request fails. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-checksums"> Using checksums with the EBS direct APIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         200  +
    /* FluentBuilderGenerator.kt:500 */
  176    201   
    pub fn set_block_data(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
  177    202   
        self.inner = self.inner.set_block_data(input);
  178    203   
        self
  179    204   
    }
  180         -
    /// <p>The data to write to the block.</p>
         205  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The data to write to the block.</p>
  181    206   
    /// <p>The block data is not signed as part of the Signature Version 4 signing process. As a result, you must generate and provide a Base64-encoded SHA256 checksum for the block data using the <b>x-amz-Checksum</b> header. Also, you must specify the checksum algorithm using the <b>x-amz-Checksum-Algorithm</b> header. The checksum that you provide is part of the Signature Version 4 signing process. It is validated against a checksum generated by Amazon EBS to ensure the validity and authenticity of the data. If the checksums do not correspond, the request fails. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-checksums"> Using checksums with the EBS direct APIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         207  +
    /* FluentBuilderGenerator.kt:520 */
  182    208   
    pub fn get_block_data(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
  183    209   
        self.inner.get_block_data()
  184    210   
    }
  185         -
    /// <p>The size of the data to write to the block, in bytes. Currently, the only supported size is <code>524288</code>.</p>
         211  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The size of the data to write to the block, in bytes. Currently, the only supported size is <code>524288</code>.</p>
  186    212   
    /// <p>Valid values: <code>524288</code></p>
         213  +
    /* FluentBuilderGenerator.kt:500 */
  187    214   
    pub fn data_length(mut self, input: i32) -> Self {
  188    215   
        self.inner = self.inner.data_length(input);
  189    216   
        self
  190    217   
    }
  191         -
    /// <p>The size of the data to write to the block, in bytes. Currently, the only supported size is <code>524288</code>.</p>
         218  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The size of the data to write to the block, in bytes. Currently, the only supported size is <code>524288</code>.</p>
  192    219   
    /// <p>Valid values: <code>524288</code></p>
         220  +
    /* FluentBuilderGenerator.kt:500 */
  193    221   
    pub fn set_data_length(mut self, input: ::std::option::Option<i32>) -> Self {
  194    222   
        self.inner = self.inner.set_data_length(input);
  195    223   
        self
  196    224   
    }
  197         -
    /// <p>The size of the data to write to the block, in bytes. Currently, the only supported size is <code>524288</code>.</p>
         225  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The size of the data to write to the block, in bytes. Currently, the only supported size is <code>524288</code>.</p>
  198    226   
    /// <p>Valid values: <code>524288</code></p>
         227  +
    /* FluentBuilderGenerator.kt:520 */
  199    228   
    pub fn get_data_length(&self) -> &::std::option::Option<i32> {
  200    229   
        self.inner.get_data_length()
  201    230   
    }
  202         -
    /// <p>The algorithm used to generate the checksum. Currently, the only supported algorithm is <code>SHA256</code>.</p>
         231  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The algorithm used to generate the checksum. Currently, the only supported algorithm is <code>SHA256</code>.</p>
         232  +
    /* FluentBuilderGenerator.kt:500 */
  203    233   
    pub fn checksum_algorithm(mut self, input: crate::types::ChecksumAlgorithm) -> Self {
  204    234   
        self.inner = self.inner.checksum_algorithm(input);
  205    235   
        self
  206    236   
    }
  207         -
    /// <p>The algorithm used to generate the checksum. Currently, the only supported algorithm is <code>SHA256</code>.</p>
         237  +
    /// /* FluentBuilderGenerator.kt:498 */<p>The algorithm used to generate the checksum. Currently, the only supported algorithm is <code>SHA256</code>.</p>
         238  +
    /* FluentBuilderGenerator.kt:500 */
  208    239   
    pub fn set_checksum_algorithm(mut self, input: ::std::option::Option<crate::types::ChecksumAlgorithm>) -> Self {
  209    240   
        self.inner = self.inner.set_checksum_algorithm(input);
  210    241   
        self
  211    242   
    }
  212         -
    /// <p>The algorithm used to generate the checksum. Currently, the only supported algorithm is <code>SHA256</code>.</p>
         243  +
    /// /* FluentBuilderGenerator.kt:518 */<p>The algorithm used to generate the checksum. Currently, the only supported algorithm is <code>SHA256</code>.</p>
         244  +
    /* FluentBuilderGenerator.kt:520 */
  213    245   
    pub fn get_checksum_algorithm(&self) -> &::std::option::Option<crate::types::ChecksumAlgorithm> {
  214    246   
        self.inner.get_checksum_algorithm()
  215    247   
    }
         248  +
    /* FluentBuilderGenerator.kt:282 */
  216    249   
}

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/operation/start_snapshot.rs

@@ -1,1 +40,49 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* OperationGenerator.kt:77 */
    2      3   
/// Orchestration and serialization glue logic for `StartSnapshot`.
           4  +
/* RustType.kt:516 */
    3      5   
#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
           6  +
/* RustType.kt:516 */
    4      7   
#[non_exhaustive]
           8  +
/* OperationGenerator.kt:84 */
    5      9   
pub struct StartSnapshot;
          10  +
/* OperationGenerator.kt:85 */
    6     11   
impl StartSnapshot {
    7         -
    /// Creates a new `StartSnapshot`
          12  +
    /// /* OperationGenerator.kt:86 */Creates a new `StartSnapshot`
          13  +
    /* OperationGenerator.kt:87 */
    8     14   
    pub fn new() -> Self {
          15  +
        /* OperationGenerator.kt:88 */
    9     16   
        Self
          17  +
        /* OperationGenerator.kt:87 */
   10     18   
    }
          19  +
    /* OperationGenerator.kt:138 */
   11     20   
    pub(crate) async fn orchestrate(
   12     21   
        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
   13     22   
        input: crate::operation::start_snapshot::StartSnapshotInput,
   14     23   
    ) -> ::std::result::Result<
   15     24   
        crate::operation::start_snapshot::StartSnapshotOutput,
   16     25   
        ::aws_smithy_runtime_api::client::result::SdkError<
   17     26   
            crate::operation::start_snapshot::StartSnapshotError,
   18     27   
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
   19     28   
        >,
   20     29   
    > {
@@ -66,75 +416,677 @@
   86     95   
                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
   87     96   
            }
   88     97   
            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
   89     98   
                config_override,
   90     99   
                client_config.config.clone(),
   91    100   
                &client_config.runtime_components,
   92    101   
            ));
   93    102   
        }
   94    103   
        runtime_plugins
   95    104   
    }
         105  +
    /* OperationGenerator.kt:85 */
   96    106   
}
         107  +
/* OperationRuntimePluginGenerator.kt:55 */
   97    108   
impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for StartSnapshot {
   98    109   
    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
   99    110   
        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("StartSnapshot");
  100    111   
  101    112   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
  102    113   
            StartSnapshotRequestSerializer,
  103    114   
        ));
  104    115   
        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
  105    116   
            StartSnapshotResponseDeserializer,
  106    117   
        ));
  107    118   
  108    119   
        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
  109    120   
            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
  110    121   
        ));
  111    122   
  112    123   
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::SensitiveOutput);
  113    124   
        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("StartSnapshot", "EBS"));
  114    125   
  115    126   
        ::std::option::Option::Some(cfg.freeze())
  116    127   
    }
  117    128   
  118    129   
    fn runtime_components(
  119    130   
        &self,
  120    131   
        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
  121    132   
    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
  122    133   
        #[allow(unused_mut)]
  123    134   
        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("StartSnapshot")
  124    135   
            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
  125    136   
            .with_interceptor(StartSnapshotEndpointParamsInterceptor)
  126    137   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
  127    138   
                crate::operation::start_snapshot::StartSnapshotError,
  128    139   
            >::new())
  129    140   
            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
  130    141   
                crate::operation::start_snapshot::StartSnapshotError,
  131    142   
            >::new());
  132    143   
  133    144   
        ::std::borrow::Cow::Owned(rcb)
  134    145   
    }
  135    146   
}
  136    147   
         148  +
/* ResponseDeserializerGenerator.kt:64 */
  137    149   
#[derive(Debug)]
  138    150   
struct StartSnapshotResponseDeserializer;
  139    151   
impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for StartSnapshotResponseDeserializer {
  140    152   
    fn deserialize_nonstreaming(
  141    153   
        &self,
  142    154   
        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
  143    155   
    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
  144    156   
        let (success, status) = (response.status().is_success(), response.status().as_u16());
  145    157   
        let headers = response.headers();
  146    158   
        let body = response.body().bytes().expect("body loaded");
  147    159   
        #[allow(unused_mut)]
  148    160   
        let mut force_error = false;
  149    161   
  150    162   
        let parse_result = if !success && status != 201 || force_error {
  151    163   
            crate::protocol_serde::shape_start_snapshot::de_start_snapshot_http_error(status, headers, body)
  152    164   
        } else {
  153    165   
            crate::protocol_serde::shape_start_snapshot::de_start_snapshot_http_response(status, headers, body)
  154    166   
        };
  155    167   
        crate::protocol_serde::type_erase_result(parse_result)
  156    168   
    }
  157    169   
}
         170  +
/* RequestSerializerGenerator.kt:67 */
  158    171   
#[derive(Debug)]
  159    172   
struct StartSnapshotRequestSerializer;
  160    173   
impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for StartSnapshotRequestSerializer {
  161    174   
    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
  162    175   
    fn serialize_input(
  163    176   
        &self,
  164    177   
        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
  165    178   
        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  166    179   
    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
  167    180   
        let input = input
  168    181   
            .downcast::<crate::operation::start_snapshot::StartSnapshotInput>()
  169    182   
            .expect("correct type");
  170    183   
        let _header_serialization_settings = _cfg
  171    184   
            .load::<crate::serialization_settings::HeaderSerializationSettings>()
  172    185   
            .cloned()
  173    186   
            .unwrap_or_default();
  174    187   
        let mut request_builder = {
  175    188   
            fn uri_base(
  176    189   
                _input: &crate::operation::start_snapshot::StartSnapshotInput,
  177    190   
                output: &mut ::std::string::String,
  178    191   
            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
  179    192   
                use ::std::fmt::Write as _;
  180    193   
                ::std::write!(output, "/snapshots").expect("formatting should succeed");
  181    194   
                ::std::result::Result::Ok(())
  182    195   
            }
  183    196   
            #[allow(clippy::unnecessary_wraps)]
  184    197   
            fn update_http_builder(
  185    198   
                input: &crate::operation::start_snapshot::StartSnapshotInput,
  186    199   
                builder: ::http::request::Builder,
  187    200   
            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
  188    201   
                let mut uri = ::std::string::String::new();
  189    202   
                uri_base(input, &mut uri)?;
  190    203   
                ::std::result::Result::Ok(builder.method("POST").uri(uri))
  191    204   
            }
  192    205   
            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
  193    206   
            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/json");
  194    207   
            builder
  195    208   
        };
  196    209   
        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_start_snapshot::ser_start_snapshot_input(&input)?);
  197    210   
        if let Some(content_length) = body.content_length() {
  198    211   
            let content_length = content_length.to_string();
  199    212   
            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
  200    213   
        }
  201    214   
        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
  202    215   
    }
  203    216   
}
         217  +
/* EndpointParamsInterceptorGenerator.kt:86 */
  204    218   
#[derive(Debug)]
  205    219   
struct StartSnapshotEndpointParamsInterceptor;
  206    220   
  207    221   
impl ::aws_smithy_runtime_api::client::interceptors::Intercept for StartSnapshotEndpointParamsInterceptor {
  208    222   
    fn name(&self) -> &'static str {
  209    223   
        "StartSnapshotEndpointParamsInterceptor"
  210    224   
    }
  211    225   
  212    226   
    fn read_before_execution(
  213    227   
        &self,
  214    228   
        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
  215    229   
            '_,
  216    230   
            ::aws_smithy_runtime_api::client::interceptors::context::Input,
  217    231   
            ::aws_smithy_runtime_api::client::interceptors::context::Output,
  218    232   
            ::aws_smithy_runtime_api::client::interceptors::context::Error,
  219    233   
        >,
  220    234   
        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
  221    235   
    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
  222    236   
        let _input = context
  223    237   
            .input()
  224    238   
            .downcast_ref::<StartSnapshotInput>()
  225    239   
            .ok_or("failed to downcast to StartSnapshotInput")?;
  226    240   
  227    241   
        let params = crate::config::endpoint::Params::builder().build().map_err(|err| {
  228    242   
            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
  229    243   
        })?;
  230    244   
        cfg.interceptor_state()
  231    245   
            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
  232    246   
        ::std::result::Result::Ok(())
  233    247   
    }
  234    248   
}
  235    249   
  236    250   
// The get_* functions below are generated from JMESPath expressions in the
  237    251   
// operationContextParams trait. They target the operation's input shape.
  238    252   
         253  +
/* OperationErrorGenerator.kt:79 */
  239    254   
/// Error type for the `StartSnapshotError` operation.
         255  +
/* RustType.kt:516 */
  240    256   
#[non_exhaustive]
         257  +
/* RustType.kt:516 */
  241    258   
#[derive(::std::fmt::Debug)]
  242         -
pub enum StartSnapshotError {
  243         -
    /// <p>You do not have sufficient access to perform this action.</p>
         259  +
pub /* OperationErrorGenerator.kt:81 */ enum StartSnapshotError {
         260  +
    /// /* OperationErrorGenerator.kt:83 */<p>You do not have sufficient access to perform this action.</p>
         261  +
    /* OperationErrorGenerator.kt:86 */
  244    262   
    AccessDeniedError(crate::types::error::AccessDeniedError),
  245         -
    /// <p>You have reached the limit for concurrent API requests. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapi-performance">Optimizing performance of the EBS direct APIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         263  +
    /// /* OperationErrorGenerator.kt:83 */<p>You have reached the limit for concurrent API requests. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapi-performance">Optimizing performance of the EBS direct APIs</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         264  +
    /* OperationErrorGenerator.kt:86 */
  246    265   
    ConcurrentLimitExceededError(crate::types::error::ConcurrentLimitExceededError),
  247         -
    /// <p>The request uses the same client token as a previous, but non-identical request.</p>
         266  +
    /// /* OperationErrorGenerator.kt:83 */<p>The request uses the same client token as a previous, but non-identical request.</p>
         267  +
    /* OperationErrorGenerator.kt:86 */
  248    268   
    ConflictError(crate::types::error::ConflictError),
  249         -
    /// <p>An internal error has occurred.</p>
         269  +
    /// /* OperationErrorGenerator.kt:83 */<p>An internal error has occurred.</p>
         270  +
    /* OperationErrorGenerator.kt:86 */
  250    271   
    InternalServerError(crate::types::error::InternalServerError),
  251         -
    /// <p>The number of API requests has exceed the maximum allowed API request throttling limit.</p>
         272  +
    /// /* OperationErrorGenerator.kt:83 */<p>The number of API requests has exceed the maximum allowed API request throttling limit.</p>
         273  +
    /* OperationErrorGenerator.kt:86 */
  252    274   
    RequestThrottledError(crate::types::error::RequestThrottledError),
  253         -
    /// <p>The specified resource does not exist.</p>
         275  +
    /// /* OperationErrorGenerator.kt:83 */<p>The specified resource does not exist.</p>
         276  +
    /* OperationErrorGenerator.kt:86 */
  254    277   
    ResourceNotFoundError(crate::types::error::ResourceNotFoundError),
  255         -
    /// <p>Your current service quotas do not allow you to perform this action.</p>
         278  +
    /// /* OperationErrorGenerator.kt:83 */<p>Your current service quotas do not allow you to perform this action.</p>
         279  +
    /* OperationErrorGenerator.kt:86 */
  256    280   
    ServiceQuotaExceededError(crate::types::error::ServiceQuotaExceededError),
  257         -
    /// <p>The input fails to satisfy the constraints of the EBS direct APIs.</p>
         281  +
    /// /* OperationErrorGenerator.kt:83 */<p>The input fails to satisfy the constraints of the EBS direct APIs.</p>
         282  +
    /* OperationErrorGenerator.kt:86 */
  258    283   
    ValidationError(crate::types::error::ValidationError),
         284  +
    /* OperationErrorGenerator.kt:88 */
  259    285   
    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
  260    286   
    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
  261    287   
    variable wildcard pattern and check `.code()`:
  262    288   
     \
  263    289   
    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
  264    290   
     \
  265    291   
    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-StartSnapshotError) for what information is available for the error.")]
  266    292   
    Unhandled(crate::error::sealed_unhandled::Unhandled),
         293  +
    /* OperationErrorGenerator.kt:81 */
  267    294   
}
         295  +
/* OperationErrorGenerator.kt:218 */
  268    296   
impl StartSnapshotError {
         297  +
    /* OperationErrorGenerator.kt:219 */
  269    298   
    /// Creates the `StartSnapshotError::Unhandled` variant from any error type.
  270    299   
    pub fn unhandled(
  271    300   
        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
  272    301   
    ) -> Self {
  273    302   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  274    303   
            source: err.into(),
  275    304   
            meta: ::std::default::Default::default(),
  276    305   
        })
  277    306   
    }
  278    307   
  279    308   
    /// Creates the `StartSnapshotError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
  280    309   
    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
  281    310   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  282    311   
            source: err.clone().into(),
  283    312   
            meta: err,
  284    313   
        })
  285    314   
    }
  286         -
    ///
         315  +
    /// /* OperationErrorGenerator.kt:236 */
  287    316   
    /// Returns error metadata, which includes the error code, message,
  288    317   
    /// request ID, and potentially additional information.
  289    318   
    ///
         319  +
    /* OperationErrorGenerator.kt:242 */
  290    320   
    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         321  +
        /* OperationErrorGenerator.kt:243 */
  291    322   
        match self {
         323  +
            /* OperationErrorGenerator.kt:246 */
  292    324   
            Self::AccessDeniedError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         325  +
            /* OperationErrorGenerator.kt:246 */
  293    326   
            Self::ConcurrentLimitExceededError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
  294         -
            Self::ConflictError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         327  +
            /* OperationErrorGenerator.kt:246 */ Self::ConflictError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         328  +
            /* OperationErrorGenerator.kt:246 */
  295    329   
            Self::InternalServerError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         330  +
            /* OperationErrorGenerator.kt:246 */
  296    331   
            Self::RequestThrottledError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         332  +
            /* OperationErrorGenerator.kt:246 */
  297    333   
            Self::ResourceNotFoundError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         334  +
            /* OperationErrorGenerator.kt:246 */
  298    335   
            Self::ServiceQuotaExceededError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
  299         -
            Self::ValidationError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
  300         -
            Self::Unhandled(e) => &e.meta,
         336  +
            /* OperationErrorGenerator.kt:246 */ Self::ValidationError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
         337  +
            /* OperationErrorGenerator.kt:251 */ Self::Unhandled(e) => &e.meta,
         338  +
            /* OperationErrorGenerator.kt:243 */
  301    339   
        }
         340  +
        /* OperationErrorGenerator.kt:242 */
  302    341   
    }
         342  +
    /* OperationErrorGenerator.kt:257 */
  303    343   
    /// Returns `true` if the error kind is `StartSnapshotError::AccessDeniedError`.
         344  +
    /* OperationErrorGenerator.kt:258 */
  304    345   
    pub fn is_access_denied_error(&self) -> bool {
         346  +
        /* OperationErrorGenerator.kt:259 */
  305    347   
        matches!(self, Self::AccessDeniedError(_))
         348  +
        /* OperationErrorGenerator.kt:258 */
  306    349   
    }
         350  +
    /* OperationErrorGenerator.kt:257 */
  307    351   
    /// Returns `true` if the error kind is `StartSnapshotError::ConcurrentLimitExceededError`.
         352  +
    /* OperationErrorGenerator.kt:258 */
  308    353   
    pub fn is_concurrent_limit_exceeded_error(&self) -> bool {
         354  +
        /* OperationErrorGenerator.kt:259 */
  309    355   
        matches!(self, Self::ConcurrentLimitExceededError(_))
         356  +
        /* OperationErrorGenerator.kt:258 */
  310    357   
    }
         358  +
    /* OperationErrorGenerator.kt:257 */
  311    359   
    /// Returns `true` if the error kind is `StartSnapshotError::ConflictError`.
         360  +
    /* OperationErrorGenerator.kt:258 */
  312    361   
    pub fn is_conflict_error(&self) -> bool {
         362  +
        /* OperationErrorGenerator.kt:259 */
  313    363   
        matches!(self, Self::ConflictError(_))
         364  +
        /* OperationErrorGenerator.kt:258 */
  314    365   
    }
         366  +
    /* OperationErrorGenerator.kt:257 */
  315    367   
    /// Returns `true` if the error kind is `StartSnapshotError::InternalServerError`.
         368  +
    /* OperationErrorGenerator.kt:258 */
  316    369   
    pub fn is_internal_server_error(&self) -> bool {
         370  +
        /* OperationErrorGenerator.kt:259 */
  317    371   
        matches!(self, Self::InternalServerError(_))
         372  +
        /* OperationErrorGenerator.kt:258 */
  318    373   
    }
         374  +
    /* OperationErrorGenerator.kt:257 */
  319    375   
    /// Returns `true` if the error kind is `StartSnapshotError::RequestThrottledError`.
         376  +
    /* OperationErrorGenerator.kt:258 */
  320    377   
    pub fn is_request_throttled_error(&self) -> bool {
         378  +
        /* OperationErrorGenerator.kt:259 */
  321    379   
        matches!(self, Self::RequestThrottledError(_))
         380  +
        /* OperationErrorGenerator.kt:258 */
  322    381   
    }
         382  +
    /* OperationErrorGenerator.kt:257 */
  323    383   
    /// Returns `true` if the error kind is `StartSnapshotError::ResourceNotFoundError`.
         384  +
    /* OperationErrorGenerator.kt:258 */
  324    385   
    pub fn is_resource_not_found_error(&self) -> bool {
         386  +
        /* OperationErrorGenerator.kt:259 */
  325    387   
        matches!(self, Self::ResourceNotFoundError(_))
         388  +
        /* OperationErrorGenerator.kt:258 */
  326    389   
    }
         390  +
    /* OperationErrorGenerator.kt:257 */
  327    391   
    /// Returns `true` if the error kind is `StartSnapshotError::ServiceQuotaExceededError`.
         392  +
    /* OperationErrorGenerator.kt:258 */
  328    393   
    pub fn is_service_quota_exceeded_error(&self) -> bool {
         394  +
        /* OperationErrorGenerator.kt:259 */
  329    395   
        matches!(self, Self::ServiceQuotaExceededError(_))
         396  +
        /* OperationErrorGenerator.kt:258 */
  330    397   
    }
         398  +
    /* OperationErrorGenerator.kt:257 */
  331    399   
    /// Returns `true` if the error kind is `StartSnapshotError::ValidationError`.
         400  +
    /* OperationErrorGenerator.kt:258 */
  332    401   
    pub fn is_validation_error(&self) -> bool {
         402  +
        /* OperationErrorGenerator.kt:259 */
  333    403   
        matches!(self, Self::ValidationError(_))
         404  +
        /* OperationErrorGenerator.kt:258 */
  334    405   
    }
         406  +
    /* OperationErrorGenerator.kt:218 */
  335    407   
}
         408  +
/* OperationErrorGenerator.kt:269 */
  336    409   
impl ::std::error::Error for StartSnapshotError {
         410  +
    /* OperationErrorGenerator.kt:270 */
  337    411   
    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
         412  +
        /* OperationErrorGenerator.kt:318 */
  338    413   
        match self {
  339         -
            Self::AccessDeniedError(_inner) => ::std::option::Option::Some(_inner),
  340         -
            Self::ConcurrentLimitExceededError(_inner) => ::std::option::Option::Some(_inner),
  341         -
            Self::ConflictError(_inner) => ::std::option::Option::Some(_inner),
  342         -
            Self::InternalServerError(_inner) => ::std::option::Option::Some(_inner),
  343         -
            Self::RequestThrottledError(_inner) => ::std::option::Option::Some(_inner),
  344         -
            Self::ResourceNotFoundError(_inner) => ::std::option::Option::Some(_inner),
  345         -
            Self::ServiceQuotaExceededError(_inner) => ::std::option::Option::Some(_inner),
  346         -
            Self::ValidationError(_inner) => ::std::option::Option::Some(_inner),
  347         -
            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
         414  +
            /* OperationErrorGenerator.kt:321 */
         415  +
            Self::AccessDeniedError(_inner) =>
         416  +
            /* OperationErrorGenerator.kt:283 */
         417  +
            {
         418  +
                ::std::option::Option::Some(_inner)
         419  +
            }
         420  +
            ,
         421  +
            /* OperationErrorGenerator.kt:321 */
         422  +
            Self::ConcurrentLimitExceededError(_inner) =>
         423  +
            /* OperationErrorGenerator.kt:283 */
         424  +
            {
         425  +
                ::std::option::Option::Some(_inner)
         426  +
            }
         427  +
            ,
         428  +
            /* OperationErrorGenerator.kt:321 */
         429  +
            Self::ConflictError(_inner) =>
         430  +
            /* OperationErrorGenerator.kt:283 */
         431  +
            {
         432  +
                ::std::option::Option::Some(_inner)
         433  +
            }
         434  +
            ,
         435  +
            /* OperationErrorGenerator.kt:321 */
         436  +
            Self::InternalServerError(_inner) =>
         437  +
            /* OperationErrorGenerator.kt:283 */
         438  +
            {
         439  +
                ::std::option::Option::Some(_inner)
         440  +
            }
         441  +
            ,
         442  +
            /* OperationErrorGenerator.kt:321 */
         443  +
            Self::RequestThrottledError(_inner) =>
         444  +
            /* OperationErrorGenerator.kt:283 */
         445  +
            {
         446  +
                ::std::option::Option::Some(_inner)
         447  +
            }
         448  +
            ,
         449  +
            /* OperationErrorGenerator.kt:321 */
         450  +
            Self::ResourceNotFoundError(_inner) =>
         451  +
            /* OperationErrorGenerator.kt:283 */
         452  +
            {
         453  +
                ::std::option::Option::Some(_inner)
         454  +
            }
         455  +
            ,
         456  +
            /* OperationErrorGenerator.kt:321 */
         457  +
            Self::ServiceQuotaExceededError(_inner) =>
         458  +
            /* OperationErrorGenerator.kt:283 */
         459  +
            {
         460  +
                ::std::option::Option::Some(_inner)
         461  +
            }
         462  +
            ,
         463  +
            /* OperationErrorGenerator.kt:321 */
         464  +
            Self::ValidationError(_inner) =>
         465  +
            /* OperationErrorGenerator.kt:283 */
         466  +
            {
         467  +
                ::std::option::Option::Some(_inner)
         468  +
            }
         469  +
            ,
         470  +
            /* OperationErrorGenerator.kt:326 */
         471  +
            Self::Unhandled(_inner) => {
         472  +
                /* OperationErrorGenerator.kt:279 */
         473  +
                ::std::option::Option::Some(&*_inner.source)
         474  +
                /* OperationErrorGenerator.kt:326 */
         475  +
            } /* OperationErrorGenerator.kt:318 */
  348    476   
        }
         477  +
        /* OperationErrorGenerator.kt:270 */
  349    478   
    }
         479  +
    /* OperationErrorGenerator.kt:269 */
  350    480   
}
         481  +
/* OperationErrorGenerator.kt:133 */
  351    482   
impl ::std::fmt::Display for StartSnapshotError {
         483  +
    /* OperationErrorGenerator.kt:134 */
  352    484   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         485  +
        /* OperationErrorGenerator.kt:318 */
  353    486   
        match self {
  354         -
            Self::AccessDeniedError(_inner) => _inner.fmt(f),
  355         -
            Self::ConcurrentLimitExceededError(_inner) => _inner.fmt(f),
  356         -
            Self::ConflictError(_inner) => _inner.fmt(f),
  357         -
            Self::InternalServerError(_inner) => _inner.fmt(f),
  358         -
            Self::RequestThrottledError(_inner) => _inner.fmt(f),
  359         -
            Self::ResourceNotFoundError(_inner) => _inner.fmt(f),
  360         -
            Self::ServiceQuotaExceededError(_inner) => _inner.fmt(f),
  361         -
            Self::ValidationError(_inner) => _inner.fmt(f),
         487  +
            /* OperationErrorGenerator.kt:321 */
         488  +
            Self::AccessDeniedError(_inner) =>
         489  +
            /* OperationErrorGenerator.kt:151 */
         490  +
            {
         491  +
                _inner.fmt(f)
         492  +
            }
         493  +
            ,
         494  +
            /* OperationErrorGenerator.kt:321 */
         495  +
            Self::ConcurrentLimitExceededError(_inner) =>
         496  +
            /* OperationErrorGenerator.kt:151 */
         497  +
            {
         498  +
                _inner.fmt(f)
         499  +
            }
         500  +
            ,
         501  +
            /* OperationErrorGenerator.kt:321 */
         502  +
            Self::ConflictError(_inner) =>
         503  +
            /* OperationErrorGenerator.kt:151 */
         504  +
            {
         505  +
                _inner.fmt(f)
         506  +
            }
         507  +
            ,
         508  +
            /* OperationErrorGenerator.kt:321 */
         509  +
            Self::InternalServerError(_inner) =>
         510  +
            /* OperationErrorGenerator.kt:151 */
         511  +
            {
         512  +
                _inner.fmt(f)
         513  +
            }
         514  +
            ,
         515  +
            /* OperationErrorGenerator.kt:321 */
         516  +
            Self::RequestThrottledError(_inner) =>
         517  +
            /* OperationErrorGenerator.kt:151 */
         518  +
            {
         519  +
                _inner.fmt(f)
         520  +
            }
         521  +
            ,
         522  +
            /* OperationErrorGenerator.kt:321 */
         523  +
            Self::ResourceNotFoundError(_inner) =>
         524  +
            /* OperationErrorGenerator.kt:151 */
         525  +
            {
         526  +
                _inner.fmt(f)
         527  +
            }
         528  +
            ,
         529  +
            /* OperationErrorGenerator.kt:321 */
         530  +
            Self::ServiceQuotaExceededError(_inner) =>
         531  +
            /* OperationErrorGenerator.kt:151 */
         532  +
            {
         533  +
                _inner.fmt(f)
         534  +
            }
         535  +
            ,
         536  +
            /* OperationErrorGenerator.kt:321 */
         537  +
            Self::ValidationError(_inner) =>
         538  +
            /* OperationErrorGenerator.kt:151 */
         539  +
            {
         540  +
                _inner.fmt(f)
         541  +
            }
         542  +
            ,
         543  +
            /* OperationErrorGenerator.kt:326 */
  362    544   
            Self::Unhandled(_inner) => {
         545  +
                /* OperationErrorGenerator.kt:139 */
  363    546   
                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
  364    547   
                    write!(f, "unhandled error ({code})")
  365    548   
                } else {
  366    549   
                    f.write_str("unhandled error")
  367    550   
                }
         551  +
                /* OperationErrorGenerator.kt:326 */
         552  +
            } /* OperationErrorGenerator.kt:318 */
  368    553   
        }
         554  +
        /* OperationErrorGenerator.kt:134 */
  369    555   
    }
  370         -
    }
         556  +
    /* OperationErrorGenerator.kt:133 */
  371    557   
}
         558  +
/* OperationErrorGenerator.kt:182 */
  372    559   
impl ::aws_smithy_types::retry::ProvideErrorKind for StartSnapshotError {
         560  +
    /* OperationErrorGenerator.kt:186 */
  373    561   
    fn code(&self) -> ::std::option::Option<&str> {
         562  +
        /* OperationErrorGenerator.kt:187 */
  374    563   
        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
         564  +
        /* OperationErrorGenerator.kt:186 */
  375    565   
    }
         566  +
    /* OperationErrorGenerator.kt:190 */
  376    567   
    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
         568  +
        /* OperationErrorGenerator.kt:197 */
  377    569   
        ::std::option::Option::None
         570  +
        /* OperationErrorGenerator.kt:190 */
  378    571   
    }
         572  +
    /* OperationErrorGenerator.kt:182 */
  379    573   
}
         574  +
/* OperationErrorGenerator.kt:163 */
  380    575   
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for StartSnapshotError {
         576  +
    /* OperationErrorGenerator.kt:164 */
  381    577   
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
         578  +
        /* OperationErrorGenerator.kt:318 */
  382    579   
        match self {
  383         -
            Self::AccessDeniedError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  384         -
            Self::ConcurrentLimitExceededError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  385         -
            Self::ConflictError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  386         -
            Self::InternalServerError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  387         -
            Self::RequestThrottledError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  388         -
            Self::ResourceNotFoundError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  389         -
            Self::ServiceQuotaExceededError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  390         -
            Self::ValidationError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
  391         -
            Self::Unhandled(_inner) => &_inner.meta,
         580  +
            /* OperationErrorGenerator.kt:321 */
         581  +
            Self::AccessDeniedError(_inner) =>
         582  +
            /* OperationErrorGenerator.kt:169 */
         583  +
            {
         584  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         585  +
            }
         586  +
            ,
         587  +
            /* OperationErrorGenerator.kt:321 */
         588  +
            Self::ConcurrentLimitExceededError(_inner) =>
         589  +
            /* OperationErrorGenerator.kt:169 */
         590  +
            {
         591  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         592  +
            }
         593  +
            ,
         594  +
            /* OperationErrorGenerator.kt:321 */
         595  +
            Self::ConflictError(_inner) =>
         596  +
            /* OperationErrorGenerator.kt:169 */
         597  +
            {
         598  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         599  +
            }
         600  +
            ,
         601  +
            /* OperationErrorGenerator.kt:321 */
         602  +
            Self::InternalServerError(_inner) =>
         603  +
            /* OperationErrorGenerator.kt:169 */
         604  +
            {
         605  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         606  +
            }
         607  +
            ,
         608  +
            /* OperationErrorGenerator.kt:321 */
         609  +
            Self::RequestThrottledError(_inner) =>
         610  +
            /* OperationErrorGenerator.kt:169 */
         611  +
            {
         612  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         613  +
            }
         614  +
            ,
         615  +
            /* OperationErrorGenerator.kt:321 */
         616  +
            Self::ResourceNotFoundError(_inner) =>
         617  +
            /* OperationErrorGenerator.kt:169 */
         618  +
            {
         619  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         620  +
            }
         621  +
            ,
         622  +
            /* OperationErrorGenerator.kt:321 */
         623  +
            Self::ServiceQuotaExceededError(_inner) =>
         624  +
            /* OperationErrorGenerator.kt:169 */
         625  +
            {
         626  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         627  +
            }
         628  +
            ,
         629  +
            /* OperationErrorGenerator.kt:321 */
         630  +
            Self::ValidationError(_inner) =>
         631  +
            /* OperationErrorGenerator.kt:169 */
         632  +
            {
         633  +
                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
         634  +
            }
         635  +
            ,
         636  +
            /* OperationErrorGenerator.kt:326 */
         637  +
            Self::Unhandled(_inner) => {
         638  +
                /* OperationErrorGenerator.kt:168 */
         639  +
                &_inner.meta
         640  +
                /* OperationErrorGenerator.kt:326 */
         641  +
            } /* OperationErrorGenerator.kt:318 */
  392    642   
        }
         643  +
        /* OperationErrorGenerator.kt:164 */
  393    644   
    }
         645  +
    /* OperationErrorGenerator.kt:163 */
  394    646   
}
         647  +
/* OperationErrorGenerator.kt:109 */
  395    648   
impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for StartSnapshotError {
         649  +
    /* OperationErrorGenerator.kt:110 */
  396    650   
    fn create_unhandled_error(
  397    651   
        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
  398    652   
        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
  399    653   
    ) -> Self {
         654  +
        /* OperationErrorGenerator.kt:121 */
  400    655   
        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
  401    656   
            source,
  402    657   
            meta: meta.unwrap_or_default(),
  403    658   
        })
         659  +
        /* OperationErrorGenerator.kt:110 */
  404    660   
    }
         661  +
    /* OperationErrorGenerator.kt:109 */
  405    662   
}
  406    663   
         664  +
/* CodegenDelegator.kt:255 */
  407    665   
pub use crate::operation::start_snapshot::_start_snapshot_output::StartSnapshotOutput;
  408    666   
         667  +
/* CodegenDelegator.kt:255 */
  409    668   
pub use crate::operation::start_snapshot::_start_snapshot_input::StartSnapshotInput;
  410    669   
         670  +
/* RustModule.kt:172 */
  411    671   
mod _start_snapshot_input;
  412    672   
         673  +
/* RustModule.kt:172 */
  413    674   
mod _start_snapshot_output;
  414    675   
  415         -
/// Builders
         676  +
/// /* CodegenDelegator.kt:51 */Builders
  416    677   
pub mod builders;

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/operation/start_snapshot/_start_snapshot_input.rs

@@ -1,1 +322,489 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    4      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    5         -
pub struct StartSnapshotInput {
    6         -
    /// <p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct StartSnapshotInput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
    7     10   
    /// <ul>
    8     11   
    /// <li>
    9     12   
    /// <p>No blocks are written to the snapshot.</p></li>
   10     13   
    /// <li>
   11     14   
    /// <p>The snapshot is not completed after writing the last block of data.</p></li>
   12     15   
    /// </ul>
   13     16   
    /// <p>If no value is specified, the timeout defaults to <code>60</code> minutes.</p>
   14     17   
    pub timeout: ::std::option::Option<i32>,
   15         -
    /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
          18  +
    /// /* StructureGenerator.kt:231 */<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
   16     19   
    /// <p>If you do not specify a client token, one is automatically generated by the AWS SDK.</p>
   17     20   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-direct-api-idempotency.html"> Idempotency for StartSnapshot API</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
   18     21   
    pub client_token: ::std::option::Option<::std::string::String>,
   19         -
    /// <p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
          22  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
   20     23   
    pub volume_size: ::std::option::Option<i64>,
   21         -
    /// <p>The tags to apply to the snapshot.</p>
          24  +
    /// /* StructureGenerator.kt:231 */<p>The tags to apply to the snapshot.</p>
   22     25   
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
   23         -
    /// <p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
          26  +
    /// /* StructureGenerator.kt:231 */<p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
   24     27   
    /// <p>If you specify a value for <b>ParentSnapshotId</b>, omit this parameter.</p>
   25     28   
    /// <p>If you specify <code>true</code>, the snapshot is encrypted using the CMK specified using the <b>KmsKeyArn</b> parameter. If no value is specified for <b>KmsKeyArn</b>, the default CMK for your account is used. If no default CMK has been specified for your account, the AWS managed CMK is used. To set a default CMK for your account, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyEbsDefaultKmsKeyId.html"> ModifyEbsDefaultKmsKeyId</a>.</p>
   26     29   
    /// <p>If your account is enabled for encryption by default, you cannot set this parameter to <code>false</code>. In this case, you can omit this parameter.</p>
   27     30   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-encryption"> Using encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
   28     31   
    pub encrypted: ::std::option::Option<bool>,
   29         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
          32  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
   30     33   
    /// <p>If you specify a <b>ParentSnapshotId</b>, omit this parameter; the snapshot will be encrypted using the same CMK that was used to encrypt the parent snapshot.</p>
   31     34   
    /// <p>If <b>Encrypted</b> is set to <code>true</code>, you must specify a CMK ARN.</p>
   32     35   
    pub kms_key_arn: ::std::option::Option<::std::string::String>,
   33         -
    /// <p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
          36  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
   34     37   
    /// <p>If your account is enabled for encryption by default, you cannot use an unencrypted snapshot as a parent snapshot. You must first create an encrypted copy of the parent snapshot using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopySnapshot.html">CopySnapshot</a>.</p>
   35     38   
    pub parent_snapshot_id: ::std::option::Option<::std::string::String>,
   36         -
    /// <p>A description for the snapshot.</p>
          39  +
    /// /* StructureGenerator.kt:231 */<p>A description for the snapshot.</p>
   37     40   
    pub description: ::std::option::Option<::std::string::String>,
          41  +
    /* StructureGenerator.kt:201 */
   38     42   
}
          43  +
/* StructureGenerator.kt:135 */
   39     44   
impl StartSnapshotInput {
   40         -
    /// <p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
          45  +
    /// /* StructureGenerator.kt:231 */<p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
   41     46   
    /// <ul>
   42     47   
    /// <li>
   43     48   
    /// <p>No blocks are written to the snapshot.</p></li>
   44     49   
    /// <li>
   45     50   
    /// <p>The snapshot is not completed after writing the last block of data.</p></li>
   46     51   
    /// </ul>
   47     52   
    /// <p>If no value is specified, the timeout defaults to <code>60</code> minutes.</p>
          53  +
    /* StructureGenerator.kt:166 */
   48     54   
    pub fn timeout(&self) -> ::std::option::Option<i32> {
          55  +
        /* StructureGenerator.kt:168 */
   49     56   
        self.timeout
          57  +
        /* StructureGenerator.kt:166 */
   50     58   
    }
   51         -
    /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
          59  +
    /// /* StructureGenerator.kt:231 */<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
   52     60   
    /// <p>If you do not specify a client token, one is automatically generated by the AWS SDK.</p>
   53     61   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-direct-api-idempotency.html"> Idempotency for StartSnapshot API</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
          62  +
    /* StructureGenerator.kt:166 */
   54     63   
    pub fn client_token(&self) -> ::std::option::Option<&str> {
          64  +
        /* StructureGenerator.kt:169 */
   55     65   
        self.client_token.as_deref()
          66  +
        /* StructureGenerator.kt:166 */
   56     67   
    }
   57         -
    /// <p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
          68  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
          69  +
    /* StructureGenerator.kt:166 */
   58     70   
    pub fn volume_size(&self) -> ::std::option::Option<i64> {
          71  +
        /* StructureGenerator.kt:168 */
   59     72   
        self.volume_size
          73  +
        /* StructureGenerator.kt:166 */
   60     74   
    }
   61         -
    /// <p>The tags to apply to the snapshot.</p>
   62         -
    ///
   63         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
          75  +
    /// /* StructureGenerator.kt:231 */<p>The tags to apply to the snapshot.</p>
          76  +
    /// /* StructureGenerator.kt:162 */
          77  +
    /// /* StructureGenerator.kt:163 */If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
          78  +
    /* StructureGenerator.kt:166 */
   64     79   
    pub fn tags(&self) -> &[crate::types::Tag] {
   65         -
        self.tags.as_deref().unwrap_or_default()
   66         -
    }
   67         -
    /// <p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
          80  +
        /* StructureGenerator.kt:169 */
          81  +
        self.tags
          82  +
            .as_deref()
          83  +
            /* StructureGenerator.kt:175 */
          84  +
            .unwrap_or_default()
          85  +
        /* StructureGenerator.kt:166 */
          86  +
    }
          87  +
    /// /* StructureGenerator.kt:231 */<p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
   68     88   
    /// <p>If you specify a value for <b>ParentSnapshotId</b>, omit this parameter.</p>
   69     89   
    /// <p>If you specify <code>true</code>, the snapshot is encrypted using the CMK specified using the <b>KmsKeyArn</b> parameter. If no value is specified for <b>KmsKeyArn</b>, the default CMK for your account is used. If no default CMK has been specified for your account, the AWS managed CMK is used. To set a default CMK for your account, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyEbsDefaultKmsKeyId.html"> ModifyEbsDefaultKmsKeyId</a>.</p>
   70     90   
    /// <p>If your account is enabled for encryption by default, you cannot set this parameter to <code>false</code>. In this case, you can omit this parameter.</p>
   71     91   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-encryption"> Using encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
          92  +
    /* StructureGenerator.kt:166 */
   72     93   
    pub fn encrypted(&self) -> ::std::option::Option<bool> {
          94  +
        /* StructureGenerator.kt:168 */
   73     95   
        self.encrypted
          96  +
        /* StructureGenerator.kt:166 */
   74     97   
    }
   75         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
          98  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
   76     99   
    /// <p>If you specify a <b>ParentSnapshotId</b>, omit this parameter; the snapshot will be encrypted using the same CMK that was used to encrypt the parent snapshot.</p>
   77    100   
    /// <p>If <b>Encrypted</b> is set to <code>true</code>, you must specify a CMK ARN.</p>
         101  +
    /* StructureGenerator.kt:166 */
   78    102   
    pub fn kms_key_arn(&self) -> ::std::option::Option<&str> {
         103  +
        /* StructureGenerator.kt:169 */
   79    104   
        self.kms_key_arn.as_deref()
         105  +
        /* StructureGenerator.kt:166 */
   80    106   
    }
   81         -
    /// <p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
         107  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
   82    108   
    /// <p>If your account is enabled for encryption by default, you cannot use an unencrypted snapshot as a parent snapshot. You must first create an encrypted copy of the parent snapshot using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopySnapshot.html">CopySnapshot</a>.</p>
         109  +
    /* StructureGenerator.kt:166 */
   83    110   
    pub fn parent_snapshot_id(&self) -> ::std::option::Option<&str> {
         111  +
        /* StructureGenerator.kt:169 */
   84    112   
        self.parent_snapshot_id.as_deref()
         113  +
        /* StructureGenerator.kt:166 */
   85    114   
    }
   86         -
    /// <p>A description for the snapshot.</p>
         115  +
    /// /* StructureGenerator.kt:231 */<p>A description for the snapshot.</p>
         116  +
    /* StructureGenerator.kt:166 */
   87    117   
    pub fn description(&self) -> ::std::option::Option<&str> {
         118  +
        /* StructureGenerator.kt:169 */
   88    119   
        self.description.as_deref()
         120  +
        /* StructureGenerator.kt:166 */
   89    121   
    }
         122  +
    /* StructureGenerator.kt:135 */
   90    123   
}
         124  +
/* StructureGenerator.kt:101 */
   91    125   
impl ::std::fmt::Debug for StartSnapshotInput {
         126  +
    /* StructureGenerator.kt:105 */
   92    127   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         128  +
        /* StructureGenerator.kt:106 */
   93    129   
        let mut formatter = f.debug_struct("StartSnapshotInput");
         130  +
        /* StructureGenerator.kt:121 */
   94    131   
        formatter.field("timeout", &self.timeout);
         132  +
        /* StructureGenerator.kt:121 */
   95    133   
        formatter.field("client_token", &self.client_token);
         134  +
        /* StructureGenerator.kt:121 */
   96    135   
        formatter.field("volume_size", &self.volume_size);
         136  +
        /* StructureGenerator.kt:121 */
   97    137   
        formatter.field("tags", &self.tags);
         138  +
        /* StructureGenerator.kt:121 */
   98    139   
        formatter.field("encrypted", &self.encrypted);
         140  +
        /* StructureGenerator.kt:121 */
   99    141   
        formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
         142  +
        /* StructureGenerator.kt:121 */
  100    143   
        formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
         144  +
        /* StructureGenerator.kt:121 */
  101    145   
        formatter.field("description", &self.description);
         146  +
        /* StructureGenerator.kt:126 */
  102    147   
        formatter.finish()
         148  +
        /* StructureGenerator.kt:105 */
  103    149   
    }
         150  +
    /* StructureGenerator.kt:101 */
  104    151   
}
         152  +
/* ClientCodegenVisitor.kt:237 */
  105    153   
impl StartSnapshotInput {
  106         -
    /// Creates a new builder-style object to manufacture [`StartSnapshotInput`](crate::operation::start_snapshot::StartSnapshotInput).
         154  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`StartSnapshotInput`](crate::operation::start_snapshot::StartSnapshotInput).
         155  +
    /* BuilderGenerator.kt:175 */
  107    156   
    pub fn builder() -> crate::operation::start_snapshot::builders::StartSnapshotInputBuilder {
         157  +
        /* BuilderGenerator.kt:176 */
  108    158   
        crate::operation::start_snapshot::builders::StartSnapshotInputBuilder::default()
         159  +
        /* BuilderGenerator.kt:175 */
  109    160   
    }
         161  +
    /* ClientCodegenVisitor.kt:237 */
  110    162   
}
  111    163   
  112         -
/// A builder for [`StartSnapshotInput`](crate::operation::start_snapshot::StartSnapshotInput).
         164  +
/// /* BuilderGenerator.kt:342 */A builder for [`StartSnapshotInput`](crate::operation::start_snapshot::StartSnapshotInput).
         165  +
/* RustType.kt:516 */
  113    166   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         167  +
/* RustType.kt:516 */
  114    168   
#[non_exhaustive]
         169  +
/* BuilderGenerator.kt:345 */
  115    170   
pub struct StartSnapshotInputBuilder {
  116         -
    pub(crate) timeout: ::std::option::Option<i32>,
  117         -
    pub(crate) client_token: ::std::option::Option<::std::string::String>,
  118         -
    pub(crate) volume_size: ::std::option::Option<i64>,
  119         -
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
  120         -
    pub(crate) encrypted: ::std::option::Option<bool>,
  121         -
    pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
  122         -
    pub(crate) parent_snapshot_id: ::std::option::Option<::std::string::String>,
  123         -
    pub(crate) description: ::std::option::Option<::std::string::String>,
         171  +
    /* BuilderGenerator.kt:275 */ pub(crate) timeout: ::std::option::Option<i32>,
         172  +
    /* BuilderGenerator.kt:275 */ pub(crate) client_token: ::std::option::Option<::std::string::String>,
         173  +
    /* BuilderGenerator.kt:275 */ pub(crate) volume_size: ::std::option::Option<i64>,
         174  +
    /* BuilderGenerator.kt:275 */ pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
         175  +
    /* BuilderGenerator.kt:275 */ pub(crate) encrypted: ::std::option::Option<bool>,
         176  +
    /* BuilderGenerator.kt:275 */ pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
         177  +
    /* BuilderGenerator.kt:275 */ pub(crate) parent_snapshot_id: ::std::option::Option<::std::string::String>,
         178  +
    /* BuilderGenerator.kt:275 */ pub(crate) description: ::std::option::Option<::std::string::String>,
         179  +
    /* BuilderGenerator.kt:345 */
  124    180   
}
         181  +
/* BuilderGenerator.kt:355 */
  125    182   
impl StartSnapshotInputBuilder {
  126         -
    /// <p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
         183  +
    /// /* BuilderGenerator.kt:286 */<p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
  127    184   
    /// <ul>
  128    185   
    /// <li>
  129    186   
    /// <p>No blocks are written to the snapshot.</p></li>
  130    187   
    /// <li>
  131    188   
    /// <p>The snapshot is not completed after writing the last block of data.</p></li>
  132    189   
    /// </ul>
  133    190   
    /// <p>If no value is specified, the timeout defaults to <code>60</code> minutes.</p>
         191  +
    /* BuilderGenerator.kt:291 */
  134    192   
    pub fn timeout(mut self, input: i32) -> Self {
         193  +
        /* BuilderGenerator.kt:292 */
  135    194   
        self.timeout = ::std::option::Option::Some(input);
         195  +
        /* BuilderGenerator.kt:293 */
  136    196   
        self
         197  +
        /* BuilderGenerator.kt:291 */
  137    198   
    }
  138         -
    /// <p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
         199  +
    /// /* BuilderGenerator.kt:312 */<p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
  139    200   
    /// <ul>
  140    201   
    /// <li>
  141    202   
    /// <p>No blocks are written to the snapshot.</p></li>
  142    203   
    /// <li>
  143    204   
    /// <p>The snapshot is not completed after writing the last block of data.</p></li>
  144    205   
    /// </ul>
  145    206   
    /// <p>If no value is specified, the timeout defaults to <code>60</code> minutes.</p>
         207  +
    /* BuilderGenerator.kt:314 */
  146    208   
    pub fn set_timeout(mut self, input: ::std::option::Option<i32>) -> Self {
         209  +
        /* BuilderGenerator.kt:315 */
  147    210   
        self.timeout = input;
  148    211   
        self
         212  +
        /* BuilderGenerator.kt:314 */
  149    213   
    }
  150         -
    /// <p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
         214  +
    /// /* BuilderGenerator.kt:334 */<p>The amount of time (in minutes) after which the snapshot is automatically cancelled if:</p>
  151    215   
    /// <ul>
  152    216   
    /// <li>
  153    217   
    /// <p>No blocks are written to the snapshot.</p></li>
  154    218   
    /// <li>
  155    219   
    /// <p>The snapshot is not completed after writing the last block of data.</p></li>
  156    220   
    /// </ul>
  157    221   
    /// <p>If no value is specified, the timeout defaults to <code>60</code> minutes.</p>
         222  +
    /* BuilderGenerator.kt:336 */
  158    223   
    pub fn get_timeout(&self) -> &::std::option::Option<i32> {
         224  +
        /* BuilderGenerator.kt:337 */
  159    225   
        &self.timeout
         226  +
        /* BuilderGenerator.kt:336 */
  160    227   
    }
  161         -
    /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
         228  +
    /// /* BuilderGenerator.kt:286 */<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
  162    229   
    /// <p>If you do not specify a client token, one is automatically generated by the AWS SDK.</p>
  163    230   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-direct-api-idempotency.html"> Idempotency for StartSnapshot API</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         231  +
    /* BuilderGenerator.kt:291 */
  164    232   
    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         233  +
        /* BuilderGenerator.kt:292 */
  165    234   
        self.client_token = ::std::option::Option::Some(input.into());
         235  +
        /* BuilderGenerator.kt:293 */
  166    236   
        self
         237  +
        /* BuilderGenerator.kt:291 */
  167    238   
    }
  168         -
    /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
         239  +
    /// /* BuilderGenerator.kt:312 */<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
  169    240   
    /// <p>If you do not specify a client token, one is automatically generated by the AWS SDK.</p>
  170    241   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-direct-api-idempotency.html"> Idempotency for StartSnapshot API</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         242  +
    /* BuilderGenerator.kt:314 */
  171    243   
    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         244  +
        /* BuilderGenerator.kt:315 */
  172    245   
        self.client_token = input;
  173    246   
        self
         247  +
        /* BuilderGenerator.kt:314 */
  174    248   
    }
  175         -
    /// <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
         249  +
    /// /* BuilderGenerator.kt:334 */<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully. The subsequent retries with the same client token return the result from the original successful request and they have no additional effect.</p>
  176    250   
    /// <p>If you do not specify a client token, one is automatically generated by the AWS SDK.</p>
  177    251   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-direct-api-idempotency.html"> Idempotency for StartSnapshot API</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         252  +
    /* BuilderGenerator.kt:336 */
  178    253   
    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
         254  +
        /* BuilderGenerator.kt:337 */
  179    255   
        &self.client_token
         256  +
        /* BuilderGenerator.kt:336 */
  180    257   
    }
  181         -
    /// <p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
  182         -
    /// This field is required.
         258  +
    /// /* BuilderGenerator.kt:286 */<p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
         259  +
    /// /* BuilderGenerator.kt:288 */This field is required.
         260  +
    /* BuilderGenerator.kt:291 */
  183    261   
    pub fn volume_size(mut self, input: i64) -> Self {
         262  +
        /* BuilderGenerator.kt:292 */
  184    263   
        self.volume_size = ::std::option::Option::Some(input);
         264  +
        /* BuilderGenerator.kt:293 */
  185    265   
        self
         266  +
        /* BuilderGenerator.kt:291 */
  186    267   
    }
  187         -
    /// <p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
         268  +
    /// /* BuilderGenerator.kt:312 */<p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
         269  +
    /* BuilderGenerator.kt:314 */
  188    270   
    pub fn set_volume_size(mut self, input: ::std::option::Option<i64>) -> Self {
         271  +
        /* BuilderGenerator.kt:315 */
  189    272   
        self.volume_size = input;
  190    273   
        self
         274  +
        /* BuilderGenerator.kt:314 */
  191    275   
    }
  192         -
    /// <p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
         276  +
    /// /* BuilderGenerator.kt:334 */<p>The size of the volume, in GiB. The maximum size is <code>16384</code> GiB (16 TiB).</p>
         277  +
    /* BuilderGenerator.kt:336 */
  193    278   
    pub fn get_volume_size(&self) -> &::std::option::Option<i64> {
         279  +
        /* BuilderGenerator.kt:337 */
  194    280   
        &self.volume_size
         281  +
        /* BuilderGenerator.kt:336 */
  195    282   
    }
  196         -
    /// Appends an item to `tags`.
         283  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `tags`.
         284  +
    /* BuilderGenerator.kt:411 */
  197    285   
    ///
  198         -
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
         286  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_tags`](Self::set_tags).
         287  +
    /* BuilderGenerator.kt:413 */
  199    288   
    ///
  200         -
    /// <p>The tags to apply to the snapshot.</p>
         289  +
    /// /* BuilderGenerator.kt:414 */<p>The tags to apply to the snapshot.</p>
         290  +
    /* BuilderGenerator.kt:418 */
  201    291   
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
         292  +
        /* BuilderGenerator.kt:419 */
  202    293   
        let mut v = self.tags.unwrap_or_default();
  203    294   
        v.push(input);
  204    295   
        self.tags = ::std::option::Option::Some(v);
  205    296   
        self
         297  +
        /* BuilderGenerator.kt:418 */
  206    298   
    }
  207         -
    /// <p>The tags to apply to the snapshot.</p>
         299  +
    /// /* BuilderGenerator.kt:312 */<p>The tags to apply to the snapshot.</p>
         300  +
    /* BuilderGenerator.kt:314 */
  208    301   
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
         302  +
        /* BuilderGenerator.kt:315 */
  209    303   
        self.tags = input;
  210    304   
        self
         305  +
        /* BuilderGenerator.kt:314 */
  211    306   
    }
  212         -
    /// <p>The tags to apply to the snapshot.</p>
         307  +
    /// /* BuilderGenerator.kt:334 */<p>The tags to apply to the snapshot.</p>
         308  +
    /* BuilderGenerator.kt:336 */
  213    309   
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
         310  +
        /* BuilderGenerator.kt:337 */
  214    311   
        &self.tags
         312  +
        /* BuilderGenerator.kt:336 */
  215    313   
    }
  216         -
    /// <p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
         314  +
    /// /* BuilderGenerator.kt:286 */<p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
  217    315   
    /// <p>If you specify a value for <b>ParentSnapshotId</b>, omit this parameter.</p>
  218    316   
    /// <p>If you specify <code>true</code>, the snapshot is encrypted using the CMK specified using the <b>KmsKeyArn</b> parameter. If no value is specified for <b>KmsKeyArn</b>, the default CMK for your account is used. If no default CMK has been specified for your account, the AWS managed CMK is used. To set a default CMK for your account, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyEbsDefaultKmsKeyId.html"> ModifyEbsDefaultKmsKeyId</a>.</p>
  219    317   
    /// <p>If your account is enabled for encryption by default, you cannot set this parameter to <code>false</code>. In this case, you can omit this parameter.</p>
  220    318   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-encryption"> Using encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         319  +
    /* BuilderGenerator.kt:291 */
  221    320   
    pub fn encrypted(mut self, input: bool) -> Self {
         321  +
        /* BuilderGenerator.kt:292 */
  222    322   
        self.encrypted = ::std::option::Option::Some(input);
         323  +
        /* BuilderGenerator.kt:293 */
  223    324   
        self
         325  +
        /* BuilderGenerator.kt:291 */
  224    326   
    }
  225         -
    /// <p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
         327  +
    /// /* BuilderGenerator.kt:312 */<p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
  226    328   
    /// <p>If you specify a value for <b>ParentSnapshotId</b>, omit this parameter.</p>
  227    329   
    /// <p>If you specify <code>true</code>, the snapshot is encrypted using the CMK specified using the <b>KmsKeyArn</b> parameter. If no value is specified for <b>KmsKeyArn</b>, the default CMK for your account is used. If no default CMK has been specified for your account, the AWS managed CMK is used. To set a default CMK for your account, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyEbsDefaultKmsKeyId.html"> ModifyEbsDefaultKmsKeyId</a>.</p>
  228    330   
    /// <p>If your account is enabled for encryption by default, you cannot set this parameter to <code>false</code>. In this case, you can omit this parameter.</p>
  229    331   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-encryption"> Using encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         332  +
    /* BuilderGenerator.kt:314 */
  230    333   
    pub fn set_encrypted(mut self, input: ::std::option::Option<bool>) -> Self {
         334  +
        /* BuilderGenerator.kt:315 */
  231    335   
        self.encrypted = input;
  232    336   
        self
         337  +
        /* BuilderGenerator.kt:314 */
  233    338   
    }
  234         -
    /// <p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
         339  +
    /// /* BuilderGenerator.kt:334 */<p>Indicates whether to encrypt the snapshot. To create an encrypted snapshot, specify <code>true</code>. To create an unencrypted snapshot, omit this parameter.</p>
  235    340   
    /// <p>If you specify a value for <b>ParentSnapshotId</b>, omit this parameter.</p>
  236    341   
    /// <p>If you specify <code>true</code>, the snapshot is encrypted using the CMK specified using the <b>KmsKeyArn</b> parameter. If no value is specified for <b>KmsKeyArn</b>, the default CMK for your account is used. If no default CMK has been specified for your account, the AWS managed CMK is used. To set a default CMK for your account, use <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyEbsDefaultKmsKeyId.html"> ModifyEbsDefaultKmsKeyId</a>.</p>
  237    342   
    /// <p>If your account is enabled for encryption by default, you cannot set this parameter to <code>false</code>. In this case, you can omit this parameter.</p>
  238    343   
    /// <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html#ebsapis-using-encryption"> Using encryption</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         344  +
    /* BuilderGenerator.kt:336 */
  239    345   
    pub fn get_encrypted(&self) -> &::std::option::Option<bool> {
         346  +
        /* BuilderGenerator.kt:337 */
  240    347   
        &self.encrypted
         348  +
        /* BuilderGenerator.kt:336 */
  241    349   
    }
  242         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
         350  +
    /// /* BuilderGenerator.kt:286 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
  243    351   
    /// <p>If you specify a <b>ParentSnapshotId</b>, omit this parameter; the snapshot will be encrypted using the same CMK that was used to encrypt the parent snapshot.</p>
  244    352   
    /// <p>If <b>Encrypted</b> is set to <code>true</code>, you must specify a CMK ARN.</p>
         353  +
    /* BuilderGenerator.kt:291 */
  245    354   
    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         355  +
        /* BuilderGenerator.kt:292 */
  246    356   
        self.kms_key_arn = ::std::option::Option::Some(input.into());
         357  +
        /* BuilderGenerator.kt:293 */
  247    358   
        self
         359  +
        /* BuilderGenerator.kt:291 */
  248    360   
    }
  249         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
         361  +
    /// /* BuilderGenerator.kt:312 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
  250    362   
    /// <p>If you specify a <b>ParentSnapshotId</b>, omit this parameter; the snapshot will be encrypted using the same CMK that was used to encrypt the parent snapshot.</p>
  251    363   
    /// <p>If <b>Encrypted</b> is set to <code>true</code>, you must specify a CMK ARN.</p>
         364  +
    /* BuilderGenerator.kt:314 */
  252    365   
    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         366  +
        /* BuilderGenerator.kt:315 */
  253    367   
        self.kms_key_arn = input;
  254    368   
        self
         369  +
        /* BuilderGenerator.kt:314 */
  255    370   
    }
  256         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
         371  +
    /// /* BuilderGenerator.kt:334 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) to be used to encrypt the snapshot. If you do not specify a CMK, the default AWS managed CMK is used.</p>
  257    372   
    /// <p>If you specify a <b>ParentSnapshotId</b>, omit this parameter; the snapshot will be encrypted using the same CMK that was used to encrypt the parent snapshot.</p>
  258    373   
    /// <p>If <b>Encrypted</b> is set to <code>true</code>, you must specify a CMK ARN.</p>
         374  +
    /* BuilderGenerator.kt:336 */
  259    375   
    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
         376  +
        /* BuilderGenerator.kt:337 */
  260    377   
        &self.kms_key_arn
         378  +
        /* BuilderGenerator.kt:336 */
  261    379   
    }
  262         -
    /// <p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
         380  +
    /// /* BuilderGenerator.kt:286 */<p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
  263    381   
    /// <p>If your account is enabled for encryption by default, you cannot use an unencrypted snapshot as a parent snapshot. You must first create an encrypted copy of the parent snapshot using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopySnapshot.html">CopySnapshot</a>.</p>
         382  +
    /* BuilderGenerator.kt:291 */
  264    383   
    pub fn parent_snapshot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         384  +
        /* BuilderGenerator.kt:292 */
  265    385   
        self.parent_snapshot_id = ::std::option::Option::Some(input.into());
         386  +
        /* BuilderGenerator.kt:293 */
  266    387   
        self
         388  +
        /* BuilderGenerator.kt:291 */
  267    389   
    }
  268         -
    /// <p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
         390  +
    /// /* BuilderGenerator.kt:312 */<p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
  269    391   
    /// <p>If your account is enabled for encryption by default, you cannot use an unencrypted snapshot as a parent snapshot. You must first create an encrypted copy of the parent snapshot using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopySnapshot.html">CopySnapshot</a>.</p>
         392  +
    /* BuilderGenerator.kt:314 */
  270    393   
    pub fn set_parent_snapshot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         394  +
        /* BuilderGenerator.kt:315 */
  271    395   
        self.parent_snapshot_id = input;
  272    396   
        self
         397  +
        /* BuilderGenerator.kt:314 */
  273    398   
    }
  274         -
    /// <p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
         399  +
    /// /* BuilderGenerator.kt:334 */<p>The ID of the parent snapshot. If there is no parent snapshot, or if you are creating the first snapshot for an on-premises volume, omit this parameter.</p>
  275    400   
    /// <p>If your account is enabled for encryption by default, you cannot use an unencrypted snapshot as a parent snapshot. You must first create an encrypted copy of the parent snapshot using <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopySnapshot.html">CopySnapshot</a>.</p>
         401  +
    /* BuilderGenerator.kt:336 */
  276    402   
    pub fn get_parent_snapshot_id(&self) -> &::std::option::Option<::std::string::String> {
         403  +
        /* BuilderGenerator.kt:337 */
  277    404   
        &self.parent_snapshot_id
         405  +
        /* BuilderGenerator.kt:336 */
  278    406   
    }
  279         -
    /// <p>A description for the snapshot.</p>
         407  +
    /// /* BuilderGenerator.kt:286 */<p>A description for the snapshot.</p>
         408  +
    /* BuilderGenerator.kt:291 */
  280    409   
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         410  +
        /* BuilderGenerator.kt:292 */
  281    411   
        self.description = ::std::option::Option::Some(input.into());
         412  +
        /* BuilderGenerator.kt:293 */
  282    413   
        self
         414  +
        /* BuilderGenerator.kt:291 */
  283    415   
    }
  284         -
    /// <p>A description for the snapshot.</p>
         416  +
    /// /* BuilderGenerator.kt:312 */<p>A description for the snapshot.</p>
         417  +
    /* BuilderGenerator.kt:314 */
  285    418   
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         419  +
        /* BuilderGenerator.kt:315 */
  286    420   
        self.description = input;
  287    421   
        self
         422  +
        /* BuilderGenerator.kt:314 */
  288    423   
    }
  289         -
    /// <p>A description for the snapshot.</p>
         424  +
    /// /* BuilderGenerator.kt:334 */<p>A description for the snapshot.</p>
         425  +
    /* BuilderGenerator.kt:336 */
  290    426   
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
         427  +
        /* BuilderGenerator.kt:337 */
  291    428   
        &self.description
         429  +
        /* BuilderGenerator.kt:336 */
  292    430   
    }
  293         -
    /// Consumes the builder and constructs a [`StartSnapshotInput`](crate::operation::start_snapshot::StartSnapshotInput).
         431  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`StartSnapshotInput`](crate::operation::start_snapshot::StartSnapshotInput).
         432  +
    /* BuilderGenerator.kt:253 */
  294    433   
    pub fn build(
  295    434   
        self,
  296    435   
    ) -> ::std::result::Result<crate::operation::start_snapshot::StartSnapshotInput, ::aws_smithy_types::error::operation::BuildError> {
  297         -
        ::std::result::Result::Ok(crate::operation::start_snapshot::StartSnapshotInput {
  298         -
            timeout: self.timeout,
         436  +
        /* BuilderGenerator.kt:254 */
         437  +
        ::std::result::Result::Ok(
         438  +
            /* BuilderGenerator.kt:477 */
         439  +
            crate::operation::start_snapshot::StartSnapshotInput {
         440  +
                /* BuilderGenerator.kt:481 */ timeout: self.timeout,
         441  +
                /* BuilderGenerator.kt:481 */
  299    442   
                client_token: self.client_token,
         443  +
                /* BuilderGenerator.kt:481 */
  300    444   
                volume_size: self.volume_size,
         445  +
                /* BuilderGenerator.kt:481 */
  301    446   
                tags: self.tags,
         447  +
                /* BuilderGenerator.kt:481 */
  302    448   
                encrypted: self.encrypted,
         449  +
                /* BuilderGenerator.kt:481 */
  303    450   
                kms_key_arn: self.kms_key_arn,
         451  +
                /* BuilderGenerator.kt:481 */
  304    452   
                parent_snapshot_id: self.parent_snapshot_id,
         453  +
                /* BuilderGenerator.kt:481 */
  305    454   
                description: self.description,
  306         -
        })
         455  +
                /* BuilderGenerator.kt:477 */
         456  +
            }, /* BuilderGenerator.kt:254 */
         457  +
        )
         458  +
        /* BuilderGenerator.kt:253 */
  307    459   
    }
         460  +
    /* BuilderGenerator.kt:355 */
  308    461   
}
         462  +
/* BuilderGenerator.kt:379 */
  309    463   
impl ::std::fmt::Debug for StartSnapshotInputBuilder {
         464  +
    /* BuilderGenerator.kt:380 */
  310    465   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         466  +
        /* BuilderGenerator.kt:381 */
  311    467   
        let mut formatter = f.debug_struct("StartSnapshotInputBuilder");
         468  +
        /* BuilderGenerator.kt:395 */
  312    469   
        formatter.field("timeout", &self.timeout);
         470  +
        /* BuilderGenerator.kt:395 */
  313    471   
        formatter.field("client_token", &self.client_token);
         472  +
        /* BuilderGenerator.kt:395 */
  314    473   
        formatter.field("volume_size", &self.volume_size);
         474  +
        /* BuilderGenerator.kt:395 */
  315    475   
        formatter.field("tags", &self.tags);
         476  +
        /* BuilderGenerator.kt:395 */
  316    477   
        formatter.field("encrypted", &self.encrypted);
         478  +
        /* BuilderGenerator.kt:395 */
  317    479   
        formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
         480  +
        /* BuilderGenerator.kt:395 */
  318    481   
        formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
         482  +
        /* BuilderGenerator.kt:395 */
  319    483   
        formatter.field("description", &self.description);
         484  +
        /* BuilderGenerator.kt:400 */
  320    485   
        formatter.finish()
         486  +
        /* BuilderGenerator.kt:380 */
  321    487   
    }
         488  +
    /* BuilderGenerator.kt:379 */
  322    489   
}

tmp-codegen-diff/codegen-client-test/ebs/rust-client-codegen/src/operation/start_snapshot/_start_snapshot_output.rs

@@ -1,1 +287,483 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* StructureGenerator.kt:197 */
    2      3   
#[allow(missing_docs)] // documentation missing in model
           4  +
/* RustType.kt:516 */
    3      5   
#[non_exhaustive]
           6  +
/* RustType.kt:516 */
    4      7   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
    5         -
pub struct StartSnapshotOutput {
    6         -
    /// <p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
           8  +
pub /* StructureGenerator.kt:201 */ struct StartSnapshotOutput {
           9  +
    /// /* StructureGenerator.kt:231 */<p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
    7     10   
    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
    8         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
          11  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
    9     12   
    pub kms_key_arn: ::std::option::Option<::std::string::String>,
   10         -
    /// <p>The AWS account ID of the snapshot owner.</p>
          13  +
    /// /* StructureGenerator.kt:231 */<p>The AWS account ID of the snapshot owner.</p>
   11     14   
    pub owner_id: ::std::option::Option<::std::string::String>,
   12         -
    /// <p>The size of the volume, in GiB.</p>
          15  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume, in GiB.</p>
   13     16   
    pub volume_size: ::std::option::Option<i64>,
   14         -
    /// <p>The ID of the parent snapshot.</p>
          17  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the parent snapshot.</p>
   15     18   
    pub parent_snapshot_id: ::std::option::Option<::std::string::String>,
   16         -
    /// <p>The description of the snapshot.</p>
          19  +
    /// /* StructureGenerator.kt:231 */<p>The description of the snapshot.</p>
   17     20   
    pub description: ::std::option::Option<::std::string::String>,
   18         -
    /// <p>The ID of the snapshot.</p>
          21  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the snapshot.</p>
   19     22   
    pub snapshot_id: ::std::option::Option<::std::string::String>,
   20         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
          23  +
    /// /* StructureGenerator.kt:231 */<p>The size of the blocks in the snapshot, in bytes.</p>
   21     24   
    pub block_size: ::std::option::Option<i32>,
   22         -
    /// <p>The timestamp when the snapshot was created.</p>
          25  +
    /// /* StructureGenerator.kt:231 */<p>The timestamp when the snapshot was created.</p>
   23     26   
    pub start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
   24         -
    /// <p>The status of the snapshot.</p>
          27  +
    /// /* StructureGenerator.kt:231 */<p>The status of the snapshot.</p>
   25     28   
    pub status: ::std::option::Option<crate::types::Status>,
          29  +
    /* StructureGenerator.kt:201 */
   26     30   
}
          31  +
/* StructureGenerator.kt:135 */
   27     32   
impl StartSnapshotOutput {
   28         -
    /// <p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
   29         -
    ///
   30         -
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
          33  +
    /// /* StructureGenerator.kt:231 */<p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
          34  +
    /// /* StructureGenerator.kt:162 */
          35  +
    /// /* StructureGenerator.kt:163 */If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
          36  +
    /* StructureGenerator.kt:166 */
   31     37   
    pub fn tags(&self) -> &[crate::types::Tag] {
   32         -
        self.tags.as_deref().unwrap_or_default()
   33         -
    }
   34         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
          38  +
        /* StructureGenerator.kt:169 */
          39  +
        self.tags
          40  +
            .as_deref()
          41  +
            /* StructureGenerator.kt:175 */
          42  +
            .unwrap_or_default()
          43  +
        /* StructureGenerator.kt:166 */
          44  +
    }
          45  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
          46  +
    /* StructureGenerator.kt:166 */
   35     47   
    pub fn kms_key_arn(&self) -> ::std::option::Option<&str> {
          48  +
        /* StructureGenerator.kt:169 */
   36     49   
        self.kms_key_arn.as_deref()
          50  +
        /* StructureGenerator.kt:166 */
   37     51   
    }
   38         -
    /// <p>The AWS account ID of the snapshot owner.</p>
          52  +
    /// /* StructureGenerator.kt:231 */<p>The AWS account ID of the snapshot owner.</p>
          53  +
    /* StructureGenerator.kt:166 */
   39     54   
    pub fn owner_id(&self) -> ::std::option::Option<&str> {
          55  +
        /* StructureGenerator.kt:169 */
   40     56   
        self.owner_id.as_deref()
          57  +
        /* StructureGenerator.kt:166 */
   41     58   
    }
   42         -
    /// <p>The size of the volume, in GiB.</p>
          59  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume, in GiB.</p>
          60  +
    /* StructureGenerator.kt:166 */
   43     61   
    pub fn volume_size(&self) -> ::std::option::Option<i64> {
          62  +
        /* StructureGenerator.kt:168 */
   44     63   
        self.volume_size
          64  +
        /* StructureGenerator.kt:166 */
   45     65   
    }
   46         -
    /// <p>The ID of the parent snapshot.</p>
          66  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the parent snapshot.</p>
          67  +
    /* StructureGenerator.kt:166 */
   47     68   
    pub fn parent_snapshot_id(&self) -> ::std::option::Option<&str> {
          69  +
        /* StructureGenerator.kt:169 */
   48     70   
        self.parent_snapshot_id.as_deref()
          71  +
        /* StructureGenerator.kt:166 */
   49     72   
    }
   50         -
    /// <p>The description of the snapshot.</p>
          73  +
    /// /* StructureGenerator.kt:231 */<p>The description of the snapshot.</p>
          74  +
    /* StructureGenerator.kt:166 */
   51     75   
    pub fn description(&self) -> ::std::option::Option<&str> {
          76  +
        /* StructureGenerator.kt:169 */
   52     77   
        self.description.as_deref()
          78  +
        /* StructureGenerator.kt:166 */
   53     79   
    }
   54         -
    /// <p>The ID of the snapshot.</p>
          80  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the snapshot.</p>
          81  +
    /* StructureGenerator.kt:166 */
   55     82   
    pub fn snapshot_id(&self) -> ::std::option::Option<&str> {
          83  +
        /* StructureGenerator.kt:169 */
   56     84   
        self.snapshot_id.as_deref()
          85  +
        /* StructureGenerator.kt:166 */
   57     86   
    }
   58         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
          87  +
    /// /* StructureGenerator.kt:231 */<p>The size of the blocks in the snapshot, in bytes.</p>
          88  +
    /* StructureGenerator.kt:166 */
   59     89   
    pub fn block_size(&self) -> ::std::option::Option<i32> {
          90  +
        /* StructureGenerator.kt:168 */
   60     91   
        self.block_size
          92  +
        /* StructureGenerator.kt:166 */
   61     93   
    }
   62         -
    /// <p>The timestamp when the snapshot was created.</p>
          94  +
    /// /* StructureGenerator.kt:231 */<p>The timestamp when the snapshot was created.</p>
          95  +
    /* StructureGenerator.kt:166 */
   63     96   
    pub fn start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          97  +
        /* StructureGenerator.kt:170 */
   64     98   
        self.start_time.as_ref()
          99  +
        /* StructureGenerator.kt:166 */
   65    100   
    }
   66         -
    /// <p>The status of the snapshot.</p>
         101  +
    /// /* StructureGenerator.kt:231 */<p>The status of the snapshot.</p>
         102  +
    /* StructureGenerator.kt:166 */
   67    103   
    pub fn status(&self) -> ::std::option::Option<&crate::types::Status> {
         104  +
        /* StructureGenerator.kt:170 */
   68    105   
        self.status.as_ref()
         106  +
        /* StructureGenerator.kt:166 */
   69    107   
    }
         108  +
    /* StructureGenerator.kt:135 */
   70    109   
}
         110  +
/* StructureGenerator.kt:101 */
   71    111   
impl ::std::fmt::Debug for StartSnapshotOutput {
         112  +
    /* StructureGenerator.kt:105 */
   72    113   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         114  +
        /* StructureGenerator.kt:106 */
   73    115   
        let mut formatter = f.debug_struct("StartSnapshotOutput");
         116  +
        /* StructureGenerator.kt:121 */
   74    117   
        formatter.field("tags", &self.tags);
         118  +
        /* StructureGenerator.kt:121 */
   75    119   
        formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
         120  +
        /* StructureGenerator.kt:121 */
   76    121   
        formatter.field("owner_id", &self.owner_id);
         122  +
        /* StructureGenerator.kt:121 */
   77    123   
        formatter.field("volume_size", &self.volume_size);
         124  +
        /* StructureGenerator.kt:121 */
   78    125   
        formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
         126  +
        /* StructureGenerator.kt:121 */
   79    127   
        formatter.field("description", &self.description);
         128  +
        /* StructureGenerator.kt:121 */
   80    129   
        formatter.field("snapshot_id", &self.snapshot_id);
         130  +
        /* StructureGenerator.kt:121 */
   81    131   
        formatter.field("block_size", &self.block_size);
         132  +
        /* StructureGenerator.kt:121 */
   82    133   
        formatter.field("start_time", &self.start_time);
         134  +
        /* StructureGenerator.kt:121 */
   83    135   
        formatter.field("status", &self.status);
         136  +
        /* StructureGenerator.kt:126 */
   84    137   
        formatter.finish()
         138  +
        /* StructureGenerator.kt:105 */
   85    139   
    }
         140  +
    /* StructureGenerator.kt:101 */
   86    141   
}
         142  +
/* ClientCodegenVisitor.kt:237 */
   87    143   
impl StartSnapshotOutput {
   88         -
    /// Creates a new builder-style object to manufacture [`StartSnapshotOutput`](crate::operation::start_snapshot::StartSnapshotOutput).
         144  +
    /// /* BuilderGenerator.kt:173 */Creates a new builder-style object to manufacture [`StartSnapshotOutput`](crate::operation::start_snapshot::StartSnapshotOutput).
         145  +
    /* BuilderGenerator.kt:175 */
   89    146   
    pub fn builder() -> crate::operation::start_snapshot::builders::StartSnapshotOutputBuilder {
         147  +
        /* BuilderGenerator.kt:176 */
   90    148   
        crate::operation::start_snapshot::builders::StartSnapshotOutputBuilder::default()
         149  +
        /* BuilderGenerator.kt:175 */
   91    150   
    }
         151  +
    /* ClientCodegenVisitor.kt:237 */
   92    152   
}
   93    153   
   94         -
/// A builder for [`StartSnapshotOutput`](crate::operation::start_snapshot::StartSnapshotOutput).
         154  +
/// /* BuilderGenerator.kt:342 */A builder for [`StartSnapshotOutput`](crate::operation::start_snapshot::StartSnapshotOutput).
         155  +
/* RustType.kt:516 */
   95    156   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         157  +
/* RustType.kt:516 */
   96    158   
#[non_exhaustive]
         159  +
/* BuilderGenerator.kt:345 */
   97    160   
pub struct StartSnapshotOutputBuilder {
   98         -
    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
   99         -
    pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
  100         -
    pub(crate) owner_id: ::std::option::Option<::std::string::String>,
  101         -
    pub(crate) volume_size: ::std::option::Option<i64>,
  102         -
    pub(crate) parent_snapshot_id: ::std::option::Option<::std::string::String>,
  103         -
    pub(crate) description: ::std::option::Option<::std::string::String>,
  104         -
    pub(crate) snapshot_id: ::std::option::Option<::std::string::String>,
  105         -
    pub(crate) block_size: ::std::option::Option<i32>,
  106         -
    pub(crate) start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
  107         -
    pub(crate) status: ::std::option::Option<crate::types::Status>,
         161  +
    /* BuilderGenerator.kt:275 */ pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
         162  +
    /* BuilderGenerator.kt:275 */ pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
         163  +
    /* BuilderGenerator.kt:275 */ pub(crate) owner_id: ::std::option::Option<::std::string::String>,
         164  +
    /* BuilderGenerator.kt:275 */ pub(crate) volume_size: ::std::option::Option<i64>,
         165  +
    /* BuilderGenerator.kt:275 */ pub(crate) parent_snapshot_id: ::std::option::Option<::std::string::String>,
         166  +
    /* BuilderGenerator.kt:275 */ pub(crate) description: ::std::option::Option<::std::string::String>,
         167  +
    /* BuilderGenerator.kt:275 */ pub(crate) snapshot_id: ::std::option::Option<::std::string::String>,
         168  +
    /* BuilderGenerator.kt:275 */ pub(crate) block_size: ::std::option::Option<i32>,
         169  +
    /* BuilderGenerator.kt:275 */ pub(crate) start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         170  +
    /* BuilderGenerator.kt:275 */ pub(crate) status: ::std::option::Option<crate::types::Status>,
         171  +
    /* BuilderGenerator.kt:345 */
  108    172   
}
         173  +
/* BuilderGenerator.kt:355 */
  109    174   
impl StartSnapshotOutputBuilder {
  110         -
    /// Appends an item to `tags`.
         175  +
    /// /* BuilderGenerator.kt:410 */Appends an item to `tags`.
         176  +
    /* BuilderGenerator.kt:411 */
  111    177   
    ///
  112         -
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
         178  +
    /// /* BuilderGenerator.kt:412 */To override the contents of this collection use [`set_tags`](Self::set_tags).
         179  +
    /* BuilderGenerator.kt:413 */
  113    180   
    ///
  114         -
    /// <p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         181  +
    /// /* BuilderGenerator.kt:414 */<p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         182  +
    /* BuilderGenerator.kt:418 */
  115    183   
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
         184  +
        /* BuilderGenerator.kt:419 */
  116    185   
        let mut v = self.tags.unwrap_or_default();
  117    186   
        v.push(input);
  118    187   
        self.tags = ::std::option::Option::Some(v);
  119    188   
        self
         189  +
        /* BuilderGenerator.kt:418 */
  120    190   
    }
  121         -
    /// <p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         191  +
    /// /* BuilderGenerator.kt:312 */<p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         192  +
    /* BuilderGenerator.kt:314 */
  122    193   
    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
         194  +
        /* BuilderGenerator.kt:315 */
  123    195   
        self.tags = input;
  124    196   
        self
         197  +
        /* BuilderGenerator.kt:314 */
  125    198   
    }
  126         -
    /// <p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         199  +
    /// /* BuilderGenerator.kt:334 */<p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         200  +
    /* BuilderGenerator.kt:336 */
  127    201   
    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
         202  +
        /* BuilderGenerator.kt:337 */
  128    203   
        &self.tags
         204  +
        /* BuilderGenerator.kt:336 */
  129    205   
    }
  130         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         206  +
    /// /* BuilderGenerator.kt:286 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         207  +
    /* BuilderGenerator.kt:291 */
  131    208   
    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         209  +
        /* BuilderGenerator.kt:292 */
  132    210   
        self.kms_key_arn = ::std::option::Option::Some(input.into());
         211  +
        /* BuilderGenerator.kt:293 */
  133    212   
        self
         213  +
        /* BuilderGenerator.kt:291 */
  134    214   
    }
  135         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         215  +
    /// /* BuilderGenerator.kt:312 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         216  +
    /* BuilderGenerator.kt:314 */
  136    217   
    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         218  +
        /* BuilderGenerator.kt:315 */
  137    219   
        self.kms_key_arn = input;
  138    220   
        self
         221  +
        /* BuilderGenerator.kt:314 */
  139    222   
    }
  140         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         223  +
    /// /* BuilderGenerator.kt:334 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         224  +
    /* BuilderGenerator.kt:336 */
  141    225   
    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
         226  +
        /* BuilderGenerator.kt:337 */
  142    227   
        &self.kms_key_arn
         228  +
        /* BuilderGenerator.kt:336 */
  143    229   
    }
  144         -
    /// <p>The AWS account ID of the snapshot owner.</p>
         230  +
    /// /* BuilderGenerator.kt:286 */<p>The AWS account ID of the snapshot owner.</p>
         231  +
    /* BuilderGenerator.kt:291 */
  145    232   
    pub fn owner_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         233  +
        /* BuilderGenerator.kt:292 */
  146    234   
        self.owner_id = ::std::option::Option::Some(input.into());
         235  +
        /* BuilderGenerator.kt:293 */
  147    236   
        self
         237  +
        /* BuilderGenerator.kt:291 */
  148    238   
    }
  149         -
    /// <p>The AWS account ID of the snapshot owner.</p>
         239  +
    /// /* BuilderGenerator.kt:312 */<p>The AWS account ID of the snapshot owner.</p>
         240  +
    /* BuilderGenerator.kt:314 */
  150    241   
    pub fn set_owner_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         242  +
        /* BuilderGenerator.kt:315 */
  151    243   
        self.owner_id = input;
  152    244   
        self
         245  +
        /* BuilderGenerator.kt:314 */
  153    246   
    }
  154         -
    /// <p>The AWS account ID of the snapshot owner.</p>
         247  +
    /// /* BuilderGenerator.kt:334 */<p>The AWS account ID of the snapshot owner.</p>
         248  +
    /* BuilderGenerator.kt:336 */
  155    249   
    pub fn get_owner_id(&self) -> &::std::option::Option<::std::string::String> {
         250  +
        /* BuilderGenerator.kt:337 */
  156    251   
        &self.owner_id
         252  +
        /* BuilderGenerator.kt:336 */
  157    253   
    }
  158         -
    /// <p>The size of the volume, in GiB.</p>
         254  +
    /// /* BuilderGenerator.kt:286 */<p>The size of the volume, in GiB.</p>
         255  +
    /* BuilderGenerator.kt:291 */
  159    256   
    pub fn volume_size(mut self, input: i64) -> Self {
         257  +
        /* BuilderGenerator.kt:292 */
  160    258   
        self.volume_size = ::std::option::Option::Some(input);
         259  +
        /* BuilderGenerator.kt:293 */
  161    260   
        self
         261  +
        /* BuilderGenerator.kt:291 */
  162    262   
    }
  163         -
    /// <p>The size of the volume, in GiB.</p>
         263  +
    /// /* BuilderGenerator.kt:312 */<p>The size of the volume, in GiB.</p>
         264  +
    /* BuilderGenerator.kt:314 */
  164    265   
    pub fn set_volume_size(mut self, input: ::std::option::Option<i64>) -> Self {
         266  +
        /* BuilderGenerator.kt:315 */
  165    267   
        self.volume_size = input;
  166    268   
        self
         269  +
        /* BuilderGenerator.kt:314 */
  167    270   
    }
  168         -
    /// <p>The size of the volume, in GiB.</p>
         271  +
    /// /* BuilderGenerator.kt:334 */<p>The size of the volume, in GiB.</p>
         272  +
    /* BuilderGenerator.kt:336 */
  169    273   
    pub fn get_volume_size(&self) -> &::std::option::Option<i64> {
         274  +
        /* BuilderGenerator.kt:337 */
  170    275   
        &self.volume_size
         276  +
        /* BuilderGenerator.kt:336 */
  171    277   
    }
  172         -
    /// <p>The ID of the parent snapshot.</p>
         278  +
    /// /* BuilderGenerator.kt:286 */<p>The ID of the parent snapshot.</p>
         279  +
    /* BuilderGenerator.kt:291 */
  173    280   
    pub fn parent_snapshot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         281  +
        /* BuilderGenerator.kt:292 */
  174    282   
        self.parent_snapshot_id = ::std::option::Option::Some(input.into());
         283  +
        /* BuilderGenerator.kt:293 */
  175    284   
        self
         285  +
        /* BuilderGenerator.kt:291 */
  176    286   
    }
  177         -
    /// <p>The ID of the parent snapshot.</p>
         287  +
    /// /* BuilderGenerator.kt:312 */<p>The ID of the parent snapshot.</p>
         288  +
    /* BuilderGenerator.kt:314 */
  178    289   
    pub fn set_parent_snapshot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         290  +
        /* BuilderGenerator.kt:315 */
  179    291   
        self.parent_snapshot_id = input;
  180    292   
        self
         293  +
        /* BuilderGenerator.kt:314 */
  181    294   
    }
  182         -
    /// <p>The ID of the parent snapshot.</p>
         295  +
    /// /* BuilderGenerator.kt:334 */<p>The ID of the parent snapshot.</p>
         296  +
    /* BuilderGenerator.kt:336 */
  183    297   
    pub fn get_parent_snapshot_id(&self) -> &::std::option::Option<::std::string::String> {
         298  +
        /* BuilderGenerator.kt:337 */
  184    299   
        &self.parent_snapshot_id
         300  +
        /* BuilderGenerator.kt:336 */
  185    301   
    }
  186         -
    /// <p>The description of the snapshot.</p>
         302  +
    /// /* BuilderGenerator.kt:286 */<p>The description of the snapshot.</p>
         303  +
    /* BuilderGenerator.kt:291 */
  187    304   
    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         305  +
        /* BuilderGenerator.kt:292 */
  188    306   
        self.description = ::std::option::Option::Some(input.into());
         307  +
        /* BuilderGenerator.kt:293 */
  189    308   
        self
         309  +
        /* BuilderGenerator.kt:291 */
  190    310   
    }
  191         -
    /// <p>The description of the snapshot.</p>
         311  +
    /// /* BuilderGenerator.kt:312 */<p>The description of the snapshot.</p>
         312  +
    /* BuilderGenerator.kt:314 */
  192    313   
    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         314  +
        /* BuilderGenerator.kt:315 */
  193    315   
        self.description = input;
  194    316   
        self
         317  +
        /* BuilderGenerator.kt:314 */
  195    318   
    }
  196         -
    /// <p>The description of the snapshot.</p>
         319  +
    /// /* BuilderGenerator.kt:334 */<p>The description of the snapshot.</p>
         320  +
    /* BuilderGenerator.kt:336 */
  197    321   
    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
         322  +
        /* BuilderGenerator.kt:337 */
  198    323   
        &self.description
         324  +
        /* BuilderGenerator.kt:336 */
  199    325   
    }
  200         -
    /// <p>The ID of the snapshot.</p>
         326  +
    /// /* BuilderGenerator.kt:286 */<p>The ID of the snapshot.</p>
         327  +
    /* BuilderGenerator.kt:291 */
  201    328   
    pub fn snapshot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         329  +
        /* BuilderGenerator.kt:292 */
  202    330   
        self.snapshot_id = ::std::option::Option::Some(input.into());
         331  +
        /* BuilderGenerator.kt:293 */
  203    332   
        self
         333  +
        /* BuilderGenerator.kt:291 */
  204    334   
    }
  205         -
    /// <p>The ID of the snapshot.</p>
         335  +
    /// /* BuilderGenerator.kt:312 */<p>The ID of the snapshot.</p>
         336  +
    /* BuilderGenerator.kt:314 */
  206    337   
    pub fn set_snapshot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         338  +
        /* BuilderGenerator.kt:315 */
  207    339   
        self.snapshot_id = input;
  208    340   
        self
         341  +
        /* BuilderGenerator.kt:314 */
  209    342   
    }
  210         -
    /// <p>The ID of the snapshot.</p>
         343  +
    /// /* BuilderGenerator.kt:334 */<p>The ID of the snapshot.</p>
         344  +
    /* BuilderGenerator.kt:336 */
  211    345   
    pub fn get_snapshot_id(&self) -> &::std::option::Option<::std::string::String> {
         346  +
        /* BuilderGenerator.kt:337 */
  212    347   
        &self.snapshot_id
         348  +
        /* BuilderGenerator.kt:336 */
  213    349   
    }
  214         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
         350  +
    /// /* BuilderGenerator.kt:286 */<p>The size of the blocks in the snapshot, in bytes.</p>
         351  +
    /* BuilderGenerator.kt:291 */
  215    352   
    pub fn block_size(mut self, input: i32) -> Self {
         353  +
        /* BuilderGenerator.kt:292 */
  216    354   
        self.block_size = ::std::option::Option::Some(input);
         355  +
        /* BuilderGenerator.kt:293 */
  217    356   
        self
         357  +
        /* BuilderGenerator.kt:291 */
  218    358   
    }
  219         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
         359  +
    /// /* BuilderGenerator.kt:312 */<p>The size of the blocks in the snapshot, in bytes.</p>
         360  +
    /* BuilderGenerator.kt:314 */
  220    361   
    pub fn set_block_size(mut self, input: ::std::option::Option<i32>) -> Self {
         362  +
        /* BuilderGenerator.kt:315 */
  221    363   
        self.block_size = input;
  222    364   
        self
         365  +
        /* BuilderGenerator.kt:314 */
  223    366   
    }
  224         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
         367  +
    /// /* BuilderGenerator.kt:334 */<p>The size of the blocks in the snapshot, in bytes.</p>
         368  +
    /* BuilderGenerator.kt:336 */
  225    369   
    pub fn get_block_size(&self) -> &::std::option::Option<i32> {
         370  +
        /* BuilderGenerator.kt:337 */
  226    371   
        &self.block_size
         372  +
        /* BuilderGenerator.kt:336 */
  227    373   
    }
  228         -
    /// <p>The timestamp when the snapshot was created.</p>
         374  +
    /// /* BuilderGenerator.kt:286 */<p>The timestamp when the snapshot was created.</p>
         375  +
    /* BuilderGenerator.kt:291 */
  229    376   
    pub fn start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
         377  +
        /* BuilderGenerator.kt:292 */
  230    378   
        self.start_time = ::std::option::Option::Some(input);
         379  +
        /* BuilderGenerator.kt:293 */
  231    380   
        self
         381  +
        /* BuilderGenerator.kt:291 */
  232    382   
    }
  233         -
    /// <p>The timestamp when the snapshot was created.</p>
         383  +
    /// /* BuilderGenerator.kt:312 */<p>The timestamp when the snapshot was created.</p>
         384  +
    /* BuilderGenerator.kt:314 */
  234    385   
    pub fn set_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
         386  +
        /* BuilderGenerator.kt:315 */
  235    387   
        self.start_time = input;
  236    388   
        self
         389  +
        /* BuilderGenerator.kt:314 */
  237    390   
    }
  238         -
    /// <p>The timestamp when the snapshot was created.</p>
         391  +
    /// /* BuilderGenerator.kt:334 */<p>The timestamp when the snapshot was created.</p>
         392  +
    /* BuilderGenerator.kt:336 */
  239    393   
    pub fn get_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
         394  +
        /* BuilderGenerator.kt:337 */
  240    395   
        &self.start_time
         396  +
        /* BuilderGenerator.kt:336 */
  241    397   
    }
  242         -
    /// <p>The status of the snapshot.</p>
         398  +
    /// /* BuilderGenerator.kt:286 */<p>The status of the snapshot.</p>
         399  +
    /* BuilderGenerator.kt:291 */
  243    400   
    pub fn status(mut self, input: crate::types::Status) -> Self {
         401  +
        /* BuilderGenerator.kt:292 */
  244    402   
        self.status = ::std::option::Option::Some(input);
         403  +
        /* BuilderGenerator.kt:293 */
  245    404   
        self
         405  +
        /* BuilderGenerator.kt:291 */
  246    406   
    }
  247         -
    /// <p>The status of the snapshot.</p>
         407  +
    /// /* BuilderGenerator.kt:312 */<p>The status of the snapshot.</p>
         408  +
    /* BuilderGenerator.kt:314 */
  248    409   
    pub fn set_status(mut self, input: ::std::option::Option<crate::types::Status>) -> Self {
         410  +
        /* BuilderGenerator.kt:315 */
  249    411   
        self.status = input;
  250    412   
        self
         413  +
        /* BuilderGenerator.kt:314 */
  251    414   
    }
  252         -
    /// <p>The status of the snapshot.</p>
         415  +
    /// /* BuilderGenerator.kt:334 */<p>The status of the snapshot.</p>
         416  +
    /* BuilderGenerator.kt:336 */
  253    417   
    pub fn get_status(&self) -> &::std::option::Option<crate::types::Status> {
         418  +
        /* BuilderGenerator.kt:337 */
  254    419   
        &self.status
         420  +
        /* BuilderGenerator.kt:336 */
  255    421   
    }
  256         -
    /// Consumes the builder and constructs a [`StartSnapshotOutput`](crate::operation::start_snapshot::StartSnapshotOutput).
         422  +
    /// /* BuilderGenerator.kt:240 */Consumes the builder and constructs a [`StartSnapshotOutput`](crate::operation::start_snapshot::StartSnapshotOutput).
         423  +
    /* BuilderGenerator.kt:253 */
  257    424   
    pub fn build(self) -> crate::operation::start_snapshot::StartSnapshotOutput {
         425  +
        /* BuilderGenerator.kt:477 */
  258    426   
        crate::operation::start_snapshot::StartSnapshotOutput {
  259         -
            tags: self.tags,
         427  +
            /* BuilderGenerator.kt:481 */ tags: self.tags,
         428  +
            /* BuilderGenerator.kt:481 */
  260    429   
            kms_key_arn: self.kms_key_arn,
         430  +
            /* BuilderGenerator.kt:481 */
  261    431   
            owner_id: self.owner_id,
         432  +
            /* BuilderGenerator.kt:481 */
  262    433   
            volume_size: self.volume_size,
         434  +
            /* BuilderGenerator.kt:481 */
  263    435   
            parent_snapshot_id: self.parent_snapshot_id,
         436  +
            /* BuilderGenerator.kt:481 */
  264    437   
            description: self.description,
         438  +
            /* BuilderGenerator.kt:481 */
  265    439   
            snapshot_id: self.snapshot_id,
         440  +
            /* BuilderGenerator.kt:481 */
  266    441   
            block_size: self.block_size,
         442  +
            /* BuilderGenerator.kt:481 */
  267    443   
            start_time: self.start_time,
         444  +
            /* BuilderGenerator.kt:481 */
  268    445   
            status: self.status,
         446  +
            /* BuilderGenerator.kt:477 */
  269    447   
        }
         448  +
        /* BuilderGenerator.kt:253 */
  270    449   
    }
         450  +
    /* BuilderGenerator.kt:355 */
  271    451   
}
         452  +
/* BuilderGenerator.kt:379 */
  272    453   
impl ::std::fmt::Debug for StartSnapshotOutputBuilder {
         454  +
    /* BuilderGenerator.kt:380 */
  273    455   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         456  +
        /* BuilderGenerator.kt:381 */
  274    457   
        let mut formatter = f.debug_struct("StartSnapshotOutputBuilder");
         458  +
        /* BuilderGenerator.kt:395 */
  275    459   
        formatter.field("tags", &self.tags);
         460  +
        /* BuilderGenerator.kt:395 */
  276    461   
        formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
         462  +
        /* BuilderGenerator.kt:395 */
  277    463   
        formatter.field("owner_id", &self.owner_id);
         464  +
        /* BuilderGenerator.kt:395 */
  278    465   
        formatter.field("volume_size", &self.volume_size);
         466  +
        /* BuilderGenerator.kt:395 */
  279    467   
        formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
         468  +
        /* BuilderGenerator.kt:395 */
  280    469   
        formatter.field("description", &self.description);
         470  +
        /* BuilderGenerator.kt:395 */
  281    471   
        formatter.field("snapshot_id", &self.snapshot_id);
         472  +
        /* BuilderGenerator.kt:395 */
  282    473   
        formatter.field("block_size", &self.block_size);
         474  +
        /* BuilderGenerator.kt:395 */
  283    475   
        formatter.field("start_time", &self.start_time);
         476  +
        /* BuilderGenerator.kt:395 */
  284    477   
        formatter.field("status", &self.status);
         478  +
        /* BuilderGenerator.kt:400 */
  285    479   
        formatter.finish()
         480  +
        /* BuilderGenerator.kt:380 */
  286    481   
    }
         482  +
    /* BuilderGenerator.kt:379 */
  287    483   
}