Server Test

Server Test

rev. 7254d43655ed63111c94f599437f2b0d3f55446e

Files changed:

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

@@ -1,1 +482,483 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
#[allow(missing_docs)] // documentation missing in model
    3         -
pub struct QueryIncompatibleOperation;
    4      2   
    5         -
impl ::aws_smithy_http_server::operation::OperationShape for QueryIncompatibleOperation {
           3  +
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.
           4  +
pub struct NoInputAndNoOutput;
           5  +
           6  +
impl ::aws_smithy_http_server::operation::OperationShape for NoInputAndNoOutput {
    6      7   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
    7      8   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
    8         -
            "aws.protocoltests.json10#QueryIncompatibleOperation",
           9  +
            "aws.protocoltests.json10#NoInputAndNoOutput",
    9     10   
            "aws.protocoltests.json10",
   10         -
            "QueryIncompatibleOperation",
          11  +
            "NoInputAndNoOutput",
   11     12   
        );
   12     13   
   13         -
    type Input = crate::input::QueryIncompatibleOperationInput;
   14         -
    type Output = crate::output::QueryIncompatibleOperationOutput;
          14  +
    type Input = crate::input::NoInputAndNoOutputInput;
          15  +
    type Output = crate::output::NoInputAndNoOutputOutput;
   15     16   
    type Error = std::convert::Infallible;
   16     17   
}
   17     18   
   18         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
   19         -
    for QueryIncompatibleOperation
   20         -
{
          19  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for NoInputAndNoOutput {
   21     20   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   22     21   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   23     22   
   24     23   
    fn request_fmt() -> Self::RequestFmt {
   25     24   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   26     25   
    }
   27     26   
   28     27   
    fn response_fmt() -> Self::ResponseFmt {
   29     28   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   30     29   
    }
   31     30   
}
   32     31   
   33         -
#[allow(missing_docs)] // documentation missing in model
   34         -
pub struct OperationWithRequiredMembersWithDefaults;
          32  +
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.
          33  +
pub struct NoInputAndOutput;
   35     34   
   36         -
impl ::aws_smithy_http_server::operation::OperationShape
   37         -
    for OperationWithRequiredMembersWithDefaults
   38         -
{
          35  +
impl ::aws_smithy_http_server::operation::OperationShape for NoInputAndOutput {
   39     36   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   40     37   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   41         -
            "aws.protocoltests.json10#OperationWithRequiredMembersWithDefaults",
          38  +
            "aws.protocoltests.json10#NoInputAndOutput",
   42     39   
            "aws.protocoltests.json10",
   43         -
            "OperationWithRequiredMembersWithDefaults",
          40  +
            "NoInputAndOutput",
   44     41   
        );
   45     42   
   46         -
    type Input = crate::input::OperationWithRequiredMembersWithDefaultsInput;
   47         -
    type Output = crate::output::OperationWithRequiredMembersWithDefaultsOutput;
          43  +
    type Input = crate::input::NoInputAndOutputInput;
          44  +
    type Output = crate::output::NoInputAndOutputOutput;
   48     45   
    type Error = std::convert::Infallible;
   49     46   
}
   50     47   
   51         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
   52         -
    for OperationWithRequiredMembersWithDefaults
   53         -
{
          48  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for NoInputAndOutput {
   54     49   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   55     50   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   56     51   
   57     52   
    fn request_fmt() -> Self::RequestFmt {
   58     53   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   59     54   
    }
   60     55   
   61     56   
    fn response_fmt() -> Self::ResponseFmt {
   62     57   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   63     58   
    }
   64     59   
}
   65     60   
   66         -
#[allow(missing_docs)] // documentation missing in model
   67         -
pub struct OperationWithNestedStructure;
          61  +
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.
          62  +
pub struct EmptyInputAndEmptyOutput;
   68     63   
   69         -
impl ::aws_smithy_http_server::operation::OperationShape for OperationWithNestedStructure {
          64  +
impl ::aws_smithy_http_server::operation::OperationShape for EmptyInputAndEmptyOutput {
   70     65   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   71     66   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   72         -
            "aws.protocoltests.json10#OperationWithNestedStructure",
          67  +
            "aws.protocoltests.json10#EmptyInputAndEmptyOutput",
   73     68   
            "aws.protocoltests.json10",
   74         -
            "OperationWithNestedStructure",
          69  +
            "EmptyInputAndEmptyOutput",
   75     70   
        );
   76     71   
   77         -
    type Input = crate::input::OperationWithNestedStructureInput;
   78         -
    type Output = crate::output::OperationWithNestedStructureOutput;
   79         -
    type Error = crate::error::OperationWithNestedStructureError;
          72  +
    type Input = crate::input::EmptyInputAndEmptyOutputInput;
          73  +
    type Output = crate::output::EmptyInputAndEmptyOutputOutput;
          74  +
    type Error = std::convert::Infallible;
   80     75   
}
   81     76   
   82     77   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
   83         -
    for OperationWithNestedStructure
          78  +
    for EmptyInputAndEmptyOutput
   84     79   
{
   85     80   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
   86     81   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
   87     82   
   88     83   
    fn request_fmt() -> Self::RequestFmt {
   89     84   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   90     85   
    }
   91     86   
   92     87   
    fn response_fmt() -> Self::ResponseFmt {
   93     88   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   94     89   
    }
   95     90   
}
   96     91   
   97     92   
#[allow(missing_docs)] // documentation missing in model
   98         -
pub struct OperationWithRequiredMembers;
          93  +
pub struct SimpleScalarProperties;
   99     94   
  100         -
impl ::aws_smithy_http_server::operation::OperationShape for OperationWithRequiredMembers {
          95  +
impl ::aws_smithy_http_server::operation::OperationShape for SimpleScalarProperties {
  101     96   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  102     97   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  103         -
            "aws.protocoltests.json10#OperationWithRequiredMembers",
          98  +
            "aws.protocoltests.json10#SimpleScalarProperties",
  104     99   
            "aws.protocoltests.json10",
  105         -
            "OperationWithRequiredMembers",
         100  +
            "SimpleScalarProperties",
  106    101   
        );
  107    102   
  108         -
    type Input = crate::input::OperationWithRequiredMembersInput;
  109         -
    type Output = crate::output::OperationWithRequiredMembersOutput;
         103  +
    type Input = crate::input::SimpleScalarPropertiesInput;
         104  +
    type Output = crate::output::SimpleScalarPropertiesOutput;
  110    105   
    type Error = std::convert::Infallible;
  111    106   
}
  112    107   
  113    108   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  114         -
    for OperationWithRequiredMembers
         109  +
    for SimpleScalarProperties
  115    110   
{
  116    111   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  117    112   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  118    113   
  119    114   
    fn request_fmt() -> Self::RequestFmt {
  120    115   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  121    116   
    }
  122    117   
  123    118   
    fn response_fmt() -> Self::ResponseFmt {
  124    119   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  125    120   
    }
  126    121   
}
  127    122   
  128         -
#[allow(missing_docs)] // documentation missing in model
  129         -
pub struct OperationWithDefaults;
         123  +
/// 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.
         124  +
pub struct GreetingWithErrors;
  130    125   
  131         -
impl ::aws_smithy_http_server::operation::OperationShape for OperationWithDefaults {
         126  +
impl ::aws_smithy_http_server::operation::OperationShape for GreetingWithErrors {
  132    127   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  133    128   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  134         -
            "aws.protocoltests.json10#OperationWithDefaults",
         129  +
            "aws.protocoltests.json10#GreetingWithErrors",
  135    130   
            "aws.protocoltests.json10",
  136         -
            "OperationWithDefaults",
         131  +
            "GreetingWithErrors",
  137    132   
        );
  138    133   
  139         -
    type Input = crate::input::OperationWithDefaultsInput;
  140         -
    type Output = crate::output::OperationWithDefaultsOutput;
  141         -
    type Error = crate::error::OperationWithDefaultsError;
         134  +
    type Input = crate::input::GreetingWithErrorsInput;
         135  +
    type Output = crate::output::GreetingWithErrorsOutput;
         136  +
    type Error = crate::error::GreetingWithErrorsError;
  142    137   
}
  143    138   
  144         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for OperationWithDefaults {
         139  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for GreetingWithErrors {
  145    140   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  146    141   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  147    142   
  148    143   
    fn request_fmt() -> Self::RequestFmt {
  149    144   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  150    145   
    }
  151    146   
  152    147   
    fn response_fmt() -> Self::ResponseFmt {
  153    148   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  154    149   
    }
  155    150   
}
  156    151   
  157         -
/// The example tests how servers must support requests containing a `Content-Type` header with parameters.
  158         -
pub struct ContentTypeParameters;
         152  +
/// This operation uses unions for inputs and outputs.
         153  +
pub struct JsonUnions;
  159    154   
  160         -
impl ::aws_smithy_http_server::operation::OperationShape for ContentTypeParameters {
         155  +
impl ::aws_smithy_http_server::operation::OperationShape for JsonUnions {
  161    156   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  162    157   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  163         -
            "aws.protocoltests.json10#ContentTypeParameters",
         158  +
            "aws.protocoltests.json10#JsonUnions",
  164    159   
            "aws.protocoltests.json10",
  165         -
            "ContentTypeParameters",
         160  +
            "JsonUnions",
  166    161   
        );
  167    162   
  168         -
    type Input = crate::input::ContentTypeParametersInput;
  169         -
    type Output = crate::output::ContentTypeParametersOutput;
  170         -
    type Error = std::convert::Infallible;
         163  +
    type Input = crate::input::JsonUnionsInput;
         164  +
    type Output = crate::output::JsonUnionsOutput;
         165  +
    type Error = crate::error::JsonUnionsError;
  171    166   
}
  172    167   
  173         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for ContentTypeParameters {
         168  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonUnions {
  174    169   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  175    170   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  176    171   
  177    172   
    fn request_fmt() -> Self::RequestFmt {
  178    173   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  179    174   
    }
  180    175   
  181    176   
    fn response_fmt() -> Self::ResponseFmt {
  182    177   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  183    178   
    }
  184    179   
}
  185    180   
  186    181   
#[allow(missing_docs)] // documentation missing in model
  187         -
pub struct PutWithContentEncoding;
         182  +
pub struct EndpointOperation;
  188    183   
  189         -
impl ::aws_smithy_http_server::operation::OperationShape for PutWithContentEncoding {
         184  +
impl ::aws_smithy_http_server::operation::OperationShape for EndpointOperation {
  190    185   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  191    186   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  192         -
            "aws.protocoltests.json10#PutWithContentEncoding",
         187  +
            "aws.protocoltests.json10#EndpointOperation",
  193    188   
            "aws.protocoltests.json10",
  194         -
            "PutWithContentEncoding",
         189  +
            "EndpointOperation",
  195    190   
        );
  196    191   
  197         -
    type Input = crate::input::PutWithContentEncodingInput;
  198         -
    type Output = crate::output::PutWithContentEncodingOutput;
         192  +
    type Input = crate::input::EndpointOperationInput;
         193  +
    type Output = crate::output::EndpointOperationOutput;
  199    194   
    type Error = std::convert::Infallible;
  200    195   
}
  201    196   
  202         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  203         -
    for PutWithContentEncoding
  204         -
{
         197  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for EndpointOperation {
  205    198   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  206    199   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  207    200   
  208    201   
    fn request_fmt() -> Self::RequestFmt {
  209    202   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  210    203   
    }
  211    204   
  212    205   
    fn response_fmt() -> Self::ResponseFmt {
  213    206   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  214    207   
    }
  215    208   
}
  216    209   
  217    210   
#[allow(missing_docs)] // documentation missing in model
  218         -
pub struct HostWithPathOperation;
         211  +
pub struct EndpointWithHostLabelOperation;
  219    212   
  220         -
impl ::aws_smithy_http_server::operation::OperationShape for HostWithPathOperation {
         213  +
impl ::aws_smithy_http_server::operation::OperationShape for EndpointWithHostLabelOperation {
  221    214   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  222    215   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  223         -
            "aws.protocoltests.json10#HostWithPathOperation",
         216  +
            "aws.protocoltests.json10#EndpointWithHostLabelOperation",
  224    217   
            "aws.protocoltests.json10",
  225         -
            "HostWithPathOperation",
         218  +
            "EndpointWithHostLabelOperation",
  226    219   
        );
  227    220   
  228         -
    type Input = crate::input::HostWithPathOperationInput;
  229         -
    type Output = crate::output::HostWithPathOperationOutput;
  230         -
    type Error = std::convert::Infallible;
         221  +
    type Input = crate::input::EndpointWithHostLabelOperationInput;
         222  +
    type Output = crate::output::EndpointWithHostLabelOperationOutput;
         223  +
    type Error = crate::error::EndpointWithHostLabelOperationError;
  231    224   
}
  232    225   
  233         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HostWithPathOperation {
         226  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
         227  +
    for EndpointWithHostLabelOperation
         228  +
{
  234    229   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  235    230   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  236    231   
  237    232   
    fn request_fmt() -> Self::RequestFmt {
  238    233   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  239    234   
    }
  240    235   
  241    236   
    fn response_fmt() -> Self::ResponseFmt {
  242    237   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  243    238   
    }
  244    239   
}
  245    240   
  246    241   
#[allow(missing_docs)] // documentation missing in model
  247         -
pub struct EndpointWithHostLabelOperation;
         242  +
pub struct HostWithPathOperation;
  248    243   
  249         -
impl ::aws_smithy_http_server::operation::OperationShape for EndpointWithHostLabelOperation {
         244  +
impl ::aws_smithy_http_server::operation::OperationShape for HostWithPathOperation {
  250    245   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  251    246   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  252         -
            "aws.protocoltests.json10#EndpointWithHostLabelOperation",
         247  +
            "aws.protocoltests.json10#HostWithPathOperation",
  253    248   
            "aws.protocoltests.json10",
  254         -
            "EndpointWithHostLabelOperation",
         249  +
            "HostWithPathOperation",
  255    250   
        );
  256    251   
  257         -
    type Input = crate::input::EndpointWithHostLabelOperationInput;
  258         -
    type Output = crate::output::EndpointWithHostLabelOperationOutput;
  259         -
    type Error = crate::error::EndpointWithHostLabelOperationError;
         252  +
    type Input = crate::input::HostWithPathOperationInput;
         253  +
    type Output = crate::output::HostWithPathOperationOutput;
         254  +
    type Error = std::convert::Infallible;
  260    255   
}
  261    256   
  262         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  263         -
    for EndpointWithHostLabelOperation
  264         -
{
         257  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for HostWithPathOperation {
  265    258   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  266    259   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  267    260   
  268    261   
    fn request_fmt() -> Self::RequestFmt {
  269    262   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  270    263   
    }
  271    264   
  272    265   
    fn response_fmt() -> Self::ResponseFmt {
  273    266   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  274    267   
    }
  275    268   
}
  276    269   
  277    270   
#[allow(missing_docs)] // documentation missing in model
  278         -
pub struct EndpointOperation;
         271  +
pub struct PutWithContentEncoding;
  279    272   
  280         -
impl ::aws_smithy_http_server::operation::OperationShape for EndpointOperation {
         273  +
impl ::aws_smithy_http_server::operation::OperationShape for PutWithContentEncoding {
  281    274   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  282    275   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  283         -
            "aws.protocoltests.json10#EndpointOperation",
         276  +
            "aws.protocoltests.json10#PutWithContentEncoding",
  284    277   
            "aws.protocoltests.json10",
  285         -
            "EndpointOperation",
         278  +
            "PutWithContentEncoding",
  286    279   
        );
  287    280   
  288         -
    type Input = crate::input::EndpointOperationInput;
  289         -
    type Output = crate::output::EndpointOperationOutput;
         281  +
    type Input = crate::input::PutWithContentEncodingInput;
         282  +
    type Output = crate::output::PutWithContentEncodingOutput;
  290    283   
    type Error = std::convert::Infallible;
  291    284   
}
  292    285   
  293         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for EndpointOperation {
         286  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
         287  +
    for PutWithContentEncoding
         288  +
{
  294    289   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  295    290   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  296    291   
  297    292   
    fn request_fmt() -> Self::RequestFmt {
  298    293   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  299    294   
    }
  300    295   
  301    296   
    fn response_fmt() -> Self::ResponseFmt {
  302    297   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  303    298   
    }
  304    299   
}
  305    300   
  306         -
/// This operation uses unions for inputs and outputs.
  307         -
pub struct JsonUnions;
         301  +
/// The example tests how servers must support requests containing a `Content-Type` header with parameters.
         302  +
pub struct ContentTypeParameters;
  308    303   
  309         -
impl ::aws_smithy_http_server::operation::OperationShape for JsonUnions {
         304  +
impl ::aws_smithy_http_server::operation::OperationShape for ContentTypeParameters {
  310    305   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  311    306   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  312         -
            "aws.protocoltests.json10#JsonUnions",
         307  +
            "aws.protocoltests.json10#ContentTypeParameters",
  313    308   
            "aws.protocoltests.json10",
  314         -
            "JsonUnions",
         309  +
            "ContentTypeParameters",
  315    310   
        );
  316    311   
  317         -
    type Input = crate::input::JsonUnionsInput;
  318         -
    type Output = crate::output::JsonUnionsOutput;
  319         -
    type Error = crate::error::JsonUnionsError;
         312  +
    type Input = crate::input::ContentTypeParametersInput;
         313  +
    type Output = crate::output::ContentTypeParametersOutput;
         314  +
    type Error = std::convert::Infallible;
  320    315   
}
  321    316   
  322         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for JsonUnions {
         317  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for ContentTypeParameters {
  323    318   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  324    319   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  325    320   
  326    321   
    fn request_fmt() -> Self::RequestFmt {
  327    322   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  328    323   
    }
  329    324   
  330    325   
    fn response_fmt() -> Self::ResponseFmt {
  331    326   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  332    327   
    }
  333    328   
}
  334    329   
  335         -
/// 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.
  336         -
pub struct GreetingWithErrors;
         330  +
#[allow(missing_docs)] // documentation missing in model
         331  +
pub struct OperationWithDefaults;
  337    332   
  338         -
impl ::aws_smithy_http_server::operation::OperationShape for GreetingWithErrors {
         333  +
impl ::aws_smithy_http_server::operation::OperationShape for OperationWithDefaults {
  339    334   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  340    335   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  341         -
            "aws.protocoltests.json10#GreetingWithErrors",
         336  +
            "aws.protocoltests.json10#OperationWithDefaults",
  342    337   
            "aws.protocoltests.json10",
  343         -
            "GreetingWithErrors",
         338  +
            "OperationWithDefaults",
  344    339   
        );
  345    340   
  346         -
    type Input = crate::input::GreetingWithErrorsInput;
  347         -
    type Output = crate::output::GreetingWithErrorsOutput;
  348         -
    type Error = crate::error::GreetingWithErrorsError;
         341  +
    type Input = crate::input::OperationWithDefaultsInput;
         342  +
    type Output = crate::output::OperationWithDefaultsOutput;
         343  +
    type Error = crate::error::OperationWithDefaultsError;
  349    344   
}
  350    345   
  351         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for GreetingWithErrors {
         346  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for OperationWithDefaults {
  352    347   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  353    348   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  354    349   
  355    350   
    fn request_fmt() -> Self::RequestFmt {
  356    351   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  357    352   
    }
  358    353   
  359    354   
    fn response_fmt() -> Self::ResponseFmt {
  360    355   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  361    356   
    }
  362    357   
}
  363    358   
  364    359   
#[allow(missing_docs)] // documentation missing in model
  365         -
pub struct SimpleScalarProperties;
         360  +
pub struct OperationWithRequiredMembers;
  366    361   
  367         -
impl ::aws_smithy_http_server::operation::OperationShape for SimpleScalarProperties {
         362  +
impl ::aws_smithy_http_server::operation::OperationShape for OperationWithRequiredMembers {
  368    363   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  369    364   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  370         -
            "aws.protocoltests.json10#SimpleScalarProperties",
         365  +
            "aws.protocoltests.json10#OperationWithRequiredMembers",
  371    366   
            "aws.protocoltests.json10",
  372         -
            "SimpleScalarProperties",
         367  +
            "OperationWithRequiredMembers",
  373    368   
        );
  374    369   
  375         -
    type Input = crate::input::SimpleScalarPropertiesInput;
  376         -
    type Output = crate::output::SimpleScalarPropertiesOutput;
         370  +
    type Input = crate::input::OperationWithRequiredMembersInput;
         371  +
    type Output = crate::output::OperationWithRequiredMembersOutput;
  377    372   
    type Error = std::convert::Infallible;
  378    373   
}
  379    374   
  380    375   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  381         -
    for SimpleScalarProperties
         376  +
    for OperationWithRequiredMembers
  382    377   
{
  383    378   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  384    379   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  385    380   
  386    381   
    fn request_fmt() -> Self::RequestFmt {
  387    382   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  388    383   
    }
  389    384   
  390    385   
    fn response_fmt() -> Self::ResponseFmt {
  391    386   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  392    387   
    }
  393    388   
}
  394    389   
  395         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has an empty input and empty output structure that reuses the same shape. While this should be rare, code generators must support this.
  396         -
pub struct EmptyInputAndEmptyOutput;
         390  +
#[allow(missing_docs)] // documentation missing in model
         391  +
pub struct OperationWithNestedStructure;
  397    392   
  398         -
impl ::aws_smithy_http_server::operation::OperationShape for EmptyInputAndEmptyOutput {
         393  +
impl ::aws_smithy_http_server::operation::OperationShape for OperationWithNestedStructure {
  399    394   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  400    395   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  401         -
            "aws.protocoltests.json10#EmptyInputAndEmptyOutput",
         396  +
            "aws.protocoltests.json10#OperationWithNestedStructure",
  402    397   
            "aws.protocoltests.json10",
  403         -
            "EmptyInputAndEmptyOutput",
         398  +
            "OperationWithNestedStructure",
  404    399   
        );
  405    400   
  406         -
    type Input = crate::input::EmptyInputAndEmptyOutputInput;
  407         -
    type Output = crate::output::EmptyInputAndEmptyOutputOutput;
  408         -
    type Error = std::convert::Infallible;
         401  +
    type Input = crate::input::OperationWithNestedStructureInput;
         402  +
    type Output = crate::output::OperationWithNestedStructureOutput;
         403  +
    type Error = crate::error::OperationWithNestedStructureError;
  409    404   
}
  410    405   
  411    406   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
  412         -
    for EmptyInputAndEmptyOutput
         407  +
    for OperationWithNestedStructure
  413    408   
{
  414    409   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  415    410   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  416    411   
  417    412   
    fn request_fmt() -> Self::RequestFmt {
  418    413   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  419    414   
    }
  420    415   
  421    416   
    fn response_fmt() -> Self::ResponseFmt {
  422    417   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  423    418   
    }
  424    419   
}
  425    420   
  426         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input and the output is empty. While this should be rare, code generators must support this.
  427         -
pub struct NoInputAndOutput;
         421  +
#[allow(missing_docs)] // documentation missing in model
         422  +
pub struct OperationWithRequiredMembersWithDefaults;
  428    423   
  429         -
impl ::aws_smithy_http_server::operation::OperationShape for NoInputAndOutput {
         424  +
impl ::aws_smithy_http_server::operation::OperationShape
         425  +
    for OperationWithRequiredMembersWithDefaults
         426  +
{
  430    427   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  431    428   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  432         -
            "aws.protocoltests.json10#NoInputAndOutput",
         429  +
            "aws.protocoltests.json10#OperationWithRequiredMembersWithDefaults",
  433    430   
            "aws.protocoltests.json10",
  434         -
            "NoInputAndOutput",
         431  +
            "OperationWithRequiredMembersWithDefaults",
  435    432   
        );
  436    433   
  437         -
    type Input = crate::input::NoInputAndOutputInput;
  438         -
    type Output = crate::output::NoInputAndOutputOutput;
         434  +
    type Input = crate::input::OperationWithRequiredMembersWithDefaultsInput;
         435  +
    type Output = crate::output::OperationWithRequiredMembersWithDefaultsOutput;
  439    436   
    type Error = std::convert::Infallible;
  440    437   
}
  441    438   
  442         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for NoInputAndOutput {
         439  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
         440  +
    for OperationWithRequiredMembersWithDefaults
         441  +
{
  443    442   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  444    443   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  445    444   
  446    445   
    fn request_fmt() -> Self::RequestFmt {
  447    446   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  448    447   
    }
  449    448   
  450    449   
    fn response_fmt() -> Self::ResponseFmt {
  451    450   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  452    451   
    }
  453    452   
}
  454    453   
  455         -
/// The example tests how requests and responses are serialized when there's no request or response payload because the operation has no input or output. While this should be rare, code generators must support this.
  456         -
pub struct NoInputAndNoOutput;
         454  +
#[allow(missing_docs)] // documentation missing in model
         455  +
pub struct QueryIncompatibleOperation;
  457    456   
  458         -
impl ::aws_smithy_http_server::operation::OperationShape for NoInputAndNoOutput {
         457  +
impl ::aws_smithy_http_server::operation::OperationShape for QueryIncompatibleOperation {
  459    458   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  460    459   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  461         -
            "aws.protocoltests.json10#NoInputAndNoOutput",
         460  +
            "aws.protocoltests.json10#QueryIncompatibleOperation",
  462    461   
            "aws.protocoltests.json10",
  463         -
            "NoInputAndNoOutput",
         462  +
            "QueryIncompatibleOperation",
  464    463   
        );
  465    464   
  466         -
    type Input = crate::input::NoInputAndNoOutputInput;
  467         -
    type Output = crate::output::NoInputAndNoOutputOutput;
         465  +
    type Input = crate::input::QueryIncompatibleOperationInput;
         466  +
    type Output = crate::output::QueryIncompatibleOperationOutput;
  468    467   
    type Error = std::convert::Infallible;
  469    468   
}
  470    469   
  471         -
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for NoInputAndNoOutput {
         470  +
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity
         471  +
    for QueryIncompatibleOperation
         472  +
{
  472    473   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultRequestFmt;
  473    474   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::DefaultResponseFmt;
  474    475   
  475    476   
    fn request_fmt() -> Self::RequestFmt {
  476    477   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  477    478   
    }
  478    479   
  479    480   
    fn response_fmt() -> Self::ResponseFmt {
  480    481   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  481    482   
    }

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

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