Server Test

Server Test

rev. d06a46cae0f385cdae37a9f8264db3469a090ab5 (ignoring whitespace)

Files changed:

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

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

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

@@ -0,1 +0,1530 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
#[allow(missing_docs)] // documentation missing in model
           3  +
#[derive(
           4  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
           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()
          11  +
    }
          12  +
}
          13  +
          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
          64  +
    }
          65  +
    #[allow(missing_docs)] // documentation missing in model
          66  +
    pub fn required_blob(&self) -> &::aws_smithy_types::Blob {
          67  +
        &self.required_blob
          68  +
    }
          69  +
    #[allow(missing_docs)] // documentation missing in model
          70  +
    pub fn required_byte(&self) -> i8 {
          71  +
        self.required_byte
          72  +
    }
          73  +
    #[allow(missing_docs)] // documentation missing in model
          74  +
    pub fn required_short(&self) -> i16 {
          75  +
        self.required_short
          76  +
    }
          77  +
    #[allow(missing_docs)] // documentation missing in model
          78  +
    pub fn required_integer(&self) -> i32 {
          79  +
        self.required_integer
          80  +
    }
          81  +
    #[allow(missing_docs)] // documentation missing in model
          82  +
    pub fn required_long(&self) -> i64 {
          83  +
        self.required_long
          84  +
    }
          85  +
    #[allow(missing_docs)] // documentation missing in model
          86  +
    pub fn required_float(&self) -> f32 {
          87  +
        self.required_float
          88  +
    }
          89  +
    #[allow(missing_docs)] // documentation missing in model
          90  +
    pub fn required_double(&self) -> f64 {
          91  +
        self.required_double
          92  +
    }
          93  +
    #[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
          98  +
    }
          99  +
    #[allow(missing_docs)] // documentation missing in model
         100  +
    pub fn required_enum(&self) -> &crate::model::RequiredEnum {
         101  +
        &self.required_enum
         102  +
    }
         103  +
    #[allow(missing_docs)] // documentation missing in model
         104  +
    pub fn required_int_enum(&self) -> i32 {
         105  +
        self.required_int_enum
         106  +
    }
         107  +
}
         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()
         113  +
    }
         114  +
}
         115  +
         116  +
#[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>,
         125  +
}
         126  +
impl OperationWithNestedStructureOutput {
         127  +
    #[allow(missing_docs)] // documentation missing in model
         128  +
    pub fn dialog(&self) -> &crate::model::Dialog {
         129  +
        &self.dialog
         130  +
    }
         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()
         135  +
    }
         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
         141  +
    }
         142  +
}
         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()
         147  +
    }
         148  +
}
         149  +
         150  +
#[allow(missing_docs)] // documentation missing in model
         151  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
         152  +
pub struct OperationWithRequiredMembersOutput {
         153  +
    #[allow(missing_docs)] // documentation missing in model
         154  +
    pub required_string: ::std::string::String,
         155  +
    #[allow(missing_docs)] // documentation missing in model
         156  +
    pub required_boolean: bool,
         157  +
    #[allow(missing_docs)] // documentation missing in model
         158  +
    pub required_list: ::std::vec::Vec<::std::string::String>,
         159  +
    #[allow(missing_docs)] // documentation missing in model
         160  +
    pub required_timestamp: ::aws_smithy_types::DateTime,
         161  +
    #[allow(missing_docs)] // documentation missing in model
         162  +
    pub required_blob: ::aws_smithy_types::Blob,
         163  +
    #[allow(missing_docs)] // documentation missing in model
         164  +
    pub required_byte: i8,
         165  +
    #[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,
         256  +
    #[allow(missing_docs)] // documentation missing in model
         257  +
    pub default_null_document: ::std::option::Option<::aws_smithy_types::Document>,
         258  +
    #[allow(missing_docs)] // documentation missing in model
         259  +
    pub default_timestamp: ::aws_smithy_types::DateTime,
         260  +
    #[allow(missing_docs)] // documentation missing in model
         261  +
    pub default_blob: ::aws_smithy_types::Blob,
         262  +
    #[allow(missing_docs)] // documentation missing in model
         263  +
    pub default_byte: i8,
         264  +
    #[allow(missing_docs)] // documentation missing in model
         265  +
    pub default_short: i16,
         266  +
    #[allow(missing_docs)] // documentation missing in model
         267  +
    pub default_integer: i32,
         268  +
    #[allow(missing_docs)] // documentation missing in model
         269  +
    pub default_long: i64,
         270  +
    #[allow(missing_docs)] // documentation missing in model
         271  +
    pub default_float: f32,
         272  +
    #[allow(missing_docs)] // documentation missing in model
         273  +
    pub default_double: f64,
         274  +
    #[allow(missing_docs)] // documentation missing in model
         275  +
    pub default_map: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         276  +
    #[allow(missing_docs)] // documentation missing in model
         277  +
    pub default_enum: crate::model::TestEnum,
         278  +
    #[allow(missing_docs)] // documentation missing in model
         279  +
    pub default_int_enum: i32,
         280  +
    #[allow(missing_docs)] // documentation missing in model
         281  +
    pub empty_string: ::std::string::String,
         282  +
    #[allow(missing_docs)] // documentation missing in model
         283  +
    pub false_boolean: bool,
         284  +
    #[allow(missing_docs)] // documentation missing in model
         285  +
    pub empty_blob: ::aws_smithy_types::Blob,
         286  +
    #[allow(missing_docs)] // documentation missing in model
         287  +
    pub zero_byte: i8,
         288  +
    #[allow(missing_docs)] // documentation missing in model
         289  +
    pub zero_short: i16,
         290  +
    #[allow(missing_docs)] // documentation missing in model
         291  +
    pub zero_integer: i32,
         292  +
    #[allow(missing_docs)] // documentation missing in model
         293  +
    pub zero_long: i64,
         294  +
    #[allow(missing_docs)] // documentation missing in model
         295  +
    pub zero_float: f32,
         296  +
    #[allow(missing_docs)] // documentation missing in model
         297  +
    pub zero_double: f64,
         298  +
}
         299  +
impl OperationWithDefaultsOutput {
         300  +
    #[allow(missing_docs)] // documentation missing in model
         301  +
    pub fn default_string(&self) -> &str {
         302  +
        use std::ops::Deref;
         303  +
        self.default_string.deref()
         304  +
    }
         305  +
    #[allow(missing_docs)] // documentation missing in model
         306  +
    pub fn default_boolean(&self) -> bool {
         307  +
        self.default_boolean
         308  +
    }
         309  +
    #[allow(missing_docs)] // documentation missing in model
         310  +
    pub fn default_list(&self) -> &[::std::string::String] {
         311  +
        use std::ops::Deref;
         312  +
        self.default_list.deref()
         313  +
    }
         314  +
    #[allow(missing_docs)] // documentation missing in model
         315  +
    pub fn default_document_map(&self) -> &::aws_smithy_types::Document {
         316  +
        &self.default_document_map
         317  +
    }
         318  +
    #[allow(missing_docs)] // documentation missing in model
         319  +
    pub fn default_document_string(&self) -> &::aws_smithy_types::Document {
         320  +
        &self.default_document_string
         321  +
    }
         322  +
    #[allow(missing_docs)] // documentation missing in model
         323  +
    pub fn default_document_boolean(&self) -> &::aws_smithy_types::Document {
         324  +
        &self.default_document_boolean
         325  +
    }
         326  +
    #[allow(missing_docs)] // documentation missing in model
         327  +
    pub fn default_document_list(&self) -> &::aws_smithy_types::Document {
         328  +
        &self.default_document_list
         329  +
    }
         330  +
    #[allow(missing_docs)] // documentation missing in model
         331  +
    pub fn default_null_document(&self) -> ::std::option::Option<&::aws_smithy_types::Document> {
         332  +
        self.default_null_document.as_ref()
         333  +
    }
         334  +
    #[allow(missing_docs)] // documentation missing in model
         335  +
    pub fn default_timestamp(&self) -> &::aws_smithy_types::DateTime {
         336  +
        &self.default_timestamp
         337  +
    }
         338  +
    #[allow(missing_docs)] // documentation missing in model
         339  +
    pub fn default_blob(&self) -> &::aws_smithy_types::Blob {
         340  +
        &self.default_blob
         341  +
    }
         342  +
    #[allow(missing_docs)] // documentation missing in model
         343  +
    pub fn default_byte(&self) -> i8 {
         344  +
        self.default_byte
         345  +
    }
         346  +
    #[allow(missing_docs)] // documentation missing in model
         347  +
    pub fn default_short(&self) -> i16 {
         348  +
        self.default_short
         349  +
    }
         350  +
    #[allow(missing_docs)] // documentation missing in model
         351  +
    pub fn default_integer(&self) -> i32 {
         352  +
        self.default_integer
         353  +
    }
         354  +
    #[allow(missing_docs)] // documentation missing in model
         355  +
    pub fn default_long(&self) -> i64 {
         356  +
        self.default_long
         357  +
    }
         358  +
    #[allow(missing_docs)] // documentation missing in model
         359  +
    pub fn default_float(&self) -> f32 {
         360  +
        self.default_float
         361  +
    }
         362  +
    #[allow(missing_docs)] // documentation missing in model
         363  +
    pub fn default_double(&self) -> f64 {
         364  +
        self.default_double
         365  +
    }
         366  +
    #[allow(missing_docs)] // documentation missing in model
         367  +
    pub fn default_map(
         368  +
        &self,
         369  +
    ) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
         370  +
        &self.default_map
         371  +
    }
         372  +
    #[allow(missing_docs)] // documentation missing in model
         373  +
    pub fn default_enum(&self) -> &crate::model::TestEnum {
         374  +
        &self.default_enum
         375  +
    }
         376  +
    #[allow(missing_docs)] // documentation missing in model
         377  +
    pub fn default_int_enum(&self) -> i32 {
         378  +
        self.default_int_enum
         379  +
    }
         380  +
    #[allow(missing_docs)] // documentation missing in model
         381  +
    pub fn empty_string(&self) -> &str {
         382  +
        use std::ops::Deref;
         383  +
        self.empty_string.deref()
         384  +
    }
         385  +
    #[allow(missing_docs)] // documentation missing in model
         386  +
    pub fn false_boolean(&self) -> bool {
         387  +
        self.false_boolean
         388  +
    }
         389  +
    #[allow(missing_docs)] // documentation missing in model
         390  +
    pub fn empty_blob(&self) -> &::aws_smithy_types::Blob {
         391  +
        &self.empty_blob
         392  +
    }
         393  +
    #[allow(missing_docs)] // documentation missing in model
         394  +
    pub fn zero_byte(&self) -> i8 {
         395  +
        self.zero_byte
         396  +
    }
         397  +
    #[allow(missing_docs)] // documentation missing in model
         398  +
    pub fn zero_short(&self) -> i16 {
         399  +
        self.zero_short
         400  +
    }
         401  +
    #[allow(missing_docs)] // documentation missing in model
         402  +
    pub fn zero_integer(&self) -> i32 {
         403  +
        self.zero_integer
         404  +
    }
         405  +
    #[allow(missing_docs)] // documentation missing in model
         406  +
    pub fn zero_long(&self) -> i64 {
         407  +
        self.zero_long
         408  +
    }
         409  +
    #[allow(missing_docs)] // documentation missing in model
         410  +
    pub fn zero_float(&self) -> f32 {
         411  +
        self.zero_float
         412  +
    }
         413  +
    #[allow(missing_docs)] // documentation missing in model
         414  +
    pub fn zero_double(&self) -> f64 {
         415  +
        self.zero_double
         416  +
    }
         417  +
}
         418  +
impl OperationWithDefaultsOutput {
         419  +
    /// Creates a new builder-style object to manufacture [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
         420  +
    pub fn builder() -> crate::output::operation_with_defaults_output::Builder {
         421  +
        crate::output::operation_with_defaults_output::Builder::default()
         422  +
    }
         423  +
}
         424  +
         425  +
#[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  +
    }
         447  +
}
         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()
         458  +
    }
         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()
         470  +
    }
         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()
         482  +
    }
         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()
         495  +
    }
         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()
         501  +
    }
         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  +
    #[allow(missing_docs)] // documentation missing in model
         510  +
    pub greeting: ::std::option::Option<::std::string::String>,
         511  +
}
         512  +
impl GreetingWithErrorsOutput {
         513  +
    #[allow(missing_docs)] // documentation missing in model
         514  +
    pub fn greeting(&self) -> ::std::option::Option<&str> {
         515  +
        self.greeting.as_deref()
         516  +
    }
         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()
         522  +
    }
         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  +
    #[allow(missing_docs)] // documentation missing in model
         529  +
    pub float_value: ::std::option::Option<f32>,
         530  +
    #[allow(missing_docs)] // documentation missing in model
         531  +
    pub double_value: ::std::option::Option<f64>,
         532  +
}
         533  +
impl SimpleScalarPropertiesOutput {
         534  +
    #[allow(missing_docs)] // documentation missing in model
         535  +
    pub fn float_value(&self) -> ::std::option::Option<f32> {
         536  +
        self.float_value
         537  +
    }
         538  +
    #[allow(missing_docs)] // documentation missing in model
         539  +
    pub fn double_value(&self) -> ::std::option::Option<f64> {
         540  +
        self.double_value
         541  +
    }
         542  +
}
         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()
         547  +
    }
         548  +
}
         549  +
         550  +
#[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()
         559  +
    }
         560  +
}
         561  +
         562  +
#[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()
         571  +
    }
         572  +
}
         573  +
         574  +
#[allow(missing_docs)] // documentation missing in model
         575  +
#[derive(
         576  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
         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()
         583  +
    }
         584  +
}
         585  +
/// See [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
         586  +
pub mod query_incompatible_operation_output {
         587  +
         588  +
    impl ::std::convert::From<Builder> for crate::output::QueryIncompatibleOperationOutput {
         589  +
        fn from(builder: Builder) -> Self {
         590  +
            builder.build()
         591  +
        }
         592  +
    }
         593  +
    /// A builder for [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
         594  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         595  +
    pub struct Builder {}
         596  +
    impl Builder {
         597  +
        /// Consumes the builder and constructs a [`QueryIncompatibleOperationOutput`](crate::output::QueryIncompatibleOperationOutput).
         598  +
        pub fn build(self) -> crate::output::QueryIncompatibleOperationOutput {
         599  +
            self.build_enforcing_all_constraints()
         600  +
        }
         601  +
        fn build_enforcing_all_constraints(
         602  +
            self,
         603  +
        ) -> crate::output::QueryIncompatibleOperationOutput {
         604  +
            crate::output::QueryIncompatibleOperationOutput {}
         605  +
        }
         606  +
    }
         607  +
}
         608  +
/// See [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
         609  +
pub mod operation_with_required_members_with_defaults_output {
         610  +
         611  +
    impl ::std::convert::From<Builder>
         612  +
        for crate::output::OperationWithRequiredMembersWithDefaultsOutput
         613  +
    {
         614  +
        fn from(builder: Builder) -> Self {
         615  +
            builder.build()
         616  +
        }
         617  +
    }
         618  +
    /// A builder for [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
         619  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
         620  +
    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>,
         637  +
    }
         638  +
    impl Builder {
         639  +
        #[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);
         642  +
            self
         643  +
        }
         644  +
        #[allow(missing_docs)] // documentation missing in model
         645  +
        pub fn required_boolean(mut self, input: bool) -> Self {
         646  +
            self.required_boolean = Some(input);
         647  +
            self
         648  +
        }
         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  +
        }
         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
         678  +
        }
         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  +
        #[allow(missing_docs)] // documentation missing in model
         685  +
        pub fn required_float(mut self, input: f32) -> Self {
         686  +
            self.required_float = Some(input);
         687  +
            self
         688  +
        }
         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
         693  +
        }
         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
         701  +
        }
         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
         706  +
        }
         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);
         710  +
            self
         711  +
        }
         712  +
        /// Consumes the builder and constructs a [`OperationWithRequiredMembersWithDefaultsOutput`](crate::output::OperationWithRequiredMembersWithDefaultsOutput).
         713  +
        pub fn build(self) -> crate::output::OperationWithRequiredMembersWithDefaultsOutput {
         714  +
            self.build_enforcing_all_constraints()
         715  +
        }
         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),
         742  +
            }
         743  +
        }
         744  +
    }
         745  +
}
         746  +
/// See [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
         747  +
pub mod operation_with_nested_structure_output {
         748  +
         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,
         756  +
    }
         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  +
            }
         762  +
        }
         763  +
    }
         764  +
    impl ::std::error::Error for ConstraintViolation {}
         765  +
    impl ::std::convert::TryFrom<Builder> for crate::output::OperationWithNestedStructureOutput {
         766  +
        type Error = ConstraintViolation;
         767  +
         768  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
         769  +
            builder.build()
         770  +
        }
         771  +
    }
         772  +
    /// A builder for [`OperationWithNestedStructureOutput`](crate::output::OperationWithNestedStructureOutput).
         773  +
    #[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  +
    }
         781  +
    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  +
        {
         808  +
            self.build_enforcing_all_constraints()
         809  +
        }
         810  +
        fn build_enforcing_all_constraints(
         811  +
            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  +
            })
         819  +
        }
         820  +
    }
         821  +
}
         822  +
/// See [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
         823  +
pub mod operation_with_required_members_output {
         824  +
         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,
         854  +
    }
         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  +
            }
         871  +
        }
         872  +
    }
         873  +
    impl ::std::error::Error for ConstraintViolation {}
         874  +
    impl ::std::convert::TryFrom<Builder> for crate::output::OperationWithRequiredMembersOutput {
         875  +
        type Error = ConstraintViolation;
         876  +
         877  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
         878  +
            builder.build()
         879  +
        }
         880  +
    }
         881  +
    /// A builder for [`OperationWithRequiredMembersOutput`](crate::output::OperationWithRequiredMembersOutput).
         882  +
    #[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  +
    }
         899  +
    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
         949  +
        }
         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
         954  +
        }
         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
         962  +
        }
         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  +
        {
         972  +
            self.build_enforcing_all_constraints()
         973  +
        }
         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  +
            })
        1016  +
        }
        1017  +
    }
        1018  +
}
        1019  +
/// See [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
        1020  +
pub mod operation_with_defaults_output {
        1021  +
        1022  +
    impl ::std::convert::From<Builder> for crate::output::OperationWithDefaultsOutput {
        1023  +
        fn from(builder: Builder) -> Self {
        1024  +
            builder.build()
        1025  +
        }
        1026  +
    }
        1027  +
    /// A builder for [`OperationWithDefaultsOutput`](crate::output::OperationWithDefaultsOutput).
        1028  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1029  +
    pub struct Builder {
        1030  +
        pub(crate) default_string: ::std::option::Option<::std::string::String>,
        1031  +
        pub(crate) default_boolean: ::std::option::Option<bool>,
        1032  +
        pub(crate) default_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        1033  +
        pub(crate) default_document_map: ::std::option::Option<::aws_smithy_types::Document>,
        1034  +
        pub(crate) default_document_string: ::std::option::Option<::aws_smithy_types::Document>,
        1035  +
        pub(crate) default_document_boolean: ::std::option::Option<::aws_smithy_types::Document>,
        1036  +
        pub(crate) default_document_list: ::std::option::Option<::aws_smithy_types::Document>,
        1037  +
        pub(crate) default_null_document: ::std::option::Option<::aws_smithy_types::Document>,
        1038  +
        pub(crate) default_timestamp: ::std::option::Option<::aws_smithy_types::DateTime>,
        1039  +
        pub(crate) default_blob: ::std::option::Option<::aws_smithy_types::Blob>,
        1040  +
        pub(crate) default_byte: ::std::option::Option<i8>,
        1041  +
        pub(crate) default_short: ::std::option::Option<i16>,
        1042  +
        pub(crate) default_integer: ::std::option::Option<i32>,
        1043  +
        pub(crate) default_long: ::std::option::Option<i64>,
        1044  +
        pub(crate) default_float: ::std::option::Option<f32>,
        1045  +
        pub(crate) default_double: ::std::option::Option<f64>,
        1046  +
        pub(crate) default_map: ::std::option::Option<
        1047  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1048  +
        >,
        1049  +
        pub(crate) default_enum: ::std::option::Option<crate::model::TestEnum>,
        1050  +
        pub(crate) default_int_enum: ::std::option::Option<i32>,
        1051  +
        pub(crate) empty_string: ::std::option::Option<::std::string::String>,
        1052  +
        pub(crate) false_boolean: ::std::option::Option<bool>,
        1053  +
        pub(crate) empty_blob: ::std::option::Option<::aws_smithy_types::Blob>,
        1054  +
        pub(crate) zero_byte: ::std::option::Option<i8>,
        1055  +
        pub(crate) zero_short: ::std::option::Option<i16>,
        1056  +
        pub(crate) zero_integer: ::std::option::Option<i32>,
        1057  +
        pub(crate) zero_long: ::std::option::Option<i64>,
        1058  +
        pub(crate) zero_float: ::std::option::Option<f32>,
        1059  +
        pub(crate) zero_double: ::std::option::Option<f64>,
        1060  +
    }
        1061  +
    impl Builder {
        1062  +
        #[allow(missing_docs)] // documentation missing in model
        1063  +
        pub fn default_string(mut self, input: ::std::string::String) -> Self {
        1064  +
            self.default_string = Some(input);
        1065  +
            self
        1066  +
        }
        1067  +
        #[allow(missing_docs)] // documentation missing in model
        1068  +
        pub fn default_boolean(mut self, input: bool) -> Self {
        1069  +
            self.default_boolean = Some(input);
        1070  +
            self
        1071  +
        }
        1072  +
        #[allow(missing_docs)] // documentation missing in model
        1073  +
        pub fn default_list(mut self, input: ::std::vec::Vec<::std::string::String>) -> Self {
        1074  +
            self.default_list = Some(input);
        1075  +
            self
        1076  +
        }
        1077  +
        #[allow(missing_docs)] // documentation missing in model
        1078  +
        pub fn default_document_map(mut self, input: ::aws_smithy_types::Document) -> Self {
        1079  +
            self.default_document_map = Some(input);
        1080  +
            self
        1081  +
        }
        1082  +
        #[allow(missing_docs)] // documentation missing in model
        1083  +
        pub fn default_document_string(mut self, input: ::aws_smithy_types::Document) -> Self {
        1084  +
            self.default_document_string = Some(input);
        1085  +
            self
        1086  +
        }
        1087  +
        #[allow(missing_docs)] // documentation missing in model
        1088  +
        pub fn default_document_boolean(mut self, input: ::aws_smithy_types::Document) -> Self {
        1089  +
            self.default_document_boolean = Some(input);
        1090  +
            self
        1091  +
        }
        1092  +
        #[allow(missing_docs)] // documentation missing in model
        1093  +
        pub fn default_document_list(mut self, input: ::aws_smithy_types::Document) -> Self {
        1094  +
            self.default_document_list = Some(input);
        1095  +
            self
        1096  +
        }
        1097  +
        #[allow(missing_docs)] // documentation missing in model
        1098  +
        pub fn default_null_document(
        1099  +
            mut self,
        1100  +
            input: ::std::option::Option<::aws_smithy_types::Document>,
        1101  +
        ) -> Self {
        1102  +
            self.default_null_document = input;
        1103  +
            self
        1104  +
        }
        1105  +
        #[allow(missing_docs)] // documentation missing in model
        1106  +
        pub fn default_timestamp(mut self, input: ::aws_smithy_types::DateTime) -> Self {
        1107  +
            self.default_timestamp = Some(input);
        1108  +
            self
        1109  +
        }
        1110  +
        #[allow(missing_docs)] // documentation missing in model
        1111  +
        pub fn default_blob(mut self, input: ::aws_smithy_types::Blob) -> Self {
        1112  +
            self.default_blob = Some(input);
        1113  +
            self
        1114  +
        }
        1115  +
        #[allow(missing_docs)] // documentation missing in model
        1116  +
        pub fn default_byte(mut self, input: i8) -> Self {
        1117  +
            self.default_byte = Some(input);
        1118  +
            self
        1119  +
        }
        1120  +
        #[allow(missing_docs)] // documentation missing in model
        1121  +
        pub fn default_short(mut self, input: i16) -> Self {
        1122  +
            self.default_short = Some(input);
        1123  +
            self
        1124  +
        }
        1125  +
        #[allow(missing_docs)] // documentation missing in model
        1126  +
        pub fn default_integer(mut self, input: i32) -> Self {
        1127  +
            self.default_integer = Some(input);
        1128  +
            self
        1129  +
        }
        1130  +
        #[allow(missing_docs)] // documentation missing in model
        1131  +
        pub fn default_long(mut self, input: i64) -> Self {
        1132  +
            self.default_long = Some(input);
        1133  +
            self
        1134  +
        }
        1135  +
        #[allow(missing_docs)] // documentation missing in model
        1136  +
        pub fn default_float(mut self, input: f32) -> Self {
        1137  +
            self.default_float = Some(input);
        1138  +
            self
        1139  +
        }
        1140  +
        #[allow(missing_docs)] // documentation missing in model
        1141  +
        pub fn default_double(mut self, input: f64) -> Self {
        1142  +
            self.default_double = Some(input);
        1143  +
            self
        1144  +
        }
        1145  +
        #[allow(missing_docs)] // documentation missing in model
        1146  +
        pub fn default_map(
        1147  +
            mut self,
        1148  +
            input: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        1149  +
        ) -> Self {
        1150  +
            self.default_map = Some(input);
        1151  +
            self
        1152  +
        }
        1153  +
        #[allow(missing_docs)] // documentation missing in model
        1154  +
        pub fn default_enum(mut self, input: crate::model::TestEnum) -> Self {
        1155  +
            self.default_enum = Some(input);
        1156  +
            self
        1157  +
        }
        1158  +
        #[allow(missing_docs)] // documentation missing in model
        1159  +
        pub fn default_int_enum(mut self, input: i32) -> Self {
        1160  +
            self.default_int_enum = Some(input);
        1161  +
            self
        1162  +
        }
        1163  +
        #[allow(missing_docs)] // documentation missing in model
        1164  +
        pub fn empty_string(mut self, input: ::std::string::String) -> Self {
        1165  +
            self.empty_string = Some(input);
        1166  +
            self
        1167  +
        }
        1168  +
        #[allow(missing_docs)] // documentation missing in model
        1169  +
        pub fn false_boolean(mut self, input: bool) -> Self {
        1170  +
            self.false_boolean = Some(input);
        1171  +
            self
        1172  +
        }
        1173  +
        #[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);
        1176  +
            self
        1177  +
        }
        1178  +
        #[allow(missing_docs)] // documentation missing in model
        1179  +
        pub fn zero_byte(mut self, input: i8) -> Self {
        1180  +
            self.zero_byte = Some(input);
        1181  +
            self
        1182  +
        }
        1183  +
        #[allow(missing_docs)] // documentation missing in model
        1184  +
        pub fn zero_short(mut self, input: i16) -> Self {
        1185  +
            self.zero_short = Some(input);
        1186  +
            self
        1187  +
        }
        1188  +
        #[allow(missing_docs)] // documentation missing in model
        1189  +
        pub fn zero_integer(mut self, input: i32) -> Self {
        1190  +
            self.zero_integer = Some(input);
        1191  +
            self
        1192  +
        }
        1193  +
        #[allow(missing_docs)] // documentation missing in model
        1194  +
        pub fn zero_long(mut self, input: i64) -> Self {
        1195  +
            self.zero_long = Some(input);
        1196  +
            self
        1197  +
        }
        1198  +
        #[allow(missing_docs)] // documentation missing in model
        1199  +
        pub fn zero_float(mut self, input: f32) -> Self {
        1200  +
            self.zero_float = Some(input);
        1201  +
            self
        1202  +
        }
        1203  +
        #[allow(missing_docs)] // documentation missing in model
        1204  +
        pub fn zero_double(mut self, input: f64) -> Self {
        1205  +
            self.zero_double = Some(input);
        1206  +
            self
        1207  +
        }
        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()
        1333  +
        }
        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 {
        1341  +
            self.build_enforcing_all_constraints()
        1342  +
        }
        1343  +
        fn build_enforcing_all_constraints(
        1344  +
            self,
        1345  +
        ) -> crate::output::EndpointWithHostLabelOperationOutput {
        1346  +
            crate::output::EndpointWithHostLabelOperationOutput {}
        1347  +
        }
        1348  +
    }
        1349  +
}
        1350  +
/// See [`EndpointOperationOutput`](crate::output::EndpointOperationOutput).
        1351  +
pub mod endpoint_operation_output {
        1352  +
        1353  +
    impl ::std::convert::From<Builder> for crate::output::EndpointOperationOutput {
        1354  +
        fn from(builder: Builder) -> Self {
        1355  +
            builder.build()
        1356  +
        }
        1357  +
    }
        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 {}
        1368  +
        }
        1369  +
    }
        1370  +
}
        1371  +
/// See [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1372  +
pub mod json_unions_output {
        1373  +
        1374  +
    impl ::std::convert::From<Builder> for crate::output::JsonUnionsOutput {
        1375  +
        fn from(builder: Builder) -> Self {
        1376  +
            builder.build()
        1377  +
        }
        1378  +
    }
        1379  +
    /// A builder for [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1380  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1381  +
    pub struct Builder {
        1382  +
        pub(crate) contents: ::std::option::Option<crate::model::MyUnion>,
        1383  +
    }
        1384  +
    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;
        1388  +
            self
        1389  +
        }
        1390  +
        /// Consumes the builder and constructs a [`JsonUnionsOutput`](crate::output::JsonUnionsOutput).
        1391  +
        pub fn build(self) -> crate::output::JsonUnionsOutput {
        1392  +
            self.build_enforcing_all_constraints()
        1393  +
        }
        1394  +
        fn build_enforcing_all_constraints(self) -> crate::output::JsonUnionsOutput {
        1395  +
            crate::output::JsonUnionsOutput {
        1396  +
                contents: self.contents,
        1397  +
            }
        1398  +
        }
        1399  +
    }
        1400  +
}
        1401  +
/// See [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1402  +
pub mod greeting_with_errors_output {
        1403  +
        1404  +
    impl ::std::convert::From<Builder> for crate::output::GreetingWithErrorsOutput {
        1405  +
        fn from(builder: Builder) -> Self {
        1406  +
            builder.build()
        1407  +
        }
        1408  +
    }
        1409  +
    /// A builder for [`GreetingWithErrorsOutput`](crate::output::GreetingWithErrorsOutput).
        1410  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1411  +
    pub struct Builder {
        1412  +
        pub(crate) greeting: ::std::option::Option<::std::string::String>,
        1413  +
    }
        1414  +
    impl Builder {
        1415  +
        #[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;
        1418  +
            self
        1419  +
        }
        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()
        1423  +
        }
        1424  +
        fn build_enforcing_all_constraints(self) -> crate::output::GreetingWithErrorsOutput {
        1425  +
            crate::output::GreetingWithErrorsOutput {
        1426  +
                greeting: self.greeting,
        1427  +
            }
        1428  +
        }
        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()
        1437  +
        }
        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  +
        #[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;
        1449  +
            self
        1450  +
        }
        1451  +
        #[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;
        1454  +
            self
        1455  +
        }
        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()
        1459  +
        }
        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  +
            }
        1465  +
        }
        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()
        1474  +
        }
        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()
        1483  +
        }
        1484  +
        fn build_enforcing_all_constraints(self) -> crate::output::EmptyInputAndEmptyOutputOutput {
        1485  +
            crate::output::EmptyInputAndEmptyOutputOutput {}
        1486  +
        }
        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()
        1495  +
        }
        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 {
        1503  +
            self.build_enforcing_all_constraints()
        1504  +
        }
        1505  +
        fn build_enforcing_all_constraints(self) -> crate::output::NoInputAndOutputOutput {
        1506  +
            crate::output::NoInputAndOutputOutput {}
        1507  +
        }
        1508  +
    }
        1509  +
}
        1510  +
/// See [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
        1511  +
pub mod no_input_and_no_output_output {
        1512  +
        1513  +
    impl ::std::convert::From<Builder> for crate::output::NoInputAndNoOutputOutput {
        1514  +
        fn from(builder: Builder) -> Self {
        1515  +
            builder.build()
        1516  +
        }
        1517  +
    }
        1518  +
    /// A builder for [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
        1519  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1520  +
    pub struct Builder {}
        1521  +
    impl Builder {
        1522  +
        /// Consumes the builder and constructs a [`NoInputAndNoOutputOutput`](crate::output::NoInputAndNoOutputOutput).
        1523  +
        pub fn build(self) -> crate::output::NoInputAndNoOutputOutput {
        1524  +
            self.build_enforcing_all_constraints()
        1525  +
        }
        1526  +
        fn build_enforcing_all_constraints(self) -> crate::output::NoInputAndNoOutputOutput {
        1527  +
            crate::output::NoInputAndNoOutputOutput {}
        1528  +
        }
        1529  +
    }
        1530  +
}