Server Test

Server Test

rev. d838bf488731ae5e751cce0fe13f339a5b9be858 (ignoring whitespace)

Files changed:

tmp-codegen-diff/codegen-server-test/json_rpc11-http0x/rust-server-codegen/src/constrained.rs

@@ -1,1 +70,70 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
           3  +
pub(crate) mod foo_enum_list_constrained {
           4  +
           5  +
    #[derive(Debug, Clone)]
           6  +
    pub(crate) struct FooEnumListConstrained(pub(crate) std::vec::Vec<crate::model::FooEnum>);
           7  +
           8  +
    impl crate::constrained::Constrained for FooEnumListConstrained {
           9  +
        type Unconstrained =
          10  +
            crate::unconstrained::foo_enum_list_unconstrained::FooEnumListUnconstrained;
          11  +
    }
          12  +
    impl ::std::convert::From<::std::vec::Vec<crate::model::FooEnum>> for FooEnumListConstrained {
          13  +
        fn from(v: ::std::vec::Vec<crate::model::FooEnum>) -> Self {
          14  +
            Self(v)
          15  +
        }
          16  +
    }
          17  +
          18  +
    impl ::std::convert::From<FooEnumListConstrained> for ::std::vec::Vec<crate::model::FooEnum> {
          19  +
        fn from(v: FooEnumListConstrained) -> Self {
          20  +
            v.0
          21  +
        }
          22  +
    }
          23  +
}
    3     24   
pub(crate) mod foo_enum_map_constrained {
    4     25   
    5     26   
    #[derive(Debug, Clone)]
    6     27   
    pub(crate) struct FooEnumMapConstrained(
    7     28   
        pub(crate) std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
    8     29   
    );
    9     30   
   10     31   
    impl crate::constrained::Constrained for FooEnumMapConstrained {
   11     32   
        type Unconstrained =
   12     33   
            crate::unconstrained::foo_enum_map_unconstrained::FooEnumMapUnconstrained;
   13     34   
    }
   14     35   
    impl
   15     36   
        ::std::convert::From<
   16     37   
            ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
   17     38   
        > for FooEnumMapConstrained
   18     39   
    {
   19     40   
        fn from(
   20     41   
            v: ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
   21     42   
        ) -> Self {
   22     43   
            Self(v)
   23     44   
        }
   24     45   
    }
   25     46   
   26     47   
    impl ::std::convert::From<FooEnumMapConstrained>
   27     48   
        for ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>
   28     49   
    {
   29     50   
        fn from(v: FooEnumMapConstrained) -> Self {
   30     51   
            v.0
   31     52   
        }
   32     53   
    }
   33     54   
}
   34         -
pub(crate) mod foo_enum_list_constrained {
   35         -
   36         -
    #[derive(Debug, Clone)]
   37         -
    pub(crate) struct FooEnumListConstrained(pub(crate) std::vec::Vec<crate::model::FooEnum>);
   38         -
   39         -
    impl crate::constrained::Constrained for FooEnumListConstrained {
   40         -
        type Unconstrained =
   41         -
            crate::unconstrained::foo_enum_list_unconstrained::FooEnumListUnconstrained;
   42         -
    }
   43         -
    impl ::std::convert::From<::std::vec::Vec<crate::model::FooEnum>> for FooEnumListConstrained {
   44         -
        fn from(v: ::std::vec::Vec<crate::model::FooEnum>) -> Self {
   45         -
            Self(v)
   46         -
        }
   47         -
    }
   48         -
   49         -
    impl ::std::convert::From<FooEnumListConstrained> for ::std::vec::Vec<crate::model::FooEnum> {
   50         -
        fn from(v: FooEnumListConstrained) -> Self {
   51         -
            v.0
   52         -
        }
   53         -
    }
   54         -
}
   55     55   
   56     56   
/*
   57     57   
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   58     58   
 * SPDX-License-Identifier: Apache-2.0
   59     59   
 */
   60     60   
   61     61   
pub(crate) trait Constrained {
   62     62   
    type Unconstrained;
   63     63   
}
   64     64   

tmp-codegen-diff/codegen-server-test/json_rpc11-http0x/rust-server-codegen/src/error.rs

@@ -1,1 +157,163 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// Error type for the `EndpointWithHostLabelOperation` operation.
    4         -
/// Each variant represents an error that can occur for the `EndpointWithHostLabelOperation` operation.
           3  +
/// Error type for the `KitchenSinkOperation` operation.
           4  +
/// Each variant represents an error that can occur for the `KitchenSinkOperation` operation.
    5      5   
#[derive(::std::fmt::Debug)]
    6         -
pub enum EndpointWithHostLabelOperationError {
    7         -
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
    8         -
    ValidationException(crate::error::ValidationException),
           6  +
pub enum KitchenSinkOperationError {
           7  +
    #[allow(missing_docs)] // documentation missing in model
           8  +
    ErrorWithMembers(crate::error::ErrorWithMembers),
           9  +
    #[allow(missing_docs)] // documentation missing in model
          10  +
    ErrorWithoutMembers(crate::error::ErrorWithoutMembers),
    9     11   
}
   10         -
impl ::std::fmt::Display for EndpointWithHostLabelOperationError {
          12  +
impl ::std::fmt::Display for KitchenSinkOperationError {
   11     13   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
   12     14   
        match &self {
   13         -
            EndpointWithHostLabelOperationError::ValidationException(_inner) => _inner.fmt(f),
          15  +
            KitchenSinkOperationError::ErrorWithMembers(_inner) => _inner.fmt(f),
          16  +
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => _inner.fmt(f),
   14     17   
        }
   15     18   
    }
   16     19   
}
   17         -
impl EndpointWithHostLabelOperationError {
   18         -
    /// Returns `true` if the error kind is `EndpointWithHostLabelOperationError::ValidationException`.
   19         -
    pub fn is_validation_exception(&self) -> bool {
   20         -
        matches!(
   21         -
            &self,
   22         -
            EndpointWithHostLabelOperationError::ValidationException(_)
   23         -
        )
          20  +
impl KitchenSinkOperationError {
          21  +
    /// Returns `true` if the error kind is `KitchenSinkOperationError::ErrorWithMembers`.
          22  +
    pub fn is_error_with_members(&self) -> bool {
          23  +
        matches!(&self, KitchenSinkOperationError::ErrorWithMembers(_))
          24  +
    }
          25  +
    /// Returns `true` if the error kind is `KitchenSinkOperationError::ErrorWithoutMembers`.
          26  +
    pub fn is_error_without_members(&self) -> bool {
          27  +
        matches!(&self, KitchenSinkOperationError::ErrorWithoutMembers(_))
   24     28   
    }
   25     29   
    /// Returns the error name string by matching the correct variant.
   26     30   
    pub fn name(&self) -> &'static str {
   27     31   
        match &self {
   28         -
            EndpointWithHostLabelOperationError::ValidationException(_inner) => _inner.name(),
          32  +
            KitchenSinkOperationError::ErrorWithMembers(_inner) => _inner.name(),
          33  +
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => _inner.name(),
   29     34   
        }
   30     35   
    }
   31     36   
}
   32         -
impl ::std::error::Error for EndpointWithHostLabelOperationError {
          37  +
impl ::std::error::Error for KitchenSinkOperationError {
   33     38   
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
   34     39   
        match &self {
   35         -
            EndpointWithHostLabelOperationError::ValidationException(_inner) => Some(_inner),
          40  +
            KitchenSinkOperationError::ErrorWithMembers(_inner) => Some(_inner),
          41  +
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => Some(_inner),
   36     42   
        }
   37     43   
    }
   38     44   
}
   39         -
impl ::std::convert::From<crate::error::ValidationException>
   40         -
    for crate::error::EndpointWithHostLabelOperationError
          45  +
impl ::std::convert::From<crate::error::ErrorWithMembers>
          46  +
    for crate::error::KitchenSinkOperationError
   41     47   
{
   42         -
    fn from(
   43         -
        variant: crate::error::ValidationException,
   44         -
    ) -> crate::error::EndpointWithHostLabelOperationError {
   45         -
        Self::ValidationException(variant)
          48  +
    fn from(variant: crate::error::ErrorWithMembers) -> crate::error::KitchenSinkOperationError {
          49  +
        Self::ErrorWithMembers(variant)
          50  +
    }
          51  +
}
          52  +
impl ::std::convert::From<crate::error::ErrorWithoutMembers>
          53  +
    for crate::error::KitchenSinkOperationError
          54  +
{
          55  +
    fn from(variant: crate::error::ErrorWithoutMembers) -> crate::error::KitchenSinkOperationError {
          56  +
        Self::ErrorWithoutMembers(variant)
   46     57   
    }
   47     58   
}
   48     59   
   49         -
/// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
   50         -
#[derive(
   51         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   52         -
)]
   53         -
pub struct ValidationException {
   54         -
    /// A summary of the validation failure.
   55         -
    pub message: ::std::string::String,
   56         -
    /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
   57         -
    pub field_list: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
          60  +
/// Error type for the `JsonEnums` operation.
          61  +
/// Each variant represents an error that can occur for the `JsonEnums` operation.
          62  +
#[derive(::std::fmt::Debug)]
          63  +
pub enum JsonEnumsError {
          64  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
          65  +
    ValidationException(crate::error::ValidationException),
   58     66   
}
   59         -
impl ValidationException {
   60         -
    /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
   61         -
    pub fn field_list(&self) -> ::std::option::Option<&[crate::model::ValidationExceptionField]> {
   62         -
        self.field_list.as_deref()
          67  +
impl ::std::fmt::Display for JsonEnumsError {
          68  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
          69  +
        match &self {
          70  +
            JsonEnumsError::ValidationException(_inner) => _inner.fmt(f),
          71  +
        }
   63     72   
    }
   64     73   
}
   65         -
impl ValidationException {
   66         -
    /// Returns the error message.
   67         -
    pub fn message(&self) -> &str {
   68         -
        &self.message
          74  +
impl JsonEnumsError {
          75  +
    /// Returns `true` if the error kind is `JsonEnumsError::ValidationException`.
          76  +
    pub fn is_validation_exception(&self) -> bool {
          77  +
        matches!(&self, JsonEnumsError::ValidationException(_))
   69     78   
    }
   70         -
    #[doc(hidden)]
   71         -
    /// Returns the error name.
          79  +
    /// Returns the error name string by matching the correct variant.
   72     80   
    pub fn name(&self) -> &'static str {
   73         -
        "ValidationException"
          81  +
        match &self {
          82  +
            JsonEnumsError::ValidationException(_inner) => _inner.name(),
          83  +
        }
   74     84   
    }
   75     85   
}
   76         -
impl ::std::fmt::Display for ValidationException {
   77         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
   78         -
        ::std::write!(f, "ValidationException")?;
   79         -
        {
   80         -
            ::std::write!(f, ": {}", &self.message)?;
          86  +
impl ::std::error::Error for JsonEnumsError {
          87  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
          88  +
        match &self {
          89  +
            JsonEnumsError::ValidationException(_inner) => Some(_inner),
   81     90   
        }
   82         -
        Ok(())
   83     91   
    }
   84     92   
}
   85         -
impl ::std::error::Error for ValidationException {}
   86         -
impl ValidationException {
   87         -
    /// Creates a new builder-style object to manufacture [`ValidationException`](crate::error::ValidationException).
   88         -
    pub fn builder() -> crate::error::validation_exception::Builder {
   89         -
        crate::error::validation_exception::Builder::default()
          93  +
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonEnumsError {
          94  +
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonEnumsError {
          95  +
        Self::ValidationException(variant)
   90     96   
    }
   91     97   
}
   92     98   
   93         -
/// Error type for the `JsonUnions` operation.
   94         -
/// Each variant represents an error that can occur for the `JsonUnions` operation.
          99  +
/// Error type for the `JsonIntEnums` operation.
         100  +
/// Each variant represents an error that can occur for the `JsonIntEnums` operation.
   95    101   
#[derive(::std::fmt::Debug)]
   96         -
pub enum JsonUnionsError {
         102  +
pub enum JsonIntEnumsError {
   97    103   
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
   98    104   
    ValidationException(crate::error::ValidationException),
   99    105   
}
  100         -
impl ::std::fmt::Display for JsonUnionsError {
         106  +
impl ::std::fmt::Display for JsonIntEnumsError {
  101    107   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  102    108   
        match &self {
  103         -
            JsonUnionsError::ValidationException(_inner) => _inner.fmt(f),
         109  +
            JsonIntEnumsError::ValidationException(_inner) => _inner.fmt(f),
  104    110   
        }
  105    111   
    }
  106    112   
}
  107         -
impl JsonUnionsError {
  108         -
    /// Returns `true` if the error kind is `JsonUnionsError::ValidationException`.
         113  +
impl JsonIntEnumsError {
         114  +
    /// Returns `true` if the error kind is `JsonIntEnumsError::ValidationException`.
  109    115   
    pub fn is_validation_exception(&self) -> bool {
  110         -
        matches!(&self, JsonUnionsError::ValidationException(_))
         116  +
        matches!(&self, JsonIntEnumsError::ValidationException(_))
  111    117   
    }
  112    118   
    /// Returns the error name string by matching the correct variant.
  113    119   
    pub fn name(&self) -> &'static str {
  114    120   
        match &self {
  115         -
            JsonUnionsError::ValidationException(_inner) => _inner.name(),
         121  +
            JsonIntEnumsError::ValidationException(_inner) => _inner.name(),
  116    122   
        }
  117    123   
    }
  118    124   
}
  119         -
impl ::std::error::Error for JsonUnionsError {
         125  +
impl ::std::error::Error for JsonIntEnumsError {
  120    126   
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
  121    127   
        match &self {
  122         -
            JsonUnionsError::ValidationException(_inner) => Some(_inner),
         128  +
            JsonIntEnumsError::ValidationException(_inner) => Some(_inner),
  123    129   
        }
  124    130   
    }
  125    131   
}
  126         -
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonUnionsError {
  127         -
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonUnionsError {
         132  +
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonIntEnumsError {
         133  +
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonIntEnumsError {
  128    134   
        Self::ValidationException(variant)
  129    135   
    }
  130    136   
}
  131    137   
  132    138   
/// Error type for the `GreetingWithErrors` operation.
  133    139   
/// Each variant represents an error that can occur for the `GreetingWithErrors` operation.
  134    140   
#[derive(::std::fmt::Debug)]
  135    141   
pub enum GreetingWithErrorsError {
  136    142   
    /// This error is thrown when an invalid greeting value is provided.
  137    143   
    InvalidGreeting(crate::error::InvalidGreeting),
@@ -169,175 +574,679 @@
  189    195   
    fn from(variant: crate::error::ComplexError) -> crate::error::GreetingWithErrorsError {
  190    196   
        Self::ComplexError(variant)
  191    197   
    }
  192    198   
}
  193    199   
impl ::std::convert::From<crate::error::FooError> for crate::error::GreetingWithErrorsError {
  194    200   
    fn from(variant: crate::error::FooError) -> crate::error::GreetingWithErrorsError {
  195    201   
        Self::FooError(variant)
  196    202   
    }
  197    203   
}
  198    204   
  199         -
/// This error has test cases that test some of the dark corners of Amazon service framework history. It should only be implemented by clients.
  200         -
#[derive(
  201         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  202         -
)]
  203         -
pub struct FooError {}
  204         -
impl FooError {
  205         -
    #[doc(hidden)]
  206         -
    /// Returns the error name.
         205  +
/// Error type for the `JsonUnions` operation.
         206  +
/// Each variant represents an error that can occur for the `JsonUnions` operation.
         207  +
#[derive(::std::fmt::Debug)]
         208  +
pub enum JsonUnionsError {
         209  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         210  +
    ValidationException(crate::error::ValidationException),
         211  +
}
         212  +
impl ::std::fmt::Display for JsonUnionsError {
         213  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         214  +
        match &self {
         215  +
            JsonUnionsError::ValidationException(_inner) => _inner.fmt(f),
         216  +
        }
         217  +
    }
         218  +
}
         219  +
impl JsonUnionsError {
         220  +
    /// Returns `true` if the error kind is `JsonUnionsError::ValidationException`.
         221  +
    pub fn is_validation_exception(&self) -> bool {
         222  +
        matches!(&self, JsonUnionsError::ValidationException(_))
         223  +
    }
         224  +
    /// Returns the error name string by matching the correct variant.
  207    225   
    pub fn name(&self) -> &'static str {
  208         -
        "FooError"
         226  +
        match &self {
         227  +
            JsonUnionsError::ValidationException(_inner) => _inner.name(),
         228  +
        }
  209    229   
    }
  210    230   
}
  211         -
impl ::std::fmt::Display for FooError {
  212         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  213         -
        ::std::write!(f, "FooError")?;
  214         -
        Ok(())
         231  +
impl ::std::error::Error for JsonUnionsError {
         232  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         233  +
        match &self {
         234  +
            JsonUnionsError::ValidationException(_inner) => Some(_inner),
         235  +
        }
  215    236   
    }
  216    237   
}
  217         -
impl ::std::error::Error for FooError {}
  218         -
impl FooError {
  219         -
    /// Creates a new builder-style object to manufacture [`FooError`](crate::error::FooError).
  220         -
    pub fn builder() -> crate::error::foo_error::Builder {
  221         -
        crate::error::foo_error::Builder::default()
         238  +
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonUnionsError {
         239  +
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonUnionsError {
         240  +
        Self::ValidationException(variant)
  222    241   
    }
  223    242   
}
  224    243   
  225         -
/// This error is thrown when a request is invalid.
  226         -
#[derive(
  227         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  228         -
)]
  229         -
pub struct ComplexError {
  230         -
    #[allow(missing_docs)] // documentation missing in model
  231         -
    pub top_level: ::std::option::Option<::std::string::String>,
  232         -
    #[allow(missing_docs)] // documentation missing in model
  233         -
    pub nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
         244  +
/// Error type for the `EndpointWithHostLabelOperation` operation.
         245  +
/// Each variant represents an error that can occur for the `EndpointWithHostLabelOperation` operation.
         246  +
#[derive(::std::fmt::Debug)]
         247  +
pub enum EndpointWithHostLabelOperationError {
         248  +
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         249  +
    ValidationException(crate::error::ValidationException),
  234    250   
}
  235         -
impl ComplexError {
  236         -
    #[allow(missing_docs)] // documentation missing in model
  237         -
    pub fn top_level(&self) -> ::std::option::Option<&str> {
  238         -
        self.top_level.as_deref()
         251  +
impl ::std::fmt::Display for EndpointWithHostLabelOperationError {
         252  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         253  +
        match &self {
         254  +
            EndpointWithHostLabelOperationError::ValidationException(_inner) => _inner.fmt(f),
  239    255   
        }
  240         -
    #[allow(missing_docs)] // documentation missing in model
  241         -
    pub fn nested(&self) -> ::std::option::Option<&crate::model::ComplexNestedErrorData> {
  242         -
        self.nested.as_ref()
  243    256   
    }
  244    257   
}
  245         -
impl ComplexError {
  246         -
    #[doc(hidden)]
  247         -
    /// Returns the error name.
         258  +
impl EndpointWithHostLabelOperationError {
         259  +
    /// Returns `true` if the error kind is `EndpointWithHostLabelOperationError::ValidationException`.
         260  +
    pub fn is_validation_exception(&self) -> bool {
         261  +
        matches!(
         262  +
            &self,
         263  +
            EndpointWithHostLabelOperationError::ValidationException(_)
         264  +
        )
         265  +
    }
         266  +
    /// Returns the error name string by matching the correct variant.
  248    267   
    pub fn name(&self) -> &'static str {
  249         -
        "ComplexError"
         268  +
        match &self {
         269  +
            EndpointWithHostLabelOperationError::ValidationException(_inner) => _inner.name(),
         270  +
        }
  250    271   
    }
  251    272   
}
  252         -
impl ::std::fmt::Display for ComplexError {
  253         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  254         -
        ::std::write!(f, "ComplexError")?;
  255         -
        Ok(())
         273  +
impl ::std::error::Error for EndpointWithHostLabelOperationError {
         274  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         275  +
        match &self {
         276  +
            EndpointWithHostLabelOperationError::ValidationException(_inner) => Some(_inner),
         277  +
        }
  256    278   
    }
  257    279   
}
  258         -
impl ::std::error::Error for ComplexError {}
  259         -
impl ComplexError {
  260         -
    /// Creates a new builder-style object to manufacture [`ComplexError`](crate::error::ComplexError).
  261         -
    pub fn builder() -> crate::error::complex_error::Builder {
  262         -
        crate::error::complex_error::Builder::default()
         280  +
impl ::std::convert::From<crate::error::ValidationException>
         281  +
    for crate::error::EndpointWithHostLabelOperationError
         282  +
{
         283  +
    fn from(
         284  +
        variant: crate::error::ValidationException,
         285  +
    ) -> crate::error::EndpointWithHostLabelOperationError {
         286  +
        Self::ValidationException(variant)
  263    287   
    }
  264    288   
}
  265    289   
  266         -
/// This error is thrown when an invalid greeting value is provided.
  267         -
#[derive(
  268         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  269         -
)]
  270         -
pub struct InvalidGreeting {
         290  +
#[allow(missing_docs)] // documentation missing in model
         291  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         292  +
pub struct ErrorWithMembers {
         293  +
    #[allow(missing_docs)] // documentation missing in model
         294  +
    pub code: ::std::option::Option<::std::string::String>,
         295  +
    #[allow(missing_docs)] // documentation missing in model
         296  +
    pub complex_data: ::std::option::Option<crate::model::KitchenSink>,
         297  +
    #[allow(missing_docs)] // documentation missing in model
         298  +
    pub integer_field: ::std::option::Option<i32>,
         299  +
    #[allow(missing_docs)] // documentation missing in model
         300  +
    pub list_field: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         301  +
    #[allow(missing_docs)] // documentation missing in model
         302  +
    pub map_field: ::std::option::Option<
         303  +
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         304  +
    >,
  271    305   
    #[allow(missing_docs)] // documentation missing in model
  272    306   
    pub message: ::std::option::Option<::std::string::String>,
         307  +
    /// abc
         308  +
    pub string_field: ::std::option::Option<::std::string::String>,
  273    309   
}
  274         -
impl InvalidGreeting {
         310  +
impl ErrorWithMembers {
         311  +
    #[allow(missing_docs)] // documentation missing in model
         312  +
    pub fn code(&self) -> ::std::option::Option<&str> {
         313  +
        self.code.as_deref()
         314  +
    }
         315  +
    #[allow(missing_docs)] // documentation missing in model
         316  +
    pub fn complex_data(&self) -> ::std::option::Option<&crate::model::KitchenSink> {
         317  +
        self.complex_data.as_ref()
         318  +
    }
         319  +
    #[allow(missing_docs)] // documentation missing in model
         320  +
    pub fn integer_field(&self) -> ::std::option::Option<i32> {
         321  +
        self.integer_field
         322  +
    }
         323  +
    #[allow(missing_docs)] // documentation missing in model
         324  +
    pub fn list_field(&self) -> ::std::option::Option<&[::std::string::String]> {
         325  +
        self.list_field.as_deref()
         326  +
    }
         327  +
    #[allow(missing_docs)] // documentation missing in model
         328  +
    pub fn map_field(
         329  +
        &self,
         330  +
    ) -> ::std::option::Option<
         331  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
         332  +
    > {
         333  +
        self.map_field.as_ref()
         334  +
    }
         335  +
    /// abc
         336  +
    pub fn string_field(&self) -> ::std::option::Option<&str> {
         337  +
        self.string_field.as_deref()
         338  +
    }
         339  +
}
         340  +
impl ErrorWithMembers {
  275    341   
    /// Returns the error message.
  276    342   
    pub fn message(&self) -> ::std::option::Option<&str> {
  277    343   
        self.message.as_deref()
  278    344   
    }
  279    345   
    #[doc(hidden)]
  280    346   
    /// Returns the error name.
  281    347   
    pub fn name(&self) -> &'static str {
  282         -
        "InvalidGreeting"
         348  +
        "ErrorWithMembers"
  283    349   
    }
  284    350   
}
  285         -
impl ::std::fmt::Display for InvalidGreeting {
         351  +
impl ::std::fmt::Display for ErrorWithMembers {
  286    352   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  287         -
        ::std::write!(f, "InvalidGreeting")?;
         353  +
        ::std::write!(f, "ErrorWithMembers")?;
  288    354   
        if let ::std::option::Option::Some(inner_1) = &self.message {
  289    355   
            {
  290    356   
                ::std::write!(f, ": {inner_1}")?;
  291    357   
            }
  292    358   
        }
  293    359   
        Ok(())
  294    360   
    }
  295    361   
}
  296         -
impl ::std::error::Error for InvalidGreeting {}
  297         -
impl InvalidGreeting {
  298         -
    /// Creates a new builder-style object to manufacture [`InvalidGreeting`](crate::error::InvalidGreeting).
  299         -
    pub fn builder() -> crate::error::invalid_greeting::Builder {
  300         -
        crate::error::invalid_greeting::Builder::default()
         362  +
impl ::std::error::Error for ErrorWithMembers {}
         363  +
impl ErrorWithMembers {
         364  +
    /// Creates a new builder-style object to manufacture [`ErrorWithMembers`](crate::error::ErrorWithMembers).
         365  +
    pub fn builder() -> crate::error::error_with_members::Builder {
         366  +
        crate::error::error_with_members::Builder::default()
  301    367   
    }
  302    368   
}
  303    369   
  304         -
/// Error type for the `JsonIntEnums` operation.
  305         -
/// Each variant represents an error that can occur for the `JsonIntEnums` operation.
  306         -
#[derive(::std::fmt::Debug)]
  307         -
pub enum JsonIntEnumsError {
  308         -
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
  309         -
    ValidationException(crate::error::ValidationException),
         370  +
#[allow(missing_docs)] // documentation missing in model
         371  +
#[derive(
         372  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         373  +
)]
         374  +
pub struct ErrorWithoutMembers {}
         375  +
impl ErrorWithoutMembers {
         376  +
    #[doc(hidden)]
         377  +
    /// Returns the error name.
         378  +
    pub fn name(&self) -> &'static str {
         379  +
        "ErrorWithoutMembers"
         380  +
    }
  310    381   
}
  311         -
impl ::std::fmt::Display for JsonIntEnumsError {
         382  +
impl ::std::fmt::Display for ErrorWithoutMembers {
  312    383   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  313         -
        match &self {
  314         -
            JsonIntEnumsError::ValidationException(_inner) => _inner.fmt(f),
         384  +
        ::std::write!(f, "ErrorWithoutMembers")?;
         385  +
        Ok(())
  315    386   
    }
         387  +
}
         388  +
impl ::std::error::Error for ErrorWithoutMembers {}
         389  +
impl ErrorWithoutMembers {
         390  +
    /// Creates a new builder-style object to manufacture [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         391  +
    pub fn builder() -> crate::error::error_without_members::Builder {
         392  +
        crate::error::error_without_members::Builder::default()
  316    393   
    }
  317    394   
}
  318         -
impl JsonIntEnumsError {
  319         -
    /// Returns `true` if the error kind is `JsonIntEnumsError::ValidationException`.
  320         -
    pub fn is_validation_exception(&self) -> bool {
  321         -
        matches!(&self, JsonIntEnumsError::ValidationException(_))
         395  +
         396  +
/// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
         397  +
#[derive(
         398  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         399  +
)]
         400  +
pub struct ValidationException {
         401  +
    /// A summary of the validation failure.
         402  +
    pub message: ::std::string::String,
         403  +
    /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
         404  +
    pub field_list: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
         405  +
}
         406  +
impl ValidationException {
         407  +
    /// A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.
         408  +
    pub fn field_list(&self) -> ::std::option::Option<&[crate::model::ValidationExceptionField]> {
         409  +
        self.field_list.as_deref()
  322    410   
    }
  323         -
    /// Returns the error name string by matching the correct variant.
  324         -
    pub fn name(&self) -> &'static str {
  325         -
        match &self {
  326         -
            JsonIntEnumsError::ValidationException(_inner) => _inner.name(),
         411  +
}
         412  +
impl ValidationException {
         413  +
    /// Returns the error message.
         414  +
    pub fn message(&self) -> &str {
         415  +
        &self.message
  327    416   
    }
         417  +
    #[doc(hidden)]
         418  +
    /// Returns the error name.
         419  +
    pub fn name(&self) -> &'static str {
         420  +
        "ValidationException"
  328    421   
    }
  329    422   
}
  330         -
impl ::std::error::Error for JsonIntEnumsError {
  331         -
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
  332         -
        match &self {
  333         -
            JsonIntEnumsError::ValidationException(_inner) => Some(_inner),
         423  +
impl ::std::fmt::Display for ValidationException {
         424  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         425  +
        ::std::write!(f, "ValidationException")?;
         426  +
        {
         427  +
            ::std::write!(f, ": {}", &self.message)?;
  334    428   
        }
         429  +
        Ok(())
  335    430   
    }
  336    431   
}
  337         -
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonIntEnumsError {
  338         -
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonIntEnumsError {
  339         -
        Self::ValidationException(variant)
         432  +
impl ::std::error::Error for ValidationException {}
         433  +
impl ValidationException {
         434  +
    /// Creates a new builder-style object to manufacture [`ValidationException`](crate::error::ValidationException).
         435  +
    pub fn builder() -> crate::error::validation_exception::Builder {
         436  +
        crate::error::validation_exception::Builder::default()
  340    437   
    }
  341    438   
}
  342    439   
  343         -
/// Error type for the `JsonEnums` operation.
  344         -
/// Each variant represents an error that can occur for the `JsonEnums` operation.
  345         -
#[derive(::std::fmt::Debug)]
  346         -
pub enum JsonEnumsError {
  347         -
    /// A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.
  348         -
    ValidationException(crate::error::ValidationException),
  349         -
}
  350         -
impl ::std::fmt::Display for JsonEnumsError {
  351         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  352         -
        match &self {
  353         -
            JsonEnumsError::ValidationException(_inner) => _inner.fmt(f),
  354         -
        }
  355         -
    }
         440  +
/// This error is thrown when an invalid greeting value is provided.
         441  +
#[derive(
         442  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         443  +
)]
         444  +
pub struct InvalidGreeting {
         445  +
    #[allow(missing_docs)] // documentation missing in model
         446  +
    pub message: ::std::option::Option<::std::string::String>,
  356    447   
}
  357         -
impl JsonEnumsError {
  358         -
    /// Returns `true` if the error kind is `JsonEnumsError::ValidationException`.
  359         -
    pub fn is_validation_exception(&self) -> bool {
  360         -
        matches!(&self, JsonEnumsError::ValidationException(_))
         448  +
impl InvalidGreeting {
         449  +
    /// Returns the error message.
         450  +
    pub fn message(&self) -> ::std::option::Option<&str> {
         451  +
        self.message.as_deref()
  361    452   
    }
  362         -
    /// Returns the error name string by matching the correct variant.
         453  +
    #[doc(hidden)]
         454  +
    /// Returns the error name.
  363    455   
    pub fn name(&self) -> &'static str {
  364         -
        match &self {
  365         -
            JsonEnumsError::ValidationException(_inner) => _inner.name(),
  366         -
        }
         456  +
        "InvalidGreeting"
  367    457   
    }
  368    458   
}
  369         -
impl ::std::error::Error for JsonEnumsError {
  370         -
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
  371         -
        match &self {
  372         -
            JsonEnumsError::ValidationException(_inner) => Some(_inner),
         459  +
impl ::std::fmt::Display for InvalidGreeting {
         460  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         461  +
        ::std::write!(f, "InvalidGreeting")?;
         462  +
        if let ::std::option::Option::Some(inner_2) = &self.message {
         463  +
            {
         464  +
                ::std::write!(f, ": {inner_2}")?;
         465  +
            }
  373    466   
        }
         467  +
        Ok(())
  374    468   
    }
  375    469   
}
  376         -
impl ::std::convert::From<crate::error::ValidationException> for crate::error::JsonEnumsError {
  377         -
    fn from(variant: crate::error::ValidationException) -> crate::error::JsonEnumsError {
  378         -
        Self::ValidationException(variant)
         470  +
impl ::std::error::Error for InvalidGreeting {}
         471  +
impl InvalidGreeting {
         472  +
    /// Creates a new builder-style object to manufacture [`InvalidGreeting`](crate::error::InvalidGreeting).
         473  +
    pub fn builder() -> crate::error::invalid_greeting::Builder {
         474  +
        crate::error::invalid_greeting::Builder::default()
  379    475   
    }
  380    476   
}
  381    477   
  382         -
/// Error type for the `KitchenSinkOperation` operation.
  383         -
/// Each variant represents an error that can occur for the `KitchenSinkOperation` operation.
  384         -
#[derive(::std::fmt::Debug)]
  385         -
pub enum KitchenSinkOperationError {
         478  +
/// This error is thrown when a request is invalid.
         479  +
#[derive(
         480  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         481  +
)]
         482  +
pub struct ComplexError {
  386    483   
    #[allow(missing_docs)] // documentation missing in model
  387         -
    ErrorWithMembers(crate::error::ErrorWithMembers),
         484  +
    pub top_level: ::std::option::Option<::std::string::String>,
  388    485   
    #[allow(missing_docs)] // documentation missing in model
  389         -
    ErrorWithoutMembers(crate::error::ErrorWithoutMembers),
         486  +
    pub nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
  390    487   
}
  391         -
impl ::std::fmt::Display for KitchenSinkOperationError {
  392         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  393         -
        match &self {
  394         -
            KitchenSinkOperationError::ErrorWithMembers(_inner) => _inner.fmt(f),
  395         -
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => _inner.fmt(f),
         488  +
impl ComplexError {
         489  +
    #[allow(missing_docs)] // documentation missing in model
         490  +
    pub fn top_level(&self) -> ::std::option::Option<&str> {
         491  +
        self.top_level.as_deref()
  396    492   
    }
         493  +
    #[allow(missing_docs)] // documentation missing in model
         494  +
    pub fn nested(&self) -> ::std::option::Option<&crate::model::ComplexNestedErrorData> {
         495  +
        self.nested.as_ref()
  397    496   
    }
  398    497   
}
  399         -
impl KitchenSinkOperationError {
  400         -
    /// Returns `true` if the error kind is `KitchenSinkOperationError::ErrorWithMembers`.
  401         -
    pub fn is_error_with_members(&self) -> bool {
  402         -
        matches!(&self, KitchenSinkOperationError::ErrorWithMembers(_))
  403         -
    }
  404         -
    /// Returns `true` if the error kind is `KitchenSinkOperationError::ErrorWithoutMembers`.
  405         -
    pub fn is_error_without_members(&self) -> bool {
  406         -
        matches!(&self, KitchenSinkOperationError::ErrorWithoutMembers(_))
  407         -
    }
  408         -
    /// Returns the error name string by matching the correct variant.
         498  +
impl ComplexError {
         499  +
    #[doc(hidden)]
         500  +
    /// Returns the error name.
  409    501   
    pub fn name(&self) -> &'static str {
  410         -
        match &self {
  411         -
            KitchenSinkOperationError::ErrorWithMembers(_inner) => _inner.name(),
  412         -
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => _inner.name(),
  413         -
        }
  414         -
    }
  415         -
}
  416         -
impl ::std::error::Error for KitchenSinkOperationError {
  417         -
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
  418         -
        match &self {
  419         -
            KitchenSinkOperationError::ErrorWithMembers(_inner) => Some(_inner),
  420         -
            KitchenSinkOperationError::ErrorWithoutMembers(_inner) => Some(_inner),
  421         -
        }
         502  +
        "ComplexError"
  422    503   
    }
  423    504   
}
  424         -
impl ::std::convert::From<crate::error::ErrorWithMembers>
  425         -
    for crate::error::KitchenSinkOperationError
  426         -
{
  427         -
    fn from(variant: crate::error::ErrorWithMembers) -> crate::error::KitchenSinkOperationError {
  428         -
        Self::ErrorWithMembers(variant)
         505  +
impl ::std::fmt::Display for ComplexError {
         506  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         507  +
        ::std::write!(f, "ComplexError")?;
         508  +
        Ok(())
  429    509   
    }
  430    510   
}
  431         -
impl ::std::convert::From<crate::error::ErrorWithoutMembers>
  432         -
    for crate::error::KitchenSinkOperationError
  433         -
{
  434         -
    fn from(variant: crate::error::ErrorWithoutMembers) -> crate::error::KitchenSinkOperationError {
  435         -
        Self::ErrorWithoutMembers(variant)
         511  +
impl ::std::error::Error for ComplexError {}
         512  +
impl ComplexError {
         513  +
    /// Creates a new builder-style object to manufacture [`ComplexError`](crate::error::ComplexError).
         514  +
    pub fn builder() -> crate::error::complex_error::Builder {
         515  +
        crate::error::complex_error::Builder::default()
  436    516   
    }
  437    517   
}
  438    518   
  439         -
#[allow(missing_docs)] // documentation missing in model
         519  +
/// This error has test cases that test some of the dark corners of Amazon service framework history. It should only be implemented by clients.
  440    520   
#[derive(
  441    521   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  442    522   
)]
  443         -
pub struct ErrorWithoutMembers {}
  444         -
impl ErrorWithoutMembers {
         523  +
pub struct FooError {}
         524  +
impl FooError {
  445    525   
    #[doc(hidden)]
  446    526   
    /// Returns the error name.
  447    527   
    pub fn name(&self) -> &'static str {
  448         -
        "ErrorWithoutMembers"
         528  +
        "FooError"
  449    529   
    }
  450    530   
}
  451         -
impl ::std::fmt::Display for ErrorWithoutMembers {
         531  +
impl ::std::fmt::Display for FooError {
  452    532   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  453         -
        ::std::write!(f, "ErrorWithoutMembers")?;
         533  +
        ::std::write!(f, "FooError")?;
  454    534   
        Ok(())
  455    535   
    }
  456    536   
}
  457         -
impl ::std::error::Error for ErrorWithoutMembers {}
  458         -
impl ErrorWithoutMembers {
  459         -
    /// Creates a new builder-style object to manufacture [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
  460         -
    pub fn builder() -> crate::error::error_without_members::Builder {
  461         -
        crate::error::error_without_members::Builder::default()
         537  +
impl ::std::error::Error for FooError {}
         538  +
impl FooError {
         539  +
    /// Creates a new builder-style object to manufacture [`FooError`](crate::error::FooError).
         540  +
    pub fn builder() -> crate::error::foo_error::Builder {
         541  +
        crate::error::foo_error::Builder::default()
  462    542   
    }
  463    543   
}
         544  +
/// See [`ErrorWithMembers`](crate::error::ErrorWithMembers).
         545  +
pub mod error_with_members {
  464    546   
  465         -
#[allow(missing_docs)] // documentation missing in model
  466         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  467         -
pub struct ErrorWithMembers {
  468         -
    #[allow(missing_docs)] // documentation missing in model
  469         -
    pub code: ::std::option::Option<::std::string::String>,
  470         -
    #[allow(missing_docs)] // documentation missing in model
  471         -
    pub complex_data: ::std::option::Option<crate::model::KitchenSink>,
  472         -
    #[allow(missing_docs)] // documentation missing in model
  473         -
    pub integer_field: ::std::option::Option<i32>,
  474         -
    #[allow(missing_docs)] // documentation missing in model
  475         -
    pub list_field: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
  476         -
    #[allow(missing_docs)] // documentation missing in model
  477         -
    pub map_field: ::std::option::Option<
         547  +
    impl ::std::convert::From<Builder> for crate::error::ErrorWithMembers {
         548  +
        fn from(builder: Builder) -> Self {
         549  +
            builder.build()
         550  +
        }
         551  +
    }
         552  +
    /// A builder for [`ErrorWithMembers`](crate::error::ErrorWithMembers).
         553  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         554  +
    pub struct Builder {
         555  +
        pub(crate) code: ::std::option::Option<::std::string::String>,
         556  +
        pub(crate) complex_data: ::std::option::Option<crate::model::KitchenSink>,
         557  +
        pub(crate) integer_field: ::std::option::Option<i32>,
         558  +
        pub(crate) list_field: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         559  +
        pub(crate) map_field: ::std::option::Option<
  478    560   
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  479    561   
        >,
         562  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
         563  +
        pub(crate) string_field: ::std::option::Option<::std::string::String>,
         564  +
    }
         565  +
    impl Builder {
  480    566   
        #[allow(missing_docs)] // documentation missing in model
  481         -
    pub message: ::std::option::Option<::std::string::String>,
  482         -
    /// abc
  483         -
    pub string_field: ::std::option::Option<::std::string::String>,
  484         -
}
  485         -
impl ErrorWithMembers {
  486         -
    #[allow(missing_docs)] // documentation missing in model
  487         -
    pub fn code(&self) -> ::std::option::Option<&str> {
  488         -
        self.code.as_deref()
         567  +
        pub fn code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         568  +
            self.code = input;
         569  +
            self
  489    570   
        }
  490    571   
        #[allow(missing_docs)] // documentation missing in model
  491         -
    pub fn complex_data(&self) -> ::std::option::Option<&crate::model::KitchenSink> {
  492         -
        self.complex_data.as_ref()
         572  +
        pub fn complex_data(
         573  +
            mut self,
         574  +
            input: ::std::option::Option<crate::model::KitchenSink>,
         575  +
        ) -> Self {
         576  +
            self.complex_data = input;
         577  +
            self
  493    578   
        }
  494    579   
        #[allow(missing_docs)] // documentation missing in model
  495         -
    pub fn integer_field(&self) -> ::std::option::Option<i32> {
  496         -
        self.integer_field
         580  +
        pub fn integer_field(mut self, input: ::std::option::Option<i32>) -> Self {
         581  +
            self.integer_field = input;
         582  +
            self
  497    583   
        }
  498    584   
        #[allow(missing_docs)] // documentation missing in model
  499         -
    pub fn list_field(&self) -> ::std::option::Option<&[::std::string::String]> {
  500         -
        self.list_field.as_deref()
         585  +
        pub fn list_field(
         586  +
            mut self,
         587  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         588  +
        ) -> Self {
         589  +
            self.list_field = input;
         590  +
            self
  501    591   
        }
  502    592   
        #[allow(missing_docs)] // documentation missing in model
  503    593   
        pub fn map_field(
  504         -
        &self,
  505         -
    ) -> ::std::option::Option<
  506         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
  507         -
    > {
  508         -
        self.map_field.as_ref()
         594  +
            mut self,
         595  +
            input: ::std::option::Option<
         596  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         597  +
            >,
         598  +
        ) -> Self {
         599  +
            self.map_field = input;
         600  +
            self
         601  +
        }
         602  +
        #[allow(missing_docs)] // documentation missing in model
         603  +
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         604  +
            self.message = input;
         605  +
            self
  509    606   
        }
  510    607   
        /// abc
  511         -
    pub fn string_field(&self) -> ::std::option::Option<&str> {
  512         -
        self.string_field.as_deref()
         608  +
        pub fn string_field(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         609  +
            self.string_field = input;
         610  +
            self
         611  +
        }
         612  +
        /// Consumes the builder and constructs a [`ErrorWithMembers`](crate::error::ErrorWithMembers).
         613  +
        pub fn build(self) -> crate::error::ErrorWithMembers {
         614  +
            self.build_enforcing_all_constraints()
         615  +
        }
         616  +
        fn build_enforcing_all_constraints(self) -> crate::error::ErrorWithMembers {
         617  +
            crate::error::ErrorWithMembers {
         618  +
                code: self.code,
         619  +
                complex_data: self.complex_data,
         620  +
                integer_field: self.integer_field,
         621  +
                list_field: self.list_field,
         622  +
                map_field: self.map_field,
         623  +
                message: self.message,
         624  +
                string_field: self.string_field,
  513    625   
            }
  514         -
}
  515         -
impl ErrorWithMembers {
  516         -
    /// Returns the error message.
  517         -
    pub fn message(&self) -> ::std::option::Option<&str> {
  518         -
        self.message.as_deref()
  519    626   
        }
  520         -
    #[doc(hidden)]
  521         -
    /// Returns the error name.
  522         -
    pub fn name(&self) -> &'static str {
  523         -
        "ErrorWithMembers"
  524    627   
    }
  525    628   
}
  526         -
impl ::std::fmt::Display for ErrorWithMembers {
  527         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  528         -
        ::std::write!(f, "ErrorWithMembers")?;
  529         -
        if let ::std::option::Option::Some(inner_2) = &self.message {
  530         -
            {
  531         -
                ::std::write!(f, ": {inner_2}")?;
         629  +
/// See [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         630  +
pub mod error_without_members {
         631  +
         632  +
    impl ::std::convert::From<Builder> for crate::error::ErrorWithoutMembers {
         633  +
        fn from(builder: Builder) -> Self {
         634  +
            builder.build()
  532    635   
        }
  533    636   
    }
  534         -
        Ok(())
         637  +
    /// A builder for [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         638  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         639  +
    pub struct Builder {}
         640  +
    impl Builder {
         641  +
        /// Consumes the builder and constructs a [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         642  +
        pub fn build(self) -> crate::error::ErrorWithoutMembers {
         643  +
            self.build_enforcing_all_constraints()
         644  +
        }
         645  +
        fn build_enforcing_all_constraints(self) -> crate::error::ErrorWithoutMembers {
         646  +
            crate::error::ErrorWithoutMembers {}
  535    647   
        }
  536         -
}
  537         -
impl ::std::error::Error for ErrorWithMembers {}
  538         -
impl ErrorWithMembers {
  539         -
    /// Creates a new builder-style object to manufacture [`ErrorWithMembers`](crate::error::ErrorWithMembers).
  540         -
    pub fn builder() -> crate::error::error_with_members::Builder {
  541         -
        crate::error::error_with_members::Builder::default()
  542    648   
    }
  543    649   
}
  544         -
  545    650   
/// See [`ValidationException`](crate::error::ValidationException).
  546    651   
pub mod validation_exception {
  547    652   
  548    653   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  549    654   
    /// Holds one variant for each of the ways the builder can fail.
  550    655   
    #[non_exhaustive]
  551    656   
    #[allow(clippy::enum_variant_names)]
  552    657   
    pub enum ConstraintViolation {
  553    658   
        /// `message` was not provided but it is required when building `ValidationException`.
  554    659   
        MissingMessage,
@@ -579,684 +805,804 @@
  599    704   
        fn build_enforcing_all_constraints(
  600    705   
            self,
  601    706   
        ) -> Result<crate::error::ValidationException, ConstraintViolation> {
  602    707   
            Ok(crate::error::ValidationException {
  603    708   
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
  604    709   
                field_list: self.field_list,
  605    710   
            })
  606    711   
        }
  607    712   
    }
  608    713   
}
  609         -
/// See [`FooError`](crate::error::FooError).
  610         -
pub mod foo_error {
         714  +
/// See [`InvalidGreeting`](crate::error::InvalidGreeting).
         715  +
pub mod invalid_greeting {
  611    716   
  612         -
    impl ::std::convert::From<Builder> for crate::error::FooError {
         717  +
    impl ::std::convert::From<Builder> for crate::error::InvalidGreeting {
  613    718   
        fn from(builder: Builder) -> Self {
  614    719   
            builder.build()
  615    720   
        }
  616    721   
    }
  617         -
    /// A builder for [`FooError`](crate::error::FooError).
         722  +
    /// A builder for [`InvalidGreeting`](crate::error::InvalidGreeting).
  618    723   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  619         -
    pub struct Builder {}
         724  +
    pub struct Builder {
         725  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
         726  +
    }
  620    727   
    impl Builder {
  621         -
        /// Consumes the builder and constructs a [`FooError`](crate::error::FooError).
  622         -
        pub fn build(self) -> crate::error::FooError {
         728  +
        #[allow(missing_docs)] // documentation missing in model
         729  +
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         730  +
            self.message = input;
         731  +
            self
         732  +
        }
         733  +
        /// Consumes the builder and constructs a [`InvalidGreeting`](crate::error::InvalidGreeting).
         734  +
        pub fn build(self) -> crate::error::InvalidGreeting {
  623    735   
            self.build_enforcing_all_constraints()
  624    736   
        }
  625         -
        fn build_enforcing_all_constraints(self) -> crate::error::FooError {
  626         -
            crate::error::FooError {}
         737  +
        fn build_enforcing_all_constraints(self) -> crate::error::InvalidGreeting {
         738  +
            crate::error::InvalidGreeting {
         739  +
                message: self.message,
         740  +
            }
  627    741   
        }
  628    742   
    }
  629    743   
}
  630    744   
/// See [`ComplexError`](crate::error::ComplexError).
  631    745   
pub mod complex_error {
  632    746   
  633    747   
    impl ::std::convert::From<Builder> for crate::error::ComplexError {
  634    748   
        fn from(builder: Builder) -> Self {
  635    749   
            builder.build()
  636    750   
        }
  637    751   
    }
  638    752   
    /// A builder for [`ComplexError`](crate::error::ComplexError).
  639    753   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  640    754   
    pub struct Builder {
  641    755   
        pub(crate) top_level: ::std::option::Option<::std::string::String>,
  642    756   
        pub(crate) nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
  643    757   
    }
  644    758   
    impl Builder {
  645    759   
        #[allow(missing_docs)] // documentation missing in model
  646    760   
        pub fn top_level(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  647    761   
            self.top_level = input;
  648    762   
            self
  649    763   
        }
  650    764   
        #[allow(missing_docs)] // documentation missing in model
  651    765   
        pub fn nested(
  652    766   
            mut self,
  653    767   
            input: ::std::option::Option<crate::model::ComplexNestedErrorData>,
  654    768   
        ) -> Self {
  655    769   
            self.nested = input;
  656    770   
            self
  657    771   
        }
  658    772   
        /// Consumes the builder and constructs a [`ComplexError`](crate::error::ComplexError).
  659    773   
        pub fn build(self) -> crate::error::ComplexError {
  660    774   
            self.build_enforcing_all_constraints()
  661    775   
        }
  662    776   
        fn build_enforcing_all_constraints(self) -> crate::error::ComplexError {
  663    777   
            crate::error::ComplexError {
  664    778   
                top_level: self.top_level,
  665    779   
                nested: self.nested,
  666    780   
            }
  667    781   
        }
  668    782   
    }
  669    783   
}
  670         -
/// See [`InvalidGreeting`](crate::error::InvalidGreeting).
  671         -
pub mod invalid_greeting {
  672         -
  673         -
    impl ::std::convert::From<Builder> for crate::error::InvalidGreeting {
  674         -
        fn from(builder: Builder) -> Self {
  675         -
            builder.build()
  676         -
        }
  677         -
    }
  678         -
    /// A builder for [`InvalidGreeting`](crate::error::InvalidGreeting).
  679         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  680         -
    pub struct Builder {
  681         -
        pub(crate) message: ::std::option::Option<::std::string::String>,
  682         -
    }
  683         -
    impl Builder {
  684         -
        #[allow(missing_docs)] // documentation missing in model
  685         -
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  686         -
            self.message = input;
  687         -
            self
  688         -
        }
  689         -
        /// Consumes the builder and constructs a [`InvalidGreeting`](crate::error::InvalidGreeting).
  690         -
        pub fn build(self) -> crate::error::InvalidGreeting {
  691         -
            self.build_enforcing_all_constraints()
  692         -
        }
  693         -
        fn build_enforcing_all_constraints(self) -> crate::error::InvalidGreeting {
  694         -
            crate::error::InvalidGreeting {
  695         -
                message: self.message,
  696         -
            }
  697         -
        }
  698         -
    }
  699         -
}
  700         -
/// See [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
  701         -
pub mod error_without_members {
         784  +
/// See [`FooError`](crate::error::FooError).
         785  +
pub mod foo_error {
  702    786   
  703         -
    impl ::std::convert::From<Builder> for crate::error::ErrorWithoutMembers {
         787  +
    impl ::std::convert::From<Builder> for crate::error::FooError {
  704    788   
        fn from(builder: Builder) -> Self {
  705    789   
            builder.build()
  706    790   
        }
  707    791   
    }
  708         -
    /// A builder for [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
         792  +
    /// A builder for [`FooError`](crate::error::FooError).
  709    793   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  710    794   
    pub struct Builder {}
  711    795   
    impl Builder {
  712         -
        /// Consumes the builder and constructs a [`ErrorWithoutMembers`](crate::error::ErrorWithoutMembers).
  713         -
        pub fn build(self) -> crate::error::ErrorWithoutMembers {
  714         -
            self.build_enforcing_all_constraints()
  715         -
        }
  716         -
        fn build_enforcing_all_constraints(self) -> crate::error::ErrorWithoutMembers {
  717         -
            crate::error::ErrorWithoutMembers {}
  718         -
        }
  719         -
    }
  720         -
}
  721         -
/// See [`ErrorWithMembers`](crate::error::ErrorWithMembers).
  722         -
pub mod error_with_members {
  723         -
  724         -
    impl ::std::convert::From<Builder> for crate::error::ErrorWithMembers {
  725         -
        fn from(builder: Builder) -> Self {
  726         -
            builder.build()
  727         -
        }
  728         -
    }
  729         -
    /// A builder for [`ErrorWithMembers`](crate::error::ErrorWithMembers).
  730         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  731         -
    pub struct Builder {
  732         -
        pub(crate) code: ::std::option::Option<::std::string::String>,
  733         -
        pub(crate) complex_data: ::std::option::Option<crate::model::KitchenSink>,
  734         -
        pub(crate) integer_field: ::std::option::Option<i32>,
  735         -
        pub(crate) list_field: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
  736         -
        pub(crate) map_field: ::std::option::Option<
  737         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  738         -
        >,
  739         -
        pub(crate) message: ::std::option::Option<::std::string::String>,
  740         -
        pub(crate) string_field: ::std::option::Option<::std::string::String>,
  741         -
    }
  742         -
    impl Builder {
  743         -
        #[allow(missing_docs)] // documentation missing in model
  744         -
        pub fn code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  745         -
            self.code = input;
  746         -
            self
  747         -
        }
  748         -
        #[allow(missing_docs)] // documentation missing in model
  749         -
        pub fn complex_data(
  750         -
            mut self,
  751         -
            input: ::std::option::Option<crate::model::KitchenSink>,
  752         -
        ) -> Self {
  753         -
            self.complex_data = input;
  754         -
            self
  755         -
        }
  756         -
        #[allow(missing_docs)] // documentation missing in model
  757         -
        pub fn integer_field(mut self, input: ::std::option::Option<i32>) -> Self {
  758         -
            self.integer_field = input;
  759         -
            self
  760         -
        }
  761         -
        #[allow(missing_docs)] // documentation missing in model
  762         -
        pub fn list_field(
  763         -
            mut self,
  764         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
  765         -
        ) -> Self {
  766         -
            self.list_field = input;
  767         -
            self
  768         -
        }
  769         -
        #[allow(missing_docs)] // documentation missing in model
  770         -
        pub fn map_field(
  771         -
            mut self,
  772         -
            input: ::std::option::Option<
  773         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  774         -
            >,
  775         -
        ) -> Self {
  776         -
            self.map_field = input;
  777         -
            self
  778         -
        }
  779         -
        #[allow(missing_docs)] // documentation missing in model
  780         -
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  781         -
            self.message = input;
  782         -
            self
  783         -
        }
  784         -
        /// abc
  785         -
        pub fn string_field(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  786         -
            self.string_field = input;
  787         -
            self
  788         -
        }
  789         -
        /// Consumes the builder and constructs a [`ErrorWithMembers`](crate::error::ErrorWithMembers).
  790         -
        pub fn build(self) -> crate::error::ErrorWithMembers {
         796  +
        /// Consumes the builder and constructs a [`FooError`](crate::error::FooError).
         797  +
        pub fn build(self) -> crate::error::FooError {
  791    798   
            self.build_enforcing_all_constraints()
  792    799   
        }
  793         -
        fn build_enforcing_all_constraints(self) -> crate::error::ErrorWithMembers {
  794         -
            crate::error::ErrorWithMembers {
  795         -
                code: self.code,
  796         -
                complex_data: self.complex_data,
  797         -
                integer_field: self.integer_field,
  798         -
                list_field: self.list_field,
  799         -
                map_field: self.map_field,
  800         -
                message: self.message,
  801         -
                string_field: self.string_field,
  802         -
            }
         800  +
        fn build_enforcing_all_constraints(self) -> crate::error::FooError {
         801  +
            crate::error::FooError {}
  803    802   
        }
  804    803   
    }
  805    804   
}

tmp-codegen-diff/codegen-server-test/json_rpc11-http0x/rust-server-codegen/src/input.rs

@@ -1,1 +459,44 @@
    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      3   
#[derive(
    4      4   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
    5      5   
)]
    6         -
pub struct ContentTypeParametersInput {
    7         -
    #[allow(missing_docs)] // documentation missing in model
    8         -
    pub value: ::std::option::Option<i32>,
    9         -
}
   10         -
impl ContentTypeParametersInput {
   11         -
    #[allow(missing_docs)] // documentation missing in model
   12         -
    pub fn value(&self) -> ::std::option::Option<i32> {
   13         -
        self.value
   14         -
    }
   15         -
}
   16         -
impl ContentTypeParametersInput {
   17         -
    /// Creates a new builder-style object to manufacture [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput).
   18         -
    pub fn builder() -> crate::input::content_type_parameters_input::Builder {
   19         -
        crate::input::content_type_parameters_input::Builder::default()
   20         -
    }
   21         -
}
   22         -
impl crate::constrained::Constrained for crate::input::ContentTypeParametersInput {
   23         -
    type Unconstrained = crate::input::content_type_parameters_input::Builder;
   24         -
}
   25         -
   26         -
#[allow(missing_docs)] // documentation missing in model
   27         -
#[derive(
   28         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   29         -
)]
   30         -
pub struct PutWithContentEncodingInput {
   31         -
    #[allow(missing_docs)] // documentation missing in model
   32         -
    pub encoding: ::std::option::Option<::std::string::String>,
   33         -
    #[allow(missing_docs)] // documentation missing in model
   34         -
    pub data: ::std::option::Option<::std::string::String>,
   35         -
}
   36         -
impl PutWithContentEncodingInput {
   37         -
    #[allow(missing_docs)] // documentation missing in model
   38         -
    pub fn encoding(&self) -> ::std::option::Option<&str> {
   39         -
        self.encoding.as_deref()
   40         -
    }
   41         -
    #[allow(missing_docs)] // documentation missing in model
   42         -
    pub fn data(&self) -> ::std::option::Option<&str> {
   43         -
        self.data.as_deref()
   44         -
    }
   45         -
}
   46         -
impl PutWithContentEncodingInput {
   47         -
    /// Creates a new builder-style object to manufacture [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput).
   48         -
    pub fn builder() -> crate::input::put_with_content_encoding_input::Builder {
   49         -
        crate::input::put_with_content_encoding_input::Builder::default()
   50         -
    }
   51         -
}
   52         -
impl crate::constrained::Constrained for crate::input::PutWithContentEncodingInput {
   53         -
    type Unconstrained = crate::input::put_with_content_encoding_input::Builder;
   54         -
}
   55         -
   56         -
#[allow(missing_docs)] // documentation missing in model
   57         -
#[derive(
   58         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   59         -
)]
   60         -
pub struct FractionalSecondsInput {}
   61         -
impl FractionalSecondsInput {
   62         -
    /// Creates a new builder-style object to manufacture [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
   63         -
    pub fn builder() -> crate::input::fractional_seconds_input::Builder {
   64         -
        crate::input::fractional_seconds_input::Builder::default()
   65         -
    }
   66         -
}
   67         -
impl crate::constrained::Constrained for crate::input::FractionalSecondsInput {
   68         -
    type Unconstrained = crate::input::fractional_seconds_input::Builder;
   69         -
}
   70         -
   71         -
#[allow(missing_docs)] // documentation missing in model
   72         -
#[derive(
   73         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   74         -
)]
   75         -
pub struct DatetimeOffsetsInput {}
   76         -
impl DatetimeOffsetsInput {
   77         -
    /// Creates a new builder-style object to manufacture [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput).
   78         -
    pub fn builder() -> crate::input::datetime_offsets_input::Builder {
   79         -
        crate::input::datetime_offsets_input::Builder::default()
   80         -
    }
   81         -
}
   82         -
impl crate::constrained::Constrained for crate::input::DatetimeOffsetsInput {
   83         -
    type Unconstrained = crate::input::datetime_offsets_input::Builder;
   84         -
}
   85         -
   86         -
#[allow(missing_docs)] // documentation missing in model
   87         -
#[derive(
   88         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   89         -
)]
   90         -
pub struct HostWithPathOperationInput {}
   91         -
impl HostWithPathOperationInput {
   92         -
    /// Creates a new builder-style object to manufacture [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput).
   93         -
    pub fn builder() -> crate::input::host_with_path_operation_input::Builder {
   94         -
        crate::input::host_with_path_operation_input::Builder::default()
   95         -
    }
   96         -
}
   97         -
impl crate::constrained::Constrained for crate::input::HostWithPathOperationInput {
   98         -
    type Unconstrained = crate::input::host_with_path_operation_input::Builder;
   99         -
}
  100         -
  101         -
#[allow(missing_docs)] // documentation missing in model
  102         -
#[derive(
  103         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  104         -
)]
  105         -
pub struct EndpointWithHostLabelOperationInput {
  106         -
    #[allow(missing_docs)] // documentation missing in model
  107         -
    pub label: ::std::string::String,
  108         -
}
  109         -
impl EndpointWithHostLabelOperationInput {
  110         -
    #[allow(missing_docs)] // documentation missing in model
  111         -
    pub fn label(&self) -> &str {
  112         -
        use std::ops::Deref;
  113         -
        self.label.deref()
  114         -
    }
  115         -
}
  116         -
impl EndpointWithHostLabelOperationInput {
  117         -
    /// Creates a new builder-style object to manufacture [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput).
  118         -
    pub fn builder() -> crate::input::endpoint_with_host_label_operation_input::Builder {
  119         -
        crate::input::endpoint_with_host_label_operation_input::Builder::default()
  120         -
    }
  121         -
}
  122         -
impl crate::constrained::Constrained for crate::input::EndpointWithHostLabelOperationInput {
  123         -
    type Unconstrained = crate::input::endpoint_with_host_label_operation_input::Builder;
  124         -
}
  125         -
  126         -
#[allow(missing_docs)] // documentation missing in model
  127         -
#[derive(
  128         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  129         -
)]
  130         -
pub struct EndpointOperationInput {}
  131         -
impl EndpointOperationInput {
  132         -
    /// Creates a new builder-style object to manufacture [`EndpointOperationInput`](crate::input::EndpointOperationInput).
  133         -
    pub fn builder() -> crate::input::endpoint_operation_input::Builder {
  134         -
        crate::input::endpoint_operation_input::Builder::default()
  135         -
    }
  136         -
}
  137         -
impl crate::constrained::Constrained for crate::input::EndpointOperationInput {
  138         -
    type Unconstrained = crate::input::endpoint_operation_input::Builder;
  139         -
}
  140         -
  141         -
/// A shared structure that contains a single union member.
  142         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  143         -
pub struct JsonUnionsInput {
  144         -
    /// A union with a representative set of types for members.
  145         -
    pub contents: ::std::option::Option<crate::model::MyUnion>,
  146         -
}
  147         -
impl JsonUnionsInput {
  148         -
    /// A union with a representative set of types for members.
  149         -
    pub fn contents(&self) -> ::std::option::Option<&crate::model::MyUnion> {
  150         -
        self.contents.as_ref()
  151         -
    }
  152         -
}
  153         -
impl JsonUnionsInput {
  154         -
    /// Creates a new builder-style object to manufacture [`JsonUnionsInput`](crate::input::JsonUnionsInput).
  155         -
    pub fn builder() -> crate::input::json_unions_input::Builder {
  156         -
        crate::input::json_unions_input::Builder::default()
  157         -
    }
  158         -
}
  159         -
impl crate::constrained::Constrained for crate::input::JsonUnionsInput {
  160         -
    type Unconstrained = crate::input::json_unions_input::Builder;
  161         -
}
  162         -
  163         -
#[allow(missing_docs)] // documentation missing in model
  164         -
#[derive(
  165         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  166         -
)]
  167         -
pub struct GreetingWithErrorsInput {}
  168         -
impl GreetingWithErrorsInput {
  169         -
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
  170         -
    pub fn builder() -> crate::input::greeting_with_errors_input::Builder {
  171         -
        crate::input::greeting_with_errors_input::Builder::default()
  172         -
    }
  173         -
}
  174         -
impl crate::constrained::Constrained for crate::input::GreetingWithErrorsInput {
  175         -
    type Unconstrained = crate::input::greeting_with_errors_input::Builder;
  176         -
}
  177         -
  178         -
#[allow(missing_docs)] // documentation missing in model
  179         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  180         -
pub struct SparseNullsOperationInput {
  181         -
    #[allow(missing_docs)] // documentation missing in model
  182         -
    pub sparse_string_list:
  183         -
        ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
  184         -
    #[allow(missing_docs)] // documentation missing in model
  185         -
    pub sparse_string_map: ::std::option::Option<
  186         -
        ::std::collections::HashMap<
  187         -
            ::std::string::String,
  188         -
            ::std::option::Option<::std::string::String>,
  189         -
        >,
  190         -
    >,
  191         -
}
  192         -
impl SparseNullsOperationInput {
  193         -
    #[allow(missing_docs)] // documentation missing in model
  194         -
    pub fn sparse_string_list(
  195         -
        &self,
  196         -
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
  197         -
        self.sparse_string_list.as_deref()
  198         -
    }
  199         -
    #[allow(missing_docs)] // documentation missing in model
  200         -
    pub fn sparse_string_map(
  201         -
        &self,
  202         -
    ) -> ::std::option::Option<
  203         -
        &::std::collections::HashMap<
  204         -
            ::std::string::String,
  205         -
            ::std::option::Option<::std::string::String>,
  206         -
        >,
  207         -
    > {
  208         -
        self.sparse_string_map.as_ref()
  209         -
    }
  210         -
}
  211         -
impl SparseNullsOperationInput {
  212         -
    /// Creates a new builder-style object to manufacture [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
  213         -
    pub fn builder() -> crate::input::sparse_nulls_operation_input::Builder {
  214         -
        crate::input::sparse_nulls_operation_input::Builder::default()
  215         -
    }
  216         -
}
  217         -
impl crate::constrained::Constrained for crate::input::SparseNullsOperationInput {
  218         -
    type Unconstrained = crate::input::sparse_nulls_operation_input::Builder;
  219         -
}
  220         -
  221         -
#[allow(missing_docs)] // documentation missing in model
  222         -
#[derive(
  223         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  224         -
)]
  225         -
pub struct NullOperationInput {
  226         -
    #[allow(missing_docs)] // documentation missing in model
  227         -
    pub string: ::std::option::Option<::std::string::String>,
  228         -
}
  229         -
impl NullOperationInput {
  230         -
    #[allow(missing_docs)] // documentation missing in model
  231         -
    pub fn string(&self) -> ::std::option::Option<&str> {
  232         -
        self.string.as_deref()
  233         -
    }
  234         -
}
  235         -
impl NullOperationInput {
  236         -
    /// Creates a new builder-style object to manufacture [`NullOperationInput`](crate::input::NullOperationInput).
  237         -
    pub fn builder() -> crate::input::null_operation_input::Builder {
  238         -
        crate::input::null_operation_input::Builder::default()
  239         -
    }
  240         -
}
  241         -
impl crate::constrained::Constrained for crate::input::NullOperationInput {
  242         -
    type Unconstrained = crate::input::null_operation_input::Builder;
  243         -
}
  244         -
  245         -
#[allow(missing_docs)] // documentation missing in model
  246         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  247         -
pub struct JsonIntEnumsInput {
  248         -
    #[allow(missing_docs)] // documentation missing in model
  249         -
    pub int_enum1: ::std::option::Option<i32>,
  250         -
    #[allow(missing_docs)] // documentation missing in model
  251         -
    pub int_enum2: ::std::option::Option<i32>,
  252         -
    #[allow(missing_docs)] // documentation missing in model
  253         -
    pub int_enum3: ::std::option::Option<i32>,
  254         -
    #[allow(missing_docs)] // documentation missing in model
  255         -
    pub int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
  256         -
    #[allow(missing_docs)] // documentation missing in model
  257         -
    pub int_enum_set: ::std::option::Option<crate::model::IntegerEnumSet>,
  258         -
    #[allow(missing_docs)] // documentation missing in model
  259         -
    pub int_enum_map:
  260         -
        ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
  261         -
}
  262         -
impl JsonIntEnumsInput {
  263         -
    #[allow(missing_docs)] // documentation missing in model
  264         -
    pub fn int_enum1(&self) -> ::std::option::Option<i32> {
  265         -
        self.int_enum1
  266         -
    }
  267         -
    #[allow(missing_docs)] // documentation missing in model
  268         -
    pub fn int_enum2(&self) -> ::std::option::Option<i32> {
  269         -
        self.int_enum2
  270         -
    }
  271         -
    #[allow(missing_docs)] // documentation missing in model
  272         -
    pub fn int_enum3(&self) -> ::std::option::Option<i32> {
  273         -
        self.int_enum3
  274         -
    }
  275         -
    #[allow(missing_docs)] // documentation missing in model
  276         -
    pub fn int_enum_list(&self) -> ::std::option::Option<&[i32]> {
  277         -
        self.int_enum_list.as_deref()
  278         -
    }
  279         -
    #[allow(missing_docs)] // documentation missing in model
  280         -
    pub fn int_enum_set(&self) -> ::std::option::Option<&crate::model::IntegerEnumSet> {
  281         -
        self.int_enum_set.as_ref()
  282         -
    }
  283         -
    #[allow(missing_docs)] // documentation missing in model
  284         -
    pub fn int_enum_map(
  285         -
        &self,
  286         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
  287         -
        self.int_enum_map.as_ref()
  288         -
    }
  289         -
}
  290         -
impl JsonIntEnumsInput {
  291         -
    /// Creates a new builder-style object to manufacture [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput).
  292         -
    pub fn builder() -> crate::input::json_int_enums_input::Builder {
  293         -
        crate::input::json_int_enums_input::Builder::default()
  294         -
    }
  295         -
}
  296         -
impl crate::constrained::Constrained for crate::input::JsonIntEnumsInput {
  297         -
    type Unconstrained = crate::input::json_int_enums_input::Builder;
  298         -
}
  299         -
  300         -
#[allow(missing_docs)] // documentation missing in model
  301         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  302         -
pub struct JsonEnumsInput {
  303         -
    #[allow(missing_docs)] // documentation missing in model
  304         -
    pub foo_enum1: ::std::option::Option<crate::model::FooEnum>,
  305         -
    #[allow(missing_docs)] // documentation missing in model
  306         -
    pub foo_enum2: ::std::option::Option<crate::model::FooEnum>,
  307         -
    #[allow(missing_docs)] // documentation missing in model
  308         -
    pub foo_enum3: ::std::option::Option<crate::model::FooEnum>,
  309         -
    #[allow(missing_docs)] // documentation missing in model
  310         -
    pub foo_enum_list: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
  311         -
    #[allow(missing_docs)] // documentation missing in model
  312         -
    pub foo_enum_set: ::std::option::Option<crate::model::FooEnumSet>,
  313         -
    #[allow(missing_docs)] // documentation missing in model
  314         -
    pub foo_enum_map: ::std::option::Option<
  315         -
        ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
  316         -
    >,
  317         -
}
  318         -
impl JsonEnumsInput {
  319         -
    #[allow(missing_docs)] // documentation missing in model
  320         -
    pub fn foo_enum1(&self) -> ::std::option::Option<&crate::model::FooEnum> {
  321         -
        self.foo_enum1.as_ref()
  322         -
    }
  323         -
    #[allow(missing_docs)] // documentation missing in model
  324         -
    pub fn foo_enum2(&self) -> ::std::option::Option<&crate::model::FooEnum> {
  325         -
        self.foo_enum2.as_ref()
  326         -
    }
  327         -
    #[allow(missing_docs)] // documentation missing in model
  328         -
    pub fn foo_enum3(&self) -> ::std::option::Option<&crate::model::FooEnum> {
  329         -
        self.foo_enum3.as_ref()
  330         -
    }
  331         -
    #[allow(missing_docs)] // documentation missing in model
  332         -
    pub fn foo_enum_list(&self) -> ::std::option::Option<&[crate::model::FooEnum]> {
  333         -
        self.foo_enum_list.as_deref()
  334         -
    }
  335         -
    #[allow(missing_docs)] // documentation missing in model
  336         -
    pub fn foo_enum_set(&self) -> ::std::option::Option<&crate::model::FooEnumSet> {
  337         -
        self.foo_enum_set.as_ref()
  338         -
    }
  339         -
    #[allow(missing_docs)] // documentation missing in model
  340         -
    pub fn foo_enum_map(
  341         -
        &self,
  342         -
    ) -> ::std::option::Option<
  343         -
        &::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
  344         -
    > {
  345         -
        self.foo_enum_map.as_ref()
  346         -
    }
  347         -
}
  348         -
impl JsonEnumsInput {
  349         -
    /// Creates a new builder-style object to manufacture [`JsonEnumsInput`](crate::input::JsonEnumsInput).
  350         -
    pub fn builder() -> crate::input::json_enums_input::Builder {
  351         -
        crate::input::json_enums_input::Builder::default()
  352         -
    }
  353         -
}
  354         -
impl crate::constrained::Constrained for crate::input::JsonEnumsInput {
  355         -
    type Unconstrained = crate::input::json_enums_input::Builder;
  356         -
}
  357         -
  358         -
#[allow(missing_docs)] // documentation missing in model
  359         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  360         -
pub struct PutAndGetInlineDocumentsInput {
  361         -
    #[allow(missing_docs)] // documentation missing in model
  362         -
    pub inline_document: ::std::option::Option<::aws_smithy_types::Document>,
  363         -
}
  364         -
impl PutAndGetInlineDocumentsInput {
  365         -
    #[allow(missing_docs)] // documentation missing in model
  366         -
    pub fn inline_document(&self) -> ::std::option::Option<&::aws_smithy_types::Document> {
  367         -
        self.inline_document.as_ref()
  368         -
    }
  369         -
}
  370         -
impl PutAndGetInlineDocumentsInput {
  371         -
    /// Creates a new builder-style object to manufacture [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput).
  372         -
    pub fn builder() -> crate::input::put_and_get_inline_documents_input::Builder {
  373         -
        crate::input::put_and_get_inline_documents_input::Builder::default()
  374         -
    }
  375         -
}
  376         -
impl crate::constrained::Constrained for crate::input::PutAndGetInlineDocumentsInput {
  377         -
    type Unconstrained = crate::input::put_and_get_inline_documents_input::Builder;
  378         -
}
  379         -
  380         -
#[allow(missing_docs)] // documentation missing in model
  381         -
#[derive(
  382         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  383         -
)]
  384         -
pub struct OperationWithOptionalInputOutputInput {
  385         -
    #[allow(missing_docs)] // documentation missing in model
  386         -
    pub value: ::std::option::Option<::std::string::String>,
  387         -
}
  388         -
impl OperationWithOptionalInputOutputInput {
  389         -
    #[allow(missing_docs)] // documentation missing in model
  390         -
    pub fn value(&self) -> ::std::option::Option<&str> {
  391         -
        self.value.as_deref()
  392         -
    }
  393         -
}
  394         -
impl OperationWithOptionalInputOutputInput {
  395         -
    /// Creates a new builder-style object to manufacture [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput).
  396         -
    pub fn builder() -> crate::input::operation_with_optional_input_output_input::Builder {
  397         -
        crate::input::operation_with_optional_input_output_input::Builder::default()
  398         -
    }
  399         -
}
  400         -
impl crate::constrained::Constrained for crate::input::OperationWithOptionalInputOutputInput {
  401         -
    type Unconstrained = crate::input::operation_with_optional_input_output_input::Builder;
  402         -
}
  403         -
  404         -
#[allow(missing_docs)] // documentation missing in model
  405         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  406         -
pub struct SimpleScalarPropertiesInput {
  407         -
    #[allow(missing_docs)] // documentation missing in model
  408         -
    pub float_value: ::std::option::Option<f32>,
  409         -
    #[allow(missing_docs)] // documentation missing in model
  410         -
    pub double_value: ::std::option::Option<f64>,
  411         -
}
  412         -
impl SimpleScalarPropertiesInput {
  413         -
    #[allow(missing_docs)] // documentation missing in model
  414         -
    pub fn float_value(&self) -> ::std::option::Option<f32> {
  415         -
        self.float_value
  416         -
    }
  417         -
    #[allow(missing_docs)] // documentation missing in model
  418         -
    pub fn double_value(&self) -> ::std::option::Option<f64> {
  419         -
        self.double_value
  420         -
    }
  421         -
}
  422         -
impl SimpleScalarPropertiesInput {
  423         -
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
  424         -
    pub fn builder() -> crate::input::simple_scalar_properties_input::Builder {
  425         -
        crate::input::simple_scalar_properties_input::Builder::default()
           6  +
pub struct EmptyOperationInput {}
           7  +
impl EmptyOperationInput {
           8  +
    /// Creates a new builder-style object to manufacture [`EmptyOperationInput`](crate::input::EmptyOperationInput).
           9  +
    pub fn builder() -> crate::input::empty_operation_input::Builder {
          10  +
        crate::input::empty_operation_input::Builder::default()
  426     11   
    }
  427     12   
}
  428         -
impl crate::constrained::Constrained for crate::input::SimpleScalarPropertiesInput {
  429         -
    type Unconstrained = crate::input::simple_scalar_properties_input::Builder;
          13  +
impl crate::constrained::Constrained for crate::input::EmptyOperationInput {
          14  +
    type Unconstrained = crate::input::empty_operation_input::Builder;
  430     15   
}
  431     16   
  432     17   
#[allow(missing_docs)] // documentation missing in model
  433     18   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  434     19   
pub struct KitchenSinkOperationInput {
  435     20   
    #[allow(missing_docs)] // documentation missing in model
  436     21   
    pub blob: ::std::option::Option<::aws_smithy_types::Blob>,
  437     22   
    #[allow(missing_docs)] // documentation missing in model
  438     23   
    pub boolean: ::std::option::Option<bool>,
  439     24   
    #[allow(missing_docs)] // documentation missing in model
@@ -589,174 +1415,1377 @@
  609    194   
    ) -> ::std::option::Option<
  610    195   
        &::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
  611    196   
    > {
  612    197   
        self.recursive_map.as_ref()
  613    198   
    }
  614    199   
    #[allow(missing_docs)] // documentation missing in model
  615    200   
    pub fn recursive_struct(&self) -> ::std::option::Option<&crate::model::KitchenSink> {
  616    201   
        self.recursive_struct.as_deref()
  617    202   
    }
  618    203   
    #[allow(missing_docs)] // documentation missing in model
  619         -
    pub fn simple_struct(&self) -> ::std::option::Option<&crate::model::SimpleStruct> {
  620         -
        self.simple_struct.as_ref()
  621         -
    }
         204  +
    pub fn simple_struct(&self) -> ::std::option::Option<&crate::model::SimpleStruct> {
         205  +
        self.simple_struct.as_ref()
         206  +
    }
         207  +
    #[allow(missing_docs)] // documentation missing in model
         208  +
    pub fn string(&self) -> ::std::option::Option<&str> {
         209  +
        self.string.as_deref()
         210  +
    }
         211  +
    #[allow(missing_docs)] // documentation missing in model
         212  +
    pub fn struct_with_json_name(
         213  +
        &self,
         214  +
    ) -> ::std::option::Option<&crate::model::StructWithJsonName> {
         215  +
        self.struct_with_json_name.as_ref()
         216  +
    }
         217  +
    #[allow(missing_docs)] // documentation missing in model
         218  +
    pub fn timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         219  +
        self.timestamp.as_ref()
         220  +
    }
         221  +
    #[allow(missing_docs)] // documentation missing in model
         222  +
    pub fn unix_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         223  +
        self.unix_timestamp.as_ref()
         224  +
    }
         225  +
}
         226  +
impl KitchenSinkOperationInput {
         227  +
    /// Creates a new builder-style object to manufacture [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput).
         228  +
    pub fn builder() -> crate::input::kitchen_sink_operation_input::Builder {
         229  +
        crate::input::kitchen_sink_operation_input::Builder::default()
         230  +
    }
         231  +
}
         232  +
impl crate::constrained::Constrained for crate::input::KitchenSinkOperationInput {
         233  +
    type Unconstrained = crate::input::kitchen_sink_operation_input::Builder;
         234  +
}
         235  +
         236  +
#[allow(missing_docs)] // documentation missing in model
         237  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         238  +
pub struct SimpleScalarPropertiesInput {
         239  +
    #[allow(missing_docs)] // documentation missing in model
         240  +
    pub float_value: ::std::option::Option<f32>,
         241  +
    #[allow(missing_docs)] // documentation missing in model
         242  +
    pub double_value: ::std::option::Option<f64>,
         243  +
}
         244  +
impl SimpleScalarPropertiesInput {
         245  +
    #[allow(missing_docs)] // documentation missing in model
         246  +
    pub fn float_value(&self) -> ::std::option::Option<f32> {
         247  +
        self.float_value
         248  +
    }
         249  +
    #[allow(missing_docs)] // documentation missing in model
         250  +
    pub fn double_value(&self) -> ::std::option::Option<f64> {
         251  +
        self.double_value
         252  +
    }
         253  +
}
         254  +
impl SimpleScalarPropertiesInput {
         255  +
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
         256  +
    pub fn builder() -> crate::input::simple_scalar_properties_input::Builder {
         257  +
        crate::input::simple_scalar_properties_input::Builder::default()
         258  +
    }
         259  +
}
         260  +
impl crate::constrained::Constrained for crate::input::SimpleScalarPropertiesInput {
         261  +
    type Unconstrained = crate::input::simple_scalar_properties_input::Builder;
         262  +
}
         263  +
         264  +
#[allow(missing_docs)] // documentation missing in model
         265  +
#[derive(
         266  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         267  +
)]
         268  +
pub struct OperationWithOptionalInputOutputInput {
         269  +
    #[allow(missing_docs)] // documentation missing in model
         270  +
    pub value: ::std::option::Option<::std::string::String>,
         271  +
}
         272  +
impl OperationWithOptionalInputOutputInput {
         273  +
    #[allow(missing_docs)] // documentation missing in model
         274  +
    pub fn value(&self) -> ::std::option::Option<&str> {
         275  +
        self.value.as_deref()
         276  +
    }
         277  +
}
         278  +
impl OperationWithOptionalInputOutputInput {
         279  +
    /// Creates a new builder-style object to manufacture [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput).
         280  +
    pub fn builder() -> crate::input::operation_with_optional_input_output_input::Builder {
         281  +
        crate::input::operation_with_optional_input_output_input::Builder::default()
         282  +
    }
         283  +
}
         284  +
impl crate::constrained::Constrained for crate::input::OperationWithOptionalInputOutputInput {
         285  +
    type Unconstrained = crate::input::operation_with_optional_input_output_input::Builder;
         286  +
}
         287  +
         288  +
#[allow(missing_docs)] // documentation missing in model
         289  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         290  +
pub struct PutAndGetInlineDocumentsInput {
         291  +
    #[allow(missing_docs)] // documentation missing in model
         292  +
    pub inline_document: ::std::option::Option<::aws_smithy_types::Document>,
         293  +
}
         294  +
impl PutAndGetInlineDocumentsInput {
         295  +
    #[allow(missing_docs)] // documentation missing in model
         296  +
    pub fn inline_document(&self) -> ::std::option::Option<&::aws_smithy_types::Document> {
         297  +
        self.inline_document.as_ref()
         298  +
    }
         299  +
}
         300  +
impl PutAndGetInlineDocumentsInput {
         301  +
    /// Creates a new builder-style object to manufacture [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput).
         302  +
    pub fn builder() -> crate::input::put_and_get_inline_documents_input::Builder {
         303  +
        crate::input::put_and_get_inline_documents_input::Builder::default()
         304  +
    }
         305  +
}
         306  +
impl crate::constrained::Constrained for crate::input::PutAndGetInlineDocumentsInput {
         307  +
    type Unconstrained = crate::input::put_and_get_inline_documents_input::Builder;
         308  +
}
         309  +
         310  +
#[allow(missing_docs)] // documentation missing in model
         311  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         312  +
pub struct JsonEnumsInput {
         313  +
    #[allow(missing_docs)] // documentation missing in model
         314  +
    pub foo_enum1: ::std::option::Option<crate::model::FooEnum>,
         315  +
    #[allow(missing_docs)] // documentation missing in model
         316  +
    pub foo_enum2: ::std::option::Option<crate::model::FooEnum>,
         317  +
    #[allow(missing_docs)] // documentation missing in model
         318  +
    pub foo_enum3: ::std::option::Option<crate::model::FooEnum>,
         319  +
    #[allow(missing_docs)] // documentation missing in model
         320  +
    pub foo_enum_list: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
         321  +
    #[allow(missing_docs)] // documentation missing in model
         322  +
    pub foo_enum_set: ::std::option::Option<crate::model::FooEnumSet>,
         323  +
    #[allow(missing_docs)] // documentation missing in model
         324  +
    pub foo_enum_map: ::std::option::Option<
         325  +
        ::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
         326  +
    >,
         327  +
}
         328  +
impl JsonEnumsInput {
         329  +
    #[allow(missing_docs)] // documentation missing in model
         330  +
    pub fn foo_enum1(&self) -> ::std::option::Option<&crate::model::FooEnum> {
         331  +
        self.foo_enum1.as_ref()
         332  +
    }
         333  +
    #[allow(missing_docs)] // documentation missing in model
         334  +
    pub fn foo_enum2(&self) -> ::std::option::Option<&crate::model::FooEnum> {
         335  +
        self.foo_enum2.as_ref()
         336  +
    }
         337  +
    #[allow(missing_docs)] // documentation missing in model
         338  +
    pub fn foo_enum3(&self) -> ::std::option::Option<&crate::model::FooEnum> {
         339  +
        self.foo_enum3.as_ref()
         340  +
    }
         341  +
    #[allow(missing_docs)] // documentation missing in model
         342  +
    pub fn foo_enum_list(&self) -> ::std::option::Option<&[crate::model::FooEnum]> {
         343  +
        self.foo_enum_list.as_deref()
         344  +
    }
         345  +
    #[allow(missing_docs)] // documentation missing in model
         346  +
    pub fn foo_enum_set(&self) -> ::std::option::Option<&crate::model::FooEnumSet> {
         347  +
        self.foo_enum_set.as_ref()
         348  +
    }
         349  +
    #[allow(missing_docs)] // documentation missing in model
         350  +
    pub fn foo_enum_map(
         351  +
        &self,
         352  +
    ) -> ::std::option::Option<
         353  +
        &::std::collections::HashMap<::std::string::String, crate::model::FooEnum>,
         354  +
    > {
         355  +
        self.foo_enum_map.as_ref()
         356  +
    }
         357  +
}
         358  +
impl JsonEnumsInput {
         359  +
    /// Creates a new builder-style object to manufacture [`JsonEnumsInput`](crate::input::JsonEnumsInput).
         360  +
    pub fn builder() -> crate::input::json_enums_input::Builder {
         361  +
        crate::input::json_enums_input::Builder::default()
         362  +
    }
         363  +
}
         364  +
impl crate::constrained::Constrained for crate::input::JsonEnumsInput {
         365  +
    type Unconstrained = crate::input::json_enums_input::Builder;
         366  +
}
         367  +
         368  +
#[allow(missing_docs)] // documentation missing in model
         369  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         370  +
pub struct JsonIntEnumsInput {
         371  +
    #[allow(missing_docs)] // documentation missing in model
         372  +
    pub int_enum1: ::std::option::Option<i32>,
         373  +
    #[allow(missing_docs)] // documentation missing in model
         374  +
    pub int_enum2: ::std::option::Option<i32>,
         375  +
    #[allow(missing_docs)] // documentation missing in model
         376  +
    pub int_enum3: ::std::option::Option<i32>,
         377  +
    #[allow(missing_docs)] // documentation missing in model
         378  +
    pub int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
         379  +
    #[allow(missing_docs)] // documentation missing in model
         380  +
    pub int_enum_set: ::std::option::Option<crate::model::IntegerEnumSet>,
         381  +
    #[allow(missing_docs)] // documentation missing in model
         382  +
    pub int_enum_map:
         383  +
        ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
         384  +
}
         385  +
impl JsonIntEnumsInput {
         386  +
    #[allow(missing_docs)] // documentation missing in model
         387  +
    pub fn int_enum1(&self) -> ::std::option::Option<i32> {
         388  +
        self.int_enum1
         389  +
    }
         390  +
    #[allow(missing_docs)] // documentation missing in model
         391  +
    pub fn int_enum2(&self) -> ::std::option::Option<i32> {
         392  +
        self.int_enum2
         393  +
    }
         394  +
    #[allow(missing_docs)] // documentation missing in model
         395  +
    pub fn int_enum3(&self) -> ::std::option::Option<i32> {
         396  +
        self.int_enum3
         397  +
    }
         398  +
    #[allow(missing_docs)] // documentation missing in model
         399  +
    pub fn int_enum_list(&self) -> ::std::option::Option<&[i32]> {
         400  +
        self.int_enum_list.as_deref()
         401  +
    }
         402  +
    #[allow(missing_docs)] // documentation missing in model
         403  +
    pub fn int_enum_set(&self) -> ::std::option::Option<&crate::model::IntegerEnumSet> {
         404  +
        self.int_enum_set.as_ref()
         405  +
    }
         406  +
    #[allow(missing_docs)] // documentation missing in model
         407  +
    pub fn int_enum_map(
         408  +
        &self,
         409  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
         410  +
        self.int_enum_map.as_ref()
         411  +
    }
         412  +
}
         413  +
impl JsonIntEnumsInput {
         414  +
    /// Creates a new builder-style object to manufacture [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput).
         415  +
    pub fn builder() -> crate::input::json_int_enums_input::Builder {
         416  +
        crate::input::json_int_enums_input::Builder::default()
         417  +
    }
         418  +
}
         419  +
impl crate::constrained::Constrained for crate::input::JsonIntEnumsInput {
         420  +
    type Unconstrained = crate::input::json_int_enums_input::Builder;
         421  +
}
         422  +
         423  +
#[allow(missing_docs)] // documentation missing in model
         424  +
#[derive(
         425  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         426  +
)]
         427  +
pub struct NullOperationInput {
         428  +
    #[allow(missing_docs)] // documentation missing in model
         429  +
    pub string: ::std::option::Option<::std::string::String>,
         430  +
}
         431  +
impl NullOperationInput {
         432  +
    #[allow(missing_docs)] // documentation missing in model
         433  +
    pub fn string(&self) -> ::std::option::Option<&str> {
         434  +
        self.string.as_deref()
         435  +
    }
         436  +
}
         437  +
impl NullOperationInput {
         438  +
    /// Creates a new builder-style object to manufacture [`NullOperationInput`](crate::input::NullOperationInput).
         439  +
    pub fn builder() -> crate::input::null_operation_input::Builder {
         440  +
        crate::input::null_operation_input::Builder::default()
         441  +
    }
         442  +
}
         443  +
impl crate::constrained::Constrained for crate::input::NullOperationInput {
         444  +
    type Unconstrained = crate::input::null_operation_input::Builder;
         445  +
}
         446  +
         447  +
#[allow(missing_docs)] // documentation missing in model
         448  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         449  +
pub struct SparseNullsOperationInput {
         450  +
    #[allow(missing_docs)] // documentation missing in model
         451  +
    pub sparse_string_list:
         452  +
        ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
  622    453   
    #[allow(missing_docs)] // documentation missing in model
  623         -
    pub fn string(&self) -> ::std::option::Option<&str> {
  624         -
        self.string.as_deref()
  625         -
    }
         454  +
    pub sparse_string_map: ::std::option::Option<
         455  +
        ::std::collections::HashMap<
         456  +
            ::std::string::String,
         457  +
            ::std::option::Option<::std::string::String>,
         458  +
        >,
         459  +
    >,
         460  +
}
         461  +
impl SparseNullsOperationInput {
  626    462   
    #[allow(missing_docs)] // documentation missing in model
  627         -
    pub fn struct_with_json_name(
         463  +
    pub fn sparse_string_list(
  628    464   
        &self,
  629         -
    ) -> ::std::option::Option<&crate::model::StructWithJsonName> {
  630         -
        self.struct_with_json_name.as_ref()
  631         -
    }
  632         -
    #[allow(missing_docs)] // documentation missing in model
  633         -
    pub fn timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
  634         -
        self.timestamp.as_ref()
         465  +
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
         466  +
        self.sparse_string_list.as_deref()
  635    467   
    }
  636    468   
    #[allow(missing_docs)] // documentation missing in model
  637         -
    pub fn unix_timestamp(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
  638         -
        self.unix_timestamp.as_ref()
         469  +
    pub fn sparse_string_map(
         470  +
        &self,
         471  +
    ) -> ::std::option::Option<
         472  +
        &::std::collections::HashMap<
         473  +
            ::std::string::String,
         474  +
            ::std::option::Option<::std::string::String>,
         475  +
        >,
         476  +
    > {
         477  +
        self.sparse_string_map.as_ref()
  639    478   
    }
  640    479   
}
  641         -
impl KitchenSinkOperationInput {
  642         -
    /// Creates a new builder-style object to manufacture [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput).
  643         -
    pub fn builder() -> crate::input::kitchen_sink_operation_input::Builder {
  644         -
        crate::input::kitchen_sink_operation_input::Builder::default()
         480  +
impl SparseNullsOperationInput {
         481  +
    /// Creates a new builder-style object to manufacture [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
         482  +
    pub fn builder() -> crate::input::sparse_nulls_operation_input::Builder {
         483  +
        crate::input::sparse_nulls_operation_input::Builder::default()
  645    484   
    }
  646    485   
}
  647         -
impl crate::constrained::Constrained for crate::input::KitchenSinkOperationInput {
  648         -
    type Unconstrained = crate::input::kitchen_sink_operation_input::Builder;
         486  +
impl crate::constrained::Constrained for crate::input::SparseNullsOperationInput {
         487  +
    type Unconstrained = crate::input::sparse_nulls_operation_input::Builder;
  649    488   
}
  650    489   
  651    490   
#[allow(missing_docs)] // documentation missing in model
  652    491   
#[derive(
  653    492   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  654    493   
)]
  655         -
pub struct EmptyOperationInput {}
  656         -
impl EmptyOperationInput {
  657         -
    /// Creates a new builder-style object to manufacture [`EmptyOperationInput`](crate::input::EmptyOperationInput).
  658         -
    pub fn builder() -> crate::input::empty_operation_input::Builder {
  659         -
        crate::input::empty_operation_input::Builder::default()
         494  +
pub struct GreetingWithErrorsInput {}
         495  +
impl GreetingWithErrorsInput {
         496  +
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
         497  +
    pub fn builder() -> crate::input::greeting_with_errors_input::Builder {
         498  +
        crate::input::greeting_with_errors_input::Builder::default()
  660    499   
    }
  661    500   
}
  662         -
impl crate::constrained::Constrained for crate::input::EmptyOperationInput {
  663         -
    type Unconstrained = crate::input::empty_operation_input::Builder;
         501  +
impl crate::constrained::Constrained for crate::input::GreetingWithErrorsInput {
         502  +
    type Unconstrained = crate::input::greeting_with_errors_input::Builder;
  664    503   
}
  665         -
/// See [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput).
  666         -
pub mod content_type_parameters_input {
  667    504   
  668         -
    impl ::std::convert::From<Builder> for crate::input::ContentTypeParametersInput {
  669         -
        fn from(builder: Builder) -> Self {
  670         -
            builder.build()
         505  +
/// A shared structure that contains a single union member.
         506  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         507  +
pub struct JsonUnionsInput {
         508  +
    /// A union with a representative set of types for members.
         509  +
    pub contents: ::std::option::Option<crate::model::MyUnion>,
         510  +
}
         511  +
impl JsonUnionsInput {
         512  +
    /// A union with a representative set of types for members.
         513  +
    pub fn contents(&self) -> ::std::option::Option<&crate::model::MyUnion> {
         514  +
        self.contents.as_ref()
  671    515   
    }
         516  +
}
         517  +
impl JsonUnionsInput {
         518  +
    /// Creates a new builder-style object to manufacture [`JsonUnionsInput`](crate::input::JsonUnionsInput).
         519  +
    pub fn builder() -> crate::input::json_unions_input::Builder {
         520  +
        crate::input::json_unions_input::Builder::default()
  672    521   
    }
  673         -
    /// A builder for [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput).
  674         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  675         -
    pub struct Builder {
  676         -
        pub(crate) value: ::std::option::Option<i32>,
         522  +
}
         523  +
impl crate::constrained::Constrained for crate::input::JsonUnionsInput {
         524  +
    type Unconstrained = crate::input::json_unions_input::Builder;
         525  +
}
         526  +
         527  +
#[allow(missing_docs)] // documentation missing in model
         528  +
#[derive(
         529  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         530  +
)]
         531  +
pub struct EndpointOperationInput {}
         532  +
impl EndpointOperationInput {
         533  +
    /// Creates a new builder-style object to manufacture [`EndpointOperationInput`](crate::input::EndpointOperationInput).
         534  +
    pub fn builder() -> crate::input::endpoint_operation_input::Builder {
         535  +
        crate::input::endpoint_operation_input::Builder::default()
  677    536   
    }
  678         -
    impl Builder {
         537  +
}
         538  +
impl crate::constrained::Constrained for crate::input::EndpointOperationInput {
         539  +
    type Unconstrained = crate::input::endpoint_operation_input::Builder;
         540  +
}
         541  +
         542  +
#[allow(missing_docs)] // documentation missing in model
         543  +
#[derive(
         544  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         545  +
)]
         546  +
pub struct EndpointWithHostLabelOperationInput {
  679    547   
    #[allow(missing_docs)] // documentation missing in model
  680         -
        pub fn value(mut self, input: ::std::option::Option<i32>) -> Self {
  681         -
            self.value = input;
  682         -
            self
  683         -
        }
         548  +
    pub label: ::std::string::String,
         549  +
}
         550  +
impl EndpointWithHostLabelOperationInput {
  684    551   
    #[allow(missing_docs)] // documentation missing in model
  685         -
        pub(crate) fn set_value(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
  686         -
            self.value = input.map(|v| v.into());
  687         -
            self
  688         -
        }
  689         -
        /// Consumes the builder and constructs a [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput).
  690         -
        pub fn build(self) -> crate::input::ContentTypeParametersInput {
  691         -
            self.build_enforcing_all_constraints()
  692         -
        }
  693         -
        fn build_enforcing_all_constraints(self) -> crate::input::ContentTypeParametersInput {
  694         -
            crate::input::ContentTypeParametersInput { value: self.value }
         552  +
    pub fn label(&self) -> &str {
         553  +
        use std::ops::Deref;
         554  +
        self.label.deref()
  695    555   
    }
         556  +
}
         557  +
impl EndpointWithHostLabelOperationInput {
         558  +
    /// Creates a new builder-style object to manufacture [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput).
         559  +
    pub fn builder() -> crate::input::endpoint_with_host_label_operation_input::Builder {
         560  +
        crate::input::endpoint_with_host_label_operation_input::Builder::default()
  696    561   
    }
  697    562   
}
  698         -
/// See [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput).
  699         -
pub mod put_with_content_encoding_input {
         563  +
impl crate::constrained::Constrained for crate::input::EndpointWithHostLabelOperationInput {
         564  +
    type Unconstrained = crate::input::endpoint_with_host_label_operation_input::Builder;
         565  +
}
  700    566   
  701         -
    impl ::std::convert::From<Builder> for crate::input::PutWithContentEncodingInput {
  702         -
        fn from(builder: Builder) -> Self {
  703         -
            builder.build()
  704         -
        }
  705         -
    }
  706         -
    /// A builder for [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput).
  707         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  708         -
    pub struct Builder {
  709         -
        pub(crate) encoding: ::std::option::Option<::std::string::String>,
  710         -
        pub(crate) data: ::std::option::Option<::std::string::String>,
         567  +
#[allow(missing_docs)] // documentation missing in model
         568  +
#[derive(
         569  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         570  +
)]
         571  +
pub struct HostWithPathOperationInput {}
         572  +
impl HostWithPathOperationInput {
         573  +
    /// Creates a new builder-style object to manufacture [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput).
         574  +
    pub fn builder() -> crate::input::host_with_path_operation_input::Builder {
         575  +
        crate::input::host_with_path_operation_input::Builder::default()
  711    576   
    }
  712         -
    impl Builder {
  713         -
        #[allow(missing_docs)] // documentation missing in model
  714         -
        pub fn encoding(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  715         -
            self.encoding = input;
  716         -
            self
         577  +
}
         578  +
impl crate::constrained::Constrained for crate::input::HostWithPathOperationInput {
         579  +
    type Unconstrained = crate::input::host_with_path_operation_input::Builder;
         580  +
}
         581  +
         582  +
#[allow(missing_docs)] // documentation missing in model
         583  +
#[derive(
         584  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         585  +
)]
         586  +
pub struct DatetimeOffsetsInput {}
         587  +
impl DatetimeOffsetsInput {
         588  +
    /// Creates a new builder-style object to manufacture [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput).
         589  +
    pub fn builder() -> crate::input::datetime_offsets_input::Builder {
         590  +
        crate::input::datetime_offsets_input::Builder::default()
  717    591   
    }
  718         -
        #[allow(missing_docs)] // documentation missing in model
  719         -
        pub(crate) fn set_encoding(
  720         -
            mut self,
  721         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
  722         -
        ) -> Self {
  723         -
            self.encoding = input.map(|v| v.into());
  724         -
            self
         592  +
}
         593  +
impl crate::constrained::Constrained for crate::input::DatetimeOffsetsInput {
         594  +
    type Unconstrained = crate::input::datetime_offsets_input::Builder;
         595  +
}
         596  +
         597  +
#[allow(missing_docs)] // documentation missing in model
         598  +
#[derive(
         599  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         600  +
)]
         601  +
pub struct FractionalSecondsInput {}
         602  +
impl FractionalSecondsInput {
         603  +
    /// Creates a new builder-style object to manufacture [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
         604  +
    pub fn builder() -> crate::input::fractional_seconds_input::Builder {
         605  +
        crate::input::fractional_seconds_input::Builder::default()
  725    606   
    }
         607  +
}
         608  +
impl crate::constrained::Constrained for crate::input::FractionalSecondsInput {
         609  +
    type Unconstrained = crate::input::fractional_seconds_input::Builder;
         610  +
}
         611  +
         612  +
#[allow(missing_docs)] // documentation missing in model
         613  +
#[derive(
         614  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         615  +
)]
         616  +
pub struct PutWithContentEncodingInput {
  726    617   
    #[allow(missing_docs)] // documentation missing in model
  727         -
        pub fn data(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  728         -
            self.data = input;
  729         -
            self
  730         -
        }
         618  +
    pub encoding: ::std::option::Option<::std::string::String>,
  731    619   
    #[allow(missing_docs)] // documentation missing in model
  732         -
        pub(crate) fn set_data(
  733         -
            mut self,
  734         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
  735         -
        ) -> Self {
  736         -
            self.data = input.map(|v| v.into());
  737         -
            self
  738         -
        }
  739         -
        /// Consumes the builder and constructs a [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput).
  740         -
        pub fn build(self) -> crate::input::PutWithContentEncodingInput {
  741         -
            self.build_enforcing_all_constraints()
  742         -
        }
  743         -
        fn build_enforcing_all_constraints(self) -> crate::input::PutWithContentEncodingInput {
  744         -
            crate::input::PutWithContentEncodingInput {
  745         -
                encoding: self.encoding,
  746         -
                data: self.data,
  747         -
            }
  748         -
        }
  749         -
    }
         620  +
    pub data: ::std::option::Option<::std::string::String>,
  750    621   
}
  751         -
/// See [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
  752         -
pub mod fractional_seconds_input {
  753         -
  754         -
    impl ::std::convert::From<Builder> for crate::input::FractionalSecondsInput {
  755         -
        fn from(builder: Builder) -> Self {
  756         -
            builder.build()
  757         -
        }
  758         -
    }
  759         -
    /// A builder for [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
  760         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  761         -
    pub struct Builder {}
  762         -
    impl Builder {
  763         -
        /// Consumes the builder and constructs a [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
  764         -
        pub fn build(self) -> crate::input::FractionalSecondsInput {
  765         -
            self.build_enforcing_all_constraints()
         622  +
impl PutWithContentEncodingInput {
         623  +
    #[allow(missing_docs)] // documentation missing in model
         624  +
    pub fn encoding(&self) -> ::std::option::Option<&str> {
         625  +
        self.encoding.as_deref()
  766    626   
    }
  767         -
        fn build_enforcing_all_constraints(self) -> crate::input::FractionalSecondsInput {
  768         -
            crate::input::FractionalSecondsInput {}
         627  +
    #[allow(missing_docs)] // documentation missing in model
         628  +
    pub fn data(&self) -> ::std::option::Option<&str> {
         629  +
        self.data.as_deref()
  769    630   
    }
         631  +
}
         632  +
impl PutWithContentEncodingInput {
         633  +
    /// Creates a new builder-style object to manufacture [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput).
         634  +
    pub fn builder() -> crate::input::put_with_content_encoding_input::Builder {
         635  +
        crate::input::put_with_content_encoding_input::Builder::default()
  770    636   
    }
  771    637   
}
  772         -
/// See [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput).
  773         -
pub mod datetime_offsets_input {
         638  +
impl crate::constrained::Constrained for crate::input::PutWithContentEncodingInput {
         639  +
    type Unconstrained = crate::input::put_with_content_encoding_input::Builder;
         640  +
}
  774    641   
  775         -
    impl ::std::convert::From<Builder> for crate::input::DatetimeOffsetsInput {
  776         -
        fn from(builder: Builder) -> Self {
  777         -
            builder.build()
  778         -
        }
  779         -
    }
  780         -
    /// A builder for [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput).
  781         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  782         -
    pub struct Builder {}
  783         -
    impl Builder {
  784         -
        /// Consumes the builder and constructs a [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput).
  785         -
        pub fn build(self) -> crate::input::DatetimeOffsetsInput {
  786         -
            self.build_enforcing_all_constraints()
  787         -
        }
  788         -
        fn build_enforcing_all_constraints(self) -> crate::input::DatetimeOffsetsInput {
  789         -
            crate::input::DatetimeOffsetsInput {}
         642  +
#[allow(missing_docs)] // documentation missing in model
         643  +
#[derive(
         644  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         645  +
)]
         646  +
pub struct ContentTypeParametersInput {
         647  +
    #[allow(missing_docs)] // documentation missing in model
         648  +
    pub value: ::std::option::Option<i32>,
         649  +
}
         650  +
impl ContentTypeParametersInput {
         651  +
    #[allow(missing_docs)] // documentation missing in model
         652  +
    pub fn value(&self) -> ::std::option::Option<i32> {
         653  +
        self.value
  790    654   
    }
         655  +
}
         656  +
impl ContentTypeParametersInput {
         657  +
    /// Creates a new builder-style object to manufacture [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput).
         658  +
    pub fn builder() -> crate::input::content_type_parameters_input::Builder {
         659  +
        crate::input::content_type_parameters_input::Builder::default()
  791    660   
    }
  792    661   
}
  793         -
/// See [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput).
  794         -
pub mod host_with_path_operation_input {
         662  +
impl crate::constrained::Constrained for crate::input::ContentTypeParametersInput {
         663  +
    type Unconstrained = crate::input::content_type_parameters_input::Builder;
         664  +
}
         665  +
/// See [`EmptyOperationInput`](crate::input::EmptyOperationInput).
         666  +
pub mod empty_operation_input {
  795    667   
  796         -
    impl ::std::convert::From<Builder> for crate::input::HostWithPathOperationInput {
         668  +
    impl ::std::convert::From<Builder> for crate::input::EmptyOperationInput {
  797    669   
        fn from(builder: Builder) -> Self {
  798    670   
            builder.build()
  799    671   
        }
  800    672   
    }
  801         -
    /// A builder for [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput).
         673  +
    /// A builder for [`EmptyOperationInput`](crate::input::EmptyOperationInput).
  802    674   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  803    675   
    pub struct Builder {}
  804    676   
    impl Builder {
  805         -
        /// Consumes the builder and constructs a [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput).
  806         -
        pub fn build(self) -> crate::input::HostWithPathOperationInput {
         677  +
        /// Consumes the builder and constructs a [`EmptyOperationInput`](crate::input::EmptyOperationInput).
         678  +
        pub fn build(self) -> crate::input::EmptyOperationInput {
  807    679   
            self.build_enforcing_all_constraints()
  808    680   
        }
  809         -
        fn build_enforcing_all_constraints(self) -> crate::input::HostWithPathOperationInput {
  810         -
            crate::input::HostWithPathOperationInput {}
         681  +
        fn build_enforcing_all_constraints(self) -> crate::input::EmptyOperationInput {
         682  +
            crate::input::EmptyOperationInput {}
  811    683   
        }
  812    684   
    }
  813    685   
}
  814         -
/// See [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput).
  815         -
pub mod endpoint_with_host_label_operation_input {
         686  +
/// See [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput).
         687  +
pub mod kitchen_sink_operation_input {
  816    688   
  817         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  818         -
    /// Holds one variant for each of the ways the builder can fail.
  819         -
    #[non_exhaustive]
  820         -
    #[allow(clippy::enum_variant_names)]
  821         -
    pub enum ConstraintViolation {
  822         -
        /// `label` was not provided but it is required when building `EndpointWithHostLabelOperationInput`.
  823         -
        MissingLabel,
  824         -
    }
  825         -
    impl ::std::fmt::Display for ConstraintViolation {
  826         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  827         -
            match self {
  828         -
                ConstraintViolation::MissingLabel => write!(f, "`label` was not provided but it is required when building `EndpointWithHostLabelOperationInput`"),
  829         -
            }
  830         -
        }
  831         -
    }
  832         -
    impl ::std::error::Error for ConstraintViolation {}
  833         -
    impl ConstraintViolation {
  834         -
        pub(crate) fn as_validation_exception_field(
  835         -
            self,
  836         -
            path: ::std::string::String,
  837         -
        ) -> crate::model::ValidationExceptionField {
  838         -
            match self {
  839         -
                ConstraintViolation::MissingLabel => crate::model::ValidationExceptionField {
  840         -
                    message: format!(
  841         -
                        "Value at '{}/label' failed to satisfy constraint: Member must not be null",
  842         -
                        path
  843         -
                    ),
  844         -
                    path: path + "/label",
  845         -
                },
  846         -
            }
  847         -
        }
  848         -
    }
  849         -
    impl ::std::convert::From<ConstraintViolation>
  850         -
        for ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection
  851         -
    {
  852         -
        fn from(constraint_violation: ConstraintViolation) -> Self {
  853         -
            let first_validation_exception_field =
  854         -
                constraint_violation.as_validation_exception_field("".to_owned());
  855         -
            let validation_exception = crate::error::ValidationException {
  856         -
                message: format!(
  857         -
                    "1 validation error detected. {}",
  858         -
                    &first_validation_exception_field.message
  859         -
                ),
  860         -
                field_list: Some(vec![first_validation_exception_field]),
  861         -
            };
  862         -
            Self::ConstraintViolation(
  863         -
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
  864         -
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
  865         -
                            )
  866         -
        }
  867         -
    }
  868         -
    impl ::std::convert::From<Builder>
  869         -
        for crate::constrained::MaybeConstrained<crate::input::EndpointWithHostLabelOperationInput>
  870         -
    {
         689  +
    impl ::std::convert::From<Builder> for crate::input::KitchenSinkOperationInput {
  871    690   
        fn from(builder: Builder) -> Self {
  872         -
            Self::Unconstrained(builder)
  873         -
        }
  874         -
    }
  875         -
    impl ::std::convert::TryFrom<Builder> for crate::input::EndpointWithHostLabelOperationInput {
  876         -
        type Error = ConstraintViolation;
  877         -
  878         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
  879    691   
            builder.build()
  880    692   
        }
  881    693   
    }
  882         -
    /// A builder for [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput).
         694  +
    /// A builder for [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput).
  883    695   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  884    696   
    pub struct Builder {
  885         -
        pub(crate) label: ::std::option::Option<::std::string::String>,
         697  +
        pub(crate) blob: ::std::option::Option<::aws_smithy_types::Blob>,
         698  +
        pub(crate) boolean: ::std::option::Option<bool>,
         699  +
        pub(crate) double: ::std::option::Option<f64>,
         700  +
        pub(crate) empty_struct: ::std::option::Option<crate::model::EmptyStruct>,
         701  +
        pub(crate) float: ::std::option::Option<f32>,
         702  +
        pub(crate) httpdate_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         703  +
        pub(crate) integer: ::std::option::Option<i32>,
         704  +
        pub(crate) iso8601_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         705  +
        pub(crate) json_value: ::std::option::Option<::std::string::String>,
         706  +
        pub(crate) list_of_lists:
         707  +
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         708  +
        pub(crate) list_of_maps_of_strings: ::std::option::Option<
         709  +
            ::std::vec::Vec<
         710  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         711  +
            >,
         712  +
        >,
         713  +
        pub(crate) list_of_strings: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         714  +
        pub(crate) list_of_structs:
         715  +
            ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
         716  +
        pub(crate) long: ::std::option::Option<i64>,
         717  +
        pub(crate) map_of_lists_of_strings: ::std::option::Option<
         718  +
            ::std::collections::HashMap<
         719  +
                ::std::string::String,
         720  +
                ::std::vec::Vec<::std::string::String>,
         721  +
            >,
         722  +
        >,
         723  +
        pub(crate) map_of_maps: ::std::option::Option<
         724  +
            ::std::collections::HashMap<
         725  +
                ::std::string::String,
         726  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         727  +
            >,
         728  +
        >,
         729  +
        pub(crate) map_of_strings: ::std::option::Option<
         730  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         731  +
        >,
         732  +
        pub(crate) map_of_structs: ::std::option::Option<
         733  +
            ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
         734  +
        >,
         735  +
        pub(crate) recursive_list:
         736  +
            ::std::option::Option<::std::vec::Vec<crate::model::KitchenSink>>,
         737  +
        pub(crate) recursive_map: ::std::option::Option<
         738  +
            ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
         739  +
        >,
         740  +
        pub(crate) recursive_struct:
         741  +
            ::std::option::Option<::std::boxed::Box<crate::model::KitchenSink>>,
         742  +
        pub(crate) simple_struct: ::std::option::Option<crate::model::SimpleStruct>,
         743  +
        pub(crate) string: ::std::option::Option<::std::string::String>,
         744  +
        pub(crate) struct_with_json_name: ::std::option::Option<crate::model::StructWithJsonName>,
         745  +
        pub(crate) timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
         746  +
        pub(crate) unix_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
  886    747   
    }
  887    748   
    impl Builder {
  888    749   
        #[allow(missing_docs)] // documentation missing in model
  889         -
        pub fn label(mut self, input: ::std::string::String) -> Self {
  890         -
            self.label = Some(input);
         750  +
        pub fn blob(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
         751  +
            self.blob = input;
  891    752   
            self
  892    753   
        }
  893    754   
        #[allow(missing_docs)] // documentation missing in model
  894         -
        pub(crate) fn set_label(
         755  +
        pub(crate) fn set_blob(
  895    756   
            mut self,
  896         -
            input: impl ::std::convert::Into<::std::string::String>,
         757  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Blob>>,
  897    758   
        ) -> Self {
  898         -
            self.label = Some(input.into());
         759  +
            self.blob = input.map(|v| v.into());
  899    760   
            self
  900    761   
        }
  901         -
        /// Consumes the builder and constructs a [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput).
  902         -
        ///
  903         -
        /// The builder fails to construct a [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput) if a [`ConstraintViolation`] occurs.
  904         -
        ///
  905         -
        pub fn build(
  906         -
            self,
  907         -
        ) -> Result<crate::input::EndpointWithHostLabelOperationInput, ConstraintViolation>
  908         -
        {
  909         -
            self.build_enforcing_all_constraints()
  910         -
        }
  911         -
        fn build_enforcing_all_constraints(
  912         -
            self,
  913         -
        ) -> Result<crate::input::EndpointWithHostLabelOperationInput, ConstraintViolation>
  914         -
        {
  915         -
            Ok(crate::input::EndpointWithHostLabelOperationInput {
  916         -
                label: self.label.ok_or(ConstraintViolation::MissingLabel)?,
  917         -
            })
  918         -
        }
  919         -
    }
  920         -
}
  921         -
/// See [`EndpointOperationInput`](crate::input::EndpointOperationInput).
  922         -
pub mod endpoint_operation_input {
  923         -
  924         -
    impl ::std::convert::From<Builder> for crate::input::EndpointOperationInput {
  925         -
        fn from(builder: Builder) -> Self {
  926         -
            builder.build()
  927         -
        }
  928         -
    }
  929         -
    /// A builder for [`EndpointOperationInput`](crate::input::EndpointOperationInput).
  930         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  931         -
    pub struct Builder {}
  932         -
    impl Builder {
  933         -
        /// Consumes the builder and constructs a [`EndpointOperationInput`](crate::input::EndpointOperationInput).
  934         -
        pub fn build(self) -> crate::input::EndpointOperationInput {
  935         -
            self.build_enforcing_all_constraints()
  936         -
        }
  937         -
        fn build_enforcing_all_constraints(self) -> crate::input::EndpointOperationInput {
  938         -
            crate::input::EndpointOperationInput {}
  939         -
        }
         762  +
        #[allow(missing_docs)] // documentation missing in model
         763  +
        pub fn boolean(mut self, input: ::std::option::Option<bool>) -> Self {
         764  +
            self.boolean = input;
         765  +
            self
  940    766   
        }
  941         -
}
  942         -
/// See [`JsonUnionsInput`](crate::input::JsonUnionsInput).
  943         -
pub mod json_unions_input {
  944         -
  945         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  946         -
    /// Holds one variant for each of the ways the builder can fail.
  947         -
    #[non_exhaustive]
  948         -
    #[allow(clippy::enum_variant_names)]
  949         -
    pub enum ConstraintViolation {
  950         -
        /// Constraint violation occurred building member `contents` when building `JsonUnionsInput`.
  951         -
        #[doc(hidden)]
  952         -
        Contents(crate::model::my_union::ConstraintViolation),
         767  +
        #[allow(missing_docs)] // documentation missing in model
         768  +
        pub(crate) fn set_boolean(
         769  +
            mut self,
         770  +
            input: Option<impl ::std::convert::Into<bool>>,
         771  +
        ) -> Self {
         772  +
            self.boolean = input.map(|v| v.into());
         773  +
            self
  953    774   
        }
  954         -
    impl ::std::fmt::Display for ConstraintViolation {
  955         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  956         -
            match self {
  957         -
                ConstraintViolation::Contents(_) => write!(f, "constraint violation occurred building member `contents` when building `JsonUnionsInput`"),
         775  +
        #[allow(missing_docs)] // documentation missing in model
         776  +
        pub fn double(mut self, input: ::std::option::Option<f64>) -> Self {
         777  +
            self.double = input;
         778  +
            self
  958    779   
        }
         780  +
        #[allow(missing_docs)] // documentation missing in model
         781  +
        pub(crate) fn set_double(mut self, input: Option<impl ::std::convert::Into<f64>>) -> Self {
         782  +
            self.double = input.map(|v| v.into());
         783  +
            self
  959    784   
        }
         785  +
        #[allow(missing_docs)] // documentation missing in model
         786  +
        pub fn empty_struct(
         787  +
            mut self,
         788  +
            input: ::std::option::Option<crate::model::EmptyStruct>,
         789  +
        ) -> Self {
         790  +
            self.empty_struct = input;
         791  +
            self
  960    792   
        }
  961         -
    impl ::std::error::Error for ConstraintViolation {}
  962         -
    impl ConstraintViolation {
  963         -
        pub(crate) fn as_validation_exception_field(
  964         -
            self,
  965         -
            path: ::std::string::String,
  966         -
        ) -> crate::model::ValidationExceptionField {
  967         -
            match self {
  968         -
                ConstraintViolation::Contents(inner) => {
  969         -
                    inner.as_validation_exception_field(path + "/contents")
         793  +
        #[allow(missing_docs)] // documentation missing in model
         794  +
        pub(crate) fn set_empty_struct(
         795  +
            mut self,
         796  +
            input: Option<impl ::std::convert::Into<crate::model::EmptyStruct>>,
         797  +
        ) -> Self {
         798  +
            self.empty_struct = input.map(|v| v.into());
         799  +
            self
  970    800   
        }
         801  +
        #[allow(missing_docs)] // documentation missing in model
         802  +
        pub fn float(mut self, input: ::std::option::Option<f32>) -> Self {
         803  +
            self.float = input;
         804  +
            self
  971    805   
        }
         806  +
        #[allow(missing_docs)] // documentation missing in model
         807  +
        pub(crate) fn set_float(mut self, input: Option<impl ::std::convert::Into<f32>>) -> Self {
         808  +
            self.float = input.map(|v| v.into());
         809  +
            self
  972    810   
        }
         811  +
        #[allow(missing_docs)] // documentation missing in model
         812  +
        pub fn httpdate_timestamp(
         813  +
            mut self,
         814  +
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
         815  +
        ) -> Self {
         816  +
            self.httpdate_timestamp = input;
         817  +
            self
  973    818   
        }
  974         -
    impl ::std::convert::From<ConstraintViolation>
  975         -
        for ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection
  976         -
    {
  977         -
        fn from(constraint_violation: ConstraintViolation) -> Self {
  978         -
            let first_validation_exception_field =
  979         -
                constraint_violation.as_validation_exception_field("".to_owned());
  980         -
            let validation_exception = crate::error::ValidationException {
  981         -
                message: format!(
  982         -
                    "1 validation error detected. {}",
  983         -
                    &first_validation_exception_field.message
  984         -
                ),
  985         -
                field_list: Some(vec![first_validation_exception_field]),
  986         -
            };
  987         -
            Self::ConstraintViolation(
  988         -
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
  989         -
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
  990         -
                            )
         819  +
        #[allow(missing_docs)] // documentation missing in model
         820  +
        pub(crate) fn set_httpdate_timestamp(
         821  +
            mut self,
         822  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
         823  +
        ) -> Self {
         824  +
            self.httpdate_timestamp = input.map(|v| v.into());
         825  +
            self
  991    826   
        }
         827  +
        #[allow(missing_docs)] // documentation missing in model
         828  +
        pub fn integer(mut self, input: ::std::option::Option<i32>) -> Self {
         829  +
            self.integer = input;
         830  +
            self
  992    831   
        }
  993         -
    impl ::std::convert::From<Builder>
  994         -
        for crate::constrained::MaybeConstrained<crate::input::JsonUnionsInput>
  995         -
    {
  996         -
        fn from(builder: Builder) -> Self {
  997         -
            Self::Unconstrained(builder)
         832  +
        #[allow(missing_docs)] // documentation missing in model
         833  +
        pub(crate) fn set_integer(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
         834  +
            self.integer = input.map(|v| v.into());
         835  +
            self
  998    836   
        }
         837  +
        #[allow(missing_docs)] // documentation missing in model
         838  +
        pub fn iso8601_timestamp(
         839  +
            mut self,
         840  +
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
         841  +
        ) -> Self {
         842  +
            self.iso8601_timestamp = input;
         843  +
            self
  999    844   
        }
 1000         -
    impl ::std::convert::TryFrom<Builder> for crate::input::JsonUnionsInput {
 1001         -
        type Error = ConstraintViolation;
 1002         -
 1003         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 1004         -
            builder.build()
         845  +
        #[allow(missing_docs)] // documentation missing in model
         846  +
        pub(crate) fn set_iso8601_timestamp(
         847  +
            mut self,
         848  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
         849  +
        ) -> Self {
         850  +
            self.iso8601_timestamp = input.map(|v| v.into());
         851  +
            self
 1005    852   
        }
         853  +
        #[allow(missing_docs)] // documentation missing in model
         854  +
        pub fn json_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         855  +
            self.json_value = input;
         856  +
            self
 1006    857   
        }
 1007         -
    /// A builder for [`JsonUnionsInput`](crate::input::JsonUnionsInput).
 1008         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1009         -
    pub struct Builder {
 1010         -
        pub(crate) contents:
 1011         -
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::MyUnion>>,
         858  +
        #[allow(missing_docs)] // documentation missing in model
         859  +
        pub(crate) fn set_json_value(
         860  +
            mut self,
         861  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
         862  +
        ) -> Self {
         863  +
            self.json_value = input.map(|v| v.into());
         864  +
            self
 1012    865   
        }
 1013         -
    impl Builder {
 1014         -
        /// A union with a representative set of types for members.
 1015         -
        pub fn contents(mut self, input: ::std::option::Option<crate::model::MyUnion>) -> Self {
 1016         -
            self.contents = input.map(crate::constrained::MaybeConstrained::Constrained);
         866  +
        #[allow(missing_docs)] // documentation missing in model
         867  +
        pub fn list_of_lists(
         868  +
            mut self,
         869  +
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         870  +
        ) -> Self {
         871  +
            self.list_of_lists = input;
 1017    872   
            self
 1018    873   
        }
 1019         -
        /// A union with a representative set of types for members.
 1020         -
        pub(crate) fn set_contents(
         874  +
        #[allow(missing_docs)] // documentation missing in model
         875  +
        pub(crate) fn set_list_of_lists(
 1021    876   
            mut self,
 1022    877   
            input: Option<
 1023         -
                impl ::std::convert::Into<crate::constrained::MaybeConstrained<crate::model::MyUnion>>,
         878  +
                impl ::std::convert::Into<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 1024    879   
            >,
 1025    880   
        ) -> Self {
 1026         -
            self.contents = input.map(|v| v.into());
         881  +
            self.list_of_lists = input.map(|v| v.into());
 1027    882   
            self
 1028    883   
        }
 1029         -
        /// Consumes the builder and constructs a [`JsonUnionsInput`](crate::input::JsonUnionsInput).
 1030         -
        ///
 1031         -
        /// The builder fails to construct a [`JsonUnionsInput`](crate::input::JsonUnionsInput) if a [`ConstraintViolation`] occurs.
 1032         -
        ///
 1033         -
        pub fn build(self) -> Result<crate::input::JsonUnionsInput, ConstraintViolation> {
 1034         -
            self.build_enforcing_all_constraints()
 1035         -
        }
 1036         -
        fn build_enforcing_all_constraints(
 1037         -
            self,
 1038         -
        ) -> Result<crate::input::JsonUnionsInput, ConstraintViolation> {
 1039         -
            Ok(crate::input::JsonUnionsInput {
 1040         -
                contents: self
 1041         -
                    .contents
 1042         -
                    .map(|v| match v {
 1043         -
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 1044         -
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 1045         -
                    })
 1046         -
                    .map(|res| res.map_err(ConstraintViolation::Contents))
 1047         -
                    .transpose()?,
 1048         -
            })
 1049         -
        }
 1050         -
    }
 1051         -
}
 1052         -
/// See [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
 1053         -
pub mod greeting_with_errors_input {
 1054         -
 1055         -
    impl ::std::convert::From<Builder> for crate::input::GreetingWithErrorsInput {
 1056         -
        fn from(builder: Builder) -> Self {
 1057         -
            builder.build()
         884  +
        #[allow(missing_docs)] // documentation missing in model
         885  +
        pub fn list_of_maps_of_strings(
         886  +
            mut self,
         887  +
            input: ::std::option::Option<
         888  +
                ::std::vec::Vec<
         889  +
                    ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         890  +
                >,
         891  +
            >,
         892  +
        ) -> Self {
         893  +
            self.list_of_maps_of_strings = input;
         894  +
            self
 1058    895   
        }
         896  +
        #[allow(missing_docs)] // documentation missing in model
         897  +
        pub(crate) fn set_list_of_maps_of_strings(
         898  +
            mut self,
         899  +
            input: Option<
         900  +
                impl ::std::convert::Into<
         901  +
                    ::std::vec::Vec<
         902  +
                        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         903  +
                    >,
         904  +
                >,
         905  +
            >,
         906  +
        ) -> Self {
         907  +
            self.list_of_maps_of_strings = input.map(|v| v.into());
         908  +
            self
 1059    909   
        }
 1060         -
    /// A builder for [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
 1061         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1062         -
    pub struct Builder {}
 1063         -
    impl Builder {
 1064         -
        /// Consumes the builder and constructs a [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
 1065         -
        pub fn build(self) -> crate::input::GreetingWithErrorsInput {
 1066         -
            self.build_enforcing_all_constraints()
         910  +
        #[allow(missing_docs)] // documentation missing in model
         911  +
        pub fn list_of_strings(
         912  +
            mut self,
         913  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         914  +
        ) -> Self {
         915  +
            self.list_of_strings = input;
         916  +
            self
 1067    917   
        }
 1068         -
        fn build_enforcing_all_constraints(self) -> crate::input::GreetingWithErrorsInput {
 1069         -
            crate::input::GreetingWithErrorsInput {}
         918  +
        #[allow(missing_docs)] // documentation missing in model
         919  +
        pub(crate) fn set_list_of_strings(
         920  +
            mut self,
         921  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<::std::string::String>>>,
         922  +
        ) -> Self {
         923  +
            self.list_of_strings = input.map(|v| v.into());
         924  +
            self
 1070    925   
        }
         926  +
        #[allow(missing_docs)] // documentation missing in model
         927  +
        pub fn list_of_structs(
         928  +
            mut self,
         929  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
         930  +
        ) -> Self {
         931  +
            self.list_of_structs = input;
         932  +
            self
 1071    933   
        }
 1072         -
}
 1073         -
/// See [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
 1074         -
pub mod sparse_nulls_operation_input {
 1075         -
 1076         -
    impl ::std::convert::From<Builder> for crate::input::SparseNullsOperationInput {
 1077         -
        fn from(builder: Builder) -> Self {
 1078         -
            builder.build()
         934  +
        #[allow(missing_docs)] // documentation missing in model
         935  +
        pub(crate) fn set_list_of_structs(
         936  +
            mut self,
         937  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<crate::model::SimpleStruct>>>,
         938  +
        ) -> Self {
         939  +
            self.list_of_structs = input.map(|v| v.into());
         940  +
            self
 1079    941   
        }
         942  +
        #[allow(missing_docs)] // documentation missing in model
         943  +
        pub fn long(mut self, input: ::std::option::Option<i64>) -> Self {
         944  +
            self.long = input;
         945  +
            self
 1080    946   
        }
 1081         -
    /// A builder for [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
 1082         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1083         -
    pub struct Builder {
 1084         -
        pub(crate) sparse_string_list:
 1085         -
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
 1086         -
        pub(crate) sparse_string_map: ::std::option::Option<
 1087         -
            ::std::collections::HashMap<
 1088         -
                ::std::string::String,
 1089         -
                ::std::option::Option<::std::string::String>,
 1090         -
            >,
 1091         -
        >,
         947  +
        #[allow(missing_docs)] // documentation missing in model
         948  +
        pub(crate) fn set_long(mut self, input: Option<impl ::std::convert::Into<i64>>) -> Self {
         949  +
            self.long = input.map(|v| v.into());
         950  +
            self
 1092    951   
        }
 1093         -
    impl Builder {
 1094    952   
        #[allow(missing_docs)] // documentation missing in model
 1095         -
        pub fn sparse_string_list(
         953  +
        pub fn map_of_lists_of_strings(
 1096    954   
            mut self,
 1097    955   
            input: ::std::option::Option<
 1098         -
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
         956  +
                ::std::collections::HashMap<
         957  +
                    ::std::string::String,
         958  +
                    ::std::vec::Vec<::std::string::String>,
         959  +
                >,
 1099    960   
            >,
 1100    961   
        ) -> Self {
 1101         -
            self.sparse_string_list = input;
         962  +
            self.map_of_lists_of_strings = input;
 1102    963   
            self
 1103    964   
        }
 1104    965   
        #[allow(missing_docs)] // documentation missing in model
 1105         -
        pub(crate) fn set_sparse_string_list(
         966  +
        pub(crate) fn set_map_of_lists_of_strings(
 1106    967   
            mut self,
 1107    968   
            input: Option<
 1108         -
                impl ::std::convert::Into<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
         969  +
                impl ::std::convert::Into<
         970  +
                    ::std::collections::HashMap<
         971  +
                        ::std::string::String,
         972  +
                        ::std::vec::Vec<::std::string::String>,
         973  +
                    >,
         974  +
                >,
 1109    975   
            >,
 1110    976   
        ) -> Self {
 1111         -
            self.sparse_string_list = input.map(|v| v.into());
         977  +
            self.map_of_lists_of_strings = input.map(|v| v.into());
 1112    978   
            self
 1113    979   
        }
 1114    980   
        #[allow(missing_docs)] // documentation missing in model
 1115         -
        pub fn sparse_string_map(
         981  +
        pub fn map_of_maps(
 1116    982   
            mut self,
 1117    983   
            input: ::std::option::Option<
 1118    984   
                ::std::collections::HashMap<
 1119    985   
                    ::std::string::String,
 1120         -
                    ::std::option::Option<::std::string::String>,
         986  +
                    ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1121    987   
                >,
 1122    988   
            >,
 1123    989   
        ) -> Self {
 1124         -
            self.sparse_string_map = input;
         990  +
            self.map_of_maps = input;
 1125    991   
            self
 1126    992   
        }
 1127    993   
        #[allow(missing_docs)] // documentation missing in model
 1128         -
        pub(crate) fn set_sparse_string_map(
         994  +
        pub(crate) fn set_map_of_maps(
 1129    995   
            mut self,
 1130    996   
            input: Option<
 1131    997   
                impl ::std::convert::Into<
 1132    998   
                    ::std::collections::HashMap<
 1133    999   
                        ::std::string::String,
 1134         -
                        ::std::option::Option<::std::string::String>,
        1000  +
                        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1135   1001   
                    >,
 1136   1002   
                >,
 1137   1003   
            >,
 1138   1004   
        ) -> Self {
 1139         -
            self.sparse_string_map = input.map(|v| v.into());
        1005  +
            self.map_of_maps = input.map(|v| v.into());
 1140   1006   
            self
 1141   1007   
        }
 1142         -
        /// Consumes the builder and constructs a [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
 1143         -
        pub fn build(self) -> crate::input::SparseNullsOperationInput {
 1144         -
            self.build_enforcing_all_constraints()
 1145         -
        }
 1146         -
        fn build_enforcing_all_constraints(self) -> crate::input::SparseNullsOperationInput {
 1147         -
            crate::input::SparseNullsOperationInput {
 1148         -
                sparse_string_list: self.sparse_string_list,
 1149         -
                sparse_string_map: self.sparse_string_map,
 1150         -
            }
 1151         -
        }
 1152         -
    }
 1153         -
}
 1154         -
/// See [`NullOperationInput`](crate::input::NullOperationInput).
 1155         -
pub mod null_operation_input {
 1156         -
 1157         -
    impl ::std::convert::From<Builder> for crate::input::NullOperationInput {
 1158         -
        fn from(builder: Builder) -> Self {
 1159         -
            builder.build()
 1160         -
        }
 1161         -
    }
 1162         -
    /// A builder for [`NullOperationInput`](crate::input::NullOperationInput).
 1163         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1164         -
    pub struct Builder {
 1165         -
        pub(crate) string: ::std::option::Option<::std::string::String>,
 1166         -
    }
 1167         -
    impl Builder {
 1168   1008   
        #[allow(missing_docs)] // documentation missing in model
 1169         -
        pub fn string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1170         -
            self.string = input;
        1009  +
        pub fn map_of_strings(
        1010  +
            mut self,
        1011  +
            input: ::std::option::Option<
        1012  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1013  +
            >,
        1014  +
        ) -> Self {
        1015  +
            self.map_of_strings = input;
 1171   1016   
            self
 1172   1017   
        }
 1173   1018   
        #[allow(missing_docs)] // documentation missing in model
 1174         -
        pub(crate) fn set_string(
        1019  +
        pub(crate) fn set_map_of_strings(
 1175   1020   
            mut self,
 1176         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        1021  +
            input: Option<
        1022  +
                impl ::std::convert::Into<
        1023  +
                    ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1024  +
                >,
        1025  +
            >,
 1177   1026   
        ) -> Self {
 1178         -
            self.string = input.map(|v| v.into());
        1027  +
            self.map_of_strings = input.map(|v| v.into());
 1179   1028   
            self
 1180   1029   
        }
 1181         -
        /// Consumes the builder and constructs a [`NullOperationInput`](crate::input::NullOperationInput).
 1182         -
        pub fn build(self) -> crate::input::NullOperationInput {
 1183         -
            self.build_enforcing_all_constraints()
 1184         -
        }
 1185         -
        fn build_enforcing_all_constraints(self) -> crate::input::NullOperationInput {
 1186         -
            crate::input::NullOperationInput {
 1187         -
                string: self.string,
 1188         -
            }
 1189         -
        }
 1190         -
    }
 1191         -
}
 1192         -
/// See [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput).
 1193         -
pub mod json_int_enums_input {
 1194         -
 1195         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1196         -
    /// Holds one variant for each of the ways the builder can fail.
 1197         -
    #[non_exhaustive]
 1198         -
    #[allow(clippy::enum_variant_names)]
 1199         -
    pub enum ConstraintViolation {
 1200         -
        /// Constraint violation occurred building member `int_enum_set` when building `JsonIntEnumsInput`.
 1201         -
        #[doc(hidden)]
 1202         -
        IntEnumSet(crate::model::integer_enum_set::ConstraintViolation),
 1203         -
    }
 1204         -
    impl ::std::fmt::Display for ConstraintViolation {
 1205         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1206         -
            match self {
 1207         -
                ConstraintViolation::IntEnumSet(_) => write!(f, "constraint violation occurred building member `int_enum_set` when building `JsonIntEnumsInput`"),
 1208         -
            }
 1209         -
        }
        1030  +
        #[allow(missing_docs)] // documentation missing in model
        1031  +
        pub fn map_of_structs(
        1032  +
            mut self,
        1033  +
            input: ::std::option::Option<
        1034  +
                ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
        1035  +
            >,
        1036  +
        ) -> Self {
        1037  +
            self.map_of_structs = input;
        1038  +
            self
 1210   1039   
        }
 1211         -
    impl ::std::error::Error for ConstraintViolation {}
 1212         -
    impl ConstraintViolation {
 1213         -
        pub(crate) fn as_validation_exception_field(
 1214         -
            self,
 1215         -
            path: ::std::string::String,
 1216         -
        ) -> crate::model::ValidationExceptionField {
 1217         -
            match self {
 1218         -
                ConstraintViolation::IntEnumSet(inner) => {
 1219         -
                    inner.as_validation_exception_field(path + "/intEnumSet")
        1040  +
        #[allow(missing_docs)] // documentation missing in model
        1041  +
        pub(crate) fn set_map_of_structs(
        1042  +
            mut self,
        1043  +
            input: Option<
        1044  +
                impl ::std::convert::Into<
        1045  +
                    ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
        1046  +
                >,
        1047  +
            >,
        1048  +
        ) -> Self {
        1049  +
            self.map_of_structs = input.map(|v| v.into());
        1050  +
            self
 1220   1051   
        }
        1052  +
        #[allow(missing_docs)] // documentation missing in model
        1053  +
        pub fn recursive_list(
        1054  +
            mut self,
        1055  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::KitchenSink>>,
        1056  +
        ) -> Self {
        1057  +
            self.recursive_list = input;
        1058  +
            self
 1221   1059   
        }
        1060  +
        #[allow(missing_docs)] // documentation missing in model
        1061  +
        pub(crate) fn set_recursive_list(
        1062  +
            mut self,
        1063  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<crate::model::KitchenSink>>>,
        1064  +
        ) -> Self {
        1065  +
            self.recursive_list = input.map(|v| v.into());
        1066  +
            self
 1222   1067   
        }
        1068  +
        #[allow(missing_docs)] // documentation missing in model
        1069  +
        pub fn recursive_map(
        1070  +
            mut self,
        1071  +
            input: ::std::option::Option<
        1072  +
                ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
        1073  +
            >,
        1074  +
        ) -> Self {
        1075  +
            self.recursive_map = input;
        1076  +
            self
 1223   1077   
        }
 1224         -
    impl ::std::convert::From<ConstraintViolation>
 1225         -
        for ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection
 1226         -
    {
 1227         -
        fn from(constraint_violation: ConstraintViolation) -> Self {
 1228         -
            let first_validation_exception_field =
 1229         -
                constraint_violation.as_validation_exception_field("".to_owned());
 1230         -
            let validation_exception = crate::error::ValidationException {
 1231         -
                message: format!(
 1232         -
                    "1 validation error detected. {}",
 1233         -
                    &first_validation_exception_field.message
 1234         -
                ),
 1235         -
                field_list: Some(vec![first_validation_exception_field]),
 1236         -
            };
 1237         -
            Self::ConstraintViolation(
 1238         -
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
 1239         -
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
 1240         -
                            )
        1078  +
        #[allow(missing_docs)] // documentation missing in model
        1079  +
        pub(crate) fn set_recursive_map(
        1080  +
            mut self,
        1081  +
            input: Option<
        1082  +
                impl ::std::convert::Into<
        1083  +
                    ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
        1084  +
                >,
        1085  +
            >,
        1086  +
        ) -> Self {
        1087  +
            self.recursive_map = input.map(|v| v.into());
        1088  +
            self
 1241   1089   
        }
        1090  +
        #[allow(missing_docs)] // documentation missing in model
        1091  +
        pub fn recursive_struct(
        1092  +
            mut self,
        1093  +
            input: ::std::option::Option<::std::boxed::Box<crate::model::KitchenSink>>,
        1094  +
        ) -> Self {
        1095  +
            self.recursive_struct = input;
        1096  +
            self
 1242   1097   
        }
 1243         -
    impl ::std::convert::From<Builder>
 1244         -
        for crate::constrained::MaybeConstrained<crate::input::JsonIntEnumsInput>
 1245         -
    {
 1246         -
        fn from(builder: Builder) -> Self {
 1247         -
            Self::Unconstrained(builder)
        1098  +
        #[allow(missing_docs)] // documentation missing in model
        1099  +
        pub(crate) fn set_recursive_struct(
        1100  +
            mut self,
        1101  +
            input: Option<impl ::std::convert::Into<::std::boxed::Box<crate::model::KitchenSink>>>,
        1102  +
        ) -> Self {
        1103  +
            self.recursive_struct = input.map(|v| v.into());
        1104  +
            self
 1248   1105   
        }
        1106  +
        #[allow(missing_docs)] // documentation missing in model
        1107  +
        pub fn simple_struct(
        1108  +
            mut self,
        1109  +
            input: ::std::option::Option<crate::model::SimpleStruct>,
        1110  +
        ) -> Self {
        1111  +
            self.simple_struct = input;
        1112  +
            self
 1249   1113   
        }
 1250         -
    impl ::std::convert::TryFrom<Builder> for crate::input::JsonIntEnumsInput {
 1251         -
        type Error = ConstraintViolation;
 1252         -
 1253         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 1254         -
            builder.build()
        1114  +
        #[allow(missing_docs)] // documentation missing in model
        1115  +
        pub(crate) fn set_simple_struct(
        1116  +
            mut self,
        1117  +
            input: Option<impl ::std::convert::Into<crate::model::SimpleStruct>>,
        1118  +
        ) -> Self {
        1119  +
            self.simple_struct = input.map(|v| v.into());
        1120  +
            self
 1255   1121   
        }
        1122  +
        #[allow(missing_docs)] // documentation missing in model
        1123  +
        pub fn string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1124  +
            self.string = input;
        1125  +
            self
 1256   1126   
        }
 1257         -
    /// A builder for [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput).
 1258         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1259         -
    pub struct Builder {
 1260         -
        pub(crate) int_enum1: ::std::option::Option<i32>,
 1261         -
        pub(crate) int_enum2: ::std::option::Option<i32>,
 1262         -
        pub(crate) int_enum3: ::std::option::Option<i32>,
 1263         -
        pub(crate) int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
 1264         -
        pub(crate) int_enum_set: ::std::option::Option<
 1265         -
            crate::constrained::MaybeConstrained<crate::model::IntegerEnumSet>,
 1266         -
        >,
 1267         -
        pub(crate) int_enum_map:
 1268         -
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
        1127  +
        #[allow(missing_docs)] // documentation missing in model
        1128  +
        pub(crate) fn set_string(
        1129  +
            mut self,
        1130  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        1131  +
        ) -> Self {
        1132  +
            self.string = input.map(|v| v.into());
        1133  +
            self
 1269   1134   
        }
 1270         -
    impl Builder {
 1271   1135   
        #[allow(missing_docs)] // documentation missing in model
 1272         -
        pub fn int_enum1(mut self, input: ::std::option::Option<i32>) -> Self {
 1273         -
            self.int_enum1 = input;
        1136  +
        pub fn struct_with_json_name(
        1137  +
            mut self,
        1138  +
            input: ::std::option::Option<crate::model::StructWithJsonName>,
        1139  +
        ) -> Self {
        1140  +
            self.struct_with_json_name = input;
 1274   1141   
            self
 1275   1142   
        }
 1276   1143   
        #[allow(missing_docs)] // documentation missing in model
 1277         -
        pub(crate) fn set_int_enum1(
        1144  +
        pub(crate) fn set_struct_with_json_name(
 1278   1145   
            mut self,
 1279         -
            input: Option<impl ::std::convert::Into<i32>>,
        1146  +
            input: Option<impl ::std::convert::Into<crate::model::StructWithJsonName>>,
 1280   1147   
        ) -> Self {
 1281         -
            self.int_enum1 = input.map(|v| v.into());
        1148  +
            self.struct_with_json_name = input.map(|v| v.into());
 1282   1149   
            self
 1283   1150   
        }
 1284   1151   
        #[allow(missing_docs)] // documentation missing in model
 1285         -
        pub fn int_enum2(mut self, input: ::std::option::Option<i32>) -> Self {
 1286         -
            self.int_enum2 = input;
        1152  +
        pub fn timestamp(
        1153  +
            mut self,
        1154  +
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
        1155  +
        ) -> Self {
        1156  +
            self.timestamp = input;
 1287   1157   
            self
 1288   1158   
        }
 1289   1159   
        #[allow(missing_docs)] // documentation missing in model
 1290         -
        pub(crate) fn set_int_enum2(
        1160  +
        pub(crate) fn set_timestamp(
 1291   1161   
            mut self,
 1292         -
            input: Option<impl ::std::convert::Into<i32>>,
        1162  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
 1293   1163   
        ) -> Self {
 1294         -
            self.int_enum2 = input.map(|v| v.into());
        1164  +
            self.timestamp = input.map(|v| v.into());
 1295   1165   
            self
 1296   1166   
        }
 1297   1167   
        #[allow(missing_docs)] // documentation missing in model
 1298         -
        pub fn int_enum3(mut self, input: ::std::option::Option<i32>) -> Self {
 1299         -
            self.int_enum3 = input;
        1168  +
        pub fn unix_timestamp(
        1169  +
            mut self,
        1170  +
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
        1171  +
        ) -> Self {
        1172  +
            self.unix_timestamp = input;
 1300   1173   
            self
 1301   1174   
        }
 1302   1175   
        #[allow(missing_docs)] // documentation missing in model
 1303         -
        pub(crate) fn set_int_enum3(
        1176  +
        pub(crate) fn set_unix_timestamp(
 1304   1177   
            mut self,
 1305         -
            input: Option<impl ::std::convert::Into<i32>>,
        1178  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
 1306   1179   
        ) -> Self {
 1307         -
            self.int_enum3 = input.map(|v| v.into());
        1180  +
            self.unix_timestamp = input.map(|v| v.into());
 1308   1181   
            self
 1309   1182   
        }
        1183  +
        /// Consumes the builder and constructs a [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput).
        1184  +
        pub fn build(self) -> crate::input::KitchenSinkOperationInput {
        1185  +
            self.build_enforcing_all_constraints()
        1186  +
        }
        1187  +
        fn build_enforcing_all_constraints(self) -> crate::input::KitchenSinkOperationInput {
        1188  +
            crate::input::KitchenSinkOperationInput {
        1189  +
                blob: self.blob,
        1190  +
                boolean: self.boolean,
        1191  +
                double: self.double,
        1192  +
                empty_struct: self.empty_struct,
        1193  +
                float: self.float,
        1194  +
                httpdate_timestamp: self.httpdate_timestamp,
        1195  +
                integer: self.integer,
        1196  +
                iso8601_timestamp: self.iso8601_timestamp,
        1197  +
                json_value: self.json_value,
        1198  +
                list_of_lists: self.list_of_lists,
        1199  +
                list_of_maps_of_strings: self.list_of_maps_of_strings,
        1200  +
                list_of_strings: self.list_of_strings,
        1201  +
                list_of_structs: self.list_of_structs,
        1202  +
                long: self.long,
        1203  +
                map_of_lists_of_strings: self.map_of_lists_of_strings,
        1204  +
                map_of_maps: self.map_of_maps,
        1205  +
                map_of_strings: self.map_of_strings,
        1206  +
                map_of_structs: self.map_of_structs,
        1207  +
                recursive_list: self.recursive_list,
        1208  +
                recursive_map: self.recursive_map,
        1209  +
                recursive_struct: self.recursive_struct,
        1210  +
                simple_struct: self.simple_struct,
        1211  +
                string: self.string,
        1212  +
                struct_with_json_name: self.struct_with_json_name,
        1213  +
                timestamp: self.timestamp,
        1214  +
                unix_timestamp: self.unix_timestamp,
        1215  +
            }
        1216  +
        }
        1217  +
    }
        1218  +
}
        1219  +
/// See [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
        1220  +
pub mod simple_scalar_properties_input {
        1221  +
        1222  +
    impl ::std::convert::From<Builder> for crate::input::SimpleScalarPropertiesInput {
        1223  +
        fn from(builder: Builder) -> Self {
        1224  +
            builder.build()
        1225  +
        }
        1226  +
    }
        1227  +
    /// A builder for [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
        1228  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1229  +
    pub struct Builder {
        1230  +
        pub(crate) float_value: ::std::option::Option<f32>,
        1231  +
        pub(crate) double_value: ::std::option::Option<f64>,
        1232  +
    }
        1233  +
    impl Builder {
 1310   1234   
        #[allow(missing_docs)] // documentation missing in model
 1311         -
        pub fn int_enum_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
 1312         -
            self.int_enum_list = input;
        1235  +
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
        1236  +
            self.float_value = input;
 1313   1237   
            self
 1314   1238   
        }
 1315   1239   
        #[allow(missing_docs)] // documentation missing in model
 1316         -
        pub(crate) fn set_int_enum_list(
        1240  +
        pub(crate) fn set_float_value(
 1317   1241   
            mut self,
 1318         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<i32>>>,
        1242  +
            input: Option<impl ::std::convert::Into<f32>>,
 1319   1243   
        ) -> Self {
 1320         -
            self.int_enum_list = input.map(|v| v.into());
        1244  +
            self.float_value = input.map(|v| v.into());
 1321   1245   
            self
 1322   1246   
        }
 1323   1247   
        #[allow(missing_docs)] // documentation missing in model
 1324         -
        pub fn int_enum_set(
        1248  +
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
        1249  +
            self.double_value = input;
        1250  +
            self
        1251  +
        }
        1252  +
        #[allow(missing_docs)] // documentation missing in model
        1253  +
        pub(crate) fn set_double_value(
 1325   1254   
            mut self,
 1326         -
            input: ::std::option::Option<crate::model::IntegerEnumSet>,
        1255  +
            input: Option<impl ::std::convert::Into<f64>>,
 1327   1256   
        ) -> Self {
 1328         -
            self.int_enum_set = input.map(crate::constrained::MaybeConstrained::Constrained);
        1257  +
            self.double_value = input.map(|v| v.into());
        1258  +
            self
        1259  +
        }
        1260  +
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
        1261  +
        pub fn build(self) -> crate::input::SimpleScalarPropertiesInput {
        1262  +
            self.build_enforcing_all_constraints()
        1263  +
        }
        1264  +
        fn build_enforcing_all_constraints(self) -> crate::input::SimpleScalarPropertiesInput {
        1265  +
            crate::input::SimpleScalarPropertiesInput {
        1266  +
                float_value: self.float_value,
        1267  +
                double_value: self.double_value,
        1268  +
            }
        1269  +
        }
        1270  +
    }
        1271  +
}
        1272  +
/// See [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput).
        1273  +
pub mod operation_with_optional_input_output_input {
        1274  +
        1275  +
    impl ::std::convert::From<Builder> for crate::input::OperationWithOptionalInputOutputInput {
        1276  +
        fn from(builder: Builder) -> Self {
        1277  +
            builder.build()
        1278  +
        }
        1279  +
    }
        1280  +
    /// A builder for [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput).
        1281  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1282  +
    pub struct Builder {
        1283  +
        pub(crate) value: ::std::option::Option<::std::string::String>,
        1284  +
    }
        1285  +
    impl Builder {
        1286  +
        #[allow(missing_docs)] // documentation missing in model
        1287  +
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1288  +
            self.value = input;
 1329   1289   
            self
 1330   1290   
        }
 1331   1291   
        #[allow(missing_docs)] // documentation missing in model
 1332         -
        pub(crate) fn set_int_enum_set(
        1292  +
        pub(crate) fn set_value(
 1333   1293   
            mut self,
 1334         -
            input: Option<
 1335         -
                impl ::std::convert::Into<
 1336         -
                    crate::constrained::MaybeConstrained<crate::model::IntegerEnumSet>,
 1337         -
                >,
 1338         -
            >,
        1294  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 1339   1295   
        ) -> Self {
 1340         -
            self.int_enum_set = input.map(|v| v.into());
        1296  +
            self.value = input.map(|v| v.into());
 1341   1297   
            self
 1342   1298   
        }
        1299  +
        /// Consumes the builder and constructs a [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput).
        1300  +
        pub fn build(self) -> crate::input::OperationWithOptionalInputOutputInput {
        1301  +
            self.build_enforcing_all_constraints()
        1302  +
        }
        1303  +
        fn build_enforcing_all_constraints(
        1304  +
            self,
        1305  +
        ) -> crate::input::OperationWithOptionalInputOutputInput {
        1306  +
            crate::input::OperationWithOptionalInputOutputInput { value: self.value }
        1307  +
        }
        1308  +
    }
        1309  +
}
        1310  +
/// See [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput).
        1311  +
pub mod put_and_get_inline_documents_input {
        1312  +
        1313  +
    impl ::std::convert::From<Builder> for crate::input::PutAndGetInlineDocumentsInput {
        1314  +
        fn from(builder: Builder) -> Self {
        1315  +
            builder.build()
        1316  +
        }
        1317  +
    }
        1318  +
    /// A builder for [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput).
        1319  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1320  +
    pub struct Builder {
        1321  +
        pub(crate) inline_document: ::std::option::Option<::aws_smithy_types::Document>,
        1322  +
    }
        1323  +
    impl Builder {
 1343   1324   
        #[allow(missing_docs)] // documentation missing in model
 1344         -
        pub fn int_enum_map(
        1325  +
        pub fn inline_document(
 1345   1326   
            mut self,
 1346         -
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
        1327  +
            input: ::std::option::Option<::aws_smithy_types::Document>,
 1347   1328   
        ) -> Self {
 1348         -
            self.int_enum_map = input;
        1329  +
            self.inline_document = input;
 1349   1330   
            self
 1350   1331   
        }
 1351   1332   
        #[allow(missing_docs)] // documentation missing in model
 1352         -
        pub(crate) fn set_int_enum_map(
        1333  +
        pub(crate) fn set_inline_document(
 1353   1334   
            mut self,
 1354         -
            input: Option<
 1355         -
                impl ::std::convert::Into<::std::collections::HashMap<::std::string::String, i32>>,
 1356         -
            >,
        1335  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Document>>,
 1357   1336   
        ) -> Self {
 1358         -
            self.int_enum_map = input.map(|v| v.into());
        1337  +
            self.inline_document = input.map(|v| v.into());
 1359   1338   
            self
 1360   1339   
        }
 1361         -
        /// Consumes the builder and constructs a [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput).
 1362         -
        ///
 1363         -
        /// The builder fails to construct a [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput) if a [`ConstraintViolation`] occurs.
 1364         -
        ///
 1365         -
        pub fn build(self) -> Result<crate::input::JsonIntEnumsInput, ConstraintViolation> {
        1340  +
        /// Consumes the builder and constructs a [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput).
        1341  +
        pub fn build(self) -> crate::input::PutAndGetInlineDocumentsInput {
 1366   1342   
            self.build_enforcing_all_constraints()
 1367   1343   
        }
 1368         -
        fn build_enforcing_all_constraints(
 1369         -
            self,
 1370         -
        ) -> Result<crate::input::JsonIntEnumsInput, ConstraintViolation> {
 1371         -
            Ok(crate::input::JsonIntEnumsInput {
 1372         -
                int_enum1: self.int_enum1,
 1373         -
                int_enum2: self.int_enum2,
 1374         -
                int_enum3: self.int_enum3,
 1375         -
                int_enum_list: self.int_enum_list,
 1376         -
                int_enum_set: self
 1377         -
                    .int_enum_set
 1378         -
                    .map(|v| match v {
 1379         -
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 1380         -
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 1381         -
                    })
 1382         -
                    .map(|res| res.map_err(ConstraintViolation::IntEnumSet))
 1383         -
                    .transpose()?,
 1384         -
                int_enum_map: self.int_enum_map,
 1385         -
            })
        1344  +
        fn build_enforcing_all_constraints(self) -> crate::input::PutAndGetInlineDocumentsInput {
        1345  +
            crate::input::PutAndGetInlineDocumentsInput {
        1346  +
                inline_document: self.inline_document,
        1347  +
            }
 1386   1348   
        }
 1387   1349   
    }
 1388   1350   
}
 1389   1351   
/// See [`JsonEnumsInput`](crate::input::JsonEnumsInput).
 1390   1352   
pub mod json_enums_input {
 1391   1353   
 1392   1354   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1393   1355   
    /// Holds one variant for each of the ways the builder can fail.
 1394   1356   
    #[non_exhaustive]
 1395   1357   
    #[allow(clippy::enum_variant_names)]
@@ -1661,1623 +2380,2380 @@
 1681   1643   
                    .foo_enum_map
 1682   1644   
                    .map(|v| match v {
 1683   1645   
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 1684   1646   
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 1685   1647   
                    })
 1686   1648   
                    .map(|res| {
 1687   1649   
                        res.map(|v| v.into())
 1688   1650   
                            .map_err(ConstraintViolation::FooEnumMap)
 1689   1651   
                    })
 1690   1652   
                    .transpose()?,
 1691         -
            })
 1692         -
        }
 1693         -
    }
 1694         -
}
 1695         -
/// See [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput).
 1696         -
pub mod put_and_get_inline_documents_input {
 1697         -
 1698         -
    impl ::std::convert::From<Builder> for crate::input::PutAndGetInlineDocumentsInput {
 1699         -
        fn from(builder: Builder) -> Self {
 1700         -
            builder.build()
 1701         -
        }
 1702         -
    }
 1703         -
    /// A builder for [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput).
 1704         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1705         -
    pub struct Builder {
 1706         -
        pub(crate) inline_document: ::std::option::Option<::aws_smithy_types::Document>,
 1707         -
    }
 1708         -
    impl Builder {
 1709         -
        #[allow(missing_docs)] // documentation missing in model
 1710         -
        pub fn inline_document(
 1711         -
            mut self,
 1712         -
            input: ::std::option::Option<::aws_smithy_types::Document>,
 1713         -
        ) -> Self {
 1714         -
            self.inline_document = input;
 1715         -
            self
 1716         -
        }
 1717         -
        #[allow(missing_docs)] // documentation missing in model
 1718         -
        pub(crate) fn set_inline_document(
 1719         -
            mut self,
 1720         -
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Document>>,
 1721         -
        ) -> Self {
 1722         -
            self.inline_document = input.map(|v| v.into());
 1723         -
            self
 1724         -
        }
 1725         -
        /// Consumes the builder and constructs a [`PutAndGetInlineDocumentsInput`](crate::input::PutAndGetInlineDocumentsInput).
 1726         -
        pub fn build(self) -> crate::input::PutAndGetInlineDocumentsInput {
 1727         -
            self.build_enforcing_all_constraints()
 1728         -
        }
 1729         -
        fn build_enforcing_all_constraints(self) -> crate::input::PutAndGetInlineDocumentsInput {
 1730         -
            crate::input::PutAndGetInlineDocumentsInput {
 1731         -
                inline_document: self.inline_document,
 1732         -
            }
        1653  +
            })
 1733   1654   
        }
 1734   1655   
    }
 1735   1656   
}
 1736         -
/// See [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput).
 1737         -
pub mod operation_with_optional_input_output_input {
        1657  +
/// See [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput).
        1658  +
pub mod json_int_enums_input {
 1738   1659   
 1739         -
    impl ::std::convert::From<Builder> for crate::input::OperationWithOptionalInputOutputInput {
 1740         -
        fn from(builder: Builder) -> Self {
 1741         -
            builder.build()
 1742         -
        }
 1743         -
    }
 1744         -
    /// A builder for [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput).
 1745         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1746         -
    pub struct Builder {
 1747         -
        pub(crate) value: ::std::option::Option<::std::string::String>,
        1660  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        1661  +
    /// Holds one variant for each of the ways the builder can fail.
        1662  +
    #[non_exhaustive]
        1663  +
    #[allow(clippy::enum_variant_names)]
        1664  +
    pub enum ConstraintViolation {
        1665  +
        /// Constraint violation occurred building member `int_enum_set` when building `JsonIntEnumsInput`.
        1666  +
        #[doc(hidden)]
        1667  +
        IntEnumSet(crate::model::integer_enum_set::ConstraintViolation),
 1748   1668   
    }
 1749         -
    impl Builder {
 1750         -
        #[allow(missing_docs)] // documentation missing in model
 1751         -
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1752         -
            self.value = input;
 1753         -
            self
        1669  +
    impl ::std::fmt::Display for ConstraintViolation {
        1670  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        1671  +
            match self {
        1672  +
                ConstraintViolation::IntEnumSet(_) => write!(f, "constraint violation occurred building member `int_enum_set` when building `JsonIntEnumsInput`"),
 1754   1673   
            }
 1755         -
        #[allow(missing_docs)] // documentation missing in model
 1756         -
        pub(crate) fn set_value(
 1757         -
            mut self,
 1758         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 1759         -
        ) -> Self {
 1760         -
            self.value = input.map(|v| v.into());
 1761         -
            self
 1762   1674   
        }
 1763         -
        /// Consumes the builder and constructs a [`OperationWithOptionalInputOutputInput`](crate::input::OperationWithOptionalInputOutputInput).
 1764         -
        pub fn build(self) -> crate::input::OperationWithOptionalInputOutputInput {
 1765         -
            self.build_enforcing_all_constraints()
 1766   1675   
    }
 1767         -
        fn build_enforcing_all_constraints(
        1676  +
    impl ::std::error::Error for ConstraintViolation {}
        1677  +
    impl ConstraintViolation {
        1678  +
        pub(crate) fn as_validation_exception_field(
 1768   1679   
            self,
 1769         -
        ) -> crate::input::OperationWithOptionalInputOutputInput {
 1770         -
            crate::input::OperationWithOptionalInputOutputInput { value: self.value }
 1771         -
        }
 1772         -
    }
 1773         -
}
 1774         -
/// See [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
 1775         -
pub mod simple_scalar_properties_input {
 1776         -
 1777         -
    impl ::std::convert::From<Builder> for crate::input::SimpleScalarPropertiesInput {
 1778         -
        fn from(builder: Builder) -> Self {
 1779         -
            builder.build()
 1780         -
        }
 1781         -
    }
 1782         -
    /// A builder for [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
 1783         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1784         -
    pub struct Builder {
 1785         -
        pub(crate) float_value: ::std::option::Option<f32>,
 1786         -
        pub(crate) double_value: ::std::option::Option<f64>,
 1787         -
    }
 1788         -
    impl Builder {
 1789         -
        #[allow(missing_docs)] // documentation missing in model
 1790         -
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
 1791         -
            self.float_value = input;
 1792         -
            self
        1680  +
            path: ::std::string::String,
        1681  +
        ) -> crate::model::ValidationExceptionField {
        1682  +
            match self {
        1683  +
                ConstraintViolation::IntEnumSet(inner) => {
        1684  +
                    inner.as_validation_exception_field(path + "/intEnumSet")
 1793   1685   
                }
 1794         -
        #[allow(missing_docs)] // documentation missing in model
 1795         -
        pub(crate) fn set_float_value(
 1796         -
            mut self,
 1797         -
            input: Option<impl ::std::convert::Into<f32>>,
 1798         -
        ) -> Self {
 1799         -
            self.float_value = input.map(|v| v.into());
 1800         -
            self
 1801   1686   
            }
 1802         -
        #[allow(missing_docs)] // documentation missing in model
 1803         -
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
 1804         -
            self.double_value = input;
 1805         -
            self
 1806   1687   
        }
 1807         -
        #[allow(missing_docs)] // documentation missing in model
 1808         -
        pub(crate) fn set_double_value(
 1809         -
            mut self,
 1810         -
            input: Option<impl ::std::convert::Into<f64>>,
 1811         -
        ) -> Self {
 1812         -
            self.double_value = input.map(|v| v.into());
 1813         -
            self
 1814   1688   
    }
 1815         -
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
 1816         -
        pub fn build(self) -> crate::input::SimpleScalarPropertiesInput {
 1817         -
            self.build_enforcing_all_constraints()
        1689  +
    impl ::std::convert::From<ConstraintViolation>
        1690  +
        for ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection
        1691  +
    {
        1692  +
        fn from(constraint_violation: ConstraintViolation) -> Self {
        1693  +
            let first_validation_exception_field =
        1694  +
                constraint_violation.as_validation_exception_field("".to_owned());
        1695  +
            let validation_exception = crate::error::ValidationException {
        1696  +
                message: format!(
        1697  +
                    "1 validation error detected. {}",
        1698  +
                    &first_validation_exception_field.message
        1699  +
                ),
        1700  +
                field_list: Some(vec![first_validation_exception_field]),
        1701  +
            };
        1702  +
            Self::ConstraintViolation(
        1703  +
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
        1704  +
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
        1705  +
                            )
 1818   1706   
        }
 1819         -
        fn build_enforcing_all_constraints(self) -> crate::input::SimpleScalarPropertiesInput {
 1820         -
            crate::input::SimpleScalarPropertiesInput {
 1821         -
                float_value: self.float_value,
 1822         -
                double_value: self.double_value,
 1823   1707   
    }
        1708  +
    impl ::std::convert::From<Builder>
        1709  +
        for crate::constrained::MaybeConstrained<crate::input::JsonIntEnumsInput>
        1710  +
    {
        1711  +
        fn from(builder: Builder) -> Self {
        1712  +
            Self::Unconstrained(builder)
 1824   1713   
        }
 1825   1714   
    }
 1826         -
}
 1827         -
/// See [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput).
 1828         -
pub mod kitchen_sink_operation_input {
        1715  +
    impl ::std::convert::TryFrom<Builder> for crate::input::JsonIntEnumsInput {
        1716  +
        type Error = ConstraintViolation;
 1829   1717   
 1830         -
    impl ::std::convert::From<Builder> for crate::input::KitchenSinkOperationInput {
 1831         -
        fn from(builder: Builder) -> Self {
        1718  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 1832   1719   
            builder.build()
 1833   1720   
        }
 1834   1721   
    }
 1835         -
    /// A builder for [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput).
        1722  +
    /// A builder for [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput).
 1836   1723   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1837   1724   
    pub struct Builder {
 1838         -
        pub(crate) blob: ::std::option::Option<::aws_smithy_types::Blob>,
 1839         -
        pub(crate) boolean: ::std::option::Option<bool>,
 1840         -
        pub(crate) double: ::std::option::Option<f64>,
 1841         -
        pub(crate) empty_struct: ::std::option::Option<crate::model::EmptyStruct>,
 1842         -
        pub(crate) float: ::std::option::Option<f32>,
 1843         -
        pub(crate) httpdate_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
 1844         -
        pub(crate) integer: ::std::option::Option<i32>,
 1845         -
        pub(crate) iso8601_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
 1846         -
        pub(crate) json_value: ::std::option::Option<::std::string::String>,
 1847         -
        pub(crate) list_of_lists:
 1848         -
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 1849         -
        pub(crate) list_of_maps_of_strings: ::std::option::Option<
 1850         -
            ::std::vec::Vec<
 1851         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1852         -
            >,
 1853         -
        >,
 1854         -
        pub(crate) list_of_strings: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1855         -
        pub(crate) list_of_structs:
 1856         -
            ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
 1857         -
        pub(crate) long: ::std::option::Option<i64>,
 1858         -
        pub(crate) map_of_lists_of_strings: ::std::option::Option<
 1859         -
            ::std::collections::HashMap<
 1860         -
                ::std::string::String,
 1861         -
                ::std::vec::Vec<::std::string::String>,
 1862         -
            >,
 1863         -
        >,
 1864         -
        pub(crate) map_of_maps: ::std::option::Option<
 1865         -
            ::std::collections::HashMap<
 1866         -
                ::std::string::String,
 1867         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1868         -
            >,
 1869         -
        >,
 1870         -
        pub(crate) map_of_strings: ::std::option::Option<
 1871         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1872         -
        >,
 1873         -
        pub(crate) map_of_structs: ::std::option::Option<
 1874         -
            ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
 1875         -
        >,
 1876         -
        pub(crate) recursive_list:
 1877         -
            ::std::option::Option<::std::vec::Vec<crate::model::KitchenSink>>,
 1878         -
        pub(crate) recursive_map: ::std::option::Option<
 1879         -
            ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
        1725  +
        pub(crate) int_enum1: ::std::option::Option<i32>,
        1726  +
        pub(crate) int_enum2: ::std::option::Option<i32>,
        1727  +
        pub(crate) int_enum3: ::std::option::Option<i32>,
        1728  +
        pub(crate) int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
        1729  +
        pub(crate) int_enum_set: ::std::option::Option<
        1730  +
            crate::constrained::MaybeConstrained<crate::model::IntegerEnumSet>,
 1880   1731   
        >,
 1881         -
        pub(crate) recursive_struct:
 1882         -
            ::std::option::Option<::std::boxed::Box<crate::model::KitchenSink>>,
 1883         -
        pub(crate) simple_struct: ::std::option::Option<crate::model::SimpleStruct>,
 1884         -
        pub(crate) string: ::std::option::Option<::std::string::String>,
 1885         -
        pub(crate) struct_with_json_name: ::std::option::Option<crate::model::StructWithJsonName>,
 1886         -
        pub(crate) timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
 1887         -
        pub(crate) unix_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
        1732  +
        pub(crate) int_enum_map:
        1733  +
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
 1888   1734   
    }
 1889   1735   
    impl Builder {
 1890   1736   
        #[allow(missing_docs)] // documentation missing in model
 1891         -
        pub fn blob(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
 1892         -
            self.blob = input;
        1737  +
        pub fn int_enum1(mut self, input: ::std::option::Option<i32>) -> Self {
        1738  +
            self.int_enum1 = input;
 1893   1739   
            self
 1894   1740   
        }
 1895   1741   
        #[allow(missing_docs)] // documentation missing in model
 1896         -
        pub(crate) fn set_blob(
        1742  +
        pub(crate) fn set_int_enum1(
 1897   1743   
            mut self,
 1898         -
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Blob>>,
        1744  +
            input: Option<impl ::std::convert::Into<i32>>,
 1899   1745   
        ) -> Self {
 1900         -
            self.blob = input.map(|v| v.into());
        1746  +
            self.int_enum1 = input.map(|v| v.into());
 1901   1747   
            self
 1902   1748   
        }
 1903   1749   
        #[allow(missing_docs)] // documentation missing in model
 1904         -
        pub fn boolean(mut self, input: ::std::option::Option<bool>) -> Self {
 1905         -
            self.boolean = input;
        1750  +
        pub fn int_enum2(mut self, input: ::std::option::Option<i32>) -> Self {
        1751  +
            self.int_enum2 = input;
 1906   1752   
            self
 1907   1753   
        }
 1908   1754   
        #[allow(missing_docs)] // documentation missing in model
 1909         -
        pub(crate) fn set_boolean(
        1755  +
        pub(crate) fn set_int_enum2(
 1910   1756   
            mut self,
 1911         -
            input: Option<impl ::std::convert::Into<bool>>,
        1757  +
            input: Option<impl ::std::convert::Into<i32>>,
 1912   1758   
        ) -> Self {
 1913         -
            self.boolean = input.map(|v| v.into());
 1914         -
            self
 1915         -
        }
 1916         -
        #[allow(missing_docs)] // documentation missing in model
 1917         -
        pub fn double(mut self, input: ::std::option::Option<f64>) -> Self {
 1918         -
            self.double = input;
 1919         -
            self
 1920         -
        }
 1921         -
        #[allow(missing_docs)] // documentation missing in model
 1922         -
        pub(crate) fn set_double(mut self, input: Option<impl ::std::convert::Into<f64>>) -> Self {
 1923         -
            self.double = input.map(|v| v.into());
        1759  +
            self.int_enum2 = input.map(|v| v.into());
 1924   1760   
            self
 1925   1761   
        }
 1926   1762   
        #[allow(missing_docs)] // documentation missing in model
 1927         -
        pub fn empty_struct(
 1928         -
            mut self,
 1929         -
            input: ::std::option::Option<crate::model::EmptyStruct>,
 1930         -
        ) -> Self {
 1931         -
            self.empty_struct = input;
        1763  +
        pub fn int_enum3(mut self, input: ::std::option::Option<i32>) -> Self {
        1764  +
            self.int_enum3 = input;
 1932   1765   
            self
 1933   1766   
        }
 1934   1767   
        #[allow(missing_docs)] // documentation missing in model
 1935         -
        pub(crate) fn set_empty_struct(
        1768  +
        pub(crate) fn set_int_enum3(
 1936   1769   
            mut self,
 1937         -
            input: Option<impl ::std::convert::Into<crate::model::EmptyStruct>>,
        1770  +
            input: Option<impl ::std::convert::Into<i32>>,
 1938   1771   
        ) -> Self {
 1939         -
            self.empty_struct = input.map(|v| v.into());
 1940         -
            self
 1941         -
        }
 1942         -
        #[allow(missing_docs)] // documentation missing in model
 1943         -
        pub fn float(mut self, input: ::std::option::Option<f32>) -> Self {
 1944         -
            self.float = input;
        1772  +
            self.int_enum3 = input.map(|v| v.into());
 1945   1773   
            self
 1946   1774   
        }
 1947   1775   
        #[allow(missing_docs)] // documentation missing in model
 1948         -
        pub(crate) fn set_float(mut self, input: Option<impl ::std::convert::Into<f32>>) -> Self {
 1949         -
            self.float = input.map(|v| v.into());
        1776  +
        pub fn int_enum_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
        1777  +
            self.int_enum_list = input;
 1950   1778   
            self
 1951   1779   
        }
 1952   1780   
        #[allow(missing_docs)] // documentation missing in model
 1953         -
        pub fn httpdate_timestamp(
        1781  +
        pub(crate) fn set_int_enum_list(
 1954   1782   
            mut self,
 1955         -
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
        1783  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<i32>>>,
 1956   1784   
        ) -> Self {
 1957         -
            self.httpdate_timestamp = input;
        1785  +
            self.int_enum_list = input.map(|v| v.into());
 1958   1786   
            self
 1959   1787   
        }
 1960   1788   
        #[allow(missing_docs)] // documentation missing in model
 1961         -
        pub(crate) fn set_httpdate_timestamp(
        1789  +
        pub fn int_enum_set(
 1962   1790   
            mut self,
 1963         -
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
 1964         -
        ) -> Self {
 1965         -
            self.httpdate_timestamp = input.map(|v| v.into());
 1966         -
            self
 1967         -
        }
 1968         -
        #[allow(missing_docs)] // documentation missing in model
 1969         -
        pub fn integer(mut self, input: ::std::option::Option<i32>) -> Self {
 1970         -
            self.integer = input;
        1791  +
            input: ::std::option::Option<crate::model::IntegerEnumSet>,
        1792  +
        ) -> Self {
        1793  +
            self.int_enum_set = input.map(crate::constrained::MaybeConstrained::Constrained);
 1971   1794   
            self
 1972   1795   
        }
 1973   1796   
        #[allow(missing_docs)] // documentation missing in model
 1974         -
        pub(crate) fn set_integer(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
 1975         -
            self.integer = input.map(|v| v.into());
        1797  +
        pub(crate) fn set_int_enum_set(
        1798  +
            mut self,
        1799  +
            input: Option<
        1800  +
                impl ::std::convert::Into<
        1801  +
                    crate::constrained::MaybeConstrained<crate::model::IntegerEnumSet>,
        1802  +
                >,
        1803  +
            >,
        1804  +
        ) -> Self {
        1805  +
            self.int_enum_set = input.map(|v| v.into());
 1976   1806   
            self
 1977   1807   
        }
 1978   1808   
        #[allow(missing_docs)] // documentation missing in model
 1979         -
        pub fn iso8601_timestamp(
        1809  +
        pub fn int_enum_map(
 1980   1810   
            mut self,
 1981         -
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
        1811  +
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
 1982   1812   
        ) -> Self {
 1983         -
            self.iso8601_timestamp = input;
        1813  +
            self.int_enum_map = input;
 1984   1814   
            self
 1985   1815   
        }
 1986   1816   
        #[allow(missing_docs)] // documentation missing in model
 1987         -
        pub(crate) fn set_iso8601_timestamp(
        1817  +
        pub(crate) fn set_int_enum_map(
 1988   1818   
            mut self,
 1989         -
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
        1819  +
            input: Option<
        1820  +
                impl ::std::convert::Into<::std::collections::HashMap<::std::string::String, i32>>,
        1821  +
            >,
 1990   1822   
        ) -> Self {
 1991         -
            self.iso8601_timestamp = input.map(|v| v.into());
        1823  +
            self.int_enum_map = input.map(|v| v.into());
 1992   1824   
            self
 1993   1825   
        }
        1826  +
        /// Consumes the builder and constructs a [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput).
        1827  +
        ///
        1828  +
        /// The builder fails to construct a [`JsonIntEnumsInput`](crate::input::JsonIntEnumsInput) if a [`ConstraintViolation`] occurs.
        1829  +
        ///
        1830  +
        pub fn build(self) -> Result<crate::input::JsonIntEnumsInput, ConstraintViolation> {
        1831  +
            self.build_enforcing_all_constraints()
        1832  +
        }
        1833  +
        fn build_enforcing_all_constraints(
        1834  +
            self,
        1835  +
        ) -> Result<crate::input::JsonIntEnumsInput, ConstraintViolation> {
        1836  +
            Ok(crate::input::JsonIntEnumsInput {
        1837  +
                int_enum1: self.int_enum1,
        1838  +
                int_enum2: self.int_enum2,
        1839  +
                int_enum3: self.int_enum3,
        1840  +
                int_enum_list: self.int_enum_list,
        1841  +
                int_enum_set: self
        1842  +
                    .int_enum_set
        1843  +
                    .map(|v| match v {
        1844  +
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
        1845  +
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
        1846  +
                    })
        1847  +
                    .map(|res| res.map_err(ConstraintViolation::IntEnumSet))
        1848  +
                    .transpose()?,
        1849  +
                int_enum_map: self.int_enum_map,
        1850  +
            })
        1851  +
        }
        1852  +
    }
        1853  +
}
        1854  +
/// See [`NullOperationInput`](crate::input::NullOperationInput).
        1855  +
pub mod null_operation_input {
        1856  +
        1857  +
    impl ::std::convert::From<Builder> for crate::input::NullOperationInput {
        1858  +
        fn from(builder: Builder) -> Self {
        1859  +
            builder.build()
        1860  +
        }
        1861  +
    }
        1862  +
    /// A builder for [`NullOperationInput`](crate::input::NullOperationInput).
        1863  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1864  +
    pub struct Builder {
        1865  +
        pub(crate) string: ::std::option::Option<::std::string::String>,
        1866  +
    }
        1867  +
    impl Builder {
 1994   1868   
        #[allow(missing_docs)] // documentation missing in model
 1995         -
        pub fn json_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1996         -
            self.json_value = input;
        1869  +
        pub fn string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1870  +
            self.string = input;
 1997   1871   
            self
 1998   1872   
        }
 1999   1873   
        #[allow(missing_docs)] // documentation missing in model
 2000         -
        pub(crate) fn set_json_value(
        1874  +
        pub(crate) fn set_string(
 2001   1875   
            mut self,
 2002   1876   
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 2003   1877   
        ) -> Self {
 2004         -
            self.json_value = input.map(|v| v.into());
        1878  +
            self.string = input.map(|v| v.into());
 2005   1879   
            self
 2006   1880   
        }
        1881  +
        /// Consumes the builder and constructs a [`NullOperationInput`](crate::input::NullOperationInput).
        1882  +
        pub fn build(self) -> crate::input::NullOperationInput {
        1883  +
            self.build_enforcing_all_constraints()
        1884  +
        }
        1885  +
        fn build_enforcing_all_constraints(self) -> crate::input::NullOperationInput {
        1886  +
            crate::input::NullOperationInput {
        1887  +
                string: self.string,
        1888  +
            }
        1889  +
        }
        1890  +
    }
        1891  +
}
        1892  +
/// See [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
        1893  +
pub mod sparse_nulls_operation_input {
        1894  +
        1895  +
    impl ::std::convert::From<Builder> for crate::input::SparseNullsOperationInput {
        1896  +
        fn from(builder: Builder) -> Self {
        1897  +
            builder.build()
        1898  +
        }
        1899  +
    }
        1900  +
    /// A builder for [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
        1901  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1902  +
    pub struct Builder {
        1903  +
        pub(crate) sparse_string_list:
        1904  +
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
        1905  +
        pub(crate) sparse_string_map: ::std::option::Option<
        1906  +
            ::std::collections::HashMap<
        1907  +
                ::std::string::String,
        1908  +
                ::std::option::Option<::std::string::String>,
        1909  +
            >,
        1910  +
        >,
        1911  +
    }
        1912  +
    impl Builder {
 2007   1913   
        #[allow(missing_docs)] // documentation missing in model
 2008         -
        pub fn list_of_lists(
        1914  +
        pub fn sparse_string_list(
 2009   1915   
            mut self,
 2010         -
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
        1916  +
            input: ::std::option::Option<
        1917  +
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
        1918  +
            >,
 2011   1919   
        ) -> Self {
 2012         -
            self.list_of_lists = input;
        1920  +
            self.sparse_string_list = input;
 2013   1921   
            self
 2014   1922   
        }
 2015   1923   
        #[allow(missing_docs)] // documentation missing in model
 2016         -
        pub(crate) fn set_list_of_lists(
        1924  +
        pub(crate) fn set_sparse_string_list(
 2017   1925   
            mut self,
 2018   1926   
            input: Option<
 2019         -
                impl ::std::convert::Into<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
        1927  +
                impl ::std::convert::Into<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
 2020   1928   
            >,
 2021   1929   
        ) -> Self {
 2022         -
            self.list_of_lists = input.map(|v| v.into());
        1930  +
            self.sparse_string_list = input.map(|v| v.into());
 2023   1931   
            self
 2024   1932   
        }
 2025   1933   
        #[allow(missing_docs)] // documentation missing in model
 2026         -
        pub fn list_of_maps_of_strings(
        1934  +
        pub fn sparse_string_map(
 2027   1935   
            mut self,
 2028   1936   
            input: ::std::option::Option<
 2029         -
                ::std::vec::Vec<
 2030         -
                    ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1937  +
                ::std::collections::HashMap<
        1938  +
                    ::std::string::String,
        1939  +
                    ::std::option::Option<::std::string::String>,
 2031   1940   
                >,
 2032   1941   
            >,
 2033   1942   
        ) -> Self {
 2034         -
            self.list_of_maps_of_strings = input;
        1943  +
            self.sparse_string_map = input;
        1944  +
            self
        1945  +
        }
        1946  +
        #[allow(missing_docs)] // documentation missing in model
        1947  +
        pub(crate) fn set_sparse_string_map(
        1948  +
            mut self,
        1949  +
            input: Option<
        1950  +
                impl ::std::convert::Into<
        1951  +
                    ::std::collections::HashMap<
        1952  +
                        ::std::string::String,
        1953  +
                        ::std::option::Option<::std::string::String>,
        1954  +
                    >,
        1955  +
                >,
        1956  +
            >,
        1957  +
        ) -> Self {
        1958  +
            self.sparse_string_map = input.map(|v| v.into());
        1959  +
            self
        1960  +
        }
        1961  +
        /// Consumes the builder and constructs a [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
        1962  +
        pub fn build(self) -> crate::input::SparseNullsOperationInput {
        1963  +
            self.build_enforcing_all_constraints()
        1964  +
        }
        1965  +
        fn build_enforcing_all_constraints(self) -> crate::input::SparseNullsOperationInput {
        1966  +
            crate::input::SparseNullsOperationInput {
        1967  +
                sparse_string_list: self.sparse_string_list,
        1968  +
                sparse_string_map: self.sparse_string_map,
        1969  +
            }
        1970  +
        }
        1971  +
    }
        1972  +
}
        1973  +
/// See [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
        1974  +
pub mod greeting_with_errors_input {
        1975  +
        1976  +
    impl ::std::convert::From<Builder> for crate::input::GreetingWithErrorsInput {
        1977  +
        fn from(builder: Builder) -> Self {
        1978  +
            builder.build()
        1979  +
        }
        1980  +
    }
        1981  +
    /// A builder for [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
        1982  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1983  +
    pub struct Builder {}
        1984  +
    impl Builder {
        1985  +
        /// Consumes the builder and constructs a [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
        1986  +
        pub fn build(self) -> crate::input::GreetingWithErrorsInput {
        1987  +
            self.build_enforcing_all_constraints()
        1988  +
        }
        1989  +
        fn build_enforcing_all_constraints(self) -> crate::input::GreetingWithErrorsInput {
        1990  +
            crate::input::GreetingWithErrorsInput {}
        1991  +
        }
        1992  +
    }
        1993  +
}
        1994  +
/// See [`JsonUnionsInput`](crate::input::JsonUnionsInput).
        1995  +
pub mod json_unions_input {
        1996  +
        1997  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        1998  +
    /// Holds one variant for each of the ways the builder can fail.
        1999  +
    #[non_exhaustive]
        2000  +
    #[allow(clippy::enum_variant_names)]
        2001  +
    pub enum ConstraintViolation {
        2002  +
        /// Constraint violation occurred building member `contents` when building `JsonUnionsInput`.
        2003  +
        #[doc(hidden)]
        2004  +
        Contents(crate::model::my_union::ConstraintViolation),
        2005  +
    }
        2006  +
    impl ::std::fmt::Display for ConstraintViolation {
        2007  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        2008  +
            match self {
        2009  +
                ConstraintViolation::Contents(_) => write!(f, "constraint violation occurred building member `contents` when building `JsonUnionsInput`"),
        2010  +
            }
        2011  +
        }
        2012  +
    }
        2013  +
    impl ::std::error::Error for ConstraintViolation {}
        2014  +
    impl ConstraintViolation {
        2015  +
        pub(crate) fn as_validation_exception_field(
        2016  +
            self,
        2017  +
            path: ::std::string::String,
        2018  +
        ) -> crate::model::ValidationExceptionField {
        2019  +
            match self {
        2020  +
                ConstraintViolation::Contents(inner) => {
        2021  +
                    inner.as_validation_exception_field(path + "/contents")
        2022  +
                }
        2023  +
            }
        2024  +
        }
        2025  +
    }
        2026  +
    impl ::std::convert::From<ConstraintViolation>
        2027  +
        for ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection
        2028  +
    {
        2029  +
        fn from(constraint_violation: ConstraintViolation) -> Self {
        2030  +
            let first_validation_exception_field =
        2031  +
                constraint_violation.as_validation_exception_field("".to_owned());
        2032  +
            let validation_exception = crate::error::ValidationException {
        2033  +
                message: format!(
        2034  +
                    "1 validation error detected. {}",
        2035  +
                    &first_validation_exception_field.message
        2036  +
                ),
        2037  +
                field_list: Some(vec![first_validation_exception_field]),
        2038  +
            };
        2039  +
            Self::ConstraintViolation(
        2040  +
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
        2041  +
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
        2042  +
                            )
        2043  +
        }
        2044  +
    }
        2045  +
    impl ::std::convert::From<Builder>
        2046  +
        for crate::constrained::MaybeConstrained<crate::input::JsonUnionsInput>
        2047  +
    {
        2048  +
        fn from(builder: Builder) -> Self {
        2049  +
            Self::Unconstrained(builder)
        2050  +
        }
        2051  +
    }
        2052  +
    impl ::std::convert::TryFrom<Builder> for crate::input::JsonUnionsInput {
        2053  +
        type Error = ConstraintViolation;
        2054  +
        2055  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        2056  +
            builder.build()
        2057  +
        }
        2058  +
    }
        2059  +
    /// A builder for [`JsonUnionsInput`](crate::input::JsonUnionsInput).
        2060  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        2061  +
    pub struct Builder {
        2062  +
        pub(crate) contents:
        2063  +
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::MyUnion>>,
        2064  +
    }
        2065  +
    impl Builder {
        2066  +
        /// A union with a representative set of types for members.
        2067  +
        pub fn contents(mut self, input: ::std::option::Option<crate::model::MyUnion>) -> Self {
        2068  +
            self.contents = input.map(crate::constrained::MaybeConstrained::Constrained);
 2035   2069   
            self
 2036   2070   
        }
 2037         -
        #[allow(missing_docs)] // documentation missing in model
 2038         -
        pub(crate) fn set_list_of_maps_of_strings(
        2071  +
        /// A union with a representative set of types for members.
        2072  +
        pub(crate) fn set_contents(
 2039   2073   
            mut self,
 2040   2074   
            input: Option<
 2041         -
                impl ::std::convert::Into<
 2042         -
                    ::std::vec::Vec<
 2043         -
                        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 2044         -
                    >,
 2045         -
                >,
        2075  +
                impl ::std::convert::Into<crate::constrained::MaybeConstrained<crate::model::MyUnion>>,
 2046   2076   
            >,
 2047   2077   
        ) -> Self {
 2048         -
            self.list_of_maps_of_strings = input.map(|v| v.into());
        2078  +
            self.contents = input.map(|v| v.into());
 2049   2079   
            self
 2050   2080   
        }
 2051         -
        #[allow(missing_docs)] // documentation missing in model
 2052         -
        pub fn list_of_strings(
 2053         -
            mut self,
 2054         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 2055         -
        ) -> Self {
 2056         -
            self.list_of_strings = input;
 2057         -
            self
        2081  +
        /// Consumes the builder and constructs a [`JsonUnionsInput`](crate::input::JsonUnionsInput).
        2082  +
        ///
        2083  +
        /// The builder fails to construct a [`JsonUnionsInput`](crate::input::JsonUnionsInput) if a [`ConstraintViolation`] occurs.
        2084  +
        ///
        2085  +
        pub fn build(self) -> Result<crate::input::JsonUnionsInput, ConstraintViolation> {
        2086  +
            self.build_enforcing_all_constraints()
 2058   2087   
        }
 2059         -
        #[allow(missing_docs)] // documentation missing in model
 2060         -
        pub(crate) fn set_list_of_strings(
 2061         -
            mut self,
 2062         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<::std::string::String>>>,
 2063         -
        ) -> Self {
 2064         -
            self.list_of_strings = input.map(|v| v.into());
 2065         -
            self
        2088  +
        fn build_enforcing_all_constraints(
        2089  +
            self,
        2090  +
        ) -> Result<crate::input::JsonUnionsInput, ConstraintViolation> {
        2091  +
            Ok(crate::input::JsonUnionsInput {
        2092  +
                contents: self
        2093  +
                    .contents
        2094  +
                    .map(|v| match v {
        2095  +
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
        2096  +
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
        2097  +
                    })
        2098  +
                    .map(|res| res.map_err(ConstraintViolation::Contents))
        2099  +
                    .transpose()?,
        2100  +
            })
 2066   2101   
        }
 2067         -
        #[allow(missing_docs)] // documentation missing in model
 2068         -
        pub fn list_of_structs(
 2069         -
            mut self,
 2070         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::SimpleStruct>>,
 2071         -
        ) -> Self {
 2072         -
            self.list_of_structs = input;
 2073         -
            self
 2074   2102   
    }
 2075         -
        #[allow(missing_docs)] // documentation missing in model
 2076         -
        pub(crate) fn set_list_of_structs(
 2077         -
            mut self,
 2078         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<crate::model::SimpleStruct>>>,
 2079         -
        ) -> Self {
 2080         -
            self.list_of_structs = input.map(|v| v.into());
 2081         -
            self
        2103  +
}
        2104  +
/// See [`EndpointOperationInput`](crate::input::EndpointOperationInput).
        2105  +
pub mod endpoint_operation_input {
        2106  +
        2107  +
    impl ::std::convert::From<Builder> for crate::input::EndpointOperationInput {
        2108  +
        fn from(builder: Builder) -> Self {
        2109  +
            builder.build()
 2082   2110   
        }
 2083         -
        #[allow(missing_docs)] // documentation missing in model
 2084         -
        pub fn long(mut self, input: ::std::option::Option<i64>) -> Self {
 2085         -
            self.long = input;
 2086         -
            self
 2087   2111   
    }
 2088         -
        #[allow(missing_docs)] // documentation missing in model
 2089         -
        pub(crate) fn set_long(mut self, input: Option<impl ::std::convert::Into<i64>>) -> Self {
 2090         -
            self.long = input.map(|v| v.into());
 2091         -
            self
        2112  +
    /// A builder for [`EndpointOperationInput`](crate::input::EndpointOperationInput).
        2113  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        2114  +
    pub struct Builder {}
        2115  +
    impl Builder {
        2116  +
        /// Consumes the builder and constructs a [`EndpointOperationInput`](crate::input::EndpointOperationInput).
        2117  +
        pub fn build(self) -> crate::input::EndpointOperationInput {
        2118  +
            self.build_enforcing_all_constraints()
 2092   2119   
        }
 2093         -
        #[allow(missing_docs)] // documentation missing in model
 2094         -
        pub fn map_of_lists_of_strings(
 2095         -
            mut self,
 2096         -
            input: ::std::option::Option<
 2097         -
                ::std::collections::HashMap<
 2098         -
                    ::std::string::String,
 2099         -
                    ::std::vec::Vec<::std::string::String>,
 2100         -
                >,
 2101         -
            >,
 2102         -
        ) -> Self {
 2103         -
            self.map_of_lists_of_strings = input;
 2104         -
            self
        2120  +
        fn build_enforcing_all_constraints(self) -> crate::input::EndpointOperationInput {
        2121  +
            crate::input::EndpointOperationInput {}
 2105   2122   
        }
 2106         -
        #[allow(missing_docs)] // documentation missing in model
 2107         -
        pub(crate) fn set_map_of_lists_of_strings(
 2108         -
            mut self,
 2109         -
            input: Option<
 2110         -
                impl ::std::convert::Into<
 2111         -
                    ::std::collections::HashMap<
 2112         -
                        ::std::string::String,
 2113         -
                        ::std::vec::Vec<::std::string::String>,
 2114         -
                    >,
 2115         -
                >,
 2116         -
            >,
 2117         -
        ) -> Self {
 2118         -
            self.map_of_lists_of_strings = input.map(|v| v.into());
 2119         -
            self
 2120   2123   
    }
 2121         -
        #[allow(missing_docs)] // documentation missing in model
 2122         -
        pub fn map_of_maps(
 2123         -
            mut self,
 2124         -
            input: ::std::option::Option<
 2125         -
                ::std::collections::HashMap<
 2126         -
                    ::std::string::String,
 2127         -
                    ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 2128         -
                >,
 2129         -
            >,
 2130         -
        ) -> Self {
 2131         -
            self.map_of_maps = input;
 2132         -
            self
        2124  +
}
        2125  +
/// See [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput).
        2126  +
pub mod endpoint_with_host_label_operation_input {
        2127  +
        2128  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        2129  +
    /// Holds one variant for each of the ways the builder can fail.
        2130  +
    #[non_exhaustive]
        2131  +
    #[allow(clippy::enum_variant_names)]
        2132  +
    pub enum ConstraintViolation {
        2133  +
        /// `label` was not provided but it is required when building `EndpointWithHostLabelOperationInput`.
        2134  +
        MissingLabel,
 2133   2135   
    }
 2134         -
        #[allow(missing_docs)] // documentation missing in model
 2135         -
        pub(crate) fn set_map_of_maps(
 2136         -
            mut self,
 2137         -
            input: Option<
 2138         -
                impl ::std::convert::Into<
 2139         -
                    ::std::collections::HashMap<
 2140         -
                        ::std::string::String,
 2141         -
                        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 2142         -
                    >,
 2143         -
                >,
 2144         -
            >,
 2145         -
        ) -> Self {
 2146         -
            self.map_of_maps = input.map(|v| v.into());
 2147         -
            self
        2136  +
    impl ::std::fmt::Display for ConstraintViolation {
        2137  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        2138  +
            match self {
        2139  +
                ConstraintViolation::MissingLabel => write!(f, "`label` was not provided but it is required when building `EndpointWithHostLabelOperationInput`"),
 2148   2140   
            }
 2149         -
        #[allow(missing_docs)] // documentation missing in model
 2150         -
        pub fn map_of_strings(
 2151         -
            mut self,
 2152         -
            input: ::std::option::Option<
 2153         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 2154         -
            >,
 2155         -
        ) -> Self {
 2156         -
            self.map_of_strings = input;
 2157         -
            self
 2158   2141   
        }
 2159         -
        #[allow(missing_docs)] // documentation missing in model
 2160         -
        pub(crate) fn set_map_of_strings(
 2161         -
            mut self,
 2162         -
            input: Option<
 2163         -
                impl ::std::convert::Into<
 2164         -
                    ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 2165         -
                >,
 2166         -
            >,
 2167         -
        ) -> Self {
 2168         -
            self.map_of_strings = input.map(|v| v.into());
 2169         -
            self
 2170   2142   
    }
 2171         -
        #[allow(missing_docs)] // documentation missing in model
 2172         -
        pub fn map_of_structs(
 2173         -
            mut self,
 2174         -
            input: ::std::option::Option<
 2175         -
                ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
 2176         -
            >,
 2177         -
        ) -> Self {
 2178         -
            self.map_of_structs = input;
 2179         -
            self
        2143  +
    impl ::std::error::Error for ConstraintViolation {}
        2144  +
    impl ConstraintViolation {
        2145  +
        pub(crate) fn as_validation_exception_field(
        2146  +
            self,
        2147  +
            path: ::std::string::String,
        2148  +
        ) -> crate::model::ValidationExceptionField {
        2149  +
            match self {
        2150  +
                ConstraintViolation::MissingLabel => crate::model::ValidationExceptionField {
        2151  +
                    message: format!(
        2152  +
                        "Value at '{}/label' failed to satisfy constraint: Member must not be null",
        2153  +
                        path
        2154  +
                    ),
        2155  +
                    path: path + "/label",
        2156  +
                },
 2180   2157   
            }
 2181         -
        #[allow(missing_docs)] // documentation missing in model
 2182         -
        pub(crate) fn set_map_of_structs(
 2183         -
            mut self,
 2184         -
            input: Option<
 2185         -
                impl ::std::convert::Into<
 2186         -
                    ::std::collections::HashMap<::std::string::String, crate::model::SimpleStruct>,
 2187         -
                >,
 2188         -
            >,
 2189         -
        ) -> Self {
 2190         -
            self.map_of_structs = input.map(|v| v.into());
 2191         -
            self
 2192   2158   
        }
 2193         -
        #[allow(missing_docs)] // documentation missing in model
 2194         -
        pub fn recursive_list(
 2195         -
            mut self,
 2196         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::KitchenSink>>,
 2197         -
        ) -> Self {
 2198         -
            self.recursive_list = input;
 2199         -
            self
 2200   2159   
    }
 2201         -
        #[allow(missing_docs)] // documentation missing in model
 2202         -
        pub(crate) fn set_recursive_list(
 2203         -
            mut self,
 2204         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<crate::model::KitchenSink>>>,
 2205         -
        ) -> Self {
 2206         -
            self.recursive_list = input.map(|v| v.into());
 2207         -
            self
        2160  +
    impl ::std::convert::From<ConstraintViolation>
        2161  +
        for ::aws_smithy_legacy_http_server::protocol::aws_json::rejection::RequestRejection
        2162  +
    {
        2163  +
        fn from(constraint_violation: ConstraintViolation) -> Self {
        2164  +
            let first_validation_exception_field =
        2165  +
                constraint_violation.as_validation_exception_field("".to_owned());
        2166  +
            let validation_exception = crate::error::ValidationException {
        2167  +
                message: format!(
        2168  +
                    "1 validation error detected. {}",
        2169  +
                    &first_validation_exception_field.message
        2170  +
                ),
        2171  +
                field_list: Some(vec![first_validation_exception_field]),
        2172  +
            };
        2173  +
            Self::ConstraintViolation(
        2174  +
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
        2175  +
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
        2176  +
                            )
        2177  +
        }
        2178  +
    }
        2179  +
    impl ::std::convert::From<Builder>
        2180  +
        for crate::constrained::MaybeConstrained<crate::input::EndpointWithHostLabelOperationInput>
        2181  +
    {
        2182  +
        fn from(builder: Builder) -> Self {
        2183  +
            Self::Unconstrained(builder)
        2184  +
        }
        2185  +
    }
        2186  +
    impl ::std::convert::TryFrom<Builder> for crate::input::EndpointWithHostLabelOperationInput {
        2187  +
        type Error = ConstraintViolation;
        2188  +
        2189  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        2190  +
            builder.build()
        2191  +
        }
        2192  +
    }
        2193  +
    /// A builder for [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput).
        2194  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        2195  +
    pub struct Builder {
        2196  +
        pub(crate) label: ::std::option::Option<::std::string::String>,
 2208   2197   
    }
        2198  +
    impl Builder {
 2209   2199   
        #[allow(missing_docs)] // documentation missing in model
 2210         -
        pub fn recursive_map(
 2211         -
            mut self,
 2212         -
            input: ::std::option::Option<
 2213         -
                ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
 2214         -
            >,
 2215         -
        ) -> Self {
 2216         -
            self.recursive_map = input;
        2200  +
        pub fn label(mut self, input: ::std::string::String) -> Self {
        2201  +
            self.label = Some(input);
 2217   2202   
            self
 2218   2203   
        }
 2219   2204   
        #[allow(missing_docs)] // documentation missing in model
 2220         -
        pub(crate) fn set_recursive_map(
        2205  +
        pub(crate) fn set_label(
 2221   2206   
            mut self,
 2222         -
            input: Option<
 2223         -
                impl ::std::convert::Into<
 2224         -
                    ::std::collections::HashMap<::std::string::String, crate::model::KitchenSink>,
 2225         -
                >,
 2226         -
            >,
        2207  +
            input: impl ::std::convert::Into<::std::string::String>,
 2227   2208   
        ) -> Self {
 2228         -
            self.recursive_map = input.map(|v| v.into());
        2209  +
            self.label = Some(input.into());
 2229   2210   
            self
 2230   2211   
        }
 2231         -
        #[allow(missing_docs)] // documentation missing in model
 2232         -
        pub fn recursive_struct(
 2233         -
            mut self,
 2234         -
            input: ::std::option::Option<::std::boxed::Box<crate::model::KitchenSink>>,
 2235         -
        ) -> Self {
 2236         -
            self.recursive_struct = input;
 2237         -
            self
        2212  +
        /// Consumes the builder and constructs a [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput).
        2213  +
        ///
        2214  +
        /// The builder fails to construct a [`EndpointWithHostLabelOperationInput`](crate::input::EndpointWithHostLabelOperationInput) if a [`ConstraintViolation`] occurs.
        2215  +
        ///
        2216  +
        pub fn build(
        2217  +
            self,
        2218  +
        ) -> Result<crate::input::EndpointWithHostLabelOperationInput, ConstraintViolation>
        2219  +
        {
        2220  +
            self.build_enforcing_all_constraints()
 2238   2221   
        }
 2239         -
        #[allow(missing_docs)] // documentation missing in model
 2240         -
        pub(crate) fn set_recursive_struct(
 2241         -
            mut self,
 2242         -
            input: Option<impl ::std::convert::Into<::std::boxed::Box<crate::model::KitchenSink>>>,
 2243         -
        ) -> Self {
 2244         -
            self.recursive_struct = input.map(|v| v.into());
 2245         -
            self
        2222  +
        fn build_enforcing_all_constraints(
        2223  +
            self,
        2224  +
        ) -> Result<crate::input::EndpointWithHostLabelOperationInput, ConstraintViolation>
        2225  +
        {
        2226  +
            Ok(crate::input::EndpointWithHostLabelOperationInput {
        2227  +
                label: self.label.ok_or(ConstraintViolation::MissingLabel)?,
        2228  +
            })
 2246   2229   
        }
 2247         -
        #[allow(missing_docs)] // documentation missing in model
 2248         -
        pub fn simple_struct(
 2249         -
            mut self,
 2250         -
            input: ::std::option::Option<crate::model::SimpleStruct>,
 2251         -
        ) -> Self {
 2252         -
            self.simple_struct = input;
 2253         -
            self
 2254   2230   
    }
 2255         -
        #[allow(missing_docs)] // documentation missing in model
 2256         -
        pub(crate) fn set_simple_struct(
 2257         -
            mut self,
 2258         -
            input: Option<impl ::std::convert::Into<crate::model::SimpleStruct>>,
 2259         -
        ) -> Self {
 2260         -
            self.simple_struct = input.map(|v| v.into());
 2261         -
            self
        2231  +
}
        2232  +
/// See [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput).
        2233  +
pub mod host_with_path_operation_input {
        2234  +
        2235  +
    impl ::std::convert::From<Builder> for crate::input::HostWithPathOperationInput {
        2236  +
        fn from(builder: Builder) -> Self {
        2237  +
            builder.build()
 2262   2238   
        }
 2263         -
        #[allow(missing_docs)] // documentation missing in model
 2264         -
        pub fn string(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 2265         -
            self.string = input;
 2266         -
            self
 2267   2239   
    }
 2268         -
        #[allow(missing_docs)] // documentation missing in model
 2269         -
        pub(crate) fn set_string(
 2270         -
            mut self,
 2271         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 2272         -
        ) -> Self {
 2273         -
            self.string = input.map(|v| v.into());
 2274         -
            self
        2240  +
    /// A builder for [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput).
        2241  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        2242  +
    pub struct Builder {}
        2243  +
    impl Builder {
        2244  +
        /// Consumes the builder and constructs a [`HostWithPathOperationInput`](crate::input::HostWithPathOperationInput).
        2245  +
        pub fn build(self) -> crate::input::HostWithPathOperationInput {
        2246  +
            self.build_enforcing_all_constraints()
 2275   2247   
        }
 2276         -
        #[allow(missing_docs)] // documentation missing in model
 2277         -
        pub fn struct_with_json_name(
 2278         -
            mut self,
 2279         -
            input: ::std::option::Option<crate::model::StructWithJsonName>,
 2280         -
        ) -> Self {
 2281         -
            self.struct_with_json_name = input;
 2282         -
            self
        2248  +
        fn build_enforcing_all_constraints(self) -> crate::input::HostWithPathOperationInput {
        2249  +
            crate::input::HostWithPathOperationInput {}
 2283   2250   
        }
 2284         -
        #[allow(missing_docs)] // documentation missing in model
 2285         -
        pub(crate) fn set_struct_with_json_name(
 2286         -
            mut self,
 2287         -
            input: Option<impl ::std::convert::Into<crate::model::StructWithJsonName>>,
 2288         -
        ) -> Self {
 2289         -
            self.struct_with_json_name = input.map(|v| v.into());
 2290         -
            self
 2291   2251   
    }
        2252  +
}
        2253  +
/// See [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput).
        2254  +
pub mod datetime_offsets_input {
        2255  +
        2256  +
    impl ::std::convert::From<Builder> for crate::input::DatetimeOffsetsInput {
        2257  +
        fn from(builder: Builder) -> Self {
        2258  +
            builder.build()
        2259  +
        }
        2260  +
    }
        2261  +
    /// A builder for [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput).
        2262  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        2263  +
    pub struct Builder {}
        2264  +
    impl Builder {
        2265  +
        /// Consumes the builder and constructs a [`DatetimeOffsetsInput`](crate::input::DatetimeOffsetsInput).
        2266  +
        pub fn build(self) -> crate::input::DatetimeOffsetsInput {
        2267  +
            self.build_enforcing_all_constraints()
        2268  +
        }
        2269  +
        fn build_enforcing_all_constraints(self) -> crate::input::DatetimeOffsetsInput {
        2270  +
            crate::input::DatetimeOffsetsInput {}
        2271  +
        }
        2272  +
    }
        2273  +
}
        2274  +
/// See [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
        2275  +
pub mod fractional_seconds_input {
        2276  +
        2277  +
    impl ::std::convert::From<Builder> for crate::input::FractionalSecondsInput {
        2278  +
        fn from(builder: Builder) -> Self {
        2279  +
            builder.build()
        2280  +
        }
        2281  +
    }
        2282  +
    /// A builder for [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
        2283  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        2284  +
    pub struct Builder {}
        2285  +
    impl Builder {
        2286  +
        /// Consumes the builder and constructs a [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
        2287  +
        pub fn build(self) -> crate::input::FractionalSecondsInput {
        2288  +
            self.build_enforcing_all_constraints()
        2289  +
        }
        2290  +
        fn build_enforcing_all_constraints(self) -> crate::input::FractionalSecondsInput {
        2291  +
            crate::input::FractionalSecondsInput {}
        2292  +
        }
        2293  +
    }
        2294  +
}
        2295  +
/// See [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput).
        2296  +
pub mod put_with_content_encoding_input {
        2297  +
        2298  +
    impl ::std::convert::From<Builder> for crate::input::PutWithContentEncodingInput {
        2299  +
        fn from(builder: Builder) -> Self {
        2300  +
            builder.build()
        2301  +
        }
        2302  +
    }
        2303  +
    /// A builder for [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput).
        2304  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        2305  +
    pub struct Builder {
        2306  +
        pub(crate) encoding: ::std::option::Option<::std::string::String>,
        2307  +
        pub(crate) data: ::std::option::Option<::std::string::String>,
        2308  +
    }
        2309  +
    impl Builder {
 2292   2310   
        #[allow(missing_docs)] // documentation missing in model
 2293         -
        pub fn timestamp(
 2294         -
            mut self,
 2295         -
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
 2296         -
        ) -> Self {
 2297         -
            self.timestamp = input;
        2311  +
        pub fn encoding(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        2312  +
            self.encoding = input;
 2298   2313   
            self
 2299   2314   
        }
 2300   2315   
        #[allow(missing_docs)] // documentation missing in model
 2301         -
        pub(crate) fn set_timestamp(
        2316  +
        pub(crate) fn set_encoding(
 2302   2317   
            mut self,
 2303         -
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
        2318  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 2304   2319   
        ) -> Self {
 2305         -
            self.timestamp = input.map(|v| v.into());
        2320  +
            self.encoding = input.map(|v| v.into());
 2306   2321   
            self
 2307   2322   
        }
 2308   2323   
        #[allow(missing_docs)] // documentation missing in model
 2309         -
        pub fn unix_timestamp(
 2310         -
            mut self,
 2311         -
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
 2312         -
        ) -> Self {
 2313         -
            self.unix_timestamp = input;
        2324  +
        pub fn data(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        2325  +
            self.data = input;
 2314   2326   
            self
 2315   2327   
        }
 2316   2328   
        #[allow(missing_docs)] // documentation missing in model
 2317         -
        pub(crate) fn set_unix_timestamp(
        2329  +
        pub(crate) fn set_data(
 2318   2330   
            mut self,
 2319         -
            input: Option<impl ::std::convert::Into<::aws_smithy_types::DateTime>>,
        2331  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 2320   2332   
        ) -> Self {
 2321         -
            self.unix_timestamp = input.map(|v| v.into());
        2333  +
            self.data = input.map(|v| v.into());
 2322   2334   
            self
 2323   2335   
        }
 2324         -
        /// Consumes the builder and constructs a [`KitchenSinkOperationInput`](crate::input::KitchenSinkOperationInput).
 2325         -
        pub fn build(self) -> crate::input::KitchenSinkOperationInput {
        2336  +
        /// Consumes the builder and constructs a [`PutWithContentEncodingInput`](crate::input::PutWithContentEncodingInput).
        2337  +
        pub fn build(self) -> crate::input::PutWithContentEncodingInput {
 2326   2338   
            self.build_enforcing_all_constraints()
 2327   2339   
        }
 2328         -
        fn build_enforcing_all_constraints(self) -> crate::input::KitchenSinkOperationInput {
 2329         -
            crate::input::KitchenSinkOperationInput {
 2330         -
                blob: self.blob,
 2331         -
                boolean: self.boolean,
 2332         -
                double: self.double,
 2333         -
                empty_struct: self.empty_struct,
 2334         -
                float: self.float,
 2335         -
                httpdate_timestamp: self.httpdate_timestamp,
 2336         -
                integer: self.integer,
 2337         -
                iso8601_timestamp: self.iso8601_timestamp,
 2338         -
                json_value: self.json_value,
 2339         -
                list_of_lists: self.list_of_lists,
 2340         -
                list_of_maps_of_strings: self.list_of_maps_of_strings,
 2341         -
                list_of_strings: self.list_of_strings,
 2342         -
                list_of_structs: self.list_of_structs,
 2343         -
                long: self.long,
 2344         -
                map_of_lists_of_strings: self.map_of_lists_of_strings,
 2345         -
                map_of_maps: self.map_of_maps,
 2346         -
                map_of_strings: self.map_of_strings,
 2347         -
                map_of_structs: self.map_of_structs,
 2348         -
                recursive_list: self.recursive_list,
 2349         -
                recursive_map: self.recursive_map,
 2350         -
                recursive_struct: self.recursive_struct,
 2351         -
                simple_struct: self.simple_struct,
 2352         -
                string: self.string,
 2353         -
                struct_with_json_name: self.struct_with_json_name,
 2354         -
                timestamp: self.timestamp,
 2355         -
                unix_timestamp: self.unix_timestamp,
        2340  +
        fn build_enforcing_all_constraints(self) -> crate::input::PutWithContentEncodingInput {
        2341  +
            crate::input::PutWithContentEncodingInput {
        2342  +
                encoding: self.encoding,
        2343  +
                data: self.data,
 2356   2344   
            }
 2357   2345   
        }
 2358   2346   
    }
 2359   2347   
}
 2360         -
/// See [`EmptyOperationInput`](crate::input::EmptyOperationInput).
 2361         -
pub mod empty_operation_input {
        2348  +
/// See [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput).
        2349  +
pub mod content_type_parameters_input {
 2362   2350   
 2363         -
    impl ::std::convert::From<Builder> for crate::input::EmptyOperationInput {
        2351  +
    impl ::std::convert::From<Builder> for crate::input::ContentTypeParametersInput {
 2364   2352   
        fn from(builder: Builder) -> Self {
 2365   2353   
            builder.build()
 2366   2354   
        }
 2367   2355   
    }
 2368         -
    /// A builder for [`EmptyOperationInput`](crate::input::EmptyOperationInput).
        2356  +
    /// A builder for [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput).
 2369   2357   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 2370         -
    pub struct Builder {}
        2358  +
    pub struct Builder {
        2359  +
        pub(crate) value: ::std::option::Option<i32>,
        2360  +
    }
 2371   2361   
    impl Builder {
 2372         -
        /// Consumes the builder and constructs a [`EmptyOperationInput`](crate::input::EmptyOperationInput).
 2373         -
        pub fn build(self) -> crate::input::EmptyOperationInput {
        2362  +
        #[allow(missing_docs)] // documentation missing in model
        2363  +
        pub fn value(mut self, input: ::std::option::Option<i32>) -> Self {
        2364  +
            self.value = input;
        2365  +
            self
        2366  +
        }
        2367  +
        #[allow(missing_docs)] // documentation missing in model
        2368  +
        pub(crate) fn set_value(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
        2369  +
            self.value = input.map(|v| v.into());
        2370  +
            self
        2371  +
        }
        2372  +
        /// Consumes the builder and constructs a [`ContentTypeParametersInput`](crate::input::ContentTypeParametersInput).
        2373  +
        pub fn build(self) -> crate::input::ContentTypeParametersInput {
 2374   2374   
            self.build_enforcing_all_constraints()
 2375   2375   
        }
 2376         -
        fn build_enforcing_all_constraints(self) -> crate::input::EmptyOperationInput {
 2377         -
            crate::input::EmptyOperationInput {}
        2376  +
        fn build_enforcing_all_constraints(self) -> crate::input::ContentTypeParametersInput {
        2377  +
            crate::input::ContentTypeParametersInput { value: self.value }
 2378   2378   
        }
 2379   2379   
    }
 2380   2380   
}