Server Test

Server Test

rev. d838bf488731ae5e751cce0fe13f339a5b9be858 (ignoring whitespace)

Files changed:

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

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