Server Test

Server Test

rev. 7254d43655ed63111c94f599437f2b0d3f55446e

Files changed:

tmp-codegen-diff/codegen-server-test/ebs-http0x/rust-server-codegen/src/operation.rs

@@ -1,1 +621,621 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
::pin_project_lite::pin_project! {
    3      3   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
    4         -
    /// [`StartSnapshotInput`](crate::input::StartSnapshotInput) using modelled bindings.
    5         -
    pub struct StartSnapshotInputFuture {
    6         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::StartSnapshotInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
           4  +
    /// [`CompleteSnapshotInput`](crate::input::CompleteSnapshotInput) using modelled bindings.
           5  +
    pub struct CompleteSnapshotInputFuture {
           6  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::CompleteSnapshotInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
    7      7   
    }
    8      8   
}
    9      9   
   10         -
impl std::future::Future for StartSnapshotInputFuture {
          10  +
impl std::future::Future for CompleteSnapshotInputFuture {
   11     11   
    type Output = Result<
   12         -
        crate::input::StartSnapshotInput,
          12  +
        crate::input::CompleteSnapshotInput,
   13     13   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError,
   14     14   
    >;
   15     15   
   16     16   
    fn poll(
   17     17   
        self: std::pin::Pin<&mut Self>,
   18     18   
        cx: &mut std::task::Context<'_>,
   19     19   
    ) -> std::task::Poll<Self::Output> {
   20     20   
        let this = self.project();
   21     21   
        this.inner.as_mut().poll(cx)
   22     22   
    }
   23     23   
}
   24     24   
   25     25   
impl<B>
   26     26   
    ::aws_smithy_legacy_http_server::request::FromRequest<
   27     27   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
   28     28   
        B,
   29         -
    > for crate::input::StartSnapshotInput
          29  +
    > for crate::input::CompleteSnapshotInput
   30     30   
where
   31     31   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
   32     32   
    B: 'static,
   33     33   
   34     34   
    B::Data: Send,
   35     35   
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection:
   36     36   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
   37     37   
{
   38     38   
    type Rejection =
   39     39   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
   40         -
    type Future = StartSnapshotInputFuture;
          40  +
    type Future = CompleteSnapshotInputFuture;
   41     41   
   42     42   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
   43     43   
        let fut = async move {
   44     44   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
   45     45   
                request.headers(),
   46     46   
                &crate::mimes::CONTENT_TYPE_APPLICATION_JSON,
   47     47   
            ) {
   48     48   
                return Err(::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
   49     49   
            }
   50         -
            crate::protocol_serde::shape_start_snapshot::de_start_snapshot_http_request(request)
   51         -
                .await
          50  +
            crate::protocol_serde::shape_complete_snapshot::de_complete_snapshot_http_request(
          51  +
                request,
          52  +
            )
          53  +
            .await
   52     54   
        };
   53     55   
        use ::futures_util::future::TryFutureExt;
   54     56   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
   55     57   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
   56     58   
                        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e)
   57     59   
                    });
   58         -
        StartSnapshotInputFuture {
          60  +
        CompleteSnapshotInputFuture {
   59     61   
            inner: Box::pin(fut),
   60     62   
        }
   61     63   
    }
   62     64   
}
   63     65   
impl
   64     66   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
   65     67   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
   66         -
    > for crate::output::StartSnapshotOutput
          68  +
    > for crate::output::CompleteSnapshotOutput
   67     69   
{
   68     70   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
   69         -
        match crate::protocol_serde::shape_start_snapshot::ser_start_snapshot_http_response(self) {
          71  +
        match crate::protocol_serde::shape_complete_snapshot::ser_complete_snapshot_http_response(
          72  +
            self,
          73  +
        ) {
   70     74   
            Ok(response) => response,
   71     75   
            Err(e) => {
   72     76   
                ::tracing::error!(error = %e, "failed to serialize response");
   73     77   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
   74     78   
            }
   75     79   
        }
   76     80   
    }
   77     81   
}
   78     82   
impl
   79     83   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
   80     84   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
   81         -
    > for crate::error::StartSnapshotError
          85  +
    > for crate::error::CompleteSnapshotError
   82     86   
{
   83     87   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
   84         -
        match crate::protocol_serde::shape_start_snapshot::ser_start_snapshot_http_error(&self) {
          88  +
        match crate::protocol_serde::shape_complete_snapshot::ser_complete_snapshot_http_error(
          89  +
            &self,
          90  +
        ) {
   85     91   
            Ok(mut response) => {
   86     92   
                response.extensions_mut().insert(
   87     93   
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
   88     94   
                        self.name(),
   89     95   
                    ),
   90     96   
                );
   91     97   
                response
   92     98   
            }
   93     99   
            Err(e) => {
   94    100   
                ::tracing::error!(error = %e, "failed to serialize response");
   95    101   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
   96    102   
            }
   97    103   
        }
   98    104   
    }
   99    105   
}
  100    106   
  101    107   
::pin_project_lite::pin_project! {
  102    108   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  103         -
    /// [`PutSnapshotBlockInput`](crate::input::PutSnapshotBlockInput) using modelled bindings.
  104         -
    pub struct PutSnapshotBlockInputFuture {
  105         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::PutSnapshotBlockInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
         109  +
    /// [`GetSnapshotBlockInput`](crate::input::GetSnapshotBlockInput) using modelled bindings.
         110  +
    pub struct GetSnapshotBlockInputFuture {
         111  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::GetSnapshotBlockInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  106    112   
    }
  107    113   
}
  108    114   
  109         -
impl std::future::Future for PutSnapshotBlockInputFuture {
         115  +
impl std::future::Future for GetSnapshotBlockInputFuture {
  110    116   
    type Output = Result<
  111         -
        crate::input::PutSnapshotBlockInput,
         117  +
        crate::input::GetSnapshotBlockInput,
  112    118   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError,
  113    119   
    >;
  114    120   
  115    121   
    fn poll(
  116    122   
        self: std::pin::Pin<&mut Self>,
  117    123   
        cx: &mut std::task::Context<'_>,
  118    124   
    ) -> std::task::Poll<Self::Output> {
  119    125   
        let this = self.project();
  120    126   
        this.inner.as_mut().poll(cx)
  121    127   
    }
  122    128   
}
  123    129   
  124    130   
impl<B>
  125    131   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  126    132   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  127    133   
        B,
  128         -
    > for crate::input::PutSnapshotBlockInput
         134  +
    > for crate::input::GetSnapshotBlockInput
  129    135   
where
  130    136   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  131    137   
    B: 'static,
  132    138   
  133         -
    B: Into<::aws_smithy_types::byte_stream::ByteStream>,
  134    139   
    B::Data: Send,
  135    140   
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  136    141   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  137    142   
{
  138    143   
    type Rejection =
  139    144   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  140         -
    type Future = PutSnapshotBlockInputFuture;
         145  +
    type Future = GetSnapshotBlockInputFuture;
  141    146   
  142    147   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  143    148   
        let fut = async move {
  144    149   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  145    150   
                request.headers(),
  146         -
                &crate::mimes::CONTENT_TYPE_APPLICATION_JSON,
         151  +
                &crate::mimes::CONTENT_TYPE_APPLICATION_OCTET_STREAM,
  147    152   
            ) {
  148    153   
                return Err(::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  149    154   
            }
  150         -
            crate::protocol_serde::shape_put_snapshot_block::de_put_snapshot_block_http_request(
         155  +
            crate::protocol_serde::shape_get_snapshot_block::de_get_snapshot_block_http_request(
  151    156   
                request,
  152    157   
            )
  153    158   
            .await
  154    159   
        };
  155    160   
        use ::futures_util::future::TryFutureExt;
  156    161   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  157    162   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  158    163   
                        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e)
  159    164   
                    });
  160         -
        PutSnapshotBlockInputFuture {
         165  +
        GetSnapshotBlockInputFuture {
  161    166   
            inner: Box::pin(fut),
  162    167   
        }
  163    168   
    }
  164    169   
}
  165    170   
impl
  166    171   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  167    172   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  168         -
    > for crate::output::PutSnapshotBlockOutput
         173  +
    > for crate::output::GetSnapshotBlockOutput
  169    174   
{
  170    175   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  171         -
        match crate::protocol_serde::shape_put_snapshot_block::ser_put_snapshot_block_http_response(
         176  +
        match crate::protocol_serde::shape_get_snapshot_block::ser_get_snapshot_block_http_response(
  172    177   
            self,
  173    178   
        ) {
  174    179   
            Ok(response) => response,
  175    180   
            Err(e) => {
  176    181   
                ::tracing::error!(error = %e, "failed to serialize response");
  177    182   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  178    183   
            }
  179    184   
        }
  180    185   
    }
  181    186   
}
  182    187   
impl
  183    188   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  184    189   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  185         -
    > for crate::error::PutSnapshotBlockError
         190  +
    > for crate::error::GetSnapshotBlockError
  186    191   
{
  187    192   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  188         -
        match crate::protocol_serde::shape_put_snapshot_block::ser_put_snapshot_block_http_error(
         193  +
        match crate::protocol_serde::shape_get_snapshot_block::ser_get_snapshot_block_http_error(
  189    194   
            &self,
  190    195   
        ) {
  191    196   
            Ok(mut response) => {
  192    197   
                response.extensions_mut().insert(
  193    198   
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
  194    199   
                        self.name(),
  195    200   
                    ),
  196    201   
                );
  197    202   
                response
  198    203   
            }
  199    204   
            Err(e) => {
  200    205   
                ::tracing::error!(error = %e, "failed to serialize response");
  201    206   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  202    207   
            }
  203    208   
        }
  204    209   
    }
  205    210   
}
  206    211   
  207    212   
::pin_project_lite::pin_project! {
  208    213   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  209         -
    /// [`ListSnapshotBlocksInput`](crate::input::ListSnapshotBlocksInput) using modelled bindings.
  210         -
    pub struct ListSnapshotBlocksInputFuture {
  211         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ListSnapshotBlocksInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
         214  +
    /// [`ListChangedBlocksInput`](crate::input::ListChangedBlocksInput) using modelled bindings.
         215  +
    pub struct ListChangedBlocksInputFuture {
         216  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ListChangedBlocksInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  212    217   
    }
  213    218   
}
  214    219   
  215         -
impl std::future::Future for ListSnapshotBlocksInputFuture {
         220  +
impl std::future::Future for ListChangedBlocksInputFuture {
  216    221   
    type Output = Result<
  217         -
        crate::input::ListSnapshotBlocksInput,
         222  +
        crate::input::ListChangedBlocksInput,
  218    223   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError,
  219    224   
    >;
  220    225   
  221    226   
    fn poll(
  222    227   
        self: std::pin::Pin<&mut Self>,
  223    228   
        cx: &mut std::task::Context<'_>,
  224    229   
    ) -> std::task::Poll<Self::Output> {
  225    230   
        let this = self.project();
  226    231   
        this.inner.as_mut().poll(cx)
  227    232   
    }
  228    233   
}
  229    234   
  230    235   
impl<B>
  231    236   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  232    237   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  233    238   
        B,
  234         -
    > for crate::input::ListSnapshotBlocksInput
         239  +
    > for crate::input::ListChangedBlocksInput
  235    240   
where
  236    241   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  237    242   
    B: 'static,
  238    243   
  239    244   
    B::Data: Send,
  240    245   
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  241    246   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  242    247   
{
  243    248   
    type Rejection =
  244    249   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  245         -
    type Future = ListSnapshotBlocksInputFuture;
         250  +
    type Future = ListChangedBlocksInputFuture;
  246    251   
  247    252   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  248    253   
        let fut = async move {
  249    254   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  250    255   
                request.headers(),
  251    256   
                &crate::mimes::CONTENT_TYPE_APPLICATION_JSON,
  252    257   
            ) {
  253    258   
                return Err(::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  254    259   
            }
  255         -
            crate::protocol_serde::shape_list_snapshot_blocks::de_list_snapshot_blocks_http_request(
         260  +
            crate::protocol_serde::shape_list_changed_blocks::de_list_changed_blocks_http_request(
  256    261   
                request,
  257    262   
            )
  258    263   
            .await
  259    264   
        };
  260    265   
        use ::futures_util::future::TryFutureExt;
  261    266   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  262    267   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  263    268   
                        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e)
  264    269   
                    });
  265         -
        ListSnapshotBlocksInputFuture {
         270  +
        ListChangedBlocksInputFuture {
  266    271   
            inner: Box::pin(fut),
  267    272   
        }
  268    273   
    }
  269    274   
}
  270    275   
impl
  271    276   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  272    277   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  273         -
    > for crate::output::ListSnapshotBlocksOutput
         278  +
    > for crate::output::ListChangedBlocksOutput
  274    279   
{
  275    280   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  276         -
        match crate::protocol_serde::shape_list_snapshot_blocks::ser_list_snapshot_blocks_http_response(self) {
         281  +
        match crate::protocol_serde::shape_list_changed_blocks::ser_list_changed_blocks_http_response(self) {
  277    282   
                        Ok(response) => response,
  278    283   
                        Err(e) => {
  279    284   
                            ::tracing::error!(error = %e, "failed to serialize response");
  280    285   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  281    286   
                        }
  282    287   
                    }
  283    288   
    }
  284    289   
}
  285    290   
impl
  286    291   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  287    292   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  288         -
    > for crate::error::ListSnapshotBlocksError
         293  +
    > for crate::error::ListChangedBlocksError
  289    294   
{
  290    295   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  291         -
        match crate::protocol_serde::shape_list_snapshot_blocks::ser_list_snapshot_blocks_http_error(
         296  +
        match crate::protocol_serde::shape_list_changed_blocks::ser_list_changed_blocks_http_error(
  292    297   
            &self,
  293    298   
        ) {
  294    299   
            Ok(mut response) => {
  295    300   
                response.extensions_mut().insert(
  296    301   
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
  297    302   
                        self.name(),
  298    303   
                    ),
  299    304   
                );
  300    305   
                response
  301    306   
            }
  302    307   
            Err(e) => {
  303    308   
                ::tracing::error!(error = %e, "failed to serialize response");
  304    309   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  305    310   
            }
  306    311   
        }
  307    312   
    }
  308    313   
}
  309    314   
  310    315   
::pin_project_lite::pin_project! {
  311    316   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  312         -
    /// [`ListChangedBlocksInput`](crate::input::ListChangedBlocksInput) using modelled bindings.
  313         -
    pub struct ListChangedBlocksInputFuture {
  314         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ListChangedBlocksInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
         317  +
    /// [`ListSnapshotBlocksInput`](crate::input::ListSnapshotBlocksInput) using modelled bindings.
         318  +
    pub struct ListSnapshotBlocksInputFuture {
         319  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ListSnapshotBlocksInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  315    320   
    }
  316    321   
}
  317    322   
  318         -
impl std::future::Future for ListChangedBlocksInputFuture {
         323  +
impl std::future::Future for ListSnapshotBlocksInputFuture {
  319    324   
    type Output = Result<
  320         -
        crate::input::ListChangedBlocksInput,
         325  +
        crate::input::ListSnapshotBlocksInput,
  321    326   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError,
  322    327   
    >;
  323    328   
  324    329   
    fn poll(
  325    330   
        self: std::pin::Pin<&mut Self>,
  326    331   
        cx: &mut std::task::Context<'_>,
  327    332   
    ) -> std::task::Poll<Self::Output> {
  328    333   
        let this = self.project();
  329    334   
        this.inner.as_mut().poll(cx)
  330    335   
    }
  331    336   
}
  332    337   
  333    338   
impl<B>
  334    339   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  335    340   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  336    341   
        B,
  337         -
    > for crate::input::ListChangedBlocksInput
         342  +
    > for crate::input::ListSnapshotBlocksInput
  338    343   
where
  339    344   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  340    345   
    B: 'static,
  341    346   
  342    347   
    B::Data: Send,
  343    348   
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  344    349   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  345    350   
{
  346    351   
    type Rejection =
  347    352   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  348         -
    type Future = ListChangedBlocksInputFuture;
         353  +
    type Future = ListSnapshotBlocksInputFuture;
  349    354   
  350    355   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  351    356   
        let fut = async move {
  352    357   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  353    358   
                request.headers(),
  354    359   
                &crate::mimes::CONTENT_TYPE_APPLICATION_JSON,
  355    360   
            ) {
  356    361   
                return Err(::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  357    362   
            }
  358         -
            crate::protocol_serde::shape_list_changed_blocks::de_list_changed_blocks_http_request(
         363  +
            crate::protocol_serde::shape_list_snapshot_blocks::de_list_snapshot_blocks_http_request(
  359    364   
                request,
  360    365   
            )
  361    366   
            .await
  362    367   
        };
  363    368   
        use ::futures_util::future::TryFutureExt;
  364    369   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  365    370   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  366    371   
                        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e)
  367    372   
                    });
  368         -
        ListChangedBlocksInputFuture {
         373  +
        ListSnapshotBlocksInputFuture {
  369    374   
            inner: Box::pin(fut),
  370    375   
        }
  371    376   
    }
  372    377   
}
  373    378   
impl
  374    379   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  375    380   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  376         -
    > for crate::output::ListChangedBlocksOutput
         381  +
    > for crate::output::ListSnapshotBlocksOutput
  377    382   
{
  378    383   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  379         -
        match crate::protocol_serde::shape_list_changed_blocks::ser_list_changed_blocks_http_response(self) {
         384  +
        match crate::protocol_serde::shape_list_snapshot_blocks::ser_list_snapshot_blocks_http_response(self) {
  380    385   
                        Ok(response) => response,
  381    386   
                        Err(e) => {
  382    387   
                            ::tracing::error!(error = %e, "failed to serialize response");
  383    388   
                            ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  384    389   
                        }
  385    390   
                    }
  386    391   
    }
  387    392   
}
  388    393   
impl
  389    394   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  390    395   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  391         -
    > for crate::error::ListChangedBlocksError
         396  +
    > for crate::error::ListSnapshotBlocksError
  392    397   
{
  393    398   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  394         -
        match crate::protocol_serde::shape_list_changed_blocks::ser_list_changed_blocks_http_error(
         399  +
        match crate::protocol_serde::shape_list_snapshot_blocks::ser_list_snapshot_blocks_http_error(
  395    400   
            &self,
  396    401   
        ) {
  397    402   
            Ok(mut response) => {
  398    403   
                response.extensions_mut().insert(
  399    404   
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
  400    405   
                        self.name(),
  401    406   
                    ),
  402    407   
                );
  403    408   
                response
  404    409   
            }
  405    410   
            Err(e) => {
  406    411   
                ::tracing::error!(error = %e, "failed to serialize response");
  407    412   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  408    413   
            }
  409    414   
        }
  410    415   
    }
  411    416   
}
  412    417   
  413    418   
::pin_project_lite::pin_project! {
  414    419   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  415         -
    /// [`GetSnapshotBlockInput`](crate::input::GetSnapshotBlockInput) using modelled bindings.
  416         -
    pub struct GetSnapshotBlockInputFuture {
  417         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::GetSnapshotBlockInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
         420  +
    /// [`PutSnapshotBlockInput`](crate::input::PutSnapshotBlockInput) using modelled bindings.
         421  +
    pub struct PutSnapshotBlockInputFuture {
         422  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::PutSnapshotBlockInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  418    423   
    }
  419    424   
}
  420    425   
  421         -
impl std::future::Future for GetSnapshotBlockInputFuture {
         426  +
impl std::future::Future for PutSnapshotBlockInputFuture {
  422    427   
    type Output = Result<
  423         -
        crate::input::GetSnapshotBlockInput,
         428  +
        crate::input::PutSnapshotBlockInput,
  424    429   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError,
  425    430   
    >;
  426    431   
  427    432   
    fn poll(
  428    433   
        self: std::pin::Pin<&mut Self>,
  429    434   
        cx: &mut std::task::Context<'_>,
  430    435   
    ) -> std::task::Poll<Self::Output> {
  431    436   
        let this = self.project();
  432    437   
        this.inner.as_mut().poll(cx)
  433    438   
    }
  434    439   
}
  435    440   
  436    441   
impl<B>
  437    442   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  438    443   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  439    444   
        B,
  440         -
    > for crate::input::GetSnapshotBlockInput
         445  +
    > for crate::input::PutSnapshotBlockInput
  441    446   
where
  442    447   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  443    448   
    B: 'static,
  444    449   
         450  +
    B: Into<::aws_smithy_types::byte_stream::ByteStream>,
  445    451   
    B::Data: Send,
  446    452   
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  447    453   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  448    454   
{
  449    455   
    type Rejection =
  450    456   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  451         -
    type Future = GetSnapshotBlockInputFuture;
         457  +
    type Future = PutSnapshotBlockInputFuture;
  452    458   
  453    459   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  454    460   
        let fut = async move {
  455    461   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  456    462   
                request.headers(),
  457         -
                &crate::mimes::CONTENT_TYPE_APPLICATION_OCTET_STREAM,
         463  +
                &crate::mimes::CONTENT_TYPE_APPLICATION_JSON,
  458    464   
            ) {
  459    465   
                return Err(::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  460    466   
            }
  461         -
            crate::protocol_serde::shape_get_snapshot_block::de_get_snapshot_block_http_request(
         467  +
            crate::protocol_serde::shape_put_snapshot_block::de_put_snapshot_block_http_request(
  462    468   
                request,
  463    469   
            )
  464    470   
            .await
  465    471   
        };
  466    472   
        use ::futures_util::future::TryFutureExt;
  467    473   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  468    474   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  469    475   
                        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e)
  470    476   
                    });
  471         -
        GetSnapshotBlockInputFuture {
         477  +
        PutSnapshotBlockInputFuture {
  472    478   
            inner: Box::pin(fut),
  473    479   
        }
  474    480   
    }
  475    481   
}
  476    482   
impl
  477    483   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  478    484   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  479         -
    > for crate::output::GetSnapshotBlockOutput
         485  +
    > for crate::output::PutSnapshotBlockOutput
  480    486   
{
  481    487   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  482         -
        match crate::protocol_serde::shape_get_snapshot_block::ser_get_snapshot_block_http_response(
         488  +
        match crate::protocol_serde::shape_put_snapshot_block::ser_put_snapshot_block_http_response(
  483    489   
            self,
  484    490   
        ) {
  485    491   
            Ok(response) => response,
  486    492   
            Err(e) => {
  487    493   
                ::tracing::error!(error = %e, "failed to serialize response");
  488    494   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  489    495   
            }
  490    496   
        }
  491    497   
    }
  492    498   
}
  493    499   
impl
  494    500   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  495    501   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  496         -
    > for crate::error::GetSnapshotBlockError
         502  +
    > for crate::error::PutSnapshotBlockError
  497    503   
{
  498    504   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  499         -
        match crate::protocol_serde::shape_get_snapshot_block::ser_get_snapshot_block_http_error(
         505  +
        match crate::protocol_serde::shape_put_snapshot_block::ser_put_snapshot_block_http_error(
  500    506   
            &self,
  501    507   
        ) {
  502    508   
            Ok(mut response) => {
  503    509   
                response.extensions_mut().insert(
  504    510   
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
  505    511   
                        self.name(),
  506    512   
                    ),
  507    513   
                );
  508    514   
                response
  509    515   
            }
  510    516   
            Err(e) => {
  511    517   
                ::tracing::error!(error = %e, "failed to serialize response");
  512    518   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  513    519   
            }
  514    520   
        }
  515    521   
    }
  516    522   
}
  517    523   
  518    524   
::pin_project_lite::pin_project! {
  519    525   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  520         -
    /// [`CompleteSnapshotInput`](crate::input::CompleteSnapshotInput) using modelled bindings.
  521         -
    pub struct CompleteSnapshotInputFuture {
  522         -
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::CompleteSnapshotInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
         526  +
    /// [`StartSnapshotInput`](crate::input::StartSnapshotInput) using modelled bindings.
         527  +
    pub struct StartSnapshotInputFuture {
         528  +
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::StartSnapshotInput, ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  523    529   
    }
  524    530   
}
  525    531   
  526         -
impl std::future::Future for CompleteSnapshotInputFuture {
         532  +
impl std::future::Future for StartSnapshotInputFuture {
  527    533   
    type Output = Result<
  528         -
        crate::input::CompleteSnapshotInput,
         534  +
        crate::input::StartSnapshotInput,
  529    535   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError,
  530    536   
    >;
  531    537   
  532    538   
    fn poll(
  533    539   
        self: std::pin::Pin<&mut Self>,
  534    540   
        cx: &mut std::task::Context<'_>,
  535    541   
    ) -> std::task::Poll<Self::Output> {
  536    542   
        let this = self.project();
  537    543   
        this.inner.as_mut().poll(cx)
  538    544   
    }
  539    545   
}
  540    546   
  541    547   
impl<B>
  542    548   
    ::aws_smithy_legacy_http_server::request::FromRequest<
  543    549   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  544    550   
        B,
  545         -
    > for crate::input::CompleteSnapshotInput
         551  +
    > for crate::input::StartSnapshotInput
  546    552   
where
  547    553   
    B: ::aws_smithy_legacy_http_server::body::HttpBody + Send,
  548    554   
    B: 'static,
  549    555   
  550    556   
    B::Data: Send,
  551    557   
    ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection:
  552    558   
        From<<B as ::aws_smithy_legacy_http_server::body::HttpBody>::Error>,
  553    559   
{
  554    560   
    type Rejection =
  555    561   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError;
  556         -
    type Future = CompleteSnapshotInputFuture;
         562  +
    type Future = StartSnapshotInputFuture;
  557    563   
  558    564   
    fn from_request(request: ::http::Request<B>) -> Self::Future {
  559    565   
        let fut = async move {
  560    566   
            if !::aws_smithy_legacy_http_server::protocol::accept_header_classifier(
  561    567   
                request.headers(),
  562    568   
                &crate::mimes::CONTENT_TYPE_APPLICATION_JSON,
  563    569   
            ) {
  564    570   
                return Err(::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection::NotAcceptable);
  565    571   
            }
  566         -
            crate::protocol_serde::shape_complete_snapshot::de_complete_snapshot_http_request(
  567         -
                request,
  568         -
            )
  569         -
            .await
         572  +
            crate::protocol_serde::shape_start_snapshot::de_start_snapshot_http_request(request)
         573  +
                .await
  570    574   
        };
  571    575   
        use ::futures_util::future::TryFutureExt;
  572    576   
        let fut = fut.map_err(|e: ::aws_smithy_legacy_http_server::protocol::rest_json_1::rejection::RequestRejection| {
  573    577   
                        ::tracing::debug!(error = %e, "failed to deserialize request");
  574    578   
                        ::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e)
  575    579   
                    });
  576         -
        CompleteSnapshotInputFuture {
         580  +
        StartSnapshotInputFuture {
  577    581   
            inner: Box::pin(fut),
  578    582   
        }
  579    583   
    }
  580    584   
}
  581    585   
impl
  582    586   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  583    587   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  584         -
    > for crate::output::CompleteSnapshotOutput
         588  +
    > for crate::output::StartSnapshotOutput
  585    589   
{
  586    590   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  587         -
        match crate::protocol_serde::shape_complete_snapshot::ser_complete_snapshot_http_response(
  588         -
            self,
  589         -
        ) {
         591  +
        match crate::protocol_serde::shape_start_snapshot::ser_start_snapshot_http_response(self) {
  590    592   
            Ok(response) => response,
  591    593   
            Err(e) => {
  592    594   
                ::tracing::error!(error = %e, "failed to serialize response");
  593    595   
                ::aws_smithy_legacy_http_server::response::IntoResponse::<::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_legacy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  594    596   
            }
  595    597   
        }
  596    598   
    }
  597    599   
}
  598    600   
impl
  599    601   
    ::aws_smithy_legacy_http_server::response::IntoResponse<
  600    602   
        ::aws_smithy_legacy_http_server::protocol::rest_json_1::RestJson1,
  601         -
    > for crate::error::CompleteSnapshotError
         603  +
    > for crate::error::StartSnapshotError
  602    604   
{
  603    605   
    fn into_response(self) -> ::aws_smithy_legacy_http_server::response::Response {
  604         -
        match crate::protocol_serde::shape_complete_snapshot::ser_complete_snapshot_http_error(
  605         -
            &self,
  606         -
        ) {
         606  +
        match crate::protocol_serde::shape_start_snapshot::ser_start_snapshot_http_error(&self) {
  607    607   
            Ok(mut response) => {
  608    608   
                response.extensions_mut().insert(
  609    609   
                    ::aws_smithy_legacy_http_server::extension::ModeledErrorExtension::new(
  610    610   
                        self.name(),
  611    611   
                    ),
  612    612   
                );
  613    613   
                response
  614    614   
            }
  615    615   
            Err(e) => {
  616    616   
                ::tracing::error!(error = %e, "failed to serialize response");

tmp-codegen-diff/codegen-server-test/ebs-http0x/rust-server-codegen/src/operation_shape.rs

@@ -1,1 +241,241 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// <p>Creates a new Amazon EBS snapshot. The new snapshot enters the <code>pending</code> state after the request completes.</p>
    4         -
/// <p>After creating the snapshot, use <a href="https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html"> PutSnapshotBlock</a> to write blocks of data to the snapshot.</p>
    5         -
pub struct StartSnapshot;
           3  +
/// <p>Seals and completes the snapshot after all of the required blocks of data have been written to it. Completing the snapshot changes the status to <code>completed</code>. You cannot write new blocks to a snapshot after it has been completed.</p>
           4  +
pub struct CompleteSnapshot;
    6      5   
    7         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for StartSnapshot {
           6  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for CompleteSnapshot {
    8      7   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
    9      8   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
   10         -
            "com.amazonaws.ebs#StartSnapshot",
           9  +
            "com.amazonaws.ebs#CompleteSnapshot",
   11     10   
            "com.amazonaws.ebs",
   12         -
            "StartSnapshot",
          11  +
            "CompleteSnapshot",
   13     12   
        );
   14     13   
   15         -
    type Input = crate::input::StartSnapshotInput;
   16         -
    type Output = crate::output::StartSnapshotOutput;
   17         -
    type Error = crate::error::StartSnapshotError;
          14  +
    type Input = crate::input::CompleteSnapshotInput;
          15  +
    type Output = crate::output::CompleteSnapshotOutput;
          16  +
    type Error = crate::error::CompleteSnapshotError;
   18     17   
}
   19     18   
   20         -
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for StartSnapshot {
          19  +
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
          20  +
    for CompleteSnapshot
          21  +
{
   21     22   
    type RequestFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt<
   22     23   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   23     24   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::uri::MakeUri<
   24     25   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   25     26   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   26     27   
        >,
   27     28   
    >;
   28     29   
    type ResponseFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt<
   29     30   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   30     31   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   31     32   
    >;
   32     33   
   33     34   
    fn request_fmt() -> Self::RequestFmt {
   34     35   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
   35     36   
    }
   36     37   
   37     38   
    fn response_fmt() -> Self::ResponseFmt {
   38     39   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   39     40   
    }
   40     41   
}
   41     42   
   42         -
/// <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>
   43         -
/// <p>Data written to a snapshot must be aligned with 512-byte sectors.</p>
   44         -
pub struct PutSnapshotBlock;
          43  +
/// <p>Returns the data in a block in an Amazon Elastic Block Store snapshot.</p>
          44  +
pub struct GetSnapshotBlock;
   45     45   
   46         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for PutSnapshotBlock {
          46  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for GetSnapshotBlock {
   47     47   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
   48     48   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
   49         -
            "com.amazonaws.ebs#PutSnapshotBlock",
          49  +
            "com.amazonaws.ebs#GetSnapshotBlock",
   50     50   
            "com.amazonaws.ebs",
   51         -
            "PutSnapshotBlock",
          51  +
            "GetSnapshotBlock",
   52     52   
        );
   53     53   
   54         -
    type Input = crate::input::PutSnapshotBlockInput;
   55         -
    type Output = crate::output::PutSnapshotBlockOutput;
   56         -
    type Error = crate::error::PutSnapshotBlockError;
          54  +
    type Input = crate::input::GetSnapshotBlockInput;
          55  +
    type Output = crate::output::GetSnapshotBlockOutput;
          56  +
    type Error = crate::error::GetSnapshotBlockError;
   57     57   
}
   58     58   
   59     59   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
   60         -
    for PutSnapshotBlock
          60  +
    for GetSnapshotBlock
   61     61   
{
   62     62   
    type RequestFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt<
   63     63   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   64     64   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::uri::MakeUri<
   65     65   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   66     66   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   67     67   
        >,
   68     68   
    >;
   69     69   
    type ResponseFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt<
   70     70   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   71     71   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
   72     72   
    >;
   73     73   
   74     74   
    fn request_fmt() -> Self::RequestFmt {
   75     75   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
   76     76   
    }
   77     77   
   78     78   
    fn response_fmt() -> Self::ResponseFmt {
   79     79   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   80     80   
    }
   81     81   
}
   82     82   
   83         -
/// <p>Returns information about the blocks in an Amazon Elastic Block Store snapshot.</p>
   84         -
pub struct ListSnapshotBlocks;
          83  +
/// <p>Returns information about the blocks that are different between two Amazon Elastic Block Store snapshots of the same volume/snapshot lineage.</p>
          84  +
pub struct ListChangedBlocks;
   85     85   
   86         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for ListSnapshotBlocks {
          86  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for ListChangedBlocks {
   87     87   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
   88     88   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
   89         -
            "com.amazonaws.ebs#ListSnapshotBlocks",
          89  +
            "com.amazonaws.ebs#ListChangedBlocks",
   90     90   
            "com.amazonaws.ebs",
   91         -
            "ListSnapshotBlocks",
          91  +
            "ListChangedBlocks",
   92     92   
        );
   93     93   
   94         -
    type Input = crate::input::ListSnapshotBlocksInput;
   95         -
    type Output = crate::output::ListSnapshotBlocksOutput;
   96         -
    type Error = crate::error::ListSnapshotBlocksError;
          94  +
    type Input = crate::input::ListChangedBlocksInput;
          95  +
    type Output = crate::output::ListChangedBlocksOutput;
          96  +
    type Error = crate::error::ListChangedBlocksError;
   97     97   
}
   98     98   
   99     99   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  100         -
    for ListSnapshotBlocks
         100  +
    for ListChangedBlocks
  101    101   
{
  102    102   
    type RequestFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt<
  103    103   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  104    104   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::uri::MakeUri<
  105    105   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  106    106   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  107    107   
        >,
  108    108   
    >;
  109    109   
    type ResponseFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt<
  110    110   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  111    111   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  112    112   
    >;
  113    113   
  114    114   
    fn request_fmt() -> Self::RequestFmt {
  115    115   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  116    116   
    }
  117    117   
  118    118   
    fn response_fmt() -> Self::ResponseFmt {
  119    119   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  120    120   
    }
  121    121   
}
  122    122   
  123         -
/// <p>Returns information about the blocks that are different between two Amazon Elastic Block Store snapshots of the same volume/snapshot lineage.</p>
  124         -
pub struct ListChangedBlocks;
         123  +
/// <p>Returns information about the blocks in an Amazon Elastic Block Store snapshot.</p>
         124  +
pub struct ListSnapshotBlocks;
  125    125   
  126         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for ListChangedBlocks {
         126  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for ListSnapshotBlocks {
  127    127   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  128    128   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  129         -
            "com.amazonaws.ebs#ListChangedBlocks",
         129  +
            "com.amazonaws.ebs#ListSnapshotBlocks",
  130    130   
            "com.amazonaws.ebs",
  131         -
            "ListChangedBlocks",
         131  +
            "ListSnapshotBlocks",
  132    132   
        );
  133    133   
  134         -
    type Input = crate::input::ListChangedBlocksInput;
  135         -
    type Output = crate::output::ListChangedBlocksOutput;
  136         -
    type Error = crate::error::ListChangedBlocksError;
         134  +
    type Input = crate::input::ListSnapshotBlocksInput;
         135  +
    type Output = crate::output::ListSnapshotBlocksOutput;
         136  +
    type Error = crate::error::ListSnapshotBlocksError;
  137    137   
}
  138    138   
  139    139   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  140         -
    for ListChangedBlocks
         140  +
    for ListSnapshotBlocks
  141    141   
{
  142    142   
    type RequestFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt<
  143    143   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  144    144   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::uri::MakeUri<
  145    145   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  146    146   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  147    147   
        >,
  148    148   
    >;
  149    149   
    type ResponseFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt<
  150    150   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  151    151   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  152    152   
    >;
  153    153   
  154    154   
    fn request_fmt() -> Self::RequestFmt {
  155    155   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  156    156   
    }
  157    157   
  158    158   
    fn response_fmt() -> Self::ResponseFmt {
  159    159   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  160    160   
    }
  161    161   
}
  162    162   
  163         -
/// <p>Returns the data in a block in an Amazon Elastic Block Store snapshot.</p>
  164         -
pub struct GetSnapshotBlock;
         163  +
/// <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>
         164  +
/// <p>Data written to a snapshot must be aligned with 512-byte sectors.</p>
         165  +
pub struct PutSnapshotBlock;
  165    166   
  166         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for GetSnapshotBlock {
         167  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for PutSnapshotBlock {
  167    168   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  168    169   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  169         -
            "com.amazonaws.ebs#GetSnapshotBlock",
         170  +
            "com.amazonaws.ebs#PutSnapshotBlock",
  170    171   
            "com.amazonaws.ebs",
  171         -
            "GetSnapshotBlock",
         172  +
            "PutSnapshotBlock",
  172    173   
        );
  173    174   
  174         -
    type Input = crate::input::GetSnapshotBlockInput;
  175         -
    type Output = crate::output::GetSnapshotBlockOutput;
  176         -
    type Error = crate::error::GetSnapshotBlockError;
         175  +
    type Input = crate::input::PutSnapshotBlockInput;
         176  +
    type Output = crate::output::PutSnapshotBlockOutput;
         177  +
    type Error = crate::error::PutSnapshotBlockError;
  177    178   
}
  178    179   
  179    180   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  180         -
    for GetSnapshotBlock
         181  +
    for PutSnapshotBlock
  181    182   
{
  182    183   
    type RequestFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt<
  183    184   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  184    185   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::uri::MakeUri<
  185    186   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  186    187   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  187    188   
        >,
  188    189   
    >;
  189    190   
    type ResponseFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt<
  190    191   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  191    192   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  192    193   
    >;
  193    194   
  194    195   
    fn request_fmt() -> Self::RequestFmt {
  195    196   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  196    197   
    }
  197    198   
  198    199   
    fn response_fmt() -> Self::ResponseFmt {
  199    200   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  200    201   
    }
  201    202   
}
  202    203   
  203         -
/// <p>Seals and completes the snapshot after all of the required blocks of data have been written to it. Completing the snapshot changes the status to <code>completed</code>. You cannot write new blocks to a snapshot after it has been completed.</p>
  204         -
pub struct CompleteSnapshot;
         204  +
/// <p>Creates a new Amazon EBS snapshot. The new snapshot enters the <code>pending</code> state after the request completes.</p>
         205  +
/// <p>After creating the snapshot, use <a href="https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html"> PutSnapshotBlock</a> to write blocks of data to the snapshot.</p>
         206  +
pub struct StartSnapshot;
  205    207   
  206         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for CompleteSnapshot {
         208  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for StartSnapshot {
  207    209   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  208    210   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  209         -
            "com.amazonaws.ebs#CompleteSnapshot",
         211  +
            "com.amazonaws.ebs#StartSnapshot",
  210    212   
            "com.amazonaws.ebs",
  211         -
            "CompleteSnapshot",
         213  +
            "StartSnapshot",
  212    214   
        );
  213    215   
  214         -
    type Input = crate::input::CompleteSnapshotInput;
  215         -
    type Output = crate::output::CompleteSnapshotOutput;
  216         -
    type Error = crate::error::CompleteSnapshotError;
         216  +
    type Input = crate::input::StartSnapshotInput;
         217  +
    type Output = crate::output::StartSnapshotOutput;
         218  +
    type Error = crate::error::StartSnapshotError;
  217    219   
}
  218    220   
  219         -
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  220         -
    for CompleteSnapshot
  221         -
{
         221  +
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for StartSnapshot {
  222    222   
    type RequestFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt<
  223    223   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  224    224   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::uri::MakeUri<
  225    225   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  226    226   
            ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  227    227   
        >,
  228    228   
    >;
  229    229   
    type ResponseFmt = ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt<
  230    230   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,
  231    231   
        ::aws_smithy_legacy_http_server::instrumentation::MakeIdentity,

tmp-codegen-diff/codegen-server-test/ebs-http0x/rust-server-codegen/src/output.rs

@@ -1,1 +144,140 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::hash::Hash)]
    4         -
pub struct StartSnapshotOutput {
    5         -
    /// <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>
    6         -
    pub tags: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
    7         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
    8         -
    pub kms_key_arn: ::std::option::Option<crate::model::KmsKeyArn>,
    9         -
    /// <p>The AWS account ID of the snapshot owner.</p>
   10         -
    pub owner_id: ::std::option::Option<crate::model::OwnerId>,
   11         -
    /// <p>The size of the volume, in GiB.</p>
   12         -
    pub volume_size: ::std::option::Option<crate::model::VolumeSize>,
   13         -
    /// <p>The ID of the parent snapshot.</p>
   14         -
    pub parent_snapshot_id: ::std::option::Option<crate::model::SnapshotId>,
   15         -
    /// <p>The description of the snapshot.</p>
   16         -
    pub description: ::std::option::Option<crate::model::Description>,
   17         -
    /// <p>The ID of the snapshot.</p>
   18         -
    pub snapshot_id: ::std::option::Option<crate::model::SnapshotId>,
   19         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
   20         -
    pub block_size: ::std::option::Option<i32>,
   21         -
    /// <p>The timestamp when the snapshot was created.</p>
   22         -
    pub start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
           3  +
#[derive(
           4  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
           5  +
)]
           6  +
pub struct CompleteSnapshotOutput {
   23      7   
    /// <p>The status of the snapshot.</p>
   24      8   
    pub status: ::std::option::Option<crate::model::Status>,
   25      9   
}
   26         -
impl StartSnapshotOutput {
   27         -
    /// <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>
   28         -
    pub fn tags(&self) -> ::std::option::Option<&[crate::model::Tag]> {
   29         -
        self.tags.as_deref()
   30         -
    }
   31         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
   32         -
    pub fn kms_key_arn(&self) -> ::std::option::Option<&crate::model::KmsKeyArn> {
   33         -
        self.kms_key_arn.as_ref()
   34         -
    }
   35         -
    /// <p>The AWS account ID of the snapshot owner.</p>
   36         -
    pub fn owner_id(&self) -> ::std::option::Option<&crate::model::OwnerId> {
   37         -
        self.owner_id.as_ref()
   38         -
    }
   39         -
    /// <p>The size of the volume, in GiB.</p>
   40         -
    pub fn volume_size(&self) -> ::std::option::Option<&crate::model::VolumeSize> {
   41         -
        self.volume_size.as_ref()
   42         -
    }
   43         -
    /// <p>The ID of the parent snapshot.</p>
   44         -
    pub fn parent_snapshot_id(&self) -> ::std::option::Option<&crate::model::SnapshotId> {
   45         -
        self.parent_snapshot_id.as_ref()
          10  +
impl CompleteSnapshotOutput {
          11  +
    /// <p>The status of the snapshot.</p>
          12  +
    pub fn status(&self) -> ::std::option::Option<&crate::model::Status> {
          13  +
        self.status.as_ref()
   46     14   
    }
   47         -
    /// <p>The description of the snapshot.</p>
   48         -
    pub fn description(&self) -> ::std::option::Option<&crate::model::Description> {
   49         -
        self.description.as_ref()
          15  +
}
          16  +
impl CompleteSnapshotOutput {
          17  +
    /// Creates a new builder-style object to manufacture [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
          18  +
    pub fn builder() -> crate::output::complete_snapshot_output::Builder {
          19  +
        crate::output::complete_snapshot_output::Builder::default()
   50     20   
    }
   51         -
    /// <p>The ID of the snapshot.</p>
   52         -
    pub fn snapshot_id(&self) -> ::std::option::Option<&crate::model::SnapshotId> {
   53         -
        self.snapshot_id.as_ref()
          21  +
}
          22  +
          23  +
#[allow(missing_docs)] // documentation missing in model
          24  +
pub struct GetSnapshotBlockOutput {
          25  +
    /// <p>The size of the data in the block.</p>
          26  +
    pub data_length: ::std::option::Option<i32>,
          27  +
    /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
          28  +
    pub checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
          29  +
    /// <p>The checksum generated for the block, which is Base64 encoded.</p>
          30  +
    pub checksum: ::std::option::Option<crate::model::Checksum>,
          31  +
    /// <p>The data content of the block.</p>
          32  +
    pub block_data: ::aws_smithy_types::byte_stream::ByteStream,
          33  +
}
          34  +
impl GetSnapshotBlockOutput {
          35  +
    /// <p>The size of the data in the block.</p>
          36  +
    pub fn data_length(&self) -> ::std::option::Option<i32> {
          37  +
        self.data_length
   54     38   
    }
   55         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
   56         -
    pub fn block_size(&self) -> ::std::option::Option<i32> {
   57         -
        self.block_size
          39  +
    /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
          40  +
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::model::ChecksumAlgorithm> {
          41  +
        self.checksum_algorithm.as_ref()
   58     42   
    }
   59         -
    /// <p>The timestamp when the snapshot was created.</p>
   60         -
    pub fn start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
   61         -
        self.start_time.as_ref()
          43  +
    /// <p>The checksum generated for the block, which is Base64 encoded.</p>
          44  +
    pub fn checksum(&self) -> ::std::option::Option<&crate::model::Checksum> {
          45  +
        self.checksum.as_ref()
   62     46   
    }
   63         -
    /// <p>The status of the snapshot.</p>
   64         -
    pub fn status(&self) -> ::std::option::Option<&crate::model::Status> {
   65         -
        self.status.as_ref()
          47  +
    /// <p>The data content of the block.</p>
          48  +
    pub fn block_data(&self) -> &::aws_smithy_types::byte_stream::ByteStream {
          49  +
        &self.block_data
   66     50   
    }
   67     51   
}
   68         -
impl ::std::fmt::Debug for StartSnapshotOutput {
          52  +
impl ::std::fmt::Debug for GetSnapshotBlockOutput {
   69     53   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
   70         -
        let mut formatter = f.debug_struct("StartSnapshotOutput");
   71         -
        formatter.field("tags", &self.tags);
   72         -
        formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
   73         -
        formatter.field("owner_id", &self.owner_id);
   74         -
        formatter.field("volume_size", &self.volume_size);
   75         -
        formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
   76         -
        formatter.field("description", &self.description);
   77         -
        formatter.field("snapshot_id", &self.snapshot_id);
   78         -
        formatter.field("block_size", &self.block_size);
   79         -
        formatter.field("start_time", &self.start_time);
   80         -
        formatter.field("status", &self.status);
          54  +
        let mut formatter = f.debug_struct("GetSnapshotBlockOutput");
          55  +
        formatter.field("data_length", &self.data_length);
          56  +
        formatter.field("checksum_algorithm", &self.checksum_algorithm);
          57  +
        formatter.field("checksum", &self.checksum);
          58  +
        formatter.field("block_data", &"*** Sensitive Data Redacted ***");
   81     59   
        formatter.finish()
   82     60   
    }
   83     61   
}
   84         -
impl StartSnapshotOutput {
   85         -
    /// Creates a new builder-style object to manufacture [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
   86         -
    pub fn builder() -> crate::output::start_snapshot_output::Builder {
   87         -
        crate::output::start_snapshot_output::Builder::default()
          62  +
impl GetSnapshotBlockOutput {
          63  +
    /// Creates a new builder-style object to manufacture [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
          64  +
    pub fn builder() -> crate::output::get_snapshot_block_output::Builder {
          65  +
        crate::output::get_snapshot_block_output::Builder::default()
   88     66   
    }
   89     67   
}
   90     68   
   91     69   
#[allow(missing_docs)] // documentation missing in model
   92     70   
#[derive(
   93     71   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   94     72   
)]
   95         -
pub struct PutSnapshotBlockOutput {
   96         -
    /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
   97         -
    pub checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
   98         -
    /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
   99         -
    pub checksum: ::std::option::Option<crate::model::Checksum>,
          73  +
pub struct ListChangedBlocksOutput {
          74  +
    /// <p>The size of the block.</p>
          75  +
    pub block_size: ::std::option::Option<i32>,
          76  +
    /// <p>The time when the <code>BlockToken</code> expires.</p>
          77  +
    pub expiry_time: ::std::option::Option<::aws_smithy_types::DateTime>,
          78  +
    /// <p>The size of the volume in GB.</p>
          79  +
    pub volume_size: ::std::option::Option<crate::model::VolumeSize>,
          80  +
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
          81  +
    pub next_token: ::std::option::Option<crate::model::PageToken>,
          82  +
    /// <p>An array of objects containing information about the changed blocks.</p>
          83  +
    pub changed_blocks: ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
  100     84   
}
  101         -
impl PutSnapshotBlockOutput {
  102         -
    /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
  103         -
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::model::ChecksumAlgorithm> {
  104         -
        self.checksum_algorithm.as_ref()
          85  +
impl ListChangedBlocksOutput {
          86  +
    /// <p>The size of the block.</p>
          87  +
    pub fn block_size(&self) -> ::std::option::Option<i32> {
          88  +
        self.block_size
  105     89   
    }
  106         -
    /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
  107         -
    pub fn checksum(&self) -> ::std::option::Option<&crate::model::Checksum> {
  108         -
        self.checksum.as_ref()
          90  +
    /// <p>The time when the <code>BlockToken</code> expires.</p>
          91  +
    pub fn expiry_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
          92  +
        self.expiry_time.as_ref()
          93  +
    }
          94  +
    /// <p>The size of the volume in GB.</p>
          95  +
    pub fn volume_size(&self) -> ::std::option::Option<&crate::model::VolumeSize> {
          96  +
        self.volume_size.as_ref()
          97  +
    }
          98  +
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
          99  +
    pub fn next_token(&self) -> ::std::option::Option<&crate::model::PageToken> {
         100  +
        self.next_token.as_ref()
         101  +
    }
         102  +
    /// <p>An array of objects containing information about the changed blocks.</p>
         103  +
    pub fn changed_blocks(&self) -> ::std::option::Option<&[crate::model::ChangedBlock]> {
         104  +
        self.changed_blocks.as_deref()
  109    105   
    }
  110    106   
}
  111         -
impl PutSnapshotBlockOutput {
  112         -
    /// Creates a new builder-style object to manufacture [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
  113         -
    pub fn builder() -> crate::output::put_snapshot_block_output::Builder {
  114         -
        crate::output::put_snapshot_block_output::Builder::default()
         107  +
impl ListChangedBlocksOutput {
         108  +
    /// Creates a new builder-style object to manufacture [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
         109  +
    pub fn builder() -> crate::output::list_changed_blocks_output::Builder {
         110  +
        crate::output::list_changed_blocks_output::Builder::default()
  115    111   
    }
  116    112   
}
  117    113   
  118    114   
#[allow(missing_docs)] // documentation missing in model
  119    115   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::hash::Hash)]
  120    116   
pub struct ListSnapshotBlocksOutput {
  121    117   
    /// <p>The size of the volume in GB.</p>
  122    118   
    pub volume_size: ::std::option::Option<crate::model::VolumeSize>,
  123    119   
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
  124    120   
    pub next_token: ::std::option::Option<crate::model::PageToken>,
@@ -146,142 +478,470 @@
  166    162   
    /// Creates a new builder-style object to manufacture [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
  167    163   
    pub fn builder() -> crate::output::list_snapshot_blocks_output::Builder {
  168    164   
        crate::output::list_snapshot_blocks_output::Builder::default()
  169    165   
    }
  170    166   
}
  171    167   
  172    168   
#[allow(missing_docs)] // documentation missing in model
  173    169   
#[derive(
  174    170   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  175    171   
)]
  176         -
pub struct ListChangedBlocksOutput {
  177         -
    /// <p>The size of the block.</p>
  178         -
    pub block_size: ::std::option::Option<i32>,
  179         -
    /// <p>The time when the <code>BlockToken</code> expires.</p>
  180         -
    pub expiry_time: ::std::option::Option<::aws_smithy_types::DateTime>,
  181         -
    /// <p>The size of the volume in GB.</p>
  182         -
    pub volume_size: ::std::option::Option<crate::model::VolumeSize>,
  183         -
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
  184         -
    pub next_token: ::std::option::Option<crate::model::PageToken>,
  185         -
    /// <p>An array of objects containing information about the changed blocks.</p>
  186         -
    pub changed_blocks: ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
  187         -
}
  188         -
impl ListChangedBlocksOutput {
  189         -
    /// <p>The size of the block.</p>
  190         -
    pub fn block_size(&self) -> ::std::option::Option<i32> {
  191         -
        self.block_size
  192         -
    }
  193         -
    /// <p>The time when the <code>BlockToken</code> expires.</p>
  194         -
    pub fn expiry_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
  195         -
        self.expiry_time.as_ref()
  196         -
    }
  197         -
    /// <p>The size of the volume in GB.</p>
  198         -
    pub fn volume_size(&self) -> ::std::option::Option<&crate::model::VolumeSize> {
  199         -
        self.volume_size.as_ref()
  200         -
    }
  201         -
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
  202         -
    pub fn next_token(&self) -> ::std::option::Option<&crate::model::PageToken> {
  203         -
        self.next_token.as_ref()
  204         -
    }
  205         -
    /// <p>An array of objects containing information about the changed blocks.</p>
  206         -
    pub fn changed_blocks(&self) -> ::std::option::Option<&[crate::model::ChangedBlock]> {
  207         -
        self.changed_blocks.as_deref()
  208         -
    }
  209         -
}
  210         -
impl ListChangedBlocksOutput {
  211         -
    /// Creates a new builder-style object to manufacture [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
  212         -
    pub fn builder() -> crate::output::list_changed_blocks_output::Builder {
  213         -
        crate::output::list_changed_blocks_output::Builder::default()
  214         -
    }
  215         -
}
  216         -
  217         -
#[allow(missing_docs)] // documentation missing in model
  218         -
pub struct GetSnapshotBlockOutput {
  219         -
    /// <p>The size of the data in the block.</p>
  220         -
    pub data_length: ::std::option::Option<i32>,
  221         -
    /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
         172  +
pub struct PutSnapshotBlockOutput {
         173  +
    /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
  222    174   
    pub checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  223         -
    /// <p>The checksum generated for the block, which is Base64 encoded.</p>
         175  +
    /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
  224    176   
    pub checksum: ::std::option::Option<crate::model::Checksum>,
  225         -
    /// <p>The data content of the block.</p>
  226         -
    pub block_data: ::aws_smithy_types::byte_stream::ByteStream,
  227    177   
}
  228         -
impl GetSnapshotBlockOutput {
  229         -
    /// <p>The size of the data in the block.</p>
  230         -
    pub fn data_length(&self) -> ::std::option::Option<i32> {
  231         -
        self.data_length
  232         -
    }
  233         -
    /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
         178  +
impl PutSnapshotBlockOutput {
         179  +
    /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
  234    180   
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::model::ChecksumAlgorithm> {
  235    181   
        self.checksum_algorithm.as_ref()
  236    182   
    }
  237         -
    /// <p>The checksum generated for the block, which is Base64 encoded.</p>
         183  +
    /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
  238    184   
    pub fn checksum(&self) -> ::std::option::Option<&crate::model::Checksum> {
  239    185   
        self.checksum.as_ref()
  240    186   
    }
  241         -
    /// <p>The data content of the block.</p>
  242         -
    pub fn block_data(&self) -> &::aws_smithy_types::byte_stream::ByteStream {
  243         -
        &self.block_data
  244         -
    }
  245         -
}
  246         -
impl ::std::fmt::Debug for GetSnapshotBlockOutput {
  247         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
  248         -
        let mut formatter = f.debug_struct("GetSnapshotBlockOutput");
  249         -
        formatter.field("data_length", &self.data_length);
  250         -
        formatter.field("checksum_algorithm", &self.checksum_algorithm);
  251         -
        formatter.field("checksum", &self.checksum);
  252         -
        formatter.field("block_data", &"*** Sensitive Data Redacted ***");
  253         -
        formatter.finish()
  254         -
    }
  255    187   
}
  256         -
impl GetSnapshotBlockOutput {
  257         -
    /// Creates a new builder-style object to manufacture [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
  258         -
    pub fn builder() -> crate::output::get_snapshot_block_output::Builder {
  259         -
        crate::output::get_snapshot_block_output::Builder::default()
         188  +
impl PutSnapshotBlockOutput {
         189  +
    /// Creates a new builder-style object to manufacture [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
         190  +
    pub fn builder() -> crate::output::put_snapshot_block_output::Builder {
         191  +
        crate::output::put_snapshot_block_output::Builder::default()
  260    192   
    }
  261    193   
}
  262    194   
  263    195   
#[allow(missing_docs)] // documentation missing in model
  264         -
#[derive(
  265         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  266         -
)]
  267         -
pub struct CompleteSnapshotOutput {
         196  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::hash::Hash)]
         197  +
pub struct StartSnapshotOutput {
         198  +
    /// <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  +
    pub tags: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
         200  +
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         201  +
    pub kms_key_arn: ::std::option::Option<crate::model::KmsKeyArn>,
         202  +
    /// <p>The AWS account ID of the snapshot owner.</p>
         203  +
    pub owner_id: ::std::option::Option<crate::model::OwnerId>,
         204  +
    /// <p>The size of the volume, in GiB.</p>
         205  +
    pub volume_size: ::std::option::Option<crate::model::VolumeSize>,
         206  +
    /// <p>The ID of the parent snapshot.</p>
         207  +
    pub parent_snapshot_id: ::std::option::Option<crate::model::SnapshotId>,
         208  +
    /// <p>The description of the snapshot.</p>
         209  +
    pub description: ::std::option::Option<crate::model::Description>,
         210  +
    /// <p>The ID of the snapshot.</p>
         211  +
    pub snapshot_id: ::std::option::Option<crate::model::SnapshotId>,
         212  +
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
         213  +
    pub block_size: ::std::option::Option<i32>,
         214  +
    /// <p>The timestamp when the snapshot was created.</p>
         215  +
    pub start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
  268    216   
    /// <p>The status of the snapshot.</p>
  269    217   
    pub status: ::std::option::Option<crate::model::Status>,
  270    218   
}
  271         -
impl CompleteSnapshotOutput {
         219  +
impl StartSnapshotOutput {
         220  +
    /// <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>
         221  +
    pub fn tags(&self) -> ::std::option::Option<&[crate::model::Tag]> {
         222  +
        self.tags.as_deref()
         223  +
    }
         224  +
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         225  +
    pub fn kms_key_arn(&self) -> ::std::option::Option<&crate::model::KmsKeyArn> {
         226  +
        self.kms_key_arn.as_ref()
         227  +
    }
         228  +
    /// <p>The AWS account ID of the snapshot owner.</p>
         229  +
    pub fn owner_id(&self) -> ::std::option::Option<&crate::model::OwnerId> {
         230  +
        self.owner_id.as_ref()
         231  +
    }
         232  +
    /// <p>The size of the volume, in GiB.</p>
         233  +
    pub fn volume_size(&self) -> ::std::option::Option<&crate::model::VolumeSize> {
         234  +
        self.volume_size.as_ref()
         235  +
    }
         236  +
    /// <p>The ID of the parent snapshot.</p>
         237  +
    pub fn parent_snapshot_id(&self) -> ::std::option::Option<&crate::model::SnapshotId> {
         238  +
        self.parent_snapshot_id.as_ref()
         239  +
    }
         240  +
    /// <p>The description of the snapshot.</p>
         241  +
    pub fn description(&self) -> ::std::option::Option<&crate::model::Description> {
         242  +
        self.description.as_ref()
         243  +
    }
         244  +
    /// <p>The ID of the snapshot.</p>
         245  +
    pub fn snapshot_id(&self) -> ::std::option::Option<&crate::model::SnapshotId> {
         246  +
        self.snapshot_id.as_ref()
         247  +
    }
         248  +
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
         249  +
    pub fn block_size(&self) -> ::std::option::Option<i32> {
         250  +
        self.block_size
         251  +
    }
         252  +
    /// <p>The timestamp when the snapshot was created.</p>
         253  +
    pub fn start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         254  +
        self.start_time.as_ref()
         255  +
    }
  272    256   
    /// <p>The status of the snapshot.</p>
  273    257   
    pub fn status(&self) -> ::std::option::Option<&crate::model::Status> {
  274    258   
        self.status.as_ref()
  275    259   
    }
  276    260   
}
  277         -
impl CompleteSnapshotOutput {
  278         -
    /// Creates a new builder-style object to manufacture [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
  279         -
    pub fn builder() -> crate::output::complete_snapshot_output::Builder {
  280         -
        crate::output::complete_snapshot_output::Builder::default()
         261  +
impl ::std::fmt::Debug for StartSnapshotOutput {
         262  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         263  +
        let mut formatter = f.debug_struct("StartSnapshotOutput");
         264  +
        formatter.field("tags", &self.tags);
         265  +
        formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
         266  +
        formatter.field("owner_id", &self.owner_id);
         267  +
        formatter.field("volume_size", &self.volume_size);
         268  +
        formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
         269  +
        formatter.field("description", &self.description);
         270  +
        formatter.field("snapshot_id", &self.snapshot_id);
         271  +
        formatter.field("block_size", &self.block_size);
         272  +
        formatter.field("start_time", &self.start_time);
         273  +
        formatter.field("status", &self.status);
         274  +
        formatter.finish()
  281    275   
    }
  282    276   
}
  283         -
/// See [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
  284         -
pub mod start_snapshot_output {
         277  +
impl StartSnapshotOutput {
         278  +
    /// Creates a new builder-style object to manufacture [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         279  +
    pub fn builder() -> crate::output::start_snapshot_output::Builder {
         280  +
        crate::output::start_snapshot_output::Builder::default()
         281  +
    }
         282  +
}
         283  +
/// See [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
         284  +
pub mod complete_snapshot_output {
  285    285   
  286         -
    impl ::std::convert::From<Builder> for crate::output::StartSnapshotOutput {
         286  +
    impl ::std::convert::From<Builder> for crate::output::CompleteSnapshotOutput {
  287    287   
        fn from(builder: Builder) -> Self {
  288    288   
            builder.build()
  289    289   
        }
  290    290   
    }
  291         -
    /// A builder for [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
  292         -
    #[derive(::std::clone::Clone, ::std::default::Default)]
         291  +
    /// A builder for [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
         292  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  293    293   
    pub struct Builder {
  294         -
        pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
  295         -
        pub(crate) kms_key_arn: ::std::option::Option<crate::model::KmsKeyArn>,
  296         -
        pub(crate) owner_id: ::std::option::Option<crate::model::OwnerId>,
  297         -
        pub(crate) volume_size: ::std::option::Option<crate::model::VolumeSize>,
  298         -
        pub(crate) parent_snapshot_id: ::std::option::Option<crate::model::SnapshotId>,
  299         -
        pub(crate) description: ::std::option::Option<crate::model::Description>,
  300         -
        pub(crate) snapshot_id: ::std::option::Option<crate::model::SnapshotId>,
  301         -
        pub(crate) block_size: ::std::option::Option<i32>,
  302         -
        pub(crate) start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
  303    294   
        pub(crate) status: ::std::option::Option<crate::model::Status>,
  304    295   
    }
  305    296   
    impl Builder {
  306         -
        /// <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>
  307         -
        pub fn tags(
  308         -
            mut self,
  309         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
  310         -
        ) -> Self {
  311         -
            self.tags = input;
  312         -
            self
  313         -
        }
  314         -
        /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
  315         -
        pub fn kms_key_arn(
  316         -
            mut self,
  317         -
            input: ::std::option::Option<crate::model::KmsKeyArn>,
  318         -
        ) -> Self {
  319         -
            self.kms_key_arn = input;
         297  +
        /// <p>The status of the snapshot.</p>
         298  +
        pub fn status(mut self, input: ::std::option::Option<crate::model::Status>) -> Self {
         299  +
            self.status = input;
  320    300   
            self
  321    301   
        }
  322         -
        /// <p>The AWS account ID of the snapshot owner.</p>
  323         -
        pub fn owner_id(mut self, input: ::std::option::Option<crate::model::OwnerId>) -> Self {
  324         -
            self.owner_id = input;
  325         -
            self
         302  +
        /// Consumes the builder and constructs a [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
         303  +
        pub fn build(self) -> crate::output::CompleteSnapshotOutput {
         304  +
            self.build_enforcing_all_constraints()
  326    305   
        }
  327         -
        /// <p>The size of the volume, in GiB.</p>
  328         -
        pub fn volume_size(
  329         -
            mut self,
  330         -
            input: ::std::option::Option<crate::model::VolumeSize>,
  331         -
        ) -> Self {
  332         -
            self.volume_size = input;
  333         -
            self
         306  +
        fn build_enforcing_all_constraints(self) -> crate::output::CompleteSnapshotOutput {
         307  +
            crate::output::CompleteSnapshotOutput {
         308  +
                status: self.status,
         309  +
            }
  334    310   
        }
  335         -
        /// <p>The ID of the parent snapshot.</p>
  336         -
        pub fn parent_snapshot_id(
  337         -
            mut self,
  338         -
            input: ::std::option::Option<crate::model::SnapshotId>,
  339         -
        ) -> Self {
  340         -
            self.parent_snapshot_id = input;
  341         -
            self
         311  +
    }
         312  +
}
         313  +
/// See [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
         314  +
pub mod get_snapshot_block_output {
         315  +
         316  +
    impl ::std::convert::From<Builder> for crate::output::GetSnapshotBlockOutput {
         317  +
        fn from(builder: Builder) -> Self {
         318  +
            builder.build()
  342    319   
        }
  343         -
        /// <p>The description of the snapshot.</p>
  344         -
        pub fn description(
  345         -
            mut self,
  346         -
            input: ::std::option::Option<crate::model::Description>,
  347         -
        ) -> Self {
  348         -
            self.description = input;
         320  +
    }
         321  +
    /// A builder for [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
         322  +
    #[derive(::std::default::Default)]
         323  +
    pub struct Builder {
         324  +
        pub(crate) data_length: ::std::option::Option<i32>,
         325  +
        pub(crate) checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
         326  +
        pub(crate) checksum: ::std::option::Option<crate::model::Checksum>,
         327  +
        pub(crate) block_data: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>,
         328  +
    }
         329  +
    impl Builder {
         330  +
        /// <p>The size of the data in the block.</p>
         331  +
        pub fn data_length(mut self, input: ::std::option::Option<i32>) -> Self {
         332  +
            self.data_length = input;
  349    333   
            self
  350    334   
        }
  351         -
        /// <p>The ID of the snapshot.</p>
  352         -
        pub fn snapshot_id(
         335  +
        /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
         336  +
        pub fn checksum_algorithm(
  353    337   
            mut self,
  354         -
            input: ::std::option::Option<crate::model::SnapshotId>,
         338  +
            input: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  355    339   
        ) -> Self {
  356         -
            self.snapshot_id = input;
  357         -
            self
  358         -
        }
  359         -
        /// <p>The size of the blocks in the snapshot, in bytes.</p>
  360         -
        pub fn block_size(mut self, input: ::std::option::Option<i32>) -> Self {
  361         -
            self.block_size = input;
         340  +
            self.checksum_algorithm = input;
  362    341   
            self
  363    342   
        }
  364         -
        /// <p>The timestamp when the snapshot was created.</p>
  365         -
        pub fn start_time(
  366         -
            mut self,
  367         -
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
  368         -
        ) -> Self {
  369         -
            self.start_time = input;
         343  +
        /// <p>The checksum generated for the block, which is Base64 encoded.</p>
         344  +
        pub fn checksum(mut self, input: ::std::option::Option<crate::model::Checksum>) -> Self {
         345  +
            self.checksum = input;
  370    346   
            self
  371    347   
        }
  372         -
        /// <p>The status of the snapshot.</p>
  373         -
        pub fn status(mut self, input: ::std::option::Option<crate::model::Status>) -> Self {
  374         -
            self.status = input;
         348  +
        /// <p>The data content of the block.</p>
         349  +
        pub fn block_data(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
         350  +
            self.block_data = Some(input);
  375    351   
            self
  376    352   
        }
  377         -
        /// Consumes the builder and constructs a [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
  378         -
        pub fn build(self) -> crate::output::StartSnapshotOutput {
         353  +
        /// Consumes the builder and constructs a [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
         354  +
        pub fn build(self) -> crate::output::GetSnapshotBlockOutput {
  379    355   
            self.build_enforcing_all_constraints()
  380    356   
        }
  381         -
        fn build_enforcing_all_constraints(self) -> crate::output::StartSnapshotOutput {
  382         -
            crate::output::StartSnapshotOutput {
  383         -
                tags: self.tags,
  384         -
                kms_key_arn: self.kms_key_arn,
  385         -
                owner_id: self.owner_id,
  386         -
                volume_size: self.volume_size,
  387         -
                parent_snapshot_id: self.parent_snapshot_id,
  388         -
                description: self.description,
  389         -
                snapshot_id: self.snapshot_id,
  390         -
                block_size: self.block_size,
  391         -
                start_time: self.start_time,
  392         -
                status: self.status,
         357  +
        fn build_enforcing_all_constraints(self) -> crate::output::GetSnapshotBlockOutput {
         358  +
            crate::output::GetSnapshotBlockOutput {
         359  +
                data_length: self.data_length,
         360  +
                checksum_algorithm: self.checksum_algorithm,
         361  +
                checksum: self.checksum,
         362  +
                block_data: self.block_data.unwrap_or_default(),
  393    363   
            }
  394    364   
        }
  395    365   
    }
  396    366   
    impl ::std::fmt::Debug for Builder {
  397    367   
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
  398    368   
            let mut formatter = f.debug_struct("Builder");
  399         -
            formatter.field("tags", &self.tags);
  400         -
            formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
  401         -
            formatter.field("owner_id", &self.owner_id);
  402         -
            formatter.field("volume_size", &self.volume_size);
  403         -
            formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
  404         -
            formatter.field("description", &self.description);
  405         -
            formatter.field("snapshot_id", &self.snapshot_id);
  406         -
            formatter.field("block_size", &self.block_size);
  407         -
            formatter.field("start_time", &self.start_time);
  408         -
            formatter.field("status", &self.status);
         369  +
            formatter.field("data_length", &self.data_length);
         370  +
            formatter.field("checksum_algorithm", &self.checksum_algorithm);
         371  +
            formatter.field("checksum", &self.checksum);
         372  +
            formatter.field("block_data", &"*** Sensitive Data Redacted ***");
  409    373   
            formatter.finish()
  410    374   
        }
  411    375   
    }
  412    376   
}
  413         -
/// See [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
  414         -
pub mod put_snapshot_block_output {
         377  +
/// See [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
         378  +
pub mod list_changed_blocks_output {
  415    379   
  416         -
    impl ::std::convert::From<Builder> for crate::output::PutSnapshotBlockOutput {
         380  +
    impl ::std::convert::From<Builder> for crate::output::ListChangedBlocksOutput {
  417    381   
        fn from(builder: Builder) -> Self {
  418    382   
            builder.build()
  419    383   
        }
  420    384   
    }
  421         -
    /// A builder for [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
         385  +
    /// A builder for [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
  422    386   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  423    387   
    pub struct Builder {
  424         -
        pub(crate) checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  425         -
        pub(crate) checksum: ::std::option::Option<crate::model::Checksum>,
         388  +
        pub(crate) block_size: ::std::option::Option<i32>,
         389  +
        pub(crate) expiry_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         390  +
        pub(crate) volume_size: ::std::option::Option<crate::model::VolumeSize>,
         391  +
        pub(crate) next_token: ::std::option::Option<crate::model::PageToken>,
         392  +
        pub(crate) changed_blocks:
         393  +
            ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
  426    394   
    }
  427    395   
    impl Builder {
  428         -
        /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
  429         -
        pub fn checksum_algorithm(
         396  +
        /// <p>The size of the block.</p>
         397  +
        pub fn block_size(mut self, input: ::std::option::Option<i32>) -> Self {
         398  +
            self.block_size = input;
         399  +
            self
         400  +
        }
         401  +
        /// <p>The time when the <code>BlockToken</code> expires.</p>
         402  +
        pub fn expiry_time(
         403  +
            mut self,
         404  +
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
         405  +
        ) -> Self {
         406  +
            self.expiry_time = input;
         407  +
            self
         408  +
        }
         409  +
        /// <p>The size of the volume in GB.</p>
         410  +
        pub fn volume_size(
  430    411   
            mut self,
  431         -
            input: ::std::option::Option<crate::model::ChecksumAlgorithm>,
         412  +
            input: ::std::option::Option<crate::model::VolumeSize>,
  432    413   
        ) -> Self {
  433         -
            self.checksum_algorithm = input;
         414  +
            self.volume_size = input;
  434    415   
            self
  435    416   
        }
  436         -
        /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
  437         -
        pub fn checksum(mut self, input: ::std::option::Option<crate::model::Checksum>) -> Self {
  438         -
            self.checksum = input;
         417  +
        /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
         418  +
        pub fn next_token(mut self, input: ::std::option::Option<crate::model::PageToken>) -> Self {
         419  +
            self.next_token = input;
  439    420   
            self
  440    421   
        }
  441         -
        /// Consumes the builder and constructs a [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
  442         -
        pub fn build(self) -> crate::output::PutSnapshotBlockOutput {
         422  +
        /// <p>An array of objects containing information about the changed blocks.</p>
         423  +
        pub fn changed_blocks(
         424  +
            mut self,
         425  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
         426  +
        ) -> Self {
         427  +
            self.changed_blocks = input;
         428  +
            self
         429  +
        }
         430  +
        /// Consumes the builder and constructs a [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
         431  +
        pub fn build(self) -> crate::output::ListChangedBlocksOutput {
  443    432   
            self.build_enforcing_all_constraints()
  444    433   
        }
  445         -
        fn build_enforcing_all_constraints(self) -> crate::output::PutSnapshotBlockOutput {
  446         -
            crate::output::PutSnapshotBlockOutput {
  447         -
                checksum_algorithm: self.checksum_algorithm,
  448         -
                checksum: self.checksum,
         434  +
        fn build_enforcing_all_constraints(self) -> crate::output::ListChangedBlocksOutput {
         435  +
            crate::output::ListChangedBlocksOutput {
         436  +
                block_size: self.block_size,
         437  +
                expiry_time: self.expiry_time,
         438  +
                volume_size: self.volume_size,
         439  +
                next_token: self.next_token,
         440  +
                changed_blocks: self.changed_blocks,
  449    441   
            }
  450    442   
        }
  451    443   
    }
  452    444   
}
  453    445   
/// See [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
  454    446   
pub mod list_snapshot_blocks_output {
  455    447   
  456    448   
    impl ::std::convert::From<Builder> for crate::output::ListSnapshotBlocksOutput {
  457    449   
        fn from(builder: Builder) -> Self {
  458    450   
            builder.build()
@@ -501,493 +692,692 @@
  521    513   
            let mut formatter = f.debug_struct("Builder");
  522    514   
            formatter.field("volume_size", &self.volume_size);
  523    515   
            formatter.field("next_token", &self.next_token);
  524    516   
            formatter.field("expiry_time", &self.expiry_time);
  525    517   
            formatter.field("blocks", &"*** Sensitive Data Redacted ***");
  526    518   
            formatter.field("block_size", &self.block_size);
  527    519   
            formatter.finish()
  528    520   
        }
  529    521   
    }
  530    522   
}
  531         -
/// See [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
  532         -
pub mod list_changed_blocks_output {
         523  +
/// See [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
         524  +
pub mod put_snapshot_block_output {
  533    525   
  534         -
    impl ::std::convert::From<Builder> for crate::output::ListChangedBlocksOutput {
         526  +
    impl ::std::convert::From<Builder> for crate::output::PutSnapshotBlockOutput {
  535    527   
        fn from(builder: Builder) -> Self {
  536    528   
            builder.build()
  537    529   
        }
  538    530   
    }
  539         -
    /// A builder for [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
         531  +
    /// A builder for [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
  540    532   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  541    533   
    pub struct Builder {
  542         -
        pub(crate) block_size: ::std::option::Option<i32>,
  543         -
        pub(crate) expiry_time: ::std::option::Option<::aws_smithy_types::DateTime>,
  544         -
        pub(crate) volume_size: ::std::option::Option<crate::model::VolumeSize>,
  545         -
        pub(crate) next_token: ::std::option::Option<crate::model::PageToken>,
  546         -
        pub(crate) changed_blocks:
  547         -
            ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
         534  +
        pub(crate) checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
         535  +
        pub(crate) checksum: ::std::option::Option<crate::model::Checksum>,
  548    536   
    }
  549    537   
    impl Builder {
  550         -
        /// <p>The size of the block.</p>
  551         -
        pub fn block_size(mut self, input: ::std::option::Option<i32>) -> Self {
  552         -
            self.block_size = input;
  553         -
            self
  554         -
        }
  555         -
        /// <p>The time when the <code>BlockToken</code> expires.</p>
  556         -
        pub fn expiry_time(
  557         -
            mut self,
  558         -
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
  559         -
        ) -> Self {
  560         -
            self.expiry_time = input;
  561         -
            self
  562         -
        }
  563         -
        /// <p>The size of the volume in GB.</p>
  564         -
        pub fn volume_size(
         538  +
        /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
         539  +
        pub fn checksum_algorithm(
  565    540   
            mut self,
  566         -
            input: ::std::option::Option<crate::model::VolumeSize>,
         541  +
            input: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  567    542   
        ) -> Self {
  568         -
            self.volume_size = input;
  569         -
            self
  570         -
        }
  571         -
        /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
  572         -
        pub fn next_token(mut self, input: ::std::option::Option<crate::model::PageToken>) -> Self {
  573         -
            self.next_token = input;
         543  +
            self.checksum_algorithm = input;
  574    544   
            self
  575    545   
        }
  576         -
        /// <p>An array of objects containing information about the changed blocks.</p>
  577         -
        pub fn changed_blocks(
  578         -
            mut self,
  579         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
  580         -
        ) -> Self {
  581         -
            self.changed_blocks = input;
         546  +
        /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
         547  +
        pub fn checksum(mut self, input: ::std::option::Option<crate::model::Checksum>) -> Self {
         548  +
            self.checksum = input;
  582    549   
            self
  583    550   
        }
  584         -
        /// Consumes the builder and constructs a [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
  585         -
        pub fn build(self) -> crate::output::ListChangedBlocksOutput {
         551  +
        /// Consumes the builder and constructs a [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
         552  +
        pub fn build(self) -> crate::output::PutSnapshotBlockOutput {
  586    553   
            self.build_enforcing_all_constraints()
  587    554   
        }
  588         -
        fn build_enforcing_all_constraints(self) -> crate::output::ListChangedBlocksOutput {
  589         -
            crate::output::ListChangedBlocksOutput {
  590         -
                block_size: self.block_size,
  591         -
                expiry_time: self.expiry_time,
  592         -
                volume_size: self.volume_size,
  593         -
                next_token: self.next_token,
  594         -
                changed_blocks: self.changed_blocks,
         555  +
        fn build_enforcing_all_constraints(self) -> crate::output::PutSnapshotBlockOutput {
         556  +
            crate::output::PutSnapshotBlockOutput {
         557  +
                checksum_algorithm: self.checksum_algorithm,
         558  +
                checksum: self.checksum,
  595    559   
            }
  596    560   
        }
  597    561   
    }
  598    562   
}
  599         -
/// See [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
  600         -
pub mod get_snapshot_block_output {
         563  +
/// See [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         564  +
pub mod start_snapshot_output {
  601    565   
  602         -
    impl ::std::convert::From<Builder> for crate::output::GetSnapshotBlockOutput {
         566  +
    impl ::std::convert::From<Builder> for crate::output::StartSnapshotOutput {
  603    567   
        fn from(builder: Builder) -> Self {
  604    568   
            builder.build()
  605    569   
        }
  606    570   
    }
  607         -
    /// A builder for [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
  608         -
    #[derive(::std::default::Default)]
         571  +
    /// A builder for [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         572  +
    #[derive(::std::clone::Clone, ::std::default::Default)]
  609    573   
    pub struct Builder {
  610         -
        pub(crate) data_length: ::std::option::Option<i32>,
  611         -
        pub(crate) checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  612         -
        pub(crate) checksum: ::std::option::Option<crate::model::Checksum>,
  613         -
        pub(crate) block_data: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>,
         574  +
        pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
         575  +
        pub(crate) kms_key_arn: ::std::option::Option<crate::model::KmsKeyArn>,
         576  +
        pub(crate) owner_id: ::std::option::Option<crate::model::OwnerId>,
         577  +
        pub(crate) volume_size: ::std::option::Option<crate::model::VolumeSize>,
         578  +
        pub(crate) parent_snapshot_id: ::std::option::Option<crate::model::SnapshotId>,
         579  +
        pub(crate) description: ::std::option::Option<crate::model::Description>,
         580  +
        pub(crate) snapshot_id: ::std::option::Option<crate::model::SnapshotId>,
         581  +
        pub(crate) block_size: ::std::option::Option<i32>,
         582  +
        pub(crate) start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
         583  +
        pub(crate) status: ::std::option::Option<crate::model::Status>,
  614    584   
    }
  615    585   
    impl Builder {
  616         -
        /// <p>The size of the data in the block.</p>
  617         -
        pub fn data_length(mut self, input: ::std::option::Option<i32>) -> Self {
  618         -
            self.data_length = input;
         586  +
        /// <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>
         587  +
        pub fn tags(
         588  +
            mut self,
         589  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
         590  +
        ) -> Self {
         591  +
            self.tags = input;
  619    592   
            self
  620    593   
        }
  621         -
        /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
  622         -
        pub fn checksum_algorithm(
         594  +
        /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         595  +
        pub fn kms_key_arn(
  623    596   
            mut self,
  624         -
            input: ::std::option::Option<crate::model::ChecksumAlgorithm>,
         597  +
            input: ::std::option::Option<crate::model::KmsKeyArn>,
  625    598   
        ) -> Self {
  626         -
            self.checksum_algorithm = input;
         599  +
            self.kms_key_arn = input;
  627    600   
            self
  628    601   
        }
  629         -
        /// <p>The checksum generated for the block, which is Base64 encoded.</p>
  630         -
        pub fn checksum(mut self, input: ::std::option::Option<crate::model::Checksum>) -> Self {
  631         -
            self.checksum = input;
         602  +
        /// <p>The AWS account ID of the snapshot owner.</p>
         603  +
        pub fn owner_id(mut self, input: ::std::option::Option<crate::model::OwnerId>) -> Self {
         604  +
            self.owner_id = input;
  632    605   
            self
  633    606   
        }
  634         -
        /// <p>The data content of the block.</p>
  635         -
        pub fn block_data(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
  636         -
            self.block_data = Some(input);
         607  +
        /// <p>The size of the volume, in GiB.</p>
         608  +
        pub fn volume_size(
         609  +
            mut self,
         610  +
            input: ::std::option::Option<crate::model::VolumeSize>,
         611  +
        ) -> Self {
         612  +
            self.volume_size = input;
  637    613   
            self
  638    614   
        }
  639         -
        /// Consumes the builder and constructs a [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
  640         -
        pub fn build(self) -> crate::output::GetSnapshotBlockOutput {
  641         -
            self.build_enforcing_all_constraints()
         615  +
        /// <p>The ID of the parent snapshot.</p>
         616  +
        pub fn parent_snapshot_id(
         617  +
            mut self,
         618  +
            input: ::std::option::Option<crate::model::SnapshotId>,
         619  +
        ) -> Self {
         620  +
            self.parent_snapshot_id = input;
         621  +
            self
  642    622   
        }
  643         -
        fn build_enforcing_all_constraints(self) -> crate::output::GetSnapshotBlockOutput {
  644         -
            crate::output::GetSnapshotBlockOutput {
  645         -
                data_length: self.data_length,
  646         -
                checksum_algorithm: self.checksum_algorithm,
  647         -
                checksum: self.checksum,
  648         -
                block_data: self.block_data.unwrap_or_default(),
  649         -
            }
         623  +
        /// <p>The description of the snapshot.</p>
         624  +
        pub fn description(
         625  +
            mut self,
         626  +
            input: ::std::option::Option<crate::model::Description>,
         627  +
        ) -> Self {
         628  +
            self.description = input;
         629  +
            self
  650    630   
        }
  651         -
    }
  652         -
    impl ::std::fmt::Debug for Builder {
  653         -
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
  654         -
            let mut formatter = f.debug_struct("Builder");
  655         -
            formatter.field("data_length", &self.data_length);
  656         -
            formatter.field("checksum_algorithm", &self.checksum_algorithm);
  657         -
            formatter.field("checksum", &self.checksum);
  658         -
            formatter.field("block_data", &"*** Sensitive Data Redacted ***");
  659         -
            formatter.finish()
         631  +
        /// <p>The ID of the snapshot.</p>
         632  +
        pub fn snapshot_id(
         633  +
            mut self,
         634  +
            input: ::std::option::Option<crate::model::SnapshotId>,
         635  +
        ) -> Self {
         636  +
            self.snapshot_id = input;
         637  +
            self
  660    638   
        }
  661         -
    }
  662         -
}
  663         -
/// See [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
  664         -
pub mod complete_snapshot_output {
  665         -
  666         -
    impl ::std::convert::From<Builder> for crate::output::CompleteSnapshotOutput {
  667         -
        fn from(builder: Builder) -> Self {
  668         -
            builder.build()
         639  +
        /// <p>The size of the blocks in the snapshot, in bytes.</p>
         640  +
        pub fn block_size(mut self, input: ::std::option::Option<i32>) -> Self {
         641  +
            self.block_size = input;
         642  +
            self
         643  +
        }
         644  +
        /// <p>The timestamp when the snapshot was created.</p>
         645  +
        pub fn start_time(
         646  +
            mut self,
         647  +
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
         648  +
        ) -> Self {
         649  +
            self.start_time = input;
         650  +
            self
  669    651   
        }
  670         -
    }
  671         -
    /// A builder for [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
  672         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  673         -
    pub struct Builder {
  674         -
        pub(crate) status: ::std::option::Option<crate::model::Status>,
  675         -
    }
  676         -
    impl Builder {
  677    652   
        /// <p>The status of the snapshot.</p>
  678    653   
        pub fn status(mut self, input: ::std::option::Option<crate::model::Status>) -> Self {
  679    654   
            self.status = input;
  680    655   
            self
  681    656   
        }
  682         -
        /// Consumes the builder and constructs a [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
  683         -
        pub fn build(self) -> crate::output::CompleteSnapshotOutput {
         657  +
        /// Consumes the builder and constructs a [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         658  +
        pub fn build(self) -> crate::output::StartSnapshotOutput {
  684    659   
            self.build_enforcing_all_constraints()
  685    660   
        }
  686         -
        fn build_enforcing_all_constraints(self) -> crate::output::CompleteSnapshotOutput {
  687         -
            crate::output::CompleteSnapshotOutput {
         661  +
        fn build_enforcing_all_constraints(self) -> crate::output::StartSnapshotOutput {
         662  +
            crate::output::StartSnapshotOutput {
         663  +
                tags: self.tags,
         664  +
                kms_key_arn: self.kms_key_arn,
         665  +
                owner_id: self.owner_id,
         666  +
                volume_size: self.volume_size,
         667  +
                parent_snapshot_id: self.parent_snapshot_id,
         668  +
                description: self.description,
         669  +
                snapshot_id: self.snapshot_id,
         670  +
                block_size: self.block_size,
         671  +
                start_time: self.start_time,
  688    672   
                status: self.status,
  689    673   
            }
  690    674   
        }
  691    675   
    }
         676  +
    impl ::std::fmt::Debug for Builder {
         677  +
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         678  +
            let mut formatter = f.debug_struct("Builder");
         679  +
            formatter.field("tags", &self.tags);
         680  +
            formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
         681  +
            formatter.field("owner_id", &self.owner_id);
         682  +
            formatter.field("volume_size", &self.volume_size);
         683  +
            formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
         684  +
            formatter.field("description", &self.description);
         685  +
            formatter.field("snapshot_id", &self.snapshot_id);
         686  +
            formatter.field("block_size", &self.block_size);
         687  +
            formatter.field("start_time", &self.start_time);
         688  +
            formatter.field("status", &self.status);
         689  +
            formatter.finish()
         690  +
        }
         691  +
    }
  692    692   
}