Server Test

Server Test

rev. 7254d43655ed63111c94f599437f2b0d3f55446e

Files changed:

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

@@ -1,1 +423,423 @@
    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         -
pub struct Float16;
           3  +
pub struct NoInputOutput;
    4      4   
    5         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for Float16 {
           5  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for NoInputOutput {
    6      6   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
    7      7   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
    8         -
            "smithy.protocoltests.rpcv2Cbor#Float16",
           8  +
            "smithy.protocoltests.rpcv2Cbor#NoInputOutput",
    9      9   
            "smithy.protocoltests.rpcv2Cbor",
   10         -
            "Float16",
          10  +
            "NoInputOutput",
   11     11   
        );
   12     12   
   13         -
    type Input = crate::input::Float16Input;
   14         -
    type Output = crate::output::Float16Output;
          13  +
    type Input = crate::input::NoInputOutputInput;
          14  +
    type Output = crate::output::NoInputOutputOutput;
   15     15   
    type Error = std::convert::Infallible;
   16     16   
}
   17     17   
   18         -
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for Float16 {
          18  +
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for NoInputOutput {
   19     19   
    type RequestFmt =
   20     20   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   21     21   
    type ResponseFmt =
   22     22   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   23     23   
   24     24   
    fn request_fmt() -> Self::RequestFmt {
   25     25   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
   26     26   
    }
   27     27   
   28     28   
    fn response_fmt() -> Self::ResponseFmt {
   29     29   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   30     30   
    }
   31     31   
}
   32     32   
   33     33   
#[allow(missing_docs)] // documentation missing in model
   34         -
pub struct SparseNullsOperation;
          34  +
pub struct EmptyInputOutput;
   35     35   
   36         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for SparseNullsOperation {
          36  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for EmptyInputOutput {
   37     37   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
   38     38   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
   39         -
            "smithy.protocoltests.rpcv2Cbor#SparseNullsOperation",
          39  +
            "smithy.protocoltests.rpcv2Cbor#EmptyInputOutput",
   40     40   
            "smithy.protocoltests.rpcv2Cbor",
   41         -
            "SparseNullsOperation",
          41  +
            "EmptyInputOutput",
   42     42   
        );
   43     43   
   44         -
    type Input = crate::input::SparseNullsOperationInput;
   45         -
    type Output = crate::output::SparseNullsOperationOutput;
          44  +
    type Input = crate::input::EmptyInputOutputInput;
          45  +
    type Output = crate::output::EmptyInputOutputOutput;
   46     46   
    type Error = std::convert::Infallible;
   47     47   
}
   48     48   
   49     49   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
   50         -
    for SparseNullsOperation
          50  +
    for EmptyInputOutput
   51     51   
{
   52     52   
    type RequestFmt =
   53     53   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   54     54   
    type ResponseFmt =
   55     55   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   56     56   
   57     57   
    fn request_fmt() -> Self::RequestFmt {
   58     58   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
   59     59   
    }
   60     60   
   61     61   
    fn response_fmt() -> Self::ResponseFmt {
   62     62   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   63     63   
    }
   64     64   
}
   65     65   
   66     66   
#[allow(missing_docs)] // documentation missing in model
   67         -
pub struct OperationWithDefaults;
          67  +
pub struct OptionalInputOutput;
   68     68   
   69         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OperationWithDefaults {
          69  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OptionalInputOutput {
   70     70   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
   71     71   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
   72         -
            "smithy.protocoltests.rpcv2Cbor#OperationWithDefaults",
          72  +
            "smithy.protocoltests.rpcv2Cbor#OptionalInputOutput",
   73     73   
            "smithy.protocoltests.rpcv2Cbor",
   74         -
            "OperationWithDefaults",
          74  +
            "OptionalInputOutput",
   75     75   
        );
   76     76   
   77         -
    type Input = crate::input::OperationWithDefaultsInput;
   78         -
    type Output = crate::output::OperationWithDefaultsOutput;
   79         -
    type Error = crate::error::OperationWithDefaultsError;
          77  +
    type Input = crate::input::OptionalInputOutputInput;
          78  +
    type Output = crate::output::OptionalInputOutputOutput;
          79  +
    type Error = std::convert::Infallible;
   80     80   
}
   81     81   
   82     82   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
   83         -
    for OperationWithDefaults
          83  +
    for OptionalInputOutput
   84     84   
{
   85     85   
    type RequestFmt =
   86     86   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   87     87   
    type ResponseFmt =
   88     88   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   89     89   
   90     90   
    fn request_fmt() -> Self::RequestFmt {
   91     91   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
   92     92   
    }
   93     93   
   94     94   
    fn response_fmt() -> Self::ResponseFmt {
   95     95   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   96     96   
    }
   97     97   
}
   98     98   
   99     99   
#[allow(missing_docs)] // documentation missing in model
  100         -
pub struct FractionalSeconds;
         100  +
pub struct SimpleScalarProperties;
  101    101   
  102         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for FractionalSeconds {
         102  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for SimpleScalarProperties {
  103    103   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  104    104   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  105         -
            "smithy.protocoltests.rpcv2Cbor#FractionalSeconds",
         105  +
            "smithy.protocoltests.rpcv2Cbor#SimpleScalarProperties",
  106    106   
            "smithy.protocoltests.rpcv2Cbor",
  107         -
            "FractionalSeconds",
         107  +
            "SimpleScalarProperties",
  108    108   
        );
  109    109   
  110         -
    type Input = crate::input::FractionalSecondsInput;
  111         -
    type Output = crate::output::FractionalSecondsOutput;
         110  +
    type Input = crate::input::SimpleScalarPropertiesInput;
         111  +
    type Output = crate::output::SimpleScalarPropertiesOutput;
  112    112   
    type Error = std::convert::Infallible;
  113    113   
}
  114    114   
  115    115   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  116         -
    for FractionalSeconds
         116  +
    for SimpleScalarProperties
  117    117   
{
  118    118   
    type RequestFmt =
  119    119   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  120    120   
    type ResponseFmt =
  121    121   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  122    122   
  123    123   
    fn request_fmt() -> Self::RequestFmt {
  124    124   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  125    125   
    }
  126    126   
  127    127   
    fn response_fmt() -> Self::ResponseFmt {
  128    128   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  129    129   
    }
  130    130   
}
  131    131   
  132         -
/// This operation has three possible return values: 1. A successful response in the form of GreetingWithErrorsOutput 2. An InvalidGreeting error. 3. A ComplexError error. Implementations must be able to successfully take a response and properly deserialize successful and error responses.
  133         -
pub struct GreetingWithErrors;
         132  +
/// This test case serializes JSON lists for the following cases for both input and output: 1. Normal lists. 2. Normal sets. 3. Lists of lists. 4. Lists of structures.
         133  +
pub struct RpcV2CborLists;
  134    134   
  135         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for GreetingWithErrors {
         135  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for RpcV2CborLists {
  136    136   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  137    137   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  138         -
            "smithy.protocoltests.rpcv2Cbor#GreetingWithErrors",
         138  +
            "smithy.protocoltests.rpcv2Cbor#RpcV2CborLists",
  139    139   
            "smithy.protocoltests.rpcv2Cbor",
  140         -
            "GreetingWithErrors",
         140  +
            "RpcV2CborLists",
  141    141   
        );
  142    142   
  143         -
    type Input = crate::input::GreetingWithErrorsInput;
  144         -
    type Output = crate::output::GreetingWithErrorsOutput;
  145         -
    type Error = crate::error::GreetingWithErrorsError;
         143  +
    type Input = crate::input::RpcV2CborListsInput;
         144  +
    type Output = crate::output::RpcV2CborListsOutput;
         145  +
    type Error = crate::error::RpcV2CborListsError;
  146    146   
}
  147    147   
  148         -
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  149         -
    for GreetingWithErrors
  150         -
{
         148  +
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for RpcV2CborLists {
  151    149   
    type RequestFmt =
  152    150   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  153    151   
    type ResponseFmt =
  154    152   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  155    153   
  156    154   
    fn request_fmt() -> Self::RequestFmt {
  157    155   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  158    156   
    }
  159    157   
  160    158   
    fn response_fmt() -> Self::ResponseFmt {
  161    159   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  162    160   
    }
  163    161   
}
  164    162   
  165         -
#[allow(missing_docs)] // documentation missing in model
  166         -
pub struct RecursiveShapes;
         163  +
/// The example tests basic map serialization.
         164  +
pub struct RpcV2CborDenseMaps;
  167    165   
  168         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for RecursiveShapes {
         166  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for RpcV2CborDenseMaps {
  169    167   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  170    168   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  171         -
            "smithy.protocoltests.rpcv2Cbor#RecursiveShapes",
         169  +
            "smithy.protocoltests.rpcv2Cbor#RpcV2CborDenseMaps",
  172    170   
            "smithy.protocoltests.rpcv2Cbor",
  173         -
            "RecursiveShapes",
         171  +
            "RpcV2CborDenseMaps",
  174    172   
        );
  175    173   
  176         -
    type Input = crate::input::RecursiveShapesInput;
  177         -
    type Output = crate::output::RecursiveShapesOutput;
  178         -
    type Error = std::convert::Infallible;
         174  +
    type Input = crate::input::RpcV2CborDenseMapsInput;
         175  +
    type Output = crate::output::RpcV2CborDenseMapsOutput;
         176  +
    type Error = crate::error::RpcV2CborDenseMapsError;
  179    177   
}
  180    178   
  181    179   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  182         -
    for RecursiveShapes
         180  +
    for RpcV2CborDenseMaps
  183    181   
{
  184    182   
    type RequestFmt =
  185    183   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  186    184   
    type ResponseFmt =
  187    185   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  188    186   
  189    187   
    fn request_fmt() -> Self::RequestFmt {
  190    188   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  191    189   
    }
  192    190   
  193    191   
    fn response_fmt() -> Self::ResponseFmt {
  194    192   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  195    193   
    }
  196    194   
}
  197    195   
  198    196   
#[allow(missing_docs)] // documentation missing in model
  199    197   
pub struct RpcV2CborSparseMaps;
  200    198   
  201    199   
impl ::aws_smithy_legacy_http_server::operation::OperationShape for RpcV2CborSparseMaps {
  202    200   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  203    201   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  204    202   
            "smithy.protocoltests.rpcv2Cbor#RpcV2CborSparseMaps",
  205    203   
            "smithy.protocoltests.rpcv2Cbor",
  206    204   
            "RpcV2CborSparseMaps",
  207    205   
        );
  208    206   
  209    207   
    type Input = crate::input::RpcV2CborSparseMapsInput;
  210    208   
    type Output = crate::output::RpcV2CborSparseMapsOutput;
  211    209   
    type Error = crate::error::RpcV2CborSparseMapsError;
  212    210   
}
  213    211   
  214    212   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  215    213   
    for RpcV2CborSparseMaps
  216    214   
{
  217    215   
    type RequestFmt =
  218    216   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  219    217   
    type ResponseFmt =
  220    218   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  221    219   
  222    220   
    fn request_fmt() -> Self::RequestFmt {
  223    221   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  224    222   
    }
  225    223   
  226    224   
    fn response_fmt() -> Self::ResponseFmt {
  227    225   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  228    226   
    }
  229    227   
}
  230    228   
  231         -
/// The example tests basic map serialization.
  232         -
pub struct RpcV2CborDenseMaps;
         229  +
#[allow(missing_docs)] // documentation missing in model
         230  +
pub struct RecursiveShapes;
  233    231   
  234         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for RpcV2CborDenseMaps {
         232  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for RecursiveShapes {
  235    233   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  236    234   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  237         -
            "smithy.protocoltests.rpcv2Cbor#RpcV2CborDenseMaps",
         235  +
            "smithy.protocoltests.rpcv2Cbor#RecursiveShapes",
  238    236   
            "smithy.protocoltests.rpcv2Cbor",
  239         -
            "RpcV2CborDenseMaps",
         237  +
            "RecursiveShapes",
  240    238   
        );
  241    239   
  242         -
    type Input = crate::input::RpcV2CborDenseMapsInput;
  243         -
    type Output = crate::output::RpcV2CborDenseMapsOutput;
  244         -
    type Error = crate::error::RpcV2CborDenseMapsError;
         240  +
    type Input = crate::input::RecursiveShapesInput;
         241  +
    type Output = crate::output::RecursiveShapesOutput;
         242  +
    type Error = std::convert::Infallible;
  245    243   
}
  246    244   
  247    245   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  248         -
    for RpcV2CborDenseMaps
         246  +
    for RecursiveShapes
  249    247   
{
  250    248   
    type RequestFmt =
  251    249   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  252    250   
    type ResponseFmt =
  253    251   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  254    252   
  255    253   
    fn request_fmt() -> Self::RequestFmt {
  256    254   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  257    255   
    }
  258    256   
  259    257   
    fn response_fmt() -> Self::ResponseFmt {
  260    258   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  261    259   
    }
  262    260   
}
  263    261   
  264         -
/// This test case serializes JSON lists for the following cases for both input and output: 1. Normal lists. 2. Normal sets. 3. Lists of lists. 4. Lists of structures.
  265         -
pub struct RpcV2CborLists;
         262  +
/// This operation has three possible return values: 1. A successful response in the form of GreetingWithErrorsOutput 2. An InvalidGreeting error. 3. A ComplexError error. Implementations must be able to successfully take a response and properly deserialize successful and error responses.
         263  +
pub struct GreetingWithErrors;
  266    264   
  267         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for RpcV2CborLists {
         265  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for GreetingWithErrors {
  268    266   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  269    267   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  270         -
            "smithy.protocoltests.rpcv2Cbor#RpcV2CborLists",
         268  +
            "smithy.protocoltests.rpcv2Cbor#GreetingWithErrors",
  271    269   
            "smithy.protocoltests.rpcv2Cbor",
  272         -
            "RpcV2CborLists",
         270  +
            "GreetingWithErrors",
  273    271   
        );
  274    272   
  275         -
    type Input = crate::input::RpcV2CborListsInput;
  276         -
    type Output = crate::output::RpcV2CborListsOutput;
  277         -
    type Error = crate::error::RpcV2CborListsError;
         273  +
    type Input = crate::input::GreetingWithErrorsInput;
         274  +
    type Output = crate::output::GreetingWithErrorsOutput;
         275  +
    type Error = crate::error::GreetingWithErrorsError;
  278    276   
}
  279    277   
  280         -
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for RpcV2CborLists {
         278  +
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
         279  +
    for GreetingWithErrors
         280  +
{
  281    281   
    type RequestFmt =
  282    282   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  283    283   
    type ResponseFmt =
  284    284   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  285    285   
  286    286   
    fn request_fmt() -> Self::RequestFmt {
  287    287   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  288    288   
    }
  289    289   
  290    290   
    fn response_fmt() -> Self::ResponseFmt {
  291    291   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  292    292   
    }
  293    293   
}
  294    294   
  295    295   
#[allow(missing_docs)] // documentation missing in model
  296         -
pub struct SimpleScalarProperties;
         296  +
pub struct FractionalSeconds;
  297    297   
  298         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for SimpleScalarProperties {
         298  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for FractionalSeconds {
  299    299   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  300    300   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  301         -
            "smithy.protocoltests.rpcv2Cbor#SimpleScalarProperties",
         301  +
            "smithy.protocoltests.rpcv2Cbor#FractionalSeconds",
  302    302   
            "smithy.protocoltests.rpcv2Cbor",
  303         -
            "SimpleScalarProperties",
         303  +
            "FractionalSeconds",
  304    304   
        );
  305    305   
  306         -
    type Input = crate::input::SimpleScalarPropertiesInput;
  307         -
    type Output = crate::output::SimpleScalarPropertiesOutput;
         306  +
    type Input = crate::input::FractionalSecondsInput;
         307  +
    type Output = crate::output::FractionalSecondsOutput;
  308    308   
    type Error = std::convert::Infallible;
  309    309   
}
  310    310   
  311    311   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  312         -
    for SimpleScalarProperties
         312  +
    for FractionalSeconds
  313    313   
{
  314    314   
    type RequestFmt =
  315    315   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  316    316   
    type ResponseFmt =
  317    317   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  318    318   
  319    319   
    fn request_fmt() -> Self::RequestFmt {
  320    320   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  321    321   
    }
  322    322   
  323    323   
    fn response_fmt() -> Self::ResponseFmt {
  324    324   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  325    325   
    }
  326    326   
}
  327    327   
  328    328   
#[allow(missing_docs)] // documentation missing in model
  329         -
pub struct OptionalInputOutput;
         329  +
pub struct OperationWithDefaults;
  330    330   
  331         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OptionalInputOutput {
         331  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for OperationWithDefaults {
  332    332   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  333    333   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  334         -
            "smithy.protocoltests.rpcv2Cbor#OptionalInputOutput",
         334  +
            "smithy.protocoltests.rpcv2Cbor#OperationWithDefaults",
  335    335   
            "smithy.protocoltests.rpcv2Cbor",
  336         -
            "OptionalInputOutput",
         336  +
            "OperationWithDefaults",
  337    337   
        );
  338    338   
  339         -
    type Input = crate::input::OptionalInputOutputInput;
  340         -
    type Output = crate::output::OptionalInputOutputOutput;
  341         -
    type Error = std::convert::Infallible;
         339  +
    type Input = crate::input::OperationWithDefaultsInput;
         340  +
    type Output = crate::output::OperationWithDefaultsOutput;
         341  +
    type Error = crate::error::OperationWithDefaultsError;
  342    342   
}
  343    343   
  344    344   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  345         -
    for OptionalInputOutput
         345  +
    for OperationWithDefaults
  346    346   
{
  347    347   
    type RequestFmt =
  348    348   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  349    349   
    type ResponseFmt =
  350    350   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  351    351   
  352    352   
    fn request_fmt() -> Self::RequestFmt {
  353    353   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  354    354   
    }
  355    355   
  356    356   
    fn response_fmt() -> Self::ResponseFmt {
  357    357   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  358    358   
    }
  359    359   
}
  360    360   
  361    361   
#[allow(missing_docs)] // documentation missing in model
  362         -
pub struct EmptyInputOutput;
         362  +
pub struct SparseNullsOperation;
  363    363   
  364         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for EmptyInputOutput {
         364  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for SparseNullsOperation {
  365    365   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  366    366   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  367         -
            "smithy.protocoltests.rpcv2Cbor#EmptyInputOutput",
         367  +
            "smithy.protocoltests.rpcv2Cbor#SparseNullsOperation",
  368    368   
            "smithy.protocoltests.rpcv2Cbor",
  369         -
            "EmptyInputOutput",
         369  +
            "SparseNullsOperation",
  370    370   
        );
  371    371   
  372         -
    type Input = crate::input::EmptyInputOutputInput;
  373         -
    type Output = crate::output::EmptyInputOutputOutput;
         372  +
    type Input = crate::input::SparseNullsOperationInput;
         373  +
    type Output = crate::output::SparseNullsOperationOutput;
  374    374   
    type Error = std::convert::Infallible;
  375    375   
}
  376    376   
  377    377   
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity
  378         -
    for EmptyInputOutput
         378  +
    for SparseNullsOperation
  379    379   
{
  380    380   
    type RequestFmt =
  381    381   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  382    382   
    type ResponseFmt =
  383    383   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  384    384   
  385    385   
    fn request_fmt() -> Self::RequestFmt {
  386    386   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  387    387   
    }
  388    388   
  389    389   
    fn response_fmt() -> Self::ResponseFmt {
  390    390   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  391    391   
    }
  392    392   
}
  393    393   
  394    394   
#[allow(missing_docs)] // documentation missing in model
  395         -
pub struct NoInputOutput;
         395  +
pub struct Float16;
  396    396   
  397         -
impl ::aws_smithy_legacy_http_server::operation::OperationShape for NoInputOutput {
         397  +
impl ::aws_smithy_legacy_http_server::operation::OperationShape for Float16 {
  398    398   
    const ID: ::aws_smithy_legacy_http_server::shape_id::ShapeId =
  399    399   
        ::aws_smithy_legacy_http_server::shape_id::ShapeId::new(
  400         -
            "smithy.protocoltests.rpcv2Cbor#NoInputOutput",
         400  +
            "smithy.protocoltests.rpcv2Cbor#Float16",
  401    401   
            "smithy.protocoltests.rpcv2Cbor",
  402         -
            "NoInputOutput",
         402  +
            "Float16",
  403    403   
        );
  404    404   
  405         -
    type Input = crate::input::NoInputOutputInput;
  406         -
    type Output = crate::output::NoInputOutputOutput;
         405  +
    type Input = crate::input::Float16Input;
         406  +
    type Output = crate::output::Float16Output;
  407    407   
    type Error = std::convert::Infallible;
  408    408   
}
  409    409   
  410         -
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for NoInputOutput {
         410  +
impl ::aws_smithy_legacy_http_server::instrumentation::sensitivity::Sensitivity for Float16 {
  411    411   
    type RequestFmt =
  412    412   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  413    413   
    type ResponseFmt =
  414    414   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  415    415   
  416    416   
    fn request_fmt() -> Self::RequestFmt {
  417    417   
        ::aws_smithy_legacy_http_server::instrumentation::sensitivity::RequestFmt::new()
  418    418   
    }
  419    419   
  420    420   
    fn response_fmt() -> Self::ResponseFmt {

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

@@ -1,1 +308,291 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[allow(missing_docs)] // documentation missing in model
    3         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
    4         -
pub struct Float16Output {
    5         -
    #[allow(missing_docs)] // documentation missing in model
    6         -
    pub value: ::std::option::Option<f64>,
    7         -
}
    8         -
impl Float16Output {
    9         -
    #[allow(missing_docs)] // documentation missing in model
   10         -
    pub fn value(&self) -> ::std::option::Option<f64> {
   11         -
        self.value
           3  +
#[derive(
           4  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
           5  +
)]
           6  +
pub struct NoInputOutputOutput {}
           7  +
impl NoInputOutputOutput {
           8  +
    /// Creates a new builder-style object to manufacture [`NoInputOutputOutput`](crate::output::NoInputOutputOutput).
           9  +
    pub fn builder() -> crate::output::no_input_output_output::Builder {
          10  +
        crate::output::no_input_output_output::Builder::default()
   12     11   
    }
   13     12   
}
   14         -
impl Float16Output {
   15         -
    /// Creates a new builder-style object to manufacture [`Float16Output`](crate::output::Float16Output).
   16         -
    pub fn builder() -> crate::output::float16_output::Builder {
   17         -
        crate::output::float16_output::Builder::default()
          13  +
          14  +
#[allow(missing_docs)] // documentation missing in model
          15  +
#[derive(
          16  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          17  +
)]
          18  +
pub struct EmptyInputOutputOutput {}
          19  +
impl EmptyInputOutputOutput {
          20  +
    /// Creates a new builder-style object to manufacture [`EmptyInputOutputOutput`](crate::output::EmptyInputOutputOutput).
          21  +
    pub fn builder() -> crate::output::empty_input_output_output::Builder {
          22  +
        crate::output::empty_input_output_output::Builder::default()
   18     23   
    }
   19     24   
}
   20     25   
   21     26   
#[allow(missing_docs)] // documentation missing in model
   22         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
   23         -
pub struct SparseNullsOperationOutput {
   24         -
    #[allow(missing_docs)] // documentation missing in model
   25         -
    pub sparse_string_list:
   26         -
        ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
          27  +
#[derive(
          28  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
          29  +
)]
          30  +
pub struct OptionalInputOutputOutput {
   27     31   
    #[allow(missing_docs)] // documentation missing in model
   28         -
    pub sparse_string_map: ::std::option::Option<
   29         -
        ::std::collections::HashMap<
   30         -
            ::std::string::String,
   31         -
            ::std::option::Option<::std::string::String>,
   32         -
        >,
   33         -
    >,
          32  +
    pub value: ::std::option::Option<::std::string::String>,
   34     33   
}
   35         -
impl SparseNullsOperationOutput {
   36         -
    #[allow(missing_docs)] // documentation missing in model
   37         -
    pub fn sparse_string_list(
   38         -
        &self,
   39         -
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
   40         -
        self.sparse_string_list.as_deref()
   41         -
    }
          34  +
impl OptionalInputOutputOutput {
   42     35   
    #[allow(missing_docs)] // documentation missing in model
   43         -
    pub fn sparse_string_map(
   44         -
        &self,
   45         -
    ) -> ::std::option::Option<
   46         -
        &::std::collections::HashMap<
   47         -
            ::std::string::String,
   48         -
            ::std::option::Option<::std::string::String>,
   49         -
        >,
   50         -
    > {
   51         -
        self.sparse_string_map.as_ref()
          36  +
    pub fn value(&self) -> ::std::option::Option<&str> {
          37  +
        self.value.as_deref()
   52     38   
    }
   53     39   
}
   54         -
impl SparseNullsOperationOutput {
   55         -
    /// Creates a new builder-style object to manufacture [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
   56         -
    pub fn builder() -> crate::output::sparse_nulls_operation_output::Builder {
   57         -
        crate::output::sparse_nulls_operation_output::Builder::default()
          40  +
impl OptionalInputOutputOutput {
          41  +
    /// Creates a new builder-style object to manufacture [`OptionalInputOutputOutput`](crate::output::OptionalInputOutputOutput).
          42  +
    pub fn builder() -> crate::output::optional_input_output_output::Builder {
          43  +
        crate::output::optional_input_output_output::Builder::default()
   58     44   
    }
   59     45   
}
   60     46   
   61     47   
#[allow(missing_docs)] // documentation missing in model
   62     48   
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
   63         -
pub struct OperationWithDefaultsOutput {
   64         -
    #[allow(missing_docs)] // documentation missing in model
   65         -
    pub default_string: ::std::string::String,
   66         -
    #[allow(missing_docs)] // documentation missing in model
   67         -
    pub default_boolean: bool,
   68         -
    #[allow(missing_docs)] // documentation missing in model
   69         -
    pub default_list: ::std::vec::Vec<::std::string::String>,
   70         -
    #[allow(missing_docs)] // documentation missing in model
   71         -
    pub default_timestamp: ::aws_smithy_types::DateTime,
   72         -
    #[allow(missing_docs)] // documentation missing in model
   73         -
    pub default_blob: ::aws_smithy_types::Blob,
   74         -
    #[allow(missing_docs)] // documentation missing in model
   75         -
    pub default_byte: i8,
   76         -
    #[allow(missing_docs)] // documentation missing in model
   77         -
    pub default_short: i16,
   78         -
    #[allow(missing_docs)] // documentation missing in model
   79         -
    pub default_integer: i32,
   80         -
    #[allow(missing_docs)] // documentation missing in model
   81         -
    pub default_long: i64,
   82         -
    #[allow(missing_docs)] // documentation missing in model
   83         -
    pub default_float: f32,
   84         -
    #[allow(missing_docs)] // documentation missing in model
   85         -
    pub default_double: f64,
   86         -
    #[allow(missing_docs)] // documentation missing in model
   87         -
    pub default_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
   88         -
    #[allow(missing_docs)] // documentation missing in model
   89         -
    pub default_enum: crate::model::TestEnum,
          49  +
pub struct SimpleScalarPropertiesOutput {
   90     50   
    #[allow(missing_docs)] // documentation missing in model
   91         -
    pub default_int_enum: i32,
          51  +
    pub true_boolean_value: ::std::option::Option<bool>,
   92     52   
    #[allow(missing_docs)] // documentation missing in model
   93         -
    pub empty_string: ::std::string::String,
          53  +
    pub false_boolean_value: ::std::option::Option<bool>,
   94     54   
    #[allow(missing_docs)] // documentation missing in model
   95         -
    pub false_boolean: bool,
          55  +
    pub byte_value: ::std::option::Option<i8>,
   96     56   
    #[allow(missing_docs)] // documentation missing in model
   97         -
    pub empty_blob: ::aws_smithy_types::Blob,
          57  +
    pub double_value: ::std::option::Option<f64>,
   98     58   
    #[allow(missing_docs)] // documentation missing in model
   99         -
    pub zero_byte: i8,
          59  +
    pub float_value: ::std::option::Option<f32>,
  100     60   
    #[allow(missing_docs)] // documentation missing in model
  101         -
    pub zero_short: i16,
          61  +
    pub integer_value: ::std::option::Option<i32>,
  102     62   
    #[allow(missing_docs)] // documentation missing in model
  103         -
    pub zero_integer: i32,
          63  +
    pub long_value: ::std::option::Option<i64>,
  104     64   
    #[allow(missing_docs)] // documentation missing in model
  105         -
    pub zero_long: i64,
          65  +
    pub short_value: ::std::option::Option<i16>,
  106     66   
    #[allow(missing_docs)] // documentation missing in model
  107         -
    pub zero_float: f32,
          67  +
    pub string_value: ::std::option::Option<::std::string::String>,
  108     68   
    #[allow(missing_docs)] // documentation missing in model
  109         -
    pub zero_double: f64,
          69  +
    pub blob_value: ::std::option::Option<::aws_smithy_types::Blob>,
  110     70   
}
  111         -
impl OperationWithDefaultsOutput {
          71  +
impl SimpleScalarPropertiesOutput {
  112     72   
    #[allow(missing_docs)] // documentation missing in model
  113         -
    pub fn default_string(&self) -> &str {
  114         -
        use std::ops::Deref;
  115         -
        self.default_string.deref()
          73  +
    pub fn true_boolean_value(&self) -> ::std::option::Option<bool> {
          74  +
        self.true_boolean_value
  116     75   
    }
  117     76   
    #[allow(missing_docs)] // documentation missing in model
  118         -
    pub fn default_boolean(&self) -> bool {
  119         -
        self.default_boolean
          77  +
    pub fn false_boolean_value(&self) -> ::std::option::Option<bool> {
          78  +
        self.false_boolean_value
  120     79   
    }
  121     80   
    #[allow(missing_docs)] // documentation missing in model
  122         -
    pub fn default_list(&self) -> &[::std::string::String] {
  123         -
        use std::ops::Deref;
  124         -
        self.default_list.deref()
          81  +
    pub fn byte_value(&self) -> ::std::option::Option<i8> {
          82  +
        self.byte_value
  125     83   
    }
  126     84   
    #[allow(missing_docs)] // documentation missing in model
  127         -
    pub fn default_timestamp(&self) -> &::aws_smithy_types::DateTime {
  128         -
        &self.default_timestamp
          85  +
    pub fn double_value(&self) -> ::std::option::Option<f64> {
          86  +
        self.double_value
  129     87   
    }
  130     88   
    #[allow(missing_docs)] // documentation missing in model
  131         -
    pub fn default_blob(&self) -> &::aws_smithy_types::Blob {
  132         -
        &self.default_blob
          89  +
    pub fn float_value(&self) -> ::std::option::Option<f32> {
          90  +
        self.float_value
  133     91   
    }
  134     92   
    #[allow(missing_docs)] // documentation missing in model
  135         -
    pub fn default_byte(&self) -> i8 {
  136         -
        self.default_byte
          93  +
    pub fn integer_value(&self) -> ::std::option::Option<i32> {
          94  +
        self.integer_value
  137     95   
    }
  138     96   
    #[allow(missing_docs)] // documentation missing in model
  139         -
    pub fn default_short(&self) -> i16 {
  140         -
        self.default_short
          97  +
    pub fn long_value(&self) -> ::std::option::Option<i64> {
          98  +
        self.long_value
  141     99   
    }
  142    100   
    #[allow(missing_docs)] // documentation missing in model
  143         -
    pub fn default_integer(&self) -> i32 {
  144         -
        self.default_integer
         101  +
    pub fn short_value(&self) -> ::std::option::Option<i16> {
         102  +
        self.short_value
  145    103   
    }
  146    104   
    #[allow(missing_docs)] // documentation missing in model
  147         -
    pub fn default_long(&self) -> i64 {
  148         -
        self.default_long
         105  +
    pub fn string_value(&self) -> ::std::option::Option<&str> {
         106  +
        self.string_value.as_deref()
  149    107   
    }
  150    108   
    #[allow(missing_docs)] // documentation missing in model
  151         -
    pub fn default_float(&self) -> f32 {
  152         -
        self.default_float
         109  +
    pub fn blob_value(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
         110  +
        self.blob_value.as_ref()
  153    111   
    }
  154         -
    #[allow(missing_docs)] // documentation missing in model
  155         -
    pub fn default_double(&self) -> f64 {
  156         -
        self.default_double
         112  +
}
         113  +
impl SimpleScalarPropertiesOutput {
         114  +
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
         115  +
    pub fn builder() -> crate::output::simple_scalar_properties_output::Builder {
         116  +
        crate::output::simple_scalar_properties_output::Builder::default()
  157    117   
    }
         118  +
}
         119  +
         120  +
#[allow(missing_docs)] // documentation missing in model
         121  +
#[derive(
         122  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         123  +
)]
         124  +
pub struct RpcV2CborListsOutput {
  158    125   
    #[allow(missing_docs)] // documentation missing in model
  159         -
    pub fn default_map(
  160         -
        &self,
  161         -
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
  162         -
        &self.default_map
  163         -
    }
         126  +
    pub string_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
  164    127   
    #[allow(missing_docs)] // documentation missing in model
  165         -
    pub fn default_enum(&self) -> &crate::model::TestEnum {
  166         -
        &self.default_enum
  167         -
    }
         128  +
    pub string_set: ::std::option::Option<crate::model::StringSet>,
  168    129   
    #[allow(missing_docs)] // documentation missing in model
  169         -
    pub fn default_int_enum(&self) -> i32 {
  170         -
        self.default_int_enum
  171         -
    }
         130  +
    pub integer_list: ::std::option::Option<::std::vec::Vec<i32>>,
  172    131   
    #[allow(missing_docs)] // documentation missing in model
  173         -
    pub fn empty_string(&self) -> &str {
  174         -
        use std::ops::Deref;
  175         -
        self.empty_string.deref()
         132  +
    pub boolean_list: ::std::option::Option<::std::vec::Vec<bool>>,
         133  +
    #[allow(missing_docs)] // documentation missing in model
         134  +
    pub timestamp_list: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
         135  +
    #[allow(missing_docs)] // documentation missing in model
         136  +
    pub enum_list: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
         137  +
    #[allow(missing_docs)] // documentation missing in model
         138  +
    pub int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
         139  +
    /// A list of lists of strings.
         140  +
    pub nested_string_list:
         141  +
        ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         142  +
    #[allow(missing_docs)] // documentation missing in model
         143  +
    pub structure_list: ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
         144  +
    #[allow(missing_docs)] // documentation missing in model
         145  +
    pub blob_list: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
         146  +
}
         147  +
impl RpcV2CborListsOutput {
         148  +
    #[allow(missing_docs)] // documentation missing in model
         149  +
    pub fn string_list(&self) -> ::std::option::Option<&[::std::string::String]> {
         150  +
        self.string_list.as_deref()
  176    151   
    }
  177    152   
    #[allow(missing_docs)] // documentation missing in model
  178         -
    pub fn false_boolean(&self) -> bool {
  179         -
        self.false_boolean
         153  +
    pub fn string_set(&self) -> ::std::option::Option<&crate::model::StringSet> {
         154  +
        self.string_set.as_ref()
  180    155   
    }
  181    156   
    #[allow(missing_docs)] // documentation missing in model
  182         -
    pub fn empty_blob(&self) -> &::aws_smithy_types::Blob {
  183         -
        &self.empty_blob
         157  +
    pub fn integer_list(&self) -> ::std::option::Option<&[i32]> {
         158  +
        self.integer_list.as_deref()
  184    159   
    }
  185    160   
    #[allow(missing_docs)] // documentation missing in model
  186         -
    pub fn zero_byte(&self) -> i8 {
  187         -
        self.zero_byte
         161  +
    pub fn boolean_list(&self) -> ::std::option::Option<&[bool]> {
         162  +
        self.boolean_list.as_deref()
  188    163   
    }
  189    164   
    #[allow(missing_docs)] // documentation missing in model
  190         -
    pub fn zero_short(&self) -> i16 {
  191         -
        self.zero_short
         165  +
    pub fn timestamp_list(&self) -> ::std::option::Option<&[::aws_smithy_types::DateTime]> {
         166  +
        self.timestamp_list.as_deref()
  192    167   
    }
  193    168   
    #[allow(missing_docs)] // documentation missing in model
  194         -
    pub fn zero_integer(&self) -> i32 {
  195         -
        self.zero_integer
         169  +
    pub fn enum_list(&self) -> ::std::option::Option<&[crate::model::FooEnum]> {
         170  +
        self.enum_list.as_deref()
  196    171   
    }
  197    172   
    #[allow(missing_docs)] // documentation missing in model
  198         -
    pub fn zero_long(&self) -> i64 {
  199         -
        self.zero_long
         173  +
    pub fn int_enum_list(&self) -> ::std::option::Option<&[i32]> {
         174  +
        self.int_enum_list.as_deref()
         175  +
    }
         176  +
    /// A list of lists of strings.
         177  +
    pub fn nested_string_list(
         178  +
        &self,
         179  +
    ) -> ::std::option::Option<&[::std::vec::Vec<::std::string::String>]> {
         180  +
        self.nested_string_list.as_deref()
  200    181   
    }
  201    182   
    #[allow(missing_docs)] // documentation missing in model
  202         -
    pub fn zero_float(&self) -> f32 {
  203         -
        self.zero_float
         183  +
    pub fn structure_list(&self) -> ::std::option::Option<&[crate::model::StructureListMember]> {
         184  +
        self.structure_list.as_deref()
  204    185   
    }
  205    186   
    #[allow(missing_docs)] // documentation missing in model
  206         -
    pub fn zero_double(&self) -> f64 {
  207         -
        self.zero_double
         187  +
    pub fn blob_list(&self) -> ::std::option::Option<&[::aws_smithy_types::Blob]> {
         188  +
        self.blob_list.as_deref()
  208    189   
    }
  209    190   
}
  210         -
impl OperationWithDefaultsOutput {
  211         -
    /// Creates a new builder-style object to manufacture [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
  212         -
    pub fn builder() -> crate::output::operation_with_defaults_output::Builder {
  213         -
        crate::output::operation_with_defaults_output::Builder::default()
         191  +
impl RpcV2CborListsOutput {
         192  +
    /// Creates a new builder-style object to manufacture [`RpcV2CborListsOutput`](crate::output::RpcV2CborListsOutput).
         193  +
    pub fn builder() -> crate::output::rpc_v2_cbor_lists_output::Builder {
         194  +
        crate::output::rpc_v2_cbor_lists_output::Builder::default()
  214    195   
    }
  215    196   
}
  216    197   
  217    198   
#[allow(missing_docs)] // documentation missing in model
  218         -
#[derive(
  219         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  220         -
)]
  221         -
pub struct FractionalSecondsOutput {
         199  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         200  +
pub struct RpcV2CborDenseMapsOutput {
  222    201   
    #[allow(missing_docs)] // documentation missing in model
  223         -
    pub datetime: ::std::option::Option<::aws_smithy_types::DateTime>,
  224         -
}
  225         -
impl FractionalSecondsOutput {
         202  +
    pub dense_struct_map: ::std::option::Option<
         203  +
        ::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
         204  +
    >,
  226    205   
    #[allow(missing_docs)] // documentation missing in model
  227         -
    pub fn datetime(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
  228         -
        self.datetime.as_ref()
  229         -
    }
  230         -
}
  231         -
impl FractionalSecondsOutput {
  232         -
    /// Creates a new builder-style object to manufacture [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
  233         -
    pub fn builder() -> crate::output::fractional_seconds_output::Builder {
  234         -
        crate::output::fractional_seconds_output::Builder::default()
  235         -
    }
  236         -
}
  237         -
  238         -
#[allow(missing_docs)] // documentation missing in model
  239         -
#[derive(
  240         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  241         -
)]
  242         -
pub struct GreetingWithErrorsOutput {
         206  +
    pub dense_number_map:
         207  +
        ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
  243    208   
    #[allow(missing_docs)] // documentation missing in model
  244         -
    pub greeting: ::std::option::Option<::std::string::String>,
         209  +
    pub dense_boolean_map:
         210  +
        ::std::option::Option<::std::collections::HashMap<::std::string::String, bool>>,
         211  +
    #[allow(missing_docs)] // documentation missing in model
         212  +
    pub dense_string_map: ::std::option::Option<
         213  +
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         214  +
    >,
         215  +
    #[allow(missing_docs)] // documentation missing in model
         216  +
    pub dense_set_map: ::std::option::Option<
         217  +
        ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
         218  +
    >,
  245    219   
}
  246         -
impl GreetingWithErrorsOutput {
         220  +
impl RpcV2CborDenseMapsOutput {
  247    221   
    #[allow(missing_docs)] // documentation missing in model
  248         -
    pub fn greeting(&self) -> ::std::option::Option<&str> {
  249         -
        self.greeting.as_deref()
         222  +
    pub fn dense_struct_map(
         223  +
        &self,
         224  +
    ) -> ::std::option::Option<
         225  +
        &::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
         226  +
    > {
         227  +
        self.dense_struct_map.as_ref()
  250    228   
    }
  251         -
}
  252         -
impl GreetingWithErrorsOutput {
  253         -
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
  254         -
    pub fn builder() -> crate::output::greeting_with_errors_output::Builder {
  255         -
        crate::output::greeting_with_errors_output::Builder::default()
         229  +
    #[allow(missing_docs)] // documentation missing in model
         230  +
    pub fn dense_number_map(
         231  +
        &self,
         232  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
         233  +
        self.dense_number_map.as_ref()
  256    234   
    }
  257         -
}
  258         -
  259         -
#[allow(missing_docs)] // documentation missing in model
  260         -
#[derive(
  261         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  262         -
)]
  263         -
pub struct RecursiveShapesOutput {
  264    235   
    #[allow(missing_docs)] // documentation missing in model
  265         -
    pub nested: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
  266         -
}
  267         -
impl RecursiveShapesOutput {
         236  +
    pub fn dense_boolean_map(
         237  +
        &self,
         238  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, bool>> {
         239  +
        self.dense_boolean_map.as_ref()
         240  +
    }
  268    241   
    #[allow(missing_docs)] // documentation missing in model
  269         -
    pub fn nested(
         242  +
    pub fn dense_string_map(
  270    243   
        &self,
  271         -
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested1> {
  272         -
        self.nested.as_ref()
         244  +
    ) -> ::std::option::Option<
         245  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
         246  +
    > {
         247  +
        self.dense_string_map.as_ref()
         248  +
    }
         249  +
    #[allow(missing_docs)] // documentation missing in model
         250  +
    pub fn dense_set_map(
         251  +
        &self,
         252  +
    ) -> ::std::option::Option<
         253  +
        &::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
         254  +
    > {
         255  +
        self.dense_set_map.as_ref()
  273    256   
    }
  274    257   
}
  275         -
impl RecursiveShapesOutput {
  276         -
    /// Creates a new builder-style object to manufacture [`RecursiveShapesOutput`](crate::output::RecursiveShapesOutput).
  277         -
    pub fn builder() -> crate::output::recursive_shapes_output::Builder {
  278         -
        crate::output::recursive_shapes_output::Builder::default()
         258  +
impl RpcV2CborDenseMapsOutput {
         259  +
    /// Creates a new builder-style object to manufacture [`RpcV2CborDenseMapsOutput`](crate::output::RpcV2CborDenseMapsOutput).
         260  +
    pub fn builder() -> crate::output::rpc_v2_cbor_dense_maps_output::Builder {
         261  +
        crate::output::rpc_v2_cbor_dense_maps_output::Builder::default()
  279    262   
    }
  280    263   
}
  281    264   
  282    265   
#[allow(missing_docs)] // documentation missing in model
  283    266   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  284    267   
pub struct RpcV2CborSparseMapsOutput {
  285    268   
    #[allow(missing_docs)] // documentation missing in model
  286    269   
    pub sparse_struct_map: ::std::option::Option<
  287    270   
        ::std::collections::HashMap<
  288    271   
            ::std::string::String,
@@ -344,327 +1039,1027 @@
  364    347   
    }
  365    348   
}
  366    349   
impl RpcV2CborSparseMapsOutput {
  367    350   
    /// Creates a new builder-style object to manufacture [`RpcV2CborSparseMapsOutput`](crate::output::RpcV2CborSparseMapsOutput).
  368    351   
    pub fn builder() -> crate::output::rpc_v2_cbor_sparse_maps_output::Builder {
  369    352   
        crate::output::rpc_v2_cbor_sparse_maps_output::Builder::default()
  370    353   
    }
  371    354   
}
  372    355   
  373    356   
#[allow(missing_docs)] // documentation missing in model
  374         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  375         -
pub struct RpcV2CborDenseMapsOutput {
  376         -
    #[allow(missing_docs)] // documentation missing in model
  377         -
    pub dense_struct_map: ::std::option::Option<
  378         -
        ::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
  379         -
    >,
  380         -
    #[allow(missing_docs)] // documentation missing in model
  381         -
    pub dense_number_map:
  382         -
        ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
  383         -
    #[allow(missing_docs)] // documentation missing in model
  384         -
    pub dense_boolean_map:
  385         -
        ::std::option::Option<::std::collections::HashMap<::std::string::String, bool>>,
  386         -
    #[allow(missing_docs)] // documentation missing in model
  387         -
    pub dense_string_map: ::std::option::Option<
  388         -
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  389         -
    >,
         357  +
#[derive(
         358  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         359  +
)]
         360  +
pub struct RecursiveShapesOutput {
  390    361   
    #[allow(missing_docs)] // documentation missing in model
  391         -
    pub dense_set_map: ::std::option::Option<
  392         -
        ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
  393         -
    >,
         362  +
    pub nested: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
  394    363   
}
  395         -
impl RpcV2CborDenseMapsOutput {
  396         -
    #[allow(missing_docs)] // documentation missing in model
  397         -
    pub fn dense_struct_map(
  398         -
        &self,
  399         -
    ) -> ::std::option::Option<
  400         -
        &::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
  401         -
    > {
  402         -
        self.dense_struct_map.as_ref()
  403         -
    }
         364  +
impl RecursiveShapesOutput {
  404    365   
    #[allow(missing_docs)] // documentation missing in model
  405         -
    pub fn dense_number_map(
         366  +
    pub fn nested(
  406    367   
        &self,
  407         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
  408         -
        self.dense_number_map.as_ref()
         368  +
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested1> {
         369  +
        self.nested.as_ref()
  409    370   
    }
  410         -
    #[allow(missing_docs)] // documentation missing in model
  411         -
    pub fn dense_boolean_map(
  412         -
        &self,
  413         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, bool>> {
  414         -
        self.dense_boolean_map.as_ref()
         371  +
}
         372  +
impl RecursiveShapesOutput {
         373  +
    /// Creates a new builder-style object to manufacture [`RecursiveShapesOutput`](crate::output::RecursiveShapesOutput).
         374  +
    pub fn builder() -> crate::output::recursive_shapes_output::Builder {
         375  +
        crate::output::recursive_shapes_output::Builder::default()
  415    376   
    }
         377  +
}
         378  +
         379  +
#[allow(missing_docs)] // documentation missing in model
         380  +
#[derive(
         381  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         382  +
)]
         383  +
pub struct GreetingWithErrorsOutput {
  416    384   
    #[allow(missing_docs)] // documentation missing in model
  417         -
    pub fn dense_string_map(
  418         -
        &self,
  419         -
    ) -> ::std::option::Option<
  420         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
  421         -
    > {
  422         -
        self.dense_string_map.as_ref()
  423         -
    }
         385  +
    pub greeting: ::std::option::Option<::std::string::String>,
         386  +
}
         387  +
impl GreetingWithErrorsOutput {
  424    388   
    #[allow(missing_docs)] // documentation missing in model
  425         -
    pub fn dense_set_map(
  426         -
        &self,
  427         -
    ) -> ::std::option::Option<
  428         -
        &::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
  429         -
    > {
  430         -
        self.dense_set_map.as_ref()
         389  +
    pub fn greeting(&self) -> ::std::option::Option<&str> {
         390  +
        self.greeting.as_deref()
  431    391   
    }
  432    392   
}
  433         -
impl RpcV2CborDenseMapsOutput {
  434         -
    /// Creates a new builder-style object to manufacture [`RpcV2CborDenseMapsOutput`](crate::output::RpcV2CborDenseMapsOutput).
  435         -
    pub fn builder() -> crate::output::rpc_v2_cbor_dense_maps_output::Builder {
  436         -
        crate::output::rpc_v2_cbor_dense_maps_output::Builder::default()
         393  +
impl GreetingWithErrorsOutput {
         394  +
    /// Creates a new builder-style object to manufacture [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
         395  +
    pub fn builder() -> crate::output::greeting_with_errors_output::Builder {
         396  +
        crate::output::greeting_with_errors_output::Builder::default()
  437    397   
    }
  438    398   
}
  439    399   
  440    400   
#[allow(missing_docs)] // documentation missing in model
  441    401   
#[derive(
  442    402   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  443    403   
)]
  444         -
pub struct RpcV2CborListsOutput {
         404  +
pub struct FractionalSecondsOutput {
  445    405   
    #[allow(missing_docs)] // documentation missing in model
  446         -
    pub string_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         406  +
    pub datetime: ::std::option::Option<::aws_smithy_types::DateTime>,
         407  +
}
         408  +
impl FractionalSecondsOutput {
  447    409   
    #[allow(missing_docs)] // documentation missing in model
  448         -
    pub string_set: ::std::option::Option<crate::model::StringSet>,
         410  +
    pub fn datetime(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
         411  +
        self.datetime.as_ref()
         412  +
    }
         413  +
}
         414  +
impl FractionalSecondsOutput {
         415  +
    /// Creates a new builder-style object to manufacture [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
         416  +
    pub fn builder() -> crate::output::fractional_seconds_output::Builder {
         417  +
        crate::output::fractional_seconds_output::Builder::default()
         418  +
    }
         419  +
}
         420  +
         421  +
#[allow(missing_docs)] // documentation missing in model
         422  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         423  +
pub struct OperationWithDefaultsOutput {
  449    424   
    #[allow(missing_docs)] // documentation missing in model
  450         -
    pub integer_list: ::std::option::Option<::std::vec::Vec<i32>>,
         425  +
    pub default_string: ::std::string::String,
  451    426   
    #[allow(missing_docs)] // documentation missing in model
  452         -
    pub boolean_list: ::std::option::Option<::std::vec::Vec<bool>>,
         427  +
    pub default_boolean: bool,
  453    428   
    #[allow(missing_docs)] // documentation missing in model
  454         -
    pub timestamp_list: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
         429  +
    pub default_list: ::std::vec::Vec<::std::string::String>,
  455    430   
    #[allow(missing_docs)] // documentation missing in model
  456         -
    pub enum_list: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
         431  +
    pub default_timestamp: ::aws_smithy_types::DateTime,
  457    432   
    #[allow(missing_docs)] // documentation missing in model
  458         -
    pub int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
  459         -
    /// A list of lists of strings.
  460         -
    pub nested_string_list:
  461         -
        ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         433  +
    pub default_blob: ::aws_smithy_types::Blob,
  462    434   
    #[allow(missing_docs)] // documentation missing in model
  463         -
    pub structure_list: ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
         435  +
    pub default_byte: i8,
  464    436   
    #[allow(missing_docs)] // documentation missing in model
  465         -
    pub blob_list: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
  466         -
}
  467         -
impl RpcV2CborListsOutput {
         437  +
    pub default_short: i16,
  468    438   
    #[allow(missing_docs)] // documentation missing in model
  469         -
    pub fn string_list(&self) -> ::std::option::Option<&[::std::string::String]> {
  470         -
        self.string_list.as_deref()
  471         -
    }
         439  +
    pub default_integer: i32,
  472    440   
    #[allow(missing_docs)] // documentation missing in model
  473         -
    pub fn string_set(&self) -> ::std::option::Option<&crate::model::StringSet> {
  474         -
        self.string_set.as_ref()
  475         -
    }
         441  +
    pub default_long: i64,
  476    442   
    #[allow(missing_docs)] // documentation missing in model
  477         -
    pub fn integer_list(&self) -> ::std::option::Option<&[i32]> {
  478         -
        self.integer_list.as_deref()
  479         -
    }
         443  +
    pub default_float: f32,
  480    444   
    #[allow(missing_docs)] // documentation missing in model
  481         -
    pub fn boolean_list(&self) -> ::std::option::Option<&[bool]> {
  482         -
        self.boolean_list.as_deref()
  483         -
    }
         445  +
    pub default_double: f64,
  484    446   
    #[allow(missing_docs)] // documentation missing in model
  485         -
    pub fn timestamp_list(&self) -> ::std::option::Option<&[::aws_smithy_types::DateTime]> {
  486         -
        self.timestamp_list.as_deref()
  487         -
    }
         447  +
    pub default_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  488    448   
    #[allow(missing_docs)] // documentation missing in model
  489         -
    pub fn enum_list(&self) -> ::std::option::Option<&[crate::model::FooEnum]> {
  490         -
        self.enum_list.as_deref()
  491         -
    }
         449  +
    pub default_enum: crate::model::TestEnum,
  492    450   
    #[allow(missing_docs)] // documentation missing in model
  493         -
    pub fn int_enum_list(&self) -> ::std::option::Option<&[i32]> {
  494         -
        self.int_enum_list.as_deref()
  495         -
    }
  496         -
    /// A list of lists of strings.
  497         -
    pub fn nested_string_list(
  498         -
        &self,
  499         -
    ) -> ::std::option::Option<&[::std::vec::Vec<::std::string::String>]> {
  500         -
        self.nested_string_list.as_deref()
  501         -
    }
         451  +
    pub default_int_enum: i32,
  502    452   
    #[allow(missing_docs)] // documentation missing in model
  503         -
    pub fn structure_list(&self) -> ::std::option::Option<&[crate::model::StructureListMember]> {
  504         -
        self.structure_list.as_deref()
         453  +
    pub empty_string: ::std::string::String,
         454  +
    #[allow(missing_docs)] // documentation missing in model
         455  +
    pub false_boolean: bool,
         456  +
    #[allow(missing_docs)] // documentation missing in model
         457  +
    pub empty_blob: ::aws_smithy_types::Blob,
         458  +
    #[allow(missing_docs)] // documentation missing in model
         459  +
    pub zero_byte: i8,
         460  +
    #[allow(missing_docs)] // documentation missing in model
         461  +
    pub zero_short: i16,
         462  +
    #[allow(missing_docs)] // documentation missing in model
         463  +
    pub zero_integer: i32,
         464  +
    #[allow(missing_docs)] // documentation missing in model
         465  +
    pub zero_long: i64,
         466  +
    #[allow(missing_docs)] // documentation missing in model
         467  +
    pub zero_float: f32,
         468  +
    #[allow(missing_docs)] // documentation missing in model
         469  +
    pub zero_double: f64,
         470  +
}
         471  +
impl OperationWithDefaultsOutput {
         472  +
    #[allow(missing_docs)] // documentation missing in model
         473  +
    pub fn default_string(&self) -> &str {
         474  +
        use std::ops::Deref;
         475  +
        self.default_string.deref()
  505    476   
    }
  506    477   
    #[allow(missing_docs)] // documentation missing in model
  507         -
    pub fn blob_list(&self) -> ::std::option::Option<&[::aws_smithy_types::Blob]> {
  508         -
        self.blob_list.as_deref()
         478  +
    pub fn default_boolean(&self) -> bool {
         479  +
        self.default_boolean
  509    480   
    }
  510         -
}
  511         -
impl RpcV2CborListsOutput {
  512         -
    /// Creates a new builder-style object to manufacture [`RpcV2CborListsOutput`](crate::output::RpcV2CborListsOutput).
  513         -
    pub fn builder() -> crate::output::rpc_v2_cbor_lists_output::Builder {
  514         -
        crate::output::rpc_v2_cbor_lists_output::Builder::default()
         481  +
    #[allow(missing_docs)] // documentation missing in model
         482  +
    pub fn default_list(&self) -> &[::std::string::String] {
         483  +
        use std::ops::Deref;
         484  +
        self.default_list.deref()
  515    485   
    }
  516         -
}
  517         -
  518         -
#[allow(missing_docs)] // documentation missing in model
  519         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  520         -
pub struct SimpleScalarPropertiesOutput {
  521    486   
    #[allow(missing_docs)] // documentation missing in model
  522         -
    pub true_boolean_value: ::std::option::Option<bool>,
         487  +
    pub fn default_timestamp(&self) -> &::aws_smithy_types::DateTime {
         488  +
        &self.default_timestamp
         489  +
    }
  523    490   
    #[allow(missing_docs)] // documentation missing in model
  524         -
    pub false_boolean_value: ::std::option::Option<bool>,
         491  +
    pub fn default_blob(&self) -> &::aws_smithy_types::Blob {
         492  +
        &self.default_blob
         493  +
    }
  525    494   
    #[allow(missing_docs)] // documentation missing in model
  526         -
    pub byte_value: ::std::option::Option<i8>,
         495  +
    pub fn default_byte(&self) -> i8 {
         496  +
        self.default_byte
         497  +
    }
  527    498   
    #[allow(missing_docs)] // documentation missing in model
  528         -
    pub double_value: ::std::option::Option<f64>,
         499  +
    pub fn default_short(&self) -> i16 {
         500  +
        self.default_short
         501  +
    }
  529    502   
    #[allow(missing_docs)] // documentation missing in model
  530         -
    pub float_value: ::std::option::Option<f32>,
         503  +
    pub fn default_integer(&self) -> i32 {
         504  +
        self.default_integer
         505  +
    }
  531    506   
    #[allow(missing_docs)] // documentation missing in model
  532         -
    pub integer_value: ::std::option::Option<i32>,
         507  +
    pub fn default_long(&self) -> i64 {
         508  +
        self.default_long
         509  +
    }
  533    510   
    #[allow(missing_docs)] // documentation missing in model
  534         -
    pub long_value: ::std::option::Option<i64>,
         511  +
    pub fn default_float(&self) -> f32 {
         512  +
        self.default_float
         513  +
    }
  535    514   
    #[allow(missing_docs)] // documentation missing in model
  536         -
    pub short_value: ::std::option::Option<i16>,
         515  +
    pub fn default_double(&self) -> f64 {
         516  +
        self.default_double
         517  +
    }
  537    518   
    #[allow(missing_docs)] // documentation missing in model
  538         -
    pub string_value: ::std::option::Option<::std::string::String>,
         519  +
    pub fn default_map(
         520  +
        &self,
         521  +
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
         522  +
        &self.default_map
         523  +
    }
  539    524   
    #[allow(missing_docs)] // documentation missing in model
  540         -
    pub blob_value: ::std::option::Option<::aws_smithy_types::Blob>,
  541         -
}
  542         -
impl SimpleScalarPropertiesOutput {
         525  +
    pub fn default_enum(&self) -> &crate::model::TestEnum {
         526  +
        &self.default_enum
         527  +
    }
  543    528   
    #[allow(missing_docs)] // documentation missing in model
  544         -
    pub fn true_boolean_value(&self) -> ::std::option::Option<bool> {
  545         -
        self.true_boolean_value
         529  +
    pub fn default_int_enum(&self) -> i32 {
         530  +
        self.default_int_enum
  546    531   
    }
  547    532   
    #[allow(missing_docs)] // documentation missing in model
  548         -
    pub fn false_boolean_value(&self) -> ::std::option::Option<bool> {
  549         -
        self.false_boolean_value
         533  +
    pub fn empty_string(&self) -> &str {
         534  +
        use std::ops::Deref;
         535  +
        self.empty_string.deref()
  550    536   
    }
  551    537   
    #[allow(missing_docs)] // documentation missing in model
  552         -
    pub fn byte_value(&self) -> ::std::option::Option<i8> {
  553         -
        self.byte_value
         538  +
    pub fn false_boolean(&self) -> bool {
         539  +
        self.false_boolean
  554    540   
    }
  555    541   
    #[allow(missing_docs)] // documentation missing in model
  556         -
    pub fn double_value(&self) -> ::std::option::Option<f64> {
  557         -
        self.double_value
         542  +
    pub fn empty_blob(&self) -> &::aws_smithy_types::Blob {
         543  +
        &self.empty_blob
  558    544   
    }
  559    545   
    #[allow(missing_docs)] // documentation missing in model
  560         -
    pub fn float_value(&self) -> ::std::option::Option<f32> {
  561         -
        self.float_value
         546  +
    pub fn zero_byte(&self) -> i8 {
         547  +
        self.zero_byte
  562    548   
    }
  563    549   
    #[allow(missing_docs)] // documentation missing in model
  564         -
    pub fn integer_value(&self) -> ::std::option::Option<i32> {
  565         -
        self.integer_value
         550  +
    pub fn zero_short(&self) -> i16 {
         551  +
        self.zero_short
  566    552   
    }
  567    553   
    #[allow(missing_docs)] // documentation missing in model
  568         -
    pub fn long_value(&self) -> ::std::option::Option<i64> {
  569         -
        self.long_value
         554  +
    pub fn zero_integer(&self) -> i32 {
         555  +
        self.zero_integer
  570    556   
    }
  571    557   
    #[allow(missing_docs)] // documentation missing in model
  572         -
    pub fn short_value(&self) -> ::std::option::Option<i16> {
  573         -
        self.short_value
         558  +
    pub fn zero_long(&self) -> i64 {
         559  +
        self.zero_long
  574    560   
    }
  575    561   
    #[allow(missing_docs)] // documentation missing in model
  576         -
    pub fn string_value(&self) -> ::std::option::Option<&str> {
  577         -
        self.string_value.as_deref()
         562  +
    pub fn zero_float(&self) -> f32 {
         563  +
        self.zero_float
  578    564   
    }
  579    565   
    #[allow(missing_docs)] // documentation missing in model
  580         -
    pub fn blob_value(&self) -> ::std::option::Option<&::aws_smithy_types::Blob> {
  581         -
        self.blob_value.as_ref()
         566  +
    pub fn zero_double(&self) -> f64 {
         567  +
        self.zero_double
  582    568   
    }
  583    569   
}
  584         -
impl SimpleScalarPropertiesOutput {
  585         -
    /// Creates a new builder-style object to manufacture [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
  586         -
    pub fn builder() -> crate::output::simple_scalar_properties_output::Builder {
  587         -
        crate::output::simple_scalar_properties_output::Builder::default()
         570  +
impl OperationWithDefaultsOutput {
         571  +
    /// Creates a new builder-style object to manufacture [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
         572  +
    pub fn builder() -> crate::output::operation_with_defaults_output::Builder {
         573  +
        crate::output::operation_with_defaults_output::Builder::default()
  588    574   
    }
  589    575   
}
  590    576   
  591    577   
#[allow(missing_docs)] // documentation missing in model
  592         -
#[derive(
  593         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  594         -
)]
  595         -
pub struct OptionalInputOutputOutput {
         578  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         579  +
pub struct SparseNullsOperationOutput {
  596    580   
    #[allow(missing_docs)] // documentation missing in model
  597         -
    pub value: ::std::option::Option<::std::string::String>,
         581  +
    pub sparse_string_list:
         582  +
        ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
         583  +
    #[allow(missing_docs)] // documentation missing in model
         584  +
    pub sparse_string_map: ::std::option::Option<
         585  +
        ::std::collections::HashMap<
         586  +
            ::std::string::String,
         587  +
            ::std::option::Option<::std::string::String>,
         588  +
        >,
         589  +
    >,
  598    590   
}
  599         -
impl OptionalInputOutputOutput {
         591  +
impl SparseNullsOperationOutput {
  600    592   
    #[allow(missing_docs)] // documentation missing in model
  601         -
    pub fn value(&self) -> ::std::option::Option<&str> {
  602         -
        self.value.as_deref()
         593  +
    pub fn sparse_string_list(
         594  +
        &self,
         595  +
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
         596  +
        self.sparse_string_list.as_deref()
         597  +
    }
         598  +
    #[allow(missing_docs)] // documentation missing in model
         599  +
    pub fn sparse_string_map(
         600  +
        &self,
         601  +
    ) -> ::std::option::Option<
         602  +
        &::std::collections::HashMap<
         603  +
            ::std::string::String,
         604  +
            ::std::option::Option<::std::string::String>,
         605  +
        >,
         606  +
    > {
         607  +
        self.sparse_string_map.as_ref()
  603    608   
    }
  604    609   
}
  605         -
impl OptionalInputOutputOutput {
  606         -
    /// Creates a new builder-style object to manufacture [`OptionalInputOutputOutput`](crate::output::OptionalInputOutputOutput).
  607         -
    pub fn builder() -> crate::output::optional_input_output_output::Builder {
  608         -
        crate::output::optional_input_output_output::Builder::default()
         610  +
impl SparseNullsOperationOutput {
         611  +
    /// Creates a new builder-style object to manufacture [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
         612  +
    pub fn builder() -> crate::output::sparse_nulls_operation_output::Builder {
         613  +
        crate::output::sparse_nulls_operation_output::Builder::default()
  609    614   
    }
  610    615   
}
  611    616   
  612    617   
#[allow(missing_docs)] // documentation missing in model
  613         -
#[derive(
  614         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  615         -
)]
  616         -
pub struct EmptyInputOutputOutput {}
  617         -
impl EmptyInputOutputOutput {
  618         -
    /// Creates a new builder-style object to manufacture [`EmptyInputOutputOutput`](crate::output::EmptyInputOutputOutput).
  619         -
    pub fn builder() -> crate::output::empty_input_output_output::Builder {
  620         -
        crate::output::empty_input_output_output::Builder::default()
         618  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         619  +
pub struct Float16Output {
         620  +
    #[allow(missing_docs)] // documentation missing in model
         621  +
    pub value: ::std::option::Option<f64>,
         622  +
}
         623  +
impl Float16Output {
         624  +
    #[allow(missing_docs)] // documentation missing in model
         625  +
    pub fn value(&self) -> ::std::option::Option<f64> {
         626  +
        self.value
  621    627   
    }
  622    628   
}
  623         -
  624         -
#[allow(missing_docs)] // documentation missing in model
  625         -
#[derive(
  626         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  627         -
)]
  628         -
pub struct NoInputOutputOutput {}
  629         -
impl NoInputOutputOutput {
  630         -
    /// Creates a new builder-style object to manufacture [`NoInputOutputOutput`](crate::output::NoInputOutputOutput).
  631         -
    pub fn builder() -> crate::output::no_input_output_output::Builder {
  632         -
        crate::output::no_input_output_output::Builder::default()
         629  +
impl Float16Output {
         630  +
    /// Creates a new builder-style object to manufacture [`Float16Output`](crate::output::Float16Output).
         631  +
    pub fn builder() -> crate::output::float16_output::Builder {
         632  +
        crate::output::float16_output::Builder::default()
  633    633   
    }
  634    634   
}
  635         -
/// See [`Float16Output`](crate::output::Float16Output).
  636         -
pub mod float16_output {
         635  +
/// See [`NoInputOutputOutput`](crate::output::NoInputOutputOutput).
         636  +
pub mod no_input_output_output {
  637    637   
  638         -
    impl ::std::convert::From<Builder> for crate::output::Float16Output {
         638  +
    impl ::std::convert::From<Builder> for crate::output::NoInputOutputOutput {
  639    639   
        fn from(builder: Builder) -> Self {
  640    640   
            builder.build()
  641    641   
        }
  642    642   
    }
  643         -
    /// A builder for [`Float16Output`](crate::output::Float16Output).
         643  +
    /// A builder for [`NoInputOutputOutput`](crate::output::NoInputOutputOutput).
  644    644   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  645         -
    pub struct Builder {
  646         -
        pub(crate) value: ::std::option::Option<f64>,
  647         -
    }
         645  +
    pub struct Builder {}
  648    646   
    impl Builder {
  649         -
        #[allow(missing_docs)] // documentation missing in model
  650         -
        pub fn value(mut self, input: ::std::option::Option<f64>) -> Self {
  651         -
            self.value = input;
  652         -
            self
  653         -
        }
  654         -
        /// Consumes the builder and constructs a [`Float16Output`](crate::output::Float16Output).
  655         -
        pub fn build(self) -> crate::output::Float16Output {
         647  +
        /// Consumes the builder and constructs a [`NoInputOutputOutput`](crate::output::NoInputOutputOutput).
         648  +
        pub fn build(self) -> crate::output::NoInputOutputOutput {
  656    649   
            self.build_enforcing_all_constraints()
  657    650   
        }
  658         -
        fn build_enforcing_all_constraints(self) -> crate::output::Float16Output {
  659         -
            crate::output::Float16Output { value: self.value }
         651  +
        fn build_enforcing_all_constraints(self) -> crate::output::NoInputOutputOutput {
         652  +
            crate::output::NoInputOutputOutput {}
  660    653   
        }
  661    654   
    }
  662    655   
}
  663         -
/// See [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
  664         -
pub mod sparse_nulls_operation_output {
         656  +
/// See [`EmptyInputOutputOutput`](crate::output::EmptyInputOutputOutput).
         657  +
pub mod empty_input_output_output {
  665    658   
  666         -
    impl ::std::convert::From<Builder> for crate::output::SparseNullsOperationOutput {
         659  +
    impl ::std::convert::From<Builder> for crate::output::EmptyInputOutputOutput {
  667    660   
        fn from(builder: Builder) -> Self {
  668    661   
            builder.build()
  669    662   
        }
  670    663   
    }
  671         -
    /// A builder for [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
         664  +
    /// A builder for [`EmptyInputOutputOutput`](crate::output::EmptyInputOutputOutput).
  672    665   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  673         -
    pub struct Builder {
  674         -
        pub(crate) sparse_string_list:
  675         -
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
  676         -
        pub(crate) sparse_string_map: ::std::option::Option<
  677         -
            ::std::collections::HashMap<
  678         -
                ::std::string::String,
  679         -
                ::std::option::Option<::std::string::String>,
  680         -
            >,
  681         -
        >,
  682         -
    }
         666  +
    pub struct Builder {}
  683    667   
    impl Builder {
  684         -
        #[allow(missing_docs)] // documentation missing in model
  685         -
        pub fn sparse_string_list(
  686         -
            mut self,
  687         -
            input: ::std::option::Option<
  688         -
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
  689         -
            >,
  690         -
        ) -> Self {
  691         -
            self.sparse_string_list = input;
  692         -
            self
  693         -
        }
  694         -
        #[allow(missing_docs)] // documentation missing in model
  695         -
        pub fn sparse_string_map(
  696         -
            mut self,
  697         -
            input: ::std::option::Option<
  698         -
                ::std::collections::HashMap<
  699         -
                    ::std::string::String,
  700         -
                    ::std::option::Option<::std::string::String>,
  701         -
                >,
  702         -
            >,
  703         -
        ) -> Self {
  704         -
            self.sparse_string_map = input;
  705         -
            self
  706         -
        }
  707         -
        /// Consumes the builder and constructs a [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
  708         -
        pub fn build(self) -> crate::output::SparseNullsOperationOutput {
         668  +
        /// Consumes the builder and constructs a [`EmptyInputOutputOutput`](crate::output::EmptyInputOutputOutput).
         669  +
        pub fn build(self) -> crate::output::EmptyInputOutputOutput {
  709    670   
            self.build_enforcing_all_constraints()
  710    671   
        }
  711         -
        fn build_enforcing_all_constraints(self) -> crate::output::SparseNullsOperationOutput {
  712         -
            crate::output::SparseNullsOperationOutput {
  713         -
                sparse_string_list: self.sparse_string_list,
  714         -
                sparse_string_map: self.sparse_string_map,
  715         -
            }
         672  +
        fn build_enforcing_all_constraints(self) -> crate::output::EmptyInputOutputOutput {
         673  +
            crate::output::EmptyInputOutputOutput {}
  716    674   
        }
  717    675   
    }
  718    676   
}
  719         -
/// See [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
  720         -
pub mod operation_with_defaults_output {
         677  +
/// See [`OptionalInputOutputOutput`](crate::output::OptionalInputOutputOutput).
         678  +
pub mod optional_input_output_output {
  721    679   
  722         -
    impl ::std::convert::From<Builder> for crate::output::OperationWithDefaultsOutput {
         680  +
    impl ::std::convert::From<Builder> for crate::output::OptionalInputOutputOutput {
  723    681   
        fn from(builder: Builder) -> Self {
  724    682   
            builder.build()
  725    683   
        }
  726    684   
    }
  727         -
    /// A builder for [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
         685  +
    /// A builder for [`OptionalInputOutputOutput`](crate::output::OptionalInputOutputOutput).
  728    686   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  729    687   
    pub struct Builder {
  730         -
        pub(crate) default_string: ::std::option::Option<::std::string::String>,
  731         -
        pub(crate) default_boolean: ::std::option::Option<bool>,
  732         -
        pub(crate) default_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
  733         -
        pub(crate) default_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
  734         -
        pub(crate) default_blob: ::std::option::Option<::aws_smithy_types::Blob>,
  735         -
        pub(crate) default_byte: ::std::option::Option<i8>,
  736         -
        pub(crate) default_short: ::std::option::Option<i16>,
  737         -
        pub(crate) default_integer: ::std::option::Option<i32>,
  738         -
        pub(crate) default_long: ::std::option::Option<i64>,
  739         -
        pub(crate) default_float: ::std::option::Option<f32>,
  740         -
        pub(crate) default_double: ::std::option::Option<f64>,
  741         -
        pub(crate) default_map: ::std::option::Option<
  742         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
  743         -
        >,
  744         -
        pub(crate) default_enum: ::std::option::Option<crate::model::TestEnum>,
  745         -
        pub(crate) default_int_enum: ::std::option::Option<i32>,
  746         -
        pub(crate) empty_string: ::std::option::Option<::std::string::String>,
  747         -
        pub(crate) false_boolean: ::std::option::Option<bool>,
  748         -
        pub(crate) empty_blob: ::std::option::Option<::aws_smithy_types::Blob>,
  749         -
        pub(crate) zero_byte: ::std::option::Option<i8>,
  750         -
        pub(crate) zero_short: ::std::option::Option<i16>,
  751         -
        pub(crate) zero_integer: ::std::option::Option<i32>,
  752         -
        pub(crate) zero_long: ::std::option::Option<i64>,
  753         -
        pub(crate) zero_float: ::std::option::Option<f32>,
  754         -
        pub(crate) zero_double: ::std::option::Option<f64>,
         688  +
        pub(crate) value: ::std::option::Option<::std::string::String>,
  755    689   
    }
  756    690   
    impl Builder {
  757    691   
        #[allow(missing_docs)] // documentation missing in model
  758         -
        pub fn default_string(mut self, input: ::std::string::String) -> Self {
  759         -
            self.default_string = Some(input);
         692  +
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         693  +
            self.value = input;
  760    694   
            self
  761    695   
        }
  762         -
        #[allow(missing_docs)] // documentation missing in model
  763         -
        pub fn default_boolean(mut self, input: bool) -> Self {
  764         -
            self.default_boolean = Some(input);
  765         -
            self
         696  +
        /// Consumes the builder and constructs a [`OptionalInputOutputOutput`](crate::output::OptionalInputOutputOutput).
         697  +
        pub fn build(self) -> crate::output::OptionalInputOutputOutput {
         698  +
            self.build_enforcing_all_constraints()
         699  +
        }
         700  +
        fn build_enforcing_all_constraints(self) -> crate::output::OptionalInputOutputOutput {
         701  +
            crate::output::OptionalInputOutputOutput { value: self.value }
  766    702   
        }
         703  +
    }
         704  +
}
         705  +
/// See [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
         706  +
pub mod simple_scalar_properties_output {
         707  +
         708  +
    impl ::std::convert::From<Builder> for crate::output::SimpleScalarPropertiesOutput {
         709  +
        fn from(builder: Builder) -> Self {
         710  +
            builder.build()
         711  +
        }
         712  +
    }
         713  +
    /// A builder for [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
         714  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         715  +
    pub struct Builder {
         716  +
        pub(crate) true_boolean_value: ::std::option::Option<bool>,
         717  +
        pub(crate) false_boolean_value: ::std::option::Option<bool>,
         718  +
        pub(crate) byte_value: ::std::option::Option<i8>,
         719  +
        pub(crate) double_value: ::std::option::Option<f64>,
         720  +
        pub(crate) float_value: ::std::option::Option<f32>,
         721  +
        pub(crate) integer_value: ::std::option::Option<i32>,
         722  +
        pub(crate) long_value: ::std::option::Option<i64>,
         723  +
        pub(crate) short_value: ::std::option::Option<i16>,
         724  +
        pub(crate) string_value: ::std::option::Option<::std::string::String>,
         725  +
        pub(crate) blob_value: ::std::option::Option<::aws_smithy_types::Blob>,
         726  +
    }
         727  +
    impl Builder {
  767    728   
        #[allow(missing_docs)] // documentation missing in model
  768         -
        pub fn default_list(mut self, input: ::std::vec::Vec<::std::string::String>) -> Self {
  769         -
            self.default_list = Some(input);
         729  +
        pub fn true_boolean_value(mut self, input: ::std::option::Option<bool>) -> Self {
         730  +
            self.true_boolean_value = input;
  770    731   
            self
  771    732   
        }
  772    733   
        #[allow(missing_docs)] // documentation missing in model
  773         -
        pub fn default_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
  774         -
            self.default_timestamp = Some(input);
         734  +
        pub fn false_boolean_value(mut self, input: ::std::option::Option<bool>) -> Self {
         735  +
            self.false_boolean_value = input;
  775    736   
            self
  776    737   
        }
  777    738   
        #[allow(missing_docs)] // documentation missing in model
  778         -
        pub fn default_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
  779         -
            self.default_blob = Some(input);
         739  +
        pub fn byte_value(mut self, input: ::std::option::Option<i8>) -> Self {
         740  +
            self.byte_value = input;
  780    741   
            self
  781    742   
        }
  782    743   
        #[allow(missing_docs)] // documentation missing in model
  783         -
        pub fn default_byte(mut self, input: i8) -> Self {
  784         -
            self.default_byte = Some(input);
         744  +
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
         745  +
            self.double_value = input;
  785    746   
            self
  786    747   
        }
  787    748   
        #[allow(missing_docs)] // documentation missing in model
  788         -
        pub fn default_short(mut self, input: i16) -> Self {
  789         -
            self.default_short = Some(input);
         749  +
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
         750  +
            self.float_value = input;
  790    751   
            self
  791    752   
        }
  792    753   
        #[allow(missing_docs)] // documentation missing in model
  793         -
        pub fn default_integer(mut self, input: i32) -> Self {
  794         -
            self.default_integer = Some(input);
         754  +
        pub fn integer_value(mut self, input: ::std::option::Option<i32>) -> Self {
         755  +
            self.integer_value = input;
  795    756   
            self
  796    757   
        }
  797    758   
        #[allow(missing_docs)] // documentation missing in model
  798         -
        pub fn default_long(mut self, input: i64) -> Self {
  799         -
            self.default_long = Some(input);
         759  +
        pub fn long_value(mut self, input: ::std::option::Option<i64>) -> Self {
         760  +
            self.long_value = input;
  800    761   
            self
  801    762   
        }
  802    763   
        #[allow(missing_docs)] // documentation missing in model
  803         -
        pub fn default_float(mut self, input: f32) -> Self {
  804         -
            self.default_float = Some(input);
         764  +
        pub fn short_value(mut self, input: ::std::option::Option<i16>) -> Self {
         765  +
            self.short_value = input;
  805    766   
            self
  806    767   
        }
  807    768   
        #[allow(missing_docs)] // documentation missing in model
  808         -
        pub fn default_double(mut self, input: f64) -> Self {
  809         -
            self.default_double = Some(input);
         769  +
        pub fn string_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         770  +
            self.string_value = input;
  810    771   
            self
  811    772   
        }
  812    773   
        #[allow(missing_docs)] // documentation missing in model
  813         -
        pub fn default_map(
         774  +
        pub fn blob_value(
  814    775   
            mut self,
  815         -
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         776  +
            input: ::std::option::Option<::aws_smithy_types::Blob>,
  816    777   
        ) -> Self {
  817         -
            self.default_map = Some(input);
         778  +
            self.blob_value = input;
  818    779   
            self
  819    780   
        }
  820         -
        #[allow(missing_docs)] // documentation missing in model
  821         -
        pub fn default_enum(mut self, input: crate::model::TestEnum) -> Self {
  822         -
            self.default_enum = Some(input);
  823         -
            self
         781  +
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
         782  +
        pub fn build(self) -> crate::output::SimpleScalarPropertiesOutput {
         783  +
            self.build_enforcing_all_constraints()
         784  +
        }
         785  +
        fn build_enforcing_all_constraints(self) -> crate::output::SimpleScalarPropertiesOutput {
         786  +
            crate::output::SimpleScalarPropertiesOutput {
         787  +
                true_boolean_value: self.true_boolean_value,
         788  +
                false_boolean_value: self.false_boolean_value,
         789  +
                byte_value: self.byte_value,
         790  +
                double_value: self.double_value,
         791  +
                float_value: self.float_value,
         792  +
                integer_value: self.integer_value,
         793  +
                long_value: self.long_value,
         794  +
                short_value: self.short_value,
         795  +
                string_value: self.string_value,
         796  +
                blob_value: self.blob_value,
         797  +
            }
  824    798   
        }
         799  +
    }
         800  +
}
         801  +
/// See [`RpcV2CborListsOutput`](crate::output::RpcV2CborListsOutput).
         802  +
pub mod rpc_v2_cbor_lists_output {
         803  +
         804  +
    impl ::std::convert::From<Builder> for crate::output::RpcV2CborListsOutput {
         805  +
        fn from(builder: Builder) -> Self {
         806  +
            builder.build()
         807  +
        }
         808  +
    }
         809  +
    /// A builder for [`RpcV2CborListsOutput`](crate::output::RpcV2CborListsOutput).
         810  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         811  +
    pub struct Builder {
         812  +
        pub(crate) string_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         813  +
        pub(crate) string_set: ::std::option::Option<crate::model::StringSet>,
         814  +
        pub(crate) integer_list: ::std::option::Option<::std::vec::Vec<i32>>,
         815  +
        pub(crate) boolean_list: ::std::option::Option<::std::vec::Vec<bool>>,
         816  +
        pub(crate) timestamp_list:
         817  +
            ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
         818  +
        pub(crate) enum_list: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
         819  +
        pub(crate) int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
         820  +
        pub(crate) nested_string_list:
         821  +
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         822  +
        pub(crate) structure_list:
         823  +
            ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
         824  +
        pub(crate) blob_list: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
         825  +
    }
         826  +
    impl Builder {
  825    827   
        #[allow(missing_docs)] // documentation missing in model
  826         -
        pub fn default_int_enum(mut self, input: i32) -> Self {
  827         -
            self.default_int_enum = Some(input);
         828  +
        pub fn string_list(
         829  +
            mut self,
         830  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         831  +
        ) -> Self {
         832  +
            self.string_list = input;
  828    833   
            self
  829    834   
        }
  830    835   
        #[allow(missing_docs)] // documentation missing in model
  831         -
        pub fn empty_string(mut self, input: ::std::string::String) -> Self {
  832         -
            self.empty_string = Some(input);
         836  +
        pub fn string_set(mut self, input: ::std::option::Option<crate::model::StringSet>) -> Self {
         837  +
            self.string_set = input;
  833    838   
            self
  834    839   
        }
  835    840   
        #[allow(missing_docs)] // documentation missing in model
  836         -
        pub fn false_boolean(mut self, input: bool) -> Self {
  837         -
            self.false_boolean = Some(input);
         841  +
        pub fn integer_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
         842  +
            self.integer_list = input;
  838    843   
            self
  839    844   
        }
  840    845   
        #[allow(missing_docs)] // documentation missing in model
  841         -
        pub fn empty_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
  842         -
            self.empty_blob = Some(input);
         846  +
        pub fn boolean_list(mut self, input: ::std::option::Option<::std::vec::Vec<bool>>) -> Self {
         847  +
            self.boolean_list = input;
  843    848   
            self
  844    849   
        }
  845    850   
        #[allow(missing_docs)] // documentation missing in model
  846         -
        pub fn zero_byte(mut self, input: i8) -> Self {
  847         -
            self.zero_byte = Some(input);
         851  +
        pub fn timestamp_list(
         852  +
            mut self,
         853  +
            input: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
         854  +
        ) -> Self {
         855  +
            self.timestamp_list = input;
  848    856   
            self
  849    857   
        }
  850    858   
        #[allow(missing_docs)] // documentation missing in model
  851         -
        pub fn zero_short(mut self, input: i16) -> Self {
  852         -
            self.zero_short = Some(input);
         859  +
        pub fn enum_list(
         860  +
            mut self,
         861  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
         862  +
        ) -> Self {
         863  +
            self.enum_list = input;
  853    864   
            self
  854    865   
        }
  855    866   
        #[allow(missing_docs)] // documentation missing in model
  856         -
        pub fn zero_integer(mut self, input: i32) -> Self {
  857         -
            self.zero_integer = Some(input);
         867  +
        pub fn int_enum_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
         868  +
            self.int_enum_list = input;
  858    869   
            self
  859    870   
        }
  860         -
        #[allow(missing_docs)] // documentation missing in model
  861         -
        pub fn zero_long(mut self, input: i64) -> Self {
  862         -
            self.zero_long = Some(input);
         871  +
        /// A list of lists of strings.
         872  +
        pub fn nested_string_list(
         873  +
            mut self,
         874  +
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         875  +
        ) -> Self {
         876  +
            self.nested_string_list = input;
  863    877   
            self
  864    878   
        }
  865    879   
        #[allow(missing_docs)] // documentation missing in model
  866         -
        pub fn zero_float(mut self, input: f32) -> Self {
  867         -
            self.zero_float = Some(input);
         880  +
        pub fn structure_list(
         881  +
            mut self,
         882  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
         883  +
        ) -> Self {
         884  +
            self.structure_list = input;
  868    885   
            self
  869    886   
        }
  870    887   
        #[allow(missing_docs)] // documentation missing in model
  871         -
        pub fn zero_double(mut self, input: f64) -> Self {
  872         -
            self.zero_double = Some(input);
         888  +
        pub fn blob_list(
         889  +
            mut self,
         890  +
            input: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
         891  +
        ) -> Self {
         892  +
            self.blob_list = input;
  873    893   
            self
  874    894   
        }
  875         -
        /// Consumes the builder and constructs a [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
  876         -
        pub fn build(self) -> crate::output::OperationWithDefaultsOutput {
         895  +
        /// Consumes the builder and constructs a [`RpcV2CborListsOutput`](crate::output::RpcV2CborListsOutput).
         896  +
        pub fn build(self) -> crate::output::RpcV2CborListsOutput {
  877    897   
            self.build_enforcing_all_constraints()
  878    898   
        }
  879         -
        fn build_enforcing_all_constraints(self) -> crate::output::OperationWithDefaultsOutput {
  880         -
            crate::output::OperationWithDefaultsOutput {
  881         -
                default_string: self.default_string.unwrap_or_else(|| String::from("hi")),
  882         -
                default_boolean: self.default_boolean.unwrap_or(true),
  883         -
                default_list: self.default_list.unwrap_or_default(),
  884         -
                default_timestamp: self.default_timestamp.unwrap_or_else(|| {
  885         -
                    ::aws_smithy_types::DateTime::from_fractional_secs(0, 0_f64)
  886         -
                }),
  887         -
                default_blob: self
  888         -
                    .default_blob
  889         -
                    .unwrap_or_else(|| ::aws_smithy_types::Blob::new("YWJj")),
  890         -
                default_byte: self.default_byte.unwrap_or(1i8),
  891         -
                default_short: self.default_short.unwrap_or(1i16),
  892         -
                default_integer: self.default_integer.unwrap_or(10i32),
  893         -
                default_long: self.default_long.unwrap_or(100i64),
  894         -
                default_float: self.default_float.unwrap_or(1.0f32),
  895         -
                default_double: self.default_double.unwrap_or(1.0f64),
  896         -
                default_map: self.default_map.unwrap_or_default(),
  897         -
                default_enum: self.default_enum.unwrap_or(
  898         -
                    "FOO"
  899         -
                        .parse::<crate::model::TestEnum>()
  900         -
                        .expect("static value validated to member"),
  901         -
                ),
  902         -
                default_int_enum: self.default_int_enum.unwrap_or(1i32),
  903         -
                empty_string: self.empty_string.unwrap_or_else(|| String::from("")),
  904         -
                false_boolean: self.false_boolean.unwrap_or(false),
  905         -
                empty_blob: self
  906         -
                    .empty_blob
  907         -
                    .unwrap_or_else(|| ::aws_smithy_types::Blob::new("")),
  908         -
                zero_byte: self.zero_byte.unwrap_or(0i8),
  909         -
                zero_short: self.zero_short.unwrap_or(0i16),
  910         -
                zero_integer: self.zero_integer.unwrap_or(0i32),
  911         -
                zero_long: self.zero_long.unwrap_or(0i64),
  912         -
                zero_float: self.zero_float.unwrap_or(0.0f32),
  913         -
                zero_double: self.zero_double.unwrap_or(0.0f64),
         899  +
        fn build_enforcing_all_constraints(self) -> crate::output::RpcV2CborListsOutput {
         900  +
            crate::output::RpcV2CborListsOutput {
         901  +
                string_list: self.string_list,
         902  +
                string_set: self.string_set,
         903  +
                integer_list: self.integer_list,
         904  +
                boolean_list: self.boolean_list,
         905  +
                timestamp_list: self.timestamp_list,
         906  +
                enum_list: self.enum_list,
         907  +
                int_enum_list: self.int_enum_list,
         908  +
                nested_string_list: self.nested_string_list,
         909  +
                structure_list: self.structure_list,
         910  +
                blob_list: self.blob_list,
  914    911   
            }
  915    912   
        }
  916    913   
    }
  917    914   
}
  918         -
/// See [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
  919         -
pub mod fractional_seconds_output {
         915  +
/// See [`RpcV2CborDenseMapsOutput`](crate::output::RpcV2CborDenseMapsOutput).
         916  +
pub mod rpc_v2_cbor_dense_maps_output {
  920    917   
  921         -
    impl ::std::convert::From<Builder> for crate::output::FractionalSecondsOutput {
         918  +
    impl ::std::convert::From<Builder> for crate::output::RpcV2CborDenseMapsOutput {
  922    919   
        fn from(builder: Builder) -> Self {
  923    920   
            builder.build()
  924    921   
        }
  925    922   
    }
  926         -
    /// A builder for [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
         923  +
    /// A builder for [`RpcV2CborDenseMapsOutput`](crate::output::RpcV2CborDenseMapsOutput).
  927    924   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  928    925   
    pub struct Builder {
  929         -
        pub(crate) datetime: ::std::option::Option<::aws_smithy_types::DateTime>,
         926  +
        pub(crate) dense_struct_map: ::std::option::Option<
         927  +
            ::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
         928  +
        >,
         929  +
        pub(crate) dense_number_map:
         930  +
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
         931  +
        pub(crate) dense_boolean_map:
         932  +
            ::std::option::Option<::std::collections::HashMap<::std::string::String, bool>>,
         933  +
        pub(crate) dense_string_map: ::std::option::Option<
         934  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         935  +
        >,
         936  +
        pub(crate) dense_set_map: ::std::option::Option<
         937  +
            ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
         938  +
        >,
  930    939   
    }
  931    940   
    impl Builder {
  932    941   
        #[allow(missing_docs)] // documentation missing in model
  933         -
        pub fn datetime(
         942  +
        pub fn dense_struct_map(
  934    943   
            mut self,
  935         -
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
         944  +
            input: ::std::option::Option<
         945  +
                ::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
         946  +
            >,
  936    947   
        ) -> Self {
  937         -
            self.datetime = input;
         948  +
            self.dense_struct_map = input;
  938    949   
            self
  939    950   
        }
  940         -
        /// Consumes the builder and constructs a [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
  941         -
        pub fn build(self) -> crate::output::FractionalSecondsOutput {
  942         -
            self.build_enforcing_all_constraints()
  943         -
        }
  944         -
        fn build_enforcing_all_constraints(self) -> crate::output::FractionalSecondsOutput {
  945         -
            crate::output::FractionalSecondsOutput {
  946         -
                datetime: self.datetime,
  947         -
            }
  948         -
        }
  949         -
    }
  950         -
}
  951         -
/// See [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
  952         -
pub mod greeting_with_errors_output {
  953         -
  954         -
    impl ::std::convert::From<Builder> for crate::output::GreetingWithErrorsOutput {
  955         -
        fn from(builder: Builder) -> Self {
  956         -
            builder.build()
  957         -
        }
  958         -
    }
  959         -
    /// A builder for [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
  960         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  961         -
    pub struct Builder {
  962         -
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
  963         -
    }
  964         -
    impl Builder {
  965    951   
        #[allow(missing_docs)] // documentation missing in model
  966         -
        pub fn greeting(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  967         -
            self.greeting = input;
         952  +
        pub fn dense_number_map(
         953  +
            mut self,
         954  +
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
         955  +
        ) -> Self {
         956  +
            self.dense_number_map = input;
  968    957   
            self
  969    958   
        }
  970         -
        /// Consumes the builder and constructs a [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
  971         -
        pub fn build(self) -> crate::output::GreetingWithErrorsOutput {
  972         -
            self.build_enforcing_all_constraints()
  973         -
        }
  974         -
        fn build_enforcing_all_constraints(self) -> crate::output::GreetingWithErrorsOutput {
  975         -
            crate::output::GreetingWithErrorsOutput {
  976         -
                greeting: self.greeting,
  977         -
            }
  978         -
        }
  979         -
    }
  980         -
}
  981         -
/// See [`RecursiveShapesOutput`](crate::output::RecursiveShapesOutput).
  982         -
pub mod recursive_shapes_output {
  983         -
  984         -
    impl ::std::convert::From<Builder> for crate::output::RecursiveShapesOutput {
  985         -
        fn from(builder: Builder) -> Self {
  986         -
            builder.build()
         959  +
        #[allow(missing_docs)] // documentation missing in model
         960  +
        pub fn dense_boolean_map(
         961  +
            mut self,
         962  +
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, bool>>,
         963  +
        ) -> Self {
         964  +
            self.dense_boolean_map = input;
         965  +
            self
  987    966   
        }
  988         -
    }
  989         -
    /// A builder for [`RecursiveShapesOutput`](crate::output::RecursiveShapesOutput).
  990         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
  991         -
    pub struct Builder {
  992         -
        pub(crate) nested: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
  993         -
    }
  994         -
    impl Builder {
  995    967   
        #[allow(missing_docs)] // documentation missing in model
  996         -
        pub fn nested(
         968  +
        pub fn dense_string_map(
  997    969   
            mut self,
  998         -
            input: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
         970  +
            input: ::std::option::Option<
         971  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         972  +
            >,
  999    973   
        ) -> Self {
 1000         -
            self.nested = input;
         974  +
            self.dense_string_map = input;
 1001    975   
            self
 1002    976   
        }
 1003         -
        /// Consumes the builder and constructs a [`RecursiveShapesOutput`](crate::output::RecursiveShapesOutput).
 1004         -
        pub fn build(self) -> crate::output::RecursiveShapesOutput {
         977  +
        #[allow(missing_docs)] // documentation missing in model
         978  +
        pub fn dense_set_map(
         979  +
            mut self,
         980  +
            input: ::std::option::Option<
         981  +
                ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
         982  +
            >,
         983  +
        ) -> Self {
         984  +
            self.dense_set_map = input;
         985  +
            self
         986  +
        }
         987  +
        /// Consumes the builder and constructs a [`RpcV2CborDenseMapsOutput`](crate::output::RpcV2CborDenseMapsOutput).
         988  +
        pub fn build(self) -> crate::output::RpcV2CborDenseMapsOutput {
 1005    989   
            self.build_enforcing_all_constraints()
 1006    990   
        }
 1007         -
        fn build_enforcing_all_constraints(self) -> crate::output::RecursiveShapesOutput {
 1008         -
            crate::output::RecursiveShapesOutput {
 1009         -
                nested: self.nested,
         991  +
        fn build_enforcing_all_constraints(self) -> crate::output::RpcV2CborDenseMapsOutput {
         992  +
            crate::output::RpcV2CborDenseMapsOutput {
         993  +
                dense_struct_map: self.dense_struct_map,
         994  +
                dense_number_map: self.dense_number_map,
         995  +
                dense_boolean_map: self.dense_boolean_map,
         996  +
                dense_string_map: self.dense_string_map,
         997  +
                dense_set_map: self.dense_set_map,
 1010    998   
            }
 1011    999   
        }
 1012   1000   
    }
 1013   1001   
}
 1014   1002   
/// See [`RpcV2CborSparseMapsOutput`](crate::output::RpcV2CborSparseMapsOutput).
 1015   1003   
pub mod rpc_v2_cbor_sparse_maps_output {
 1016   1004   
 1017   1005   
    impl ::std::convert::From<Builder> for crate::output::RpcV2CborSparseMapsOutput {
 1018   1006   
        fn from(builder: Builder) -> Self {
 1019   1007   
            builder.build()
@@ -1095,1083 +1491,1491 @@
 1115   1103   
            crate::output::RpcV2CborSparseMapsOutput {
 1116   1104   
                sparse_struct_map: self.sparse_struct_map,
 1117   1105   
                sparse_number_map: self.sparse_number_map,
 1118   1106   
                sparse_boolean_map: self.sparse_boolean_map,
 1119   1107   
                sparse_string_map: self.sparse_string_map,
 1120   1108   
                sparse_set_map: self.sparse_set_map,
 1121   1109   
            }
 1122   1110   
        }
 1123   1111   
    }
 1124   1112   
}
 1125         -
/// See [`RpcV2CborDenseMapsOutput`](crate::output::RpcV2CborDenseMapsOutput).
 1126         -
pub mod rpc_v2_cbor_dense_maps_output {
        1113  +
/// See [`RecursiveShapesOutput`](crate::output::RecursiveShapesOutput).
        1114  +
pub mod recursive_shapes_output {
 1127   1115   
 1128         -
    impl ::std::convert::From<Builder> for crate::output::RpcV2CborDenseMapsOutput {
        1116  +
    impl ::std::convert::From<Builder> for crate::output::RecursiveShapesOutput {
 1129   1117   
        fn from(builder: Builder) -> Self {
 1130   1118   
            builder.build()
 1131   1119   
        }
 1132   1120   
    }
 1133         -
    /// A builder for [`RpcV2CborDenseMapsOutput`](crate::output::RpcV2CborDenseMapsOutput).
        1121  +
    /// A builder for [`RecursiveShapesOutput`](crate::output::RecursiveShapesOutput).
 1134   1122   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1135   1123   
    pub struct Builder {
 1136         -
        pub(crate) dense_struct_map: ::std::option::Option<
 1137         -
            ::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
 1138         -
        >,
 1139         -
        pub(crate) dense_number_map:
 1140         -
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
 1141         -
        pub(crate) dense_boolean_map:
 1142         -
            ::std::option::Option<::std::collections::HashMap<::std::string::String, bool>>,
 1143         -
        pub(crate) dense_string_map: ::std::option::Option<
 1144         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1145         -
        >,
 1146         -
        pub(crate) dense_set_map: ::std::option::Option<
 1147         -
            ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
 1148         -
        >,
        1124  +
        pub(crate) nested: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
 1149   1125   
    }
 1150   1126   
    impl Builder {
 1151   1127   
        #[allow(missing_docs)] // documentation missing in model
 1152         -
        pub fn dense_struct_map(
        1128  +
        pub fn nested(
 1153   1129   
            mut self,
 1154         -
            input: ::std::option::Option<
 1155         -
                ::std::collections::HashMap<::std::string::String, crate::model::GreetingStruct>,
 1156         -
            >,
        1130  +
            input: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
 1157   1131   
        ) -> Self {
 1158         -
            self.dense_struct_map = input;
        1132  +
            self.nested = input;
 1159   1133   
            self
 1160   1134   
        }
 1161         -
        #[allow(missing_docs)] // documentation missing in model
 1162         -
        pub fn dense_number_map(
 1163         -
            mut self,
 1164         -
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
 1165         -
        ) -> Self {
 1166         -
            self.dense_number_map = input;
 1167         -
            self
        1135  +
        /// Consumes the builder and constructs a [`RecursiveShapesOutput`](crate::output::RecursiveShapesOutput).
        1136  +
        pub fn build(self) -> crate::output::RecursiveShapesOutput {
        1137  +
            self.build_enforcing_all_constraints()
 1168   1138   
        }
 1169         -
        #[allow(missing_docs)] // documentation missing in model
 1170         -
        pub fn dense_boolean_map(
 1171         -
            mut self,
 1172         -
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, bool>>,
 1173         -
        ) -> Self {
 1174         -
            self.dense_boolean_map = input;
 1175         -
            self
        1139  +
        fn build_enforcing_all_constraints(self) -> crate::output::RecursiveShapesOutput {
        1140  +
            crate::output::RecursiveShapesOutput {
        1141  +
                nested: self.nested,
        1142  +
            }
        1143  +
        }
        1144  +
    }
        1145  +
}
        1146  +
/// See [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1147  +
pub mod greeting_with_errors_output {
        1148  +
        1149  +
    impl ::std::convert::From<Builder> for crate::output::GreetingWithErrorsOutput {
        1150  +
        fn from(builder: Builder) -> Self {
        1151  +
            builder.build()
 1176   1152   
        }
        1153  +
    }
        1154  +
    /// A builder for [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1155  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1156  +
    pub struct Builder {
        1157  +
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        1158  +
    }
        1159  +
    impl Builder {
 1177   1160   
        #[allow(missing_docs)] // documentation missing in model
 1178         -
        pub fn dense_string_map(
 1179         -
            mut self,
 1180         -
            input: ::std::option::Option<
 1181         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1182         -
            >,
 1183         -
        ) -> Self {
 1184         -
            self.dense_string_map = input;
        1161  +
        pub fn greeting(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        1162  +
            self.greeting = input;
 1185   1163   
            self
 1186   1164   
        }
        1165  +
        /// Consumes the builder and constructs a [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1166  +
        pub fn build(self) -> crate::output::GreetingWithErrorsOutput {
        1167  +
            self.build_enforcing_all_constraints()
        1168  +
        }
        1169  +
        fn build_enforcing_all_constraints(self) -> crate::output::GreetingWithErrorsOutput {
        1170  +
            crate::output::GreetingWithErrorsOutput {
        1171  +
                greeting: self.greeting,
        1172  +
            }
        1173  +
        }
        1174  +
    }
        1175  +
}
        1176  +
/// See [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
        1177  +
pub mod fractional_seconds_output {
        1178  +
        1179  +
    impl ::std::convert::From<Builder> for crate::output::FractionalSecondsOutput {
        1180  +
        fn from(builder: Builder) -> Self {
        1181  +
            builder.build()
        1182  +
        }
        1183  +
    }
        1184  +
    /// A builder for [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
        1185  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1186  +
    pub struct Builder {
        1187  +
        pub(crate) datetime: ::std::option::Option<::aws_smithy_types::DateTime>,
        1188  +
    }
        1189  +
    impl Builder {
 1187   1190   
        #[allow(missing_docs)] // documentation missing in model
 1188         -
        pub fn dense_set_map(
        1191  +
        pub fn datetime(
 1189   1192   
            mut self,
 1190         -
            input: ::std::option::Option<
 1191         -
                ::std::collections::HashMap<::std::string::String, crate::model::StringSet>,
 1192         -
            >,
        1193  +
            input: ::std::option::Option<::aws_smithy_types::DateTime>,
 1193   1194   
        ) -> Self {
 1194         -
            self.dense_set_map = input;
        1195  +
            self.datetime = input;
 1195   1196   
            self
 1196   1197   
        }
 1197         -
        /// Consumes the builder and constructs a [`RpcV2CborDenseMapsOutput`](crate::output::RpcV2CborDenseMapsOutput).
 1198         -
        pub fn build(self) -> crate::output::RpcV2CborDenseMapsOutput {
        1198  +
        /// Consumes the builder and constructs a [`FractionalSecondsOutput`](crate::output::FractionalSecondsOutput).
        1199  +
        pub fn build(self) -> crate::output::FractionalSecondsOutput {
 1199   1200   
            self.build_enforcing_all_constraints()
 1200   1201   
        }
 1201         -
        fn build_enforcing_all_constraints(self) -> crate::output::RpcV2CborDenseMapsOutput {
 1202         -
            crate::output::RpcV2CborDenseMapsOutput {
 1203         -
                dense_struct_map: self.dense_struct_map,
 1204         -
                dense_number_map: self.dense_number_map,
 1205         -
                dense_boolean_map: self.dense_boolean_map,
 1206         -
                dense_string_map: self.dense_string_map,
 1207         -
                dense_set_map: self.dense_set_map,
        1202  +
        fn build_enforcing_all_constraints(self) -> crate::output::FractionalSecondsOutput {
        1203  +
            crate::output::FractionalSecondsOutput {
        1204  +
                datetime: self.datetime,
 1208   1205   
            }
 1209   1206   
        }
 1210   1207   
    }
 1211   1208   
}
 1212         -
/// See [`RpcV2CborListsOutput`](crate::output::RpcV2CborListsOutput).
 1213         -
pub mod rpc_v2_cbor_lists_output {
        1209  +
/// See [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
        1210  +
pub mod operation_with_defaults_output {
 1214   1211   
 1215         -
    impl ::std::convert::From<Builder> for crate::output::RpcV2CborListsOutput {
        1212  +
    impl ::std::convert::From<Builder> for crate::output::OperationWithDefaultsOutput {
 1216   1213   
        fn from(builder: Builder) -> Self {
 1217   1214   
            builder.build()
 1218   1215   
        }
 1219   1216   
    }
 1220         -
    /// A builder for [`RpcV2CborListsOutput`](crate::output::RpcV2CborListsOutput).
        1217  +
    /// A builder for [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
 1221   1218   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1222   1219   
    pub struct Builder {
 1223         -
        pub(crate) string_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1224         -
        pub(crate) string_set: ::std::option::Option<crate::model::StringSet>,
 1225         -
        pub(crate) integer_list: ::std::option::Option<::std::vec::Vec<i32>>,
 1226         -
        pub(crate) boolean_list: ::std::option::Option<::std::vec::Vec<bool>>,
 1227         -
        pub(crate) timestamp_list:
 1228         -
            ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
 1229         -
        pub(crate) enum_list: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
 1230         -
        pub(crate) int_enum_list: ::std::option::Option<::std::vec::Vec<i32>>,
 1231         -
        pub(crate) nested_string_list:
 1232         -
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 1233         -
        pub(crate) structure_list:
 1234         -
            ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
 1235         -
        pub(crate) blob_list: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
        1220  +
        pub(crate) default_string: ::std::option::Option<::std::string::String>,
        1221  +
        pub(crate) default_boolean: ::std::option::Option<bool>,
        1222  +
        pub(crate) default_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        1223  +
        pub(crate) default_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
        1224  +
        pub(crate) default_blob: ::std::option::Option<::aws_smithy_types::Blob>,
        1225  +
        pub(crate) default_byte: ::std::option::Option<i8>,
        1226  +
        pub(crate) default_short: ::std::option::Option<i16>,
        1227  +
        pub(crate) default_integer: ::std::option::Option<i32>,
        1228  +
        pub(crate) default_long: ::std::option::Option<i64>,
        1229  +
        pub(crate) default_float: ::std::option::Option<f32>,
        1230  +
        pub(crate) default_double: ::std::option::Option<f64>,
        1231  +
        pub(crate) default_map: ::std::option::Option<
        1232  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1233  +
        >,
        1234  +
        pub(crate) default_enum: ::std::option::Option<crate::model::TestEnum>,
        1235  +
        pub(crate) default_int_enum: ::std::option::Option<i32>,
        1236  +
        pub(crate) empty_string: ::std::option::Option<::std::string::String>,
        1237  +
        pub(crate) false_boolean: ::std::option::Option<bool>,
        1238  +
        pub(crate) empty_blob: ::std::option::Option<::aws_smithy_types::Blob>,
        1239  +
        pub(crate) zero_byte: ::std::option::Option<i8>,
        1240  +
        pub(crate) zero_short: ::std::option::Option<i16>,
        1241  +
        pub(crate) zero_integer: ::std::option::Option<i32>,
        1242  +
        pub(crate) zero_long: ::std::option::Option<i64>,
        1243  +
        pub(crate) zero_float: ::std::option::Option<f32>,
        1244  +
        pub(crate) zero_double: ::std::option::Option<f64>,
 1236   1245   
    }
 1237   1246   
    impl Builder {
 1238   1247   
        #[allow(missing_docs)] // documentation missing in model
 1239         -
        pub fn string_list(
 1240         -
            mut self,
 1241         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1242         -
        ) -> Self {
 1243         -
            self.string_list = input;
        1248  +
        pub fn default_string(mut self, input: ::std::string::String) -> Self {
        1249  +
            self.default_string = Some(input);
 1244   1250   
            self
 1245   1251   
        }
 1246   1252   
        #[allow(missing_docs)] // documentation missing in model
 1247         -
        pub fn string_set(mut self, input: ::std::option::Option<crate::model::StringSet>) -> Self {
 1248         -
            self.string_set = input;
        1253  +
        pub fn default_boolean(mut self, input: bool) -> Self {
        1254  +
            self.default_boolean = Some(input);
 1249   1255   
            self
 1250   1256   
        }
 1251   1257   
        #[allow(missing_docs)] // documentation missing in model
 1252         -
        pub fn integer_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
 1253         -
            self.integer_list = input;
        1258  +
        pub fn default_list(mut self, input: ::std::vec::Vec<::std::string::String>) -> Self {
        1259  +
            self.default_list = Some(input);
 1254   1260   
            self
 1255   1261   
        }
 1256   1262   
        #[allow(missing_docs)] // documentation missing in model
 1257         -
        pub fn boolean_list(mut self, input: ::std::option::Option<::std::vec::Vec<bool>>) -> Self {
 1258         -
            self.boolean_list = input;
        1263  +
        pub fn default_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1264  +
            self.default_timestamp = Some(input);
 1259   1265   
            self
 1260   1266   
        }
 1261   1267   
        #[allow(missing_docs)] // documentation missing in model
 1262         -
        pub fn timestamp_list(
 1263         -
            mut self,
 1264         -
            input: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::DateTime>>,
 1265         -
        ) -> Self {
 1266         -
            self.timestamp_list = input;
        1268  +
        pub fn default_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
        1269  +
            self.default_blob = Some(input);
 1267   1270   
            self
 1268   1271   
        }
 1269   1272   
        #[allow(missing_docs)] // documentation missing in model
 1270         -
        pub fn enum_list(
 1271         -
            mut self,
 1272         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::FooEnum>>,
 1273         -
        ) -> Self {
 1274         -
            self.enum_list = input;
        1273  +
        pub fn default_byte(mut self, input: i8) -> Self {
        1274  +
            self.default_byte = Some(input);
 1275   1275   
            self
 1276   1276   
        }
 1277   1277   
        #[allow(missing_docs)] // documentation missing in model
 1278         -
        pub fn int_enum_list(mut self, input: ::std::option::Option<::std::vec::Vec<i32>>) -> Self {
 1279         -
            self.int_enum_list = input;
        1278  +
        pub fn default_short(mut self, input: i16) -> Self {
        1279  +
            self.default_short = Some(input);
        1280  +
            self
        1281  +
        }
        1282  +
        #[allow(missing_docs)] // documentation missing in model
        1283  +
        pub fn default_integer(mut self, input: i32) -> Self {
        1284  +
            self.default_integer = Some(input);
        1285  +
            self
        1286  +
        }
        1287  +
        #[allow(missing_docs)] // documentation missing in model
        1288  +
        pub fn default_long(mut self, input: i64) -> Self {
        1289  +
            self.default_long = Some(input);
 1280   1290   
            self
 1281   1291   
        }
 1282         -
        /// A list of lists of strings.
 1283         -
        pub fn nested_string_list(
 1284         -
            mut self,
 1285         -
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 1286         -
        ) -> Self {
 1287         -
            self.nested_string_list = input;
        1292  +
        #[allow(missing_docs)] // documentation missing in model
        1293  +
        pub fn default_float(mut self, input: f32) -> Self {
        1294  +
            self.default_float = Some(input);
 1288   1295   
            self
 1289   1296   
        }
 1290   1297   
        #[allow(missing_docs)] // documentation missing in model
 1291         -
        pub fn structure_list(
 1292         -
            mut self,
 1293         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::StructureListMember>>,
 1294         -
        ) -> Self {
 1295         -
            self.structure_list = input;
        1298  +
        pub fn default_double(mut self, input: f64) -> Self {
        1299  +
            self.default_double = Some(input);
 1296   1300   
            self
 1297   1301   
        }
 1298   1302   
        #[allow(missing_docs)] // documentation missing in model
 1299         -
        pub fn blob_list(
        1303  +
        pub fn default_map(
 1300   1304   
            mut self,
 1301         -
            input: ::std::option::Option<::std::vec::Vec<::aws_smithy_types::Blob>>,
        1305  +
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1302   1306   
        ) -> Self {
 1303         -
            self.blob_list = input;
        1307  +
            self.default_map = Some(input);
 1304   1308   
            self
 1305   1309   
        }
 1306         -
        /// Consumes the builder and constructs a [`RpcV2CborListsOutput`](crate::output::RpcV2CborListsOutput).
 1307         -
        pub fn build(self) -> crate::output::RpcV2CborListsOutput {
 1308         -
            self.build_enforcing_all_constraints()
 1309         -
        }
 1310         -
        fn build_enforcing_all_constraints(self) -> crate::output::RpcV2CborListsOutput {
 1311         -
            crate::output::RpcV2CborListsOutput {
 1312         -
                string_list: self.string_list,
 1313         -
                string_set: self.string_set,
 1314         -
                integer_list: self.integer_list,
 1315         -
                boolean_list: self.boolean_list,
 1316         -
                timestamp_list: self.timestamp_list,
 1317         -
                enum_list: self.enum_list,
 1318         -
                int_enum_list: self.int_enum_list,
 1319         -
                nested_string_list: self.nested_string_list,
 1320         -
                structure_list: self.structure_list,
 1321         -
                blob_list: self.blob_list,
 1322         -
            }
 1323         -
        }
 1324         -
    }
 1325         -
}
 1326         -
/// See [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
 1327         -
pub mod simple_scalar_properties_output {
 1328         -
 1329         -
    impl ::std::convert::From<Builder> for crate::output::SimpleScalarPropertiesOutput {
 1330         -
        fn from(builder: Builder) -> Self {
 1331         -
            builder.build()
        1310  +
        #[allow(missing_docs)] // documentation missing in model
        1311  +
        pub fn default_enum(mut self, input: crate::model::TestEnum) -> Self {
        1312  +
            self.default_enum = Some(input);
        1313  +
            self
 1332   1314   
        }
 1333         -
    }
 1334         -
    /// A builder for [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
 1335         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1336         -
    pub struct Builder {
 1337         -
        pub(crate) true_boolean_value: ::std::option::Option<bool>,
 1338         -
        pub(crate) false_boolean_value: ::std::option::Option<bool>,
 1339         -
        pub(crate) byte_value: ::std::option::Option<i8>,
 1340         -
        pub(crate) double_value: ::std::option::Option<f64>,
 1341         -
        pub(crate) float_value: ::std::option::Option<f32>,
 1342         -
        pub(crate) integer_value: ::std::option::Option<i32>,
 1343         -
        pub(crate) long_value: ::std::option::Option<i64>,
 1344         -
        pub(crate) short_value: ::std::option::Option<i16>,
 1345         -
        pub(crate) string_value: ::std::option::Option<::std::string::String>,
 1346         -
        pub(crate) blob_value: ::std::option::Option<::aws_smithy_types::Blob>,
 1347         -
    }
 1348         -
    impl Builder {
 1349   1315   
        #[allow(missing_docs)] // documentation missing in model
 1350         -
        pub fn true_boolean_value(mut self, input: ::std::option::Option<bool>) -> Self {
 1351         -
            self.true_boolean_value = input;
        1316  +
        pub fn default_int_enum(mut self, input: i32) -> Self {
        1317  +
            self.default_int_enum = Some(input);
 1352   1318   
            self
 1353   1319   
        }
 1354   1320   
        #[allow(missing_docs)] // documentation missing in model
 1355         -
        pub fn false_boolean_value(mut self, input: ::std::option::Option<bool>) -> Self {
 1356         -
            self.false_boolean_value = input;
        1321  +
        pub fn empty_string(mut self, input: ::std::string::String) -> Self {
        1322  +
            self.empty_string = Some(input);
 1357   1323   
            self
 1358   1324   
        }
 1359   1325   
        #[allow(missing_docs)] // documentation missing in model
 1360         -
        pub fn byte_value(mut self, input: ::std::option::Option<i8>) -> Self {
 1361         -
            self.byte_value = input;
        1326  +
        pub fn false_boolean(mut self, input: bool) -> Self {
        1327  +
            self.false_boolean = Some(input);
 1362   1328   
            self
 1363   1329   
        }
 1364   1330   
        #[allow(missing_docs)] // documentation missing in model
 1365         -
        pub fn double_value(mut self, input: ::std::option::Option<f64>) -> Self {
 1366         -
            self.double_value = input;
        1331  +
        pub fn empty_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
        1332  +
            self.empty_blob = Some(input);
 1367   1333   
            self
 1368   1334   
        }
 1369   1335   
        #[allow(missing_docs)] // documentation missing in model
 1370         -
        pub fn float_value(mut self, input: ::std::option::Option<f32>) -> Self {
 1371         -
            self.float_value = input;
        1336  +
        pub fn zero_byte(mut self, input: i8) -> Self {
        1337  +
            self.zero_byte = Some(input);
 1372   1338   
            self
 1373   1339   
        }
 1374   1340   
        #[allow(missing_docs)] // documentation missing in model
 1375         -
        pub fn integer_value(mut self, input: ::std::option::Option<i32>) -> Self {
 1376         -
            self.integer_value = input;
        1341  +
        pub fn zero_short(mut self, input: i16) -> Self {
        1342  +
            self.zero_short = Some(input);
 1377   1343   
            self
 1378   1344   
        }
 1379   1345   
        #[allow(missing_docs)] // documentation missing in model
 1380         -
        pub fn long_value(mut self, input: ::std::option::Option<i64>) -> Self {
 1381         -
            self.long_value = input;
        1346  +
        pub fn zero_integer(mut self, input: i32) -> Self {
        1347  +
            self.zero_integer = Some(input);
 1382   1348   
            self
 1383   1349   
        }
 1384   1350   
        #[allow(missing_docs)] // documentation missing in model
 1385         -
        pub fn short_value(mut self, input: ::std::option::Option<i16>) -> Self {
 1386         -
            self.short_value = input;
        1351  +
        pub fn zero_long(mut self, input: i64) -> Self {
        1352  +
            self.zero_long = Some(input);
 1387   1353   
            self
 1388   1354   
        }
 1389   1355   
        #[allow(missing_docs)] // documentation missing in model
 1390         -
        pub fn string_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1391         -
            self.string_value = input;
        1356  +
        pub fn zero_float(mut self, input: f32) -> Self {
        1357  +
            self.zero_float = Some(input);
 1392   1358   
            self
 1393   1359   
        }
 1394   1360   
        #[allow(missing_docs)] // documentation missing in model
 1395         -
        pub fn blob_value(
 1396         -
            mut self,
 1397         -
            input: ::std::option::Option<::aws_smithy_types::Blob>,
 1398         -
        ) -> Self {
 1399         -
            self.blob_value = input;
        1361  +
        pub fn zero_double(mut self, input: f64) -> Self {
        1362  +
            self.zero_double = Some(input);
 1400   1363   
            self
 1401   1364   
        }
 1402         -
        /// Consumes the builder and constructs a [`SimpleScalarPropertiesOutput`](crate::output::SimpleScalarPropertiesOutput).
 1403         -
        pub fn build(self) -> crate::output::SimpleScalarPropertiesOutput {
        1365  +
        /// Consumes the builder and constructs a [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
        1366  +
        pub fn build(self) -> crate::output::OperationWithDefaultsOutput {
 1404   1367   
            self.build_enforcing_all_constraints()
 1405   1368   
        }
 1406         -
        fn build_enforcing_all_constraints(self) -> crate::output::SimpleScalarPropertiesOutput {
 1407         -
            crate::output::SimpleScalarPropertiesOutput {
 1408         -
                true_boolean_value: self.true_boolean_value,
 1409         -
                false_boolean_value: self.false_boolean_value,
 1410         -
                byte_value: self.byte_value,
 1411         -
                double_value: self.double_value,
 1412         -
                float_value: self.float_value,
 1413         -
                integer_value: self.integer_value,
 1414         -
                long_value: self.long_value,
 1415         -
                short_value: self.short_value,
 1416         -
                string_value: self.string_value,
 1417         -
                blob_value: self.blob_value,
        1369  +
        fn build_enforcing_all_constraints(self) -> crate::output::OperationWithDefaultsOutput {
        1370  +
            crate::output::OperationWithDefaultsOutput {
        1371  +
                default_string: self.default_string.unwrap_or_else(|| String::from("hi")),
        1372  +
                default_boolean: self.default_boolean.unwrap_or(true),
        1373  +
                default_list: self.default_list.unwrap_or_default(),
        1374  +
                default_timestamp: self.default_timestamp.unwrap_or_else(|| {
        1375  +
                    ::aws_smithy_types::DateTime::from_fractional_secs(0, 0_f64)
        1376  +
                }),
        1377  +
                default_blob: self
        1378  +
                    .default_blob
        1379  +
                    .unwrap_or_else(|| ::aws_smithy_types::Blob::new("YWJj")),
        1380  +
                default_byte: self.default_byte.unwrap_or(1i8),
        1381  +
                default_short: self.default_short.unwrap_or(1i16),
        1382  +
                default_integer: self.default_integer.unwrap_or(10i32),
        1383  +
                default_long: self.default_long.unwrap_or(100i64),
        1384  +
                default_float: self.default_float.unwrap_or(1.0f32),
        1385  +
                default_double: self.default_double.unwrap_or(1.0f64),
        1386  +
                default_map: self.default_map.unwrap_or_default(),
        1387  +
                default_enum: self.default_enum.unwrap_or(
        1388  +
                    "FOO"
        1389  +
                        .parse::<crate::model::TestEnum>()
        1390  +
                        .expect("static value validated to member"),
        1391  +
                ),
        1392  +
                default_int_enum: self.default_int_enum.unwrap_or(1i32),
        1393  +
                empty_string: self.empty_string.unwrap_or_else(|| String::from("")),
        1394  +
                false_boolean: self.false_boolean.unwrap_or(false),
        1395  +
                empty_blob: self
        1396  +
                    .empty_blob
        1397  +
                    .unwrap_or_else(|| ::aws_smithy_types::Blob::new("")),
        1398  +
                zero_byte: self.zero_byte.unwrap_or(0i8),
        1399  +
                zero_short: self.zero_short.unwrap_or(0i16),
        1400  +
                zero_integer: self.zero_integer.unwrap_or(0i32),
        1401  +
                zero_long: self.zero_long.unwrap_or(0i64),
        1402  +
                zero_float: self.zero_float.unwrap_or(0.0f32),
        1403  +
                zero_double: self.zero_double.unwrap_or(0.0f64),
 1418   1404   
            }
 1419   1405   
        }
 1420   1406   
    }
 1421   1407   
}
 1422         -
/// See [`OptionalInputOutputOutput`](crate::output::OptionalInputOutputOutput).
 1423         -
pub mod optional_input_output_output {
        1408  +
/// See [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
        1409  +
pub mod sparse_nulls_operation_output {
 1424   1410   
 1425         -
    impl ::std::convert::From<Builder> for crate::output::OptionalInputOutputOutput {
        1411  +
    impl ::std::convert::From<Builder> for crate::output::SparseNullsOperationOutput {
 1426   1412   
        fn from(builder: Builder) -> Self {
 1427   1413   
            builder.build()
 1428   1414   
        }
 1429   1415   
    }
 1430         -
    /// A builder for [`OptionalInputOutputOutput`](crate::output::OptionalInputOutputOutput).
        1416  +
    /// A builder for [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
 1431   1417   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1432   1418   
    pub struct Builder {
 1433         -
        pub(crate) value: ::std::option::Option<::std::string::String>,
        1419  +
        pub(crate) sparse_string_list:
        1420  +
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
        1421  +
        pub(crate) sparse_string_map: ::std::option::Option<
        1422  +
            ::std::collections::HashMap<
        1423  +
                ::std::string::String,
        1424  +
                ::std::option::Option<::std::string::String>,
        1425  +
            >,
        1426  +
        >,
 1434   1427   
    }
 1435   1428   
    impl Builder {
 1436   1429   
        #[allow(missing_docs)] // documentation missing in model
 1437         -
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 1438         -
            self.value = input;
        1430  +
        pub fn sparse_string_list(
        1431  +
            mut self,
        1432  +
            input: ::std::option::Option<
        1433  +
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
        1434  +
            >,
        1435  +
        ) -> Self {
        1436  +
            self.sparse_string_list = input;
 1439   1437   
            self
 1440   1438   
        }
 1441         -
        /// Consumes the builder and constructs a [`OptionalInputOutputOutput`](crate::output::OptionalInputOutputOutput).
 1442         -
        pub fn build(self) -> crate::output::OptionalInputOutputOutput {
 1443         -
            self.build_enforcing_all_constraints()
 1444         -
        }
 1445         -
        fn build_enforcing_all_constraints(self) -> crate::output::OptionalInputOutputOutput {
 1446         -
            crate::output::OptionalInputOutputOutput { value: self.value }
 1447         -
        }
 1448         -
    }
 1449         -
}
 1450         -
/// See [`EmptyInputOutputOutput`](crate::output::EmptyInputOutputOutput).
 1451         -
pub mod empty_input_output_output {
 1452         -
 1453         -
    impl ::std::convert::From<Builder> for crate::output::EmptyInputOutputOutput {
 1454         -
        fn from(builder: Builder) -> Self {
 1455         -
            builder.build()
        1439  +
        #[allow(missing_docs)] // documentation missing in model
        1440  +
        pub fn sparse_string_map(
        1441  +
            mut self,
        1442  +
            input: ::std::option::Option<
        1443  +
                ::std::collections::HashMap<
        1444  +
                    ::std::string::String,
        1445  +
                    ::std::option::Option<::std::string::String>,
        1446  +
                >,
        1447  +
            >,
        1448  +
        ) -> Self {
        1449  +
            self.sparse_string_map = input;
        1450  +
            self
 1456   1451   
        }
 1457         -
    }
 1458         -
    /// A builder for [`EmptyInputOutputOutput`](crate::output::EmptyInputOutputOutput).
 1459         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1460         -
    pub struct Builder {}
 1461         -
    impl Builder {
 1462         -
        /// Consumes the builder and constructs a [`EmptyInputOutputOutput`](crate::output::EmptyInputOutputOutput).
 1463         -
        pub fn build(self) -> crate::output::EmptyInputOutputOutput {
        1452  +
        /// Consumes the builder and constructs a [`SparseNullsOperationOutput`](crate::output::SparseNullsOperationOutput).
        1453  +
        pub fn build(self) -> crate::output::SparseNullsOperationOutput {
 1464   1454   
            self.build_enforcing_all_constraints()
 1465   1455   
        }
 1466         -
        fn build_enforcing_all_constraints(self) -> crate::output::EmptyInputOutputOutput {
 1467         -
            crate::output::EmptyInputOutputOutput {}
        1456  +
        fn build_enforcing_all_constraints(self) -> crate::output::SparseNullsOperationOutput {
        1457  +
            crate::output::SparseNullsOperationOutput {
        1458  +
                sparse_string_list: self.sparse_string_list,
        1459  +
                sparse_string_map: self.sparse_string_map,
        1460  +
            }
 1468   1461   
        }
 1469   1462   
    }
 1470   1463   
}
 1471         -
/// See [`NoInputOutputOutput`](crate::output::NoInputOutputOutput).
 1472         -
pub mod no_input_output_output {
        1464  +
/// See [`Float16Output`](crate::output::Float16Output).
        1465  +
pub mod float16_output {
 1473   1466   
 1474         -
    impl ::std::convert::From<Builder> for crate::output::NoInputOutputOutput {
        1467  +
    impl ::std::convert::From<Builder> for crate::output::Float16Output {
 1475   1468   
        fn from(builder: Builder) -> Self {
 1476   1469   
            builder.build()
 1477   1470   
        }
 1478   1471   
    }
 1479         -
    /// A builder for [`NoInputOutputOutput`](crate::output::NoInputOutputOutput).
        1472  +
    /// A builder for [`Float16Output`](crate::output::Float16Output).
 1480   1473   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 1481         -
    pub struct Builder {}
        1474  +
    pub struct Builder {
        1475  +
        pub(crate) value: ::std::option::Option<f64>,
        1476  +
    }
 1482   1477   
    impl Builder {
 1483         -
        /// Consumes the builder and constructs a [`NoInputOutputOutput`](crate::output::NoInputOutputOutput).
 1484         -
        pub fn build(self) -> crate::output::NoInputOutputOutput {
        1478  +
        #[allow(missing_docs)] // documentation missing in model
        1479  +
        pub fn value(mut self, input: ::std::option::Option<f64>) -> Self {
        1480  +
            self.value = input;
        1481  +
            self
        1482  +
        }
        1483  +
        /// Consumes the builder and constructs a [`Float16Output`](crate::output::Float16Output).
        1484  +
        pub fn build(self) -> crate::output::Float16Output {
 1485   1485   
            self.build_enforcing_all_constraints()
 1486   1486   
        }
 1487         -
        fn build_enforcing_all_constraints(self) -> crate::output::NoInputOutputOutput {
 1488         -
            crate::output::NoInputOutputOutput {}
        1487  +
        fn build_enforcing_all_constraints(self) -> crate::output::Float16Output {
        1488  +
            crate::output::Float16Output { value: self.value }
 1489   1489   
        }
 1490   1490   
    }
 1491   1491   
}