Server Test

Server Test

rev. d838bf488731ae5e751cce0fe13f339a5b9be858 (ignoring whitespace)

Files changed:

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

@@ -1,1 +113,113 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
pub(crate) mod sparse_set_map_constrained {
           3  +
pub(crate) mod foo_enum_list_constrained {
    4      4   
    5      5   
    #[derive(Debug, Clone)]
    6         -
    pub(crate) struct SparseSetMapConstrained(
    7         -
        pub(crate)  std::collections::HashMap<
    8         -
            ::std::string::String,
    9         -
            ::std::option::Option<crate::model::StringSet>,
   10         -
        >,
   11         -
    );
           6  +
    pub(crate) struct FooEnumListConstrained(pub(crate) std::vec::Vec<crate::model::FooEnum>);
   12      7   
   13         -
    impl crate::constrained::Constrained for SparseSetMapConstrained {
           8  +
    impl crate::constrained::Constrained for FooEnumListConstrained {
   14      9   
        type Unconstrained =
   15         -
            crate::unconstrained::sparse_set_map_unconstrained::SparseSetMapUnconstrained;
          10  +
            crate::unconstrained::foo_enum_list_unconstrained::FooEnumListUnconstrained;
   16     11   
    }
   17         -
    impl
   18         -
        ::std::convert::From<
   19         -
            ::std::collections::HashMap<
   20         -
                ::std::string::String,
   21         -
                ::std::option::Option<crate::model::StringSet>,
   22         -
            >,
   23         -
        > for SparseSetMapConstrained
   24         -
    {
   25         -
        fn from(
   26         -
            v: ::std::collections::HashMap<
   27         -
                ::std::string::String,
   28         -
                ::std::option::Option<crate::model::StringSet>,
   29         -
            >,
   30         -
        ) -> Self {
          12  +
    impl ::std::convert::From<::std::vec::Vec<crate::model::FooEnum>> for FooEnumListConstrained {
          13  +
        fn from(v: ::std::vec::Vec<crate::model::FooEnum>) -> Self {
   31     14   
            Self(v)
   32     15   
        }
   33     16   
    }
   34     17   
   35         -
    impl ::std::convert::From<SparseSetMapConstrained>
   36         -
        for ::std::collections::HashMap<
   37         -
            ::std::string::String,
   38         -
            ::std::option::Option<crate::model::StringSet>,
   39         -
        >
   40         -
    {
   41         -
        fn from(v: SparseSetMapConstrained) -> Self {
          18  +
    impl ::std::convert::From<FooEnumListConstrained> for ::std::vec::Vec<crate::model::FooEnum> {
          19  +
        fn from(v: FooEnumListConstrained) -> Self {
   42     20   
            v.0
   43     21   
        }
   44     22   
    }
   45     23   
}
   46     24   
pub(crate) mod dense_set_map_constrained {
   47     25   
   48     26   
    #[derive(Debug, Clone)]
   49     27   
    pub(crate) struct DenseSetMapConstrained(
   50     28   
        pub(crate) std::collections::HashMap<::std::string::String, crate::model::StringSet>,
   51     29   
    );
   52     30   
   53     31   
    impl crate::constrained::Constrained for DenseSetMapConstrained {
   54     32   
        type Unconstrained =
   55     33   
            crate::unconstrained::dense_set_map_unconstrained::DenseSetMapUnconstrained;
   56     34   
    }
   57     35   
    impl
   58     36   
        ::std::convert::From<
   59     37   
            ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
   60     38   
        > for DenseSetMapConstrained
   61     39   
    {
   62     40   
        fn from(
   63     41   
            v: ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
   64     42   
        ) -> Self {
   65     43   
            Self(v)
   66     44   
        }
   67     45   
    }
   68     46   
   69     47   
    impl ::std::convert::From<DenseSetMapConstrained>
   70     48   
        for ::std::collections::HashMap<::std::string::String, crate::model::StringSet>
   71     49   
    {
   72     50   
        fn from(v: DenseSetMapConstrained) -> Self {
   73     51   
            v.0
   74     52   
        }
   75     53   
    }
   76     54   
}
   77         -
pub(crate) mod foo_enum_list_constrained {
          55  +
pub(crate) mod sparse_set_map_constrained {
   78     56   
   79     57   
    #[derive(Debug, Clone)]
   80         -
    pub(crate) struct FooEnumListConstrained(pub(crate) std::vec::Vec<crate::model::FooEnum>);
          58  +
    pub(crate) struct SparseSetMapConstrained(
          59  +
        pub(crate)  std::collections::HashMap<
          60  +
            ::std::string::String,
          61  +
            ::std::option::Option<crate::model::StringSet>,
          62  +
        >,
          63  +
    );
   81     64   
   82         -
    impl crate::constrained::Constrained for FooEnumListConstrained {
          65  +
    impl crate::constrained::Constrained for SparseSetMapConstrained {
   83     66   
        type Unconstrained =
   84         -
            crate::unconstrained::foo_enum_list_unconstrained::FooEnumListUnconstrained;
          67  +
            crate::unconstrained::sparse_set_map_unconstrained::SparseSetMapUnconstrained;
   85     68   
    }
   86         -
    impl ::std::convert::From<::std::vec::Vec<crate::model::FooEnum>> for FooEnumListConstrained {
   87         -
        fn from(v: ::std::vec::Vec<crate::model::FooEnum>) -> Self {
          69  +
    impl
          70  +
        ::std::convert::From<
          71  +
            ::std::collections::HashMap<
          72  +
                ::std::string::String,
          73  +
                ::std::option::Option<crate::model::StringSet>,
          74  +
            >,
          75  +
        > for SparseSetMapConstrained
          76  +
    {
          77  +
        fn from(
          78  +
            v: ::std::collections::HashMap<
          79  +
                ::std::string::String,
          80  +
                ::std::option::Option<crate::model::StringSet>,
          81  +
            >,
          82  +
        ) -> Self {
   88     83   
            Self(v)
   89     84   
        }
   90     85   
    }
   91     86   
   92         -
    impl ::std::convert::From<FooEnumListConstrained> for ::std::vec::Vec<crate::model::FooEnum> {
   93         -
        fn from(v: FooEnumListConstrained) -> Self {
          87  +
    impl ::std::convert::From<SparseSetMapConstrained>
          88  +
        for ::std::collections::HashMap<
          89  +
            ::std::string::String,
          90  +
            ::std::option::Option<crate::model::StringSet>,
          91  +
        >
          92  +
    {
          93  +
        fn from(v: SparseSetMapConstrained) -> Self {
   94     94   
            v.0
   95     95   
        }
   96     96   
    }
   97     97   
}
   98     98   
   99     99   
/*
  100    100   
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
  101    101   
 * SPDX-License-Identifier: Apache-2.0
  102    102   
 */
  103    103   

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

@@ -1,1 +372,371 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
    3         -
/// Error type for the `OperationWithDefaults` operation.
    4         -
/// Each variant represents an error that can occur for the `OperationWithDefaults` operation.
           3  +
/// Error type for the `RpcV2CborLists` operation.
           4  +
/// Each variant represents an error that can occur for the `RpcV2CborLists` operation.
    5      5   
#[derive(::std::fmt::Debug)]
    6         -
pub enum OperationWithDefaultsError {
           6  +
pub enum RpcV2CborListsError {
    7      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      8   
    ValidationException(crate::error::ValidationException),
    9      9   
}
   10         -
impl ::std::fmt::Display for OperationWithDefaultsError {
          10  +
impl ::std::fmt::Display for RpcV2CborListsError {
   11     11   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
   12     12   
        match &self {
   13         -
            OperationWithDefaultsError::ValidationException(_inner) => _inner.fmt(f),
          13  +
            RpcV2CborListsError::ValidationException(_inner) => _inner.fmt(f),
   14     14   
        }
   15     15   
    }
   16     16   
}
   17         -
impl OperationWithDefaultsError {
   18         -
    /// Returns `true` if the error kind is `OperationWithDefaultsError::ValidationException`.
          17  +
impl RpcV2CborListsError {
          18  +
    /// Returns `true` if the error kind is `RpcV2CborListsError::ValidationException`.
   19     19   
    pub fn is_validation_exception(&self) -> bool {
   20         -
        matches!(&self, OperationWithDefaultsError::ValidationException(_))
          20  +
        matches!(&self, RpcV2CborListsError::ValidationException(_))
   21     21   
    }
   22     22   
    /// Returns the error name string by matching the correct variant.
   23     23   
    pub fn name(&self) -> &'static str {
   24     24   
        match &self {
   25         -
            OperationWithDefaultsError::ValidationException(_inner) => _inner.name(),
          25  +
            RpcV2CborListsError::ValidationException(_inner) => _inner.name(),
   26     26   
        }
   27     27   
    }
   28     28   
}
   29         -
impl ::std::error::Error for OperationWithDefaultsError {
          29  +
impl ::std::error::Error for RpcV2CborListsError {
   30     30   
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
   31     31   
        match &self {
   32         -
            OperationWithDefaultsError::ValidationException(_inner) => Some(_inner),
          32  +
            RpcV2CborListsError::ValidationException(_inner) => Some(_inner),
          33  +
        }
          34  +
    }
          35  +
}
          36  +
impl ::std::convert::From<crate::error::ValidationException> for crate::error::RpcV2CborListsError {
          37  +
    fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborListsError {
          38  +
        Self::ValidationException(variant)
          39  +
    }
          40  +
}
          41  +
          42  +
/// Error type for the `RpcV2CborDenseMaps` operation.
          43  +
/// Each variant represents an error that can occur for the `RpcV2CborDenseMaps` operation.
          44  +
#[derive(::std::fmt::Debug)]
          45  +
pub enum RpcV2CborDenseMapsError {
          46  +
    /// 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.
          47  +
    ValidationException(crate::error::ValidationException),
          48  +
}
          49  +
impl ::std::fmt::Display for RpcV2CborDenseMapsError {
          50  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
          51  +
        match &self {
          52  +
            RpcV2CborDenseMapsError::ValidationException(_inner) => _inner.fmt(f),
          53  +
        }
          54  +
    }
          55  +
}
          56  +
impl RpcV2CborDenseMapsError {
          57  +
    /// Returns `true` if the error kind is `RpcV2CborDenseMapsError::ValidationException`.
          58  +
    pub fn is_validation_exception(&self) -> bool {
          59  +
        matches!(&self, RpcV2CborDenseMapsError::ValidationException(_))
          60  +
    }
          61  +
    /// Returns the error name string by matching the correct variant.
          62  +
    pub fn name(&self) -> &'static str {
          63  +
        match &self {
          64  +
            RpcV2CborDenseMapsError::ValidationException(_inner) => _inner.name(),
          65  +
        }
          66  +
    }
          67  +
}
          68  +
impl ::std::error::Error for RpcV2CborDenseMapsError {
          69  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
          70  +
        match &self {
          71  +
            RpcV2CborDenseMapsError::ValidationException(_inner) => Some(_inner),
   33     72   
        }
   34     73   
    }
   35     74   
}
   36     75   
impl ::std::convert::From<crate::error::ValidationException>
   37         -
    for crate::error::OperationWithDefaultsError
          76  +
    for crate::error::RpcV2CborDenseMapsError
   38     77   
{
   39         -
    fn from(
   40         -
        variant: crate::error::ValidationException,
   41         -
    ) -> crate::error::OperationWithDefaultsError {
          78  +
    fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborDenseMapsError {
   42     79   
        Self::ValidationException(variant)
   43     80   
    }
   44     81   
}
   45     82   
   46         -
/// 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.
   47         -
#[derive(
   48         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   49         -
)]
   50         -
pub struct ValidationException {
   51         -
    /// A summary of the validation failure.
   52         -
    pub message: ::std::string::String,
   53         -
    /// 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.
   54         -
    pub field_list: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
          83  +
/// Error type for the `RpcV2CborSparseMaps` operation.
          84  +
/// Each variant represents an error that can occur for the `RpcV2CborSparseMaps` operation.
          85  +
#[derive(::std::fmt::Debug)]
          86  +
pub enum RpcV2CborSparseMapsError {
          87  +
    /// 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.
          88  +
    ValidationException(crate::error::ValidationException),
   55     89   
}
   56         -
impl ValidationException {
   57         -
    /// 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.
   58         -
    pub fn field_list(&self) -> ::std::option::Option<&[crate::model::ValidationExceptionField]> {
   59         -
        self.field_list.as_deref()
          90  +
impl ::std::fmt::Display for RpcV2CborSparseMapsError {
          91  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
          92  +
        match &self {
          93  +
            RpcV2CborSparseMapsError::ValidationException(_inner) => _inner.fmt(f),
          94  +
        }
   60     95   
    }
   61     96   
}
   62         -
impl ValidationException {
   63         -
    /// Returns the error message.
   64         -
    pub fn message(&self) -> &str {
   65         -
        &self.message
          97  +
impl RpcV2CborSparseMapsError {
          98  +
    /// Returns `true` if the error kind is `RpcV2CborSparseMapsError::ValidationException`.
          99  +
    pub fn is_validation_exception(&self) -> bool {
         100  +
        matches!(&self, RpcV2CborSparseMapsError::ValidationException(_))
   66    101   
    }
   67         -
    #[doc(hidden)]
   68         -
    /// Returns the error name.
         102  +
    /// Returns the error name string by matching the correct variant.
   69    103   
    pub fn name(&self) -> &'static str {
   70         -
        "ValidationException"
         104  +
        match &self {
         105  +
            RpcV2CborSparseMapsError::ValidationException(_inner) => _inner.name(),
         106  +
        }
   71    107   
    }
   72    108   
}
   73         -
impl ::std::fmt::Display for ValidationException {
   74         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
   75         -
        ::std::write!(f, "ValidationException")?;
   76         -
        {
   77         -
            ::std::write!(f, ": {}", &self.message)?;
         109  +
impl ::std::error::Error for RpcV2CborSparseMapsError {
         110  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         111  +
        match &self {
         112  +
            RpcV2CborSparseMapsError::ValidationException(_inner) => Some(_inner),
   78    113   
        }
   79         -
        Ok(())
   80    114   
    }
   81    115   
}
   82         -
impl ::std::error::Error for ValidationException {}
   83         -
impl ValidationException {
   84         -
    /// Creates a new builder-style object to manufacture [`ValidationException`](crate::error::ValidationException).
   85         -
    pub fn builder() -> crate::error::validation_exception::Builder {
   86         -
        crate::error::validation_exception::Builder::default()
         116  +
impl ::std::convert::From<crate::error::ValidationException>
         117  +
    for crate::error::RpcV2CborSparseMapsError
         118  +
{
         119  +
    fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborSparseMapsError {
         120  +
        Self::ValidationException(variant)
   87    121   
    }
   88    122   
}
   89    123   
   90    124   
/// Error type for the `GreetingWithErrors` operation.
   91    125   
/// Each variant represents an error that can occur for the `GreetingWithErrors` operation.
   92    126   
#[derive(::std::fmt::Debug)]
   93    127   
pub enum GreetingWithErrorsError {
   94    128   
    /// This error is thrown when an invalid greeting value is provided.
   95    129   
    InvalidGreeting(crate::error::InvalidGreeting),
   96    130   
    /// This error is thrown when a request is invalid.
   97    131   
    ComplexError(crate::error::ComplexError),
   98    132   
}
   99    133   
impl ::std::fmt::Display for GreetingWithErrorsError {
  100    134   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  101    135   
        match &self {
  102    136   
            GreetingWithErrorsError::InvalidGreeting(_inner) => _inner.fmt(f),
  103    137   
            GreetingWithErrorsError::ComplexError(_inner) => _inner.fmt(f),
  104    138   
        }
  105    139   
    }
  106    140   
}
  107    141   
impl GreetingWithErrorsError {
  108    142   
    /// Returns `true` if the error kind is `GreetingWithErrorsError::InvalidGreeting`.
  109    143   
    pub fn is_invalid_greeting(&self) -> bool {
  110    144   
        matches!(&self, GreetingWithErrorsError::InvalidGreeting(_))
  111    145   
    }
  112    146   
    /// Returns `true` if the error kind is `GreetingWithErrorsError::ComplexError`.
  113    147   
    pub fn is_complex_error(&self) -> bool {
  114    148   
        matches!(&self, GreetingWithErrorsError::ComplexError(_))
  115    149   
    }
  116    150   
    /// Returns the error name string by matching the correct variant.
  117    151   
    pub fn name(&self) -> &'static str {
  118    152   
        match &self {
  119    153   
            GreetingWithErrorsError::InvalidGreeting(_inner) => _inner.name(),
  120    154   
            GreetingWithErrorsError::ComplexError(_inner) => _inner.name(),
  121    155   
        }
  122    156   
    }
  123    157   
}
  124    158   
impl ::std::error::Error for GreetingWithErrorsError {
  125    159   
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
  126    160   
        match &self {
  127    161   
            GreetingWithErrorsError::InvalidGreeting(_inner) => Some(_inner),
  128    162   
            GreetingWithErrorsError::ComplexError(_inner) => Some(_inner),
  129    163   
        }
  130    164   
    }
  131    165   
}
  132    166   
impl ::std::convert::From<crate::error::InvalidGreeting> for crate::error::GreetingWithErrorsError {
  133    167   
    fn from(variant: crate::error::InvalidGreeting) -> crate::error::GreetingWithErrorsError {
  134    168   
        Self::InvalidGreeting(variant)
  135    169   
    }
  136    170   
}
  137    171   
impl ::std::convert::From<crate::error::ComplexError> for crate::error::GreetingWithErrorsError {
  138    172   
    fn from(variant: crate::error::ComplexError) -> crate::error::GreetingWithErrorsError {
  139    173   
        Self::ComplexError(variant)
  140    174   
    }
  141    175   
}
  142    176   
  143         -
/// This error is thrown when a request is invalid.
         177  +
/// Error type for the `OperationWithDefaults` operation.
         178  +
/// Each variant represents an error that can occur for the `OperationWithDefaults` operation.
         179  +
#[derive(::std::fmt::Debug)]
         180  +
pub enum OperationWithDefaultsError {
         181  +
    /// 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.
         182  +
    ValidationException(crate::error::ValidationException),
         183  +
}
         184  +
impl ::std::fmt::Display for OperationWithDefaultsError {
         185  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         186  +
        match &self {
         187  +
            OperationWithDefaultsError::ValidationException(_inner) => _inner.fmt(f),
         188  +
        }
         189  +
    }
         190  +
}
         191  +
impl OperationWithDefaultsError {
         192  +
    /// Returns `true` if the error kind is `OperationWithDefaultsError::ValidationException`.
         193  +
    pub fn is_validation_exception(&self) -> bool {
         194  +
        matches!(&self, OperationWithDefaultsError::ValidationException(_))
         195  +
    }
         196  +
    /// Returns the error name string by matching the correct variant.
         197  +
    pub fn name(&self) -> &'static str {
         198  +
        match &self {
         199  +
            OperationWithDefaultsError::ValidationException(_inner) => _inner.name(),
         200  +
        }
         201  +
    }
         202  +
}
         203  +
impl ::std::error::Error for OperationWithDefaultsError {
         204  +
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
         205  +
        match &self {
         206  +
            OperationWithDefaultsError::ValidationException(_inner) => Some(_inner),
         207  +
        }
         208  +
    }
         209  +
}
         210  +
impl ::std::convert::From<crate::error::ValidationException>
         211  +
    for crate::error::OperationWithDefaultsError
         212  +
{
         213  +
    fn from(
         214  +
        variant: crate::error::ValidationException,
         215  +
    ) -> crate::error::OperationWithDefaultsError {
         216  +
        Self::ValidationException(variant)
         217  +
    }
         218  +
}
         219  +
         220  +
/// 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.
  144    221   
#[derive(
  145    222   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  146    223   
)]
  147         -
pub struct ComplexError {
  148         -
    #[allow(missing_docs)] // documentation missing in model
  149         -
    pub top_level: ::std::option::Option<::std::string::String>,
  150         -
    #[allow(missing_docs)] // documentation missing in model
  151         -
    pub nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
         224  +
pub struct ValidationException {
         225  +
    /// A summary of the validation failure.
         226  +
    pub message: ::std::string::String,
         227  +
    /// 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.
         228  +
    pub field_list: ::std::option::Option<::std::vec::Vec<crate::model::ValidationExceptionField>>,
  152    229   
}
  153         -
impl ComplexError {
  154         -
    #[allow(missing_docs)] // documentation missing in model
  155         -
    pub fn top_level(&self) -> ::std::option::Option<&str> {
  156         -
        self.top_level.as_deref()
  157         -
    }
  158         -
    #[allow(missing_docs)] // documentation missing in model
  159         -
    pub fn nested(&self) -> ::std::option::Option<&crate::model::ComplexNestedErrorData> {
  160         -
        self.nested.as_ref()
         230  +
impl ValidationException {
         231  +
    /// 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.
         232  +
    pub fn field_list(&self) -> ::std::option::Option<&[crate::model::ValidationExceptionField]> {
         233  +
        self.field_list.as_deref()
  161    234   
    }
  162    235   
}
  163         -
impl ComplexError {
         236  +
impl ValidationException {
         237  +
    /// Returns the error message.
         238  +
    pub fn message(&self) -> &str {
         239  +
        &self.message
         240  +
    }
  164    241   
    #[doc(hidden)]
  165    242   
    /// Returns the error name.
  166    243   
    pub fn name(&self) -> &'static str {
  167         -
        "ComplexError"
         244  +
        "ValidationException"
  168    245   
    }
  169    246   
}
  170         -
impl ::std::fmt::Display for ComplexError {
         247  +
impl ::std::fmt::Display for ValidationException {
  171    248   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  172         -
        ::std::write!(f, "ComplexError")?;
         249  +
        ::std::write!(f, "ValidationException")?;
         250  +
        {
         251  +
            ::std::write!(f, ": {}", &self.message)?;
         252  +
        }
  173    253   
        Ok(())
  174    254   
    }
  175    255   
}
  176         -
impl ::std::error::Error for ComplexError {}
  177         -
impl ComplexError {
  178         -
    /// Creates a new builder-style object to manufacture [`ComplexError`](crate::error::ComplexError).
  179         -
    pub fn builder() -> crate::error::complex_error::Builder {
  180         -
        crate::error::complex_error::Builder::default()
         256  +
impl ::std::error::Error for ValidationException {}
         257  +
impl ValidationException {
         258  +
    /// Creates a new builder-style object to manufacture [`ValidationException`](crate::error::ValidationException).
         259  +
    pub fn builder() -> crate::error::validation_exception::Builder {
         260  +
        crate::error::validation_exception::Builder::default()
  181    261   
    }
  182    262   
}
  183    263   
  184    264   
/// This error is thrown when an invalid greeting value is provided.
  185    265   
#[derive(
  186    266   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  187    267   
)]
  188    268   
pub struct InvalidGreeting {
  189    269   
    #[allow(missing_docs)] // documentation missing in model
  190    270   
    pub message: ::std::option::Option<::std::string::String>,
  191    271   
}
  192    272   
impl InvalidGreeting {
  193    273   
    /// Returns the error message.
  194    274   
    pub fn message(&self) -> ::std::option::Option<&str> {
  195    275   
        self.message.as_deref()
  196    276   
    }
  197    277   
    #[doc(hidden)]
  198    278   
    /// Returns the error name.
  199    279   
    pub fn name(&self) -> &'static str {
  200    280   
        "InvalidGreeting"
  201    281   
    }
  202    282   
}
  203    283   
impl ::std::fmt::Display for InvalidGreeting {
  204    284   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  205    285   
        ::std::write!(f, "InvalidGreeting")?;
  206    286   
        if let ::std::option::Option::Some(inner_1) = &self.message {
  207    287   
            {
  208    288   
                ::std::write!(f, ": {inner_1}")?;
  209    289   
            }
  210    290   
        }
  211    291   
        Ok(())
  212    292   
    }
  213    293   
}
  214    294   
impl ::std::error::Error for InvalidGreeting {}
  215    295   
impl InvalidGreeting {
  216    296   
    /// Creates a new builder-style object to manufacture [`InvalidGreeting`](crate::error::InvalidGreeting).
  217    297   
    pub fn builder() -> crate::error::invalid_greeting::Builder {
  218    298   
        crate::error::invalid_greeting::Builder::default()
  219    299   
    }
  220    300   
}
  221    301   
  222         -
/// Error type for the `RpcV2CborSparseMaps` operation.
  223         -
/// Each variant represents an error that can occur for the `RpcV2CborSparseMaps` operation.
  224         -
#[derive(::std::fmt::Debug)]
  225         -
pub enum RpcV2CborSparseMapsError {
  226         -
    /// 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.
  227         -
    ValidationException(crate::error::ValidationException),
  228         -
}
  229         -
impl ::std::fmt::Display for RpcV2CborSparseMapsError {
  230         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  231         -
        match &self {
  232         -
            RpcV2CborSparseMapsError::ValidationException(_inner) => _inner.fmt(f),
  233         -
        }
  234         -
    }
  235         -
}
  236         -
impl RpcV2CborSparseMapsError {
  237         -
    /// Returns `true` if the error kind is `RpcV2CborSparseMapsError::ValidationException`.
  238         -
    pub fn is_validation_exception(&self) -> bool {
  239         -
        matches!(&self, RpcV2CborSparseMapsError::ValidationException(_))
  240         -
    }
  241         -
    /// Returns the error name string by matching the correct variant.
  242         -
    pub fn name(&self) -> &'static str {
  243         -
        match &self {
  244         -
            RpcV2CborSparseMapsError::ValidationException(_inner) => _inner.name(),
  245         -
        }
  246         -
    }
  247         -
}
  248         -
impl ::std::error::Error for RpcV2CborSparseMapsError {
  249         -
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
  250         -
        match &self {
  251         -
            RpcV2CborSparseMapsError::ValidationException(_inner) => Some(_inner),
  252         -
        }
  253         -
    }
  254         -
}
  255         -
impl ::std::convert::From<crate::error::ValidationException>
  256         -
    for crate::error::RpcV2CborSparseMapsError
  257         -
{
  258         -
    fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborSparseMapsError {
  259         -
        Self::ValidationException(variant)
  260         -
    }
  261         -
}
  262         -
  263         -
/// Error type for the `RpcV2CborDenseMaps` operation.
  264         -
/// Each variant represents an error that can occur for the `RpcV2CborDenseMaps` operation.
  265         -
#[derive(::std::fmt::Debug)]
  266         -
pub enum RpcV2CborDenseMapsError {
  267         -
    /// 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.
  268         -
    ValidationException(crate::error::ValidationException),
         302  +
/// This error is thrown when a request is invalid.
         303  +
#[derive(
         304  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         305  +
)]
         306  +
pub struct ComplexError {
         307  +
    #[allow(missing_docs)] // documentation missing in model
         308  +
    pub top_level: ::std::option::Option<::std::string::String>,
         309  +
    #[allow(missing_docs)] // documentation missing in model
         310  +
    pub nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
  269    311   
}
  270         -
impl ::std::fmt::Display for RpcV2CborDenseMapsError {
  271         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  272         -
        match &self {
  273         -
            RpcV2CborDenseMapsError::ValidationException(_inner) => _inner.fmt(f),
         312  +
impl ComplexError {
         313  +
    #[allow(missing_docs)] // documentation missing in model
         314  +
    pub fn top_level(&self) -> ::std::option::Option<&str> {
         315  +
        self.top_level.as_deref()
  274    316   
    }
         317  +
    #[allow(missing_docs)] // documentation missing in model
         318  +
    pub fn nested(&self) -> ::std::option::Option<&crate::model::ComplexNestedErrorData> {
         319  +
        self.nested.as_ref()
  275    320   
    }
  276    321   
}
  277         -
impl RpcV2CborDenseMapsError {
  278         -
    /// Returns `true` if the error kind is `RpcV2CborDenseMapsError::ValidationException`.
  279         -
    pub fn is_validation_exception(&self) -> bool {
  280         -
        matches!(&self, RpcV2CborDenseMapsError::ValidationException(_))
  281         -
    }
  282         -
    /// Returns the error name string by matching the correct variant.
         322  +
impl ComplexError {
         323  +
    #[doc(hidden)]
         324  +
    /// Returns the error name.
  283    325   
    pub fn name(&self) -> &'static str {
  284         -
        match &self {
  285         -
            RpcV2CborDenseMapsError::ValidationException(_inner) => _inner.name(),
  286         -
        }
  287         -
    }
  288         -
}
  289         -
impl ::std::error::Error for RpcV2CborDenseMapsError {
  290         -
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
  291         -
        match &self {
  292         -
            RpcV2CborDenseMapsError::ValidationException(_inner) => Some(_inner),
  293         -
        }
  294         -
    }
  295         -
}
  296         -
impl ::std::convert::From<crate::error::ValidationException>
  297         -
    for crate::error::RpcV2CborDenseMapsError
  298         -
{
  299         -
    fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborDenseMapsError {
  300         -
        Self::ValidationException(variant)
         326  +
        "ComplexError"
  301    327   
    }
  302    328   
}
  303         -
  304         -
/// Error type for the `RpcV2CborLists` operation.
  305         -
/// Each variant represents an error that can occur for the `RpcV2CborLists` operation.
  306         -
#[derive(::std::fmt::Debug)]
  307         -
pub enum RpcV2CborListsError {
  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),
  310         -
}
  311         -
impl ::std::fmt::Display for RpcV2CborListsError {
         329  +
impl ::std::fmt::Display for ComplexError {
  312    330   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  313         -
        match &self {
  314         -
            RpcV2CborListsError::ValidationException(_inner) => _inner.fmt(f),
  315         -
        }
  316         -
    }
  317         -
}
  318         -
impl RpcV2CborListsError {
  319         -
    /// Returns `true` if the error kind is `RpcV2CborListsError::ValidationException`.
  320         -
    pub fn is_validation_exception(&self) -> bool {
  321         -
        matches!(&self, RpcV2CborListsError::ValidationException(_))
  322         -
    }
  323         -
    /// Returns the error name string by matching the correct variant.
  324         -
    pub fn name(&self) -> &'static str {
  325         -
        match &self {
  326         -
            RpcV2CborListsError::ValidationException(_inner) => _inner.name(),
  327         -
        }
  328         -
    }
  329         -
}
  330         -
impl ::std::error::Error for RpcV2CborListsError {
  331         -
    fn source(&self) -> std::option::Option<&(dyn ::std::error::Error + 'static)> {
  332         -
        match &self {
  333         -
            RpcV2CborListsError::ValidationException(_inner) => Some(_inner),
  334         -
        }
         331  +
        ::std::write!(f, "ComplexError")?;
         332  +
        Ok(())
  335    333   
    }
  336    334   
}
  337         -
impl ::std::convert::From<crate::error::ValidationException> for crate::error::RpcV2CborListsError {
  338         -
    fn from(variant: crate::error::ValidationException) -> crate::error::RpcV2CborListsError {
  339         -
        Self::ValidationException(variant)
         335  +
impl ::std::error::Error for ComplexError {}
         336  +
impl ComplexError {
         337  +
    /// Creates a new builder-style object to manufacture [`ComplexError`](crate::error::ComplexError).
         338  +
    pub fn builder() -> crate::error::complex_error::Builder {
         339  +
        crate::error::complex_error::Builder::default()
  340    340   
    }
  341    341   
}
  342         -
  343    342   
/// See [`ValidationException`](crate::error::ValidationException).
  344    343   
pub mod validation_exception {
  345    344   
  346    345   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  347    346   
    /// Holds one variant for each of the ways the builder can fail.
  348    347   
    #[non_exhaustive]
  349    348   
    #[allow(clippy::enum_variant_names)]
  350    349   
    pub enum ConstraintViolation {
  351    350   
        /// `message` was not provided but it is required when building `ValidationException`.
  352    351   
        MissingMessage,
@@ -377,376 +476,0 @@
  397    396   
        fn build_enforcing_all_constraints(
  398    397   
            self,
  399    398   
        ) -> Result<crate::error::ValidationException, ConstraintViolation> {
  400    399   
            Ok(crate::error::ValidationException {
  401    400   
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
  402    401   
                field_list: self.field_list,
  403    402   
            })
  404    403   
        }
  405    404   
    }
  406    405   
}
         406  +
/// See [`InvalidGreeting`](crate::error::InvalidGreeting).
         407  +
pub mod invalid_greeting {
         408  +
         409  +
    impl ::std::convert::From<Builder> for crate::error::InvalidGreeting {
         410  +
        fn from(builder: Builder) -> Self {
         411  +
            builder.build()
         412  +
        }
         413  +
    }
         414  +
    /// A builder for [`InvalidGreeting`](crate::error::InvalidGreeting).
         415  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         416  +
    pub struct Builder {
         417  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
         418  +
    }
         419  +
    impl Builder {
         420  +
        #[allow(missing_docs)] // documentation missing in model
         421  +
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         422  +
            self.message = input;
         423  +
            self
         424  +
        }
         425  +
        /// Consumes the builder and constructs a [`InvalidGreeting`](crate::error::InvalidGreeting).
         426  +
        pub fn build(self) -> crate::error::InvalidGreeting {
         427  +
            self.build_enforcing_all_constraints()
         428  +
        }
         429  +
        fn build_enforcing_all_constraints(self) -> crate::error::InvalidGreeting {
         430  +
            crate::error::InvalidGreeting {
         431  +
                message: self.message,
         432  +
            }
         433  +
        }
         434  +
    }
         435  +
}
  407    436   
/// See [`ComplexError`](crate::error::ComplexError).
  408    437   
pub mod complex_error {
  409    438   
  410    439   
    impl ::std::convert::From<Builder> for crate::error::ComplexError {
  411    440   
        fn from(builder: Builder) -> Self {
  412    441   
            builder.build()
  413    442   
        }
  414    443   
    }
  415    444   
    /// A builder for [`ComplexError`](crate::error::ComplexError).
  416    445   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  417    446   
    pub struct Builder {
  418    447   
        pub(crate) top_level: ::std::option::Option<::std::string::String>,
  419    448   
        pub(crate) nested: ::std::option::Option<crate::model::ComplexNestedErrorData>,
  420    449   
    }
  421    450   
    impl Builder {
  422    451   
        #[allow(missing_docs)] // documentation missing in model
  423    452   
        pub fn top_level(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  424    453   
            self.top_level = input;
  425    454   
            self
  426    455   
        }
  427    456   
        #[allow(missing_docs)] // documentation missing in model
  428    457   
        pub fn nested(
  429    458   
            mut self,
  430    459   
            input: ::std::option::Option<crate::model::ComplexNestedErrorData>,
  431    460   
        ) -> Self {
  432    461   
            self.nested = input;
  433    462   
            self
  434    463   
        }
  435    464   
        /// Consumes the builder and constructs a [`ComplexError`](crate::error::ComplexError).
  436    465   
        pub fn build(self) -> crate::error::ComplexError {
  437    466   
            self.build_enforcing_all_constraints()
  438    467   
        }
  439    468   
        fn build_enforcing_all_constraints(self) -> crate::error::ComplexError {
  440    469   
            crate::error::ComplexError {
  441    470   
                top_level: self.top_level,
  442    471   
                nested: self.nested,
  443    472   
            }
  444    473   
        }
  445    474   
    }
  446    475   
}
  447         -
/// See [`InvalidGreeting`](crate::error::InvalidGreeting).
  448         -
pub mod invalid_greeting {
  449         -
  450         -
    impl ::std::convert::From<Builder> for crate::error::InvalidGreeting {
  451         -
        fn from(builder: Builder) -> Self {
  452         -
            builder.build()
  453         -
        }
  454         -
    }
  455         -
    /// A builder for [`InvalidGreeting`](crate::error::InvalidGreeting).
  456         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  457         -
    pub struct Builder {
  458         -
        pub(crate) message: ::std::option::Option<::std::string::String>,
  459         -
    }
  460         -
    impl Builder {
  461         -
        #[allow(missing_docs)] // documentation missing in model
  462         -
        pub fn message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  463         -
            self.message = input;
  464         -
            self
  465         -
        }
  466         -
        /// Consumes the builder and constructs a [`InvalidGreeting`](crate::error::InvalidGreeting).
  467         -
        pub fn build(self) -> crate::error::InvalidGreeting {
  468         -
            self.build_enforcing_all_constraints()
  469         -
        }
  470         -
        fn build_enforcing_all_constraints(self) -> crate::error::InvalidGreeting {
  471         -
            crate::error::InvalidGreeting {
  472         -
                message: self.message,
  473         -
            }
  474         -
        }
  475         -
    }
  476         -
}

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

@@ -1,1 +350,159 @@
    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 Float16Input {}
    7         -
impl Float16Input {
    8         -
    /// Creates a new builder-style object to manufacture [`Float16Input`](crate::input::Float16Input).
    9         -
    pub fn builder() -> crate::input::float16_input::Builder {
   10         -
        crate::input::float16_input::Builder::default()
   11         -
    }
   12         -
}
   13         -
impl crate::constrained::Constrained for crate::input::Float16Input {
   14         -
    type Unconstrained = crate::input::float16_input::Builder;
   15         -
}
   16         -
   17         -
#[allow(missing_docs)] // documentation missing in model
   18         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
   19         -
pub struct SparseNullsOperationInput {
   20         -
    #[allow(missing_docs)] // documentation missing in model
   21         -
    pub sparse_string_list:
   22         -
        ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
   23         -
    #[allow(missing_docs)] // documentation missing in model
   24         -
    pub sparse_string_map: ::std::option::Option<
   25         -
        ::std::collections::HashMap<
   26         -
            ::std::string::String,
   27         -
            ::std::option::Option<::std::string::String>,
   28         -
        >,
   29         -
    >,
   30         -
}
   31         -
impl SparseNullsOperationInput {
   32         -
    #[allow(missing_docs)] // documentation missing in model
   33         -
    pub fn sparse_string_list(
   34         -
        &self,
   35         -
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
   36         -
        self.sparse_string_list.as_deref()
   37         -
    }
   38         -
    #[allow(missing_docs)] // documentation missing in model
   39         -
    pub fn sparse_string_map(
   40         -
        &self,
   41         -
    ) -> ::std::option::Option<
   42         -
        &::std::collections::HashMap<
   43         -
            ::std::string::String,
   44         -
            ::std::option::Option<::std::string::String>,
   45         -
        >,
   46         -
    > {
   47         -
        self.sparse_string_map.as_ref()
   48         -
    }
   49         -
}
   50         -
impl SparseNullsOperationInput {
   51         -
    /// Creates a new builder-style object to manufacture [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
   52         -
    pub fn builder() -> crate::input::sparse_nulls_operation_input::Builder {
   53         -
        crate::input::sparse_nulls_operation_input::Builder::default()
   54         -
    }
   55         -
}
   56         -
impl crate::constrained::Constrained for crate::input::SparseNullsOperationInput {
   57         -
    type Unconstrained = crate::input::sparse_nulls_operation_input::Builder;
   58         -
}
   59         -
   60         -
#[allow(missing_docs)] // documentation missing in model
   61         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
   62         -
pub struct OperationWithDefaultsInput {
   63         -
    #[allow(missing_docs)] // documentation missing in model
   64         -
    pub defaults: ::std::option::Option<crate::model::Defaults>,
   65         -
    #[allow(missing_docs)] // documentation missing in model
   66         -
    pub client_optional_defaults: ::std::option::Option<crate::model::ClientOptionalDefaults>,
   67         -
    #[allow(missing_docs)] // documentation missing in model
   68         -
    pub top_level_default: ::std::string::String,
   69         -
    #[allow(missing_docs)] // documentation missing in model
   70         -
    pub other_top_level_default: i32,
   71         -
}
   72         -
impl OperationWithDefaultsInput {
   73         -
    #[allow(missing_docs)] // documentation missing in model
   74         -
    pub fn defaults(&self) -> ::std::option::Option<&crate::model::Defaults> {
   75         -
        self.defaults.as_ref()
   76         -
    }
   77         -
    #[allow(missing_docs)] // documentation missing in model
   78         -
    pub fn client_optional_defaults(
   79         -
        &self,
   80         -
    ) -> ::std::option::Option<&crate::model::ClientOptionalDefaults> {
   81         -
        self.client_optional_defaults.as_ref()
   82         -
    }
   83         -
    #[allow(missing_docs)] // documentation missing in model
   84         -
    pub fn top_level_default(&self) -> &str {
   85         -
        use std::ops::Deref;
   86         -
        self.top_level_default.deref()
   87         -
    }
   88         -
    #[allow(missing_docs)] // documentation missing in model
   89         -
    pub fn other_top_level_default(&self) -> i32 {
   90         -
        self.other_top_level_default
   91         -
    }
   92         -
}
   93         -
impl OperationWithDefaultsInput {
   94         -
    /// Creates a new builder-style object to manufacture [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput).
   95         -
    pub fn builder() -> crate::input::operation_with_defaults_input::Builder {
   96         -
        crate::input::operation_with_defaults_input::Builder::default()
   97         -
    }
   98         -
}
   99         -
impl crate::constrained::Constrained for crate::input::OperationWithDefaultsInput {
  100         -
    type Unconstrained = crate::input::operation_with_defaults_input::Builder;
  101         -
}
  102         -
  103         -
#[allow(missing_docs)] // documentation missing in model
  104         -
#[derive(
  105         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  106         -
)]
  107         -
pub struct FractionalSecondsInput {}
  108         -
impl FractionalSecondsInput {
  109         -
    /// Creates a new builder-style object to manufacture [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
  110         -
    pub fn builder() -> crate::input::fractional_seconds_input::Builder {
  111         -
        crate::input::fractional_seconds_input::Builder::default()
           6  +
pub struct NoInputOutputInput {}
           7  +
impl NoInputOutputInput {
           8  +
    /// Creates a new builder-style object to manufacture [`NoInputOutputInput`](crate::input::NoInputOutputInput).
           9  +
    pub fn builder() -> crate::input::no_input_output_input::Builder {
          10  +
        crate::input::no_input_output_input::Builder::default()
  112     11   
    }
  113     12   
}
  114         -
impl crate::constrained::Constrained for crate::input::FractionalSecondsInput {
  115         -
    type Unconstrained = crate::input::fractional_seconds_input::Builder;
          13  +
impl crate::constrained::Constrained for crate::input::NoInputOutputInput {
          14  +
    type Unconstrained = crate::input::no_input_output_input::Builder;
  116     15   
}
  117     16   
  118     17   
#[allow(missing_docs)] // documentation missing in model
  119     18   
#[derive(
  120     19   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  121     20   
)]
  122         -
pub struct GreetingWithErrorsInput {}
  123         -
impl GreetingWithErrorsInput {
  124         -
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
  125         -
    pub fn builder() -> crate::input::greeting_with_errors_input::Builder {
  126         -
        crate::input::greeting_with_errors_input::Builder::default()
          21  +
pub struct EmptyInputOutputInput {}
          22  +
impl EmptyInputOutputInput {
          23  +
    /// Creates a new builder-style object to manufacture [`EmptyInputOutputInput`](crate::input::EmptyInputOutputInput).
          24  +
    pub fn builder() -> crate::input::empty_input_output_input::Builder {
          25  +
        crate::input::empty_input_output_input::Builder::default()
  127     26   
    }
  128     27   
}
  129         -
impl crate::constrained::Constrained for crate::input::GreetingWithErrorsInput {
  130         -
    type Unconstrained = crate::input::greeting_with_errors_input::Builder;
          28  +
impl crate::constrained::Constrained for crate::input::EmptyInputOutputInput {
          29  +
    type Unconstrained = crate::input::empty_input_output_input::Builder;
  131     30   
}
  132     31   
  133     32   
#[allow(missing_docs)] // documentation missing in model
  134     33   
#[derive(
  135     34   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  136     35   
)]
  137         -
pub struct RecursiveShapesInput {
          36  +
pub struct OptionalInputOutputInput {
  138     37   
    #[allow(missing_docs)] // documentation missing in model
  139         -
    pub nested: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
          38  +
    pub value: ::std::option::Option<::std::string::String>,
  140     39   
}
  141         -
impl RecursiveShapesInput {
          40  +
impl OptionalInputOutputInput {
  142     41   
    #[allow(missing_docs)] // documentation missing in model
  143         -
    pub fn nested(
  144         -
        &self,
  145         -
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested1> {
  146         -
        self.nested.as_ref()
          42  +
    pub fn value(&self) -> ::std::option::Option<&str> {
          43  +
        self.value.as_deref()
  147     44   
    }
  148     45   
}
  149         -
impl RecursiveShapesInput {
  150         -
    /// Creates a new builder-style object to manufacture [`RecursiveShapesInput`](crate::input::RecursiveShapesInput).
  151         -
    pub fn builder() -> crate::input::recursive_shapes_input::Builder {
  152         -
        crate::input::recursive_shapes_input::Builder::default()
          46  +
impl OptionalInputOutputInput {
          47  +
    /// Creates a new builder-style object to manufacture [`OptionalInputOutputInput`](crate::input::OptionalInputOutputInput).
          48  +
    pub fn builder() -> crate::input::optional_input_output_input::Builder {
          49  +
        crate::input::optional_input_output_input::Builder::default()
  153     50   
    }
  154     51   
}
  155         -
impl crate::constrained::Constrained for crate::input::RecursiveShapesInput {
  156         -
    type Unconstrained = crate::input::recursive_shapes_input::Builder;
          52  +
impl crate::constrained::Constrained for crate::input::OptionalInputOutputInput {
          53  +
    type Unconstrained = crate::input::optional_input_output_input::Builder;
  157     54   
}
  158     55   
  159     56   
#[allow(missing_docs)] // documentation missing in model
  160         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  161         -
pub struct RpcV2CborSparseMapsInput {
          57  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
          58  +
pub struct SimpleScalarPropertiesInput {
  162     59   
    #[allow(missing_docs)] // documentation missing in model
  163         -
    pub sparse_struct_map: ::std::option::Option<
  164         -
        ::std::collections::HashMap<
  165         -
            ::std::string::String,
  166         -
            ::std::option::Option<crate::model::GreetingStruct>,
  167         -
        >,
  168         -
    >,
          60  +
    pub true_boolean_value: ::std::option::Option<bool>,
  169     61   
    #[allow(missing_docs)] // documentation missing in model
  170         -
    pub sparse_number_map: ::std::option::Option<
  171         -
        ::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
  172         -
    >,
          62  +
    pub false_boolean_value: ::std::option::Option<bool>,
  173     63   
    #[allow(missing_docs)] // documentation missing in model
  174         -
    pub sparse_boolean_map: ::std::option::Option<
  175         -
        ::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
  176         -
    >,
          64  +
    pub byte_value: ::std::option::Option<i8>,
  177     65   
    #[allow(missing_docs)] // documentation missing in model
  178         -
    pub sparse_string_map: ::std::option::Option<
  179         -
        ::std::collections::HashMap<
  180         -
            ::std::string::String,
  181         -
            ::std::option::Option<::std::string::String>,
  182         -
        >,
  183         -
    >,
          66  +
    pub double_value: ::std::option::Option<f64>,
  184     67   
    #[allow(missing_docs)] // documentation missing in model
  185         -
    pub sparse_set_map: ::std::option::Option<
  186         -
        ::std::collections::HashMap<
  187         -
            ::std::string::String,
  188         -
            ::std::option::Option<crate::model::StringSet>,
  189         -
        >,
  190         -
    >,
  191         -
}
  192         -
impl RpcV2CborSparseMapsInput {
          68  +
    pub float_value: ::std::option::Option<f32>,
  193     69   
    #[allow(missing_docs)] // documentation missing in model
  194         -
    pub fn sparse_struct_map(
  195         -
        &self,
  196         -
    ) -> ::std::option::Option<
  197         -
        &::std::collections::HashMap<
  198         -
            ::std::string::String,
  199         -
            ::std::option::Option<crate::model::GreetingStruct>,
  200         -
        >,
  201         -
    > {
  202         -
        self.sparse_struct_map.as_ref()
  203         -
    }
          70  +
    pub integer_value: ::std::option::Option<i32>,
  204     71   
    #[allow(missing_docs)] // documentation missing in model
  205         -
    pub fn sparse_number_map(
  206         -
        &self,
  207         -
    ) -> ::std::option::Option<
  208         -
        &::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
  209         -
    > {
  210         -
        self.sparse_number_map.as_ref()
  211         -
    }
          72  +
    pub long_value: ::std::option::Option<i64>,
  212     73   
    #[allow(missing_docs)] // documentation missing in model
  213         -
    pub fn sparse_boolean_map(
  214         -
        &self,
  215         -
    ) -> ::std::option::Option<
  216         -
        &::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
  217         -
    > {
  218         -
        self.sparse_boolean_map.as_ref()
  219         -
    }
          74  +
    pub short_value: ::std::option::Option<i16>,
  220     75   
    #[allow(missing_docs)] // documentation missing in model
  221         -
    pub fn sparse_string_map(
  222         -
        &self,
  223         -
    ) -> ::std::option::Option<
  224         -
        &::std::collections::HashMap<
  225         -
            ::std::string::String,
  226         -
            ::std::option::Option<::std::string::String>,
  227         -
        >,
  228         -
    > {
  229         -
        self.sparse_string_map.as_ref()
  230         -
    }
          76  +
    pub string_value: ::std::option::Option<::std::string::String>,
  231     77   
    #[allow(missing_docs)] // documentation missing in model
  232         -
    pub fn sparse_set_map(
  233         -
        &self,
  234         -
    ) -> ::std::option::Option<
  235         -
        &::std::collections::HashMap<
  236         -
            ::std::string::String,
  237         -
            ::std::option::Option<crate::model::StringSet>,
  238         -
        >,
  239         -
    > {
  240         -
        self.sparse_set_map.as_ref()
  241         -
    }
  242         -
}
  243         -
impl RpcV2CborSparseMapsInput {
  244         -
    /// Creates a new builder-style object to manufacture [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput).
  245         -
    pub fn builder() -> crate::input::rpc_v2_cbor_sparse_maps_input::Builder {
  246         -
        crate::input::rpc_v2_cbor_sparse_maps_input::Builder::default()
  247         -
    }
  248         -
}
  249         -
impl crate::constrained::Constrained for crate::input::RpcV2CborSparseMapsInput {
  250         -
    type Unconstrained = crate::input::rpc_v2_cbor_sparse_maps_input::Builder;
          78  +
    pub blob_value: ::std::option::Option<::aws_smithy_types::Blob>,
  251     79   
}
  252         -
  253         -
#[allow(missing_docs)] // documentation missing in model
  254         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  255         -
pub struct RpcV2CborDenseMapsInput {
          80  +
impl SimpleScalarPropertiesInput {
  256     81   
    #[allow(missing_docs)] // documentation missing in model
  257         -
    pub dense_struct_map: ::std::option::Option<
  258         -
        ::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
  259         -
    >,
          82  +
    pub fn true_boolean_value(&self) -> ::std::option::Option<bool> {
          83  +
        self.true_boolean_value
          84  +
    }
  260     85   
    #[allow(missing_docs)] // documentation missing in model
  261         -
    pub dense_number_map:
  262         -
        ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
          86  +
    pub fn false_boolean_value(&self) -> ::std::option::Option<bool> {
          87  +
        self.false_boolean_value
          88  +
    }
  263     89   
    #[allow(missing_docs)] // documentation missing in model
  264         -
    pub dense_boolean_map:
  265         -
        ::std::option::Option<::std::collections::HashMap<::std::string::String, bool>>,
          90  +
    pub fn byte_value(&self) -> ::std::option::Option<i8> {
          91  +
        self.byte_value
          92  +
    }
  266     93   
    #[allow(missing_docs)] // documentation missing in model
  267         -
    pub dense_string_map: ::std::option::Option<
  268         -
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  269         -
    >,
          94  +
    pub fn double_value(&self) -> ::std::option::Option<f64> {
          95  +
        self.double_value
          96  +
    }
  270     97   
    #[allow(missing_docs)] // documentation missing in model
  271         -
    pub dense_set_map: ::std::option::Option<
  272         -
        ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
  273         -
    >,
  274         -
}
  275         -
impl RpcV2CborDenseMapsInput {
          98  +
    pub fn float_value(&self) -> ::std::option::Option<f32> {
          99  +
        self.float_value
         100  +
    }
  276    101   
    #[allow(missing_docs)] // documentation missing in model
  277         -
    pub fn dense_struct_map(
  278         -
        &self,
  279         -
    ) -> ::std::option::Option<
  280         -
        &::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
  281         -
    > {
  282         -
        self.dense_struct_map.as_ref()
         102  +
    pub fn integer_value(&self) -> ::std::option::Option<i32> {
         103  +
        self.integer_value
  283    104   
    }
  284    105   
    #[allow(missing_docs)] // documentation missing in model
  285         -
    pub fn dense_number_map(
  286         -
        &self,
  287         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
  288         -
        self.dense_number_map.as_ref()
         106  +
    pub fn long_value(&self) -> ::std::option::Option<i64> {
         107  +
        self.long_value
  289    108   
    }
  290    109   
    #[allow(missing_docs)] // documentation missing in model
  291         -
    pub fn dense_boolean_map(
  292         -
        &self,
  293         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, bool>> {
  294         -
        self.dense_boolean_map.as_ref()
         110  +
    pub fn short_value(&self) -> ::std::option::Option<i16> {
         111  +
        self.short_value
  295    112   
    }
  296    113   
    #[allow(missing_docs)] // documentation missing in model
  297         -
    pub fn dense_string_map(
  298         -
        &self,
  299         -
    ) -> ::std::option::Option<
  300         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
  301         -
    > {
  302         -
        self.dense_string_map.as_ref()
         114  +
    pub fn string_value(&self) -> ::std::option::Option<&str> {
         115  +
        self.string_value.as_deref()
  303    116   
    }
  304    117   
    #[allow(missing_docs)] // documentation missing in model
  305         -
    pub fn dense_set_map(
  306         -
        &self,
  307         -
    ) -> ::std::option::Option<
  308         -
        &::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
  309         -
    > {
  310         -
        self.dense_set_map.as_ref()
         118  +
    pub fn blob_value(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
         119  +
        self.blob_value.as_ref()
  311    120   
    }
  312    121   
}
  313         -
impl RpcV2CborDenseMapsInput {
  314         -
    /// Creates a new builder-style object to manufacture [`RpcV2CborDenseMapsInput`](crate::input::RpcV2CborDenseMapsInput).
  315         -
    pub fn builder() -> crate::input::rpc_v2_cbor_dense_maps_input::Builder {
  316         -
        crate::input::rpc_v2_cbor_dense_maps_input::Builder::default()
         122  +
impl SimpleScalarPropertiesInput {
         123  +
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
         124  +
    pub fn builder() -> crate::input::simple_scalar_properties_input::Builder {
         125  +
        crate::input::simple_scalar_properties_input::Builder::default()
  317    126   
    }
  318    127   
}
  319         -
impl crate::constrained::Constrained for crate::input::RpcV2CborDenseMapsInput {
  320         -
    type Unconstrained = crate::input::rpc_v2_cbor_dense_maps_input::Builder;
         128  +
impl crate::constrained::Constrained for crate::input::SimpleScalarPropertiesInput {
         129  +
    type Unconstrained = crate::input::simple_scalar_properties_input::Builder;
  321    130   
}
  322    131   
  323    132   
#[allow(missing_docs)] // documentation missing in model
  324    133   
#[derive(
  325    134   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  326    135   
)]
  327    136   
pub struct RpcV2CborListsInput {
  328    137   
    #[allow(missing_docs)] // documentation missing in model
  329    138   
    pub string_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
  330    139   
    #[allow(missing_docs)] // documentation missing in model
@@ -375,184 +1157,1108 @@
  395    204   
    /// Creates a new builder-style object to manufacture [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput).
  396    205   
    pub fn builder() -> crate::input::rpc_v2_cbor_lists_input::Builder {
  397    206   
        crate::input::rpc_v2_cbor_lists_input::Builder::default()
  398    207   
    }
  399    208   
}
  400    209   
impl crate::constrained::Constrained for crate::input::RpcV2CborListsInput {
  401    210   
    type Unconstrained = crate::input::rpc_v2_cbor_lists_input::Builder;
  402    211   
}
  403    212   
  404    213   
#[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 true_boolean_value: ::std::option::Option<bool>,
  409         -
    #[allow(missing_docs)] // documentation missing in model
  410         -
    pub false_boolean_value: ::std::option::Option<bool>,
  411         -
    #[allow(missing_docs)] // documentation missing in model
  412         -
    pub byte_value: ::std::option::Option<i8>,
  413         -
    #[allow(missing_docs)] // documentation missing in model
  414         -
    pub double_value: ::std::option::Option<f64>,
  415         -
    #[allow(missing_docs)] // documentation missing in model
  416         -
    pub float_value: ::std::option::Option<f32>,
         214  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         215  +
pub struct RpcV2CborDenseMapsInput {
  417    216   
    #[allow(missing_docs)] // documentation missing in model
  418         -
    pub integer_value: ::std::option::Option<i32>,
         217  +
    pub dense_struct_map: ::std::option::Option<
         218  +
        ::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
         219  +
    >,
  419    220   
    #[allow(missing_docs)] // documentation missing in model
  420         -
    pub long_value: ::std::option::Option<i64>,
         221  +
    pub dense_number_map:
         222  +
        ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
  421    223   
    #[allow(missing_docs)] // documentation missing in model
  422         -
    pub short_value: ::std::option::Option<i16>,
         224  +
    pub dense_boolean_map:
         225  +
        ::std::option::Option<::std::collections::HashMap<::std::string::String, bool>>,
  423    226   
    #[allow(missing_docs)] // documentation missing in model
  424         -
    pub string_value: ::std::option::Option<::std::string::String>,
         227  +
    pub dense_string_map: ::std::option::Option<
         228  +
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         229  +
    >,
  425    230   
    #[allow(missing_docs)] // documentation missing in model
  426         -
    pub blob_value: ::std::option::Option<::aws_smithy_types::Blob>,
         231  +
    pub dense_set_map: ::std::option::Option<
         232  +
        ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
         233  +
    >,
  427    234   
}
  428         -
impl SimpleScalarPropertiesInput {
         235  +
impl RpcV2CborDenseMapsInput {
  429    236   
    #[allow(missing_docs)] // documentation missing in model
  430         -
    pub fn true_boolean_value(&self) -> ::std::option::Option<bool> {
  431         -
        self.true_boolean_value
         237  +
    pub fn dense_struct_map(
         238  +
        &self,
         239  +
    ) -> ::std::option::Option<
         240  +
        &::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
         241  +
    > {
         242  +
        self.dense_struct_map.as_ref()
  432    243   
    }
  433    244   
    #[allow(missing_docs)] // documentation missing in model
  434         -
    pub fn false_boolean_value(&self) -> ::std::option::Option<bool> {
  435         -
        self.false_boolean_value
         245  +
    pub fn dense_number_map(
         246  +
        &self,
         247  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
         248  +
        self.dense_number_map.as_ref()
  436    249   
    }
  437    250   
    #[allow(missing_docs)] // documentation missing in model
  438         -
    pub fn byte_value(&self) -> ::std::option::Option<i8> {
  439         -
        self.byte_value
         251  +
    pub fn dense_boolean_map(
         252  +
        &self,
         253  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, bool>> {
         254  +
        self.dense_boolean_map.as_ref()
  440    255   
    }
  441    256   
    #[allow(missing_docs)] // documentation missing in model
  442         -
    pub fn double_value(&self) -> ::std::option::Option<f64> {
  443         -
        self.double_value
         257  +
    pub fn dense_string_map(
         258  +
        &self,
         259  +
    ) -> ::std::option::Option<
         260  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
         261  +
    > {
         262  +
        self.dense_string_map.as_ref()
  444    263   
    }
  445    264   
    #[allow(missing_docs)] // documentation missing in model
  446         -
    pub fn float_value(&self) -> ::std::option::Option<f32> {
  447         -
        self.float_value
         265  +
    pub fn dense_set_map(
         266  +
        &self,
         267  +
    ) -> ::std::option::Option<
         268  +
        &::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
         269  +
    > {
         270  +
        self.dense_set_map.as_ref()
  448    271   
    }
  449         -
    #[allow(missing_docs)] // documentation missing in model
  450         -
    pub fn integer_value(&self) -> ::std::option::Option<i32> {
  451         -
        self.integer_value
         272  +
}
         273  +
impl RpcV2CborDenseMapsInput {
         274  +
    /// Creates a new builder-style object to manufacture [`RpcV2CborDenseMapsInput`](crate::input::RpcV2CborDenseMapsInput).
         275  +
    pub fn builder() -> crate::input::rpc_v2_cbor_dense_maps_input::Builder {
         276  +
        crate::input::rpc_v2_cbor_dense_maps_input::Builder::default()
  452    277   
    }
         278  +
}
         279  +
impl crate::constrained::Constrained for crate::input::RpcV2CborDenseMapsInput {
         280  +
    type Unconstrained = crate::input::rpc_v2_cbor_dense_maps_input::Builder;
         281  +
}
         282  +
         283  +
#[allow(missing_docs)] // documentation missing in model
         284  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         285  +
pub struct RpcV2CborSparseMapsInput {
  453    286   
    #[allow(missing_docs)] // documentation missing in model
  454         -
    pub fn long_value(&self) -> ::std::option::Option<i64> {
  455         -
        self.long_value
         287  +
    pub sparse_struct_map: ::std::option::Option<
         288  +
        ::std::collections::HashMap<
         289  +
            ::std::string::String,
         290  +
            ::std::option::Option<crate::model::GreetingStruct>,
         291  +
        >,
         292  +
    >,
         293  +
    #[allow(missing_docs)] // documentation missing in model
         294  +
    pub sparse_number_map: ::std::option::Option<
         295  +
        ::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
         296  +
    >,
         297  +
    #[allow(missing_docs)] // documentation missing in model
         298  +
    pub sparse_boolean_map: ::std::option::Option<
         299  +
        ::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
         300  +
    >,
         301  +
    #[allow(missing_docs)] // documentation missing in model
         302  +
    pub sparse_string_map: ::std::option::Option<
         303  +
        ::std::collections::HashMap<
         304  +
            ::std::string::String,
         305  +
            ::std::option::Option<::std::string::String>,
         306  +
        >,
         307  +
    >,
         308  +
    #[allow(missing_docs)] // documentation missing in model
         309  +
    pub sparse_set_map: ::std::option::Option<
         310  +
        ::std::collections::HashMap<
         311  +
            ::std::string::String,
         312  +
            ::std::option::Option<crate::model::StringSet>,
         313  +
        >,
         314  +
    >,
         315  +
}
         316  +
impl RpcV2CborSparseMapsInput {
         317  +
    #[allow(missing_docs)] // documentation missing in model
         318  +
    pub fn sparse_struct_map(
         319  +
        &self,
         320  +
    ) -> ::std::option::Option<
         321  +
        &::std::collections::HashMap<
         322  +
            ::std::string::String,
         323  +
            ::std::option::Option<crate::model::GreetingStruct>,
         324  +
        >,
         325  +
    > {
         326  +
        self.sparse_struct_map.as_ref()
         327  +
    }
         328  +
    #[allow(missing_docs)] // documentation missing in model
         329  +
    pub fn sparse_number_map(
         330  +
        &self,
         331  +
    ) -> ::std::option::Option<
         332  +
        &::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
         333  +
    > {
         334  +
        self.sparse_number_map.as_ref()
  456    335   
    }
  457    336   
    #[allow(missing_docs)] // documentation missing in model
  458         -
    pub fn short_value(&self) -> ::std::option::Option<i16> {
  459         -
        self.short_value
         337  +
    pub fn sparse_boolean_map(
         338  +
        &self,
         339  +
    ) -> ::std::option::Option<
         340  +
        &::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
         341  +
    > {
         342  +
        self.sparse_boolean_map.as_ref()
  460    343   
    }
  461    344   
    #[allow(missing_docs)] // documentation missing in model
  462         -
    pub fn string_value(&self) -> ::std::option::Option<&str> {
  463         -
        self.string_value.as_deref()
         345  +
    pub fn sparse_string_map(
         346  +
        &self,
         347  +
    ) -> ::std::option::Option<
         348  +
        &::std::collections::HashMap<
         349  +
            ::std::string::String,
         350  +
            ::std::option::Option<::std::string::String>,
         351  +
        >,
         352  +
    > {
         353  +
        self.sparse_string_map.as_ref()
  464    354   
    }
  465    355   
    #[allow(missing_docs)] // documentation missing in model
  466         -
    pub fn blob_value(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
  467         -
        self.blob_value.as_ref()
         356  +
    pub fn sparse_set_map(
         357  +
        &self,
         358  +
    ) -> ::std::option::Option<
         359  +
        &::std::collections::HashMap<
         360  +
            ::std::string::String,
         361  +
            ::std::option::Option<crate::model::StringSet>,
         362  +
        >,
         363  +
    > {
         364  +
        self.sparse_set_map.as_ref()
  468    365   
    }
  469    366   
}
  470         -
impl SimpleScalarPropertiesInput {
  471         -
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
  472         -
    pub fn builder() -> crate::input::simple_scalar_properties_input::Builder {
  473         -
        crate::input::simple_scalar_properties_input::Builder::default()
         367  +
impl RpcV2CborSparseMapsInput {
         368  +
    /// Creates a new builder-style object to manufacture [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput).
         369  +
    pub fn builder() -> crate::input::rpc_v2_cbor_sparse_maps_input::Builder {
         370  +
        crate::input::rpc_v2_cbor_sparse_maps_input::Builder::default()
  474    371   
    }
  475    372   
}
  476         -
impl crate::constrained::Constrained for crate::input::SimpleScalarPropertiesInput {
  477         -
    type Unconstrained = crate::input::simple_scalar_properties_input::Builder;
         373  +
impl crate::constrained::Constrained for crate::input::RpcV2CborSparseMapsInput {
         374  +
    type Unconstrained = crate::input::rpc_v2_cbor_sparse_maps_input::Builder;
  478    375   
}
  479    376   
  480    377   
#[allow(missing_docs)] // documentation missing in model
  481    378   
#[derive(
  482    379   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  483    380   
)]
  484         -
pub struct OptionalInputOutputInput {
         381  +
pub struct RecursiveShapesInput {
  485    382   
    #[allow(missing_docs)] // documentation missing in model
  486         -
    pub value: ::std::option::Option<::std::string::String>,
         383  +
    pub nested: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
  487    384   
}
  488         -
impl OptionalInputOutputInput {
         385  +
impl RecursiveShapesInput {
  489    386   
    #[allow(missing_docs)] // documentation missing in model
  490         -
    pub fn value(&self) -> ::std::option::Option<&str> {
  491         -
        self.value.as_deref()
         387  +
    pub fn nested(
         388  +
        &self,
         389  +
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested1> {
         390  +
        self.nested.as_ref()
  492    391   
    }
  493    392   
}
  494         -
impl OptionalInputOutputInput {
  495         -
    /// Creates a new builder-style object to manufacture [`OptionalInputOutputInput`](crate::input::OptionalInputOutputInput).
  496         -
    pub fn builder() -> crate::input::optional_input_output_input::Builder {
  497         -
        crate::input::optional_input_output_input::Builder::default()
         393  +
impl RecursiveShapesInput {
         394  +
    /// Creates a new builder-style object to manufacture [`RecursiveShapesInput`](crate::input::RecursiveShapesInput).
         395  +
    pub fn builder() -> crate::input::recursive_shapes_input::Builder {
         396  +
        crate::input::recursive_shapes_input::Builder::default()
  498    397   
    }
  499    398   
}
  500         -
impl crate::constrained::Constrained for crate::input::OptionalInputOutputInput {
  501         -
    type Unconstrained = crate::input::optional_input_output_input::Builder;
         399  +
impl crate::constrained::Constrained for crate::input::RecursiveShapesInput {
         400  +
    type Unconstrained = crate::input::recursive_shapes_input::Builder;
  502    401   
}
  503    402   
  504    403   
#[allow(missing_docs)] // documentation missing in model
  505    404   
#[derive(
  506    405   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  507    406   
)]
  508         -
pub struct EmptyInputOutputInput {}
  509         -
impl EmptyInputOutputInput {
  510         -
    /// Creates a new builder-style object to manufacture [`EmptyInputOutputInput`](crate::input::EmptyInputOutputInput).
  511         -
    pub fn builder() -> crate::input::empty_input_output_input::Builder {
  512         -
        crate::input::empty_input_output_input::Builder::default()
         407  +
pub struct GreetingWithErrorsInput {}
         408  +
impl GreetingWithErrorsInput {
         409  +
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
         410  +
    pub fn builder() -> crate::input::greeting_with_errors_input::Builder {
         411  +
        crate::input::greeting_with_errors_input::Builder::default()
  513    412   
    }
  514    413   
}
  515         -
impl crate::constrained::Constrained for crate::input::EmptyInputOutputInput {
  516         -
    type Unconstrained = crate::input::empty_input_output_input::Builder;
         414  +
impl crate::constrained::Constrained for crate::input::GreetingWithErrorsInput {
         415  +
    type Unconstrained = crate::input::greeting_with_errors_input::Builder;
  517    416   
}
  518    417   
  519    418   
#[allow(missing_docs)] // documentation missing in model
  520    419   
#[derive(
  521    420   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  522    421   
)]
  523         -
pub struct NoInputOutputInput {}
  524         -
impl NoInputOutputInput {
  525         -
    /// Creates a new builder-style object to manufacture [`NoInputOutputInput`](crate::input::NoInputOutputInput).
  526         -
    pub fn builder() -> crate::input::no_input_output_input::Builder {
  527         -
        crate::input::no_input_output_input::Builder::default()
         422  +
pub struct FractionalSecondsInput {}
         423  +
impl FractionalSecondsInput {
         424  +
    /// Creates a new builder-style object to manufacture [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
         425  +
    pub fn builder() -> crate::input::fractional_seconds_input::Builder {
         426  +
        crate::input::fractional_seconds_input::Builder::default()
  528    427   
    }
  529    428   
}
  530         -
impl crate::constrained::Constrained for crate::input::NoInputOutputInput {
  531         -
    type Unconstrained = crate::input::no_input_output_input::Builder;
         429  +
impl crate::constrained::Constrained for crate::input::FractionalSecondsInput {
         430  +
    type Unconstrained = crate::input::fractional_seconds_input::Builder;
  532    431   
}
  533         -
/// See [`Float16Input`](crate::input::Float16Input).
  534         -
pub mod float16_input {
  535    432   
  536         -
    impl ::std::convert::From<Builder> for crate::input::Float16Input {
  537         -
        fn from(builder: Builder) -> Self {
  538         -
            builder.build()
         433  +
#[allow(missing_docs)] // documentation missing in model
         434  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         435  +
pub struct OperationWithDefaultsInput {
         436  +
    #[allow(missing_docs)] // documentation missing in model
         437  +
    pub defaults: ::std::option::Option<crate::model::Defaults>,
         438  +
    #[allow(missing_docs)] // documentation missing in model
         439  +
    pub client_optional_defaults: ::std::option::Option<crate::model::ClientOptionalDefaults>,
         440  +
    #[allow(missing_docs)] // documentation missing in model
         441  +
    pub top_level_default: ::std::string::String,
         442  +
    #[allow(missing_docs)] // documentation missing in model
         443  +
    pub other_top_level_default: i32,
         444  +
}
         445  +
impl OperationWithDefaultsInput {
         446  +
    #[allow(missing_docs)] // documentation missing in model
         447  +
    pub fn defaults(&self) -> ::std::option::Option<&crate::model::Defaults> {
         448  +
        self.defaults.as_ref()
  539    449   
    }
         450  +
    #[allow(missing_docs)] // documentation missing in model
         451  +
    pub fn client_optional_defaults(
         452  +
        &self,
         453  +
    ) -> ::std::option::Option<&crate::model::ClientOptionalDefaults> {
         454  +
        self.client_optional_defaults.as_ref()
  540    455   
    }
  541         -
    /// A builder for [`Float16Input`](crate::input::Float16Input).
  542         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  543         -
    pub struct Builder {}
  544         -
    impl Builder {
  545         -
        /// Consumes the builder and constructs a [`Float16Input`](crate::input::Float16Input).
  546         -
        pub fn build(self) -> crate::input::Float16Input {
  547         -
            self.build_enforcing_all_constraints()
         456  +
    #[allow(missing_docs)] // documentation missing in model
         457  +
    pub fn top_level_default(&self) -> &str {
         458  +
        use std::ops::Deref;
         459  +
        self.top_level_default.deref()
  548    460   
    }
  549         -
        fn build_enforcing_all_constraints(self) -> crate::input::Float16Input {
  550         -
            crate::input::Float16Input {}
         461  +
    #[allow(missing_docs)] // documentation missing in model
         462  +
    pub fn other_top_level_default(&self) -> i32 {
         463  +
        self.other_top_level_default
  551    464   
    }
         465  +
}
         466  +
impl OperationWithDefaultsInput {
         467  +
    /// Creates a new builder-style object to manufacture [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput).
         468  +
    pub fn builder() -> crate::input::operation_with_defaults_input::Builder {
         469  +
        crate::input::operation_with_defaults_input::Builder::default()
  552    470   
    }
  553    471   
}
  554         -
/// See [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
  555         -
pub mod sparse_nulls_operation_input {
         472  +
impl crate::constrained::Constrained for crate::input::OperationWithDefaultsInput {
         473  +
    type Unconstrained = crate::input::operation_with_defaults_input::Builder;
         474  +
}
  556    475   
  557         -
    impl ::std::convert::From<Builder> for crate::input::SparseNullsOperationInput {
  558         -
        fn from(builder: Builder) -> Self {
  559         -
            builder.build()
  560         -
        }
  561         -
    }
  562         -
    /// A builder for [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
  563         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  564         -
    pub struct Builder {
  565         -
        pub(crate) sparse_string_list:
         476  +
#[allow(missing_docs)] // documentation missing in model
         477  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         478  +
pub struct SparseNullsOperationInput {
         479  +
    #[allow(missing_docs)] // documentation missing in model
         480  +
    pub sparse_string_list:
  566    481   
        ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
  567         -
        pub(crate) sparse_string_map: ::std::option::Option<
         482  +
    #[allow(missing_docs)] // documentation missing in model
         483  +
    pub sparse_string_map: ::std::option::Option<
  568    484   
        ::std::collections::HashMap<
  569    485   
            ::std::string::String,
  570    486   
            ::std::option::Option<::std::string::String>,
  571    487   
        >,
  572    488   
    >,
  573         -
    }
  574         -
    impl Builder {
         489  +
}
         490  +
impl SparseNullsOperationInput {
  575    491   
    #[allow(missing_docs)] // documentation missing in model
  576    492   
    pub fn sparse_string_list(
  577         -
            mut self,
  578         -
            input: ::std::option::Option<
  579         -
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
  580         -
            >,
  581         -
        ) -> Self {
  582         -
            self.sparse_string_list = input;
  583         -
            self
  584         -
        }
  585         -
        #[allow(missing_docs)] // documentation missing in model
  586         -
        pub(crate) fn set_sparse_string_list(
  587         -
            mut self,
  588         -
            input: Option<
  589         -
                impl ::std::convert::Into<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
  590         -
            >,
  591         -
        ) -> Self {
  592         -
            self.sparse_string_list = input.map(|v| v.into());
  593         -
            self
         493  +
        &self,
         494  +
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
         495  +
        self.sparse_string_list.as_deref()
  594    496   
    }
  595    497   
    #[allow(missing_docs)] // documentation missing in model
  596    498   
    pub fn sparse_string_map(
  597         -
            mut self,
  598         -
            input: ::std::option::Option<
  599         -
                ::std::collections::HashMap<
         499  +
        &self,
         500  +
    ) -> ::std::option::Option<
         501  +
        &::std::collections::HashMap<
  600    502   
            ::std::string::String,
  601    503   
            ::std::option::Option<::std::string::String>,
  602    504   
        >,
  603         -
            >,
  604         -
        ) -> Self {
  605         -
            self.sparse_string_map = input;
  606         -
            self
         505  +
    > {
         506  +
        self.sparse_string_map.as_ref()
  607    507   
    }
  608         -
        #[allow(missing_docs)] // documentation missing in model
  609         -
        pub(crate) fn set_sparse_string_map(
  610         -
            mut self,
  611         -
            input: Option<
  612         -
                impl ::std::convert::Into<
  613         -
                    ::std::collections::HashMap<
  614         -
                        ::std::string::String,
  615         -
                        ::std::option::Option<::std::string::String>,
  616         -
                    >,
  617         -
                >,
  618         -
            >,
  619         -
        ) -> Self {
  620         -
            self.sparse_string_map = input.map(|v| v.into());
  621         -
            self
         508  +
}
         509  +
impl SparseNullsOperationInput {
         510  +
    /// Creates a new builder-style object to manufacture [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
         511  +
    pub fn builder() -> crate::input::sparse_nulls_operation_input::Builder {
         512  +
        crate::input::sparse_nulls_operation_input::Builder::default()
  622    513   
    }
  623         -
        /// Consumes the builder and constructs a [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
  624         -
        pub fn build(self) -> crate::input::SparseNullsOperationInput {
         514  +
}
         515  +
impl crate::constrained::Constrained for crate::input::SparseNullsOperationInput {
         516  +
    type Unconstrained = crate::input::sparse_nulls_operation_input::Builder;
         517  +
}
         518  +
         519  +
#[allow(missing_docs)] // documentation missing in model
         520  +
#[derive(
         521  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         522  +
)]
         523  +
pub struct Float16Input {}
         524  +
impl Float16Input {
         525  +
    /// Creates a new builder-style object to manufacture [`Float16Input`](crate::input::Float16Input).
         526  +
    pub fn builder() -> crate::input::float16_input::Builder {
         527  +
        crate::input::float16_input::Builder::default()
         528  +
    }
         529  +
}
         530  +
impl crate::constrained::Constrained for crate::input::Float16Input {
         531  +
    type Unconstrained = crate::input::float16_input::Builder;
         532  +
}
         533  +
/// See [`NoInputOutputInput`](crate::input::NoInputOutputInput).
         534  +
pub mod no_input_output_input {
         535  +
         536  +
    impl ::std::convert::From<Builder> for crate::input::NoInputOutputInput {
         537  +
        fn from(builder: Builder) -> Self {
         538  +
            builder.build()
         539  +
        }
         540  +
    }
         541  +
    /// A builder for [`NoInputOutputInput`](crate::input::NoInputOutputInput).
         542  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         543  +
    pub struct Builder {}
         544  +
    impl Builder {
         545  +
        /// Consumes the builder and constructs a [`NoInputOutputInput`](crate::input::NoInputOutputInput).
         546  +
        pub fn build(self) -> crate::input::NoInputOutputInput {
  625    547   
            self.build_enforcing_all_constraints()
  626    548   
        }
  627         -
        fn build_enforcing_all_constraints(self) -> crate::input::SparseNullsOperationInput {
  628         -
            crate::input::SparseNullsOperationInput {
  629         -
                sparse_string_list: self.sparse_string_list,
  630         -
                sparse_string_map: self.sparse_string_map,
  631         -
            }
         549  +
        fn build_enforcing_all_constraints(self) -> crate::input::NoInputOutputInput {
         550  +
            crate::input::NoInputOutputInput {}
  632    551   
        }
  633    552   
    }
  634    553   
}
  635         -
/// See [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput).
  636         -
pub mod operation_with_defaults_input {
         554  +
/// See [`EmptyInputOutputInput`](crate::input::EmptyInputOutputInput).
         555  +
pub mod empty_input_output_input {
  637    556   
  638         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  639         -
    /// Holds one variant for each of the ways the builder can fail.
  640         -
    #[non_exhaustive]
  641         -
    #[allow(clippy::enum_variant_names)]
  642         -
    pub enum ConstraintViolation {
  643         -
        /// Constraint violation occurred building member `defaults` when building `OperationWithDefaultsInput`.
  644         -
        #[doc(hidden)]
  645         -
        Defaults(crate::model::defaults::ConstraintViolation),
         557  +
    impl ::std::convert::From<Builder> for crate::input::EmptyInputOutputInput {
         558  +
        fn from(builder: Builder) -> Self {
         559  +
            builder.build()
  646    560   
        }
  647         -
    impl ::std::fmt::Display for ConstraintViolation {
  648         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  649         -
            match self {
  650         -
                ConstraintViolation::Defaults(_) => write!(f, "constraint violation occurred building member `defaults` when building `OperationWithDefaultsInput`"),
  651    561   
    }
         562  +
    /// A builder for [`EmptyInputOutputInput`](crate::input::EmptyInputOutputInput).
         563  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         564  +
    pub struct Builder {}
         565  +
    impl Builder {
         566  +
        /// Consumes the builder and constructs a [`EmptyInputOutputInput`](crate::input::EmptyInputOutputInput).
         567  +
        pub fn build(self) -> crate::input::EmptyInputOutputInput {
         568  +
            self.build_enforcing_all_constraints()
  652    569   
        }
         570  +
        fn build_enforcing_all_constraints(self) -> crate::input::EmptyInputOutputInput {
         571  +
            crate::input::EmptyInputOutputInput {}
  653    572   
        }
  654         -
    impl ::std::error::Error for ConstraintViolation {}
  655         -
    impl ConstraintViolation {
  656         -
        pub(crate) fn as_validation_exception_field(
  657         -
            self,
  658         -
            path: ::std::string::String,
  659         -
        ) -> crate::model::ValidationExceptionField {
  660         -
            match self {
  661         -
                ConstraintViolation::Defaults(inner) => {
  662         -
                    inner.as_validation_exception_field(path + "/defaults")
  663    573   
    }
         574  +
}
         575  +
/// See [`OptionalInputOutputInput`](crate::input::OptionalInputOutputInput).
         576  +
pub mod optional_input_output_input {
         577  +
         578  +
    impl ::std::convert::From<Builder> for crate::input::OptionalInputOutputInput {
         579  +
        fn from(builder: Builder) -> Self {
         580  +
            builder.build()
  664    581   
        }
  665    582   
    }
         583  +
    /// A builder for [`OptionalInputOutputInput`](crate::input::OptionalInputOutputInput).
         584  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         585  +
    pub struct Builder {
         586  +
        pub(crate) value: ::std::option::Option<::std::string::String>,
  666    587   
    }
  667         -
    impl ::std::convert::From<ConstraintViolation>
  668         -
        for ::aws_smithy_legacy_http_server::protocol::rpc_v2_cbor::rejection::RequestRejection
  669         -
    {
  670         -
        fn from(constraint_violation: ConstraintViolation) -> Self {
  671         -
            let first_validation_exception_field =
  672         -
                constraint_violation.as_validation_exception_field("".to_owned());
  673         -
            let validation_exception = crate::error::ValidationException {
  674         -
                message: format!(
  675         -
                    "1 validation error detected. {}",
  676         -
                    &first_validation_exception_field.message
  677         -
                ),
  678         -
                field_list: Some(vec![first_validation_exception_field]),
  679         -
            };
  680         -
            Self::ConstraintViolation(
  681         -
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
  682         -
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
  683         -
                            )
         588  +
    impl Builder {
         589  +
        #[allow(missing_docs)] // documentation missing in model
         590  +
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         591  +
            self.value = input;
         592  +
            self
  684    593   
        }
         594  +
        #[allow(missing_docs)] // documentation missing in model
         595  +
        pub(crate) fn set_value(
         596  +
            mut self,
         597  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
         598  +
        ) -> Self {
         599  +
            self.value = input.map(|v| v.into());
         600  +
            self
  685    601   
        }
  686         -
    impl ::std::convert::From<Builder>
  687         -
        for crate::constrained::MaybeConstrained<crate::input::OperationWithDefaultsInput>
  688         -
    {
  689         -
        fn from(builder: Builder) -> Self {
  690         -
            Self::Unconstrained(builder)
         602  +
        /// Consumes the builder and constructs a [`OptionalInputOutputInput`](crate::input::OptionalInputOutputInput).
         603  +
        pub fn build(self) -> crate::input::OptionalInputOutputInput {
         604  +
            self.build_enforcing_all_constraints()
  691    605   
        }
         606  +
        fn build_enforcing_all_constraints(self) -> crate::input::OptionalInputOutputInput {
         607  +
            crate::input::OptionalInputOutputInput { value: self.value }
  692    608   
        }
  693         -
    impl ::std::convert::TryFrom<Builder> for crate::input::OperationWithDefaultsInput {
  694         -
        type Error = ConstraintViolation;
         609  +
    }
         610  +
}
         611  +
/// See [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
         612  +
pub mod simple_scalar_properties_input {
  695    613   
  696         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
         614  +
    impl ::std::convert::From<Builder> for crate::input::SimpleScalarPropertiesInput {
         615  +
        fn from(builder: Builder) -> Self {
  697    616   
            builder.build()
  698    617   
        }
  699    618   
    }
  700         -
    /// A builder for [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput).
         619  +
    /// A builder for [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
  701    620   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  702    621   
    pub struct Builder {
  703         -
        pub(crate) defaults:
  704         -
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::Defaults>>,
  705         -
        pub(crate) client_optional_defaults:
  706         -
            ::std::option::Option<crate::model::ClientOptionalDefaults>,
  707         -
        pub(crate) top_level_default: ::std::option::Option<::std::string::String>,
  708         -
        pub(crate) other_top_level_default: ::std::option::Option<i32>,
         622  +
        pub(crate) true_boolean_value: ::std::option::Option<bool>,
         623  +
        pub(crate) false_boolean_value: ::std::option::Option<bool>,
         624  +
        pub(crate) byte_value: ::std::option::Option<i8>,
         625  +
        pub(crate) double_value: ::std::option::Option<f64>,
         626  +
        pub(crate) float_value: ::std::option::Option<f32>,
         627  +
        pub(crate) integer_value: ::std::option::Option<i32>,
         628  +
        pub(crate) long_value: ::std::option::Option<i64>,
         629  +
        pub(crate) short_value: ::std::option::Option<i16>,
         630  +
        pub(crate) string_value: ::std::option::Option<::std::string::String>,
         631  +
        pub(crate) blob_value: ::std::option::Option<::aws_smithy_types::Blob>,
  709    632   
    }
  710    633   
    impl Builder {
  711    634   
        #[allow(missing_docs)] // documentation missing in model
  712         -
        pub fn defaults(mut self, input: ::std::option::Option<crate::model::Defaults>) -> Self {
  713         -
            self.defaults = input.map(crate::constrained::MaybeConstrained::Constrained);
         635  +
        pub fn true_boolean_value(mut self, input: ::std::option::Option<bool>) -> Self {
         636  +
            self.true_boolean_value = input;
  714    637   
            self
  715    638   
        }
  716    639   
        #[allow(missing_docs)] // documentation missing in model
  717         -
        pub(crate) fn set_defaults(
         640  +
        pub(crate) fn set_true_boolean_value(
  718    641   
            mut self,
  719         -
            input: Option<
  720         -
                impl ::std::convert::Into<crate::constrained::MaybeConstrained<crate::model::Defaults>>,
  721         -
            >,
         642  +
            input: Option<impl ::std::convert::Into<bool>>,
  722    643   
        ) -> Self {
  723         -
            self.defaults = input.map(|v| v.into());
         644  +
            self.true_boolean_value = input.map(|v| v.into());
  724    645   
            self
  725    646   
        }
  726    647   
        #[allow(missing_docs)] // documentation missing in model
  727         -
        pub fn client_optional_defaults(
  728         -
            mut self,
  729         -
            input: ::std::option::Option<crate::model::ClientOptionalDefaults>,
  730         -
        ) -> Self {
  731         -
            self.client_optional_defaults = input;
         648  +
        pub fn false_boolean_value(mut self, input: ::std::option::Option<bool>) -> Self {
         649  +
            self.false_boolean_value = input;
  732    650   
            self
  733    651   
        }
  734    652   
        #[allow(missing_docs)] // documentation missing in model
  735         -
        pub(crate) fn set_client_optional_defaults(
         653  +
        pub(crate) fn set_false_boolean_value(
  736    654   
            mut self,
  737         -
            input: Option<impl ::std::convert::Into<crate::model::ClientOptionalDefaults>>,
         655  +
            input: Option<impl ::std::convert::Into<bool>>,
  738    656   
        ) -> Self {
  739         -
            self.client_optional_defaults = input.map(|v| v.into());
         657  +
            self.false_boolean_value = input.map(|v| v.into());
  740    658   
            self
  741    659   
        }
  742    660   
        #[allow(missing_docs)] // documentation missing in model
  743         -
        pub fn top_level_default(mut self, input: ::std::string::String) -> Self {
  744         -
            self.top_level_default = Some(input);
         661  +
        pub fn byte_value(mut self, input: ::std::option::Option<i8>) -> Self {
         662  +
            self.byte_value = input;
  745    663   
            self
  746    664   
        }
  747    665   
        #[allow(missing_docs)] // documentation missing in model
  748         -
        pub(crate) fn set_top_level_default(
         666  +
        pub(crate) fn set_byte_value(
  749    667   
            mut self,
  750         -
            input: impl ::std::convert::Into<::std::string::String>,
         668  +
            input: Option<impl ::std::convert::Into<i8>>,
  751    669   
        ) -> Self {
  752         -
            self.top_level_default = Some(input.into());
         670  +
            self.byte_value = input.map(|v| v.into());
  753    671   
            self
  754    672   
        }
  755    673   
        #[allow(missing_docs)] // documentation missing in model
  756         -
        pub fn other_top_level_default(mut self, input: i32) -> Self {
  757         -
            self.other_top_level_default = Some(input);
         674  +
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
         675  +
            self.double_value = input;
  758    676   
            self
  759    677   
        }
  760    678   
        #[allow(missing_docs)] // documentation missing in model
  761         -
        pub(crate) fn set_other_top_level_default(
         679  +
        pub(crate) fn set_double_value(
  762    680   
            mut self,
  763         -
            input: impl ::std::convert::Into<i32>,
         681  +
            input: Option<impl ::std::convert::Into<f64>>,
  764    682   
        ) -> Self {
  765         -
            self.other_top_level_default = Some(input.into());
         683  +
            self.double_value = input.map(|v| v.into());
  766    684   
            self
  767    685   
        }
  768         -
        /// Consumes the builder and constructs a [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput).
  769         -
        ///
  770         -
        /// The builder fails to construct a [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput) if a [`ConstraintViolation`] occurs.
  771         -
        ///
  772         -
        pub fn build(
  773         -
            self,
  774         -
        ) -> Result<crate::input::OperationWithDefaultsInput, ConstraintViolation> {
  775         -
            self.build_enforcing_all_constraints()
  776         -
        }
  777         -
        fn build_enforcing_all_constraints(
  778         -
            self,
  779         -
        ) -> Result<crate::input::OperationWithDefaultsInput, ConstraintViolation> {
  780         -
            Ok(crate::input::OperationWithDefaultsInput {
  781         -
                defaults: self
  782         -
                    .defaults
  783         -
                    .map(|v| match v {
  784         -
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
  785         -
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
  786         -
                    })
  787         -
                    .map(|res| res.map_err(ConstraintViolation::Defaults))
  788         -
                    .transpose()?,
  789         -
                client_optional_defaults: self.client_optional_defaults,
  790         -
                top_level_default: self.top_level_default.unwrap_or_else(|| String::from("hi")),
  791         -
                other_top_level_default: self.other_top_level_default.unwrap_or(0i32),
  792         -
            })
  793         -
        }
  794         -
    }
  795         -
}
  796         -
/// See [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
  797         -
pub mod fractional_seconds_input {
  798         -
  799         -
    impl ::std::convert::From<Builder> for crate::input::FractionalSecondsInput {
  800         -
        fn from(builder: Builder) -> Self {
  801         -
            builder.build()
  802         -
        }
  803         -
    }
  804         -
    /// A builder for [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
  805         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  806         -
    pub struct Builder {}
  807         -
    impl Builder {
  808         -
        /// Consumes the builder and constructs a [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
  809         -
        pub fn build(self) -> crate::input::FractionalSecondsInput {
  810         -
            self.build_enforcing_all_constraints()
  811         -
        }
  812         -
        fn build_enforcing_all_constraints(self) -> crate::input::FractionalSecondsInput {
  813         -
            crate::input::FractionalSecondsInput {}
         686  +
        #[allow(missing_docs)] // documentation missing in model
         687  +
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
         688  +
            self.float_value = input;
         689  +
            self
  814    690   
        }
         691  +
        #[allow(missing_docs)] // documentation missing in model
         692  +
        pub(crate) fn set_float_value(
         693  +
            mut self,
         694  +
            input: Option<impl ::std::convert::Into<f32>>,
         695  +
        ) -> Self {
         696  +
            self.float_value = input.map(|v| v.into());
         697  +
            self
  815    698   
        }
  816         -
}
  817         -
/// See [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
  818         -
pub mod greeting_with_errors_input {
  819         -
  820         -
    impl ::std::convert::From<Builder> for crate::input::GreetingWithErrorsInput {
  821         -
        fn from(builder: Builder) -> Self {
  822         -
            builder.build()
         699  +
        #[allow(missing_docs)] // documentation missing in model
         700  +
        pub fn integer_value(mut self, input: ::std::option::Option<i32>) -> Self {
         701  +
            self.integer_value = input;
         702  +
            self
  823    703   
        }
         704  +
        #[allow(missing_docs)] // documentation missing in model
         705  +
        pub(crate) fn set_integer_value(
         706  +
            mut self,
         707  +
            input: Option<impl ::std::convert::Into<i32>>,
         708  +
        ) -> Self {
         709  +
            self.integer_value = input.map(|v| v.into());
         710  +
            self
  824    711   
        }
  825         -
    /// A builder for [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
  826         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  827         -
    pub struct Builder {}
  828         -
    impl Builder {
  829         -
        /// Consumes the builder and constructs a [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
  830         -
        pub fn build(self) -> crate::input::GreetingWithErrorsInput {
  831         -
            self.build_enforcing_all_constraints()
         712  +
        #[allow(missing_docs)] // documentation missing in model
         713  +
        pub fn long_value(mut self, input: ::std::option::Option<i64>) -> Self {
         714  +
            self.long_value = input;
         715  +
            self
  832    716   
        }
  833         -
        fn build_enforcing_all_constraints(self) -> crate::input::GreetingWithErrorsInput {
  834         -
            crate::input::GreetingWithErrorsInput {}
         717  +
        #[allow(missing_docs)] // documentation missing in model
         718  +
        pub(crate) fn set_long_value(
         719  +
            mut self,
         720  +
            input: Option<impl ::std::convert::Into<i64>>,
         721  +
        ) -> Self {
         722  +
            self.long_value = input.map(|v| v.into());
         723  +
            self
  835    724   
        }
         725  +
        #[allow(missing_docs)] // documentation missing in model
         726  +
        pub fn short_value(mut self, input: ::std::option::Option<i16>) -> Self {
         727  +
            self.short_value = input;
         728  +
            self
  836    729   
        }
  837         -
}
  838         -
/// See [`RecursiveShapesInput`](crate::input::RecursiveShapesInput).
  839         -
pub mod recursive_shapes_input {
  840         -
  841         -
    impl ::std::convert::From<Builder> for crate::input::RecursiveShapesInput {
  842         -
        fn from(builder: Builder) -> Self {
  843         -
            builder.build()
         730  +
        #[allow(missing_docs)] // documentation missing in model
         731  +
        pub(crate) fn set_short_value(
         732  +
            mut self,
         733  +
            input: Option<impl ::std::convert::Into<i16>>,
         734  +
        ) -> Self {
         735  +
            self.short_value = input.map(|v| v.into());
         736  +
            self
  844    737   
        }
         738  +
        #[allow(missing_docs)] // documentation missing in model
         739  +
        pub fn string_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         740  +
            self.string_value = input;
         741  +
            self
  845    742   
        }
  846         -
    /// A builder for [`RecursiveShapesInput`](crate::input::RecursiveShapesInput).
  847         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  848         -
    pub struct Builder {
  849         -
        pub(crate) nested: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
         743  +
        #[allow(missing_docs)] // documentation missing in model
         744  +
        pub(crate) fn set_string_value(
         745  +
            mut self,
         746  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
         747  +
        ) -> Self {
         748  +
            self.string_value = input.map(|v| v.into());
         749  +
            self
  850    750   
        }
  851         -
    impl Builder {
  852    751   
        #[allow(missing_docs)] // documentation missing in model
  853         -
        pub fn nested(
         752  +
        pub fn blob_value(
  854    753   
            mut self,
  855         -
            input: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
         754  +
            input: ::std::option::Option<::aws_smithy_types::Blob>,
  856    755   
        ) -> Self {
  857         -
            self.nested = input;
         756  +
            self.blob_value = input;
  858    757   
            self
  859    758   
        }
  860    759   
        #[allow(missing_docs)] // documentation missing in model
  861         -
        pub(crate) fn set_nested(
         760  +
        pub(crate) fn set_blob_value(
  862    761   
            mut self,
  863         -
            input: Option<
  864         -
                impl ::std::convert::Into<crate::model::RecursiveShapesInputOutputNested1>,
  865         -
            >,
         762  +
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Blob>>,
  866    763   
        ) -> Self {
  867         -
            self.nested = input.map(|v| v.into());
         764  +
            self.blob_value = input.map(|v| v.into());
  868    765   
            self
  869    766   
        }
  870         -
        /// Consumes the builder and constructs a [`RecursiveShapesInput`](crate::input::RecursiveShapesInput).
  871         -
        pub fn build(self) -> crate::input::RecursiveShapesInput {
         767  +
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
         768  +
        pub fn build(self) -> crate::input::SimpleScalarPropertiesInput {
  872    769   
            self.build_enforcing_all_constraints()
  873    770   
        }
  874         -
        fn build_enforcing_all_constraints(self) -> crate::input::RecursiveShapesInput {
  875         -
            crate::input::RecursiveShapesInput {
  876         -
                nested: self.nested,
         771  +
        fn build_enforcing_all_constraints(self) -> crate::input::SimpleScalarPropertiesInput {
         772  +
            crate::input::SimpleScalarPropertiesInput {
         773  +
                true_boolean_value: self.true_boolean_value,
         774  +
                false_boolean_value: self.false_boolean_value,
         775  +
                byte_value: self.byte_value,
         776  +
                double_value: self.double_value,
         777  +
                float_value: self.float_value,
         778  +
                integer_value: self.integer_value,
         779  +
                long_value: self.long_value,
         780  +
                short_value: self.short_value,
         781  +
                string_value: self.string_value,
         782  +
                blob_value: self.blob_value,
  877    783   
            }
  878    784   
        }
  879    785   
    }
  880    786   
}
  881         -
/// See [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput).
  882         -
pub mod rpc_v2_cbor_sparse_maps_input {
         787  +
/// See [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput).
         788  +
pub mod rpc_v2_cbor_lists_input {
  883    789   
  884    790   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
  885    791   
    /// Holds one variant for each of the ways the builder can fail.
  886    792   
    #[non_exhaustive]
  887    793   
    #[allow(clippy::enum_variant_names)]
  888    794   
    pub enum ConstraintViolation {
  889         -
        /// Constraint violation occurred building member `sparse_set_map` when building `RpcV2CborSparseMapsInput`.
         795  +
        /// Constraint violation occurred building member `string_set` when building `RpcV2CborListsInput`.
  890    796   
        #[doc(hidden)]
  891         -
        SparseSetMap(crate::model::sparse_set_map::ConstraintViolation),
         797  +
        StringSet(crate::model::string_set::ConstraintViolation),
         798  +
        /// Constraint violation occurred building member `enum_list` when building `RpcV2CborListsInput`.
         799  +
        #[doc(hidden)]
         800  +
        EnumList(crate::model::foo_enum_list::ConstraintViolation),
  892    801   
    }
  893    802   
    impl ::std::fmt::Display for ConstraintViolation {
  894    803   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  895    804   
            match self {
  896         -
                ConstraintViolation::SparseSetMap(_) => write!(f, "constraint violation occurred building member `sparse_set_map` when building `RpcV2CborSparseMapsInput`"),
         805  +
                ConstraintViolation::StringSet(_) => write!(f, "constraint violation occurred building member `string_set` when building `RpcV2CborListsInput`"),
         806  +
                ConstraintViolation::EnumList(_) => write!(f, "constraint violation occurred building member `enum_list` when building `RpcV2CborListsInput`"),
  897    807   
            }
  898    808   
        }
  899    809   
    }
  900    810   
    impl ::std::error::Error for ConstraintViolation {}
  901    811   
    impl ConstraintViolation {
  902    812   
        pub(crate) fn as_validation_exception_field(
  903    813   
            self,
  904    814   
            path: ::std::string::String,
  905    815   
        ) -> crate::model::ValidationExceptionField {
  906    816   
            match self {
  907         -
                ConstraintViolation::SparseSetMap(inner) => {
  908         -
                    inner.as_validation_exception_field(path + "/sparseSetMap")
         817  +
                ConstraintViolation::StringSet(inner) => {
         818  +
                    inner.as_validation_exception_field(path + "/stringSet")
         819  +
                }
         820  +
                ConstraintViolation::EnumList(inner) => {
         821  +
                    inner.as_validation_exception_field(path + "/enumList")
  909    822   
                }
  910    823   
            }
  911    824   
        }
  912    825   
    }
  913    826   
    impl ::std::convert::From<ConstraintViolation>
  914    827   
        for ::aws_smithy_legacy_http_server::protocol::rpc_v2_cbor::rejection::RequestRejection
  915    828   
    {
  916    829   
        fn from(constraint_violation: ConstraintViolation) -> Self {
  917    830   
            let first_validation_exception_field =
  918    831   
                constraint_violation.as_validation_exception_field("".to_owned());
  919    832   
            let validation_exception = crate::error::ValidationException {
  920    833   
                message: format!(
  921    834   
                    "1 validation error detected. {}",
  922    835   
                    &first_validation_exception_field.message
  923    836   
                ),
  924    837   
                field_list: Some(vec![first_validation_exception_field]),
  925    838   
            };
  926    839   
            Self::ConstraintViolation(
  927    840   
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
  928    841   
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
  929    842   
                            )
  930    843   
        }
  931    844   
    }
  932    845   
    impl ::std::convert::From<Builder>
  933         -
        for crate::constrained::MaybeConstrained<crate::input::RpcV2CborSparseMapsInput>
         846  +
        for crate::constrained::MaybeConstrained<crate::input::RpcV2CborListsInput>
  934    847   
    {
  935    848   
        fn from(builder: Builder) -> Self {
  936    849   
            Self::Unconstrained(builder)
  937    850   
        }
  938    851   
    }
  939         -
    impl ::std::convert::TryFrom<Builder> for crate::input::RpcV2CborSparseMapsInput {
         852  +
    impl ::std::convert::TryFrom<Builder> for crate::input::RpcV2CborListsInput {
  940    853   
        type Error = ConstraintViolation;
  941    854   
  942    855   
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
  943    856   
            builder.build()
  944    857   
        }
  945    858   
    }
  946         -
    /// A builder for [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput).
         859  +
    /// A builder for [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput).
  947    860   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  948    861   
    pub struct Builder {
  949         -
        pub(crate) sparse_struct_map: ::std::option::Option<
  950         -
            ::std::collections::HashMap<
  951         -
                ::std::string::String,
  952         -
                ::std::option::Option<crate::model::GreetingStruct>,
  953         -
            >,
  954         -
        >,
  955         -
        pub(crate) sparse_number_map: ::std::option::Option<
  956         -
            ::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
  957         -
        >,
  958         -
        pub(crate) sparse_boolean_map: ::std::option::Option<
  959         -
            ::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
  960         -
        >,
  961         -
        pub(crate) sparse_string_map: ::std::option::Option<
  962         -
            ::std::collections::HashMap<
  963         -
                ::std::string::String,
  964         -
                ::std::option::Option<::std::string::String>,
  965         -
            >,
  966         -
        >,
  967         -
        pub(crate) sparse_set_map: ::std::option::Option<
         862  +
        pub(crate) string_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         863  +
        pub(crate) string_set:
         864  +
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::StringSet>>,
         865  +
        pub(crate) integer_list: ::std::option::Option<::std::vec::Vec<i32>>,
         866  +
        pub(crate) boolean_list: ::std::option::Option<::std::vec::Vec<bool>>,
         867  +
        pub(crate) timestamp_list:
         868  +
            ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
         869  +
        pub(crate) enum_list: ::std::option::Option<
  968    870   
            crate::constrained::MaybeConstrained<
  969         -
                crate::constrained::sparse_set_map_constrained::SparseSetMapConstrained,
         871  +
                crate::constrained::foo_enum_list_constrained::FooEnumListConstrained,
  970    872   
            >,
  971    873   
        >,
         874  +
        pub(crate) int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
         875  +
        pub(crate) nested_string_list:
         876  +
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         877  +
        pub(crate) structure_list:
         878  +
            ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
         879  +
        pub(crate) blob_list: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
  972    880   
    }
  973    881   
    impl Builder {
  974    882   
        #[allow(missing_docs)] // documentation missing in model
  975         -
        pub fn sparse_struct_map(
         883  +
        pub fn string_list(
  976    884   
            mut self,
  977         -
            input: ::std::option::Option<
  978         -
                ::std::collections::HashMap<
  979         -
                    ::std::string::String,
  980         -
                    ::std::option::Option<crate::model::GreetingStruct>,
  981         -
                >,
  982         -
            >,
         885  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
  983    886   
        ) -> Self {
  984         -
            self.sparse_struct_map = input;
         887  +
            self.string_list = input;
  985    888   
            self
  986    889   
        }
  987    890   
        #[allow(missing_docs)] // documentation missing in model
  988         -
        pub(crate) fn set_sparse_struct_map(
         891  +
        pub(crate) fn set_string_list(
         892  +
            mut self,
         893  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<::std::string::String>>>,
         894  +
        ) -> Self {
         895  +
            self.string_list = input.map(|v| v.into());
         896  +
            self
         897  +
        }
         898  +
        #[allow(missing_docs)] // documentation missing in model
         899  +
        pub fn string_set(mut self, input: ::std::option::Option<crate::model::StringSet>) -> Self {
         900  +
            self.string_set = input.map(crate::constrained::MaybeConstrained::Constrained);
         901  +
            self
         902  +
        }
         903  +
        #[allow(missing_docs)] // documentation missing in model
         904  +
        pub(crate) fn set_string_set(
  989    905   
            mut self,
  990    906   
            input: Option<
  991         -
                impl ::std::convert::Into<
  992         -
                    ::std::collections::HashMap<
  993         -
                        ::std::string::String,
  994         -
                        ::std::option::Option<crate::model::GreetingStruct>,
  995         -
                    >,
  996         -
                >,
         907  +
                impl ::std::convert::Into<crate::constrained::MaybeConstrained<crate::model::StringSet>>,
  997    908   
            >,
  998    909   
        ) -> Self {
  999         -
            self.sparse_struct_map = input.map(|v| v.into());
         910  +
            self.string_set = input.map(|v| v.into());
 1000    911   
            self
 1001    912   
        }
 1002    913   
        #[allow(missing_docs)] // documentation missing in model
 1003         -
        pub fn sparse_number_map(
         914  +
        pub fn integer_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
         915  +
            self.integer_list = input;
         916  +
            self
         917  +
        }
         918  +
        #[allow(missing_docs)] // documentation missing in model
         919  +
        pub(crate) fn set_integer_list(
 1004    920   
            mut self,
 1005         -
            input: ::std::option::Option<
 1006         -
                ::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
 1007         -
            >,
         921  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<i32>>>,
 1008    922   
        ) -> Self {
 1009         -
            self.sparse_number_map = input;
         923  +
            self.integer_list = input.map(|v| v.into());
 1010    924   
            self
 1011    925   
        }
 1012    926   
        #[allow(missing_docs)] // documentation missing in model
 1013         -
        pub(crate) fn set_sparse_number_map(
         927  +
        pub fn boolean_list(mut self, input: ::std::option::Option<::std::vec::Vec<bool>>) -> Self {
         928  +
            self.boolean_list = input;
         929  +
            self
         930  +
        }
         931  +
        #[allow(missing_docs)] // documentation missing in model
         932  +
        pub(crate) fn set_boolean_list(
         933  +
            mut self,
         934  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<bool>>>,
         935  +
        ) -> Self {
         936  +
            self.boolean_list = input.map(|v| v.into());
         937  +
            self
         938  +
        }
         939  +
        #[allow(missing_docs)] // documentation missing in model
         940  +
        pub fn timestamp_list(
         941  +
            mut self,
         942  +
            input: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
         943  +
        ) -> Self {
         944  +
            self.timestamp_list = input;
         945  +
            self
         946  +
        }
         947  +
        #[allow(missing_docs)] // documentation missing in model
         948  +
        pub(crate) fn set_timestamp_list(
         949  +
            mut self,
         950  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<::aws_smithy_types::DateTime>>>,
         951  +
        ) -> Self {
         952  +
            self.timestamp_list = input.map(|v| v.into());
         953  +
            self
         954  +
        }
         955  +
        #[allow(missing_docs)] // documentation missing in model
         956  +
        pub fn enum_list(
         957  +
            mut self,
         958  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
         959  +
        ) -> Self {
         960  +
            self.enum_list =
         961  +
                input.map(|v| crate::constrained::MaybeConstrained::Constrained((v).into()));
         962  +
            self
         963  +
        }
         964  +
        #[allow(missing_docs)] // documentation missing in model
         965  +
        pub(crate) fn set_enum_list(
 1014    966   
            mut self,
 1015    967   
            input: Option<
 1016    968   
                impl ::std::convert::Into<
 1017         -
                    ::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
         969  +
                    crate::constrained::MaybeConstrained<
         970  +
                        crate::constrained::foo_enum_list_constrained::FooEnumListConstrained,
         971  +
                    >,
 1018    972   
                >,
 1019    973   
            >,
 1020    974   
        ) -> Self {
 1021         -
            self.sparse_number_map = input.map(|v| v.into());
         975  +
            self.enum_list = input.map(|v| v.into());
 1022    976   
            self
 1023    977   
        }
 1024    978   
        #[allow(missing_docs)] // documentation missing in model
 1025         -
        pub fn sparse_boolean_map(
         979  +
        pub fn int_enum_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
         980  +
            self.int_enum_list = input;
         981  +
            self
         982  +
        }
         983  +
        #[allow(missing_docs)] // documentation missing in model
         984  +
        pub(crate) fn set_int_enum_list(
 1026    985   
            mut self,
 1027         -
            input: ::std::option::Option<
 1028         -
                ::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
 1029         -
            >,
         986  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<i32>>>,
 1030    987   
        ) -> Self {
 1031         -
            self.sparse_boolean_map = input;
         988  +
            self.int_enum_list = input.map(|v| v.into());
 1032    989   
            self
 1033    990   
        }
 1034         -
        #[allow(missing_docs)] // documentation missing in model
 1035         -
        pub(crate) fn set_sparse_boolean_map(
         991  +
        /// A list of lists of strings.
         992  +
        pub fn nested_string_list(
         993  +
            mut self,
         994  +
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         995  +
        ) -> Self {
         996  +
            self.nested_string_list = input;
         997  +
            self
         998  +
        }
         999  +
        /// A list of lists of strings.
        1000  +
        pub(crate) fn set_nested_string_list(
 1036   1001   
            mut self,
 1037   1002   
            input: Option<
 1038         -
                impl ::std::convert::Into<
 1039         -
                    ::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
 1040         -
                >,
        1003  +
                impl ::std::convert::Into<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 1041   1004   
            >,
 1042   1005   
        ) -> Self {
 1043         -
            self.sparse_boolean_map = input.map(|v| v.into());
        1006  +
            self.nested_string_list = input.map(|v| v.into());
 1044   1007   
            self
 1045   1008   
        }
 1046   1009   
        #[allow(missing_docs)] // documentation missing in model
 1047         -
        pub fn sparse_string_map(
        1010  +
        pub fn structure_list(
 1048   1011   
            mut self,
 1049         -
            input: ::std::option::Option<
 1050         -
                ::std::collections::HashMap<
 1051         -
                    ::std::string::String,
 1052         -
                    ::std::option::Option<::std::string::String>,
 1053         -
                >,
 1054         -
            >,
        1012  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
 1055   1013   
        ) -> Self {
 1056         -
            self.sparse_string_map = input;
        1014  +
            self.structure_list = input;
 1057   1015   
            self
 1058   1016   
        }
 1059   1017   
        #[allow(missing_docs)] // documentation missing in model
 1060         -
        pub(crate) fn set_sparse_string_map(
        1018  +
        pub(crate) fn set_structure_list(
 1061   1019   
            mut self,
 1062   1020   
            input: Option<
 1063         -
                impl ::std::convert::Into<
 1064         -
                    ::std::collections::HashMap<
 1065         -
                        ::std::string::String,
 1066         -
                        ::std::option::Option<::std::string::String>,
 1067         -
                    >,
 1068         -
                >,
        1021  +
                impl ::std::convert::Into<::std::vec::Vec<crate::model::StructureListMember>>,
 1069   1022   
            >,
 1070   1023   
        ) -> Self {
 1071         -
            self.sparse_string_map = input.map(|v| v.into());
        1024  +
            self.structure_list = input.map(|v| v.into());
 1072   1025   
            self
 1073   1026   
        }
 1074   1027   
        #[allow(missing_docs)] // documentation missing in model
 1075         -
        pub fn sparse_set_map(
        1028  +
        pub fn blob_list(
 1076   1029   
            mut self,
 1077         -
            input: ::std::option::Option<
 1078         -
                ::std::collections::HashMap<
 1079         -
                    ::std::string::String,
 1080         -
                    ::std::option::Option<crate::model::StringSet>,
 1081         -
                >,
 1082         -
            >,
        1030  +
            input: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
 1083   1031   
        ) -> Self {
 1084         -
            self.sparse_set_map =
 1085         -
                input.map(|v| crate::constrained::MaybeConstrained::Constrained((v).into()));
        1032  +
            self.blob_list = input;
 1086   1033   
            self
 1087   1034   
        }
 1088   1035   
        #[allow(missing_docs)] // documentation missing in model
 1089         -
        pub(crate) fn set_sparse_set_map(
        1036  +
        pub(crate) fn set_blob_list(
 1090   1037   
            mut self,
 1091         -
            input: Option<
 1092         -
                impl ::std::convert::Into<
 1093         -
                    crate::constrained::MaybeConstrained<
 1094         -
                        crate::constrained::sparse_set_map_constrained::SparseSetMapConstrained,
 1095         -
                    >,
 1096         -
                >,
 1097         -
            >,
        1038  +
            input: Option<impl ::std::convert::Into<::std::vec::Vec<::aws_smithy_types::Blob>>>,
 1098   1039   
        ) -> Self {
 1099         -
            self.sparse_set_map = input.map(|v| v.into());
        1040  +
            self.blob_list = input.map(|v| v.into());
 1100   1041   
            self
 1101   1042   
        }
 1102         -
        /// Consumes the builder and constructs a [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput).
        1043  +
        /// Consumes the builder and constructs a [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput).
 1103   1044   
        ///
 1104         -
        /// The builder fails to construct a [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput) if a [`ConstraintViolation`] occurs.
        1045  +
        /// The builder fails to construct a [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput) if a [`ConstraintViolation`] occurs.
 1105   1046   
        ///
 1106         -
        pub fn build(self) -> Result<crate::input::RpcV2CborSparseMapsInput, ConstraintViolation> {
        1047  +
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
        1048  +
        pub fn build(self) -> Result<crate::input::RpcV2CborListsInput, ConstraintViolation> {
 1107   1049   
            self.build_enforcing_all_constraints()
 1108   1050   
        }
 1109   1051   
        fn build_enforcing_all_constraints(
 1110   1052   
            self,
 1111         -
        ) -> Result<crate::input::RpcV2CborSparseMapsInput, ConstraintViolation> {
 1112         -
            Ok(crate::input::RpcV2CborSparseMapsInput {
 1113         -
                sparse_struct_map: self.sparse_struct_map,
 1114         -
                sparse_number_map: self.sparse_number_map,
 1115         -
                sparse_boolean_map: self.sparse_boolean_map,
 1116         -
                sparse_string_map: self.sparse_string_map,
 1117         -
                sparse_set_map: self
 1118         -
                    .sparse_set_map
        1053  +
        ) -> Result<crate::input::RpcV2CborListsInput, ConstraintViolation> {
        1054  +
            Ok(crate::input::RpcV2CborListsInput {
        1055  +
                string_list: self.string_list,
        1056  +
                string_set: self
        1057  +
                    .string_set
 1119   1058   
                    .map(|v| match v {
 1120   1059   
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 1121   1060   
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 1122   1061   
                    })
 1123         -
                    .map(|res| {
 1124         -
                        res.map(|v| v.into())
 1125         -
                            .map_err(ConstraintViolation::SparseSetMap)
        1062  +
                    .map(|res| res.map_err(ConstraintViolation::StringSet))
        1063  +
                    .transpose()?,
        1064  +
                integer_list: self.integer_list,
        1065  +
                boolean_list: self.boolean_list,
        1066  +
                timestamp_list: self.timestamp_list,
        1067  +
                enum_list: self
        1068  +
                    .enum_list
        1069  +
                    .map(|v| match v {
        1070  +
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
        1071  +
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 1126   1072   
                    })
        1073  +
                    .map(|res| res.map(|v| v.into()).map_err(ConstraintViolation::EnumList))
 1127   1074   
                    .transpose()?,
        1075  +
                int_enum_list: self.int_enum_list,
        1076  +
                nested_string_list: self.nested_string_list,
        1077  +
                structure_list: self.structure_list,
        1078  +
                blob_list: self.blob_list,
 1128   1079   
            })
 1129   1080   
        }
 1130   1081   
    }
 1131   1082   
}
 1132   1083   
/// See [`RpcV2CborDenseMapsInput`](crate::input::RpcV2CborDenseMapsInput).
 1133   1084   
pub mod rpc_v2_cbor_dense_maps_input {
 1134   1085   
 1135   1086   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1136   1087   
    /// Holds one variant for each of the ways the builder can fail.
 1137   1088   
    #[non_exhaustive]
@@ -1325,1276 +1904,1904 @@
 1345   1296   
                    })
 1346   1297   
                    .map(|res| {
 1347   1298   
                        res.map(|v| v.into())
 1348   1299   
                            .map_err(ConstraintViolation::DenseSetMap)
 1349   1300   
                    })
 1350   1301   
                    .transpose()?,
 1351   1302   
            })
 1352   1303   
        }
 1353   1304   
    }
 1354   1305   
}
 1355         -
/// See [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput).
 1356         -
pub mod rpc_v2_cbor_lists_input {
        1306  +
/// See [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput).
        1307  +
pub mod rpc_v2_cbor_sparse_maps_input {
 1357   1308   
 1358   1309   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 1359   1310   
    /// Holds one variant for each of the ways the builder can fail.
 1360   1311   
    #[non_exhaustive]
 1361   1312   
    #[allow(clippy::enum_variant_names)]
 1362   1313   
    pub enum ConstraintViolation {
 1363         -
        /// Constraint violation occurred building member `string_set` when building `RpcV2CborListsInput`.
 1364         -
        #[doc(hidden)]
 1365         -
        StringSet(crate::model::string_set::ConstraintViolation),
 1366         -
        /// Constraint violation occurred building member `enum_list` when building `RpcV2CborListsInput`.
        1314  +
        /// Constraint violation occurred building member `sparse_set_map` when building `RpcV2CborSparseMapsInput`.
 1367   1315   
        #[doc(hidden)]
 1368         -
        EnumList(crate::model::foo_enum_list::ConstraintViolation),
        1316  +
        SparseSetMap(crate::model::sparse_set_map::ConstraintViolation),
 1369   1317   
    }
 1370   1318   
    impl ::std::fmt::Display for ConstraintViolation {
 1371   1319   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1372   1320   
            match self {
 1373         -
                ConstraintViolation::StringSet(_) => write!(f, "constraint violation occurred building member `string_set` when building `RpcV2CborListsInput`"),
 1374         -
                ConstraintViolation::EnumList(_) => write!(f, "constraint violation occurred building member `enum_list` when building `RpcV2CborListsInput`"),
        1321  +
                ConstraintViolation::SparseSetMap(_) => write!(f, "constraint violation occurred building member `sparse_set_map` when building `RpcV2CborSparseMapsInput`"),
 1375   1322   
            }
 1376   1323   
        }
 1377   1324   
    }
 1378   1325   
    impl ::std::error::Error for ConstraintViolation {}
 1379   1326   
    impl ConstraintViolation {
 1380   1327   
        pub(crate) fn as_validation_exception_field(
 1381   1328   
            self,
 1382   1329   
            path: ::std::string::String,
 1383   1330   
        ) -> crate::model::ValidationExceptionField {
 1384   1331   
            match self {
 1385         -
                ConstraintViolation::StringSet(inner) => {
 1386         -
                    inner.as_validation_exception_field(path + "/stringSet")
 1387         -
                }
 1388         -
                ConstraintViolation::EnumList(inner) => {
 1389         -
                    inner.as_validation_exception_field(path + "/enumList")
        1332  +
                ConstraintViolation::SparseSetMap(inner) => {
        1333  +
                    inner.as_validation_exception_field(path + "/sparseSetMap")
 1390   1334   
                }
 1391   1335   
            }
 1392   1336   
        }
 1393   1337   
    }
 1394   1338   
    impl ::std::convert::From<ConstraintViolation>
 1395   1339   
        for ::aws_smithy_legacy_http_server::protocol::rpc_v2_cbor::rejection::RequestRejection
 1396   1340   
    {
 1397   1341   
        fn from(constraint_violation: ConstraintViolation) -> Self {
 1398   1342   
            let first_validation_exception_field =
 1399   1343   
                constraint_violation.as_validation_exception_field("".to_owned());
 1400   1344   
            let validation_exception = crate::error::ValidationException {
 1401   1345   
                message: format!(
 1402   1346   
                    "1 validation error detected. {}",
 1403   1347   
                    &first_validation_exception_field.message
 1404   1348   
                ),
 1405   1349   
                field_list: Some(vec![first_validation_exception_field]),
 1406   1350   
            };
 1407   1351   
            Self::ConstraintViolation(
 1408   1352   
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
 1409   1353   
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
 1410   1354   
                            )
 1411   1355   
        }
 1412   1356   
    }
 1413   1357   
    impl ::std::convert::From<Builder>
 1414         -
        for crate::constrained::MaybeConstrained<crate::input::RpcV2CborListsInput>
        1358  +
        for crate::constrained::MaybeConstrained<crate::input::RpcV2CborSparseMapsInput>
 1415   1359   
    {
 1416   1360   
        fn from(builder: Builder) -> Self {
 1417   1361   
            Self::Unconstrained(builder)
 1418   1362   
        }
 1419   1363   
    }
 1420         -
    impl ::std::convert::TryFrom<Builder> for crate::input::RpcV2CborListsInput {
        1364  +
    impl ::std::convert::TryFrom<Builder> for crate::input::RpcV2CborSparseMapsInput {
 1421   1365   
        type Error = ConstraintViolation;
 1422   1366   
 1423   1367   
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 1424   1368   
            builder.build()
 1425   1369   
        }
 1426   1370   
    }
 1427         -
    /// A builder for [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput).
        1371  +
    /// A builder for [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput).
 1428   1372   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1429   1373   
    pub struct Builder {
 1430         -
        pub(crate) string_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1431         -
        pub(crate) string_set:
 1432         -
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::StringSet>>,
 1433         -
        pub(crate) integer_list: ::std::option::Option<::std::vec::Vec<i32>>,
 1434         -
        pub(crate) boolean_list: ::std::option::Option<::std::vec::Vec<bool>>,
 1435         -
        pub(crate) timestamp_list:
 1436         -
            ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
 1437         -
        pub(crate) enum_list: ::std::option::Option<
        1374  +
        pub(crate) sparse_struct_map: ::std::option::Option<
        1375  +
            ::std::collections::HashMap<
        1376  +
                ::std::string::String,
        1377  +
                ::std::option::Option<crate::model::GreetingStruct>,
        1378  +
            >,
        1379  +
        >,
        1380  +
        pub(crate) sparse_number_map: ::std::option::Option<
        1381  +
            ::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
        1382  +
        >,
        1383  +
        pub(crate) sparse_boolean_map: ::std::option::Option<
        1384  +
            ::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
        1385  +
        >,
        1386  +
        pub(crate) sparse_string_map: ::std::option::Option<
        1387  +
            ::std::collections::HashMap<
        1388  +
                ::std::string::String,
        1389  +
                ::std::option::Option<::std::string::String>,
        1390  +
            >,
        1391  +
        >,
        1392  +
        pub(crate) sparse_set_map: ::std::option::Option<
 1438   1393   
            crate::constrained::MaybeConstrained<
 1439         -
                crate::constrained::foo_enum_list_constrained::FooEnumListConstrained,
        1394  +
                crate::constrained::sparse_set_map_constrained::SparseSetMapConstrained,
 1440   1395   
            >,
 1441   1396   
        >,
 1442         -
        pub(crate) int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
 1443         -
        pub(crate) nested_string_list:
 1444         -
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 1445         -
        pub(crate) structure_list:
 1446         -
            ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
 1447         -
        pub(crate) blob_list: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
 1448   1397   
    }
 1449   1398   
    impl Builder {
 1450   1399   
        #[allow(missing_docs)] // documentation missing in model
 1451         -
        pub fn string_list(
 1452         -
            mut self,
 1453         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1454         -
        ) -> Self {
 1455         -
            self.string_list = input;
 1456         -
            self
 1457         -
        }
 1458         -
        #[allow(missing_docs)] // documentation missing in model
 1459         -
        pub(crate) fn set_string_list(
 1460         -
            mut self,
 1461         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<::std::string::String>>>,
 1462         -
        ) -> Self {
 1463         -
            self.string_list = input.map(|v| v.into());
 1464         -
            self
 1465         -
        }
 1466         -
        #[allow(missing_docs)] // documentation missing in model
 1467         -
        pub fn string_set(mut self, input: ::std::option::Option<crate::model::StringSet>) -> Self {
 1468         -
            self.string_set = input.map(crate::constrained::MaybeConstrained::Constrained);
 1469         -
            self
 1470         -
        }
 1471         -
        #[allow(missing_docs)] // documentation missing in model
 1472         -
        pub(crate) fn set_string_set(
        1400  +
        pub fn sparse_struct_map(
 1473   1401   
            mut self,
 1474         -
            input: Option<
 1475         -
                impl ::std::convert::Into<crate::constrained::MaybeConstrained<crate::model::StringSet>>,
        1402  +
            input: ::std::option::Option<
        1403  +
                ::std::collections::HashMap<
        1404  +
                    ::std::string::String,
        1405  +
                    ::std::option::Option<crate::model::GreetingStruct>,
        1406  +
                >,
 1476   1407   
            >,
 1477   1408   
        ) -> Self {
 1478         -
            self.string_set = input.map(|v| v.into());
 1479         -
            self
 1480         -
        }
 1481         -
        #[allow(missing_docs)] // documentation missing in model
 1482         -
        pub fn integer_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
 1483         -
            self.integer_list = input;
 1484         -
            self
 1485         -
        }
 1486         -
        #[allow(missing_docs)] // documentation missing in model
 1487         -
        pub(crate) fn set_integer_list(
 1488         -
            mut self,
 1489         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<i32>>>,
 1490         -
        ) -> Self {
 1491         -
            self.integer_list = input.map(|v| v.into());
 1492         -
            self
 1493         -
        }
 1494         -
        #[allow(missing_docs)] // documentation missing in model
 1495         -
        pub fn boolean_list(mut self, input: ::std::option::Option<::std::vec::Vec<bool>>) -> Self {
 1496         -
            self.boolean_list = input;
 1497         -
            self
 1498         -
        }
 1499         -
        #[allow(missing_docs)] // documentation missing in model
 1500         -
        pub(crate) fn set_boolean_list(
 1501         -
            mut self,
 1502         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<bool>>>,
 1503         -
        ) -> Self {
 1504         -
            self.boolean_list = input.map(|v| v.into());
 1505         -
            self
 1506         -
        }
 1507         -
        #[allow(missing_docs)] // documentation missing in model
 1508         -
        pub fn timestamp_list(
 1509         -
            mut self,
 1510         -
            input: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
 1511         -
        ) -> Self {
 1512         -
            self.timestamp_list = input;
 1513         -
            self
 1514         -
        }
 1515         -
        #[allow(missing_docs)] // documentation missing in model
 1516         -
        pub(crate) fn set_timestamp_list(
 1517         -
            mut self,
 1518         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<::aws_smithy_types::DateTime>>>,
 1519         -
        ) -> Self {
 1520         -
            self.timestamp_list = input.map(|v| v.into());
 1521         -
            self
 1522         -
        }
 1523         -
        #[allow(missing_docs)] // documentation missing in model
 1524         -
        pub fn enum_list(
 1525         -
            mut self,
 1526         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
 1527         -
        ) -> Self {
 1528         -
            self.enum_list =
 1529         -
                input.map(|v| crate::constrained::MaybeConstrained::Constrained((v).into()));
        1409  +
            self.sparse_struct_map = input;
 1530   1410   
            self
 1531   1411   
        }
 1532   1412   
        #[allow(missing_docs)] // documentation missing in model
 1533         -
        pub(crate) fn set_enum_list(
        1413  +
        pub(crate) fn set_sparse_struct_map(
 1534   1414   
            mut self,
 1535   1415   
            input: Option<
 1536   1416   
                impl ::std::convert::Into<
 1537         -
                    crate::constrained::MaybeConstrained<
 1538         -
                        crate::constrained::foo_enum_list_constrained::FooEnumListConstrained,
        1417  +
                    ::std::collections::HashMap<
        1418  +
                        ::std::string::String,
        1419  +
                        ::std::option::Option<crate::model::GreetingStruct>,
 1539   1420   
                    >,
 1540   1421   
                >,
 1541   1422   
            >,
 1542   1423   
        ) -> Self {
 1543         -
            self.enum_list = input.map(|v| v.into());
        1424  +
            self.sparse_struct_map = input.map(|v| v.into());
 1544   1425   
            self
 1545   1426   
        }
 1546   1427   
        #[allow(missing_docs)] // documentation missing in model
 1547         -
        pub fn int_enum_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
 1548         -
            self.int_enum_list = input;
        1428  +
        pub fn sparse_number_map(
        1429  +
            mut self,
        1430  +
            input: ::std::option::Option<
        1431  +
                ::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
        1432  +
            >,
        1433  +
        ) -> Self {
        1434  +
            self.sparse_number_map = input;
 1549   1435   
            self
 1550   1436   
        }
 1551   1437   
        #[allow(missing_docs)] // documentation missing in model
 1552         -
        pub(crate) fn set_int_enum_list(
        1438  +
        pub(crate) fn set_sparse_number_map(
 1553   1439   
            mut self,
 1554         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<i32>>>,
        1440  +
            input: Option<
        1441  +
                impl ::std::convert::Into<
        1442  +
                    ::std::collections::HashMap<::std::string::String, ::std::option::Option<i32>>,
        1443  +
                >,
        1444  +
            >,
 1555   1445   
        ) -> Self {
 1556         -
            self.int_enum_list = input.map(|v| v.into());
        1446  +
            self.sparse_number_map = input.map(|v| v.into());
 1557   1447   
            self
 1558   1448   
        }
 1559         -
        /// A list of lists of strings.
 1560         -
        pub fn nested_string_list(
        1449  +
        #[allow(missing_docs)] // documentation missing in model
        1450  +
        pub fn sparse_boolean_map(
 1561   1451   
            mut self,
 1562         -
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
        1452  +
            input: ::std::option::Option<
        1453  +
                ::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
        1454  +
            >,
 1563   1455   
        ) -> Self {
 1564         -
            self.nested_string_list = input;
        1456  +
            self.sparse_boolean_map = input;
 1565   1457   
            self
 1566   1458   
        }
 1567         -
        /// A list of lists of strings.
 1568         -
        pub(crate) fn set_nested_string_list(
        1459  +
        #[allow(missing_docs)] // documentation missing in model
        1460  +
        pub(crate) fn set_sparse_boolean_map(
 1569   1461   
            mut self,
 1570   1462   
            input: Option<
 1571         -
                impl ::std::convert::Into<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
        1463  +
                impl ::std::convert::Into<
        1464  +
                    ::std::collections::HashMap<::std::string::String, ::std::option::Option<bool>>,
        1465  +
                >,
 1572   1466   
            >,
 1573   1467   
        ) -> Self {
 1574         -
            self.nested_string_list = input.map(|v| v.into());
        1468  +
            self.sparse_boolean_map = input.map(|v| v.into());
 1575   1469   
            self
 1576   1470   
        }
 1577   1471   
        #[allow(missing_docs)] // documentation missing in model
 1578         -
        pub fn structure_list(
        1472  +
        pub fn sparse_string_map(
 1579   1473   
            mut self,
 1580         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
        1474  +
            input: ::std::option::Option<
        1475  +
                ::std::collections::HashMap<
        1476  +
                    ::std::string::String,
        1477  +
                    ::std::option::Option<::std::string::String>,
        1478  +
                >,
        1479  +
            >,
 1581   1480   
        ) -> Self {
 1582         -
            self.structure_list = input;
        1481  +
            self.sparse_string_map = input;
 1583   1482   
            self
 1584   1483   
        }
 1585   1484   
        #[allow(missing_docs)] // documentation missing in model
 1586         -
        pub(crate) fn set_structure_list(
        1485  +
        pub(crate) fn set_sparse_string_map(
 1587   1486   
            mut self,
 1588   1487   
            input: Option<
 1589         -
                impl ::std::convert::Into<::std::vec::Vec<crate::model::StructureListMember>>,
        1488  +
                impl ::std::convert::Into<
        1489  +
                    ::std::collections::HashMap<
        1490  +
                        ::std::string::String,
        1491  +
                        ::std::option::Option<::std::string::String>,
        1492  +
                    >,
        1493  +
                >,
 1590   1494   
            >,
 1591   1495   
        ) -> Self {
 1592         -
            self.structure_list = input.map(|v| v.into());
        1496  +
            self.sparse_string_map = input.map(|v| v.into());
 1593   1497   
            self
 1594   1498   
        }
 1595   1499   
        #[allow(missing_docs)] // documentation missing in model
 1596         -
        pub fn blob_list(
        1500  +
        pub fn sparse_set_map(
 1597   1501   
            mut self,
 1598         -
            input: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
        1502  +
            input: ::std::option::Option<
        1503  +
                ::std::collections::HashMap<
        1504  +
                    ::std::string::String,
        1505  +
                    ::std::option::Option<crate::model::StringSet>,
        1506  +
                >,
        1507  +
            >,
 1599   1508   
        ) -> Self {
 1600         -
            self.blob_list = input;
        1509  +
            self.sparse_set_map =
        1510  +
                input.map(|v| crate::constrained::MaybeConstrained::Constrained((v).into()));
 1601   1511   
            self
 1602   1512   
        }
 1603   1513   
        #[allow(missing_docs)] // documentation missing in model
 1604         -
        pub(crate) fn set_blob_list(
        1514  +
        pub(crate) fn set_sparse_set_map(
 1605   1515   
            mut self,
 1606         -
            input: Option<impl ::std::convert::Into<::std::vec::Vec<::aws_smithy_types::Blob>>>,
        1516  +
            input: Option<
        1517  +
                impl ::std::convert::Into<
        1518  +
                    crate::constrained::MaybeConstrained<
        1519  +
                        crate::constrained::sparse_set_map_constrained::SparseSetMapConstrained,
        1520  +
                    >,
        1521  +
                >,
        1522  +
            >,
 1607   1523   
        ) -> Self {
 1608         -
            self.blob_list = input.map(|v| v.into());
        1524  +
            self.sparse_set_map = input.map(|v| v.into());
 1609   1525   
            self
 1610   1526   
        }
 1611         -
        /// Consumes the builder and constructs a [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput).
        1527  +
        /// Consumes the builder and constructs a [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput).
 1612   1528   
        ///
 1613         -
        /// The builder fails to construct a [`RpcV2CborListsInput`](crate::input::RpcV2CborListsInput) if a [`ConstraintViolation`] occurs.
        1529  +
        /// The builder fails to construct a [`RpcV2CborSparseMapsInput`](crate::input::RpcV2CborSparseMapsInput) if a [`ConstraintViolation`] occurs.
 1614   1530   
        ///
 1615         -
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
 1616         -
        pub fn build(self) -> Result<crate::input::RpcV2CborListsInput, ConstraintViolation> {
        1531  +
        pub fn build(self) -> Result<crate::input::RpcV2CborSparseMapsInput, ConstraintViolation> {
 1617   1532   
            self.build_enforcing_all_constraints()
 1618   1533   
        }
 1619   1534   
        fn build_enforcing_all_constraints(
 1620   1535   
            self,
 1621         -
        ) -> Result<crate::input::RpcV2CborListsInput, ConstraintViolation> {
 1622         -
            Ok(crate::input::RpcV2CborListsInput {
 1623         -
                string_list: self.string_list,
 1624         -
                string_set: self
 1625         -
                    .string_set
        1536  +
        ) -> Result<crate::input::RpcV2CborSparseMapsInput, ConstraintViolation> {
        1537  +
            Ok(crate::input::RpcV2CborSparseMapsInput {
        1538  +
                sparse_struct_map: self.sparse_struct_map,
        1539  +
                sparse_number_map: self.sparse_number_map,
        1540  +
                sparse_boolean_map: self.sparse_boolean_map,
        1541  +
                sparse_string_map: self.sparse_string_map,
        1542  +
                sparse_set_map: self
        1543  +
                    .sparse_set_map
 1626   1544   
                    .map(|v| match v {
 1627   1545   
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 1628   1546   
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 1629   1547   
                    })
 1630         -
                    .map(|res| res.map_err(ConstraintViolation::StringSet))
 1631         -
                    .transpose()?,
 1632         -
                integer_list: self.integer_list,
 1633         -
                boolean_list: self.boolean_list,
 1634         -
                timestamp_list: self.timestamp_list,
 1635         -
                enum_list: self
 1636         -
                    .enum_list
 1637         -
                    .map(|v| match v {
 1638         -
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 1639         -
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
        1548  +
                    .map(|res| {
        1549  +
                        res.map(|v| v.into())
        1550  +
                            .map_err(ConstraintViolation::SparseSetMap)
 1640   1551   
                    })
 1641         -
                    .map(|res| res.map(|v| v.into()).map_err(ConstraintViolation::EnumList))
 1642   1552   
                    .transpose()?,
 1643         -
                int_enum_list: self.int_enum_list,
 1644         -
                nested_string_list: self.nested_string_list,
 1645         -
                structure_list: self.structure_list,
 1646         -
                blob_list: self.blob_list,
 1647   1553   
            })
 1648   1554   
        }
 1649   1555   
    }
 1650   1556   
}
 1651         -
/// See [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
 1652         -
pub mod simple_scalar_properties_input {
        1557  +
/// See [`RecursiveShapesInput`](crate::input::RecursiveShapesInput).
        1558  +
pub mod recursive_shapes_input {
 1653   1559   
 1654         -
    impl ::std::convert::From<Builder> for crate::input::SimpleScalarPropertiesInput {
        1560  +
    impl ::std::convert::From<Builder> for crate::input::RecursiveShapesInput {
 1655   1561   
        fn from(builder: Builder) -> Self {
 1656   1562   
            builder.build()
 1657   1563   
        }
 1658   1564   
    }
 1659         -
    /// A builder for [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
        1565  +
    /// A builder for [`RecursiveShapesInput`](crate::input::RecursiveShapesInput).
 1660   1566   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1661   1567   
    pub struct Builder {
 1662         -
        pub(crate) true_boolean_value: ::std::option::Option<bool>,
 1663         -
        pub(crate) false_boolean_value: ::std::option::Option<bool>,
 1664         -
        pub(crate) byte_value: ::std::option::Option<i8>,
 1665         -
        pub(crate) double_value: ::std::option::Option<f64>,
 1666         -
        pub(crate) float_value: ::std::option::Option<f32>,
 1667         -
        pub(crate) integer_value: ::std::option::Option<i32>,
 1668         -
        pub(crate) long_value: ::std::option::Option<i64>,
 1669         -
        pub(crate) short_value: ::std::option::Option<i16>,
 1670         -
        pub(crate) string_value: ::std::option::Option<::std::string::String>,
 1671         -
        pub(crate) blob_value: ::std::option::Option<::aws_smithy_types::Blob>,
        1568  +
        pub(crate) nested: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
 1672   1569   
    }
 1673   1570   
    impl Builder {
 1674   1571   
        #[allow(missing_docs)] // documentation missing in model
 1675         -
        pub fn true_boolean_value(mut self, input: ::std::option::Option<bool>) -> Self {
 1676         -
            self.true_boolean_value = input;
 1677         -
            self
 1678         -
        }
 1679         -
        #[allow(missing_docs)] // documentation missing in model
 1680         -
        pub(crate) fn set_true_boolean_value(
        1572  +
        pub fn nested(
 1681   1573   
            mut self,
 1682         -
            input: Option<impl ::std::convert::Into<bool>>,
        1574  +
            input: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
 1683   1575   
        ) -> Self {
 1684         -
            self.true_boolean_value = input.map(|v| v.into());
 1685         -
            self
 1686         -
        }
 1687         -
        #[allow(missing_docs)] // documentation missing in model
 1688         -
        pub fn false_boolean_value(mut self, input: ::std::option::Option<bool>) -> Self {
 1689         -
            self.false_boolean_value = input;
        1576  +
            self.nested = input;
 1690   1577   
            self
 1691   1578   
        }
 1692   1579   
        #[allow(missing_docs)] // documentation missing in model
 1693         -
        pub(crate) fn set_false_boolean_value(
        1580  +
        pub(crate) fn set_nested(
 1694   1581   
            mut self,
 1695         -
            input: Option<impl ::std::convert::Into<bool>>,
        1582  +
            input: Option<
        1583  +
                impl ::std::convert::Into<crate::model::RecursiveShapesInputOutputNested1>,
        1584  +
            >,
 1696   1585   
        ) -> Self {
 1697         -
            self.false_boolean_value = input.map(|v| v.into());
        1586  +
            self.nested = input.map(|v| v.into());
 1698   1587   
            self
 1699   1588   
        }
 1700         -
        #[allow(missing_docs)] // documentation missing in model
 1701         -
        pub fn byte_value(mut self, input: ::std::option::Option<i8>) -> Self {
 1702         -
            self.byte_value = input;
 1703         -
            self
        1589  +
        /// Consumes the builder and constructs a [`RecursiveShapesInput`](crate::input::RecursiveShapesInput).
        1590  +
        pub fn build(self) -> crate::input::RecursiveShapesInput {
        1591  +
            self.build_enforcing_all_constraints()
        1592  +
        }
        1593  +
        fn build_enforcing_all_constraints(self) -> crate::input::RecursiveShapesInput {
        1594  +
            crate::input::RecursiveShapesInput {
        1595  +
                nested: self.nested,
        1596  +
            }
        1597  +
        }
        1598  +
    }
        1599  +
}
        1600  +
/// See [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
        1601  +
pub mod greeting_with_errors_input {
        1602  +
        1603  +
    impl ::std::convert::From<Builder> for crate::input::GreetingWithErrorsInput {
        1604  +
        fn from(builder: Builder) -> Self {
        1605  +
            builder.build()
        1606  +
        }
        1607  +
    }
        1608  +
    /// A builder for [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
        1609  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1610  +
    pub struct Builder {}
        1611  +
    impl Builder {
        1612  +
        /// Consumes the builder and constructs a [`GreetingWithErrorsInput`](crate::input::GreetingWithErrorsInput).
        1613  +
        pub fn build(self) -> crate::input::GreetingWithErrorsInput {
        1614  +
            self.build_enforcing_all_constraints()
        1615  +
        }
        1616  +
        fn build_enforcing_all_constraints(self) -> crate::input::GreetingWithErrorsInput {
        1617  +
            crate::input::GreetingWithErrorsInput {}
        1618  +
        }
        1619  +
    }
        1620  +
}
        1621  +
/// See [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
        1622  +
pub mod fractional_seconds_input {
        1623  +
        1624  +
    impl ::std::convert::From<Builder> for crate::input::FractionalSecondsInput {
        1625  +
        fn from(builder: Builder) -> Self {
        1626  +
            builder.build()
        1627  +
        }
        1628  +
    }
        1629  +
    /// A builder for [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
        1630  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1631  +
    pub struct Builder {}
        1632  +
    impl Builder {
        1633  +
        /// Consumes the builder and constructs a [`FractionalSecondsInput`](crate::input::FractionalSecondsInput).
        1634  +
        pub fn build(self) -> crate::input::FractionalSecondsInput {
        1635  +
            self.build_enforcing_all_constraints()
        1636  +
        }
        1637  +
        fn build_enforcing_all_constraints(self) -> crate::input::FractionalSecondsInput {
        1638  +
            crate::input::FractionalSecondsInput {}
        1639  +
        }
        1640  +
    }
        1641  +
}
        1642  +
/// See [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput).
        1643  +
pub mod operation_with_defaults_input {
        1644  +
        1645  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        1646  +
    /// Holds one variant for each of the ways the builder can fail.
        1647  +
    #[non_exhaustive]
        1648  +
    #[allow(clippy::enum_variant_names)]
        1649  +
    pub enum ConstraintViolation {
        1650  +
        /// Constraint violation occurred building member `defaults` when building `OperationWithDefaultsInput`.
        1651  +
        #[doc(hidden)]
        1652  +
        Defaults(crate::model::defaults::ConstraintViolation),
        1653  +
    }
        1654  +
    impl ::std::fmt::Display for ConstraintViolation {
        1655  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        1656  +
            match self {
        1657  +
                ConstraintViolation::Defaults(_) => write!(f, "constraint violation occurred building member `defaults` when building `OperationWithDefaultsInput`"),
        1658  +
            }
        1659  +
        }
        1660  +
    }
        1661  +
    impl ::std::error::Error for ConstraintViolation {}
        1662  +
    impl ConstraintViolation {
        1663  +
        pub(crate) fn as_validation_exception_field(
        1664  +
            self,
        1665  +
            path: ::std::string::String,
        1666  +
        ) -> crate::model::ValidationExceptionField {
        1667  +
            match self {
        1668  +
                ConstraintViolation::Defaults(inner) => {
        1669  +
                    inner.as_validation_exception_field(path + "/defaults")
        1670  +
                }
        1671  +
            }
        1672  +
        }
        1673  +
    }
        1674  +
    impl ::std::convert::From<ConstraintViolation>
        1675  +
        for ::aws_smithy_legacy_http_server::protocol::rpc_v2_cbor::rejection::RequestRejection
        1676  +
    {
        1677  +
        fn from(constraint_violation: ConstraintViolation) -> Self {
        1678  +
            let first_validation_exception_field =
        1679  +
                constraint_violation.as_validation_exception_field("".to_owned());
        1680  +
            let validation_exception = crate::error::ValidationException {
        1681  +
                message: format!(
        1682  +
                    "1 validation error detected. {}",
        1683  +
                    &first_validation_exception_field.message
        1684  +
                ),
        1685  +
                field_list: Some(vec![first_validation_exception_field]),
        1686  +
            };
        1687  +
            Self::ConstraintViolation(
        1688  +
                                crate::protocol_serde::shape_validation_exception::ser_validation_exception_error(&validation_exception)
        1689  +
                                    .expect("validation exceptions should never fail to serialize; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues")
        1690  +
                            )
        1691  +
        }
 1704   1692   
    }
 1705         -
        #[allow(missing_docs)] // documentation missing in model
 1706         -
        pub(crate) fn set_byte_value(
 1707         -
            mut self,
 1708         -
            input: Option<impl ::std::convert::Into<i8>>,
 1709         -
        ) -> Self {
 1710         -
            self.byte_value = input.map(|v| v.into());
 1711         -
            self
        1693  +
    impl ::std::convert::From<Builder>
        1694  +
        for crate::constrained::MaybeConstrained<crate::input::OperationWithDefaultsInput>
        1695  +
    {
        1696  +
        fn from(builder: Builder) -> Self {
        1697  +
            Self::Unconstrained(builder)
 1712   1698   
        }
 1713         -
        #[allow(missing_docs)] // documentation missing in model
 1714         -
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
 1715         -
            self.double_value = input;
 1716         -
            self
 1717   1699   
    }
 1718         -
        #[allow(missing_docs)] // documentation missing in model
 1719         -
        pub(crate) fn set_double_value(
 1720         -
            mut self,
 1721         -
            input: Option<impl ::std::convert::Into<f64>>,
 1722         -
        ) -> Self {
 1723         -
            self.double_value = input.map(|v| v.into());
 1724         -
            self
        1700  +
    impl ::std::convert::TryFrom<Builder> for crate::input::OperationWithDefaultsInput {
        1701  +
        type Error = ConstraintViolation;
        1702  +
        1703  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        1704  +
            builder.build()
 1725   1705   
        }
 1726         -
        #[allow(missing_docs)] // documentation missing in model
 1727         -
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
 1728         -
            self.float_value = input;
 1729         -
            self
 1730   1706   
    }
 1731         -
        #[allow(missing_docs)] // documentation missing in model
 1732         -
        pub(crate) fn set_float_value(
 1733         -
            mut self,
 1734         -
            input: Option<impl ::std::convert::Into<f32>>,
 1735         -
        ) -> Self {
 1736         -
            self.float_value = input.map(|v| v.into());
 1737         -
            self
        1707  +
    /// A builder for [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput).
        1708  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1709  +
    pub struct Builder {
        1710  +
        pub(crate) defaults:
        1711  +
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::Defaults>>,
        1712  +
        pub(crate) client_optional_defaults:
        1713  +
            ::std::option::Option<crate::model::ClientOptionalDefaults>,
        1714  +
        pub(crate) top_level_default: ::std::option::Option<::std::string::String>,
        1715  +
        pub(crate) other_top_level_default: ::std::option::Option<i32>,
 1738   1716   
    }
        1717  +
    impl Builder {
 1739   1718   
        #[allow(missing_docs)] // documentation missing in model
 1740         -
        pub fn integer_value(mut self, input: ::std::option::Option<i32>) -> Self {
 1741         -
            self.integer_value = input;
        1719  +
        pub fn defaults(mut self, input: ::std::option::Option<crate::model::Defaults>) -> Self {
        1720  +
            self.defaults = input.map(crate::constrained::MaybeConstrained::Constrained);
 1742   1721   
            self
 1743   1722   
        }
 1744   1723   
        #[allow(missing_docs)] // documentation missing in model
 1745         -
        pub(crate) fn set_integer_value(
        1724  +
        pub(crate) fn set_defaults(
 1746   1725   
            mut self,
 1747         -
            input: Option<impl ::std::convert::Into<i32>>,
        1726  +
            input: Option<
        1727  +
                impl ::std::convert::Into<crate::constrained::MaybeConstrained<crate::model::Defaults>>,
        1728  +
            >,
 1748   1729   
        ) -> Self {
 1749         -
            self.integer_value = input.map(|v| v.into());
 1750         -
            self
 1751         -
        }
 1752         -
        #[allow(missing_docs)] // documentation missing in model
 1753         -
        pub fn long_value(mut self, input: ::std::option::Option<i64>) -> Self {
 1754         -
            self.long_value = input;
        1730  +
            self.defaults = input.map(|v| v.into());
 1755   1731   
            self
 1756   1732   
        }
 1757   1733   
        #[allow(missing_docs)] // documentation missing in model
 1758         -
        pub(crate) fn set_long_value(
        1734  +
        pub fn client_optional_defaults(
 1759   1735   
            mut self,
 1760         -
            input: Option<impl ::std::convert::Into<i64>>,
        1736  +
            input: ::std::option::Option<crate::model::ClientOptionalDefaults>,
 1761   1737   
        ) -> Self {
 1762         -
            self.long_value = input.map(|v| v.into());
 1763         -
            self
 1764         -
        }
 1765         -
        #[allow(missing_docs)] // documentation missing in model
 1766         -
        pub fn short_value(mut self, input: ::std::option::Option<i16>) -> Self {
 1767         -
            self.short_value = input;
        1738  +
            self.client_optional_defaults = input;
 1768   1739   
            self
 1769   1740   
        }
 1770   1741   
        #[allow(missing_docs)] // documentation missing in model
 1771         -
        pub(crate) fn set_short_value(
        1742  +
        pub(crate) fn set_client_optional_defaults(
 1772   1743   
            mut self,
 1773         -
            input: Option<impl ::std::convert::Into<i16>>,
        1744  +
            input: Option<impl ::std::convert::Into<crate::model::ClientOptionalDefaults>>,
 1774   1745   
        ) -> Self {
 1775         -
            self.short_value = input.map(|v| v.into());
        1746  +
            self.client_optional_defaults = input.map(|v| v.into());
 1776   1747   
            self
 1777   1748   
        }
 1778   1749   
        #[allow(missing_docs)] // documentation missing in model
 1779         -
        pub fn string_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1780         -
            self.string_value = input;
        1750  +
        pub fn top_level_default(mut self, input: ::std::string::String) -> Self {
        1751  +
            self.top_level_default = Some(input);
 1781   1752   
            self
 1782   1753   
        }
 1783   1754   
        #[allow(missing_docs)] // documentation missing in model
 1784         -
        pub(crate) fn set_string_value(
        1755  +
        pub(crate) fn set_top_level_default(
 1785   1756   
            mut self,
 1786         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        1757  +
            input: impl ::std::convert::Into<::std::string::String>,
 1787   1758   
        ) -> Self {
 1788         -
            self.string_value = input.map(|v| v.into());
        1759  +
            self.top_level_default = Some(input.into());
 1789   1760   
            self
 1790   1761   
        }
 1791   1762   
        #[allow(missing_docs)] // documentation missing in model
 1792         -
        pub fn blob_value(
 1793         -
            mut self,
 1794         -
            input: ::std::option::Option<::aws_smithy_types::Blob>,
 1795         -
        ) -> Self {
 1796         -
            self.blob_value = input;
        1763  +
        pub fn other_top_level_default(mut self, input: i32) -> Self {
        1764  +
            self.other_top_level_default = Some(input);
 1797   1765   
            self
 1798   1766   
        }
 1799   1767   
        #[allow(missing_docs)] // documentation missing in model
 1800         -
        pub(crate) fn set_blob_value(
        1768  +
        pub(crate) fn set_other_top_level_default(
 1801   1769   
            mut self,
 1802         -
            input: Option<impl ::std::convert::Into<::aws_smithy_types::Blob>>,
        1770  +
            input: impl ::std::convert::Into<i32>,
 1803   1771   
        ) -> Self {
 1804         -
            self.blob_value = input.map(|v| v.into());
        1772  +
            self.other_top_level_default = Some(input.into());
 1805   1773   
            self
 1806   1774   
        }
 1807         -
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesInput`](crate::input::SimpleScalarPropertiesInput).
 1808         -
        pub fn build(self) -> crate::input::SimpleScalarPropertiesInput {
        1775  +
        /// Consumes the builder and constructs a [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput).
        1776  +
        ///
        1777  +
        /// The builder fails to construct a [`OperationWithDefaultsInput`](crate::input::OperationWithDefaultsInput) if a [`ConstraintViolation`] occurs.
        1778  +
        ///
        1779  +
        pub fn build(
        1780  +
            self,
        1781  +
        ) -> Result<crate::input::OperationWithDefaultsInput, ConstraintViolation> {
 1809   1782   
            self.build_enforcing_all_constraints()
 1810   1783   
        }
 1811         -
        fn build_enforcing_all_constraints(self) -> crate::input::SimpleScalarPropertiesInput {
 1812         -
            crate::input::SimpleScalarPropertiesInput {
 1813         -
                true_boolean_value: self.true_boolean_value,
 1814         -
                false_boolean_value: self.false_boolean_value,
 1815         -
                byte_value: self.byte_value,
 1816         -
                double_value: self.double_value,
 1817         -
                float_value: self.float_value,
 1818         -
                integer_value: self.integer_value,
 1819         -
                long_value: self.long_value,
 1820         -
                short_value: self.short_value,
 1821         -
                string_value: self.string_value,
 1822         -
                blob_value: self.blob_value,
 1823         -
            }
        1784  +
        fn build_enforcing_all_constraints(
        1785  +
            self,
        1786  +
        ) -> Result<crate::input::OperationWithDefaultsInput, ConstraintViolation> {
        1787  +
            Ok(crate::input::OperationWithDefaultsInput {
        1788  +
                defaults: self
        1789  +
                    .defaults
        1790  +
                    .map(|v| match v {
        1791  +
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
        1792  +
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
        1793  +
                    })
        1794  +
                    .map(|res| res.map_err(ConstraintViolation::Defaults))
        1795  +
                    .transpose()?,
        1796  +
                client_optional_defaults: self.client_optional_defaults,
        1797  +
                top_level_default: self.top_level_default.unwrap_or_else(|| String::from("hi")),
        1798  +
                other_top_level_default: self.other_top_level_default.unwrap_or(0i32),
        1799  +
            })
 1824   1800   
        }
 1825   1801   
    }
 1826   1802   
}
 1827         -
/// See [`OptionalInputOutputInput`](crate::input::OptionalInputOutputInput).
 1828         -
pub mod optional_input_output_input {
        1803  +
/// See [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
        1804  +
pub mod sparse_nulls_operation_input {
 1829   1805   
 1830         -
    impl ::std::convert::From<Builder> for crate::input::OptionalInputOutputInput {
        1806  +
    impl ::std::convert::From<Builder> for crate::input::SparseNullsOperationInput {
 1831   1807   
        fn from(builder: Builder) -> Self {
 1832   1808   
            builder.build()
 1833   1809   
        }
 1834   1810   
    }
 1835         -
    /// A builder for [`OptionalInputOutputInput`](crate::input::OptionalInputOutputInput).
        1811  +
    /// A builder for [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
 1836   1812   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1837   1813   
    pub struct Builder {
 1838         -
        pub(crate) value: ::std::option::Option<::std::string::String>,
        1814  +
        pub(crate) sparse_string_list:
        1815  +
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
        1816  +
        pub(crate) sparse_string_map: ::std::option::Option<
        1817  +
            ::std::collections::HashMap<
        1818  +
                ::std::string::String,
        1819  +
                ::std::option::Option<::std::string::String>,
        1820  +
            >,
        1821  +
        >,
 1839   1822   
    }
 1840   1823   
    impl Builder {
 1841   1824   
        #[allow(missing_docs)] // documentation missing in model
 1842         -
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1843         -
            self.value = input;
        1825  +
        pub fn sparse_string_list(
        1826  +
            mut self,
        1827  +
            input: ::std::option::Option<
        1828  +
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
        1829  +
            >,
        1830  +
        ) -> Self {
        1831  +
            self.sparse_string_list = input;
 1844   1832   
            self
 1845   1833   
        }
 1846   1834   
        #[allow(missing_docs)] // documentation missing in model
 1847         -
        pub(crate) fn set_value(
        1835  +
        pub(crate) fn set_sparse_string_list(
 1848   1836   
            mut self,
 1849         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        1837  +
            input: Option<
        1838  +
                impl ::std::convert::Into<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
        1839  +
            >,
 1850   1840   
        ) -> Self {
 1851         -
            self.value = input.map(|v| v.into());
        1841  +
            self.sparse_string_list = input.map(|v| v.into());
 1852   1842   
            self
 1853   1843   
        }
 1854         -
        /// Consumes the builder and constructs a [`OptionalInputOutputInput`](crate::input::OptionalInputOutputInput).
 1855         -
        pub fn build(self) -> crate::input::OptionalInputOutputInput {
 1856         -
            self.build_enforcing_all_constraints()
 1857         -
        }
 1858         -
        fn build_enforcing_all_constraints(self) -> crate::input::OptionalInputOutputInput {
 1859         -
            crate::input::OptionalInputOutputInput { value: self.value }
 1860         -
        }
 1861         -
    }
 1862         -
}
 1863         -
/// See [`EmptyInputOutputInput`](crate::input::EmptyInputOutputInput).
 1864         -
pub mod empty_input_output_input {
 1865         -
 1866         -
    impl ::std::convert::From<Builder> for crate::input::EmptyInputOutputInput {
 1867         -
        fn from(builder: Builder) -> Self {
 1868         -
            builder.build()
        1844  +
        #[allow(missing_docs)] // documentation missing in model
        1845  +
        pub fn sparse_string_map(
        1846  +
            mut self,
        1847  +
            input: ::std::option::Option<
        1848  +
                ::std::collections::HashMap<
        1849  +
                    ::std::string::String,
        1850  +
                    ::std::option::Option<::std::string::String>,
        1851  +
                >,
        1852  +
            >,
        1853  +
        ) -> Self {
        1854  +
            self.sparse_string_map = input;
        1855  +
            self
 1869   1856   
        }
        1857  +
        #[allow(missing_docs)] // documentation missing in model
        1858  +
        pub(crate) fn set_sparse_string_map(
        1859  +
            mut self,
        1860  +
            input: Option<
        1861  +
                impl ::std::convert::Into<
        1862  +
                    ::std::collections::HashMap<
        1863  +
                        ::std::string::String,
        1864  +
                        ::std::option::Option<::std::string::String>,
        1865  +
                    >,
        1866  +
                >,
        1867  +
            >,
        1868  +
        ) -> Self {
        1869  +
            self.sparse_string_map = input.map(|v| v.into());
        1870  +
            self
 1870   1871   
        }
 1871         -
    /// A builder for [`EmptyInputOutputInput`](crate::input::EmptyInputOutputInput).
 1872         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1873         -
    pub struct Builder {}
 1874         -
    impl Builder {
 1875         -
        /// Consumes the builder and constructs a [`EmptyInputOutputInput`](crate::input::EmptyInputOutputInput).
 1876         -
        pub fn build(self) -> crate::input::EmptyInputOutputInput {
        1872  +
        /// Consumes the builder and constructs a [`SparseNullsOperationInput`](crate::input::SparseNullsOperationInput).
        1873  +
        pub fn build(self) -> crate::input::SparseNullsOperationInput {
 1877   1874   
            self.build_enforcing_all_constraints()
 1878   1875   
        }
 1879         -
        fn build_enforcing_all_constraints(self) -> crate::input::EmptyInputOutputInput {
 1880         -
            crate::input::EmptyInputOutputInput {}
        1876  +
        fn build_enforcing_all_constraints(self) -> crate::input::SparseNullsOperationInput {
        1877  +
            crate::input::SparseNullsOperationInput {
        1878  +
                sparse_string_list: self.sparse_string_list,
        1879  +
                sparse_string_map: self.sparse_string_map,
        1880  +
            }
 1881   1881   
        }
 1882   1882   
    }
 1883   1883   
}
 1884         -
/// See [`NoInputOutputInput`](crate::input::NoInputOutputInput).
 1885         -
pub mod no_input_output_input {
        1884  +
/// See [`Float16Input`](crate::input::Float16Input).
        1885  +
pub mod float16_input {
 1886   1886   
 1887         -
    impl ::std::convert::From<Builder> for crate::input::NoInputOutputInput {
        1887  +
    impl ::std::convert::From<Builder> for crate::input::Float16Input {
 1888   1888   
        fn from(builder: Builder) -> Self {
 1889   1889   
            builder.build()
 1890   1890   
        }
 1891   1891   
    }
 1892         -
    /// A builder for [`NoInputOutputInput`](crate::input::NoInputOutputInput).
        1892  +
    /// A builder for [`Float16Input`](crate::input::Float16Input).
 1893   1893   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1894   1894   
    pub struct Builder {}
 1895   1895   
    impl Builder {
 1896         -
        /// Consumes the builder and constructs a [`NoInputOutputInput`](crate::input::NoInputOutputInput).
 1897         -
        pub fn build(self) -> crate::input::NoInputOutputInput {
        1896  +
        /// Consumes the builder and constructs a [`Float16Input`](crate::input::Float16Input).
        1897  +
        pub fn build(self) -> crate::input::Float16Input {
 1898   1898   
            self.build_enforcing_all_constraints()
 1899   1899   
        }
 1900         -
        fn build_enforcing_all_constraints(self) -> crate::input::NoInputOutputInput {
 1901         -
            crate::input::NoInputOutputInput {}
        1900  +
        fn build_enforcing_all_constraints(self) -> crate::input::Float16Input {
        1901  +
            crate::input::Float16Input {}
 1902   1902   
        }
 1903   1903   
    }
 1904   1904   
}