Server Test Python

Server Test Python

rev. 7254d43655ed63111c94f599437f2b0d3f55446e

Files changed:

tmp-codegen-diff/codegen-server-test-python/constraints_without_public_constrained_types/rust-server-codegen-python/src/mimes.rs

@@ -1,1 +0,22 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
pub(crate) static CONTENT_TYPE_APPLICATION_VND_AMAZON_EVENTSTREAM: std::sync::LazyLock<
    3         -
    ::mime::Mime,
    4         -
> = std::sync::LazyLock::new(|| {
    5         -
    "application/vnd.amazon.eventstream"
    6         -
        .parse::<::mime::Mime>()
    7         -
        .expect("BUG: MIME parsing failed, content_type is not valid")
    8         -
});
    9         -
   10         -
pub(crate) static CONTENT_TYPE_APPLICATION_OCTET_STREAM: std::sync::LazyLock<::mime::Mime> =
           2  +
pub(crate) static CONTENT_TYPE_APPLICATION_JSON: std::sync::LazyLock<::mime::Mime> =
   11      3   
    std::sync::LazyLock::new(|| {
   12         -
        "application/octet-stream"
           4  +
        "application/json"
   13      5   
            .parse::<::mime::Mime>()
   14      6   
            .expect("BUG: MIME parsing failed, content_type is not valid")
   15      7   
    });
   16      8   
   17         -
pub(crate) static CONTENT_TYPE_APPLICATION_JSON: std::sync::LazyLock<::mime::Mime> =
           9  +
pub(crate) static CONTENT_TYPE_APPLICATION_OCTET_STREAM: std::sync::LazyLock<::mime::Mime> =
   18     10   
    std::sync::LazyLock::new(|| {
   19         -
        "application/json"
          11  +
        "application/octet-stream"
   20     12   
            .parse::<::mime::Mime>()
   21     13   
            .expect("BUG: MIME parsing failed, content_type is not valid")
   22     14   
    });
          15  +
          16  +
pub(crate) static CONTENT_TYPE_APPLICATION_VND_AMAZON_EVENTSTREAM: std::sync::LazyLock<
          17  +
    ::mime::Mime,
          18  +
> = std::sync::LazyLock::new(|| {
          19  +
    "application/vnd.amazon.eventstream"
          20  +
        .parse::<::mime::Mime>()
          21  +
        .expect("BUG: MIME parsing failed, content_type is not valid")
          22  +
});

tmp-codegen-diff/codegen-server-test-python/constraints_without_public_constrained_types/rust-server-codegen-python/src/model.rs

@@ -1,1 +1051,129 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2      2   
#[::pyo3::pyclass]
    3         -
/// :param path str:
    4         -
/// :param message str:
           3  +
/// :param con_b constraints_without_public_constrained_types.model.ConB:
           4  +
/// :param range_integer int:
           5  +
/// :param min_range_integer int:
           6  +
/// :param max_range_integer int:
           7  +
/// :param fixed_value_integer int:
           8  +
/// :param range_short int:
           9  +
/// :param min_range_short int:
          10  +
/// :param max_range_short int:
          11  +
/// :param fixed_value_short int:
          12  +
/// :param range_long int:
          13  +
/// :param min_range_long int:
          14  +
/// :param max_range_long int:
          15  +
/// :param fixed_value_long int:
          16  +
/// :param range_byte int:
          17  +
/// :param min_range_byte int:
          18  +
/// :param max_range_byte int:
          19  +
/// :param fixed_value_byte int:
          20  +
/// :param opt_con_b typing.Optional\[constraints_without_public_constrained_types.model.ConB\]:
          21  +
/// :param length_string typing.Optional\[str\]:
          22  +
/// :param min_length_string typing.Optional\[str\]:
          23  +
/// :param max_length_string typing.Optional\[str\]:
          24  +
/// :param fixed_length_string typing.Optional\[str\]:
          25  +
/// :param length_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
          26  +
/// :param min_length_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
          27  +
/// :param max_length_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
          28  +
/// :param fixed_length_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
          29  +
/// :param con_b_list typing.Optional\[typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]\]:
          30  +
/// :param length_list typing.Optional\[typing.List\[str\]\]:
          31  +
/// :param sensitive_length_list typing.Optional\[typing.List\[constraints_without_public_constrained_types.model.SensitiveStructure\]\]:
          32  +
/// :param con_b_set typing.Optional\[typing.List\[typing.Set\[str\]\]\]:
          33  +
/// :param con_b_map typing.Optional\[typing.Dict\[str, str\]\]:
          34  +
/// :param length_map typing.Optional\[typing.Dict\[str, str\]\]:
          35  +
/// :param map_of_map_of_list_of_list_of_con_b typing.Optional\[typing.Dict\[str, typing.Dict\[str, typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]\]\]\]:
          36  +
/// :param sparse_map typing.Optional\[typing.Dict\[str, typing.Optional\[typing.List\[str\]\]\]\]:
          37  +
/// :param sparse_list typing.Optional\[typing.List\[typing.Optional\[str\]\]\]:
          38  +
/// :param sparse_length_map typing.Optional\[typing.Dict\[str, typing.Optional\[str\]\]\]:
          39  +
/// :param sparse_length_list typing.Optional\[typing.List\[typing.Optional\[str\]\]\]:
          40  +
/// :param constrained_union typing.Optional\[constraints_without_public_constrained_types.model.ConstrainedUnion\]:
          41  +
/// :param enum_string typing.Optional\[constraints_without_public_constrained_types.model.EnumString\]:
          42  +
/// :param list_of_length_string typing.Optional\[typing.List\[str\]\]:
          43  +
/// :param set_of_length_string typing.Optional\[typing.Set\[str\]\]:
          44  +
/// :param map_of_length_string typing.Optional\[typing.Dict\[str, str\]\]:
          45  +
/// :param list_of_length_blob typing.Optional\[typing.List\[constraints_without_public_constrained_types.types.Blob\]\]:
          46  +
/// :param map_of_length_blob typing.Optional\[typing.Dict\[str, constraints_without_public_constrained_types.types.Blob\]\]:
          47  +
/// :param list_of_range_integer typing.Optional\[typing.List\[int\]\]:
          48  +
/// :param set_of_range_integer typing.Optional\[typing.List\[int\]\]:
          49  +
/// :param map_of_range_integer typing.Optional\[typing.Dict\[str, int\]\]:
          50  +
/// :param list_of_range_short typing.Optional\[typing.List\[int\]\]:
          51  +
/// :param set_of_range_short typing.Optional\[typing.List\[int\]\]:
          52  +
/// :param map_of_range_short typing.Optional\[typing.Dict\[str, int\]\]:
          53  +
/// :param list_of_range_long typing.Optional\[typing.List\[int\]\]:
          54  +
/// :param set_of_range_long typing.Optional\[typing.List\[int\]\]:
          55  +
/// :param map_of_range_long typing.Optional\[typing.Dict\[str, int\]\]:
          56  +
/// :param list_of_range_byte typing.Optional\[typing.List\[int\]\]:
          57  +
/// :param set_of_range_byte typing.Optional\[typing.List\[int\]\]:
          58  +
/// :param map_of_range_byte typing.Optional\[typing.Dict\[str, int\]\]:
          59  +
/// :param non_streaming_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
          60  +
/// :param pattern_string typing.Optional\[str\]:
          61  +
/// :param map_of_pattern_string typing.Optional\[typing.Dict\[str, str\]\]:
          62  +
/// :param list_of_pattern_string typing.Optional\[typing.List\[str\]\]:
          63  +
/// :param set_of_pattern_string typing.Optional\[typing.Set\[str\]\]:
          64  +
/// :param length_length_pattern_string typing.Optional\[str\]:
          65  +
/// :param map_of_length_pattern_string typing.Optional\[typing.Dict\[str, str\]\]:
          66  +
/// :param list_of_length_pattern_string typing.Optional\[typing.List\[str\]\]:
          67  +
/// :param set_of_length_pattern_string typing.Optional\[typing.Set\[str\]\]:
          68  +
/// :param length_list_of_pattern_string typing.Optional\[typing.List\[str\]\]:
          69  +
/// :param length_set_of_pattern_string typing.Optional\[typing.Set\[str\]\]:
    5     70   
/// :rtype None:
    6         -
/// Describes one specific validation failure for an input member.
    7         -
#[derive(
    8         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
    9         -
)]
   10         -
pub struct ValidationExceptionField {
          71  +
#[allow(missing_docs)] // documentation missing in model
          72  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
          73  +
pub struct ConA {
   11     74   
    #[pyo3(get, set)]
   12         -
    /// :type str:
   13         -
    /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
   14         -
    pub path: ::std::string::String,
          75  +
    /// :type constraints_without_public_constrained_types.model.ConB:
          76  +
    #[allow(missing_docs)] // documentation missing in model
          77  +
    pub con_b: crate::model::ConB,
   15     78   
    #[pyo3(get, set)]
   16         -
    /// :type str:
   17         -
    /// A detailed description of the validation failure.
   18         -
    pub message: ::std::string::String,
   19         -
}
   20         -
impl ValidationExceptionField {
   21         -
    /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
   22         -
    pub fn path(&self) -> &str {
   23         -
        use std::ops::Deref;
   24         -
        self.path.deref()
   25         -
    }
   26         -
    /// A detailed description of the validation failure.
   27         -
    pub fn message(&self) -> &str {
   28         -
        use std::ops::Deref;
   29         -
        self.message.deref()
   30         -
    }
   31         -
}
   32         -
#[allow(clippy::new_without_default)]
   33         -
#[allow(clippy::too_many_arguments)]
   34         -
#[::pyo3::pymethods]
   35         -
impl ValidationExceptionField {
   36         -
    #[new]
   37         -
    pub fn new(path: ::std::string::String, message: ::std::string::String) -> Self {
   38         -
        Self { path, message }
   39         -
    }
   40         -
    fn __repr__(&self) -> String {
   41         -
        format!("{self:?}")
   42         -
    }
   43         -
    fn __str__(&self) -> String {
   44         -
        format!("{self:?}")
   45         -
    }
   46         -
}
   47         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ValidationExceptionField> {
   48         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
   49         -
        ob.extract::<ValidationExceptionField>().map(Box::new)
   50         -
    }
   51         -
}
   52         -
   53         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ValidationExceptionField> {
   54         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
   55         -
        (*self).into_py(py)
   56         -
    }
   57         -
}
   58         -
impl ValidationExceptionField {
   59         -
    /// Creates a new builder-style object to manufacture [`ValidationExceptionField`](crate::model::ValidationExceptionField).
   60         -
    pub fn builder() -> crate::model::validation_exception_field::Builder {
   61         -
        crate::model::validation_exception_field::Builder::default()
   62         -
    }
   63         -
}
   64         -
   65         -
#[allow(missing_docs)] // documentation missing in model
   66         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
   67         -
pub enum Event {
          79  +
    /// :type typing.Optional\[constraints_without_public_constrained_types.model.ConB\]:
   68     80   
    #[allow(missing_docs)] // documentation missing in model
   69         -
    RegularMessage(crate::model::EventStreamRegularMessage),
   70         -
}
   71         -
impl Event {
   72         -
    #[allow(irrefutable_let_patterns)]
   73         -
    /// Tries to convert the enum instance into [`RegularMessage`](crate::model::Event::RegularMessage), extracting the inner [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
   74         -
    /// Returns `Err(&Self)` if it can't be converted.
   75         -
    pub fn as_regular_message(
   76         -
        &self,
   77         -
    ) -> ::std::result::Result<&crate::model::EventStreamRegularMessage, &Self> {
   78         -
        if let Event::RegularMessage(val) = &self {
   79         -
            ::std::result::Result::Ok(val)
   80         -
        } else {
   81         -
            ::std::result::Result::Err(self)
   82         -
        }
   83         -
    }
   84         -
    /// Returns true if this is a [`RegularMessage`](crate::model::Event::RegularMessage).
   85         -
    pub fn is_regular_message(&self) -> bool {
   86         -
        self.as_regular_message().is_ok()
   87         -
    }
   88         -
}
   89         -
#[pyo3::pyclass(name = "Event")]
   90         -
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
   91         -
pub struct PyUnionMarkerEvent(pub Event);
   92         -
#[::pyo3::pymethods]
   93         -
impl PyUnionMarkerEvent {
   94         -
    #[allow(irrefutable_let_patterns)]
   95         -
    #[staticmethod]
   96         -
    /// Creates a new union instance of [`RegularMessage`](crate::model::Event::RegularMessage)
   97         -
    /// :param data constraints_without_public_constrained_types.model.EventStreamRegularMessage:
   98         -
    /// :rtype Event:
   99         -
    pub fn regular_message(data: crate::model::EventStreamRegularMessage) -> Self {
  100         -
        Self(Event::RegularMessage(data))
  101         -
    }
  102         -
    /// Tries to convert the enum instance into [`RegularMessage`](crate::model::Event::RegularMessage), extracting the inner [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
  103         -
    /// :rtype constraints_without_public_constrained_types.model.EventStreamRegularMessage:
  104         -
    pub fn as_regular_message(&self) -> ::pyo3::PyResult<crate::model::EventStreamRegularMessage> {
  105         -
        match self.0.as_regular_message() {
  106         -
            Ok(variant) => Ok(variant.clone()),
  107         -
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
  108         -
                r"Event variant is not of type constraints_without_public_constrained_types.model.EventStreamRegularMessage",
  109         -
            )),
  110         -
        }
  111         -
    }
  112         -
    /// Returns true if this is a [`RegularMessage`](crate::model::Event::RegularMessage).
  113         -
    /// :rtype bool:
  114         -
    pub fn is_regular_message(&self) -> bool {
  115         -
        self.0.is_regular_message()
  116         -
    }
  117         -
}
  118         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for Event {
  119         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  120         -
        PyUnionMarkerEvent(self).into_py(py)
  121         -
    }
  122         -
}
  123         -
impl<'source> ::pyo3::FromPyObject<'source> for Event {
  124         -
    fn extract(obj: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  125         -
        let data: PyUnionMarkerEvent = obj.extract()?;
  126         -
        Ok(data.0)
  127         -
    }
  128         -
}
  129         -
  130         -
#[::pyo3::pyclass]
  131         -
/// :param message_content typing.Optional\[str\]:
  132         -
/// :rtype None:
  133         -
#[allow(missing_docs)] // documentation missing in model
  134         -
#[derive(
  135         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  136         -
)]
  137         -
pub struct EventStreamRegularMessage {
          81  +
    pub opt_con_b: ::std::option::Option<crate::model::ConB>,
  138     82   
    #[pyo3(get, set)]
  139     83   
    /// :type typing.Optional\[str\]:
  140     84   
    #[allow(missing_docs)] // documentation missing in model
  141         -
    pub message_content: ::std::option::Option<::std::string::String>,
  142         -
}
  143         -
impl EventStreamRegularMessage {
          85  +
    pub length_string: ::std::option::Option<::std::string::String>,
          86  +
    #[pyo3(get, set)]
          87  +
    /// :type typing.Optional\[str\]:
  144     88   
    #[allow(missing_docs)] // documentation missing in model
  145         -
    pub fn message_content(&self) -> ::std::option::Option<&str> {
  146         -
        self.message_content.as_deref()
  147         -
    }
  148         -
}
  149         -
#[allow(clippy::new_without_default)]
  150         -
#[allow(clippy::too_many_arguments)]
  151         -
#[::pyo3::pymethods]
  152         -
impl EventStreamRegularMessage {
  153         -
    #[new]
  154         -
    pub fn new(message_content: ::std::option::Option<::std::string::String>) -> Self {
  155         -
        Self { message_content }
  156         -
    }
  157         -
    fn __repr__(&self) -> String {
  158         -
        format!("{self:?}")
  159         -
    }
  160         -
    fn __str__(&self) -> String {
  161         -
        format!("{self:?}")
  162         -
    }
  163         -
}
  164         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<EventStreamRegularMessage> {
  165         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  166         -
        ob.extract::<EventStreamRegularMessage>().map(Box::new)
  167         -
    }
  168         -
}
  169         -
  170         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<EventStreamRegularMessage> {
  171         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  172         -
        (*self).into_py(py)
  173         -
    }
  174         -
}
  175         -
impl crate::constrained::Constrained for crate::model::EventStreamRegularMessage {
  176         -
    type Unconstrained = crate::model::event_stream_regular_message_internal::Builder;
  177         -
}
  178         -
impl EventStreamRegularMessage {
  179         -
    /// Creates a new builder-style object to manufacture [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
  180         -
    pub fn builder() -> crate::model::event_stream_regular_message::Builder {
  181         -
        crate::model::event_stream_regular_message::Builder::default()
  182         -
    }
  183         -
}
  184         -
  185         -
#[::pyo3::pyclass]
  186         -
#[allow(missing_docs)] // documentation missing in model
  187         -
#[derive(
  188         -
    ::std::clone::Clone,
  189         -
    ::std::cmp::Eq,
  190         -
    ::std::cmp::Ord,
  191         -
    ::std::cmp::PartialEq,
  192         -
    ::std::cmp::PartialOrd,
  193         -
    ::std::fmt::Debug,
  194         -
    ::std::hash::Hash,
  195         -
)]
  196         -
pub enum EnumString {
          89  +
    pub min_length_string: ::std::option::Option<::std::string::String>,
          90  +
    #[pyo3(get, set)]
          91  +
    /// :type typing.Optional\[str\]:
  197     92   
    #[allow(missing_docs)] // documentation missing in model
  198         -
    M256Mega,
          93  +
    pub max_length_string: ::std::option::Option<::std::string::String>,
          94  +
    #[pyo3(get, set)]
          95  +
    /// :type typing.Optional\[str\]:
  199     96   
    #[allow(missing_docs)] // documentation missing in model
  200         -
    T2Micro,
  201         -
    #[allow(missing_docs)] // documentation missing in model
  202         -
    T2Nano,
  203         -
}
  204         -
pub(crate) mod enum_string_internal {
  205         -
    #[derive(Debug, PartialEq)]
  206         -
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  207         -
  208         -
    impl ::std::fmt::Display for ConstraintViolation {
  209         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  210         -
            write!(
  211         -
                f,
  212         -
                r#"Value provided for 'com.amazonaws.constraints#EnumString' failed to satisfy constraint: Member must satisfy enum value set: [t2.nano, t2.micro, m256.mega]"#
  213         -
            )
  214         -
        }
  215         -
    }
  216         -
  217         -
    impl ::std::error::Error for ConstraintViolation {}
  218         -
    impl ConstraintViolation {
  219         -
        pub(crate) fn as_validation_exception_field(
  220         -
            self,
  221         -
            path: ::std::string::String,
  222         -
        ) -> crate::model::ValidationExceptionField {
  223         -
            crate::model::ValidationExceptionField {
  224         -
                message: format!(
  225         -
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [t2.nano, t2.micro, m256.mega]"#,
  226         -
                    &path
  227         -
                ),
  228         -
                path,
  229         -
            }
  230         -
        }
  231         -
    }
  232         -
}
  233         -
impl ::std::convert::TryFrom<&str> for EnumString {
  234         -
    type Error = crate::model::enum_string_internal::ConstraintViolation;
  235         -
    fn try_from(
  236         -
        s: &str,
  237         -
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  238         -
        match s {
  239         -
            "m256.mega" => Ok(EnumString::M256Mega),
  240         -
            "t2.micro" => Ok(EnumString::T2Micro),
  241         -
            "t2.nano" => Ok(EnumString::T2Nano),
  242         -
            _ => Err(crate::model::enum_string_internal::ConstraintViolation(
  243         -
                s.to_owned(),
  244         -
            )),
  245         -
        }
  246         -
    }
  247         -
}
  248         -
impl ::std::convert::TryFrom<::std::string::String> for EnumString {
  249         -
    type Error = crate::model::enum_string_internal::ConstraintViolation;
  250         -
    fn try_from(
  251         -
        s: ::std::string::String,
  252         -
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  253         -
    {
  254         -
        s.as_str().try_into()
  255         -
    }
  256         -
}
  257         -
impl std::str::FromStr for EnumString {
  258         -
    type Err = crate::model::enum_string_internal::ConstraintViolation;
  259         -
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  260         -
        Self::try_from(s)
  261         -
    }
  262         -
}
  263         -
impl EnumString {
  264         -
    /// Returns the `&str` value of the enum member.
  265         -
    pub fn as_str(&self) -> &str {
  266         -
        match self {
  267         -
            EnumString::M256Mega => "m256.mega",
  268         -
            EnumString::T2Micro => "t2.micro",
  269         -
            EnumString::T2Nano => "t2.nano",
  270         -
        }
  271         -
    }
  272         -
    /// Returns all the `&str` representations of the enum members.
  273         -
    pub const fn values() -> &'static [&'static str] {
  274         -
        &["m256.mega", "t2.micro", "t2.nano"]
  275         -
    }
  276         -
}
  277         -
impl ::std::convert::AsRef<str> for EnumString {
  278         -
    fn as_ref(&self) -> &str {
  279         -
        self.as_str()
  280         -
    }
  281         -
}
  282         -
#[::pyo3::pymethods]
  283         -
impl EnumString {
  284         -
    #[getter]
  285         -
    pub fn name(&self) -> &str {
  286         -
        match self {
  287         -
            EnumString::M256Mega => "M256Mega",
  288         -
            EnumString::T2Micro => "T2Micro",
  289         -
            EnumString::T2Nano => "T2Nano",
  290         -
        }
  291         -
    }
  292         -
    #[getter]
  293         -
    pub fn value(&self) -> &str {
  294         -
        self.as_str()
  295         -
    }
  296         -
    fn __repr__(&self) -> String {
  297         -
        self.as_str().to_owned()
  298         -
    }
  299         -
    fn __str__(&self) -> String {
  300         -
        self.as_str().to_owned()
  301         -
    }
  302         -
}
  303         -
impl crate::constrained::Constrained for EnumString {
  304         -
    type Unconstrained = ::std::string::String;
  305         -
}
  306         -
  307         -
impl ::std::convert::From<::std::string::String>
  308         -
    for crate::constrained::MaybeConstrained<crate::model::EnumString>
  309         -
{
  310         -
    fn from(value: ::std::string::String) -> Self {
  311         -
        Self::Unconstrained(value)
  312         -
    }
  313         -
}
  314         -
  315         -
#[allow(missing_docs)] // documentation missing in model
  316         -
///
  317         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  318         -
/// [constraint traits]. Use [`ConBMap::try_from`] to construct values of this type.
  319         -
///
  320         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  321         -
///
  322         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  323         -
pub(crate) struct ConBMap(
  324         -
    pub(crate) ::std::collections::HashMap<::std::string::String, crate::model::LengthString>,
  325         -
);
  326         -
impl ConBMap {
  327         -
    /// Consumes the value, returning the underlying [`::std::collections::HashMap<::std::string::String, crate::model::LengthString>`].
  328         -
    pub fn into_inner(
  329         -
        self,
  330         -
    ) -> ::std::collections::HashMap<::std::string::String, crate::model::LengthString> {
  331         -
        self.0
  332         -
    }
  333         -
}
  334         -
impl
  335         -
    ::std::convert::TryFrom<
  336         -
        ::std::collections::HashMap<::std::string::String, crate::model::LengthString>,
  337         -
    > for ConBMap
  338         -
{
  339         -
    type Error = crate::model::con_b_map_internal::ConstraintViolation;
  340         -
  341         -
    /// Constructs a `ConBMap` from an [`::std::collections::HashMap<::std::string::String, crate::model::LengthString>`], failing when the provided value does not satisfy the modeled constraints.
  342         -
    fn try_from(
  343         -
        value: ::std::collections::HashMap<::std::string::String, crate::model::LengthString>,
  344         -
    ) -> ::std::result::Result<Self, Self::Error> {
  345         -
        let length = value.len();
  346         -
        if (1..=69).contains(&length) {
  347         -
            Ok(Self(value))
  348         -
        } else {
  349         -
            Err(crate::model::con_b_map_internal::ConstraintViolation::Length(length))
  350         -
        }
  351         -
    }
  352         -
}
  353         -
  354         -
impl ::std::convert::From<ConBMap>
  355         -
    for ::std::collections::HashMap<::std::string::String, crate::model::LengthString>
  356         -
{
  357         -
    fn from(value: ConBMap) -> Self {
  358         -
        value.into_inner()
  359         -
    }
  360         -
}
  361         -
impl ::std::convert::From<ConBMap>
  362         -
    for ::std::collections::HashMap<::std::string::String, ::std::string::String>
  363         -
{
  364         -
    fn from(value: ConBMap) -> Self {
  365         -
        value
  366         -
            .into_inner()
  367         -
            .into_iter()
  368         -
            .map(|(k, v)| (k, v.into()))
  369         -
            .collect()
  370         -
    }
  371         -
}
  372         -
impl crate::constrained::Constrained for ConBMap {
  373         -
    type Unconstrained = crate::unconstrained::con_b_map_unconstrained::ConBMapUnconstrained;
  374         -
}
  375         -
  376         -
#[allow(missing_docs)] // documentation missing in model
  377         -
///
  378         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  379         -
/// [constraint traits]. Use [`LengthString::try_from`] to construct values of this type.
  380         -
///
  381         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  382         -
///
  383         -
#[derive(
  384         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  385         -
)]
  386         -
pub(crate) struct LengthString(pub(crate) ::std::string::String);
  387         -
#[allow(dead_code)]
  388         -
impl LengthString {
  389         -
    /// Extracts a string slice containing the entire underlying `String`.
  390         -
    pub fn as_str(&self) -> &str {
  391         -
        &self.0
  392         -
    }
  393         -
  394         -
    /// Returns an immutable reference to the underlying [`::std::string::String`].
  395         -
    pub fn inner(&self) -> &::std::string::String {
  396         -
        &self.0
  397         -
    }
  398         -
  399         -
    /// Consumes the value, returning the underlying [`::std::string::String`].
  400         -
    pub fn into_inner(self) -> ::std::string::String {
  401         -
        self.0
  402         -
    }
  403         -
}
  404         -
impl LengthString {
  405         -
    fn check_length(
  406         -
        string: &str,
  407         -
    ) -> ::std::result::Result<(), crate::model::length_string_internal::ConstraintViolation> {
  408         -
        let length = string.chars().count();
  409         -
  410         -
        if (2..=69).contains(&length) {
  411         -
            Ok(())
  412         -
        } else {
  413         -
            Err(crate::model::length_string_internal::ConstraintViolation::Length(length))
  414         -
        }
  415         -
    }
  416         -
}
  417         -
impl ::std::convert::TryFrom<::std::string::String> for LengthString {
  418         -
    type Error = crate::model::length_string_internal::ConstraintViolation;
  419         -
  420         -
    /// Constructs a `LengthString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
  421         -
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
  422         -
        Self::check_length(&value)?;
  423         -
  424         -
        Ok(Self(value))
  425         -
    }
  426         -
}
  427         -
impl crate::constrained::Constrained for LengthString {
  428         -
    type Unconstrained = ::std::string::String;
  429         -
}
  430         -
  431         -
impl ::std::convert::From<::std::string::String>
  432         -
    for crate::constrained::MaybeConstrained<crate::model::LengthString>
  433         -
{
  434         -
    fn from(value: ::std::string::String) -> Self {
  435         -
        Self::Unconstrained(value)
  436         -
    }
  437         -
}
  438         -
  439         -
impl ::std::fmt::Display for LengthString {
  440         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  441         -
        self.0.fmt(f)
  442         -
    }
  443         -
}
  444         -
  445         -
impl ::std::convert::From<LengthString> for ::std::string::String {
  446         -
    fn from(value: LengthString) -> Self {
  447         -
        value.into_inner()
  448         -
    }
  449         -
}
  450         -
  451         -
#[allow(missing_docs)] // documentation missing in model
  452         -
///
  453         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  454         -
/// [constraint traits]. Use [`LengthPatternString::try_from`] to construct values of this type.
  455         -
///
  456         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  457         -
///
  458         -
#[derive(
  459         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  460         -
)]
  461         -
pub(crate) struct LengthPatternString(pub(crate) ::std::string::String);
  462         -
#[allow(dead_code)]
  463         -
impl LengthPatternString {
  464         -
    /// Extracts a string slice containing the entire underlying `String`.
  465         -
    pub fn as_str(&self) -> &str {
  466         -
        &self.0
  467         -
    }
  468         -
  469         -
    /// Returns an immutable reference to the underlying [`::std::string::String`].
  470         -
    pub fn inner(&self) -> &::std::string::String {
  471         -
        &self.0
  472         -
    }
  473         -
  474         -
    /// Consumes the value, returning the underlying [`::std::string::String`].
  475         -
    pub fn into_inner(self) -> ::std::string::String {
  476         -
        self.0
  477         -
    }
  478         -
}
  479         -
impl LengthPatternString {
  480         -
    fn check_length(
  481         -
        string: &str,
  482         -
    ) -> ::std::result::Result<(), crate::model::length_pattern_string_internal::ConstraintViolation>
  483         -
    {
  484         -
        let length = string.chars().count();
  485         -
  486         -
        if (5..=10).contains(&length) {
  487         -
            Ok(())
  488         -
        } else {
  489         -
            Err(crate::model::length_pattern_string_internal::ConstraintViolation::Length(length))
  490         -
        }
  491         -
    }
  492         -
  493         -
    fn check_pattern(
  494         -
        string: ::std::string::String,
  495         -
    ) -> ::std::result::Result<
  496         -
        ::std::string::String,
  497         -
        crate::model::length_pattern_string_internal::ConstraintViolation,
  498         -
    > {
  499         -
        let regex = Self::compile_regex();
  500         -
  501         -
        if regex.is_match(&string) {
  502         -
            Ok(string)
  503         -
        } else {
  504         -
            Err(crate::model::length_pattern_string_internal::ConstraintViolation::Pattern(string))
  505         -
        }
  506         -
    }
  507         -
  508         -
    /// Attempts to compile the regex for this constrained type's `@pattern`.
  509         -
    /// This can fail if the specified regex is not supported by the `::regex` crate.
  510         -
    pub fn compile_regex() -> &'static ::regex::Regex {
  511         -
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
  512         -
            ::regex::Regex::new(r#"[a-f0-5]*"#).expect(r#"The regular expression [a-f0-5]* is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
  513         -
        });
  514         -
  515         -
        &REGEX
  516         -
    }
  517         -
}
  518         -
impl ::std::convert::TryFrom<::std::string::String> for LengthPatternString {
  519         -
    type Error = crate::model::length_pattern_string_internal::ConstraintViolation;
  520         -
  521         -
    /// Constructs a `LengthPatternString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
  522         -
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
  523         -
        Self::check_length(&value)?;
  524         -
  525         -
        let value = Self::check_pattern(value)?;
  526         -
  527         -
        Ok(Self(value))
  528         -
    }
  529         -
}
  530         -
impl crate::constrained::Constrained for LengthPatternString {
  531         -
    type Unconstrained = ::std::string::String;
  532         -
}
  533         -
  534         -
impl ::std::convert::From<::std::string::String>
  535         -
    for crate::constrained::MaybeConstrained<crate::model::LengthPatternString>
  536         -
{
  537         -
    fn from(value: ::std::string::String) -> Self {
  538         -
        Self::Unconstrained(value)
  539         -
    }
  540         -
}
  541         -
  542         -
impl ::std::fmt::Display for LengthPatternString {
  543         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  544         -
        self.0.fmt(f)
  545         -
    }
  546         -
}
  547         -
  548         -
impl ::std::convert::From<LengthPatternString> for ::std::string::String {
  549         -
    fn from(value: LengthPatternString) -> Self {
  550         -
        value.into_inner()
  551         -
    }
  552         -
}
  553         -
  554         -
#[cfg(test)]
  555         -
mod test_length_pattern_string {
  556         -
    #[test]
  557         -
    fn regex_compiles() {
  558         -
        crate::model::LengthPatternString::compile_regex();
  559         -
    }
  560         -
}
  561         -
  562         -
#[allow(missing_docs)] // documentation missing in model
  563         -
///
  564         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  565         -
/// [constraint traits]. Use [`PatternString::try_from`] to construct values of this type.
  566         -
///
  567         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  568         -
///
  569         -
#[derive(
  570         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  571         -
)]
  572         -
pub(crate) struct PatternString(pub(crate) ::std::string::String);
  573         -
#[allow(dead_code)]
  574         -
impl PatternString {
  575         -
    /// Extracts a string slice containing the entire underlying `String`.
  576         -
    pub fn as_str(&self) -> &str {
  577         -
        &self.0
  578         -
    }
  579         -
  580         -
    /// Returns an immutable reference to the underlying [`::std::string::String`].
  581         -
    pub fn inner(&self) -> &::std::string::String {
  582         -
        &self.0
  583         -
    }
  584         -
  585         -
    /// Consumes the value, returning the underlying [`::std::string::String`].
  586         -
    pub fn into_inner(self) -> ::std::string::String {
  587         -
        self.0
  588         -
    }
  589         -
}
  590         -
impl PatternString {
  591         -
    fn check_pattern(
  592         -
        string: ::std::string::String,
  593         -
    ) -> ::std::result::Result<
  594         -
        ::std::string::String,
  595         -
        crate::model::pattern_string_internal::ConstraintViolation,
  596         -
    > {
  597         -
        let regex = Self::compile_regex();
  598         -
  599         -
        if regex.is_match(&string) {
  600         -
            Ok(string)
  601         -
        } else {
  602         -
            Err(crate::model::pattern_string_internal::ConstraintViolation::Pattern(string))
  603         -
        }
  604         -
    }
  605         -
  606         -
    /// Attempts to compile the regex for this constrained type's `@pattern`.
  607         -
    /// This can fail if the specified regex is not supported by the `::regex` crate.
  608         -
    pub fn compile_regex() -> &'static ::regex::Regex {
  609         -
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
  610         -
            ::regex::Regex::new(r#"[a-d]{5}"#).expect(r#"The regular expression [a-d]{5} is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
  611         -
        });
  612         -
  613         -
        &REGEX
  614         -
    }
  615         -
}
  616         -
impl ::std::convert::TryFrom<::std::string::String> for PatternString {
  617         -
    type Error = crate::model::pattern_string_internal::ConstraintViolation;
  618         -
  619         -
    /// Constructs a `PatternString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
  620         -
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
  621         -
        let value = Self::check_pattern(value)?;
  622         -
  623         -
        Ok(Self(value))
  624         -
    }
  625         -
}
  626         -
impl crate::constrained::Constrained for PatternString {
  627         -
    type Unconstrained = ::std::string::String;
  628         -
}
  629         -
  630         -
impl ::std::convert::From<::std::string::String>
  631         -
    for crate::constrained::MaybeConstrained<crate::model::PatternString>
  632         -
{
  633         -
    fn from(value: ::std::string::String) -> Self {
  634         -
        Self::Unconstrained(value)
  635         -
    }
  636         -
}
  637         -
  638         -
impl ::std::fmt::Display for PatternString {
  639         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  640         -
        self.0.fmt(f)
  641         -
    }
  642         -
}
  643         -
  644         -
impl ::std::convert::From<PatternString> for ::std::string::String {
  645         -
    fn from(value: PatternString) -> Self {
  646         -
        value.into_inner()
  647         -
    }
  648         -
}
  649         -
  650         -
#[cfg(test)]
  651         -
mod test_pattern_string {
  652         -
    #[test]
  653         -
    fn regex_compiles() {
  654         -
        crate::model::PatternString::compile_regex();
  655         -
    }
  656         -
}
  657         -
  658         -
#[allow(missing_docs)] // documentation missing in model
  659         -
///
  660         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  661         -
/// [constraint traits]. Use [`LengthListOfPatternString::try_from`] to construct values of this type.
  662         -
///
  663         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  664         -
///
  665         -
#[derive(
  666         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  667         -
)]
  668         -
pub(crate) struct LengthListOfPatternString(
  669         -
    pub(crate) ::std::vec::Vec<crate::model::PatternString>,
  670         -
);
  671         -
impl LengthListOfPatternString {
  672         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::PatternString>`].
  673         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::PatternString> {
  674         -
        self.0
  675         -
    }
  676         -
  677         -
    fn check_length(
  678         -
        length: usize,
  679         -
    ) -> ::std::result::Result<
  680         -
        (),
  681         -
        crate::model::length_list_of_pattern_string_internal::ConstraintViolation,
  682         -
    > {
  683         -
        if (12..=39).contains(&length) {
  684         -
            Ok(())
  685         -
        } else {
  686         -
            Err(
  687         -
                crate::model::length_list_of_pattern_string_internal::ConstraintViolation::Length(
  688         -
                    length,
  689         -
                ),
  690         -
            )
  691         -
        }
  692         -
    }
  693         -
}
  694         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::PatternString>>
  695         -
    for LengthListOfPatternString
  696         -
{
  697         -
    type Error = crate::model::length_list_of_pattern_string_internal::ConstraintViolation;
  698         -
  699         -
    /// Constructs a `LengthListOfPatternString` from an [`::std::vec::Vec<crate::model::PatternString>`], failing when the provided value does not satisfy the modeled constraints.
  700         -
    fn try_from(
  701         -
        value: ::std::vec::Vec<crate::model::PatternString>,
  702         -
    ) -> ::std::result::Result<Self, Self::Error> {
  703         -
        Self::check_length(value.len())?;
  704         -
  705         -
        Ok(Self(value))
  706         -
    }
  707         -
}
  708         -
  709         -
impl ::std::convert::From<LengthListOfPatternString>
  710         -
    for ::std::vec::Vec<crate::model::PatternString>
  711         -
{
  712         -
    fn from(value: LengthListOfPatternString) -> Self {
  713         -
        value.into_inner()
  714         -
    }
  715         -
}
  716         -
impl ::std::convert::From<LengthListOfPatternString> for ::std::vec::Vec<::std::string::String> {
  717         -
    fn from(value: LengthListOfPatternString) -> Self {
  718         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
  719         -
    }
  720         -
}
  721         -
impl crate::constrained::Constrained for LengthListOfPatternString {
  722         -
    type Unconstrained = crate::unconstrained::length_list_of_pattern_string_unconstrained::LengthListOfPatternStringUnconstrained;
  723         -
}
  724         -
  725         -
#[allow(missing_docs)] // documentation missing in model
  726         -
///
  727         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  728         -
/// [constraint traits]. Use [`SetOfLengthString::try_from`] to construct values of this type.
  729         -
///
  730         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  731         -
///
  732         -
#[derive(
  733         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  734         -
)]
  735         -
pub(crate) struct SetOfLengthString(pub(crate) ::std::vec::Vec<crate::model::LengthString>);
  736         -
impl SetOfLengthString {
  737         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::LengthString>`].
  738         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::LengthString> {
  739         -
        self.0
  740         -
    }
  741         -
  742         -
    fn check_unique_items(
  743         -
        items: ::std::vec::Vec<crate::model::LengthString>,
  744         -
    ) -> ::std::result::Result<
  745         -
        ::std::vec::Vec<crate::model::LengthString>,
  746         -
        crate::model::set_of_length_string_internal::ConstraintViolation,
  747         -
    > {
  748         -
        let mut seen = ::std::collections::HashMap::new();
  749         -
        let mut duplicate_indices = ::std::vec::Vec::new();
  750         -
        for (idx, item) in items.iter().enumerate() {
  751         -
            if let Some(prev_idx) = seen.insert(item, idx) {
  752         -
                duplicate_indices.push(prev_idx);
  753         -
            }
  754         -
        }
  755         -
  756         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
  757         -
        for idx in &duplicate_indices {
  758         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
  759         -
                last_duplicate_indices.push(prev_idx);
  760         -
            }
  761         -
        }
  762         -
        duplicate_indices.extend(last_duplicate_indices);
  763         -
  764         -
        if !duplicate_indices.is_empty() {
  765         -
            debug_assert!(duplicate_indices.len() >= 2);
  766         -
            Err(
  767         -
                crate::model::set_of_length_string_internal::ConstraintViolation::UniqueItems {
  768         -
                    duplicate_indices,
  769         -
                    original: items,
  770         -
                },
  771         -
            )
  772         -
        } else {
  773         -
            Ok(items)
  774         -
        }
  775         -
    }
  776         -
}
  777         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::LengthString>> for SetOfLengthString {
  778         -
    type Error = crate::model::set_of_length_string_internal::ConstraintViolation;
  779         -
  780         -
    /// Constructs a `SetOfLengthString` from an [`::std::vec::Vec<crate::model::LengthString>`], failing when the provided value does not satisfy the modeled constraints.
  781         -
    fn try_from(
  782         -
        value: ::std::vec::Vec<crate::model::LengthString>,
  783         -
    ) -> ::std::result::Result<Self, Self::Error> {
  784         -
        let value = Self::check_unique_items(value)?;
  785         -
  786         -
        Ok(Self(value))
  787         -
    }
  788         -
}
  789         -
  790         -
impl ::std::convert::From<SetOfLengthString> for ::std::vec::Vec<crate::model::LengthString> {
  791         -
    fn from(value: SetOfLengthString) -> Self {
  792         -
        value.into_inner()
  793         -
    }
  794         -
}
  795         -
impl ::std::convert::From<SetOfLengthString> for ::std::vec::Vec<::std::string::String> {
  796         -
    fn from(value: SetOfLengthString) -> Self {
  797         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
  798         -
    }
  799         -
}
  800         -
impl crate::constrained::Constrained for SetOfLengthString {
  801         -
    type Unconstrained =
  802         -
        crate::unconstrained::set_of_length_string_unconstrained::SetOfLengthStringUnconstrained;
  803         -
}
  804         -
  805         -
#[::pyo3::pyclass]
  806         -
/// :param recursive_member constraints_without_public_constrained_types.model.RecursiveShapesInputOutputNested2:
  807         -
/// :rtype None:
  808         -
#[allow(missing_docs)] // documentation missing in model
  809         -
#[derive(
  810         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  811         -
)]
  812         -
pub struct RecursiveShapesInputOutputNested1 {
  813         -
    #[pyo3(get, set)]
  814         -
    /// :type constraints_without_public_constrained_types.model.RecursiveShapesInputOutputNested2:
  815         -
    #[allow(missing_docs)] // documentation missing in model
  816         -
    pub recursive_member: ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
  817         -
}
  818         -
impl RecursiveShapesInputOutputNested1 {
  819         -
    #[allow(missing_docs)] // documentation missing in model
  820         -
    pub fn recursive_member(&self) -> &crate::model::RecursiveShapesInputOutputNested2 {
  821         -
        use std::ops::Deref;
  822         -
        self.recursive_member.deref()
  823         -
    }
  824         -
}
  825         -
#[allow(clippy::new_without_default)]
  826         -
#[allow(clippy::too_many_arguments)]
  827         -
#[::pyo3::pymethods]
  828         -
impl RecursiveShapesInputOutputNested1 {
  829         -
    #[new]
  830         -
    pub fn new(
  831         -
        recursive_member: ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
  832         -
    ) -> Self {
  833         -
        Self { recursive_member }
  834         -
    }
  835         -
    fn __repr__(&self) -> String {
  836         -
        format!("{self:?}")
  837         -
    }
  838         -
    fn __str__(&self) -> String {
  839         -
        format!("{self:?}")
  840         -
    }
  841         -
}
  842         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<RecursiveShapesInputOutputNested1> {
  843         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  844         -
        ob.extract::<RecursiveShapesInputOutputNested1>()
  845         -
            .map(Box::new)
  846         -
    }
  847         -
}
  848         -
  849         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<RecursiveShapesInputOutputNested1> {
  850         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  851         -
        (*self).into_py(py)
  852         -
    }
  853         -
}
  854         -
impl crate::constrained::Constrained for crate::model::RecursiveShapesInputOutputNested1 {
  855         -
    type Unconstrained = crate::model::recursive_shapes_input_output_nested1_internal::Builder;
  856         -
}
  857         -
impl RecursiveShapesInputOutputNested1 {
  858         -
    /// Creates a new builder-style object to manufacture [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
  859         -
    pub fn builder() -> crate::model::recursive_shapes_input_output_nested1::Builder {
  860         -
        crate::model::recursive_shapes_input_output_nested1::Builder::default()
  861         -
    }
  862         -
}
  863         -
  864         -
#[::pyo3::pyclass]
  865         -
/// :param recursive_member typing.Optional\[constraints_without_public_constrained_types.model.RecursiveShapesInputOutputNested1\]:
  866         -
/// :rtype None:
  867         -
#[allow(missing_docs)] // documentation missing in model
  868         -
#[derive(
  869         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  870         -
)]
  871         -
pub struct RecursiveShapesInputOutputNested2 {
  872         -
    #[pyo3(get, set)]
  873         -
    /// :type typing.Optional\[constraints_without_public_constrained_types.model.RecursiveShapesInputOutputNested1\]:
  874         -
    #[allow(missing_docs)] // documentation missing in model
  875         -
    pub recursive_member: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
  876         -
}
  877         -
impl RecursiveShapesInputOutputNested2 {
  878         -
    #[allow(missing_docs)] // documentation missing in model
  879         -
    pub fn recursive_member(
  880         -
        &self,
  881         -
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested1> {
  882         -
        self.recursive_member.as_ref()
  883         -
    }
  884         -
}
  885         -
#[allow(clippy::new_without_default)]
  886         -
#[allow(clippy::too_many_arguments)]
  887         -
#[::pyo3::pymethods]
  888         -
impl RecursiveShapesInputOutputNested2 {
  889         -
    #[new]
  890         -
    pub fn new(
  891         -
        recursive_member: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
  892         -
    ) -> Self {
  893         -
        Self { recursive_member }
  894         -
    }
  895         -
    fn __repr__(&self) -> String {
  896         -
        format!("{self:?}")
  897         -
    }
  898         -
    fn __str__(&self) -> String {
  899         -
        format!("{self:?}")
  900         -
    }
  901         -
}
  902         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<RecursiveShapesInputOutputNested2> {
  903         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  904         -
        ob.extract::<RecursiveShapesInputOutputNested2>()
  905         -
            .map(Box::new)
  906         -
    }
  907         -
}
  908         -
  909         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<RecursiveShapesInputOutputNested2> {
  910         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  911         -
        (*self).into_py(py)
  912         -
    }
  913         -
}
  914         -
impl crate::constrained::Constrained for crate::model::RecursiveShapesInputOutputNested2 {
  915         -
    type Unconstrained = crate::model::recursive_shapes_input_output_nested2_internal::Builder;
  916         -
}
  917         -
impl RecursiveShapesInputOutputNested2 {
  918         -
    /// Creates a new builder-style object to manufacture [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
  919         -
    pub fn builder() -> crate::model::recursive_shapes_input_output_nested2::Builder {
  920         -
        crate::model::recursive_shapes_input_output_nested2::Builder::default()
  921         -
    }
  922         -
}
  923         -
  924         -
#[::pyo3::pyclass]
  925         -
/// :param con_b constraints_without_public_constrained_types.model.ConB:
  926         -
/// :param range_integer int:
  927         -
/// :param min_range_integer int:
  928         -
/// :param max_range_integer int:
  929         -
/// :param fixed_value_integer int:
  930         -
/// :param range_short int:
  931         -
/// :param min_range_short int:
  932         -
/// :param max_range_short int:
  933         -
/// :param fixed_value_short int:
  934         -
/// :param range_long int:
  935         -
/// :param min_range_long int:
  936         -
/// :param max_range_long int:
  937         -
/// :param fixed_value_long int:
  938         -
/// :param range_byte int:
  939         -
/// :param min_range_byte int:
  940         -
/// :param max_range_byte int:
  941         -
/// :param fixed_value_byte int:
  942         -
/// :param opt_con_b typing.Optional\[constraints_without_public_constrained_types.model.ConB\]:
  943         -
/// :param length_string typing.Optional\[str\]:
  944         -
/// :param min_length_string typing.Optional\[str\]:
  945         -
/// :param max_length_string typing.Optional\[str\]:
  946         -
/// :param fixed_length_string typing.Optional\[str\]:
  947         -
/// :param length_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
  948         -
/// :param min_length_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
  949         -
/// :param max_length_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
  950         -
/// :param fixed_length_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
  951         -
/// :param con_b_list typing.Optional\[typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]\]:
  952         -
/// :param length_list typing.Optional\[typing.List\[str\]\]:
  953         -
/// :param sensitive_length_list typing.Optional\[typing.List\[constraints_without_public_constrained_types.model.SensitiveStructure\]\]:
  954         -
/// :param con_b_set typing.Optional\[typing.List\[typing.Set\[str\]\]\]:
  955         -
/// :param con_b_map typing.Optional\[typing.Dict\[str, str\]\]:
  956         -
/// :param length_map typing.Optional\[typing.Dict\[str, str\]\]:
  957         -
/// :param map_of_map_of_list_of_list_of_con_b typing.Optional\[typing.Dict\[str, typing.Dict\[str, typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]\]\]\]:
  958         -
/// :param sparse_map typing.Optional\[typing.Dict\[str, typing.Optional\[typing.List\[str\]\]\]\]:
  959         -
/// :param sparse_list typing.Optional\[typing.List\[typing.Optional\[str\]\]\]:
  960         -
/// :param sparse_length_map typing.Optional\[typing.Dict\[str, typing.Optional\[str\]\]\]:
  961         -
/// :param sparse_length_list typing.Optional\[typing.List\[typing.Optional\[str\]\]\]:
  962         -
/// :param constrained_union typing.Optional\[constraints_without_public_constrained_types.model.ConstrainedUnion\]:
  963         -
/// :param enum_string typing.Optional\[constraints_without_public_constrained_types.model.EnumString\]:
  964         -
/// :param list_of_length_string typing.Optional\[typing.List\[str\]\]:
  965         -
/// :param set_of_length_string typing.Optional\[typing.Set\[str\]\]:
  966         -
/// :param map_of_length_string typing.Optional\[typing.Dict\[str, str\]\]:
  967         -
/// :param list_of_length_blob typing.Optional\[typing.List\[constraints_without_public_constrained_types.types.Blob\]\]:
  968         -
/// :param map_of_length_blob typing.Optional\[typing.Dict\[str, constraints_without_public_constrained_types.types.Blob\]\]:
  969         -
/// :param list_of_range_integer typing.Optional\[typing.List\[int\]\]:
  970         -
/// :param set_of_range_integer typing.Optional\[typing.List\[int\]\]:
  971         -
/// :param map_of_range_integer typing.Optional\[typing.Dict\[str, int\]\]:
  972         -
/// :param list_of_range_short typing.Optional\[typing.List\[int\]\]:
  973         -
/// :param set_of_range_short typing.Optional\[typing.List\[int\]\]:
  974         -
/// :param map_of_range_short typing.Optional\[typing.Dict\[str, int\]\]:
  975         -
/// :param list_of_range_long typing.Optional\[typing.List\[int\]\]:
  976         -
/// :param set_of_range_long typing.Optional\[typing.List\[int\]\]:
  977         -
/// :param map_of_range_long typing.Optional\[typing.Dict\[str, int\]\]:
  978         -
/// :param list_of_range_byte typing.Optional\[typing.List\[int\]\]:
  979         -
/// :param set_of_range_byte typing.Optional\[typing.List\[int\]\]:
  980         -
/// :param map_of_range_byte typing.Optional\[typing.Dict\[str, int\]\]:
  981         -
/// :param non_streaming_blob typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
  982         -
/// :param pattern_string typing.Optional\[str\]:
  983         -
/// :param map_of_pattern_string typing.Optional\[typing.Dict\[str, str\]\]:
  984         -
/// :param list_of_pattern_string typing.Optional\[typing.List\[str\]\]:
  985         -
/// :param set_of_pattern_string typing.Optional\[typing.Set\[str\]\]:
  986         -
/// :param length_length_pattern_string typing.Optional\[str\]:
  987         -
/// :param map_of_length_pattern_string typing.Optional\[typing.Dict\[str, str\]\]:
  988         -
/// :param list_of_length_pattern_string typing.Optional\[typing.List\[str\]\]:
  989         -
/// :param set_of_length_pattern_string typing.Optional\[typing.Set\[str\]\]:
  990         -
/// :param length_list_of_pattern_string typing.Optional\[typing.List\[str\]\]:
  991         -
/// :param length_set_of_pattern_string typing.Optional\[typing.Set\[str\]\]:
  992         -
/// :rtype None:
  993         -
#[allow(missing_docs)] // documentation missing in model
  994         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
  995         -
pub struct ConA {
  996         -
    #[pyo3(get, set)]
  997         -
    /// :type constraints_without_public_constrained_types.model.ConB:
  998         -
    #[allow(missing_docs)] // documentation missing in model
  999         -
    pub con_b: crate::model::ConB,
 1000         -
    #[pyo3(get, set)]
 1001         -
    /// :type typing.Optional\[constraints_without_public_constrained_types.model.ConB\]:
 1002         -
    #[allow(missing_docs)] // documentation missing in model
 1003         -
    pub opt_con_b: ::std::option::Option<crate::model::ConB>,
 1004         -
    #[pyo3(get, set)]
 1005         -
    /// :type typing.Optional\[str\]:
 1006         -
    #[allow(missing_docs)] // documentation missing in model
 1007         -
    pub length_string: ::std::option::Option<::std::string::String>,
 1008         -
    #[pyo3(get, set)]
 1009         -
    /// :type typing.Optional\[str\]:
 1010         -
    #[allow(missing_docs)] // documentation missing in model
 1011         -
    pub min_length_string: ::std::option::Option<::std::string::String>,
 1012         -
    #[pyo3(get, set)]
 1013         -
    /// :type typing.Optional\[str\]:
 1014         -
    #[allow(missing_docs)] // documentation missing in model
 1015         -
    pub max_length_string: ::std::option::Option<::std::string::String>,
 1016         -
    #[pyo3(get, set)]
 1017         -
    /// :type typing.Optional\[str\]:
 1018         -
    #[allow(missing_docs)] // documentation missing in model
 1019         -
    pub fixed_length_string: ::std::option::Option<::std::string::String>,
 1020         -
    #[pyo3(get, set)]
 1021         -
    /// :type typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
          97  +
    pub fixed_length_string: ::std::option::Option<::std::string::String>,
          98  +
    #[pyo3(get, set)]
          99  +
    /// :type typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
 1022    100   
    #[allow(missing_docs)] // documentation missing in model
 1023    101   
    pub length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1024    102   
    #[pyo3(get, set)]
 1025    103   
    /// :type typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
 1026    104   
    #[allow(missing_docs)] // documentation missing in model
 1027    105   
    pub min_length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1028    106   
    #[pyo3(get, set)]
 1029    107   
    /// :type typing.Optional\[constraints_without_public_constrained_types.types.Blob\]:
 1030    108   
    #[allow(missing_docs)] // documentation missing in model
 1031    109   
    pub max_length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
@@ -1304,382 +4372,3197 @@
 1324    402   
    }
 1325    403   
    #[allow(missing_docs)] // documentation missing in model
 1326    404   
    pub fn max_length_string(&self) -> ::std::option::Option<&str> {
 1327    405   
        self.max_length_string.as_deref()
 1328    406   
    }
 1329    407   
    #[allow(missing_docs)] // documentation missing in model
 1330    408   
    pub fn fixed_length_string(&self) -> ::std::option::Option<&str> {
 1331    409   
        self.fixed_length_string.as_deref()
 1332    410   
    }
 1333    411   
    #[allow(missing_docs)] // documentation missing in model
 1334         -
    pub fn length_blob(
 1335         -
        &self,
 1336         -
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
 1337         -
        self.length_blob.as_ref()
 1338         -
    }
 1339         -
    #[allow(missing_docs)] // documentation missing in model
 1340         -
    pub fn min_length_blob(
 1341         -
        &self,
 1342         -
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
 1343         -
        self.min_length_blob.as_ref()
 1344         -
    }
 1345         -
    #[allow(missing_docs)] // documentation missing in model
 1346         -
    pub fn max_length_blob(
 1347         -
        &self,
 1348         -
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
 1349         -
        self.max_length_blob.as_ref()
 1350         -
    }
 1351         -
    #[allow(missing_docs)] // documentation missing in model
 1352         -
    pub fn fixed_length_blob(
 1353         -
        &self,
 1354         -
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
 1355         -
        self.fixed_length_blob.as_ref()
 1356         -
    }
 1357         -
    #[allow(missing_docs)] // documentation missing in model
 1358         -
    pub fn range_integer(&self) -> i32 {
 1359         -
        self.range_integer
 1360         -
    }
 1361         -
    #[allow(missing_docs)] // documentation missing in model
 1362         -
    pub fn min_range_integer(&self) -> i32 {
 1363         -
        self.min_range_integer
 1364         -
    }
 1365         -
    #[allow(missing_docs)] // documentation missing in model
 1366         -
    pub fn max_range_integer(&self) -> i32 {
 1367         -
        self.max_range_integer
 1368         -
    }
 1369         -
    #[allow(missing_docs)] // documentation missing in model
 1370         -
    pub fn fixed_value_integer(&self) -> i32 {
 1371         -
        self.fixed_value_integer
 1372         -
    }
 1373         -
    #[allow(missing_docs)] // documentation missing in model
 1374         -
    pub fn range_short(&self) -> i16 {
 1375         -
        self.range_short
 1376         -
    }
 1377         -
    #[allow(missing_docs)] // documentation missing in model
 1378         -
    pub fn min_range_short(&self) -> i16 {
 1379         -
        self.min_range_short
 1380         -
    }
 1381         -
    #[allow(missing_docs)] // documentation missing in model
 1382         -
    pub fn max_range_short(&self) -> i16 {
 1383         -
        self.max_range_short
 1384         -
    }
 1385         -
    #[allow(missing_docs)] // documentation missing in model
 1386         -
    pub fn fixed_value_short(&self) -> i16 {
 1387         -
        self.fixed_value_short
 1388         -
    }
 1389         -
    #[allow(missing_docs)] // documentation missing in model
 1390         -
    pub fn range_long(&self) -> i64 {
 1391         -
        self.range_long
 1392         -
    }
 1393         -
    #[allow(missing_docs)] // documentation missing in model
 1394         -
    pub fn min_range_long(&self) -> i64 {
 1395         -
        self.min_range_long
 1396         -
    }
 1397         -
    #[allow(missing_docs)] // documentation missing in model
 1398         -
    pub fn max_range_long(&self) -> i64 {
 1399         -
        self.max_range_long
 1400         -
    }
 1401         -
    #[allow(missing_docs)] // documentation missing in model
 1402         -
    pub fn fixed_value_long(&self) -> i64 {
 1403         -
        self.fixed_value_long
 1404         -
    }
 1405         -
    #[allow(missing_docs)] // documentation missing in model
 1406         -
    pub fn range_byte(&self) -> i8 {
 1407         -
        self.range_byte
 1408         -
    }
 1409         -
    #[allow(missing_docs)] // documentation missing in model
 1410         -
    pub fn min_range_byte(&self) -> i8 {
 1411         -
        self.min_range_byte
 1412         -
    }
 1413         -
    #[allow(missing_docs)] // documentation missing in model
 1414         -
    pub fn max_range_byte(&self) -> i8 {
 1415         -
        self.max_range_byte
 1416         -
    }
 1417         -
    #[allow(missing_docs)] // documentation missing in model
 1418         -
    pub fn fixed_value_byte(&self) -> i8 {
 1419         -
        self.fixed_value_byte
 1420         -
    }
 1421         -
    #[allow(missing_docs)] // documentation missing in model
 1422         -
    pub fn con_b_list(&self) -> ::std::option::Option<&[::std::vec::Vec<crate::model::ConB>]> {
 1423         -
        self.con_b_list.as_deref()
 1424         -
    }
 1425         -
    #[allow(missing_docs)] // documentation missing in model
 1426         -
    pub fn length_list(&self) -> ::std::option::Option<&[::std::string::String]> {
 1427         -
        self.length_list.as_deref()
 1428         -
    }
 1429         -
    #[allow(missing_docs)] // documentation missing in model
 1430         -
    pub fn sensitive_length_list(
 1431         -
        &self,
 1432         -
    ) -> ::std::option::Option<&[crate::model::SensitiveStructure]> {
 1433         -
        self.sensitive_length_list.as_deref()
 1434         -
    }
 1435         -
    #[allow(missing_docs)] // documentation missing in model
 1436         -
    pub fn con_b_set(&self) -> ::std::option::Option<&[::std::vec::Vec<::std::string::String>]> {
 1437         -
        self.con_b_set.as_deref()
 1438         -
    }
 1439         -
    #[allow(missing_docs)] // documentation missing in model
 1440         -
    pub fn con_b_map(
 1441         -
        &self,
 1442         -
    ) -> ::std::option::Option<
 1443         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1444         -
    > {
 1445         -
        self.con_b_map.as_ref()
 1446         -
    }
 1447         -
    #[allow(missing_docs)] // documentation missing in model
 1448         -
    pub fn length_map(
 1449         -
        &self,
 1450         -
    ) -> ::std::option::Option<
 1451         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1452         -
    > {
 1453         -
        self.length_map.as_ref()
 1454         -
    }
 1455         -
    #[allow(missing_docs)] // documentation missing in model
 1456         -
    pub fn map_of_map_of_list_of_list_of_con_b(
 1457         -
        &self,
 1458         -
    ) -> ::std::option::Option<
 1459         -
        &::std::collections::HashMap<
 1460         -
            ::std::string::String,
 1461         -
            ::std::collections::HashMap<
 1462         -
                ::std::string::String,
 1463         -
                ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>,
 1464         -
            >,
 1465         -
        >,
 1466         -
    > {
 1467         -
        self.map_of_map_of_list_of_list_of_con_b.as_ref()
 1468         -
    }
 1469         -
    #[allow(missing_docs)] // documentation missing in model
 1470         -
    pub fn sparse_map(
 1471         -
        &self,
 1472         -
    ) -> ::std::option::Option<
 1473         -
        &::std::collections::HashMap<
 1474         -
            ::std::string::String,
 1475         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1476         -
        >,
 1477         -
    > {
 1478         -
        self.sparse_map.as_ref()
 1479         -
    }
 1480         -
    #[allow(missing_docs)] // documentation missing in model
 1481         -
    pub fn sparse_list(
 1482         -
        &self,
 1483         -
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
 1484         -
        self.sparse_list.as_deref()
 1485         -
    }
 1486         -
    #[allow(missing_docs)] // documentation missing in model
 1487         -
    pub fn sparse_length_map(
 1488         -
        &self,
 1489         -
    ) -> ::std::option::Option<
 1490         -
        &::std::collections::HashMap<
 1491         -
            ::std::string::String,
 1492         -
            ::std::option::Option<::std::string::String>,
 1493         -
        >,
 1494         -
    > {
 1495         -
        self.sparse_length_map.as_ref()
 1496         -
    }
 1497         -
    #[allow(missing_docs)] // documentation missing in model
 1498         -
    pub fn sparse_length_list(
 1499         -
        &self,
 1500         -
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
 1501         -
        self.sparse_length_list.as_deref()
 1502         -
    }
 1503         -
    /// A union with constrained members.
 1504         -
    pub fn constrained_union(&self) -> ::std::option::Option<&crate::model::ConstrainedUnion> {
 1505         -
        self.constrained_union.as_ref()
 1506         -
    }
 1507         -
    #[allow(missing_docs)] // documentation missing in model
 1508         -
    pub fn enum_string(&self) -> ::std::option::Option<&crate::model::EnumString> {
 1509         -
        self.enum_string.as_ref()
 1510         -
    }
 1511         -
    #[allow(missing_docs)] // documentation missing in model
 1512         -
    pub fn list_of_length_string(&self) -> ::std::option::Option<&[::std::string::String]> {
 1513         -
        self.list_of_length_string.as_deref()
 1514         -
    }
 1515         -
    #[allow(missing_docs)] // documentation missing in model
 1516         -
    pub fn set_of_length_string(
 1517         -
        &self,
 1518         -
    ) -> ::std::option::Option<&::std::vec::Vec<::std::string::String>> {
 1519         -
        self.set_of_length_string.as_ref()
 1520         -
    }
 1521         -
    #[allow(missing_docs)] // documentation missing in model
 1522         -
    pub fn map_of_length_string(
 1523         -
        &self,
 1524         -
    ) -> ::std::option::Option<
 1525         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1526         -
    > {
 1527         -
        self.map_of_length_string.as_ref()
 1528         -
    }
 1529         -
    #[allow(missing_docs)] // documentation missing in model
 1530         -
    pub fn list_of_length_blob(
 1531         -
        &self,
 1532         -
    ) -> ::std::option::Option<&[::aws_smithy_http_server_python::types::Blob]> {
 1533         -
        self.list_of_length_blob.as_deref()
 1534         -
    }
 1535         -
    #[allow(missing_docs)] // documentation missing in model
 1536         -
    pub fn map_of_length_blob(
         412  +
    pub fn length_blob(
 1537    413   
        &self,
 1538         -
    ) -> ::std::option::Option<
 1539         -
        &::std::collections::HashMap<
 1540         -
            ::std::string::String,
 1541         -
            ::aws_smithy_http_server_python::types::Blob,
 1542         -
        >,
 1543         -
    > {
 1544         -
        self.map_of_length_blob.as_ref()
         414  +
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
         415  +
        self.length_blob.as_ref()
 1545    416   
    }
 1546    417   
    #[allow(missing_docs)] // documentation missing in model
 1547         -
    pub fn list_of_range_integer(&self) -> ::std::option::Option<&[i32]> {
 1548         -
        self.list_of_range_integer.as_deref()
         418  +
    pub fn min_length_blob(
         419  +
        &self,
         420  +
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
         421  +
        self.min_length_blob.as_ref()
 1549    422   
    }
 1550    423   
    #[allow(missing_docs)] // documentation missing in model
 1551         -
    pub fn set_of_range_integer(&self) -> ::std::option::Option<&[i32]> {
 1552         -
        self.set_of_range_integer.as_deref()
         424  +
    pub fn max_length_blob(
         425  +
        &self,
         426  +
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
         427  +
        self.max_length_blob.as_ref()
 1553    428   
    }
 1554    429   
    #[allow(missing_docs)] // documentation missing in model
 1555         -
    pub fn map_of_range_integer(
         430  +
    pub fn fixed_length_blob(
 1556    431   
        &self,
 1557         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
 1558         -
        self.map_of_range_integer.as_ref()
         432  +
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
         433  +
        self.fixed_length_blob.as_ref()
 1559    434   
    }
 1560    435   
    #[allow(missing_docs)] // documentation missing in model
 1561         -
    pub fn list_of_range_short(&self) -> ::std::option::Option<&[i16]> {
 1562         -
        self.list_of_range_short.as_deref()
         436  +
    pub fn range_integer(&self) -> i32 {
         437  +
        self.range_integer
 1563    438   
    }
 1564    439   
    #[allow(missing_docs)] // documentation missing in model
 1565         -
    pub fn set_of_range_short(&self) -> ::std::option::Option<&[i16]> {
 1566         -
        self.set_of_range_short.as_deref()
         440  +
    pub fn min_range_integer(&self) -> i32 {
         441  +
        self.min_range_integer
 1567    442   
    }
 1568    443   
    #[allow(missing_docs)] // documentation missing in model
 1569         -
    pub fn map_of_range_short(
 1570         -
        &self,
 1571         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i16>> {
 1572         -
        self.map_of_range_short.as_ref()
         444  +
    pub fn max_range_integer(&self) -> i32 {
         445  +
        self.max_range_integer
 1573    446   
    }
 1574    447   
    #[allow(missing_docs)] // documentation missing in model
 1575         -
    pub fn list_of_range_long(&self) -> ::std::option::Option<&[i64]> {
 1576         -
        self.list_of_range_long.as_deref()
         448  +
    pub fn fixed_value_integer(&self) -> i32 {
         449  +
        self.fixed_value_integer
 1577    450   
    }
 1578    451   
    #[allow(missing_docs)] // documentation missing in model
 1579         -
    pub fn set_of_range_long(&self) -> ::std::option::Option<&[i64]> {
 1580         -
        self.set_of_range_long.as_deref()
         452  +
    pub fn range_short(&self) -> i16 {
         453  +
        self.range_short
 1581    454   
    }
 1582    455   
    #[allow(missing_docs)] // documentation missing in model
 1583         -
    pub fn map_of_range_long(
 1584         -
        &self,
 1585         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i64>> {
 1586         -
        self.map_of_range_long.as_ref()
         456  +
    pub fn min_range_short(&self) -> i16 {
         457  +
        self.min_range_short
 1587    458   
    }
 1588    459   
    #[allow(missing_docs)] // documentation missing in model
 1589         -
    pub fn list_of_range_byte(&self) -> ::std::option::Option<&[i8]> {
 1590         -
        self.list_of_range_byte.as_deref()
         460  +
    pub fn max_range_short(&self) -> i16 {
         461  +
        self.max_range_short
 1591    462   
    }
 1592    463   
    #[allow(missing_docs)] // documentation missing in model
 1593         -
    pub fn set_of_range_byte(&self) -> ::std::option::Option<&[i8]> {
 1594         -
        self.set_of_range_byte.as_deref()
         464  +
    pub fn fixed_value_short(&self) -> i16 {
         465  +
        self.fixed_value_short
 1595    466   
    }
 1596    467   
    #[allow(missing_docs)] // documentation missing in model
 1597         -
    pub fn map_of_range_byte(
 1598         -
        &self,
 1599         -
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i8>> {
 1600         -
        self.map_of_range_byte.as_ref()
         468  +
    pub fn range_long(&self) -> i64 {
         469  +
        self.range_long
 1601    470   
    }
 1602    471   
    #[allow(missing_docs)] // documentation missing in model
 1603         -
    pub fn non_streaming_blob(
 1604         -
        &self,
 1605         -
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
 1606         -
        self.non_streaming_blob.as_ref()
         472  +
    pub fn min_range_long(&self) -> i64 {
         473  +
        self.min_range_long
 1607    474   
    }
 1608    475   
    #[allow(missing_docs)] // documentation missing in model
 1609         -
    pub fn pattern_string(&self) -> ::std::option::Option<&str> {
 1610         -
        self.pattern_string.as_deref()
         476  +
    pub fn max_range_long(&self) -> i64 {
         477  +
        self.max_range_long
 1611    478   
    }
 1612    479   
    #[allow(missing_docs)] // documentation missing in model
 1613         -
    pub fn map_of_pattern_string(
 1614         -
        &self,
 1615         -
    ) -> ::std::option::Option<
 1616         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1617         -
    > {
 1618         -
        self.map_of_pattern_string.as_ref()
         480  +
    pub fn fixed_value_long(&self) -> i64 {
         481  +
        self.fixed_value_long
 1619    482   
    }
 1620    483   
    #[allow(missing_docs)] // documentation missing in model
 1621         -
    pub fn list_of_pattern_string(&self) -> ::std::option::Option<&[::std::string::String]> {
 1622         -
        self.list_of_pattern_string.as_deref()
         484  +
    pub fn range_byte(&self) -> i8 {
         485  +
        self.range_byte
 1623    486   
    }
 1624    487   
    #[allow(missing_docs)] // documentation missing in model
 1625         -
    pub fn set_of_pattern_string(
 1626         -
        &self,
 1627         -
    ) -> ::std::option::Option<&::std::vec::Vec<::std::string::String>> {
 1628         -
        self.set_of_pattern_string.as_ref()
         488  +
    pub fn min_range_byte(&self) -> i8 {
         489  +
        self.min_range_byte
 1629    490   
    }
 1630    491   
    #[allow(missing_docs)] // documentation missing in model
 1631         -
    pub fn length_length_pattern_string(&self) -> ::std::option::Option<&str> {
 1632         -
        self.length_length_pattern_string.as_deref()
         492  +
    pub fn max_range_byte(&self) -> i8 {
         493  +
        self.max_range_byte
 1633    494   
    }
 1634    495   
    #[allow(missing_docs)] // documentation missing in model
 1635         -
    pub fn map_of_length_pattern_string(
 1636         -
        &self,
 1637         -
    ) -> ::std::option::Option<
 1638         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1639         -
    > {
 1640         -
        self.map_of_length_pattern_string.as_ref()
         496  +
    pub fn fixed_value_byte(&self) -> i8 {
         497  +
        self.fixed_value_byte
 1641    498   
    }
 1642    499   
    #[allow(missing_docs)] // documentation missing in model
 1643         -
    pub fn list_of_length_pattern_string(&self) -> ::std::option::Option<&[::std::string::String]> {
 1644         -
        self.list_of_length_pattern_string.as_deref()
         500  +
    pub fn con_b_list(&self) -> ::std::option::Option<&[::std::vec::Vec<crate::model::ConB>]> {
         501  +
        self.con_b_list.as_deref()
 1645    502   
    }
 1646    503   
    #[allow(missing_docs)] // documentation missing in model
 1647         -
    pub fn set_of_length_pattern_string(
 1648         -
        &self,
 1649         -
    ) -> ::std::option::Option<&::std::vec::Vec<::std::string::String>> {
 1650         -
        self.set_of_length_pattern_string.as_ref()
         504  +
    pub fn length_list(&self) -> ::std::option::Option<&[::std::string::String]> {
         505  +
        self.length_list.as_deref()
 1651    506   
    }
 1652    507   
    #[allow(missing_docs)] // documentation missing in model
 1653         -
    pub fn length_list_of_pattern_string(&self) -> ::std::option::Option<&[::std::string::String]> {
 1654         -
        self.length_list_of_pattern_string.as_deref()
         508  +
    pub fn sensitive_length_list(
         509  +
        &self,
         510  +
    ) -> ::std::option::Option<&[crate::model::SensitiveStructure]> {
         511  +
        self.sensitive_length_list.as_deref()
 1655    512   
    }
 1656    513   
    #[allow(missing_docs)] // documentation missing in model
 1657         -
    pub fn length_set_of_pattern_string(
 1658         -
        &self,
 1659         -
    ) -> ::std::option::Option<&::std::vec::Vec<::std::string::String>> {
 1660         -
        self.length_set_of_pattern_string.as_ref()
         514  +
    pub fn con_b_set(&self) -> ::std::option::Option<&[::std::vec::Vec<::std::string::String>]> {
         515  +
        self.con_b_set.as_deref()
 1661    516   
    }
 1662         -
}
 1663         -
#[allow(clippy::new_without_default)]
 1664         -
#[allow(clippy::too_many_arguments)]
 1665         -
#[::pyo3::pymethods]
 1666         -
impl ConA {
 1667         -
    #[new]
 1668         -
    pub fn new(
 1669         -
        con_b: crate::model::ConB,
 1670         -
        range_integer: i32,
 1671         -
        min_range_integer: i32,
 1672         -
        max_range_integer: i32,
 1673         -
        fixed_value_integer: i32,
 1674         -
        range_short: i16,
 1675         -
        min_range_short: i16,
 1676         -
        max_range_short: i16,
 1677         -
        fixed_value_short: i16,
 1678         -
        range_long: i64,
 1679         -
        min_range_long: i64,
 1680         -
        max_range_long: i64,
 1681         -
        fixed_value_long: i64,
 1682         -
        range_byte: i8,
 1683         -
        min_range_byte: i8,
 1684         -
        max_range_byte: i8,
 1685         -
        fixed_value_byte: i8,
 1686         -
        opt_con_b: ::std::option::Option<crate::model::ConB>,
 1687         -
        length_string: ::std::option::Option<::std::string::String>,
 1688         -
        min_length_string: ::std::option::Option<::std::string::String>,
 1689         -
        max_length_string: ::std::option::Option<::std::string::String>,
 1690         -
        fixed_length_string: ::std::option::Option<::std::string::String>,
 1691         -
        length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1692         -
        min_length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1693         -
        max_length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1694         -
        fixed_length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1695         -
        con_b_list: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>>,
 1696         -
        length_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1697         -
        sensitive_length_list: ::std::option::Option<
 1698         -
            ::std::vec::Vec<crate::model::SensitiveStructure>,
 1699         -
        >,
 1700         -
        con_b_set: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 1701         -
        con_b_map: ::std::option::Option<
 1702         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1703         -
        >,
 1704         -
        length_map: ::std::option::Option<
 1705         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1706         -
        >,
 1707         -
        map_of_map_of_list_of_list_of_con_b: ::std::option::Option<
 1708         -
            ::std::collections::HashMap<
 1709         -
                ::std::string::String,
 1710         -
                ::std::collections::HashMap<
 1711         -
                    ::std::string::String,
 1712         -
                    ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>,
 1713         -
                >,
 1714         -
            >,
 1715         -
        >,
 1716         -
        sparse_map: ::std::option::Option<
 1717         -
            ::std::collections::HashMap<
 1718         -
                ::std::string::String,
 1719         -
                ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1720         -
            >,
 1721         -
        >,
 1722         -
        sparse_list: ::std::option::Option<
 1723         -
            ::std::vec::Vec<::std::option::Option<::std::string::String>>,
 1724         -
        >,
 1725         -
        sparse_length_map: ::std::option::Option<
 1726         -
            ::std::collections::HashMap<
 1727         -
                ::std::string::String,
 1728         -
                ::std::option::Option<::std::string::String>,
 1729         -
            >,
 1730         -
        >,
 1731         -
        sparse_length_list: ::std::option::Option<
 1732         -
            ::std::vec::Vec<::std::option::Option<::std::string::String>>,
 1733         -
        >,
 1734         -
        constrained_union: ::std::option::Option<crate::model::ConstrainedUnion>,
 1735         -
        enum_string: ::std::option::Option<crate::model::EnumString>,
 1736         -
        list_of_length_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1737         -
        set_of_length_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1738         -
        map_of_length_string: ::std::option::Option<
 1739         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1740         -
        >,
 1741         -
        list_of_length_blob: ::std::option::Option<
 1742         -
            ::std::vec::Vec<::aws_smithy_http_server_python::types::Blob>,
 1743         -
        >,
 1744         -
        map_of_length_blob: ::std::option::Option<
 1745         -
            ::std::collections::HashMap<
 1746         -
                ::std::string::String,
 1747         -
                ::aws_smithy_http_server_python::types::Blob,
 1748         -
            >,
 1749         -
        >,
 1750         -
        list_of_range_integer: ::std::option::Option<::std::vec::Vec<i32>>,
 1751         -
        set_of_range_integer: ::std::option::Option<::std::vec::Vec<i32>>,
 1752         -
        map_of_range_integer: ::std::option::Option<
 1753         -
            ::std::collections::HashMap<::std::string::String, i32>,
 1754         -
        >,
 1755         -
        list_of_range_short: ::std::option::Option<::std::vec::Vec<i16>>,
 1756         -
        set_of_range_short: ::std::option::Option<::std::vec::Vec<i16>>,
 1757         -
        map_of_range_short: ::std::option::Option<
 1758         -
            ::std::collections::HashMap<::std::string::String, i16>,
 1759         -
        >,
 1760         -
        list_of_range_long: ::std::option::Option<::std::vec::Vec<i64>>,
 1761         -
        set_of_range_long: ::std::option::Option<::std::vec::Vec<i64>>,
 1762         -
        map_of_range_long: ::std::option::Option<
 1763         -
            ::std::collections::HashMap<::std::string::String, i64>,
 1764         -
        >,
 1765         -
        list_of_range_byte: ::std::option::Option<::std::vec::Vec<i8>>,
 1766         -
        set_of_range_byte: ::std::option::Option<::std::vec::Vec<i8>>,
 1767         -
        map_of_range_byte: ::std::option::Option<
 1768         -
            ::std::collections::HashMap<::std::string::String, i8>,
 1769         -
        >,
 1770         -
        non_streaming_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 1771         -
        pattern_string: ::std::option::Option<::std::string::String>,
 1772         -
        map_of_pattern_string: ::std::option::Option<
 1773         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1774         -
        >,
 1775         -
        list_of_pattern_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1776         -
        set_of_pattern_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1777         -
        length_length_pattern_string: ::std::option::Option<::std::string::String>,
 1778         -
        map_of_length_pattern_string: ::std::option::Option<
 1779         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1780         -
        >,
 1781         -
        list_of_length_pattern_string: ::std::option::Option<
 1782         -
            ::std::vec::Vec<::std::string::String>,
         517  +
    #[allow(missing_docs)] // documentation missing in model
         518  +
    pub fn con_b_map(
         519  +
        &self,
         520  +
    ) -> ::std::option::Option<
         521  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
         522  +
    > {
         523  +
        self.con_b_map.as_ref()
         524  +
    }
         525  +
    #[allow(missing_docs)] // documentation missing in model
         526  +
    pub fn length_map(
         527  +
        &self,
         528  +
    ) -> ::std::option::Option<
         529  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
         530  +
    > {
         531  +
        self.length_map.as_ref()
         532  +
    }
         533  +
    #[allow(missing_docs)] // documentation missing in model
         534  +
    pub fn map_of_map_of_list_of_list_of_con_b(
         535  +
        &self,
         536  +
    ) -> ::std::option::Option<
         537  +
        &::std::collections::HashMap<
         538  +
            ::std::string::String,
         539  +
            ::std::collections::HashMap<
         540  +
                ::std::string::String,
         541  +
                ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>,
         542  +
            >,
 1783    543   
        >,
 1784         -
        set_of_length_pattern_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1785         -
        length_list_of_pattern_string: ::std::option::Option<
 1786         -
            ::std::vec::Vec<::std::string::String>,
         544  +
    > {
         545  +
        self.map_of_map_of_list_of_list_of_con_b.as_ref()
         546  +
    }
         547  +
    #[allow(missing_docs)] // documentation missing in model
         548  +
    pub fn sparse_map(
         549  +
        &self,
         550  +
    ) -> ::std::option::Option<
         551  +
        &::std::collections::HashMap<
         552  +
            ::std::string::String,
         553  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1787    554   
        >,
 1788         -
        length_set_of_pattern_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 1789         -
    ) -> Self {
 1790         -
        Self {
 1791         -
            con_b,
 1792         -
            range_integer,
 1793         -
            min_range_integer,
 1794         -
            max_range_integer,
 1795         -
            fixed_value_integer,
 1796         -
            range_short,
 1797         -
            min_range_short,
 1798         -
            max_range_short,
 1799         -
            fixed_value_short,
 1800         -
            range_long,
 1801         -
            min_range_long,
 1802         -
            max_range_long,
 1803         -
            fixed_value_long,
 1804         -
            range_byte,
 1805         -
            min_range_byte,
 1806         -
            max_range_byte,
 1807         -
            fixed_value_byte,
 1808         -
            opt_con_b,
 1809         -
            length_string,
 1810         -
            min_length_string,
 1811         -
            max_length_string,
 1812         -
            fixed_length_string,
 1813         -
            length_blob,
 1814         -
            min_length_blob,
 1815         -
            max_length_blob,
 1816         -
            fixed_length_blob,
 1817         -
            con_b_list,
 1818         -
            length_list,
 1819         -
            sensitive_length_list,
 1820         -
            con_b_set,
 1821         -
            con_b_map,
 1822         -
            length_map,
 1823         -
            map_of_map_of_list_of_list_of_con_b,
 1824         -
            sparse_map,
 1825         -
            sparse_list,
 1826         -
            sparse_length_map,
 1827         -
            sparse_length_list,
 1828         -
            constrained_union,
 1829         -
            enum_string,
 1830         -
            list_of_length_string,
 1831         -
            set_of_length_string,
 1832         -
            map_of_length_string,
 1833         -
            list_of_length_blob,
 1834         -
            map_of_length_blob,
 1835         -
            list_of_range_integer,
 1836         -
            set_of_range_integer,
 1837         -
            map_of_range_integer,
 1838         -
            list_of_range_short,
 1839         -
            set_of_range_short,
 1840         -
            map_of_range_short,
 1841         -
            list_of_range_long,
 1842         -
            set_of_range_long,
 1843         -
            map_of_range_long,
 1844         -
            list_of_range_byte,
 1845         -
            set_of_range_byte,
 1846         -
            map_of_range_byte,
 1847         -
            non_streaming_blob,
 1848         -
            pattern_string,
 1849         -
            map_of_pattern_string,
 1850         -
            list_of_pattern_string,
 1851         -
            set_of_pattern_string,
 1852         -
            length_length_pattern_string,
 1853         -
            map_of_length_pattern_string,
 1854         -
            list_of_length_pattern_string,
 1855         -
            set_of_length_pattern_string,
 1856         -
            length_list_of_pattern_string,
 1857         -
            length_set_of_pattern_string,
 1858         -
        }
         555  +
    > {
         556  +
        self.sparse_map.as_ref()
 1859    557   
    }
 1860         -
    fn __repr__(&self) -> String {
 1861         -
        format!("{self:?}")
         558  +
    #[allow(missing_docs)] // documentation missing in model
         559  +
    pub fn sparse_list(
         560  +
        &self,
         561  +
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
         562  +
        self.sparse_list.as_deref()
 1862    563   
    }
 1863         -
    fn __str__(&self) -> String {
 1864         -
        format!("{self:?}")
         564  +
    #[allow(missing_docs)] // documentation missing in model
         565  +
    pub fn sparse_length_map(
         566  +
        &self,
         567  +
    ) -> ::std::option::Option<
         568  +
        &::std::collections::HashMap<
         569  +
            ::std::string::String,
         570  +
            ::std::option::Option<::std::string::String>,
         571  +
        >,
         572  +
    > {
         573  +
        self.sparse_length_map.as_ref()
 1865    574   
    }
 1866         -
}
 1867         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ConA> {
 1868         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1869         -
        ob.extract::<ConA>().map(Box::new)
         575  +
    #[allow(missing_docs)] // documentation missing in model
         576  +
    pub fn sparse_length_list(
         577  +
        &self,
         578  +
    ) -> ::std::option::Option<&[::std::option::Option<::std::string::String>]> {
         579  +
        self.sparse_length_list.as_deref()
 1870    580   
    }
 1871         -
}
 1872         -
 1873         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ConA> {
 1874         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1875         -
        (*self).into_py(py)
         581  +
    /// A union with constrained members.
         582  +
    pub fn constrained_union(&self) -> ::std::option::Option<&crate::model::ConstrainedUnion> {
         583  +
        self.constrained_union.as_ref()
 1876    584   
    }
 1877         -
}
 1878         -
impl crate::constrained::Constrained for crate::model::ConA {
 1879         -
    type Unconstrained = crate::model::con_a_internal::Builder;
 1880         -
}
 1881         -
impl ConA {
 1882         -
    /// Creates a new builder-style object to manufacture [`ConA`](crate::model::ConA).
 1883         -
    pub fn builder() -> crate::model::con_a::Builder {
 1884         -
        crate::model::con_a::Builder::default()
         585  +
    #[allow(missing_docs)] // documentation missing in model
         586  +
    pub fn enum_string(&self) -> ::std::option::Option<&crate::model::EnumString> {
         587  +
        self.enum_string.as_ref()
 1885    588   
    }
 1886         -
}
 1887         -
 1888         -
#[allow(missing_docs)] // documentation missing in model
 1889         -
///
 1890         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1891         -
/// [constraint traits]. Use [`LengthSetOfPatternString::try_from`] to construct values of this type.
 1892         -
///
 1893         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1894         -
///
 1895         -
#[derive(
 1896         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1897         -
)]
 1898         -
pub(crate) struct LengthSetOfPatternString(pub(crate) ::std::vec::Vec<crate::model::PatternString>);
 1899         -
impl LengthSetOfPatternString {
 1900         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::PatternString>`].
 1901         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::PatternString> {
 1902         -
        self.0
         589  +
    #[allow(missing_docs)] // documentation missing in model
         590  +
    pub fn list_of_length_string(&self) -> ::std::option::Option<&[::std::string::String]> {
         591  +
        self.list_of_length_string.as_deref()
 1903    592   
    }
 1904         -
 1905         -
    fn check_length(
 1906         -
        length: usize,
 1907         -
    ) -> ::std::result::Result<
 1908         -
        (),
 1909         -
        crate::model::length_set_of_pattern_string_internal::ConstraintViolation,
         593  +
    #[allow(missing_docs)] // documentation missing in model
         594  +
    pub fn set_of_length_string(
         595  +
        &self,
         596  +
    ) -> ::std::option::Option<&::std::vec::Vec<::std::string::String>> {
         597  +
        self.set_of_length_string.as_ref()
         598  +
    }
         599  +
    #[allow(missing_docs)] // documentation missing in model
         600  +
    pub fn map_of_length_string(
         601  +
        &self,
         602  +
    ) -> ::std::option::Option<
         603  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 1910    604   
    > {
 1911         -
        if (5..=9).contains(&length) {
 1912         -
            Ok(())
 1913         -
        } else {
 1914         -
            Err(
 1915         -
                crate::model::length_set_of_pattern_string_internal::ConstraintViolation::Length(
 1916         -
                    length,
 1917         -
                ),
 1918         -
            )
 1919         -
        }
         605  +
        self.map_of_length_string.as_ref()
 1920    606   
    }
 1921         -
 1922         -
    fn check_unique_items(
 1923         -
        items: ::std::vec::Vec<crate::model::PatternString>,
 1924         -
    ) -> ::std::result::Result<
 1925         -
        ::std::vec::Vec<crate::model::PatternString>,
 1926         -
        crate::model::length_set_of_pattern_string_internal::ConstraintViolation,
         607  +
    #[allow(missing_docs)] // documentation missing in model
         608  +
    pub fn list_of_length_blob(
         609  +
        &self,
         610  +
    ) -> ::std::option::Option<&[::aws_smithy_http_server_python::types::Blob]> {
         611  +
        self.list_of_length_blob.as_deref()
         612  +
    }
         613  +
    #[allow(missing_docs)] // documentation missing in model
         614  +
    pub fn map_of_length_blob(
         615  +
        &self,
         616  +
    ) -> ::std::option::Option<
         617  +
        &::std::collections::HashMap<
         618  +
            ::std::string::String,
         619  +
            ::aws_smithy_http_server_python::types::Blob,
         620  +
        >,
 1927    621   
    > {
 1928         -
        let mut seen = ::std::collections::HashMap::new();
 1929         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 1930         -
        for (idx, item) in items.iter().enumerate() {
 1931         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 1932         -
                duplicate_indices.push(prev_idx);
 1933         -
            }
 1934         -
        }
 1935         -
 1936         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 1937         -
        for idx in &duplicate_indices {
 1938         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 1939         -
                last_duplicate_indices.push(prev_idx);
 1940         -
            }
 1941         -
        }
 1942         -
        duplicate_indices.extend(last_duplicate_indices);
 1943         -
 1944         -
        if !duplicate_indices.is_empty() {
 1945         -
            debug_assert!(duplicate_indices.len() >= 2);
 1946         -
            Err(crate::model::length_set_of_pattern_string_internal::ConstraintViolation::UniqueItems { duplicate_indices, original: items })
 1947         -
        } else {
 1948         -
            Ok(items)
 1949         -
        }
         622  +
        self.map_of_length_blob.as_ref()
         623  +
    }
         624  +
    #[allow(missing_docs)] // documentation missing in model
         625  +
    pub fn list_of_range_integer(&self) -> ::std::option::Option<&[i32]> {
         626  +
        self.list_of_range_integer.as_deref()
         627  +
    }
         628  +
    #[allow(missing_docs)] // documentation missing in model
         629  +
    pub fn set_of_range_integer(&self) -> ::std::option::Option<&[i32]> {
         630  +
        self.set_of_range_integer.as_deref()
         631  +
    }
         632  +
    #[allow(missing_docs)] // documentation missing in model
         633  +
    pub fn map_of_range_integer(
         634  +
        &self,
         635  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i32>> {
         636  +
        self.map_of_range_integer.as_ref()
 1950    637   
    }
 1951         -
}
 1952         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::PatternString>>
 1953         -
    for LengthSetOfPatternString
 1954         -
{
 1955         -
    type Error = crate::model::length_set_of_pattern_string_internal::ConstraintViolation;
 1956         -
 1957         -
    /// Constructs a `LengthSetOfPatternString` from an [`::std::vec::Vec<crate::model::PatternString>`], failing when the provided value does not satisfy the modeled constraints.
 1958         -
    fn try_from(
 1959         -
        value: ::std::vec::Vec<crate::model::PatternString>,
 1960         -
    ) -> ::std::result::Result<Self, Self::Error> {
 1961         -
        Self::check_length(value.len())?;
 1962         -
 1963         -
        let value = Self::check_unique_items(value)?;
 1964         -
 1965         -
        Ok(Self(value))
         638  +
    #[allow(missing_docs)] // documentation missing in model
         639  +
    pub fn list_of_range_short(&self) -> ::std::option::Option<&[i16]> {
         640  +
        self.list_of_range_short.as_deref()
 1966    641   
    }
 1967         -
}
 1968         -
 1969         -
impl ::std::convert::From<LengthSetOfPatternString>
 1970         -
    for ::std::vec::Vec<crate::model::PatternString>
 1971         -
{
 1972         -
    fn from(value: LengthSetOfPatternString) -> Self {
 1973         -
        value.into_inner()
         642  +
    #[allow(missing_docs)] // documentation missing in model
         643  +
    pub fn set_of_range_short(&self) -> ::std::option::Option<&[i16]> {
         644  +
        self.set_of_range_short.as_deref()
 1974    645   
    }
 1975         -
}
 1976         -
impl ::std::convert::From<LengthSetOfPatternString> for ::std::vec::Vec<::std::string::String> {
 1977         -
    fn from(value: LengthSetOfPatternString) -> Self {
 1978         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
         646  +
    #[allow(missing_docs)] // documentation missing in model
         647  +
    pub fn map_of_range_short(
         648  +
        &self,
         649  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i16>> {
         650  +
        self.map_of_range_short.as_ref()
 1979    651   
    }
 1980         -
}
 1981         -
impl crate::constrained::Constrained for LengthSetOfPatternString {
 1982         -
    type Unconstrained = crate::unconstrained::length_set_of_pattern_string_unconstrained::LengthSetOfPatternStringUnconstrained;
 1983         -
}
 1984         -
 1985         -
#[allow(missing_docs)] // documentation missing in model
 1986         -
///
 1987         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1988         -
/// [constraint traits]. Use [`SetOfLengthPatternString::try_from`] to construct values of this type.
 1989         -
///
 1990         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1991         -
///
 1992         -
#[derive(
 1993         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1994         -
)]
 1995         -
pub(crate) struct SetOfLengthPatternString(
 1996         -
    pub(crate) ::std::vec::Vec<crate::model::LengthPatternString>,
 1997         -
);
 1998         -
impl SetOfLengthPatternString {
 1999         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::LengthPatternString>`].
 2000         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::LengthPatternString> {
 2001         -
        self.0
         652  +
    #[allow(missing_docs)] // documentation missing in model
         653  +
    pub fn list_of_range_long(&self) -> ::std::option::Option<&[i64]> {
         654  +
        self.list_of_range_long.as_deref()
 2002    655   
    }
 2003         -
 2004         -
    fn check_unique_items(
 2005         -
        items: ::std::vec::Vec<crate::model::LengthPatternString>,
 2006         -
    ) -> ::std::result::Result<
 2007         -
        ::std::vec::Vec<crate::model::LengthPatternString>,
 2008         -
        crate::model::set_of_length_pattern_string_internal::ConstraintViolation,
 2009         -
    > {
 2010         -
        let mut seen = ::std::collections::HashMap::new();
 2011         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 2012         -
        for (idx, item) in items.iter().enumerate() {
 2013         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 2014         -
                duplicate_indices.push(prev_idx);
 2015         -
            }
 2016         -
        }
 2017         -
 2018         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 2019         -
        for idx in &duplicate_indices {
 2020         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 2021         -
                last_duplicate_indices.push(prev_idx);
 2022         -
            }
 2023         -
        }
 2024         -
        duplicate_indices.extend(last_duplicate_indices);
 2025         -
 2026         -
        if !duplicate_indices.is_empty() {
 2027         -
            debug_assert!(duplicate_indices.len() >= 2);
 2028         -
            Err(crate::model::set_of_length_pattern_string_internal::ConstraintViolation::UniqueItems { duplicate_indices, original: items })
 2029         -
        } else {
 2030         -
            Ok(items)
 2031         -
        }
         656  +
    #[allow(missing_docs)] // documentation missing in model
         657  +
    pub fn set_of_range_long(&self) -> ::std::option::Option<&[i64]> {
         658  +
        self.set_of_range_long.as_deref()
 2032    659   
    }
 2033         -
}
 2034         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::LengthPatternString>>
 2035         -
    for SetOfLengthPatternString
 2036         -
{
 2037         -
    type Error = crate::model::set_of_length_pattern_string_internal::ConstraintViolation;
 2038         -
 2039         -
    /// Constructs a `SetOfLengthPatternString` from an [`::std::vec::Vec<crate::model::LengthPatternString>`], failing when the provided value does not satisfy the modeled constraints.
 2040         -
    fn try_from(
 2041         -
        value: ::std::vec::Vec<crate::model::LengthPatternString>,
 2042         -
    ) -> ::std::result::Result<Self, Self::Error> {
 2043         -
        let value = Self::check_unique_items(value)?;
 2044         -
 2045         -
        Ok(Self(value))
         660  +
    #[allow(missing_docs)] // documentation missing in model
         661  +
    pub fn map_of_range_long(
         662  +
        &self,
         663  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i64>> {
         664  +
        self.map_of_range_long.as_ref()
 2046    665   
    }
 2047         -
}
 2048         -
 2049         -
impl ::std::convert::From<SetOfLengthPatternString>
 2050         -
    for ::std::vec::Vec<crate::model::LengthPatternString>
 2051         -
{
 2052         -
    fn from(value: SetOfLengthPatternString) -> Self {
 2053         -
        value.into_inner()
         666  +
    #[allow(missing_docs)] // documentation missing in model
         667  +
    pub fn list_of_range_byte(&self) -> ::std::option::Option<&[i8]> {
         668  +
        self.list_of_range_byte.as_deref()
 2054    669   
    }
 2055         -
}
 2056         -
impl ::std::convert::From<SetOfLengthPatternString> for ::std::vec::Vec<::std::string::String> {
 2057         -
    fn from(value: SetOfLengthPatternString) -> Self {
 2058         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
         670  +
    #[allow(missing_docs)] // documentation missing in model
         671  +
    pub fn set_of_range_byte(&self) -> ::std::option::Option<&[i8]> {
         672  +
        self.set_of_range_byte.as_deref()
 2059    673   
    }
 2060         -
}
 2061         -
impl crate::constrained::Constrained for SetOfLengthPatternString {
 2062         -
    type Unconstrained = crate::unconstrained::set_of_length_pattern_string_unconstrained::SetOfLengthPatternStringUnconstrained;
 2063         -
}
 2064         -
 2065         -
#[allow(missing_docs)] // documentation missing in model
 2066         -
///
 2067         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2068         -
/// [constraint traits]. Use [`SetOfPatternString::try_from`] to construct values of this type.
 2069         -
///
 2070         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2071         -
///
 2072         -
#[derive(
 2073         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2074         -
)]
 2075         -
pub(crate) struct SetOfPatternString(pub(crate) ::std::vec::Vec<crate::model::PatternString>);
 2076         -
impl SetOfPatternString {
 2077         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::PatternString>`].
 2078         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::PatternString> {
 2079         -
        self.0
         674  +
    #[allow(missing_docs)] // documentation missing in model
         675  +
    pub fn map_of_range_byte(
         676  +
        &self,
         677  +
    ) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, i8>> {
         678  +
        self.map_of_range_byte.as_ref()
 2080    679   
    }
 2081         -
 2082         -
    fn check_unique_items(
 2083         -
        items: ::std::vec::Vec<crate::model::PatternString>,
 2084         -
    ) -> ::std::result::Result<
 2085         -
        ::std::vec::Vec<crate::model::PatternString>,
 2086         -
        crate::model::set_of_pattern_string_internal::ConstraintViolation,
         680  +
    #[allow(missing_docs)] // documentation missing in model
         681  +
    pub fn non_streaming_blob(
         682  +
        &self,
         683  +
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::Blob> {
         684  +
        self.non_streaming_blob.as_ref()
         685  +
    }
         686  +
    #[allow(missing_docs)] // documentation missing in model
         687  +
    pub fn pattern_string(&self) -> ::std::option::Option<&str> {
         688  +
        self.pattern_string.as_deref()
         689  +
    }
         690  +
    #[allow(missing_docs)] // documentation missing in model
         691  +
    pub fn map_of_pattern_string(
         692  +
        &self,
         693  +
    ) -> ::std::option::Option<
         694  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 2087    695   
    > {
 2088         -
        let mut seen = ::std::collections::HashMap::new();
 2089         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 2090         -
        for (idx, item) in items.iter().enumerate() {
 2091         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 2092         -
                duplicate_indices.push(prev_idx);
 2093         -
            }
 2094         -
        }
 2095         -
 2096         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 2097         -
        for idx in &duplicate_indices {
 2098         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 2099         -
                last_duplicate_indices.push(prev_idx);
 2100         -
            }
 2101         -
        }
 2102         -
        duplicate_indices.extend(last_duplicate_indices);
 2103         -
 2104         -
        if !duplicate_indices.is_empty() {
 2105         -
            debug_assert!(duplicate_indices.len() >= 2);
 2106         -
            Err(
 2107         -
                crate::model::set_of_pattern_string_internal::ConstraintViolation::UniqueItems {
 2108         -
                    duplicate_indices,
 2109         -
                    original: items,
 2110         -
                },
 2111         -
            )
 2112         -
        } else {
 2113         -
            Ok(items)
 2114         -
        }
         696  +
        self.map_of_pattern_string.as_ref()
 2115    697   
    }
 2116         -
}
 2117         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::PatternString>> for SetOfPatternString {
 2118         -
    type Error = crate::model::set_of_pattern_string_internal::ConstraintViolation;
 2119         -
 2120         -
    /// Constructs a `SetOfPatternString` from an [`::std::vec::Vec<crate::model::PatternString>`], failing when the provided value does not satisfy the modeled constraints.
 2121         -
    fn try_from(
 2122         -
        value: ::std::vec::Vec<crate::model::PatternString>,
 2123         -
    ) -> ::std::result::Result<Self, Self::Error> {
 2124         -
        let value = Self::check_unique_items(value)?;
 2125         -
 2126         -
        Ok(Self(value))
         698  +
    #[allow(missing_docs)] // documentation missing in model
         699  +
    pub fn list_of_pattern_string(&self) -> ::std::option::Option<&[::std::string::String]> {
         700  +
        self.list_of_pattern_string.as_deref()
 2127    701   
    }
 2128         -
}
 2129         -
 2130         -
impl ::std::convert::From<SetOfPatternString> for ::std::vec::Vec<crate::model::PatternString> {
 2131         -
    fn from(value: SetOfPatternString) -> Self {
 2132         -
        value.into_inner()
         702  +
    #[allow(missing_docs)] // documentation missing in model
         703  +
    pub fn set_of_pattern_string(
         704  +
        &self,
         705  +
    ) -> ::std::option::Option<&::std::vec::Vec<::std::string::String>> {
         706  +
        self.set_of_pattern_string.as_ref()
 2133    707   
    }
 2134         -
}
 2135         -
impl ::std::convert::From<SetOfPatternString> for ::std::vec::Vec<::std::string::String> {
 2136         -
    fn from(value: SetOfPatternString) -> Self {
 2137         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
         708  +
    #[allow(missing_docs)] // documentation missing in model
         709  +
    pub fn length_length_pattern_string(&self) -> ::std::option::Option<&str> {
         710  +
        self.length_length_pattern_string.as_deref()
         711  +
    }
         712  +
    #[allow(missing_docs)] // documentation missing in model
         713  +
    pub fn map_of_length_pattern_string(
         714  +
        &self,
         715  +
    ) -> ::std::option::Option<
         716  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
         717  +
    > {
         718  +
        self.map_of_length_pattern_string.as_ref()
         719  +
    }
         720  +
    #[allow(missing_docs)] // documentation missing in model
         721  +
    pub fn list_of_length_pattern_string(&self) -> ::std::option::Option<&[::std::string::String]> {
         722  +
        self.list_of_length_pattern_string.as_deref()
         723  +
    }
         724  +
    #[allow(missing_docs)] // documentation missing in model
         725  +
    pub fn set_of_length_pattern_string(
         726  +
        &self,
         727  +
    ) -> ::std::option::Option<&::std::vec::Vec<::std::string::String>> {
         728  +
        self.set_of_length_pattern_string.as_ref()
 2138    729   
    }
 2139         -
}
 2140         -
impl crate::constrained::Constrained for SetOfPatternString {
 2141         -
    type Unconstrained =
 2142         -
        crate::unconstrained::set_of_pattern_string_unconstrained::SetOfPatternStringUnconstrained;
 2143         -
}
 2144         -
 2145         -
#[allow(missing_docs)] // documentation missing in model
 2146         -
///
 2147         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2148         -
/// [constraint traits]. Use [`RangeByte::try_from`] to construct values of this type.
 2149         -
///
 2150         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2151         -
///
 2152         -
#[derive(
 2153         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2154         -
)]
 2155         -
pub(crate) struct RangeByte(pub(crate) i8);
 2156         -
#[allow(dead_code)]
 2157         -
impl RangeByte {
 2158         -
    /// Returns an immutable reference to the underlying [`i8`].
 2159         -
    pub fn inner(&self) -> &i8 {
 2160         -
        &self.0
         730  +
    #[allow(missing_docs)] // documentation missing in model
         731  +
    pub fn length_list_of_pattern_string(&self) -> ::std::option::Option<&[::std::string::String]> {
         732  +
        self.length_list_of_pattern_string.as_deref()
 2161    733   
    }
 2162         -
 2163         -
    /// Consumes the value, returning the underlying [`i8`].
 2164         -
    pub fn into_inner(self) -> i8 {
 2165         -
        self.0
         734  +
    #[allow(missing_docs)] // documentation missing in model
         735  +
    pub fn length_set_of_pattern_string(
         736  +
        &self,
         737  +
    ) -> ::std::option::Option<&::std::vec::Vec<::std::string::String>> {
         738  +
        self.length_set_of_pattern_string.as_ref()
 2166    739   
    }
 2167    740   
}
 2168         -
 2169         -
impl crate::constrained::Constrained for RangeByte {
 2170         -
    type Unconstrained = i8;
 2171         -
}
 2172         -
 2173         -
impl ::std::convert::From<i8> for crate::constrained::MaybeConstrained<crate::model::RangeByte> {
 2174         -
    fn from(value: i8) -> Self {
 2175         -
        Self::Unconstrained(value)
         741  +
#[allow(clippy::new_without_default)]
         742  +
#[allow(clippy::too_many_arguments)]
         743  +
#[::pyo3::pymethods]
         744  +
impl ConA {
         745  +
    #[new]
         746  +
    pub fn new(
         747  +
        con_b: crate::model::ConB,
         748  +
        range_integer: i32,
         749  +
        min_range_integer: i32,
         750  +
        max_range_integer: i32,
         751  +
        fixed_value_integer: i32,
         752  +
        range_short: i16,
         753  +
        min_range_short: i16,
         754  +
        max_range_short: i16,
         755  +
        fixed_value_short: i16,
         756  +
        range_long: i64,
         757  +
        min_range_long: i64,
         758  +
        max_range_long: i64,
         759  +
        fixed_value_long: i64,
         760  +
        range_byte: i8,
         761  +
        min_range_byte: i8,
         762  +
        max_range_byte: i8,
         763  +
        fixed_value_byte: i8,
         764  +
        opt_con_b: ::std::option::Option<crate::model::ConB>,
         765  +
        length_string: ::std::option::Option<::std::string::String>,
         766  +
        min_length_string: ::std::option::Option<::std::string::String>,
         767  +
        max_length_string: ::std::option::Option<::std::string::String>,
         768  +
        fixed_length_string: ::std::option::Option<::std::string::String>,
         769  +
        length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
         770  +
        min_length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
         771  +
        max_length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
         772  +
        fixed_length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
         773  +
        con_b_list: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>>,
         774  +
        length_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         775  +
        sensitive_length_list: ::std::option::Option<
         776  +
            ::std::vec::Vec<crate::model::SensitiveStructure>,
         777  +
        >,
         778  +
        con_b_set: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
         779  +
        con_b_map: ::std::option::Option<
         780  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         781  +
        >,
         782  +
        length_map: ::std::option::Option<
         783  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         784  +
        >,
         785  +
        map_of_map_of_list_of_list_of_con_b: ::std::option::Option<
         786  +
            ::std::collections::HashMap<
         787  +
                ::std::string::String,
         788  +
                ::std::collections::HashMap<
         789  +
                    ::std::string::String,
         790  +
                    ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>,
         791  +
                >,
         792  +
            >,
         793  +
        >,
         794  +
        sparse_map: ::std::option::Option<
         795  +
            ::std::collections::HashMap<
         796  +
                ::std::string::String,
         797  +
                ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         798  +
            >,
         799  +
        >,
         800  +
        sparse_list: ::std::option::Option<
         801  +
            ::std::vec::Vec<::std::option::Option<::std::string::String>>,
         802  +
        >,
         803  +
        sparse_length_map: ::std::option::Option<
         804  +
            ::std::collections::HashMap<
         805  +
                ::std::string::String,
         806  +
                ::std::option::Option<::std::string::String>,
         807  +
            >,
         808  +
        >,
         809  +
        sparse_length_list: ::std::option::Option<
         810  +
            ::std::vec::Vec<::std::option::Option<::std::string::String>>,
         811  +
        >,
         812  +
        constrained_union: ::std::option::Option<crate::model::ConstrainedUnion>,
         813  +
        enum_string: ::std::option::Option<crate::model::EnumString>,
         814  +
        list_of_length_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         815  +
        set_of_length_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         816  +
        map_of_length_string: ::std::option::Option<
         817  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         818  +
        >,
         819  +
        list_of_length_blob: ::std::option::Option<
         820  +
            ::std::vec::Vec<::aws_smithy_http_server_python::types::Blob>,
         821  +
        >,
         822  +
        map_of_length_blob: ::std::option::Option<
         823  +
            ::std::collections::HashMap<
         824  +
                ::std::string::String,
         825  +
                ::aws_smithy_http_server_python::types::Blob,
         826  +
            >,
         827  +
        >,
         828  +
        list_of_range_integer: ::std::option::Option<::std::vec::Vec<i32>>,
         829  +
        set_of_range_integer: ::std::option::Option<::std::vec::Vec<i32>>,
         830  +
        map_of_range_integer: ::std::option::Option<
         831  +
            ::std::collections::HashMap<::std::string::String, i32>,
         832  +
        >,
         833  +
        list_of_range_short: ::std::option::Option<::std::vec::Vec<i16>>,
         834  +
        set_of_range_short: ::std::option::Option<::std::vec::Vec<i16>>,
         835  +
        map_of_range_short: ::std::option::Option<
         836  +
            ::std::collections::HashMap<::std::string::String, i16>,
         837  +
        >,
         838  +
        list_of_range_long: ::std::option::Option<::std::vec::Vec<i64>>,
         839  +
        set_of_range_long: ::std::option::Option<::std::vec::Vec<i64>>,
         840  +
        map_of_range_long: ::std::option::Option<
         841  +
            ::std::collections::HashMap<::std::string::String, i64>,
         842  +
        >,
         843  +
        list_of_range_byte: ::std::option::Option<::std::vec::Vec<i8>>,
         844  +
        set_of_range_byte: ::std::option::Option<::std::vec::Vec<i8>>,
         845  +
        map_of_range_byte: ::std::option::Option<
         846  +
            ::std::collections::HashMap<::std::string::String, i8>,
         847  +
        >,
         848  +
        non_streaming_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
         849  +
        pattern_string: ::std::option::Option<::std::string::String>,
         850  +
        map_of_pattern_string: ::std::option::Option<
         851  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         852  +
        >,
         853  +
        list_of_pattern_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         854  +
        set_of_pattern_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         855  +
        length_length_pattern_string: ::std::option::Option<::std::string::String>,
         856  +
        map_of_length_pattern_string: ::std::option::Option<
         857  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
         858  +
        >,
         859  +
        list_of_length_pattern_string: ::std::option::Option<
         860  +
            ::std::vec::Vec<::std::string::String>,
         861  +
        >,
         862  +
        set_of_length_pattern_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         863  +
        length_list_of_pattern_string: ::std::option::Option<
         864  +
            ::std::vec::Vec<::std::string::String>,
         865  +
        >,
         866  +
        length_set_of_pattern_string: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         867  +
    ) -> Self {
         868  +
        Self {
         869  +
            con_b,
         870  +
            range_integer,
         871  +
            min_range_integer,
         872  +
            max_range_integer,
         873  +
            fixed_value_integer,
         874  +
            range_short,
         875  +
            min_range_short,
         876  +
            max_range_short,
         877  +
            fixed_value_short,
         878  +
            range_long,
         879  +
            min_range_long,
         880  +
            max_range_long,
         881  +
            fixed_value_long,
         882  +
            range_byte,
         883  +
            min_range_byte,
         884  +
            max_range_byte,
         885  +
            fixed_value_byte,
         886  +
            opt_con_b,
         887  +
            length_string,
         888  +
            min_length_string,
         889  +
            max_length_string,
         890  +
            fixed_length_string,
         891  +
            length_blob,
         892  +
            min_length_blob,
         893  +
            max_length_blob,
         894  +
            fixed_length_blob,
         895  +
            con_b_list,
         896  +
            length_list,
         897  +
            sensitive_length_list,
         898  +
            con_b_set,
         899  +
            con_b_map,
         900  +
            length_map,
         901  +
            map_of_map_of_list_of_list_of_con_b,
         902  +
            sparse_map,
         903  +
            sparse_list,
         904  +
            sparse_length_map,
         905  +
            sparse_length_list,
         906  +
            constrained_union,
         907  +
            enum_string,
         908  +
            list_of_length_string,
         909  +
            set_of_length_string,
         910  +
            map_of_length_string,
         911  +
            list_of_length_blob,
         912  +
            map_of_length_blob,
         913  +
            list_of_range_integer,
         914  +
            set_of_range_integer,
         915  +
            map_of_range_integer,
         916  +
            list_of_range_short,
         917  +
            set_of_range_short,
         918  +
            map_of_range_short,
         919  +
            list_of_range_long,
         920  +
            set_of_range_long,
         921  +
            map_of_range_long,
         922  +
            list_of_range_byte,
         923  +
            set_of_range_byte,
         924  +
            map_of_range_byte,
         925  +
            non_streaming_blob,
         926  +
            pattern_string,
         927  +
            map_of_pattern_string,
         928  +
            list_of_pattern_string,
         929  +
            set_of_pattern_string,
         930  +
            length_length_pattern_string,
         931  +
            map_of_length_pattern_string,
         932  +
            list_of_length_pattern_string,
         933  +
            set_of_length_pattern_string,
         934  +
            length_list_of_pattern_string,
         935  +
            length_set_of_pattern_string,
         936  +
        }
 2176    937   
    }
 2177         -
}
 2178         -
 2179         -
impl ::std::fmt::Display for RangeByte {
 2180         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2181         -
        self.0.fmt(f)
         938  +
    fn __repr__(&self) -> String {
         939  +
        format!("{self:?}")
         940  +
    }
         941  +
    fn __str__(&self) -> String {
         942  +
        format!("{self:?}")
 2182    943   
    }
 2183    944   
}
 2184         -
 2185         -
impl ::std::convert::From<RangeByte> for i8 {
 2186         -
    fn from(value: RangeByte) -> Self {
 2187         -
        value.into_inner()
         945  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ConA> {
         946  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
         947  +
        ob.extract::<ConA>().map(Box::new)
 2188    948   
    }
 2189    949   
}
 2190         -
impl RangeByte {
 2191         -
    fn check_range(
 2192         -
        value: i8,
 2193         -
    ) -> ::std::result::Result<(), crate::model::range_byte_internal::ConstraintViolation> {
 2194         -
        if (0..=10).contains(&value) {
 2195         -
            Ok(())
 2196         -
        } else {
 2197         -
            Err(crate::model::range_byte_internal::ConstraintViolation::Range(value))
 2198         -
        }
         950  +
         951  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ConA> {
         952  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
         953  +
        (*self).into_py(py)
 2199    954   
    }
 2200    955   
}
 2201         -
impl ::std::convert::TryFrom<i8> for RangeByte {
 2202         -
    type Error = crate::model::range_byte_internal::ConstraintViolation;
 2203         -
 2204         -
    /// Constructs a `RangeByte` from an [`i8`], failing when the provided value does not satisfy the modeled constraints.
 2205         -
    fn try_from(value: i8) -> ::std::result::Result<Self, Self::Error> {
 2206         -
        Self::check_range(value)?;
 2207         -
 2208         -
        Ok(Self(value))
         956  +
impl crate::constrained::Constrained for crate::model::ConA {
         957  +
    type Unconstrained = crate::model::con_a_internal::Builder;
         958  +
}
         959  +
impl ConA {
         960  +
    /// Creates a new builder-style object to manufacture [`ConA`](crate::model::ConA).
         961  +
    pub fn builder() -> crate::model::con_a::Builder {
         962  +
        crate::model::con_a::Builder::default()
 2209    963   
    }
 2210    964   
}
 2211    965   
 2212    966   
#[allow(missing_docs)] // documentation missing in model
 2213    967   
///
 2214    968   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2215         -
/// [constraint traits]. Use [`SetOfRangeByte::try_from`] to construct values of this type.
         969  +
/// [constraint traits]. Use [`ConstrainedListInOutput::try_from`] to construct values of this type.
 2216    970   
///
 2217    971   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2218    972   
///
 2219    973   
#[derive(
 2220    974   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2221    975   
)]
 2222         -
pub(crate) struct SetOfRangeByte(pub(crate) ::std::vec::Vec<crate::model::RangeByte>);
 2223         -
impl SetOfRangeByte {
 2224         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::RangeByte>`].
 2225         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::RangeByte> {
         976  +
pub(crate) struct ConstrainedListInOutput(
         977  +
    pub(crate) ::std::vec::Vec<crate::model::ConstrainedUnionInOutput>,
         978  +
);
         979  +
impl ConstrainedListInOutput {
         980  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::ConstrainedUnionInOutput>`].
         981  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::ConstrainedUnionInOutput> {
 2226    982   
        self.0
 2227    983   
    }
 2228    984   
 2229         -
    fn check_unique_items(
 2230         -
        items: ::std::vec::Vec<crate::model::RangeByte>,
         985  +
    fn check_length(
         986  +
        length: usize,
 2231    987   
    ) -> ::std::result::Result<
 2232         -
        ::std::vec::Vec<crate::model::RangeByte>,
 2233         -
        crate::model::set_of_range_byte_internal::ConstraintViolation,
         988  +
        (),
         989  +
        crate::model::constrained_list_in_output_internal::ConstraintViolation,
 2234    990   
    > {
 2235         -
        let mut seen = ::std::collections::HashMap::new();
 2236         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 2237         -
        for (idx, item) in items.iter().enumerate() {
 2238         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 2239         -
                duplicate_indices.push(prev_idx);
 2240         -
            }
 2241         -
        }
 2242         -
 2243         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 2244         -
        for idx in &duplicate_indices {
 2245         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 2246         -
                last_duplicate_indices.push(prev_idx);
 2247         -
            }
 2248         -
        }
 2249         -
        duplicate_indices.extend(last_duplicate_indices);
 2250         -
 2251         -
        if !duplicate_indices.is_empty() {
 2252         -
            debug_assert!(duplicate_indices.len() >= 2);
         991  +
        if 69 <= length {
         992  +
            Ok(())
         993  +
        } else {
 2253    994   
            Err(
 2254         -
                crate::model::set_of_range_byte_internal::ConstraintViolation::UniqueItems {
 2255         -
                    duplicate_indices,
 2256         -
                    original: items,
 2257         -
                },
         995  +
                crate::model::constrained_list_in_output_internal::ConstraintViolation::Length(
         996  +
                    length,
         997  +
                ),
 2258    998   
            )
 2259         -
        } else {
 2260         -
            Ok(items)
 2261    999   
        }
 2262   1000   
    }
 2263   1001   
}
 2264         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::RangeByte>> for SetOfRangeByte {
 2265         -
    type Error = crate::model::set_of_range_byte_internal::ConstraintViolation;
        1002  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::ConstrainedUnionInOutput>>
        1003  +
    for ConstrainedListInOutput
        1004  +
{
        1005  +
    type Error = crate::model::constrained_list_in_output_internal::ConstraintViolation;
 2266   1006   
 2267         -
    /// Constructs a `SetOfRangeByte` from an [`::std::vec::Vec<crate::model::RangeByte>`], failing when the provided value does not satisfy the modeled constraints.
        1007  +
    /// Constructs a `ConstrainedListInOutput` from an [`::std::vec::Vec<crate::model::ConstrainedUnionInOutput>`], failing when the provided value does not satisfy the modeled constraints.
 2268   1008   
    fn try_from(
 2269         -
        value: ::std::vec::Vec<crate::model::RangeByte>,
        1009  +
        value: ::std::vec::Vec<crate::model::ConstrainedUnionInOutput>,
 2270   1010   
    ) -> ::std::result::Result<Self, Self::Error> {
 2271         -
        let value = Self::check_unique_items(value)?;
        1011  +
        Self::check_length(value.len())?;
 2272   1012   
 2273   1013   
        Ok(Self(value))
 2274   1014   
    }
 2275   1015   
}
 2276   1016   
 2277         -
impl ::std::convert::From<SetOfRangeByte> for ::std::vec::Vec<crate::model::RangeByte> {
 2278         -
    fn from(value: SetOfRangeByte) -> Self {
        1017  +
impl ::std::convert::From<ConstrainedListInOutput>
        1018  +
    for ::std::vec::Vec<crate::model::ConstrainedUnionInOutput>
        1019  +
{
        1020  +
    fn from(value: ConstrainedListInOutput) -> Self {
 2279   1021   
        value.into_inner()
 2280   1022   
    }
 2281   1023   
}
 2282         -
impl ::std::convert::From<SetOfRangeByte> for ::std::vec::Vec<i8> {
 2283         -
    fn from(value: SetOfRangeByte) -> Self {
 2284         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
 2285         -
    }
 2286         -
}
 2287         -
impl crate::constrained::Constrained for SetOfRangeByte {
 2288         -
    type Unconstrained =
 2289         -
        crate::unconstrained::set_of_range_byte_unconstrained::SetOfRangeByteUnconstrained;
 2290         -
}
 2291   1024   
 2292   1025   
#[allow(missing_docs)] // documentation missing in model
 2293   1026   
///
 2294   1027   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2295         -
/// [constraint traits]. Use [`RangeLong::try_from`] to construct values of this type.
        1028  +
/// [constraint traits]. Use [`ConstrainedMapInOutput::try_from`] to construct values of this type.
 2296   1029   
///
 2297   1030   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2298   1031   
///
 2299         -
#[derive(
 2300         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2301         -
)]
 2302         -
pub(crate) struct RangeLong(pub(crate) i64);
 2303         -
#[allow(dead_code)]
 2304         -
impl RangeLong {
 2305         -
    /// Returns an immutable reference to the underlying [`i64`].
 2306         -
    pub fn inner(&self) -> &i64 {
 2307         -
        &self.0
 2308         -
    }
 2309         -
 2310         -
    /// Consumes the value, returning the underlying [`i64`].
 2311         -
    pub fn into_inner(self) -> i64 {
        1032  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        1033  +
pub(crate) struct ConstrainedMapInOutput(
        1034  +
    pub(crate)  ::std::collections::HashMap<
        1035  +
        ::std::string::String,
        1036  +
        crate::model::TransitivelyConstrainedStructureInOutput,
        1037  +
    >,
        1038  +
);
        1039  +
impl ConstrainedMapInOutput {
        1040  +
    /// Consumes the value, returning the underlying [`::std::collections::HashMap<::std::string::String, crate::model::TransitivelyConstrainedStructureInOutput>`].
        1041  +
    pub fn into_inner(
        1042  +
        self,
        1043  +
    ) -> ::std::collections::HashMap<
        1044  +
        ::std::string::String,
        1045  +
        crate::model::TransitivelyConstrainedStructureInOutput,
        1046  +
    > {
 2312   1047   
        self.0
 2313   1048   
    }
 2314   1049   
}
        1050  +
impl
        1051  +
    ::std::convert::TryFrom<
        1052  +
        ::std::collections::HashMap<
        1053  +
            ::std::string::String,
        1054  +
            crate::model::TransitivelyConstrainedStructureInOutput,
        1055  +
        >,
        1056  +
    > for ConstrainedMapInOutput
        1057  +
{
        1058  +
    type Error = crate::model::constrained_map_in_output_internal::ConstraintViolation;
 2315   1059   
 2316         -
impl crate::constrained::Constrained for RangeLong {
 2317         -
    type Unconstrained = i64;
 2318         -
}
 2319         -
 2320         -
impl ::std::convert::From<i64> for crate::constrained::MaybeConstrained<crate::model::RangeLong> {
 2321         -
    fn from(value: i64) -> Self {
 2322         -
        Self::Unconstrained(value)
        1060  +
    /// Constructs a `ConstrainedMapInOutput` from an [`::std::collections::HashMap<::std::string::String, crate::model::TransitivelyConstrainedStructureInOutput>`], failing when the provided value does not satisfy the modeled constraints.
        1061  +
    fn try_from(
        1062  +
        value: ::std::collections::HashMap<
        1063  +
            ::std::string::String,
        1064  +
            crate::model::TransitivelyConstrainedStructureInOutput,
        1065  +
        >,
        1066  +
    ) -> ::std::result::Result<Self, Self::Error> {
        1067  +
        let length = value.len();
        1068  +
        if 69 <= length {
        1069  +
            Ok(Self(value))
        1070  +
        } else {
        1071  +
            Err(
        1072  +
                crate::model::constrained_map_in_output_internal::ConstraintViolation::Length(
        1073  +
                    length,
        1074  +
                ),
        1075  +
            )
        1076  +
        }
 2323   1077   
    }
 2324   1078   
}
 2325   1079   
 2326         -
impl ::std::fmt::Display for RangeLong {
 2327         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2328         -
        self.0.fmt(f)
        1080  +
impl ::std::convert::From<ConstrainedMapInOutput>
        1081  +
    for ::std::collections::HashMap<
        1082  +
        ::std::string::String,
        1083  +
        crate::model::TransitivelyConstrainedStructureInOutput,
        1084  +
    >
        1085  +
{
        1086  +
    fn from(value: ConstrainedMapInOutput) -> Self {
        1087  +
        value.into_inner()
 2329   1088   
    }
 2330   1089   
}
 2331   1090   
 2332         -
impl ::std::convert::From<RangeLong> for i64 {
 2333         -
    fn from(value: RangeLong) -> Self {
 2334         -
        value.into_inner()
 2335         -
    }
        1091  +
#[allow(missing_docs)] // documentation missing in model
        1092  +
#[derive(
        1093  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        1094  +
)]
        1095  +
pub enum ConstrainedUnionInOutput {
        1096  +
    #[allow(missing_docs)] // documentation missing in model
        1097  +
    Structure(crate::model::TransitivelyConstrainedStructureInOutput),
 2336   1098   
}
 2337         -
impl RangeLong {
 2338         -
    fn check_range(
 2339         -
        value: i64,
 2340         -
    ) -> ::std::result::Result<(), crate::model::range_long_internal::ConstraintViolation> {
 2341         -
        if (0..=10).contains(&value) {
 2342         -
            Ok(())
        1099  +
impl ConstrainedUnionInOutput {
        1100  +
    #[allow(irrefutable_let_patterns)]
        1101  +
    /// Tries to convert the enum instance into [`Structure`](crate::model::ConstrainedUnionInOutput::Structure), extracting the inner [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
        1102  +
    /// Returns `Err(&Self)` if it can't be converted.
        1103  +
    pub fn as_structure(
        1104  +
        &self,
        1105  +
    ) -> ::std::result::Result<&crate::model::TransitivelyConstrainedStructureInOutput, &Self> {
        1106  +
        if let ConstrainedUnionInOutput::Structure(val) = &self {
        1107  +
            ::std::result::Result::Ok(val)
 2343   1108   
        } else {
 2344         -
            Err(crate::model::range_long_internal::ConstraintViolation::Range(value))
        1109  +
            ::std::result::Result::Err(self)
 2345   1110   
        }
 2346   1111   
    }
        1112  +
    /// Returns true if this is a [`Structure`](crate::model::ConstrainedUnionInOutput::Structure).
        1113  +
    pub fn is_structure(&self) -> bool {
        1114  +
        self.as_structure().is_ok()
        1115  +
    }
 2347   1116   
}
 2348         -
impl ::std::convert::TryFrom<i64> for RangeLong {
 2349         -
    type Error = crate::model::range_long_internal::ConstraintViolation;
 2350         -
 2351         -
    /// Constructs a `RangeLong` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
 2352         -
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
 2353         -
        Self::check_range(value)?;
 2354         -
 2355         -
        Ok(Self(value))
        1117  +
#[pyo3::pyclass(name = "ConstrainedUnionInOutput")]
        1118  +
#[derive(
        1119  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        1120  +
)]
        1121  +
pub struct PyUnionMarkerConstrainedUnionInOutput(pub ConstrainedUnionInOutput);
        1122  +
#[::pyo3::pymethods]
        1123  +
impl PyUnionMarkerConstrainedUnionInOutput {
        1124  +
    #[allow(irrefutable_let_patterns)]
        1125  +
    #[staticmethod]
        1126  +
    /// Creates a new union instance of [`Structure`](crate::model::ConstrainedUnionInOutput::Structure)
        1127  +
    /// :param data constraints_without_public_constrained_types.model.TransitivelyConstrainedStructureInOutput:
        1128  +
    /// :rtype ConstrainedUnionInOutput:
        1129  +
    pub fn structure(data: crate::model::TransitivelyConstrainedStructureInOutput) -> Self {
        1130  +
        Self(ConstrainedUnionInOutput::Structure(data))
        1131  +
    }
        1132  +
    /// Tries to convert the enum instance into [`Structure`](crate::model::ConstrainedUnionInOutput::Structure), extracting the inner [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
        1133  +
    /// :rtype constraints_without_public_constrained_types.model.TransitivelyConstrainedStructureInOutput:
        1134  +
    pub fn as_structure(
        1135  +
        &self,
        1136  +
    ) -> ::pyo3::PyResult<crate::model::TransitivelyConstrainedStructureInOutput> {
        1137  +
        match self.0.as_structure() {
        1138  +
            Ok(variant) => Ok(variant.clone()),
        1139  +
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
        1140  +
                r"ConstrainedUnionInOutput variant is not of type constraints_without_public_constrained_types.model.TransitivelyConstrainedStructureInOutput",
        1141  +
            )),
        1142  +
        }
        1143  +
    }
        1144  +
    /// Returns true if this is a [`Structure`](crate::model::ConstrainedUnionInOutput::Structure).
        1145  +
    /// :rtype bool:
        1146  +
    pub fn is_structure(&self) -> bool {
        1147  +
        self.0.is_structure()
        1148  +
    }
        1149  +
}
        1150  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for ConstrainedUnionInOutput {
        1151  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        1152  +
        PyUnionMarkerConstrainedUnionInOutput(self).into_py(py)
        1153  +
    }
        1154  +
}
        1155  +
impl<'source> ::pyo3::FromPyObject<'source> for ConstrainedUnionInOutput {
        1156  +
    fn extract(obj: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        1157  +
        let data: PyUnionMarkerConstrainedUnionInOutput = obj.extract()?;
        1158  +
        Ok(data.0)
 2356   1159   
    }
 2357   1160   
}
 2358   1161   
 2359   1162   
#[allow(missing_docs)] // documentation missing in model
 2360   1163   
///
 2361   1164   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2362         -
/// [constraint traits]. Use [`SetOfRangeLong::try_from`] to construct values of this type.
        1165  +
/// [constraint traits]. Use [`LengthString::try_from`] to construct values of this type.
 2363   1166   
///
 2364   1167   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2365   1168   
///
 2366   1169   
#[derive(
 2367   1170   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2368   1171   
)]
 2369         -
pub(crate) struct SetOfRangeLong(pub(crate) ::std::vec::Vec<crate::model::RangeLong>);
 2370         -
impl SetOfRangeLong {
 2371         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::RangeLong>`].
 2372         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::RangeLong> {
 2373         -
        self.0
        1172  +
pub(crate) struct LengthString(pub(crate) ::std::string::String);
        1173  +
#[allow(dead_code)]
        1174  +
impl LengthString {
        1175  +
    /// Extracts a string slice containing the entire underlying `String`.
        1176  +
    pub fn as_str(&self) -> &str {
        1177  +
        &self.0
 2374   1178   
    }
 2375   1179   
 2376         -
    fn check_unique_items(
 2377         -
        items: ::std::vec::Vec<crate::model::RangeLong>,
 2378         -
    ) -> ::std::result::Result<
 2379         -
        ::std::vec::Vec<crate::model::RangeLong>,
 2380         -
        crate::model::set_of_range_long_internal::ConstraintViolation,
 2381         -
    > {
 2382         -
        let mut seen = ::std::collections::HashMap::new();
 2383         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 2384         -
        for (idx, item) in items.iter().enumerate() {
 2385         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 2386         -
                duplicate_indices.push(prev_idx);
 2387         -
            }
 2388         -
        }
        1180  +
    /// Returns an immutable reference to the underlying [`::std::string::String`].
        1181  +
    pub fn inner(&self) -> &::std::string::String {
        1182  +
        &self.0
        1183  +
    }
 2389   1184   
 2390         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 2391         -
        for idx in &duplicate_indices {
 2392         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 2393         -
                last_duplicate_indices.push(prev_idx);
 2394         -
            }
 2395         -
        }
 2396         -
        duplicate_indices.extend(last_duplicate_indices);
        1185  +
    /// Consumes the value, returning the underlying [`::std::string::String`].
        1186  +
    pub fn into_inner(self) -> ::std::string::String {
        1187  +
        self.0
        1188  +
    }
        1189  +
}
        1190  +
impl LengthString {
        1191  +
    fn check_length(
        1192  +
        string: &str,
        1193  +
    ) -> ::std::result::Result<(), crate::model::length_string_internal::ConstraintViolation> {
        1194  +
        let length = string.chars().count();
 2397   1195   
 2398         -
        if !duplicate_indices.is_empty() {
 2399         -
            debug_assert!(duplicate_indices.len() >= 2);
 2400         -
            Err(
 2401         -
                crate::model::set_of_range_long_internal::ConstraintViolation::UniqueItems {
 2402         -
                    duplicate_indices,
 2403         -
                    original: items,
 2404         -
                },
 2405         -
            )
        1196  +
        if (2..=69).contains(&length) {
        1197  +
            Ok(())
 2406   1198   
        } else {
 2407         -
            Ok(items)
        1199  +
            Err(crate::model::length_string_internal::ConstraintViolation::Length(length))
 2408   1200   
        }
 2409   1201   
    }
 2410   1202   
}
 2411         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::RangeLong>> for SetOfRangeLong {
 2412         -
    type Error = crate::model::set_of_range_long_internal::ConstraintViolation;
        1203  +
impl ::std::convert::TryFrom<::std::string::String> for LengthString {
        1204  +
    type Error = crate::model::length_string_internal::ConstraintViolation;
 2413   1205   
 2414         -
    /// Constructs a `SetOfRangeLong` from an [`::std::vec::Vec<crate::model::RangeLong>`], failing when the provided value does not satisfy the modeled constraints.
 2415         -
    fn try_from(
 2416         -
        value: ::std::vec::Vec<crate::model::RangeLong>,
 2417         -
    ) -> ::std::result::Result<Self, Self::Error> {
 2418         -
        let value = Self::check_unique_items(value)?;
        1206  +
    /// Constructs a `LengthString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
        1207  +
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
        1208  +
        Self::check_length(&value)?;
 2419   1209   
 2420   1210   
        Ok(Self(value))
 2421   1211   
    }
 2422   1212   
}
        1213  +
impl crate::constrained::Constrained for LengthString {
        1214  +
    type Unconstrained = ::std::string::String;
        1215  +
}
 2423   1216   
 2424         -
impl ::std::convert::From<SetOfRangeLong> for ::std::vec::Vec<crate::model::RangeLong> {
 2425         -
    fn from(value: SetOfRangeLong) -> Self {
 2426         -
        value.into_inner()
        1217  +
impl ::std::convert::From<::std::string::String>
        1218  +
    for crate::constrained::MaybeConstrained<crate::model::LengthString>
        1219  +
{
        1220  +
    fn from(value: ::std::string::String) -> Self {
        1221  +
        Self::Unconstrained(value)
 2427   1222   
    }
 2428   1223   
}
 2429         -
impl ::std::convert::From<SetOfRangeLong> for ::std::vec::Vec<i64> {
 2430         -
    fn from(value: SetOfRangeLong) -> Self {
 2431         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
        1224  +
        1225  +
impl ::std::fmt::Display for LengthString {
        1226  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        1227  +
        self.0.fmt(f)
 2432   1228   
    }
 2433   1229   
}
 2434         -
impl crate::constrained::Constrained for SetOfRangeLong {
 2435         -
    type Unconstrained =
 2436         -
        crate::unconstrained::set_of_range_long_unconstrained::SetOfRangeLongUnconstrained;
        1230  +
        1231  +
impl ::std::convert::From<LengthString> for ::std::string::String {
        1232  +
    fn from(value: LengthString) -> Self {
        1233  +
        value.into_inner()
        1234  +
    }
 2437   1235   
}
 2438   1236   
 2439   1237   
#[allow(missing_docs)] // documentation missing in model
 2440   1238   
///
 2441   1239   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2442         -
/// [constraint traits]. Use [`RangeShort::try_from`] to construct values of this type.
        1240  +
/// [constraint traits]. Use [`RangeInteger::try_from`] to construct values of this type.
 2443   1241   
///
 2444   1242   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2445   1243   
///
 2446   1244   
#[derive(
 2447   1245   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2448   1246   
)]
 2449         -
pub(crate) struct RangeShort(pub(crate) i16);
        1247  +
pub(crate) struct RangeInteger(pub(crate) i32);
 2450   1248   
#[allow(dead_code)]
 2451         -
impl RangeShort {
 2452         -
    /// Returns an immutable reference to the underlying [`i16`].
 2453         -
    pub fn inner(&self) -> &i16 {
        1249  +
impl RangeInteger {
        1250  +
    /// Returns an immutable reference to the underlying [`i32`].
        1251  +
    pub fn inner(&self) -> &i32 {
 2454   1252   
        &self.0
 2455   1253   
    }
 2456   1254   
 2457         -
    /// Consumes the value, returning the underlying [`i16`].
 2458         -
    pub fn into_inner(self) -> i16 {
        1255  +
    /// Consumes the value, returning the underlying [`i32`].
        1256  +
    pub fn into_inner(self) -> i32 {
 2459   1257   
        self.0
 2460   1258   
    }
 2461   1259   
}
 2462   1260   
 2463         -
impl crate::constrained::Constrained for RangeShort {
 2464         -
    type Unconstrained = i16;
        1261  +
impl crate::constrained::Constrained for RangeInteger {
        1262  +
    type Unconstrained = i32;
 2465   1263   
}
 2466   1264   
 2467         -
impl ::std::convert::From<i16> for crate::constrained::MaybeConstrained<crate::model::RangeShort> {
 2468         -
    fn from(value: i16) -> Self {
        1265  +
impl ::std::convert::From<i32>
        1266  +
    for crate::constrained::MaybeConstrained<crate::model::RangeInteger>
        1267  +
{
        1268  +
    fn from(value: i32) -> Self {
 2469   1269   
        Self::Unconstrained(value)
 2470   1270   
    }
 2471   1271   
}
 2472   1272   
 2473         -
impl ::std::fmt::Display for RangeShort {
        1273  +
impl ::std::fmt::Display for RangeInteger {
 2474   1274   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2475   1275   
        self.0.fmt(f)
 2476   1276   
    }
 2477   1277   
}
 2478   1278   
 2479         -
impl ::std::convert::From<RangeShort> for i16 {
 2480         -
    fn from(value: RangeShort) -> Self {
        1279  +
impl ::std::convert::From<RangeInteger> for i32 {
        1280  +
    fn from(value: RangeInteger) -> Self {
 2481   1281   
        value.into_inner()
 2482   1282   
    }
 2483   1283   
}
 2484         -
impl RangeShort {
        1284  +
impl RangeInteger {
 2485   1285   
    fn check_range(
 2486         -
        value: i16,
 2487         -
    ) -> ::std::result::Result<(), crate::model::range_short_internal::ConstraintViolation> {
 2488         -
        if (0..=10).contains(&value) {
        1286  +
        value: i32,
        1287  +
    ) -> ::std::result::Result<(), crate::model::range_integer_internal::ConstraintViolation> {
        1288  +
        if (0..=69).contains(&value) {
 2489   1289   
            Ok(())
 2490   1290   
        } else {
 2491         -
            Err(crate::model::range_short_internal::ConstraintViolation::Range(value))
        1291  +
            Err(crate::model::range_integer_internal::ConstraintViolation::Range(value))
 2492   1292   
        }
 2493   1293   
    }
 2494   1294   
}
 2495         -
impl ::std::convert::TryFrom<i16> for RangeShort {
 2496         -
    type Error = crate::model::range_short_internal::ConstraintViolation;
        1295  +
impl ::std::convert::TryFrom<i32> for RangeInteger {
        1296  +
    type Error = crate::model::range_integer_internal::ConstraintViolation;
 2497   1297   
 2498         -
    /// Constructs a `RangeShort` from an [`i16`], failing when the provided value does not satisfy the modeled constraints.
 2499         -
    fn try_from(value: i16) -> ::std::result::Result<Self, Self::Error> {
        1298  +
    /// Constructs a `RangeInteger` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
        1299  +
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 2500   1300   
        Self::check_range(value)?;
 2501   1301   
 2502   1302   
        Ok(Self(value))
 2503   1303   
    }
 2504   1304   
}
 2505   1305   
 2506   1306   
#[allow(missing_docs)] // documentation missing in model
 2507   1307   
///
 2508   1308   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2509         -
/// [constraint traits]. Use [`SetOfRangeShort::try_from`] to construct values of this type.
 2510         -
///
 2511         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2512         -
///
 2513         -
#[derive(
 2514         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2515         -
)]
 2516         -
pub(crate) struct SetOfRangeShort(pub(crate) ::std::vec::Vec<crate::model::RangeShort>);
 2517         -
impl SetOfRangeShort {
 2518         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::RangeShort>`].
 2519         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::RangeShort> {
 2520         -
        self.0
 2521         -
    }
 2522         -
 2523         -
    fn check_unique_items(
 2524         -
        items: ::std::vec::Vec<crate::model::RangeShort>,
 2525         -
    ) -> ::std::result::Result<
 2526         -
        ::std::vec::Vec<crate::model::RangeShort>,
 2527         -
        crate::model::set_of_range_short_internal::ConstraintViolation,
 2528         -
    > {
 2529         -
        let mut seen = ::std::collections::HashMap::new();
 2530         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 2531         -
        for (idx, item) in items.iter().enumerate() {
 2532         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 2533         -
                duplicate_indices.push(prev_idx);
 2534         -
            }
 2535         -
        }
 2536         -
 2537         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 2538         -
        for idx in &duplicate_indices {
 2539         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 2540         -
                last_duplicate_indices.push(prev_idx);
 2541         -
            }
 2542         -
        }
 2543         -
        duplicate_indices.extend(last_duplicate_indices);
 2544         -
 2545         -
        if !duplicate_indices.is_empty() {
 2546         -
            debug_assert!(duplicate_indices.len() >= 2);
 2547         -
            Err(
 2548         -
                crate::model::set_of_range_short_internal::ConstraintViolation::UniqueItems {
 2549         -
                    duplicate_indices,
 2550         -
                    original: items,
 2551         -
                },
 2552         -
            )
 2553         -
        } else {
 2554         -
            Ok(items)
 2555         -
        }
 2556         -
    }
 2557         -
}
 2558         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::RangeShort>> for SetOfRangeShort {
 2559         -
    type Error = crate::model::set_of_range_short_internal::ConstraintViolation;
 2560         -
 2561         -
    /// Constructs a `SetOfRangeShort` from an [`::std::vec::Vec<crate::model::RangeShort>`], failing when the provided value does not satisfy the modeled constraints.
 2562         -
    fn try_from(
 2563         -
        value: ::std::vec::Vec<crate::model::RangeShort>,
 2564         -
    ) -> ::std::result::Result<Self, Self::Error> {
 2565         -
        let value = Self::check_unique_items(value)?;
 2566         -
 2567         -
        Ok(Self(value))
 2568         -
    }
 2569         -
}
 2570         -
 2571         -
impl ::std::convert::From<SetOfRangeShort> for ::std::vec::Vec<crate::model::RangeShort> {
 2572         -
    fn from(value: SetOfRangeShort) -> Self {
 2573         -
        value.into_inner()
 2574         -
    }
 2575         -
}
 2576         -
impl ::std::convert::From<SetOfRangeShort> for ::std::vec::Vec<i16> {
 2577         -
    fn from(value: SetOfRangeShort) -> Self {
 2578         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
 2579         -
    }
 2580         -
}
 2581         -
impl crate::constrained::Constrained for SetOfRangeShort {
 2582         -
    type Unconstrained =
 2583         -
        crate::unconstrained::set_of_range_short_unconstrained::SetOfRangeShortUnconstrained;
 2584         -
}
 2585         -
 2586         -
#[allow(missing_docs)] // documentation missing in model
 2587         -
///
 2588         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2589         -
/// [constraint traits]. Use [`RangeInteger::try_from`] to construct values of this type.
        1309  +
/// [constraint traits]. Use [`RangeShort::try_from`] to construct values of this type.
 2590   1310   
///
 2591   1311   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2592   1312   
///
 2593   1313   
#[derive(
 2594   1314   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2595   1315   
)]
 2596         -
pub(crate) struct RangeInteger(pub(crate) i32);
        1316  +
pub(crate) struct RangeShort(pub(crate) i16);
 2597   1317   
#[allow(dead_code)]
 2598         -
impl RangeInteger {
 2599         -
    /// Returns an immutable reference to the underlying [`i32`].
 2600         -
    pub fn inner(&self) -> &i32 {
        1318  +
impl RangeShort {
        1319  +
    /// Returns an immutable reference to the underlying [`i16`].
        1320  +
    pub fn inner(&self) -> &i16 {
 2601   1321   
        &self.0
 2602   1322   
    }
 2603   1323   
 2604         -
    /// Consumes the value, returning the underlying [`i32`].
 2605         -
    pub fn into_inner(self) -> i32 {
        1324  +
    /// Consumes the value, returning the underlying [`i16`].
        1325  +
    pub fn into_inner(self) -> i16 {
 2606   1326   
        self.0
 2607   1327   
    }
 2608   1328   
}
 2609   1329   
 2610         -
impl crate::constrained::Constrained for RangeInteger {
 2611         -
    type Unconstrained = i32;
        1330  +
impl crate::constrained::Constrained for RangeShort {
        1331  +
    type Unconstrained = i16;
 2612   1332   
}
 2613   1333   
 2614         -
impl ::std::convert::From<i32>
 2615         -
    for crate::constrained::MaybeConstrained<crate::model::RangeInteger>
 2616         -
{
 2617         -
    fn from(value: i32) -> Self {
        1334  +
impl ::std::convert::From<i16> for crate::constrained::MaybeConstrained<crate::model::RangeShort> {
        1335  +
    fn from(value: i16) -> Self {
 2618   1336   
        Self::Unconstrained(value)
 2619   1337   
    }
 2620   1338   
}
 2621   1339   
 2622         -
impl ::std::fmt::Display for RangeInteger {
        1340  +
impl ::std::fmt::Display for RangeShort {
 2623   1341   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2624   1342   
        self.0.fmt(f)
 2625   1343   
    }
 2626   1344   
}
 2627   1345   
 2628         -
impl ::std::convert::From<RangeInteger> for i32 {
 2629         -
    fn from(value: RangeInteger) -> Self {
        1346  +
impl ::std::convert::From<RangeShort> for i16 {
        1347  +
    fn from(value: RangeShort) -> Self {
 2630   1348   
        value.into_inner()
 2631   1349   
    }
 2632   1350   
}
 2633         -
impl RangeInteger {
        1351  +
impl RangeShort {
 2634   1352   
    fn check_range(
 2635         -
        value: i32,
 2636         -
    ) -> ::std::result::Result<(), crate::model::range_integer_internal::ConstraintViolation> {
 2637         -
        if (0..=69).contains(&value) {
        1353  +
        value: i16,
        1354  +
    ) -> ::std::result::Result<(), crate::model::range_short_internal::ConstraintViolation> {
        1355  +
        if (0..=10).contains(&value) {
 2638   1356   
            Ok(())
 2639   1357   
        } else {
 2640         -
            Err(crate::model::range_integer_internal::ConstraintViolation::Range(value))
        1358  +
            Err(crate::model::range_short_internal::ConstraintViolation::Range(value))
 2641   1359   
        }
 2642   1360   
    }
 2643   1361   
}
 2644         -
impl ::std::convert::TryFrom<i32> for RangeInteger {
 2645         -
    type Error = crate::model::range_integer_internal::ConstraintViolation;
        1362  +
impl ::std::convert::TryFrom<i16> for RangeShort {
        1363  +
    type Error = crate::model::range_short_internal::ConstraintViolation;
 2646   1364   
 2647         -
    /// Constructs a `RangeInteger` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
 2648         -
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
        1365  +
    /// Constructs a `RangeShort` from an [`i16`], failing when the provided value does not satisfy the modeled constraints.
        1366  +
    fn try_from(value: i16) -> ::std::result::Result<Self, Self::Error> {
 2649   1367   
        Self::check_range(value)?;
 2650   1368   
 2651   1369   
        Ok(Self(value))
 2652   1370   
    }
 2653   1371   
}
 2654   1372   
 2655   1373   
#[allow(missing_docs)] // documentation missing in model
 2656   1374   
///
 2657   1375   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2658         -
/// [constraint traits]. Use [`SetOfRangeInteger::try_from`] to construct values of this type.
        1376  +
/// [constraint traits]. Use [`RangeLong::try_from`] to construct values of this type.
 2659   1377   
///
 2660   1378   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2661   1379   
///
 2662   1380   
#[derive(
 2663   1381   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2664   1382   
)]
 2665         -
pub(crate) struct SetOfRangeInteger(pub(crate) ::std::vec::Vec<crate::model::RangeInteger>);
 2666         -
impl SetOfRangeInteger {
 2667         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::RangeInteger>`].
 2668         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::RangeInteger> {
 2669         -
        self.0
        1383  +
pub(crate) struct RangeLong(pub(crate) i64);
        1384  +
#[allow(dead_code)]
        1385  +
impl RangeLong {
        1386  +
    /// Returns an immutable reference to the underlying [`i64`].
        1387  +
    pub fn inner(&self) -> &i64 {
        1388  +
        &self.0
 2670   1389   
    }
 2671   1390   
 2672         -
    fn check_unique_items(
 2673         -
        items: ::std::vec::Vec<crate::model::RangeInteger>,
 2674         -
    ) -> ::std::result::Result<
 2675         -
        ::std::vec::Vec<crate::model::RangeInteger>,
 2676         -
        crate::model::set_of_range_integer_internal::ConstraintViolation,
 2677         -
    > {
 2678         -
        let mut seen = ::std::collections::HashMap::new();
 2679         -
        let mut duplicate_indices = ::std::vec::Vec::new();
 2680         -
        for (idx, item) in items.iter().enumerate() {
 2681         -
            if let Some(prev_idx) = seen.insert(item, idx) {
 2682         -
                duplicate_indices.push(prev_idx);
 2683         -
            }
 2684         -
        }
        1391  +
    /// Consumes the value, returning the underlying [`i64`].
        1392  +
    pub fn into_inner(self) -> i64 {
        1393  +
        self.0
        1394  +
    }
        1395  +
}
 2685   1396   
 2686         -
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 2687         -
        for idx in &duplicate_indices {
 2688         -
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 2689         -
                last_duplicate_indices.push(prev_idx);
 2690         -
            }
 2691         -
        }
 2692         -
        duplicate_indices.extend(last_duplicate_indices);
        1397  +
impl crate::constrained::Constrained for RangeLong {
        1398  +
    type Unconstrained = i64;
        1399  +
}
 2693   1400   
 2694         -
        if !duplicate_indices.is_empty() {
 2695         -
            debug_assert!(duplicate_indices.len() >= 2);
 2696         -
            Err(
 2697         -
                crate::model::set_of_range_integer_internal::ConstraintViolation::UniqueItems {
 2698         -
                    duplicate_indices,
 2699         -
                    original: items,
 2700         -
                },
 2701         -
            )
 2702         -
        } else {
 2703         -
            Ok(items)
 2704         -
        }
        1401  +
impl ::std::convert::From<i64> for crate::constrained::MaybeConstrained<crate::model::RangeLong> {
        1402  +
    fn from(value: i64) -> Self {
        1403  +
        Self::Unconstrained(value)
 2705   1404   
    }
 2706   1405   
}
 2707         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::RangeInteger>> for SetOfRangeInteger {
 2708         -
    type Error = crate::model::set_of_range_integer_internal::ConstraintViolation;
 2709         -
 2710         -
    /// Constructs a `SetOfRangeInteger` from an [`::std::vec::Vec<crate::model::RangeInteger>`], failing when the provided value does not satisfy the modeled constraints.
 2711         -
    fn try_from(
 2712         -
        value: ::std::vec::Vec<crate::model::RangeInteger>,
 2713         -
    ) -> ::std::result::Result<Self, Self::Error> {
 2714         -
        let value = Self::check_unique_items(value)?;
 2715   1406   
 2716         -
        Ok(Self(value))
        1407  +
impl ::std::fmt::Display for RangeLong {
        1408  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        1409  +
        self.0.fmt(f)
 2717   1410   
    }
 2718   1411   
}
 2719   1412   
 2720         -
impl ::std::convert::From<SetOfRangeInteger> for ::std::vec::Vec<crate::model::RangeInteger> {
 2721         -
    fn from(value: SetOfRangeInteger) -> Self {
        1413  +
impl ::std::convert::From<RangeLong> for i64 {
        1414  +
    fn from(value: RangeLong) -> Self {
 2722   1415   
        value.into_inner()
 2723   1416   
    }
 2724   1417   
}
 2725         -
impl ::std::convert::From<SetOfRangeInteger> for ::std::vec::Vec<i32> {
 2726         -
    fn from(value: SetOfRangeInteger) -> Self {
 2727         -
        value.into_inner().into_iter().map(|v| v.into()).collect()
        1418  +
impl RangeLong {
        1419  +
    fn check_range(
        1420  +
        value: i64,
        1421  +
    ) -> ::std::result::Result<(), crate::model::range_long_internal::ConstraintViolation> {
        1422  +
        if (0..=10).contains(&value) {
        1423  +
            Ok(())
        1424  +
        } else {
        1425  +
            Err(crate::model::range_long_internal::ConstraintViolation::Range(value))
        1426  +
        }
 2728   1427   
    }
 2729   1428   
}
 2730         -
impl crate::constrained::Constrained for SetOfRangeInteger {
 2731         -
    type Unconstrained =
 2732         -
        crate::unconstrained::set_of_range_integer_unconstrained::SetOfRangeIntegerUnconstrained;
        1429  +
impl ::std::convert::TryFrom<i64> for RangeLong {
        1430  +
    type Error = crate::model::range_long_internal::ConstraintViolation;
        1431  +
        1432  +
    /// Constructs a `RangeLong` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
        1433  +
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
        1434  +
        Self::check_range(value)?;
        1435  +
        1436  +
        Ok(Self(value))
        1437  +
    }
 2733   1438   
}
 2734   1439   
 2735   1440   
#[allow(missing_docs)] // documentation missing in model
 2736   1441   
///
 2737   1442   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2738         -
/// [constraint traits]. Use [`LengthBlob::try_from`] to construct values of this type.
        1443  +
/// [constraint traits]. Use [`RangeByte::try_from`] to construct values of this type.
 2739   1444   
///
 2740   1445   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2741   1446   
///
 2742   1447   
#[derive(
 2743   1448   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2744   1449   
)]
 2745         -
pub(crate) struct LengthBlob(pub(crate) ::aws_smithy_types::Blob);
 2746         -
impl LengthBlob {
 2747         -
    /// Consumes the value, returning the underlying [`::aws_smithy_types::Blob`].
 2748         -
    pub fn into_inner(self) -> ::aws_smithy_types::Blob {
 2749         -
        self.0
        1450  +
pub(crate) struct RangeByte(pub(crate) i8);
        1451  +
#[allow(dead_code)]
        1452  +
impl RangeByte {
        1453  +
    /// Returns an immutable reference to the underlying [`i8`].
        1454  +
    pub fn inner(&self) -> &i8 {
        1455  +
        &self.0
 2750   1456   
    }
 2751         -
}
 2752         -
impl LengthBlob {
 2753         -
    fn check_length(
 2754         -
        blob: &::aws_smithy_types::Blob,
 2755         -
    ) -> ::std::result::Result<(), crate::model::length_blob_internal::ConstraintViolation> {
 2756         -
        let length = blob.as_ref().len();
 2757   1457   
 2758         -
        if (2..=70).contains(&length) {
 2759         -
            Ok(())
 2760         -
        } else {
 2761         -
            Err(crate::model::length_blob_internal::ConstraintViolation::Length(length))
 2762         -
        }
        1458  +
    /// Consumes the value, returning the underlying [`i8`].
        1459  +
    pub fn into_inner(self) -> i8 {
        1460  +
        self.0
 2763   1461   
    }
 2764   1462   
}
 2765         -
impl ::std::convert::TryFrom<::aws_smithy_types::Blob> for LengthBlob {
 2766         -
    type Error = crate::model::length_blob_internal::ConstraintViolation;
 2767         -
 2768         -
    /// Constructs a `LengthBlob` from an [`::aws_smithy_types::Blob`], failing when the provided value does not satisfy the modeled constraints.
 2769         -
    fn try_from(value: ::aws_smithy_types::Blob) -> ::std::result::Result<Self, Self::Error> {
 2770         -
        Self::check_length(&value)?;
 2771   1463   
 2772         -
        Ok(Self(value))
 2773         -
    }
 2774         -
}
 2775         -
impl crate::constrained::Constrained for LengthBlob {
 2776         -
    type Unconstrained = ::aws_smithy_types::Blob;
        1464  +
impl crate::constrained::Constrained for RangeByte {
        1465  +
    type Unconstrained = i8;
 2777   1466   
}
 2778   1467   
 2779         -
impl ::std::convert::From<::aws_smithy_types::Blob>
 2780         -
    for crate::constrained::MaybeConstrained<crate::model::LengthBlob>
 2781         -
{
 2782         -
    fn from(value: ::aws_smithy_types::Blob) -> Self {
        1468  +
impl ::std::convert::From<i8> for crate::constrained::MaybeConstrained<crate::model::RangeByte> {
        1469  +
    fn from(value: i8) -> Self {
 2783   1470   
        Self::Unconstrained(value)
 2784   1471   
    }
 2785   1472   
}
 2786   1473   
 2787         -
impl ::std::convert::From<LengthBlob> for ::aws_smithy_types::Blob {
 2788         -
    fn from(value: LengthBlob) -> Self {
 2789         -
        value.into_inner()
 2790         -
    }
 2791         -
}
 2792         -
 2793         -
impl ::std::convert::From<::aws_smithy_http_server_python::types::Blob>
 2794         -
    for crate::constrained::MaybeConstrained<crate::model::LengthBlob>
 2795         -
{
 2796         -
    fn from(value: ::aws_smithy_http_server_python::types::Blob) -> Self {
 2797         -
        Self::Unconstrained(value.into())
 2798         -
    }
 2799         -
}
 2800         -
 2801         -
impl ::std::convert::From<LengthBlob> for ::aws_smithy_http_server_python::types::Blob {
 2802         -
    fn from(value: LengthBlob) -> Self {
 2803         -
        value.into_inner().into()
        1474  +
impl ::std::fmt::Display for RangeByte {
        1475  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        1476  +
        self.0.fmt(f)
 2804   1477   
    }
 2805   1478   
}
 2806         -
impl ::std::convert::TryFrom<::aws_smithy_http_server_python::types::Blob> for LengthBlob {
 2807         -
    type Error = crate::model::length_blob_internal::ConstraintViolation;
 2808   1479   
 2809         -
    fn try_from(
 2810         -
        value: ::aws_smithy_http_server_python::types::Blob,
 2811         -
    ) -> ::std::result::Result<Self, Self::Error> {
 2812         -
        value.try_into()
        1480  +
impl ::std::convert::From<RangeByte> for i8 {
        1481  +
    fn from(value: RangeByte) -> Self {
        1482  +
        value.into_inner()
 2813   1483   
    }
 2814   1484   
}
 2815         -
 2816         -
/// A union with constrained members.
 2817         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 2818         -
pub enum ConstrainedUnion {
 2819         -
    #[allow(missing_docs)] // documentation missing in model
 2820         -
    ConBList(::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>),
 2821         -
    #[allow(missing_docs)] // documentation missing in model
 2822         -
    ConBMap(::std::collections::HashMap<::std::string::String, ::std::string::String>),
 2823         -
    #[allow(missing_docs)] // documentation missing in model
 2824         -
    ConBSet(::std::vec::Vec<::std::vec::Vec<::std::string::String>>),
 2825         -
    #[allow(missing_docs)] // documentation missing in model
 2826         -
    ConstrainedStructure(crate::model::ConB),
 2827         -
    #[allow(missing_docs)] // documentation missing in model
 2828         -
    EnumString(crate::model::EnumString),
 2829         -
    #[allow(missing_docs)] // documentation missing in model
 2830         -
    LengthString(::std::string::String),
 2831         -
}
 2832         -
impl ConstrainedUnion {
 2833         -
    /// Tries to convert the enum instance into [`ConBList`](crate::model::ConstrainedUnion::ConBList), extracting the inner [`Vec`](::std::vec::Vec).
 2834         -
    /// Returns `Err(&Self)` if it can't be converted.
 2835         -
    pub fn as_con_b_list(
 2836         -
        &self,
 2837         -
    ) -> ::std::result::Result<&::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>, &Self> {
 2838         -
        if let ConstrainedUnion::ConBList(val) = &self {
 2839         -
            ::std::result::Result::Ok(val)
 2840         -
        } else {
 2841         -
            ::std::result::Result::Err(self)
 2842         -
        }
 2843         -
    }
 2844         -
    /// Returns true if this is a [`ConBList`](crate::model::ConstrainedUnion::ConBList).
 2845         -
    pub fn is_con_b_list(&self) -> bool {
 2846         -
        self.as_con_b_list().is_ok()
 2847         -
    }
 2848         -
    /// Tries to convert the enum instance into [`ConBMap`](crate::model::ConstrainedUnion::ConBMap), extracting the inner [`HashMap`](::std::collections::HashMap).
 2849         -
    /// Returns `Err(&Self)` if it can't be converted.
 2850         -
    pub fn as_con_b_map(
 2851         -
        &self,
 2852         -
    ) -> ::std::result::Result<
 2853         -
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
 2854         -
        &Self,
 2855         -
    > {
 2856         -
        if let ConstrainedUnion::ConBMap(val) = &self {
 2857         -
            ::std::result::Result::Ok(val)
 2858         -
        } else {
 2859         -
            ::std::result::Result::Err(self)
 2860         -
        }
 2861         -
    }
 2862         -
    /// Returns true if this is a [`ConBMap`](crate::model::ConstrainedUnion::ConBMap).
 2863         -
    pub fn is_con_b_map(&self) -> bool {
 2864         -
        self.as_con_b_map().is_ok()
 2865         -
    }
 2866         -
    /// Tries to convert the enum instance into [`ConBSet`](crate::model::ConstrainedUnion::ConBSet), extracting the inner [`Vec`](::std::vec::Vec).
 2867         -
    /// Returns `Err(&Self)` if it can't be converted.
 2868         -
    pub fn as_con_b_set(
 2869         -
        &self,
 2870         -
    ) -> ::std::result::Result<&::std::vec::Vec<::std::vec::Vec<::std::string::String>>, &Self>
 2871         -
    {
 2872         -
        if let ConstrainedUnion::ConBSet(val) = &self {
 2873         -
            ::std::result::Result::Ok(val)
        1485  +
impl RangeByte {
        1486  +
    fn check_range(
        1487  +
        value: i8,
        1488  +
    ) -> ::std::result::Result<(), crate::model::range_byte_internal::ConstraintViolation> {
        1489  +
        if (0..=10).contains(&value) {
        1490  +
            Ok(())
 2874   1491   
        } else {
 2875         -
            ::std::result::Result::Err(self)
        1492  +
            Err(crate::model::range_byte_internal::ConstraintViolation::Range(value))
 2876   1493   
        }
 2877   1494   
    }
 2878         -
    /// Returns true if this is a [`ConBSet`](crate::model::ConstrainedUnion::ConBSet).
 2879         -
    pub fn is_con_b_set(&self) -> bool {
 2880         -
        self.as_con_b_set().is_ok()
        1495  +
}
        1496  +
impl ::std::convert::TryFrom<i8> for RangeByte {
        1497  +
    type Error = crate::model::range_byte_internal::ConstraintViolation;
        1498  +
        1499  +
    /// Constructs a `RangeByte` from an [`i8`], failing when the provided value does not satisfy the modeled constraints.
        1500  +
    fn try_from(value: i8) -> ::std::result::Result<Self, Self::Error> {
        1501  +
        Self::check_range(value)?;
        1502  +
        1503  +
        Ok(Self(value))
 2881   1504   
    }
 2882         -
    /// Tries to convert the enum instance into [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure), extracting the inner [`ConB`](crate::model::ConB).
 2883         -
    /// Returns `Err(&Self)` if it can't be converted.
 2884         -
    pub fn as_constrained_structure(&self) -> ::std::result::Result<&crate::model::ConB, &Self> {
 2885         -
        if let ConstrainedUnion::ConstrainedStructure(val) = &self {
 2886         -
            ::std::result::Result::Ok(val)
 2887         -
        } else {
 2888         -
            ::std::result::Result::Err(self)
        1505  +
}
        1506  +
        1507  +
#[::pyo3::pyclass]
        1508  +
#[allow(missing_docs)] // documentation missing in model
        1509  +
#[derive(
        1510  +
    ::std::clone::Clone,
        1511  +
    ::std::cmp::Eq,
        1512  +
    ::std::cmp::Ord,
        1513  +
    ::std::cmp::PartialEq,
        1514  +
    ::std::cmp::PartialOrd,
        1515  +
    ::std::fmt::Debug,
        1516  +
    ::std::hash::Hash,
        1517  +
)]
        1518  +
pub enum EnumString {
        1519  +
    #[allow(missing_docs)] // documentation missing in model
        1520  +
    M256Mega,
        1521  +
    #[allow(missing_docs)] // documentation missing in model
        1522  +
    T2Micro,
        1523  +
    #[allow(missing_docs)] // documentation missing in model
        1524  +
    T2Nano,
        1525  +
}
        1526  +
pub(crate) mod enum_string_internal {
        1527  +
    #[derive(Debug, PartialEq)]
        1528  +
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
        1529  +
        1530  +
    impl ::std::fmt::Display for ConstraintViolation {
        1531  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        1532  +
            write!(
        1533  +
                f,
        1534  +
                r#"Value provided for 'com.amazonaws.constraints#EnumString' failed to satisfy constraint: Member must satisfy enum value set: [t2.nano, t2.micro, m256.mega]"#
        1535  +
            )
 2889   1536   
        }
 2890   1537   
    }
 2891         -
    /// Returns true if this is a [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure).
 2892         -
    pub fn is_constrained_structure(&self) -> bool {
 2893         -
        self.as_constrained_structure().is_ok()
        1538  +
        1539  +
    impl ::std::error::Error for ConstraintViolation {}
        1540  +
    impl ConstraintViolation {
        1541  +
        pub(crate) fn as_validation_exception_field(
        1542  +
            self,
        1543  +
            path: ::std::string::String,
        1544  +
        ) -> crate::model::ValidationExceptionField {
        1545  +
            crate::model::ValidationExceptionField {
        1546  +
                message: format!(
        1547  +
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [t2.nano, t2.micro, m256.mega]"#,
        1548  +
                    &path
        1549  +
                ),
        1550  +
                path,
        1551  +
            }
        1552  +
        }
 2894   1553   
    }
 2895         -
    /// Tries to convert the enum instance into [`EnumString`](crate::model::ConstrainedUnion::EnumString), extracting the inner [`EnumString`](crate::model::EnumString).
 2896         -
    /// Returns `Err(&Self)` if it can't be converted.
 2897         -
    pub fn as_enum_string(&self) -> ::std::result::Result<&crate::model::EnumString, &Self> {
 2898         -
        if let ConstrainedUnion::EnumString(val) = &self {
 2899         -
            ::std::result::Result::Ok(val)
 2900         -
        } else {
 2901         -
            ::std::result::Result::Err(self)
        1554  +
}
        1555  +
impl ::std::convert::TryFrom<&str> for EnumString {
        1556  +
    type Error = crate::model::enum_string_internal::ConstraintViolation;
        1557  +
    fn try_from(
        1558  +
        s: &str,
        1559  +
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
        1560  +
        match s {
        1561  +
            "m256.mega" => Ok(EnumString::M256Mega),
        1562  +
            "t2.micro" => Ok(EnumString::T2Micro),
        1563  +
            "t2.nano" => Ok(EnumString::T2Nano),
        1564  +
            _ => Err(crate::model::enum_string_internal::ConstraintViolation(
        1565  +
                s.to_owned(),
        1566  +
            )),
 2902   1567   
        }
 2903   1568   
    }
 2904         -
    /// Returns true if this is a [`EnumString`](crate::model::ConstrainedUnion::EnumString).
 2905         -
    pub fn is_enum_string(&self) -> bool {
 2906         -
        self.as_enum_string().is_ok()
        1569  +
}
        1570  +
impl ::std::convert::TryFrom<::std::string::String> for EnumString {
        1571  +
    type Error = crate::model::enum_string_internal::ConstraintViolation;
        1572  +
    fn try_from(
        1573  +
        s: ::std::string::String,
        1574  +
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
        1575  +
    {
        1576  +
        s.as_str().try_into()
 2907   1577   
    }
 2908         -
    /// Tries to convert the enum instance into [`LengthString`](crate::model::ConstrainedUnion::LengthString), extracting the inner [`String`](::std::string::String).
 2909         -
    /// Returns `Err(&Self)` if it can't be converted.
 2910         -
    pub fn as_length_string(&self) -> ::std::result::Result<&::std::string::String, &Self> {
 2911         -
        if let ConstrainedUnion::LengthString(val) = &self {
 2912         -
            ::std::result::Result::Ok(val)
 2913         -
        } else {
 2914         -
            ::std::result::Result::Err(self)
        1578  +
}
        1579  +
impl std::str::FromStr for EnumString {
        1580  +
    type Err = crate::model::enum_string_internal::ConstraintViolation;
        1581  +
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
        1582  +
        Self::try_from(s)
        1583  +
    }
        1584  +
}
        1585  +
impl EnumString {
        1586  +
    /// Returns the `&str` value of the enum member.
        1587  +
    pub fn as_str(&self) -> &str {
        1588  +
        match self {
        1589  +
            EnumString::M256Mega => "m256.mega",
        1590  +
            EnumString::T2Micro => "t2.micro",
        1591  +
            EnumString::T2Nano => "t2.nano",
 2915   1592   
        }
 2916   1593   
    }
 2917         -
    /// Returns true if this is a [`LengthString`](crate::model::ConstrainedUnion::LengthString).
 2918         -
    pub fn is_length_string(&self) -> bool {
 2919         -
        self.as_length_string().is_ok()
        1594  +
    /// Returns all the `&str` representations of the enum members.
        1595  +
    pub const fn values() -> &'static [&'static str] {
        1596  +
        &["m256.mega", "t2.micro", "t2.nano"]
 2920   1597   
    }
 2921   1598   
}
 2922         -
#[pyo3::pyclass(name = "ConstrainedUnion")]
 2923         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 2924         -
pub struct PyUnionMarkerConstrainedUnion(pub ConstrainedUnion);
 2925         -
#[::pyo3::pymethods]
 2926         -
impl PyUnionMarkerConstrainedUnion {
 2927         -
    #[staticmethod]
 2928         -
    /// Creates a new union instance of [`ConBList`](crate::model::ConstrainedUnion::ConBList)
 2929         -
    /// :param data typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]:
 2930         -
    /// :rtype ConstrainedUnion:
 2931         -
    pub fn con_b_list(data: ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>) -> Self {
 2932         -
        Self(ConstrainedUnion::ConBList(data))
        1599  +
impl ::std::convert::AsRef<str> for EnumString {
        1600  +
    fn as_ref(&self) -> &str {
        1601  +
        self.as_str()
 2933   1602   
    }
 2934         -
    /// Tries to convert the enum instance into [`ConBList`](crate::model::ConstrainedUnion::ConBList), extracting the inner [`Vec`](::std::vec::Vec).
 2935         -
    /// :rtype typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]:
 2936         -
    pub fn as_con_b_list(
 2937         -
        &self,
 2938         -
    ) -> ::pyo3::PyResult<::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>> {
 2939         -
        match self.0.as_con_b_list() {
 2940         -
            Ok(variant) => Ok(variant.clone()),
 2941         -
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
 2942         -
                r"ConstrainedUnion variant is not of type typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]",
 2943         -
            )),
        1603  +
}
        1604  +
#[::pyo3::pymethods]
        1605  +
impl EnumString {
        1606  +
    #[getter]
        1607  +
    pub fn name(&self) -> &str {
        1608  +
        match self {
        1609  +
            EnumString::M256Mega => "M256Mega",
        1610  +
            EnumString::T2Micro => "T2Micro",
        1611  +
            EnumString::T2Nano => "T2Nano",
 2944   1612   
        }
 2945   1613   
    }
 2946         -
    /// Returns true if this is a [`ConBList`](crate::model::ConstrainedUnion::ConBList).
 2947         -
    /// :rtype bool:
 2948         -
    pub fn is_con_b_list(&self) -> bool {
 2949         -
        self.0.is_con_b_list()
        1614  +
    #[getter]
        1615  +
    pub fn value(&self) -> &str {
        1616  +
        self.as_str()
 2950   1617   
    }
 2951         -
    #[staticmethod]
 2952         -
    /// Creates a new union instance of [`ConBMap`](crate::model::ConstrainedUnion::ConBMap)
 2953         -
    /// :param data typing.Dict\[str, str\]:
 2954         -
    /// :rtype ConstrainedUnion:
 2955         -
    pub fn con_b_map(
 2956         -
        data: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 2957         -
    ) -> Self {
 2958         -
        Self(ConstrainedUnion::ConBMap(data))
        1618  +
    fn __repr__(&self) -> String {
        1619  +
        self.as_str().to_owned()
 2959   1620   
    }
 2960         -
    /// Tries to convert the enum instance into [`ConBMap`](crate::model::ConstrainedUnion::ConBMap), extracting the inner [`HashMap`](::std::collections::HashMap).
 2961         -
    /// :rtype typing.Dict\[str, str\]:
 2962         -
    pub fn as_con_b_map(
 2963         -
        &self,
 2964         -
    ) -> ::pyo3::PyResult<::std::collections::HashMap<::std::string::String, ::std::string::String>>
 2965         -
    {
 2966         -
        match self.0.as_con_b_map() {
 2967         -
            Ok(variant) => Ok(variant.clone()),
 2968         -
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
 2969         -
                r"ConstrainedUnion variant is not of type typing.Dict\[str, str\]",
 2970         -
            )),
 2971         -
        }
        1621  +
    fn __str__(&self) -> String {
        1622  +
        self.as_str().to_owned()
 2972   1623   
    }
 2973         -
    /// Returns true if this is a [`ConBMap`](crate::model::ConstrainedUnion::ConBMap).
 2974         -
    /// :rtype bool:
 2975         -
    pub fn is_con_b_map(&self) -> bool {
 2976         -
        self.0.is_con_b_map()
        1624  +
}
        1625  +
impl crate::constrained::Constrained for EnumString {
        1626  +
    type Unconstrained = ::std::string::String;
        1627  +
}
        1628  +
        1629  +
impl ::std::convert::From<::std::string::String>
        1630  +
    for crate::constrained::MaybeConstrained<crate::model::EnumString>
        1631  +
{
        1632  +
    fn from(value: ::std::string::String) -> Self {
        1633  +
        Self::Unconstrained(value)
        1634  +
    }
        1635  +
}
        1636  +
        1637  +
#[allow(missing_docs)] // documentation missing in model
        1638  +
///
        1639  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        1640  +
/// [constraint traits]. Use [`SetOfLengthString::try_from`] to construct values of this type.
        1641  +
///
        1642  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        1643  +
///
        1644  +
#[derive(
        1645  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        1646  +
)]
        1647  +
pub(crate) struct SetOfLengthString(pub(crate) ::std::vec::Vec<crate::model::LengthString>);
        1648  +
impl SetOfLengthString {
        1649  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::LengthString>`].
        1650  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::LengthString> {
        1651  +
        self.0
        1652  +
    }
        1653  +
        1654  +
    fn check_unique_items(
        1655  +
        items: ::std::vec::Vec<crate::model::LengthString>,
        1656  +
    ) -> ::std::result::Result<
        1657  +
        ::std::vec::Vec<crate::model::LengthString>,
        1658  +
        crate::model::set_of_length_string_internal::ConstraintViolation,
        1659  +
    > {
        1660  +
        let mut seen = ::std::collections::HashMap::new();
        1661  +
        let mut duplicate_indices = ::std::vec::Vec::new();
        1662  +
        for (idx, item) in items.iter().enumerate() {
        1663  +
            if let Some(prev_idx) = seen.insert(item, idx) {
        1664  +
                duplicate_indices.push(prev_idx);
        1665  +
            }
        1666  +
        }
        1667  +
        1668  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
        1669  +
        for idx in &duplicate_indices {
        1670  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
        1671  +
                last_duplicate_indices.push(prev_idx);
        1672  +
            }
        1673  +
        }
        1674  +
        duplicate_indices.extend(last_duplicate_indices);
        1675  +
        1676  +
        if !duplicate_indices.is_empty() {
        1677  +
            debug_assert!(duplicate_indices.len() >= 2);
        1678  +
            Err(
        1679  +
                crate::model::set_of_length_string_internal::ConstraintViolation::UniqueItems {
        1680  +
                    duplicate_indices,
        1681  +
                    original: items,
        1682  +
                },
        1683  +
            )
        1684  +
        } else {
        1685  +
            Ok(items)
        1686  +
        }
 2977   1687   
    }
 2978         -
    #[staticmethod]
 2979         -
    /// Creates a new union instance of [`ConBSet`](crate::model::ConstrainedUnion::ConBSet)
 2980         -
    /// :param data typing.List\[typing.Set\[str\]\]:
 2981         -
    /// :rtype ConstrainedUnion:
 2982         -
    pub fn con_b_set(data: ::std::vec::Vec<::std::vec::Vec<::std::string::String>>) -> Self {
 2983         -
        Self(ConstrainedUnion::ConBSet(data))
        1688  +
}
        1689  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::LengthString>> for SetOfLengthString {
        1690  +
    type Error = crate::model::set_of_length_string_internal::ConstraintViolation;
        1691  +
        1692  +
    /// Constructs a `SetOfLengthString` from an [`::std::vec::Vec<crate::model::LengthString>`], failing when the provided value does not satisfy the modeled constraints.
        1693  +
    fn try_from(
        1694  +
        value: ::std::vec::Vec<crate::model::LengthString>,
        1695  +
    ) -> ::std::result::Result<Self, Self::Error> {
        1696  +
        let value = Self::check_unique_items(value)?;
        1697  +
        1698  +
        Ok(Self(value))
 2984   1699   
    }
 2985         -
    /// Tries to convert the enum instance into [`ConBSet`](crate::model::ConstrainedUnion::ConBSet), extracting the inner [`Vec`](::std::vec::Vec).
 2986         -
    /// :rtype typing.List\[typing.Set\[str\]\]:
 2987         -
    pub fn as_con_b_set(
 2988         -
        &self,
 2989         -
    ) -> ::pyo3::PyResult<::std::vec::Vec<::std::vec::Vec<::std::string::String>>> {
 2990         -
        match self.0.as_con_b_set() {
 2991         -
            Ok(variant) => Ok(variant.clone()),
 2992         -
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
 2993         -
                r"ConstrainedUnion variant is not of type typing.List\[typing.Set\[str\]\]",
 2994         -
            )),
 2995         -
        }
        1700  +
}
        1701  +
        1702  +
impl ::std::convert::From<SetOfLengthString> for ::std::vec::Vec<crate::model::LengthString> {
        1703  +
    fn from(value: SetOfLengthString) -> Self {
        1704  +
        value.into_inner()
 2996   1705   
    }
 2997         -
    /// Returns true if this is a [`ConBSet`](crate::model::ConstrainedUnion::ConBSet).
 2998         -
    /// :rtype bool:
 2999         -
    pub fn is_con_b_set(&self) -> bool {
 3000         -
        self.0.is_con_b_set()
        1706  +
}
        1707  +
impl ::std::convert::From<SetOfLengthString> for ::std::vec::Vec<::std::string::String> {
        1708  +
    fn from(value: SetOfLengthString) -> Self {
        1709  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
 3001   1710   
    }
 3002         -
    #[staticmethod]
 3003         -
    /// Creates a new union instance of [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure)
 3004         -
    /// :param data constraints_without_public_constrained_types.model.ConB:
 3005         -
    /// :rtype ConstrainedUnion:
 3006         -
    pub fn constrained_structure(data: crate::model::ConB) -> Self {
 3007         -
        Self(ConstrainedUnion::ConstrainedStructure(data))
        1711  +
}
        1712  +
impl crate::constrained::Constrained for SetOfLengthString {
        1713  +
    type Unconstrained =
        1714  +
        crate::unconstrained::set_of_length_string_unconstrained::SetOfLengthStringUnconstrained;
        1715  +
}
        1716  +
        1717  +
#[allow(missing_docs)] // documentation missing in model
        1718  +
///
        1719  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        1720  +
/// [constraint traits]. Use [`LengthListOfPatternString::try_from`] to construct values of this type.
        1721  +
///
        1722  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        1723  +
///
        1724  +
#[derive(
        1725  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        1726  +
)]
        1727  +
pub(crate) struct LengthListOfPatternString(
        1728  +
    pub(crate) ::std::vec::Vec<crate::model::PatternString>,
        1729  +
);
        1730  +
impl LengthListOfPatternString {
        1731  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::PatternString>`].
        1732  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::PatternString> {
        1733  +
        self.0
 3008   1734   
    }
 3009         -
    /// Tries to convert the enum instance into [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure), extracting the inner [`ConB`](crate::model::ConB).
 3010         -
    /// :rtype constraints_without_public_constrained_types.model.ConB:
 3011         -
    pub fn as_constrained_structure(&self) -> ::pyo3::PyResult<crate::model::ConB> {
 3012         -
        match self.0.as_constrained_structure() {
 3013         -
            Ok(variant) => Ok(variant.clone()),
 3014         -
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
 3015         -
                r"ConstrainedUnion variant is not of type constraints_without_public_constrained_types.model.ConB",
 3016         -
            )),
        1735  +
        1736  +
    fn check_length(
        1737  +
        length: usize,
        1738  +
    ) -> ::std::result::Result<
        1739  +
        (),
        1740  +
        crate::model::length_list_of_pattern_string_internal::ConstraintViolation,
        1741  +
    > {
        1742  +
        if (12..=39).contains(&length) {
        1743  +
            Ok(())
        1744  +
        } else {
        1745  +
            Err(
        1746  +
                crate::model::length_list_of_pattern_string_internal::ConstraintViolation::Length(
        1747  +
                    length,
        1748  +
                ),
        1749  +
            )
 3017   1750   
        }
 3018   1751   
    }
 3019         -
    /// Returns true if this is a [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure).
 3020         -
    /// :rtype bool:
 3021         -
    pub fn is_constrained_structure(&self) -> bool {
 3022         -
        self.0.is_constrained_structure()
        1752  +
}
        1753  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::PatternString>>
        1754  +
    for LengthListOfPatternString
        1755  +
{
        1756  +
    type Error = crate::model::length_list_of_pattern_string_internal::ConstraintViolation;
        1757  +
        1758  +
    /// Constructs a `LengthListOfPatternString` from an [`::std::vec::Vec<crate::model::PatternString>`], failing when the provided value does not satisfy the modeled constraints.
        1759  +
    fn try_from(
        1760  +
        value: ::std::vec::Vec<crate::model::PatternString>,
        1761  +
    ) -> ::std::result::Result<Self, Self::Error> {
        1762  +
        Self::check_length(value.len())?;
        1763  +
        1764  +
        Ok(Self(value))
 3023   1765   
    }
 3024         -
    #[staticmethod]
 3025         -
    /// Creates a new union instance of [`EnumString`](crate::model::ConstrainedUnion::EnumString)
 3026         -
    /// :param data constraints_without_public_constrained_types.model.EnumString:
 3027         -
    /// :rtype ConstrainedUnion:
 3028         -
    pub fn enum_string(data: crate::model::EnumString) -> Self {
 3029         -
        Self(ConstrainedUnion::EnumString(data))
        1766  +
}
        1767  +
        1768  +
impl ::std::convert::From<LengthListOfPatternString>
        1769  +
    for ::std::vec::Vec<crate::model::PatternString>
        1770  +
{
        1771  +
    fn from(value: LengthListOfPatternString) -> Self {
        1772  +
        value.into_inner()
 3030   1773   
    }
 3031         -
    /// Tries to convert the enum instance into [`EnumString`](crate::model::ConstrainedUnion::EnumString), extracting the inner [`EnumString`](crate::model::EnumString).
 3032         -
    /// :rtype constraints_without_public_constrained_types.model.EnumString:
 3033         -
    pub fn as_enum_string(&self) -> ::pyo3::PyResult<crate::model::EnumString> {
 3034         -
        match self.0.as_enum_string() {
 3035         -
            Ok(variant) => Ok(variant.clone()),
 3036         -
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
 3037         -
                r"ConstrainedUnion variant is not of type constraints_without_public_constrained_types.model.EnumString",
 3038         -
            )),
 3039         -
        }
        1774  +
}
        1775  +
impl ::std::convert::From<LengthListOfPatternString> for ::std::vec::Vec<::std::string::String> {
        1776  +
    fn from(value: LengthListOfPatternString) -> Self {
        1777  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
 3040   1778   
    }
 3041         -
    /// Returns true if this is a [`EnumString`](crate::model::ConstrainedUnion::EnumString).
 3042         -
    /// :rtype bool:
 3043         -
    pub fn is_enum_string(&self) -> bool {
 3044         -
        self.0.is_enum_string()
        1779  +
}
        1780  +
impl crate::constrained::Constrained for LengthListOfPatternString {
        1781  +
    type Unconstrained = crate::unconstrained::length_list_of_pattern_string_unconstrained::LengthListOfPatternStringUnconstrained;
        1782  +
}
        1783  +
        1784  +
#[allow(missing_docs)] // documentation missing in model
        1785  +
///
        1786  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        1787  +
/// [constraint traits]. Use [`LengthSetOfPatternString::try_from`] to construct values of this type.
        1788  +
///
        1789  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        1790  +
///
        1791  +
#[derive(
        1792  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        1793  +
)]
        1794  +
pub(crate) struct LengthSetOfPatternString(pub(crate) ::std::vec::Vec<crate::model::PatternString>);
        1795  +
impl LengthSetOfPatternString {
        1796  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::PatternString>`].
        1797  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::PatternString> {
        1798  +
        self.0
 3045   1799   
    }
 3046         -
    #[staticmethod]
 3047         -
    /// Creates a new union instance of [`LengthString`](crate::model::ConstrainedUnion::LengthString)
 3048         -
    /// :param data str:
 3049         -
    /// :rtype ConstrainedUnion:
 3050         -
    pub fn length_string(data: ::std::string::String) -> Self {
 3051         -
        Self(ConstrainedUnion::LengthString(data))
        1800  +
        1801  +
    fn check_length(
        1802  +
        length: usize,
        1803  +
    ) -> ::std::result::Result<
        1804  +
        (),
        1805  +
        crate::model::length_set_of_pattern_string_internal::ConstraintViolation,
        1806  +
    > {
        1807  +
        if (5..=9).contains(&length) {
        1808  +
            Ok(())
        1809  +
        } else {
        1810  +
            Err(
        1811  +
                crate::model::length_set_of_pattern_string_internal::ConstraintViolation::Length(
        1812  +
                    length,
        1813  +
                ),
        1814  +
            )
        1815  +
        }
 3052   1816   
    }
 3053         -
    /// Tries to convert the enum instance into [`LengthString`](crate::model::ConstrainedUnion::LengthString), extracting the inner [`String`](::std::string::String).
 3054         -
    /// :rtype str:
 3055         -
    pub fn as_length_string(&self) -> ::pyo3::PyResult<::std::string::String> {
 3056         -
        match self.0.as_length_string() {
 3057         -
            Ok(variant) => Ok(variant.clone()),
 3058         -
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
 3059         -
                r"ConstrainedUnion variant is not of type str",
 3060         -
            )),
        1817  +
        1818  +
    fn check_unique_items(
        1819  +
        items: ::std::vec::Vec<crate::model::PatternString>,
        1820  +
    ) -> ::std::result::Result<
        1821  +
        ::std::vec::Vec<crate::model::PatternString>,
        1822  +
        crate::model::length_set_of_pattern_string_internal::ConstraintViolation,
        1823  +
    > {
        1824  +
        let mut seen = ::std::collections::HashMap::new();
        1825  +
        let mut duplicate_indices = ::std::vec::Vec::new();
        1826  +
        for (idx, item) in items.iter().enumerate() {
        1827  +
            if let Some(prev_idx) = seen.insert(item, idx) {
        1828  +
                duplicate_indices.push(prev_idx);
        1829  +
            }
        1830  +
        }
        1831  +
        1832  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
        1833  +
        for idx in &duplicate_indices {
        1834  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
        1835  +
                last_duplicate_indices.push(prev_idx);
        1836  +
            }
        1837  +
        }
        1838  +
        duplicate_indices.extend(last_duplicate_indices);
        1839  +
        1840  +
        if !duplicate_indices.is_empty() {
        1841  +
            debug_assert!(duplicate_indices.len() >= 2);
        1842  +
            Err(crate::model::length_set_of_pattern_string_internal::ConstraintViolation::UniqueItems { duplicate_indices, original: items })
        1843  +
        } else {
        1844  +
            Ok(items)
 3061   1845   
        }
 3062   1846   
    }
 3063         -
    /// Returns true if this is a [`LengthString`](crate::model::ConstrainedUnion::LengthString).
 3064         -
    /// :rtype bool:
 3065         -
    pub fn is_length_string(&self) -> bool {
 3066         -
        self.0.is_length_string()
        1847  +
}
        1848  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::PatternString>>
        1849  +
    for LengthSetOfPatternString
        1850  +
{
        1851  +
    type Error = crate::model::length_set_of_pattern_string_internal::ConstraintViolation;
        1852  +
        1853  +
    /// Constructs a `LengthSetOfPatternString` from an [`::std::vec::Vec<crate::model::PatternString>`], failing when the provided value does not satisfy the modeled constraints.
        1854  +
    fn try_from(
        1855  +
        value: ::std::vec::Vec<crate::model::PatternString>,
        1856  +
    ) -> ::std::result::Result<Self, Self::Error> {
        1857  +
        Self::check_length(value.len())?;
        1858  +
        1859  +
        let value = Self::check_unique_items(value)?;
        1860  +
        1861  +
        Ok(Self(value))
 3067   1862   
    }
 3068   1863   
}
 3069         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for ConstrainedUnion {
 3070         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 3071         -
        PyUnionMarkerConstrainedUnion(self).into_py(py)
        1864  +
        1865  +
impl ::std::convert::From<LengthSetOfPatternString>
        1866  +
    for ::std::vec::Vec<crate::model::PatternString>
        1867  +
{
        1868  +
    fn from(value: LengthSetOfPatternString) -> Self {
        1869  +
        value.into_inner()
 3072   1870   
    }
 3073   1871   
}
 3074         -
impl<'source> ::pyo3::FromPyObject<'source> for ConstrainedUnion {
 3075         -
    fn extract(obj: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 3076         -
        let data: PyUnionMarkerConstrainedUnion = obj.extract()?;
 3077         -
        Ok(data.0)
        1872  +
impl ::std::convert::From<LengthSetOfPatternString> for ::std::vec::Vec<::std::string::String> {
        1873  +
    fn from(value: LengthSetOfPatternString) -> Self {
        1874  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
 3078   1875   
    }
 3079   1876   
}
        1877  +
impl crate::constrained::Constrained for LengthSetOfPatternString {
        1878  +
    type Unconstrained = crate::unconstrained::length_set_of_pattern_string_unconstrained::LengthSetOfPatternStringUnconstrained;
        1879  +
}
 3080   1880   
 3081   1881   
#[allow(missing_docs)] // documentation missing in model
 3082   1882   
///
 3083   1883   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3084         -
/// [constraint traits]. Use [`ConBSet::try_from`] to construct values of this type.
        1884  +
/// [constraint traits]. Use [`SetOfRangeByte::try_from`] to construct values of this type.
 3085   1885   
///
 3086   1886   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3087   1887   
///
 3088   1888   
#[derive(
 3089   1889   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3090   1890   
)]
 3091         -
pub(crate) struct ConBSet(pub(crate) ::std::vec::Vec<crate::model::ConBSetInner>);
 3092         -
impl ConBSet {
 3093         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::ConBSetInner>`].
 3094         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::ConBSetInner> {
        1891  +
pub(crate) struct SetOfRangeByte(pub(crate) ::std::vec::Vec<crate::model::RangeByte>);
        1892  +
impl SetOfRangeByte {
        1893  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::RangeByte>`].
        1894  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::RangeByte> {
 3095   1895   
        self.0
 3096   1896   
    }
 3097   1897   
 3098   1898   
    fn check_unique_items(
 3099         -
        items: ::std::vec::Vec<crate::model::ConBSetInner>,
        1899  +
        items: ::std::vec::Vec<crate::model::RangeByte>,
 3100   1900   
    ) -> ::std::result::Result<
 3101         -
        ::std::vec::Vec<crate::model::ConBSetInner>,
 3102         -
        crate::model::con_b_set_internal::ConstraintViolation,
        1901  +
        ::std::vec::Vec<crate::model::RangeByte>,
        1902  +
        crate::model::set_of_range_byte_internal::ConstraintViolation,
 3103   1903   
    > {
 3104   1904   
        let mut seen = ::std::collections::HashMap::new();
 3105   1905   
        let mut duplicate_indices = ::std::vec::Vec::new();
 3106   1906   
        for (idx, item) in items.iter().enumerate() {
 3107   1907   
            if let Some(prev_idx) = seen.insert(item, idx) {
 3108   1908   
                duplicate_indices.push(prev_idx);
 3109   1909   
            }
 3110   1910   
        }
 3111   1911   
 3112   1912   
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 3113   1913   
        for idx in &duplicate_indices {
 3114   1914   
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 3115   1915   
                last_duplicate_indices.push(prev_idx);
 3116   1916   
            }
 3117   1917   
        }
 3118   1918   
        duplicate_indices.extend(last_duplicate_indices);
 3119   1919   
 3120   1920   
        if !duplicate_indices.is_empty() {
 3121   1921   
            debug_assert!(duplicate_indices.len() >= 2);
 3122   1922   
            Err(
 3123         -
                crate::model::con_b_set_internal::ConstraintViolation::UniqueItems {
        1923  +
                crate::model::set_of_range_byte_internal::ConstraintViolation::UniqueItems {
 3124   1924   
                    duplicate_indices,
 3125   1925   
                    original: items,
 3126   1926   
                },
 3127   1927   
            )
 3128   1928   
        } else {
 3129   1929   
            Ok(items)
 3130   1930   
        }
 3131   1931   
    }
 3132   1932   
}
 3133         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::ConBSetInner>> for ConBSet {
 3134         -
    type Error = crate::model::con_b_set_internal::ConstraintViolation;
        1933  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::RangeByte>> for SetOfRangeByte {
        1934  +
    type Error = crate::model::set_of_range_byte_internal::ConstraintViolation;
 3135   1935   
 3136         -
    /// Constructs a `ConBSet` from an [`::std::vec::Vec<crate::model::ConBSetInner>`], failing when the provided value does not satisfy the modeled constraints.
        1936  +
    /// Constructs a `SetOfRangeByte` from an [`::std::vec::Vec<crate::model::RangeByte>`], failing when the provided value does not satisfy the modeled constraints.
 3137   1937   
    fn try_from(
 3138         -
        value: ::std::vec::Vec<crate::model::ConBSetInner>,
        1938  +
        value: ::std::vec::Vec<crate::model::RangeByte>,
 3139   1939   
    ) -> ::std::result::Result<Self, Self::Error> {
 3140   1940   
        let value = Self::check_unique_items(value)?;
 3141   1941   
 3142   1942   
        Ok(Self(value))
 3143   1943   
    }
 3144   1944   
}
 3145   1945   
 3146         -
impl ::std::convert::From<ConBSet> for ::std::vec::Vec<crate::model::ConBSetInner> {
 3147         -
    fn from(value: ConBSet) -> Self {
        1946  +
impl ::std::convert::From<SetOfRangeByte> for ::std::vec::Vec<crate::model::RangeByte> {
        1947  +
    fn from(value: SetOfRangeByte) -> Self {
 3148   1948   
        value.into_inner()
 3149   1949   
    }
 3150   1950   
}
 3151         -
impl ::std::convert::From<ConBSet> for ::std::vec::Vec<::std::vec::Vec<::std::string::String>> {
 3152         -
    fn from(value: ConBSet) -> Self {
        1951  +
impl ::std::convert::From<SetOfRangeByte> for ::std::vec::Vec<i8> {
        1952  +
    fn from(value: SetOfRangeByte) -> Self {
 3153   1953   
        value.into_inner().into_iter().map(|v| v.into()).collect()
 3154   1954   
    }
 3155   1955   
}
 3156         -
impl crate::constrained::Constrained for ConBSet {
 3157         -
    type Unconstrained = crate::unconstrained::con_b_set_unconstrained::ConBSetUnconstrained;
        1956  +
impl crate::constrained::Constrained for SetOfRangeByte {
        1957  +
    type Unconstrained =
        1958  +
        crate::unconstrained::set_of_range_byte_unconstrained::SetOfRangeByteUnconstrained;
 3158   1959   
}
 3159   1960   
 3160   1961   
#[allow(missing_docs)] // documentation missing in model
 3161   1962   
///
 3162   1963   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3163         -
/// [constraint traits]. Use [`ConBSetInner::try_from`] to construct values of this type.
        1964  +
/// [constraint traits]. Use [`SetOfRangeShort::try_from`] to construct values of this type.
 3164   1965   
///
 3165   1966   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3166   1967   
///
 3167   1968   
#[derive(
 3168   1969   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3169   1970   
)]
 3170         -
pub(crate) struct ConBSetInner(pub(crate) ::std::vec::Vec<::std::string::String>);
 3171         -
impl ConBSetInner {
 3172         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::string::String>`].
 3173         -
    pub fn into_inner(self) -> ::std::vec::Vec<::std::string::String> {
        1971  +
pub(crate) struct SetOfRangeShort(pub(crate) ::std::vec::Vec<crate::model::RangeShort>);
        1972  +
impl SetOfRangeShort {
        1973  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::RangeShort>`].
        1974  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::RangeShort> {
 3174   1975   
        self.0
 3175   1976   
    }
 3176   1977   
 3177   1978   
    fn check_unique_items(
 3178         -
        items: ::std::vec::Vec<::std::string::String>,
        1979  +
        items: ::std::vec::Vec<crate::model::RangeShort>,
 3179   1980   
    ) -> ::std::result::Result<
 3180         -
        ::std::vec::Vec<::std::string::String>,
 3181         -
        crate::model::con_b_set_inner_internal::ConstraintViolation,
        1981  +
        ::std::vec::Vec<crate::model::RangeShort>,
        1982  +
        crate::model::set_of_range_short_internal::ConstraintViolation,
 3182   1983   
    > {
 3183   1984   
        let mut seen = ::std::collections::HashMap::new();
 3184   1985   
        let mut duplicate_indices = ::std::vec::Vec::new();
 3185   1986   
        for (idx, item) in items.iter().enumerate() {
 3186   1987   
            if let Some(prev_idx) = seen.insert(item, idx) {
 3187   1988   
                duplicate_indices.push(prev_idx);
 3188   1989   
            }
 3189   1990   
        }
 3190   1991   
 3191   1992   
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 3192   1993   
        for idx in &duplicate_indices {
 3193   1994   
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 3194   1995   
                last_duplicate_indices.push(prev_idx);
 3195   1996   
            }
 3196   1997   
        }
 3197   1998   
        duplicate_indices.extend(last_duplicate_indices);
 3198   1999   
 3199   2000   
        if !duplicate_indices.is_empty() {
 3200   2001   
            debug_assert!(duplicate_indices.len() >= 2);
 3201   2002   
            Err(
 3202         -
                crate::model::con_b_set_inner_internal::ConstraintViolation::UniqueItems {
        2003  +
                crate::model::set_of_range_short_internal::ConstraintViolation::UniqueItems {
 3203   2004   
                    duplicate_indices,
 3204   2005   
                    original: items,
 3205   2006   
                },
 3206   2007   
            )
 3207   2008   
        } else {
 3208   2009   
            Ok(items)
 3209   2010   
        }
 3210   2011   
    }
 3211   2012   
}
 3212         -
impl ::std::convert::TryFrom<::std::vec::Vec<::std::string::String>> for ConBSetInner {
 3213         -
    type Error = crate::model::con_b_set_inner_internal::ConstraintViolation;
        2013  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::RangeShort>> for SetOfRangeShort {
        2014  +
    type Error = crate::model::set_of_range_short_internal::ConstraintViolation;
 3214   2015   
 3215         -
    /// Constructs a `ConBSetInner` from an [`::std::vec::Vec<::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
        2016  +
    /// Constructs a `SetOfRangeShort` from an [`::std::vec::Vec<crate::model::RangeShort>`], failing when the provided value does not satisfy the modeled constraints.
 3216   2017   
    fn try_from(
 3217         -
        value: ::std::vec::Vec<::std::string::String>,
        2018  +
        value: ::std::vec::Vec<crate::model::RangeShort>,
 3218   2019   
    ) -> ::std::result::Result<Self, Self::Error> {
 3219   2020   
        let value = Self::check_unique_items(value)?;
 3220   2021   
 3221   2022   
        Ok(Self(value))
 3222   2023   
    }
 3223   2024   
}
 3224   2025   
 3225         -
impl ::std::convert::From<ConBSetInner> for ::std::vec::Vec<::std::string::String> {
 3226         -
    fn from(value: ConBSetInner) -> Self {
        2026  +
impl ::std::convert::From<SetOfRangeShort> for ::std::vec::Vec<crate::model::RangeShort> {
        2027  +
    fn from(value: SetOfRangeShort) -> Self {
 3227   2028   
        value.into_inner()
 3228   2029   
    }
 3229   2030   
}
 3230         -
impl crate::constrained::Constrained for ConBSetInner {
 3231         -
    type Unconstrained =
 3232         -
        crate::unconstrained::con_b_set_inner_unconstrained::ConBSetInnerUnconstrained;
 3233         -
}
 3234         -
 3235         -
#[::pyo3::pyclass]
 3236         -
/// :param nice str:
 3237         -
/// :param int int:
 3238         -
/// :param opt_nice typing.Optional\[str\]:
 3239         -
/// :param opt_int typing.Optional\[int\]:
 3240         -
/// :rtype None:
 3241         -
#[allow(missing_docs)] // documentation missing in model
 3242         -
#[derive(
 3243         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3244         -
)]
 3245         -
pub struct ConB {
 3246         -
    #[pyo3(get, set)]
 3247         -
    /// :type str:
 3248         -
    #[allow(missing_docs)] // documentation missing in model
 3249         -
    pub nice: ::std::string::String,
 3250         -
    #[pyo3(get, set)]
 3251         -
    /// :type int:
 3252         -
    #[allow(missing_docs)] // documentation missing in model
 3253         -
    pub int: i32,
 3254         -
    #[pyo3(get, set)]
 3255         -
    /// :type typing.Optional\[str\]:
 3256         -
    #[allow(missing_docs)] // documentation missing in model
 3257         -
    pub opt_nice: ::std::option::Option<::std::string::String>,
 3258         -
    #[pyo3(get, set)]
 3259         -
    /// :type typing.Optional\[int\]:
 3260         -
    #[allow(missing_docs)] // documentation missing in model
 3261         -
    pub opt_int: ::std::option::Option<i32>,
 3262         -
}
 3263         -
impl ConB {
 3264         -
    #[allow(missing_docs)] // documentation missing in model
 3265         -
    pub fn nice(&self) -> &str {
 3266         -
        use std::ops::Deref;
 3267         -
        self.nice.deref()
 3268         -
    }
 3269         -
    #[allow(missing_docs)] // documentation missing in model
 3270         -
    pub fn int(&self) -> i32 {
 3271         -
        self.int
 3272         -
    }
 3273         -
    #[allow(missing_docs)] // documentation missing in model
 3274         -
    pub fn opt_nice(&self) -> ::std::option::Option<&str> {
 3275         -
        self.opt_nice.as_deref()
 3276         -
    }
 3277         -
    #[allow(missing_docs)] // documentation missing in model
 3278         -
    pub fn opt_int(&self) -> ::std::option::Option<i32> {
 3279         -
        self.opt_int
 3280         -
    }
 3281         -
}
 3282         -
#[allow(clippy::new_without_default)]
 3283         -
#[allow(clippy::too_many_arguments)]
 3284         -
#[::pyo3::pymethods]
 3285         -
impl ConB {
 3286         -
    #[new]
 3287         -
    pub fn new(
 3288         -
        nice: ::std::string::String,
 3289         -
        int: i32,
 3290         -
        opt_nice: ::std::option::Option<::std::string::String>,
 3291         -
        opt_int: ::std::option::Option<i32>,
 3292         -
    ) -> Self {
 3293         -
        Self {
 3294         -
            nice,
 3295         -
            int,
 3296         -
            opt_nice,
 3297         -
            opt_int,
 3298         -
        }
 3299         -
    }
 3300         -
    fn __repr__(&self) -> String {
 3301         -
        format!("{self:?}")
 3302         -
    }
 3303         -
    fn __str__(&self) -> String {
 3304         -
        format!("{self:?}")
 3305         -
    }
 3306         -
}
 3307         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ConB> {
 3308         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 3309         -
        ob.extract::<ConB>().map(Box::new)
 3310         -
    }
 3311         -
}
 3312         -
 3313         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ConB> {
 3314         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 3315         -
        (*self).into_py(py)
        2031  +
impl ::std::convert::From<SetOfRangeShort> for ::std::vec::Vec<i16> {
        2032  +
    fn from(value: SetOfRangeShort) -> Self {
        2033  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
 3316   2034   
    }
 3317   2035   
}
 3318         -
impl crate::constrained::Constrained for crate::model::ConB {
 3319         -
    type Unconstrained = crate::model::con_b_internal::Builder;
 3320         -
}
 3321         -
impl ConB {
 3322         -
    /// Creates a new builder-style object to manufacture [`ConB`](crate::model::ConB).
 3323         -
    pub fn builder() -> crate::model::con_b::Builder {
 3324         -
        crate::model::con_b::Builder::default()
 3325         -
    }
        2036  +
impl crate::constrained::Constrained for SetOfRangeShort {
        2037  +
    type Unconstrained =
        2038  +
        crate::unconstrained::set_of_range_short_unconstrained::SetOfRangeShortUnconstrained;
 3326   2039   
}
 3327   2040   
 3328   2041   
#[allow(missing_docs)] // documentation missing in model
 3329   2042   
///
 3330   2043   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3331         -
/// [constraint traits]. Use [`SparseLengthList::try_from`] to construct values of this type.
        2044  +
/// [constraint traits]. Use [`SetOfRangeInteger::try_from`] to construct values of this type.
 3332   2045   
///
 3333   2046   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3334   2047   
///
 3335   2048   
#[derive(
 3336   2049   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3337   2050   
)]
 3338         -
pub(crate) struct SparseLengthList(
 3339         -
    pub(crate) ::std::vec::Vec<::std::option::Option<::std::string::String>>,
 3340         -
);
 3341         -
impl SparseLengthList {
 3342         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::option::Option<::std::string::String>>`].
 3343         -
    pub fn into_inner(self) -> ::std::vec::Vec<::std::option::Option<::std::string::String>> {
        2051  +
pub(crate) struct SetOfRangeInteger(pub(crate) ::std::vec::Vec<crate::model::RangeInteger>);
        2052  +
impl SetOfRangeInteger {
        2053  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::RangeInteger>`].
        2054  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::RangeInteger> {
 3344   2055   
        self.0
 3345   2056   
    }
 3346   2057   
 3347         -
    fn check_length(
 3348         -
        length: usize,
 3349         -
    ) -> ::std::result::Result<(), crate::model::sparse_length_list_internal::ConstraintViolation>
 3350         -
    {
 3351         -
        if 69 <= length {
 3352         -
            Ok(())
 3353         -
        } else {
 3354         -
            Err(crate::model::sparse_length_list_internal::ConstraintViolation::Length(length))
 3355         -
        }
 3356         -
    }
 3357         -
}
 3358         -
impl ::std::convert::TryFrom<::std::vec::Vec<::std::option::Option<::std::string::String>>>
 3359         -
    for SparseLengthList
 3360         -
{
 3361         -
    type Error = crate::model::sparse_length_list_internal::ConstraintViolation;
 3362         -
 3363         -
    /// Constructs a `SparseLengthList` from an [`::std::vec::Vec<::std::option::Option<::std::string::String>>`], failing when the provided value does not satisfy the modeled constraints.
 3364         -
    fn try_from(
 3365         -
        value: ::std::vec::Vec<::std::option::Option<::std::string::String>>,
 3366         -
    ) -> ::std::result::Result<Self, Self::Error> {
 3367         -
        Self::check_length(value.len())?;
 3368         -
 3369         -
        Ok(Self(value))
 3370         -
    }
 3371         -
}
 3372         -
 3373         -
impl ::std::convert::From<SparseLengthList>
 3374         -
    for ::std::vec::Vec<::std::option::Option<::std::string::String>>
 3375         -
{
 3376         -
    fn from(value: SparseLengthList) -> Self {
 3377         -
        value.into_inner()
 3378         -
    }
 3379         -
}
 3380         -
impl crate::constrained::Constrained for SparseLengthList {
 3381         -
    type Unconstrained =
 3382         -
        crate::unconstrained::sparse_length_list_unconstrained::SparseLengthListUnconstrained;
 3383         -
}
 3384         -
 3385         -
#[allow(missing_docs)] // documentation missing in model
 3386         -
///
 3387         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3388         -
/// [constraint traits]. Use [`SparseLengthMap::try_from`] to construct values of this type.
 3389         -
///
 3390         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3391         -
///
 3392         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 3393         -
pub(crate) struct SparseLengthMap(
 3394         -
    pub(crate)  ::std::collections::HashMap<
 3395         -
        ::std::string::String,
 3396         -
        ::std::option::Option<::std::string::String>,
 3397         -
    >,
 3398         -
);
 3399         -
impl SparseLengthMap {
 3400         -
    /// Consumes the value, returning the underlying [`::std::collections::HashMap<::std::string::String, ::std::option::Option<::std::string::String>>`].
 3401         -
    pub fn into_inner(
 3402         -
        self,
 3403         -
    ) -> ::std::collections::HashMap<
 3404         -
        ::std::string::String,
 3405         -
        ::std::option::Option<::std::string::String>,
        2058  +
    fn check_unique_items(
        2059  +
        items: ::std::vec::Vec<crate::model::RangeInteger>,
        2060  +
    ) -> ::std::result::Result<
        2061  +
        ::std::vec::Vec<crate::model::RangeInteger>,
        2062  +
        crate::model::set_of_range_integer_internal::ConstraintViolation,
 3406   2063   
    > {
 3407         -
        self.0
        2064  +
        let mut seen = ::std::collections::HashMap::new();
        2065  +
        let mut duplicate_indices = ::std::vec::Vec::new();
        2066  +
        for (idx, item) in items.iter().enumerate() {
        2067  +
            if let Some(prev_idx) = seen.insert(item, idx) {
        2068  +
                duplicate_indices.push(prev_idx);
        2069  +
            }
        2070  +
        }
        2071  +
        2072  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
        2073  +
        for idx in &duplicate_indices {
        2074  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
        2075  +
                last_duplicate_indices.push(prev_idx);
        2076  +
            }
        2077  +
        }
        2078  +
        duplicate_indices.extend(last_duplicate_indices);
        2079  +
        2080  +
        if !duplicate_indices.is_empty() {
        2081  +
            debug_assert!(duplicate_indices.len() >= 2);
        2082  +
            Err(
        2083  +
                crate::model::set_of_range_integer_internal::ConstraintViolation::UniqueItems {
        2084  +
                    duplicate_indices,
        2085  +
                    original: items,
        2086  +
                },
        2087  +
            )
        2088  +
        } else {
        2089  +
            Ok(items)
        2090  +
        }
 3408   2091   
    }
 3409   2092   
}
 3410         -
impl
 3411         -
    ::std::convert::TryFrom<
 3412         -
        ::std::collections::HashMap<
 3413         -
            ::std::string::String,
 3414         -
            ::std::option::Option<::std::string::String>,
 3415         -
        >,
 3416         -
    > for SparseLengthMap
 3417         -
{
 3418         -
    type Error = crate::model::sparse_length_map_internal::ConstraintViolation;
        2093  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::RangeInteger>> for SetOfRangeInteger {
        2094  +
    type Error = crate::model::set_of_range_integer_internal::ConstraintViolation;
 3419   2095   
 3420         -
    /// Constructs a `SparseLengthMap` from an [`::std::collections::HashMap<::std::string::String, ::std::option::Option<::std::string::String>>`], failing when the provided value does not satisfy the modeled constraints.
        2096  +
    /// Constructs a `SetOfRangeInteger` from an [`::std::vec::Vec<crate::model::RangeInteger>`], failing when the provided value does not satisfy the modeled constraints.
 3421   2097   
    fn try_from(
 3422         -
        value: ::std::collections::HashMap<
 3423         -
            ::std::string::String,
 3424         -
            ::std::option::Option<::std::string::String>,
 3425         -
        >,
        2098  +
        value: ::std::vec::Vec<crate::model::RangeInteger>,
 3426   2099   
    ) -> ::std::result::Result<Self, Self::Error> {
 3427         -
        let length = value.len();
 3428         -
        if 69 <= length {
 3429         -
            Ok(Self(value))
 3430         -
        } else {
 3431         -
            Err(crate::model::sparse_length_map_internal::ConstraintViolation::Length(length))
 3432         -
        }
        2100  +
        let value = Self::check_unique_items(value)?;
        2101  +
        2102  +
        Ok(Self(value))
 3433   2103   
    }
 3434   2104   
}
 3435   2105   
 3436         -
impl ::std::convert::From<SparseLengthMap>
 3437         -
    for ::std::collections::HashMap<
 3438         -
        ::std::string::String,
 3439         -
        ::std::option::Option<::std::string::String>,
 3440         -
    >
 3441         -
{
 3442         -
    fn from(value: SparseLengthMap) -> Self {
        2106  +
impl ::std::convert::From<SetOfRangeInteger> for ::std::vec::Vec<crate::model::RangeInteger> {
        2107  +
    fn from(value: SetOfRangeInteger) -> Self {
 3443   2108   
        value.into_inner()
 3444   2109   
    }
 3445   2110   
}
 3446         -
impl crate::constrained::Constrained for SparseLengthMap {
        2111  +
impl ::std::convert::From<SetOfRangeInteger> for ::std::vec::Vec<i32> {
        2112  +
    fn from(value: SetOfRangeInteger) -> Self {
        2113  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
        2114  +
    }
        2115  +
}
        2116  +
impl crate::constrained::Constrained for SetOfRangeInteger {
 3447   2117   
    type Unconstrained =
 3448         -
        crate::unconstrained::sparse_length_map_unconstrained::SparseLengthMapUnconstrained;
        2118  +
        crate::unconstrained::set_of_range_integer_unconstrained::SetOfRangeIntegerUnconstrained;
 3449   2119   
}
 3450   2120   
 3451   2121   
#[allow(missing_docs)] // documentation missing in model
 3452   2122   
///
 3453   2123   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3454         -
/// [constraint traits]. Use [`UniqueItemsList::try_from`] to construct values of this type.
        2124  +
/// [constraint traits]. Use [`SetOfRangeLong::try_from`] to construct values of this type.
 3455   2125   
///
 3456   2126   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3457   2127   
///
 3458   2128   
#[derive(
 3459   2129   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3460   2130   
)]
 3461         -
pub(crate) struct UniqueItemsList(pub(crate) ::std::vec::Vec<::std::string::String>);
 3462         -
impl UniqueItemsList {
 3463         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::string::String>`].
 3464         -
    pub fn into_inner(self) -> ::std::vec::Vec<::std::string::String> {
        2131  +
pub(crate) struct SetOfRangeLong(pub(crate) ::std::vec::Vec<crate::model::RangeLong>);
        2132  +
impl SetOfRangeLong {
        2133  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::RangeLong>`].
        2134  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::RangeLong> {
 3465   2135   
        self.0
 3466   2136   
    }
 3467   2137   
 3468   2138   
    fn check_unique_items(
 3469         -
        items: ::std::vec::Vec<::std::string::String>,
        2139  +
        items: ::std::vec::Vec<crate::model::RangeLong>,
 3470   2140   
    ) -> ::std::result::Result<
 3471         -
        ::std::vec::Vec<::std::string::String>,
 3472         -
        crate::model::unique_items_list_internal::ConstraintViolation,
        2141  +
        ::std::vec::Vec<crate::model::RangeLong>,
        2142  +
        crate::model::set_of_range_long_internal::ConstraintViolation,
 3473   2143   
    > {
 3474   2144   
        let mut seen = ::std::collections::HashMap::new();
 3475   2145   
        let mut duplicate_indices = ::std::vec::Vec::new();
 3476   2146   
        for (idx, item) in items.iter().enumerate() {
 3477   2147   
            if let Some(prev_idx) = seen.insert(item, idx) {
 3478   2148   
                duplicate_indices.push(prev_idx);
 3479   2149   
            }
 3480   2150   
        }
 3481   2151   
 3482   2152   
        let mut last_duplicate_indices = ::std::vec::Vec::new();
 3483   2153   
        for idx in &duplicate_indices {
 3484   2154   
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
 3485   2155   
                last_duplicate_indices.push(prev_idx);
 3486   2156   
            }
 3487   2157   
        }
 3488   2158   
        duplicate_indices.extend(last_duplicate_indices);
 3489   2159   
 3490   2160   
        if !duplicate_indices.is_empty() {
 3491   2161   
            debug_assert!(duplicate_indices.len() >= 2);
 3492   2162   
            Err(
 3493         -
                crate::model::unique_items_list_internal::ConstraintViolation::UniqueItems {
        2163  +
                crate::model::set_of_range_long_internal::ConstraintViolation::UniqueItems {
 3494   2164   
                    duplicate_indices,
 3495   2165   
                    original: items,
 3496   2166   
                },
 3497   2167   
            )
 3498   2168   
        } else {
 3499   2169   
            Ok(items)
 3500   2170   
        }
 3501   2171   
    }
 3502   2172   
}
 3503         -
impl ::std::convert::TryFrom<::std::vec::Vec<::std::string::String>> for UniqueItemsList {
 3504         -
    type Error = crate::model::unique_items_list_internal::ConstraintViolation;
        2173  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::RangeLong>> for SetOfRangeLong {
        2174  +
    type Error = crate::model::set_of_range_long_internal::ConstraintViolation;
 3505   2175   
 3506         -
    /// Constructs a `UniqueItemsList` from an [`::std::vec::Vec<::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
        2176  +
    /// Constructs a `SetOfRangeLong` from an [`::std::vec::Vec<crate::model::RangeLong>`], failing when the provided value does not satisfy the modeled constraints.
 3507   2177   
    fn try_from(
 3508         -
        value: ::std::vec::Vec<::std::string::String>,
        2178  +
        value: ::std::vec::Vec<crate::model::RangeLong>,
 3509   2179   
    ) -> ::std::result::Result<Self, Self::Error> {
 3510   2180   
        let value = Self::check_unique_items(value)?;
 3511   2181   
 3512   2182   
        Ok(Self(value))
 3513   2183   
    }
 3514   2184   
}
 3515   2185   
 3516         -
impl ::std::convert::From<UniqueItemsList> for ::std::vec::Vec<::std::string::String> {
 3517         -
    fn from(value: UniqueItemsList) -> Self {
        2186  +
impl ::std::convert::From<SetOfRangeLong> for ::std::vec::Vec<crate::model::RangeLong> {
        2187  +
    fn from(value: SetOfRangeLong) -> Self {
 3518   2188   
        value.into_inner()
 3519   2189   
    }
 3520   2190   
}
 3521         -
impl crate::constrained::Constrained for UniqueItemsList {
        2191  +
impl ::std::convert::From<SetOfRangeLong> for ::std::vec::Vec<i64> {
        2192  +
    fn from(value: SetOfRangeLong) -> Self {
        2193  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
        2194  +
    }
        2195  +
}
        2196  +
impl crate::constrained::Constrained for SetOfRangeLong {
 3522   2197   
    type Unconstrained =
 3523         -
        crate::unconstrained::unique_items_list_unconstrained::UniqueItemsListUnconstrained;
        2198  +
        crate::unconstrained::set_of_range_long_unconstrained::SetOfRangeLongUnconstrained;
        2199  +
}
        2200  +
        2201  +
#[::pyo3::pyclass]
        2202  +
/// :param recursive_member constraints_without_public_constrained_types.model.RecursiveShapesInputOutputNested2:
        2203  +
/// :rtype None:
        2204  +
#[allow(missing_docs)] // documentation missing in model
        2205  +
#[derive(
        2206  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2207  +
)]
        2208  +
pub struct RecursiveShapesInputOutputNested1 {
        2209  +
    #[pyo3(get, set)]
        2210  +
    /// :type constraints_without_public_constrained_types.model.RecursiveShapesInputOutputNested2:
        2211  +
    #[allow(missing_docs)] // documentation missing in model
        2212  +
    pub recursive_member: ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
        2213  +
}
        2214  +
impl RecursiveShapesInputOutputNested1 {
        2215  +
    #[allow(missing_docs)] // documentation missing in model
        2216  +
    pub fn recursive_member(&self) -> &crate::model::RecursiveShapesInputOutputNested2 {
        2217  +
        use std::ops::Deref;
        2218  +
        self.recursive_member.deref()
        2219  +
    }
        2220  +
}
        2221  +
#[allow(clippy::new_without_default)]
        2222  +
#[allow(clippy::too_many_arguments)]
        2223  +
#[::pyo3::pymethods]
        2224  +
impl RecursiveShapesInputOutputNested1 {
        2225  +
    #[new]
        2226  +
    pub fn new(
        2227  +
        recursive_member: ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
        2228  +
    ) -> Self {
        2229  +
        Self { recursive_member }
        2230  +
    }
        2231  +
    fn __repr__(&self) -> String {
        2232  +
        format!("{self:?}")
        2233  +
    }
        2234  +
    fn __str__(&self) -> String {
        2235  +
        format!("{self:?}")
        2236  +
    }
        2237  +
}
        2238  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<RecursiveShapesInputOutputNested1> {
        2239  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        2240  +
        ob.extract::<RecursiveShapesInputOutputNested1>()
        2241  +
            .map(Box::new)
        2242  +
    }
        2243  +
}
        2244  +
        2245  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<RecursiveShapesInputOutputNested1> {
        2246  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        2247  +
        (*self).into_py(py)
        2248  +
    }
        2249  +
}
        2250  +
impl crate::constrained::Constrained for crate::model::RecursiveShapesInputOutputNested1 {
        2251  +
    type Unconstrained = crate::model::recursive_shapes_input_output_nested1_internal::Builder;
        2252  +
}
        2253  +
impl RecursiveShapesInputOutputNested1 {
        2254  +
    /// Creates a new builder-style object to manufacture [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
        2255  +
    pub fn builder() -> crate::model::recursive_shapes_input_output_nested1::Builder {
        2256  +
        crate::model::recursive_shapes_input_output_nested1::Builder::default()
        2257  +
    }
 3524   2258   
}
 3525   2259   
 3526   2260   
#[allow(missing_docs)] // documentation missing in model
 3527   2261   
///
 3528   2262   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3529         -
/// [constraint traits]. Use [`LengthMap::try_from`] to construct values of this type.
        2263  +
/// [constraint traits]. Use [`ConBMap::try_from`] to construct values of this type.
 3530   2264   
///
 3531   2265   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3532   2266   
///
 3533   2267   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 3534         -
pub(crate) struct LengthMap(
 3535         -
    pub(crate) ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        2268  +
pub(crate) struct ConBMap(
        2269  +
    pub(crate) ::std::collections::HashMap<::std::string::String, crate::model::LengthString>,
 3536   2270   
);
 3537         -
impl LengthMap {
 3538         -
    /// Consumes the value, returning the underlying [`::std::collections::HashMap<::std::string::String, ::std::string::String>`].
        2271  +
impl ConBMap {
        2272  +
    /// Consumes the value, returning the underlying [`::std::collections::HashMap<::std::string::String, crate::model::LengthString>`].
 3539   2273   
    pub fn into_inner(
 3540   2274   
        self,
 3541         -
    ) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
        2275  +
    ) -> ::std::collections::HashMap<::std::string::String, crate::model::LengthString> {
 3542   2276   
        self.0
 3543   2277   
    }
 3544   2278   
}
 3545   2279   
impl
 3546   2280   
    ::std::convert::TryFrom<
 3547         -
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 3548         -
    > for LengthMap
        2281  +
        ::std::collections::HashMap<::std::string::String, crate::model::LengthString>,
        2282  +
    > for ConBMap
 3549   2283   
{
 3550         -
    type Error = crate::model::length_map_internal::ConstraintViolation;
        2284  +
    type Error = crate::model::con_b_map_internal::ConstraintViolation;
 3551   2285   
 3552         -
    /// Constructs a `LengthMap` from an [`::std::collections::HashMap<::std::string::String, ::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
        2286  +
    /// Constructs a `ConBMap` from an [`::std::collections::HashMap<::std::string::String, crate::model::LengthString>`], failing when the provided value does not satisfy the modeled constraints.
 3553   2287   
    fn try_from(
 3554         -
        value: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        2288  +
        value: ::std::collections::HashMap<::std::string::String, crate::model::LengthString>,
 3555   2289   
    ) -> ::std::result::Result<Self, Self::Error> {
 3556   2290   
        let length = value.len();
 3557   2291   
        if (1..=69).contains(&length) {
 3558   2292   
            Ok(Self(value))
 3559   2293   
        } else {
 3560         -
            Err(crate::model::length_map_internal::ConstraintViolation::Length(length))
        2294  +
            Err(crate::model::con_b_map_internal::ConstraintViolation::Length(length))
 3561   2295   
        }
 3562   2296   
    }
 3563   2297   
}
 3564   2298   
 3565         -
impl ::std::convert::From<LengthMap>
 3566         -
    for ::std::collections::HashMap<::std::string::String, ::std::string::String>
        2299  +
impl ::std::convert::From<ConBMap>
        2300  +
    for ::std::collections::HashMap<::std::string::String, crate::model::LengthString>
 3567   2301   
{
 3568         -
    fn from(value: LengthMap) -> Self {
        2302  +
    fn from(value: ConBMap) -> Self {
 3569   2303   
        value.into_inner()
 3570   2304   
    }
 3571   2305   
}
 3572         -
impl crate::constrained::Constrained for LengthMap {
 3573         -
    type Unconstrained = crate::unconstrained::length_map_unconstrained::LengthMapUnconstrained;
        2306  +
impl ::std::convert::From<ConBMap>
        2307  +
    for ::std::collections::HashMap<::std::string::String, ::std::string::String>
        2308  +
{
        2309  +
    fn from(value: ConBMap) -> Self {
        2310  +
        value
        2311  +
            .into_inner()
        2312  +
            .into_iter()
        2313  +
            .map(|(k, v)| (k, v.into()))
        2314  +
            .collect()
        2315  +
    }
        2316  +
}
        2317  +
impl crate::constrained::Constrained for ConBMap {
        2318  +
    type Unconstrained = crate::unconstrained::con_b_map_unconstrained::ConBMapUnconstrained;
 3574   2319   
}
 3575   2320   
 3576   2321   
#[allow(missing_docs)] // documentation missing in model
 3577         -
///
 3578         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3579         -
/// [constraint traits]. Use [`SensitiveLengthList::try_from`] to construct values of this type.
 3580         -
///
 3581         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3582         -
///
 3583         -
#[derive(
 3584         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3585         -
)]
 3586         -
pub(crate) struct SensitiveLengthList(pub(crate) ::std::vec::Vec<crate::model::SensitiveStructure>);
 3587         -
impl SensitiveLengthList {
 3588         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::SensitiveStructure>`].
 3589         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::SensitiveStructure> {
 3590         -
        self.0
        2322  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        2323  +
pub enum Event {
        2324  +
    #[allow(missing_docs)] // documentation missing in model
        2325  +
    RegularMessage(crate::model::EventStreamRegularMessage),
        2326  +
}
        2327  +
impl Event {
        2328  +
    #[allow(irrefutable_let_patterns)]
        2329  +
    /// Tries to convert the enum instance into [`RegularMessage`](crate::model::Event::RegularMessage), extracting the inner [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
        2330  +
    /// Returns `Err(&Self)` if it can't be converted.
        2331  +
    pub fn as_regular_message(
        2332  +
        &self,
        2333  +
    ) -> ::std::result::Result<&crate::model::EventStreamRegularMessage, &Self> {
        2334  +
        if let Event::RegularMessage(val) = &self {
        2335  +
            ::std::result::Result::Ok(val)
        2336  +
        } else {
        2337  +
            ::std::result::Result::Err(self)
        2338  +
        }
        2339  +
    }
        2340  +
    /// Returns true if this is a [`RegularMessage`](crate::model::Event::RegularMessage).
        2341  +
    pub fn is_regular_message(&self) -> bool {
        2342  +
        self.as_regular_message().is_ok()
        2343  +
    }
        2344  +
}
        2345  +
#[pyo3::pyclass(name = "Event")]
        2346  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        2347  +
pub struct PyUnionMarkerEvent(pub Event);
        2348  +
#[::pyo3::pymethods]
        2349  +
impl PyUnionMarkerEvent {
        2350  +
    #[allow(irrefutable_let_patterns)]
        2351  +
    #[staticmethod]
        2352  +
    /// Creates a new union instance of [`RegularMessage`](crate::model::Event::RegularMessage)
        2353  +
    /// :param data constraints_without_public_constrained_types.model.EventStreamRegularMessage:
        2354  +
    /// :rtype Event:
        2355  +
    pub fn regular_message(data: crate::model::EventStreamRegularMessage) -> Self {
        2356  +
        Self(Event::RegularMessage(data))
 3591   2357   
    }
 3592         -
 3593         -
    fn check_length(
 3594         -
        length: usize,
 3595         -
    ) -> ::std::result::Result<(), crate::model::sensitive_length_list_internal::ConstraintViolation>
 3596         -
    {
 3597         -
        if length <= 69 {
 3598         -
            Ok(())
 3599         -
        } else {
 3600         -
            Err(crate::model::sensitive_length_list_internal::ConstraintViolation::Length(length))
        2358  +
    /// Tries to convert the enum instance into [`RegularMessage`](crate::model::Event::RegularMessage), extracting the inner [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
        2359  +
    /// :rtype constraints_without_public_constrained_types.model.EventStreamRegularMessage:
        2360  +
    pub fn as_regular_message(&self) -> ::pyo3::PyResult<crate::model::EventStreamRegularMessage> {
        2361  +
        match self.0.as_regular_message() {
        2362  +
            Ok(variant) => Ok(variant.clone()),
        2363  +
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
        2364  +
                r"Event variant is not of type constraints_without_public_constrained_types.model.EventStreamRegularMessage",
        2365  +
            )),
 3601   2366   
        }
 3602   2367   
    }
 3603         -
}
 3604         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::SensitiveStructure>>
 3605         -
    for SensitiveLengthList
 3606         -
{
 3607         -
    type Error = crate::model::sensitive_length_list_internal::ConstraintViolation;
 3608         -
 3609         -
    /// Constructs a `SensitiveLengthList` from an [`::std::vec::Vec<crate::model::SensitiveStructure>`], failing when the provided value does not satisfy the modeled constraints.
 3610         -
    fn try_from(
 3611         -
        value: ::std::vec::Vec<crate::model::SensitiveStructure>,
 3612         -
    ) -> ::std::result::Result<Self, Self::Error> {
 3613         -
        Self::check_length(value.len())?;
 3614         -
 3615         -
        Ok(Self(value))
        2368  +
    /// Returns true if this is a [`RegularMessage`](crate::model::Event::RegularMessage).
        2369  +
    /// :rtype bool:
        2370  +
    pub fn is_regular_message(&self) -> bool {
        2371  +
        self.0.is_regular_message()
 3616   2372   
    }
 3617   2373   
}
 3618         -
 3619         -
impl ::std::convert::From<SensitiveLengthList>
 3620         -
    for ::std::vec::Vec<crate::model::SensitiveStructure>
 3621         -
{
 3622         -
    fn from(value: SensitiveLengthList) -> Self {
 3623         -
        value.into_inner()
        2374  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for Event {
        2375  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        2376  +
        PyUnionMarkerEvent(self).into_py(py)
 3624   2377   
    }
 3625   2378   
}
 3626         -
impl crate::constrained::Constrained for SensitiveLengthList {
 3627         -
    type Unconstrained =
 3628         -
        crate::unconstrained::sensitive_length_list_unconstrained::SensitiveLengthListUnconstrained;
        2379  +
impl<'source> ::pyo3::FromPyObject<'source> for Event {
        2380  +
    fn extract(obj: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        2381  +
        let data: PyUnionMarkerEvent = obj.extract()?;
        2382  +
        Ok(data.0)
        2383  +
    }
 3629   2384   
}
 3630   2385   
 3631   2386   
#[::pyo3::pyclass]
        2387  +
/// :param nice str:
        2388  +
/// :param int int:
        2389  +
/// :param opt_nice typing.Optional\[str\]:
        2390  +
/// :param opt_int typing.Optional\[int\]:
 3632   2391   
/// :rtype None:
 3633   2392   
#[allow(missing_docs)] // documentation missing in model
 3634         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::hash::Hash)]
 3635         -
pub struct SensitiveStructure {}
 3636         -
impl ::std::fmt::Debug for SensitiveStructure {
 3637         -
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
 3638         -
        let mut formatter = f.debug_struct("SensitiveStructure");
 3639         -
        formatter.finish()
        2393  +
#[derive(
        2394  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        2395  +
)]
        2396  +
pub struct ConB {
        2397  +
    #[pyo3(get, set)]
        2398  +
    /// :type str:
        2399  +
    #[allow(missing_docs)] // documentation missing in model
        2400  +
    pub nice: ::std::string::String,
        2401  +
    #[pyo3(get, set)]
        2402  +
    /// :type int:
        2403  +
    #[allow(missing_docs)] // documentation missing in model
        2404  +
    pub int: i32,
        2405  +
    #[pyo3(get, set)]
        2406  +
    /// :type typing.Optional\[str\]:
        2407  +
    #[allow(missing_docs)] // documentation missing in model
        2408  +
    pub opt_nice: ::std::option::Option<::std::string::String>,
        2409  +
    #[pyo3(get, set)]
        2410  +
    /// :type typing.Optional\[int\]:
        2411  +
    #[allow(missing_docs)] // documentation missing in model
        2412  +
    pub opt_int: ::std::option::Option<i32>,
        2413  +
}
        2414  +
impl ConB {
        2415  +
    #[allow(missing_docs)] // documentation missing in model
        2416  +
    pub fn nice(&self) -> &str {
        2417  +
        use std::ops::Deref;
        2418  +
        self.nice.deref()
        2419  +
    }
        2420  +
    #[allow(missing_docs)] // documentation missing in model
        2421  +
    pub fn int(&self) -> i32 {
        2422  +
        self.int
        2423  +
    }
        2424  +
    #[allow(missing_docs)] // documentation missing in model
        2425  +
    pub fn opt_nice(&self) -> ::std::option::Option<&str> {
        2426  +
        self.opt_nice.as_deref()
        2427  +
    }
        2428  +
    #[allow(missing_docs)] // documentation missing in model
        2429  +
    pub fn opt_int(&self) -> ::std::option::Option<i32> {
        2430  +
        self.opt_int
 3640   2431   
    }
 3641   2432   
}
 3642   2433   
#[allow(clippy::new_without_default)]
 3643   2434   
#[allow(clippy::too_many_arguments)]
 3644   2435   
#[::pyo3::pymethods]
 3645         -
impl SensitiveStructure {
        2436  +
impl ConB {
 3646   2437   
    #[new]
 3647         -
    pub fn new() -> Self {
 3648         -
        Self {}
        2438  +
    pub fn new(
        2439  +
        nice: ::std::string::String,
        2440  +
        int: i32,
        2441  +
        opt_nice: ::std::option::Option<::std::string::String>,
        2442  +
        opt_int: ::std::option::Option<i32>,
        2443  +
    ) -> Self {
        2444  +
        Self {
        2445  +
            nice,
        2446  +
            int,
        2447  +
            opt_nice,
        2448  +
            opt_int,
        2449  +
        }
 3649   2450   
    }
 3650   2451   
    fn __repr__(&self) -> String {
 3651   2452   
        format!("{self:?}")
 3652   2453   
    }
 3653   2454   
    fn __str__(&self) -> String {
 3654   2455   
        format!("{self:?}")
 3655   2456   
    }
 3656   2457   
}
 3657         -
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<SensitiveStructure> {
        2458  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ConB> {
 3658   2459   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 3659         -
        ob.extract::<SensitiveStructure>().map(Box::new)
        2460  +
        ob.extract::<ConB>().map(Box::new)
 3660   2461   
    }
 3661   2462   
}
 3662   2463   
 3663         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<SensitiveStructure> {
        2464  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ConB> {
 3664   2465   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 3665   2466   
        (*self).into_py(py)
 3666   2467   
    }
 3667   2468   
}
 3668         -
impl crate::constrained::Constrained for crate::model::SensitiveStructure {
 3669         -
    type Unconstrained = crate::model::sensitive_structure_internal::Builder;
        2469  +
impl crate::constrained::Constrained for crate::model::ConB {
        2470  +
    type Unconstrained = crate::model::con_b_internal::Builder;
 3670   2471   
}
 3671         -
impl SensitiveStructure {
 3672         -
    /// Creates a new builder-style object to manufacture [`SensitiveStructure`](crate::model::SensitiveStructure).
 3673         -
    pub fn builder() -> crate::model::sensitive_structure::Builder {
 3674         -
        crate::model::sensitive_structure::Builder::default()
        2472  +
impl ConB {
        2473  +
    /// Creates a new builder-style object to manufacture [`ConB`](crate::model::ConB).
        2474  +
    pub fn builder() -> crate::model::con_b::Builder {
        2475  +
        crate::model::con_b::Builder::default()
 3675   2476   
    }
 3676   2477   
}
 3677   2478   
 3678   2479   
#[allow(missing_docs)] // documentation missing in model
 3679   2480   
///
 3680   2481   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3681         -
/// [constraint traits]. Use [`LengthList::try_from`] to construct values of this type.
        2482  +
/// [constraint traits]. Use [`MinLengthString::try_from`] to construct values of this type.
 3682   2483   
///
 3683   2484   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3684   2485   
///
 3685   2486   
#[derive(
 3686   2487   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3687   2488   
)]
 3688         -
pub(crate) struct LengthList(pub(crate) ::std::vec::Vec<::std::string::String>);
 3689         -
impl LengthList {
 3690         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::string::String>`].
 3691         -
    pub fn into_inner(self) -> ::std::vec::Vec<::std::string::String> {
 3692         -
        self.0
        2489  +
pub(crate) struct MinLengthString(pub(crate) ::std::string::String);
        2490  +
#[allow(dead_code)]
        2491  +
impl MinLengthString {
        2492  +
    /// Extracts a string slice containing the entire underlying `String`.
        2493  +
    pub fn as_str(&self) -> &str {
        2494  +
        &self.0
        2495  +
    }
        2496  +
        2497  +
    /// Returns an immutable reference to the underlying [`::std::string::String`].
        2498  +
    pub fn inner(&self) -> &::std::string::String {
        2499  +
        &self.0
 3693   2500   
    }
 3694   2501   
        2502  +
    /// Consumes the value, returning the underlying [`::std::string::String`].
        2503  +
    pub fn into_inner(self) -> ::std::string::String {
        2504  +
        self.0
        2505  +
    }
        2506  +
}
        2507  +
impl MinLengthString {
 3695   2508   
    fn check_length(
 3696         -
        length: usize,
 3697         -
    ) -> ::std::result::Result<(), crate::model::length_list_internal::ConstraintViolation> {
 3698         -
        if length <= 69 {
        2509  +
        string: &str,
        2510  +
    ) -> ::std::result::Result<(), crate::model::min_length_string_internal::ConstraintViolation>
        2511  +
    {
        2512  +
        let length = string.chars().count();
        2513  +
        2514  +
        if 2 <= length {
 3699   2515   
            Ok(())
 3700   2516   
        } else {
 3701         -
            Err(crate::model::length_list_internal::ConstraintViolation::Length(length))
        2517  +
            Err(crate::model::min_length_string_internal::ConstraintViolation::Length(length))
 3702   2518   
        }
 3703   2519   
    }
 3704   2520   
}
 3705         -
impl ::std::convert::TryFrom<::std::vec::Vec<::std::string::String>> for LengthList {
 3706         -
    type Error = crate::model::length_list_internal::ConstraintViolation;
        2521  +
impl ::std::convert::TryFrom<::std::string::String> for MinLengthString {
        2522  +
    type Error = crate::model::min_length_string_internal::ConstraintViolation;
 3707   2523   
 3708         -
    /// Constructs a `LengthList` from an [`::std::vec::Vec<::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
 3709         -
    fn try_from(
 3710         -
        value: ::std::vec::Vec<::std::string::String>,
 3711         -
    ) -> ::std::result::Result<Self, Self::Error> {
 3712         -
        Self::check_length(value.len())?;
        2524  +
    /// Constructs a `MinLengthString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
        2525  +
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
        2526  +
        Self::check_length(&value)?;
 3713   2527   
 3714   2528   
        Ok(Self(value))
 3715   2529   
    }
 3716   2530   
}
        2531  +
impl crate::constrained::Constrained for MinLengthString {
        2532  +
    type Unconstrained = ::std::string::String;
        2533  +
}
 3717   2534   
 3718         -
impl ::std::convert::From<LengthList> for ::std::vec::Vec<::std::string::String> {
 3719         -
    fn from(value: LengthList) -> Self {
 3720         -
        value.into_inner()
        2535  +
impl ::std::convert::From<::std::string::String>
        2536  +
    for crate::constrained::MaybeConstrained<crate::model::MinLengthString>
        2537  +
{
        2538  +
    fn from(value: ::std::string::String) -> Self {
        2539  +
        Self::Unconstrained(value)
 3721   2540   
    }
 3722   2541   
}
 3723         -
impl crate::constrained::Constrained for LengthList {
 3724         -
    type Unconstrained = crate::unconstrained::length_list_unconstrained::LengthListUnconstrained;
        2542  +
        2543  +
impl ::std::fmt::Display for MinLengthString {
        2544  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        2545  +
        self.0.fmt(f)
        2546  +
    }
        2547  +
}
        2548  +
        2549  +
impl ::std::convert::From<MinLengthString> for ::std::string::String {
        2550  +
    fn from(value: MinLengthString) -> Self {
        2551  +
        value.into_inner()
        2552  +
    }
 3725   2553   
}
 3726   2554   
 3727   2555   
#[allow(missing_docs)] // documentation missing in model
 3728   2556   
///
 3729   2557   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3730         -
/// [constraint traits]. Use [`FixedValueByte::try_from`] to construct values of this type.
        2558  +
/// [constraint traits]. Use [`MaxLengthString::try_from`] to construct values of this type.
 3731   2559   
///
 3732   2560   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3733   2561   
///
 3734   2562   
#[derive(
 3735   2563   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3736   2564   
)]
 3737         -
pub(crate) struct FixedValueByte(pub(crate) i8);
        2565  +
pub(crate) struct MaxLengthString(pub(crate) ::std::string::String);
 3738   2566   
#[allow(dead_code)]
 3739         -
impl FixedValueByte {
 3740         -
    /// Returns an immutable reference to the underlying [`i8`].
 3741         -
    pub fn inner(&self) -> &i8 {
        2567  +
impl MaxLengthString {
        2568  +
    /// Extracts a string slice containing the entire underlying `String`.
        2569  +
    pub fn as_str(&self) -> &str {
 3742   2570   
        &self.0
 3743   2571   
    }
 3744   2572   
 3745         -
    /// Consumes the value, returning the underlying [`i8`].
 3746         -
    pub fn into_inner(self) -> i8 {
        2573  +
    /// Returns an immutable reference to the underlying [`::std::string::String`].
        2574  +
    pub fn inner(&self) -> &::std::string::String {
        2575  +
        &self.0
        2576  +
    }
        2577  +
        2578  +
    /// Consumes the value, returning the underlying [`::std::string::String`].
        2579  +
    pub fn into_inner(self) -> ::std::string::String {
 3747   2580   
        self.0
 3748   2581   
    }
 3749   2582   
}
        2583  +
impl MaxLengthString {
        2584  +
    fn check_length(
        2585  +
        string: &str,
        2586  +
    ) -> ::std::result::Result<(), crate::model::max_length_string_internal::ConstraintViolation>
        2587  +
    {
        2588  +
        let length = string.chars().count();
 3750   2589   
 3751         -
impl crate::constrained::Constrained for FixedValueByte {
 3752         -
    type Unconstrained = i8;
        2590  +
        if length <= 69 {
        2591  +
            Ok(())
        2592  +
        } else {
        2593  +
            Err(crate::model::max_length_string_internal::ConstraintViolation::Length(length))
        2594  +
        }
        2595  +
    }
        2596  +
}
        2597  +
impl ::std::convert::TryFrom<::std::string::String> for MaxLengthString {
        2598  +
    type Error = crate::model::max_length_string_internal::ConstraintViolation;
        2599  +
        2600  +
    /// Constructs a `MaxLengthString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
        2601  +
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
        2602  +
        Self::check_length(&value)?;
        2603  +
        2604  +
        Ok(Self(value))
        2605  +
    }
        2606  +
}
        2607  +
impl crate::constrained::Constrained for MaxLengthString {
        2608  +
    type Unconstrained = ::std::string::String;
 3753   2609   
}
 3754   2610   
 3755         -
impl ::std::convert::From<i8>
 3756         -
    for crate::constrained::MaybeConstrained<crate::model::FixedValueByte>
        2611  +
impl ::std::convert::From<::std::string::String>
        2612  +
    for crate::constrained::MaybeConstrained<crate::model::MaxLengthString>
 3757   2613   
{
 3758         -
    fn from(value: i8) -> Self {
        2614  +
    fn from(value: ::std::string::String) -> Self {
 3759   2615   
        Self::Unconstrained(value)
 3760   2616   
    }
 3761   2617   
}
 3762   2618   
 3763         -
impl ::std::fmt::Display for FixedValueByte {
        2619  +
impl ::std::fmt::Display for MaxLengthString {
 3764   2620   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3765   2621   
        self.0.fmt(f)
 3766   2622   
    }
 3767   2623   
}
 3768   2624   
 3769         -
impl ::std::convert::From<FixedValueByte> for i8 {
 3770         -
    fn from(value: FixedValueByte) -> Self {
        2625  +
impl ::std::convert::From<MaxLengthString> for ::std::string::String {
        2626  +
    fn from(value: MaxLengthString) -> Self {
 3771   2627   
        value.into_inner()
 3772   2628   
    }
 3773   2629   
}
 3774         -
impl FixedValueByte {
 3775         -
    fn check_range(
 3776         -
        value: i8,
 3777         -
    ) -> ::std::result::Result<(), crate::model::fixed_value_byte_internal::ConstraintViolation>
 3778         -
    {
 3779         -
        if (10..=10).contains(&value) {
 3780         -
            Ok(())
 3781         -
        } else {
 3782         -
            Err(crate::model::fixed_value_byte_internal::ConstraintViolation::Range(value))
 3783         -
        }
 3784         -
    }
 3785         -
}
 3786         -
impl ::std::convert::TryFrom<i8> for FixedValueByte {
 3787         -
    type Error = crate::model::fixed_value_byte_internal::ConstraintViolation;
 3788         -
 3789         -
    /// Constructs a `FixedValueByte` from an [`i8`], failing when the provided value does not satisfy the modeled constraints.
 3790         -
    fn try_from(value: i8) -> ::std::result::Result<Self, Self::Error> {
 3791         -
        Self::check_range(value)?;
 3792         -
 3793         -
        Ok(Self(value))
 3794         -
    }
 3795         -
}
 3796   2630   
 3797   2631   
#[allow(missing_docs)] // documentation missing in model
 3798   2632   
///
 3799   2633   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3800         -
/// [constraint traits]. Use [`MaxRangeByte::try_from`] to construct values of this type.
        2634  +
/// [constraint traits]. Use [`FixedLengthString::try_from`] to construct values of this type.
 3801   2635   
///
 3802   2636   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3803   2637   
///
 3804   2638   
#[derive(
 3805   2639   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3806   2640   
)]
 3807         -
pub(crate) struct MaxRangeByte(pub(crate) i8);
        2641  +
pub(crate) struct FixedLengthString(pub(crate) ::std::string::String);
 3808   2642   
#[allow(dead_code)]
 3809         -
impl MaxRangeByte {
 3810         -
    /// Returns an immutable reference to the underlying [`i8`].
 3811         -
    pub fn inner(&self) -> &i8 {
        2643  +
impl FixedLengthString {
        2644  +
    /// Extracts a string slice containing the entire underlying `String`.
        2645  +
    pub fn as_str(&self) -> &str {
 3812   2646   
        &self.0
 3813   2647   
    }
 3814   2648   
 3815         -
    /// Consumes the value, returning the underlying [`i8`].
 3816         -
    pub fn into_inner(self) -> i8 {
        2649  +
    /// Returns an immutable reference to the underlying [`::std::string::String`].
        2650  +
    pub fn inner(&self) -> &::std::string::String {
        2651  +
        &self.0
        2652  +
    }
        2653  +
        2654  +
    /// Consumes the value, returning the underlying [`::std::string::String`].
        2655  +
    pub fn into_inner(self) -> ::std::string::String {
 3817   2656   
        self.0
 3818   2657   
    }
 3819   2658   
}
        2659  +
impl FixedLengthString {
        2660  +
    fn check_length(
        2661  +
        string: &str,
        2662  +
    ) -> ::std::result::Result<(), crate::model::fixed_length_string_internal::ConstraintViolation>
        2663  +
    {
        2664  +
        let length = string.chars().count();
 3820   2665   
 3821         -
impl crate::constrained::Constrained for MaxRangeByte {
 3822         -
    type Unconstrained = i8;
        2666  +
        if (69..=69).contains(&length) {
        2667  +
            Ok(())
        2668  +
        } else {
        2669  +
            Err(crate::model::fixed_length_string_internal::ConstraintViolation::Length(length))
        2670  +
        }
        2671  +
    }
        2672  +
}
        2673  +
impl ::std::convert::TryFrom<::std::string::String> for FixedLengthString {
        2674  +
    type Error = crate::model::fixed_length_string_internal::ConstraintViolation;
        2675  +
        2676  +
    /// Constructs a `FixedLengthString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
        2677  +
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
        2678  +
        Self::check_length(&value)?;
        2679  +
        2680  +
        Ok(Self(value))
        2681  +
    }
        2682  +
}
        2683  +
impl crate::constrained::Constrained for FixedLengthString {
        2684  +
    type Unconstrained = ::std::string::String;
 3823   2685   
}
 3824   2686   
 3825         -
impl ::std::convert::From<i8> for crate::constrained::MaybeConstrained<crate::model::MaxRangeByte> {
 3826         -
    fn from(value: i8) -> Self {
        2687  +
impl ::std::convert::From<::std::string::String>
        2688  +
    for crate::constrained::MaybeConstrained<crate::model::FixedLengthString>
        2689  +
{
        2690  +
    fn from(value: ::std::string::String) -> Self {
 3827   2691   
        Self::Unconstrained(value)
 3828   2692   
    }
 3829   2693   
}
 3830   2694   
 3831         -
impl ::std::fmt::Display for MaxRangeByte {
        2695  +
impl ::std::fmt::Display for FixedLengthString {
 3832   2696   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3833   2697   
        self.0.fmt(f)
 3834   2698   
    }
 3835   2699   
}
 3836   2700   
 3837         -
impl ::std::convert::From<MaxRangeByte> for i8 {
 3838         -
    fn from(value: MaxRangeByte) -> Self {
        2701  +
impl ::std::convert::From<FixedLengthString> for ::std::string::String {
        2702  +
    fn from(value: FixedLengthString) -> Self {
 3839   2703   
        value.into_inner()
 3840   2704   
    }
 3841   2705   
}
 3842         -
impl MaxRangeByte {
 3843         -
    fn check_range(
 3844         -
        value: i8,
 3845         -
    ) -> ::std::result::Result<(), crate::model::max_range_byte_internal::ConstraintViolation> {
 3846         -
        if value <= 11 {
 3847         -
            Ok(())
 3848         -
        } else {
 3849         -
            Err(crate::model::max_range_byte_internal::ConstraintViolation::Range(value))
 3850         -
        }
 3851         -
    }
 3852         -
}
 3853         -
impl ::std::convert::TryFrom<i8> for MaxRangeByte {
 3854         -
    type Error = crate::model::max_range_byte_internal::ConstraintViolation;
 3855         -
 3856         -
    /// Constructs a `MaxRangeByte` from an [`i8`], failing when the provided value does not satisfy the modeled constraints.
 3857         -
    fn try_from(value: i8) -> ::std::result::Result<Self, Self::Error> {
 3858         -
        Self::check_range(value)?;
 3859         -
 3860         -
        Ok(Self(value))
 3861         -
    }
 3862         -
}
 3863   2706   
 3864   2707   
#[allow(missing_docs)] // documentation missing in model
 3865   2708   
///
 3866   2709   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3867         -
/// [constraint traits]. Use [`MinRangeByte::try_from`] to construct values of this type.
        2710  +
/// [constraint traits]. Use [`LengthBlob::try_from`] to construct values of this type.
 3868   2711   
///
 3869   2712   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3870   2713   
///
 3871   2714   
#[derive(
 3872   2715   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3873   2716   
)]
 3874         -
pub(crate) struct MinRangeByte(pub(crate) i8);
 3875         -
#[allow(dead_code)]
 3876         -
impl MinRangeByte {
 3877         -
    /// Returns an immutable reference to the underlying [`i8`].
 3878         -
    pub fn inner(&self) -> &i8 {
 3879         -
        &self.0
 3880         -
    }
 3881         -
 3882         -
    /// Consumes the value, returning the underlying [`i8`].
 3883         -
    pub fn into_inner(self) -> i8 {
        2717  +
pub(crate) struct LengthBlob(pub(crate) ::aws_smithy_types::Blob);
        2718  +
impl LengthBlob {
        2719  +
    /// Consumes the value, returning the underlying [`::aws_smithy_types::Blob`].
        2720  +
    pub fn into_inner(self) -> ::aws_smithy_types::Blob {
 3884   2721   
        self.0
 3885   2722   
    }
 3886   2723   
}
        2724  +
impl LengthBlob {
        2725  +
    fn check_length(
        2726  +
        blob: &::aws_smithy_types::Blob,
        2727  +
    ) -> ::std::result::Result<(), crate::model::length_blob_internal::ConstraintViolation> {
        2728  +
        let length = blob.as_ref().len();
 3887   2729   
 3888         -
impl crate::constrained::Constrained for MinRangeByte {
 3889         -
    type Unconstrained = i8;
        2730  +
        if (2..=70).contains(&length) {
        2731  +
            Ok(())
        2732  +
        } else {
        2733  +
            Err(crate::model::length_blob_internal::ConstraintViolation::Length(length))
        2734  +
        }
        2735  +
    }
 3890   2736   
}
        2737  +
impl ::std::convert::TryFrom<::aws_smithy_types::Blob> for LengthBlob {
        2738  +
    type Error = crate::model::length_blob_internal::ConstraintViolation;
 3891   2739   
 3892         -
impl ::std::convert::From<i8> for crate::constrained::MaybeConstrained<crate::model::MinRangeByte> {
 3893         -
    fn from(value: i8) -> Self {
 3894         -
        Self::Unconstrained(value)
        2740  +
    /// Constructs a `LengthBlob` from an [`::aws_smithy_types::Blob`], failing when the provided value does not satisfy the modeled constraints.
        2741  +
    fn try_from(value: ::aws_smithy_types::Blob) -> ::std::result::Result<Self, Self::Error> {
        2742  +
        Self::check_length(&value)?;
        2743  +
        2744  +
        Ok(Self(value))
 3895   2745   
    }
 3896   2746   
}
        2747  +
impl crate::constrained::Constrained for LengthBlob {
        2748  +
    type Unconstrained = ::aws_smithy_types::Blob;
        2749  +
}
 3897   2750   
 3898         -
impl ::std::fmt::Display for MinRangeByte {
 3899         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3900         -
        self.0.fmt(f)
        2751  +
impl ::std::convert::From<::aws_smithy_types::Blob>
        2752  +
    for crate::constrained::MaybeConstrained<crate::model::LengthBlob>
        2753  +
{
        2754  +
    fn from(value: ::aws_smithy_types::Blob) -> Self {
        2755  +
        Self::Unconstrained(value)
 3901   2756   
    }
 3902   2757   
}
 3903   2758   
 3904         -
impl ::std::convert::From<MinRangeByte> for i8 {
 3905         -
    fn from(value: MinRangeByte) -> Self {
        2759  +
impl ::std::convert::From<LengthBlob> for ::aws_smithy_types::Blob {
        2760  +
    fn from(value: LengthBlob) -> Self {
 3906   2761   
        value.into_inner()
 3907   2762   
    }
 3908   2763   
}
 3909         -
impl MinRangeByte {
 3910         -
    fn check_range(
 3911         -
        value: i8,
 3912         -
    ) -> ::std::result::Result<(), crate::model::min_range_byte_internal::ConstraintViolation> {
 3913         -
        if -10 <= value {
 3914         -
            Ok(())
 3915         -
        } else {
 3916         -
            Err(crate::model::min_range_byte_internal::ConstraintViolation::Range(value))
 3917         -
        }
        2764  +
        2765  +
impl ::std::convert::From<::aws_smithy_http_server_python::types::Blob>
        2766  +
    for crate::constrained::MaybeConstrained<crate::model::LengthBlob>
        2767  +
{
        2768  +
    fn from(value: ::aws_smithy_http_server_python::types::Blob) -> Self {
        2769  +
        Self::Unconstrained(value.into())
 3918   2770   
    }
 3919   2771   
}
 3920         -
impl ::std::convert::TryFrom<i8> for MinRangeByte {
 3921         -
    type Error = crate::model::min_range_byte_internal::ConstraintViolation;
 3922   2772   
 3923         -
    /// Constructs a `MinRangeByte` from an [`i8`], failing when the provided value does not satisfy the modeled constraints.
 3924         -
    fn try_from(value: i8) -> ::std::result::Result<Self, Self::Error> {
 3925         -
        Self::check_range(value)?;
        2773  +
impl ::std::convert::From<LengthBlob> for ::aws_smithy_http_server_python::types::Blob {
        2774  +
    fn from(value: LengthBlob) -> Self {
        2775  +
        value.into_inner().into()
        2776  +
    }
        2777  +
}
        2778  +
impl ::std::convert::TryFrom<::aws_smithy_http_server_python::types::Blob> for LengthBlob {
        2779  +
    type Error = crate::model::length_blob_internal::ConstraintViolation;
 3926   2780   
 3927         -
        Ok(Self(value))
        2781  +
    fn try_from(
        2782  +
        value: ::aws_smithy_http_server_python::types::Blob,
        2783  +
    ) -> ::std::result::Result<Self, Self::Error> {
        2784  +
        value.try_into()
 3928   2785   
    }
 3929   2786   
}
 3930   2787   
 3931   2788   
#[allow(missing_docs)] // documentation missing in model
 3932   2789   
///
 3933   2790   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 3934         -
/// [constraint traits]. Use [`FixedValueLong::try_from`] to construct values of this type.
        2791  +
/// [constraint traits]. Use [`MinLengthBlob::try_from`] to construct values of this type.
 3935   2792   
///
 3936   2793   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 3937   2794   
///
 3938   2795   
#[derive(
 3939   2796   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 3940   2797   
)]
 3941         -
pub(crate) struct FixedValueLong(pub(crate) i64);
 3942         -
#[allow(dead_code)]
 3943         -
impl FixedValueLong {
 3944         -
    /// Returns an immutable reference to the underlying [`i64`].
 3945         -
    pub fn inner(&self) -> &i64 {
 3946         -
        &self.0
 3947         -
    }
 3948         -
 3949         -
    /// Consumes the value, returning the underlying [`i64`].
 3950         -
    pub fn into_inner(self) -> i64 {
        2798  +
pub(crate) struct MinLengthBlob(pub(crate) ::aws_smithy_types::Blob);
        2799  +
impl MinLengthBlob {
        2800  +
    /// Consumes the value, returning the underlying [`::aws_smithy_types::Blob`].
        2801  +
    pub fn into_inner(self) -> ::aws_smithy_types::Blob {
 3951   2802   
        self.0
 3952   2803   
    }
 3953   2804   
}
 3954         -
 3955         -
impl crate::constrained::Constrained for FixedValueLong {
 3956         -
    type Unconstrained = i64;
 3957         -
}
 3958         -
 3959         -
impl ::std::convert::From<i64>
 3960         -
    for crate::constrained::MaybeConstrained<crate::model::FixedValueLong>
 3961         -
{
 3962         -
    fn from(value: i64) -> Self {
 3963         -
        Self::Unconstrained(value)
 3964         -
    }
 3965         -
}
 3966         -
 3967         -
impl ::std::fmt::Display for FixedValueLong {
 3968         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3969         -
        self.0.fmt(f)
 3970         -
    }
 3971         -
}
 3972         -
 3973         -
impl ::std::convert::From<FixedValueLong> for i64 {
 3974         -
    fn from(value: FixedValueLong) -> Self {
 3975         -
        value.into_inner()
 3976         -
    }
 3977         -
}
 3978         -
impl FixedValueLong {
 3979         -
    fn check_range(
 3980         -
        value: i64,
 3981         -
    ) -> ::std::result::Result<(), crate::model::fixed_value_long_internal::ConstraintViolation>
        2805  +
impl MinLengthBlob {
        2806  +
    fn check_length(
        2807  +
        blob: &::aws_smithy_types::Blob,
        2808  +
    ) -> ::std::result::Result<(), crate::model::min_length_blob_internal::ConstraintViolation>
 3982   2809   
    {
 3983         -
        if (10..=10).contains(&value) {
 3984         -
            Ok(())
 3985         -
        } else {
 3986         -
            Err(crate::model::fixed_value_long_internal::ConstraintViolation::Range(value))
 3987         -
        }
 3988         -
    }
 3989         -
}
 3990         -
impl ::std::convert::TryFrom<i64> for FixedValueLong {
 3991         -
    type Error = crate::model::fixed_value_long_internal::ConstraintViolation;
 3992         -
 3993         -
    /// Constructs a `FixedValueLong` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
 3994         -
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
 3995         -
        Self::check_range(value)?;
        2810  +
        let length = blob.as_ref().len();
 3996   2811   
 3997         -
        Ok(Self(value))
        2812  +
        if 2 <= length {
        2813  +
            Ok(())
        2814  +
        } else {
        2815  +
            Err(crate::model::min_length_blob_internal::ConstraintViolation::Length(length))
        2816  +
        }
 3998   2817   
    }
 3999   2818   
}
        2819  +
impl ::std::convert::TryFrom<::aws_smithy_types::Blob> for MinLengthBlob {
        2820  +
    type Error = crate::model::min_length_blob_internal::ConstraintViolation;
 4000   2821   
 4001         -
#[allow(missing_docs)] // documentation missing in model
 4002         -
///
 4003         -
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4004         -
/// [constraint traits]. Use [`MaxRangeLong::try_from`] to construct values of this type.
 4005         -
///
 4006         -
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4007         -
///
 4008         -
#[derive(
 4009         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4010         -
)]
 4011         -
pub(crate) struct MaxRangeLong(pub(crate) i64);
 4012         -
#[allow(dead_code)]
 4013         -
impl MaxRangeLong {
 4014         -
    /// Returns an immutable reference to the underlying [`i64`].
 4015         -
    pub fn inner(&self) -> &i64 {
 4016         -
        &self.0
 4017         -
    }
        2822  +
    /// Constructs a `MinLengthBlob` from an [`::aws_smithy_types::Blob`], failing when the provided value does not satisfy the modeled constraints.
        2823  +
    fn try_from(value: ::aws_smithy_types::Blob) -> ::std::result::Result<Self, Self::Error> {
        2824  +
        Self::check_length(&value)?;
 4018   2825   
 4019         -
    /// Consumes the value, returning the underlying [`i64`].
 4020         -
    pub fn into_inner(self) -> i64 {
 4021         -
        self.0
        2826  +
        Ok(Self(value))
 4022   2827   
    }
 4023   2828   
}
 4024         -
 4025         -
impl crate::constrained::Constrained for MaxRangeLong {
 4026         -
    type Unconstrained = i64;
        2829  +
impl crate::constrained::Constrained for MinLengthBlob {
        2830  +
    type Unconstrained = ::aws_smithy_types::Blob;
 4027   2831   
}
 4028   2832   
 4029         -
impl ::std::convert::From<i64>
 4030         -
    for crate::constrained::MaybeConstrained<crate::model::MaxRangeLong>
        2833  +
impl ::std::convert::From<::aws_smithy_types::Blob>
        2834  +
    for crate::constrained::MaybeConstrained<crate::model::MinLengthBlob>
 4031   2835   
{
 4032         -
    fn from(value: i64) -> Self {
        2836  +
    fn from(value: ::aws_smithy_types::Blob) -> Self {
 4033   2837   
        Self::Unconstrained(value)
 4034   2838   
    }
 4035   2839   
}
 4036   2840   
 4037         -
impl ::std::fmt::Display for MaxRangeLong {
 4038         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4039         -
        self.0.fmt(f)
        2841  +
impl ::std::convert::From<MinLengthBlob> for ::aws_smithy_types::Blob {
        2842  +
    fn from(value: MinLengthBlob) -> Self {
        2843  +
        value.into_inner()
 4040   2844   
    }
 4041   2845   
}
 4042   2846   
 4043         -
impl ::std::convert::From<MaxRangeLong> for i64 {
 4044         -
    fn from(value: MaxRangeLong) -> Self {
 4045         -
        value.into_inner()
        2847  +
impl ::std::convert::From<::aws_smithy_http_server_python::types::Blob>
        2848  +
    for crate::constrained::MaybeConstrained<crate::model::MinLengthBlob>
        2849  +
{
        2850  +
    fn from(value: ::aws_smithy_http_server_python::types::Blob) -> Self {
        2851  +
        Self::Unconstrained(value.into())
 4046   2852   
    }
 4047   2853   
}
 4048         -
impl MaxRangeLong {
 4049         -
    fn check_range(
 4050         -
        value: i64,
 4051         -
    ) -> ::std::result::Result<(), crate::model::max_range_long_internal::ConstraintViolation> {
 4052         -
        if value <= 11 {
 4053         -
            Ok(())
 4054         -
        } else {
 4055         -
            Err(crate::model::max_range_long_internal::ConstraintViolation::Range(value))
 4056         -
        }
        2854  +
        2855  +
impl ::std::convert::From<MinLengthBlob> for ::aws_smithy_http_server_python::types::Blob {
        2856  +
    fn from(value: MinLengthBlob) -> Self {
        2857  +
        value.into_inner().into()
 4057   2858   
    }
 4058   2859   
}
 4059         -
impl ::std::convert::TryFrom<i64> for MaxRangeLong {
 4060         -
    type Error = crate::model::max_range_long_internal::ConstraintViolation;
 4061         -
 4062         -
    /// Constructs a `MaxRangeLong` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
 4063         -
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
 4064         -
        Self::check_range(value)?;
        2860  +
impl ::std::convert::TryFrom<::aws_smithy_http_server_python::types::Blob> for MinLengthBlob {
        2861  +
    type Error = crate::model::min_length_blob_internal::ConstraintViolation;
 4065   2862   
 4066         -
        Ok(Self(value))
        2863  +
    fn try_from(
        2864  +
        value: ::aws_smithy_http_server_python::types::Blob,
        2865  +
    ) -> ::std::result::Result<Self, Self::Error> {
        2866  +
        value.try_into()
 4067   2867   
    }
 4068   2868   
}
 4069   2869   
 4070   2870   
#[allow(missing_docs)] // documentation missing in model
 4071   2871   
///
 4072   2872   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4073         -
/// [constraint traits]. Use [`MinRangeLong::try_from`] to construct values of this type.
        2873  +
/// [constraint traits]. Use [`MaxLengthBlob::try_from`] to construct values of this type.
 4074   2874   
///
 4075   2875   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4076   2876   
///
 4077   2877   
#[derive(
 4078   2878   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4079   2879   
)]
 4080         -
pub(crate) struct MinRangeLong(pub(crate) i64);
 4081         -
#[allow(dead_code)]
 4082         -
impl MinRangeLong {
 4083         -
    /// Returns an immutable reference to the underlying [`i64`].
 4084         -
    pub fn inner(&self) -> &i64 {
 4085         -
        &self.0
        2880  +
pub(crate) struct MaxLengthBlob(pub(crate) ::aws_smithy_types::Blob);
        2881  +
impl MaxLengthBlob {
        2882  +
    /// Consumes the value, returning the underlying [`::aws_smithy_types::Blob`].
        2883  +
    pub fn into_inner(self) -> ::aws_smithy_types::Blob {
        2884  +
        self.0
 4086   2885   
    }
        2886  +
}
        2887  +
impl MaxLengthBlob {
        2888  +
    fn check_length(
        2889  +
        blob: &::aws_smithy_types::Blob,
        2890  +
    ) -> ::std::result::Result<(), crate::model::max_length_blob_internal::ConstraintViolation>
        2891  +
    {
        2892  +
        let length = blob.as_ref().len();
 4087   2893   
 4088         -
    /// Consumes the value, returning the underlying [`i64`].
 4089         -
    pub fn into_inner(self) -> i64 {
 4090         -
        self.0
        2894  +
        if length <= 70 {
        2895  +
            Ok(())
        2896  +
        } else {
        2897  +
            Err(crate::model::max_length_blob_internal::ConstraintViolation::Length(length))
        2898  +
        }
 4091   2899   
    }
 4092   2900   
}
        2901  +
impl ::std::convert::TryFrom<::aws_smithy_types::Blob> for MaxLengthBlob {
        2902  +
    type Error = crate::model::max_length_blob_internal::ConstraintViolation;
 4093   2903   
 4094         -
impl crate::constrained::Constrained for MinRangeLong {
 4095         -
    type Unconstrained = i64;
        2904  +
    /// Constructs a `MaxLengthBlob` from an [`::aws_smithy_types::Blob`], failing when the provided value does not satisfy the modeled constraints.
        2905  +
    fn try_from(value: ::aws_smithy_types::Blob) -> ::std::result::Result<Self, Self::Error> {
        2906  +
        Self::check_length(&value)?;
        2907  +
        2908  +
        Ok(Self(value))
        2909  +
    }
        2910  +
}
        2911  +
impl crate::constrained::Constrained for MaxLengthBlob {
        2912  +
    type Unconstrained = ::aws_smithy_types::Blob;
 4096   2913   
}
 4097   2914   
 4098         -
impl ::std::convert::From<i64>
 4099         -
    for crate::constrained::MaybeConstrained<crate::model::MinRangeLong>
        2915  +
impl ::std::convert::From<::aws_smithy_types::Blob>
        2916  +
    for crate::constrained::MaybeConstrained<crate::model::MaxLengthBlob>
 4100   2917   
{
 4101         -
    fn from(value: i64) -> Self {
        2918  +
    fn from(value: ::aws_smithy_types::Blob) -> Self {
 4102   2919   
        Self::Unconstrained(value)
 4103   2920   
    }
 4104   2921   
}
 4105   2922   
 4106         -
impl ::std::fmt::Display for MinRangeLong {
 4107         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4108         -
        self.0.fmt(f)
        2923  +
impl ::std::convert::From<MaxLengthBlob> for ::aws_smithy_types::Blob {
        2924  +
    fn from(value: MaxLengthBlob) -> Self {
        2925  +
        value.into_inner()
 4109   2926   
    }
 4110   2927   
}
 4111   2928   
 4112         -
impl ::std::convert::From<MinRangeLong> for i64 {
 4113         -
    fn from(value: MinRangeLong) -> Self {
 4114         -
        value.into_inner()
        2929  +
impl ::std::convert::From<::aws_smithy_http_server_python::types::Blob>
        2930  +
    for crate::constrained::MaybeConstrained<crate::model::MaxLengthBlob>
        2931  +
{
        2932  +
    fn from(value: ::aws_smithy_http_server_python::types::Blob) -> Self {
        2933  +
        Self::Unconstrained(value.into())
 4115   2934   
    }
 4116   2935   
}
 4117         -
impl MinRangeLong {
 4118         -
    fn check_range(
 4119         -
        value: i64,
 4120         -
    ) -> ::std::result::Result<(), crate::model::min_range_long_internal::ConstraintViolation> {
 4121         -
        if -10 <= value {
 4122         -
            Ok(())
 4123         -
        } else {
 4124         -
            Err(crate::model::min_range_long_internal::ConstraintViolation::Range(value))
 4125         -
        }
        2936  +
        2937  +
impl ::std::convert::From<MaxLengthBlob> for ::aws_smithy_http_server_python::types::Blob {
        2938  +
    fn from(value: MaxLengthBlob) -> Self {
        2939  +
        value.into_inner().into()
 4126   2940   
    }
 4127   2941   
}
 4128         -
impl ::std::convert::TryFrom<i64> for MinRangeLong {
 4129         -
    type Error = crate::model::min_range_long_internal::ConstraintViolation;
 4130         -
 4131         -
    /// Constructs a `MinRangeLong` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
 4132         -
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
 4133         -
        Self::check_range(value)?;
        2942  +
impl ::std::convert::TryFrom<::aws_smithy_http_server_python::types::Blob> for MaxLengthBlob {
        2943  +
    type Error = crate::model::max_length_blob_internal::ConstraintViolation;
 4134   2944   
 4135         -
        Ok(Self(value))
        2945  +
    fn try_from(
        2946  +
        value: ::aws_smithy_http_server_python::types::Blob,
        2947  +
    ) -> ::std::result::Result<Self, Self::Error> {
        2948  +
        value.try_into()
 4136   2949   
    }
 4137   2950   
}
 4138   2951   
 4139   2952   
#[allow(missing_docs)] // documentation missing in model
 4140   2953   
///
 4141   2954   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4142         -
/// [constraint traits]. Use [`FixedValueShort::try_from`] to construct values of this type.
        2955  +
/// [constraint traits]. Use [`FixedLengthBlob::try_from`] to construct values of this type.
 4143   2956   
///
 4144   2957   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4145   2958   
///
 4146   2959   
#[derive(
 4147   2960   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4148   2961   
)]
 4149         -
pub(crate) struct FixedValueShort(pub(crate) i16);
 4150         -
#[allow(dead_code)]
 4151         -
impl FixedValueShort {
 4152         -
    /// Returns an immutable reference to the underlying [`i16`].
 4153         -
    pub fn inner(&self) -> &i16 {
 4154         -
        &self.0
        2962  +
pub(crate) struct FixedLengthBlob(pub(crate) ::aws_smithy_types::Blob);
        2963  +
impl FixedLengthBlob {
        2964  +
    /// Consumes the value, returning the underlying [`::aws_smithy_types::Blob`].
        2965  +
    pub fn into_inner(self) -> ::aws_smithy_types::Blob {
        2966  +
        self.0
 4155   2967   
    }
        2968  +
}
        2969  +
impl FixedLengthBlob {
        2970  +
    fn check_length(
        2971  +
        blob: &::aws_smithy_types::Blob,
        2972  +
    ) -> ::std::result::Result<(), crate::model::fixed_length_blob_internal::ConstraintViolation>
        2973  +
    {
        2974  +
        let length = blob.as_ref().len();
 4156   2975   
 4157         -
    /// Consumes the value, returning the underlying [`i16`].
 4158         -
    pub fn into_inner(self) -> i16 {
 4159         -
        self.0
        2976  +
        if (70..=70).contains(&length) {
        2977  +
            Ok(())
        2978  +
        } else {
        2979  +
            Err(crate::model::fixed_length_blob_internal::ConstraintViolation::Length(length))
        2980  +
        }
 4160   2981   
    }
 4161   2982   
}
        2983  +
impl ::std::convert::TryFrom<::aws_smithy_types::Blob> for FixedLengthBlob {
        2984  +
    type Error = crate::model::fixed_length_blob_internal::ConstraintViolation;
 4162   2985   
 4163         -
impl crate::constrained::Constrained for FixedValueShort {
 4164         -
    type Unconstrained = i16;
        2986  +
    /// Constructs a `FixedLengthBlob` from an [`::aws_smithy_types::Blob`], failing when the provided value does not satisfy the modeled constraints.
        2987  +
    fn try_from(value: ::aws_smithy_types::Blob) -> ::std::result::Result<Self, Self::Error> {
        2988  +
        Self::check_length(&value)?;
        2989  +
        2990  +
        Ok(Self(value))
        2991  +
    }
        2992  +
}
        2993  +
impl crate::constrained::Constrained for FixedLengthBlob {
        2994  +
    type Unconstrained = ::aws_smithy_types::Blob;
 4165   2995   
}
 4166   2996   
 4167         -
impl ::std::convert::From<i16>
 4168         -
    for crate::constrained::MaybeConstrained<crate::model::FixedValueShort>
        2997  +
impl ::std::convert::From<::aws_smithy_types::Blob>
        2998  +
    for crate::constrained::MaybeConstrained<crate::model::FixedLengthBlob>
 4169   2999   
{
 4170         -
    fn from(value: i16) -> Self {
        3000  +
    fn from(value: ::aws_smithy_types::Blob) -> Self {
 4171   3001   
        Self::Unconstrained(value)
 4172   3002   
    }
 4173   3003   
}
 4174   3004   
 4175         -
impl ::std::fmt::Display for FixedValueShort {
 4176         -
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4177         -
        self.0.fmt(f)
        3005  +
impl ::std::convert::From<FixedLengthBlob> for ::aws_smithy_types::Blob {
        3006  +
    fn from(value: FixedLengthBlob) -> Self {
        3007  +
        value.into_inner()
 4178   3008   
    }
 4179   3009   
}
 4180   3010   
 4181         -
impl ::std::convert::From<FixedValueShort> for i16 {
 4182         -
    fn from(value: FixedValueShort) -> Self {
 4183         -
        value.into_inner()
        3011  +
impl ::std::convert::From<::aws_smithy_http_server_python::types::Blob>
        3012  +
    for crate::constrained::MaybeConstrained<crate::model::FixedLengthBlob>
        3013  +
{
        3014  +
    fn from(value: ::aws_smithy_http_server_python::types::Blob) -> Self {
        3015  +
        Self::Unconstrained(value.into())
 4184   3016   
    }
 4185   3017   
}
 4186         -
impl FixedValueShort {
 4187         -
    fn check_range(
 4188         -
        value: i16,
 4189         -
    ) -> ::std::result::Result<(), crate::model::fixed_value_short_internal::ConstraintViolation>
 4190         -
    {
 4191         -
        if (10..=10).contains(&value) {
 4192         -
            Ok(())
 4193         -
        } else {
 4194         -
            Err(crate::model::fixed_value_short_internal::ConstraintViolation::Range(value))
 4195         -
        }
        3018  +
        3019  +
impl ::std::convert::From<FixedLengthBlob> for ::aws_smithy_http_server_python::types::Blob {
        3020  +
    fn from(value: FixedLengthBlob) -> Self {
        3021  +
        value.into_inner().into()
 4196   3022   
    }
 4197   3023   
}
 4198         -
impl ::std::convert::TryFrom<i16> for FixedValueShort {
 4199         -
    type Error = crate::model::fixed_value_short_internal::ConstraintViolation;
 4200         -
 4201         -
    /// Constructs a `FixedValueShort` from an [`i16`], failing when the provided value does not satisfy the modeled constraints.
 4202         -
    fn try_from(value: i16) -> ::std::result::Result<Self, Self::Error> {
 4203         -
        Self::check_range(value)?;
        3024  +
impl ::std::convert::TryFrom<::aws_smithy_http_server_python::types::Blob> for FixedLengthBlob {
        3025  +
    type Error = crate::model::fixed_length_blob_internal::ConstraintViolation;
 4204   3026   
 4205         -
        Ok(Self(value))
        3027  +
    fn try_from(
        3028  +
        value: ::aws_smithy_http_server_python::types::Blob,
        3029  +
    ) -> ::std::result::Result<Self, Self::Error> {
        3030  +
        value.try_into()
 4206   3031   
    }
 4207   3032   
}
 4208   3033   
 4209   3034   
#[allow(missing_docs)] // documentation missing in model
 4210   3035   
///
 4211   3036   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4212         -
/// [constraint traits]. Use [`MaxRangeShort::try_from`] to construct values of this type.
        3037  +
/// [constraint traits]. Use [`MinRangeInteger::try_from`] to construct values of this type.
 4213   3038   
///
 4214   3039   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4215   3040   
///
 4216   3041   
#[derive(
 4217   3042   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4218   3043   
)]
 4219         -
pub(crate) struct MaxRangeShort(pub(crate) i16);
        3044  +
pub(crate) struct MinRangeInteger(pub(crate) i32);
 4220   3045   
#[allow(dead_code)]
 4221         -
impl MaxRangeShort {
 4222         -
    /// Returns an immutable reference to the underlying [`i16`].
 4223         -
    pub fn inner(&self) -> &i16 {
        3046  +
impl MinRangeInteger {
        3047  +
    /// Returns an immutable reference to the underlying [`i32`].
        3048  +
    pub fn inner(&self) -> &i32 {
 4224   3049   
        &self.0
 4225   3050   
    }
 4226   3051   
 4227         -
    /// Consumes the value, returning the underlying [`i16`].
 4228         -
    pub fn into_inner(self) -> i16 {
        3052  +
    /// Consumes the value, returning the underlying [`i32`].
        3053  +
    pub fn into_inner(self) -> i32 {
 4229   3054   
        self.0
 4230   3055   
    }
 4231   3056   
}
 4232   3057   
 4233         -
impl crate::constrained::Constrained for MaxRangeShort {
 4234         -
    type Unconstrained = i16;
        3058  +
impl crate::constrained::Constrained for MinRangeInteger {
        3059  +
    type Unconstrained = i32;
 4235   3060   
}
 4236   3061   
 4237         -
impl ::std::convert::From<i16>
 4238         -
    for crate::constrained::MaybeConstrained<crate::model::MaxRangeShort>
        3062  +
impl ::std::convert::From<i32>
        3063  +
    for crate::constrained::MaybeConstrained<crate::model::MinRangeInteger>
 4239   3064   
{
 4240         -
    fn from(value: i16) -> Self {
        3065  +
    fn from(value: i32) -> Self {
 4241   3066   
        Self::Unconstrained(value)
 4242   3067   
    }
 4243   3068   
}
 4244   3069   
 4245         -
impl ::std::fmt::Display for MaxRangeShort {
        3070  +
impl ::std::fmt::Display for MinRangeInteger {
 4246   3071   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4247   3072   
        self.0.fmt(f)
 4248   3073   
    }
 4249   3074   
}
 4250   3075   
 4251         -
impl ::std::convert::From<MaxRangeShort> for i16 {
 4252         -
    fn from(value: MaxRangeShort) -> Self {
        3076  +
impl ::std::convert::From<MinRangeInteger> for i32 {
        3077  +
    fn from(value: MinRangeInteger) -> Self {
 4253   3078   
        value.into_inner()
 4254   3079   
    }
 4255   3080   
}
 4256         -
impl MaxRangeShort {
        3081  +
impl MinRangeInteger {
 4257   3082   
    fn check_range(
 4258         -
        value: i16,
 4259         -
    ) -> ::std::result::Result<(), crate::model::max_range_short_internal::ConstraintViolation>
        3083  +
        value: i32,
        3084  +
    ) -> ::std::result::Result<(), crate::model::min_range_integer_internal::ConstraintViolation>
 4260   3085   
    {
 4261         -
        if value <= 11 {
        3086  +
        if -10 <= value {
 4262   3087   
            Ok(())
 4263   3088   
        } else {
 4264         -
            Err(crate::model::max_range_short_internal::ConstraintViolation::Range(value))
        3089  +
            Err(crate::model::min_range_integer_internal::ConstraintViolation::Range(value))
 4265   3090   
        }
 4266   3091   
    }
 4267   3092   
}
 4268         -
impl ::std::convert::TryFrom<i16> for MaxRangeShort {
 4269         -
    type Error = crate::model::max_range_short_internal::ConstraintViolation;
        3093  +
impl ::std::convert::TryFrom<i32> for MinRangeInteger {
        3094  +
    type Error = crate::model::min_range_integer_internal::ConstraintViolation;
 4270   3095   
 4271         -
    /// Constructs a `MaxRangeShort` from an [`i16`], failing when the provided value does not satisfy the modeled constraints.
 4272         -
    fn try_from(value: i16) -> ::std::result::Result<Self, Self::Error> {
        3096  +
    /// Constructs a `MinRangeInteger` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
        3097  +
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 4273   3098   
        Self::check_range(value)?;
 4274   3099   
 4275   3100   
        Ok(Self(value))
 4276   3101   
    }
 4277   3102   
}
 4278   3103   
 4279   3104   
#[allow(missing_docs)] // documentation missing in model
 4280   3105   
///
 4281   3106   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4282         -
/// [constraint traits]. Use [`MinRangeShort::try_from`] to construct values of this type.
        3107  +
/// [constraint traits]. Use [`MaxRangeInteger::try_from`] to construct values of this type.
 4283   3108   
///
 4284   3109   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4285   3110   
///
 4286   3111   
#[derive(
 4287   3112   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4288   3113   
)]
 4289         -
pub(crate) struct MinRangeShort(pub(crate) i16);
        3114  +
pub(crate) struct MaxRangeInteger(pub(crate) i32);
 4290   3115   
#[allow(dead_code)]
 4291         -
impl MinRangeShort {
 4292         -
    /// Returns an immutable reference to the underlying [`i16`].
 4293         -
    pub fn inner(&self) -> &i16 {
        3116  +
impl MaxRangeInteger {
        3117  +
    /// Returns an immutable reference to the underlying [`i32`].
        3118  +
    pub fn inner(&self) -> &i32 {
 4294   3119   
        &self.0
 4295   3120   
    }
 4296   3121   
 4297         -
    /// Consumes the value, returning the underlying [`i16`].
 4298         -
    pub fn into_inner(self) -> i16 {
        3122  +
    /// Consumes the value, returning the underlying [`i32`].
        3123  +
    pub fn into_inner(self) -> i32 {
 4299   3124   
        self.0
 4300   3125   
    }
 4301   3126   
}
 4302   3127   
 4303         -
impl crate::constrained::Constrained for MinRangeShort {
 4304         -
    type Unconstrained = i16;
        3128  +
impl crate::constrained::Constrained for MaxRangeInteger {
        3129  +
    type Unconstrained = i32;
 4305   3130   
}
 4306   3131   
 4307         -
impl ::std::convert::From<i16>
 4308         -
    for crate::constrained::MaybeConstrained<crate::model::MinRangeShort>
        3132  +
impl ::std::convert::From<i32>
        3133  +
    for crate::constrained::MaybeConstrained<crate::model::MaxRangeInteger>
 4309   3134   
{
 4310         -
    fn from(value: i16) -> Self {
        3135  +
    fn from(value: i32) -> Self {
 4311   3136   
        Self::Unconstrained(value)
 4312   3137   
    }
 4313   3138   
}
 4314   3139   
 4315         -
impl ::std::fmt::Display for MinRangeShort {
        3140  +
impl ::std::fmt::Display for MaxRangeInteger {
 4316   3141   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4317   3142   
        self.0.fmt(f)
 4318   3143   
    }
 4319   3144   
}
 4320   3145   
 4321         -
impl ::std::convert::From<MinRangeShort> for i16 {
 4322         -
    fn from(value: MinRangeShort) -> Self {
        3146  +
impl ::std::convert::From<MaxRangeInteger> for i32 {
        3147  +
    fn from(value: MaxRangeInteger) -> Self {
 4323   3148   
        value.into_inner()
 4324   3149   
    }
 4325   3150   
}
 4326         -
impl MinRangeShort {
        3151  +
impl MaxRangeInteger {
 4327   3152   
    fn check_range(
 4328         -
        value: i16,
 4329         -
    ) -> ::std::result::Result<(), crate::model::min_range_short_internal::ConstraintViolation>
        3153  +
        value: i32,
        3154  +
    ) -> ::std::result::Result<(), crate::model::max_range_integer_internal::ConstraintViolation>
 4330   3155   
    {
 4331         -
        if -10 <= value {
        3156  +
        if value <= 69 {
 4332   3157   
            Ok(())
 4333   3158   
        } else {
 4334         -
            Err(crate::model::min_range_short_internal::ConstraintViolation::Range(value))
        3159  +
            Err(crate::model::max_range_integer_internal::ConstraintViolation::Range(value))
 4335   3160   
        }
 4336   3161   
    }
 4337   3162   
}
 4338         -
impl ::std::convert::TryFrom<i16> for MinRangeShort {
 4339         -
    type Error = crate::model::min_range_short_internal::ConstraintViolation;
        3163  +
impl ::std::convert::TryFrom<i32> for MaxRangeInteger {
        3164  +
    type Error = crate::model::max_range_integer_internal::ConstraintViolation;
 4340   3165   
 4341         -
    /// Constructs a `MinRangeShort` from an [`i16`], failing when the provided value does not satisfy the modeled constraints.
 4342         -
    fn try_from(value: i16) -> ::std::result::Result<Self, Self::Error> {
        3166  +
    /// Constructs a `MaxRangeInteger` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
        3167  +
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 4343   3168   
        Self::check_range(value)?;
 4344   3169   
 4345   3170   
        Ok(Self(value))
 4346   3171   
    }
 4347   3172   
}
 4348   3173   
 4349   3174   
#[allow(missing_docs)] // documentation missing in model
 4350   3175   
///
 4351   3176   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4352   3177   
/// [constraint traits]. Use [`FixedValueInteger::try_from`] to construct values of this type.
@@ -4392,3217 +6631,5315 @@
 4412   3237   
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 4413   3238   
        Self::check_range(value)?;
 4414   3239   
 4415   3240   
        Ok(Self(value))
 4416   3241   
    }
 4417   3242   
}
 4418   3243   
 4419   3244   
#[allow(missing_docs)] // documentation missing in model
 4420   3245   
///
 4421   3246   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4422         -
/// [constraint traits]. Use [`MaxRangeInteger::try_from`] to construct values of this type.
        3247  +
/// [constraint traits]. Use [`MinRangeShort::try_from`] to construct values of this type.
 4423   3248   
///
 4424   3249   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4425   3250   
///
 4426   3251   
#[derive(
 4427   3252   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4428   3253   
)]
 4429         -
pub(crate) struct MaxRangeInteger(pub(crate) i32);
        3254  +
pub(crate) struct MinRangeShort(pub(crate) i16);
 4430   3255   
#[allow(dead_code)]
 4431         -
impl MaxRangeInteger {
 4432         -
    /// Returns an immutable reference to the underlying [`i32`].
 4433         -
    pub fn inner(&self) -> &i32 {
        3256  +
impl MinRangeShort {
        3257  +
    /// Returns an immutable reference to the underlying [`i16`].
        3258  +
    pub fn inner(&self) -> &i16 {
 4434   3259   
        &self.0
 4435   3260   
    }
 4436   3261   
 4437         -
    /// Consumes the value, returning the underlying [`i32`].
 4438         -
    pub fn into_inner(self) -> i32 {
        3262  +
    /// Consumes the value, returning the underlying [`i16`].
        3263  +
    pub fn into_inner(self) -> i16 {
 4439   3264   
        self.0
 4440   3265   
    }
 4441   3266   
}
 4442   3267   
 4443         -
impl crate::constrained::Constrained for MaxRangeInteger {
 4444         -
    type Unconstrained = i32;
        3268  +
impl crate::constrained::Constrained for MinRangeShort {
        3269  +
    type Unconstrained = i16;
 4445   3270   
}
 4446   3271   
 4447         -
impl ::std::convert::From<i32>
 4448         -
    for crate::constrained::MaybeConstrained<crate::model::MaxRangeInteger>
        3272  +
impl ::std::convert::From<i16>
        3273  +
    for crate::constrained::MaybeConstrained<crate::model::MinRangeShort>
 4449   3274   
{
 4450         -
    fn from(value: i32) -> Self {
        3275  +
    fn from(value: i16) -> Self {
 4451   3276   
        Self::Unconstrained(value)
 4452   3277   
    }
 4453   3278   
}
 4454   3279   
 4455         -
impl ::std::fmt::Display for MaxRangeInteger {
        3280  +
impl ::std::fmt::Display for MinRangeShort {
 4456   3281   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4457   3282   
        self.0.fmt(f)
 4458   3283   
    }
 4459   3284   
}
 4460   3285   
 4461         -
impl ::std::convert::From<MaxRangeInteger> for i32 {
 4462         -
    fn from(value: MaxRangeInteger) -> Self {
        3286  +
impl ::std::convert::From<MinRangeShort> for i16 {
        3287  +
    fn from(value: MinRangeShort) -> Self {
 4463   3288   
        value.into_inner()
 4464   3289   
    }
 4465   3290   
}
 4466         -
impl MaxRangeInteger {
        3291  +
impl MinRangeShort {
 4467   3292   
    fn check_range(
 4468         -
        value: i32,
 4469         -
    ) -> ::std::result::Result<(), crate::model::max_range_integer_internal::ConstraintViolation>
        3293  +
        value: i16,
        3294  +
    ) -> ::std::result::Result<(), crate::model::min_range_short_internal::ConstraintViolation>
 4470   3295   
    {
 4471         -
        if value <= 69 {
        3296  +
        if -10 <= value {
 4472   3297   
            Ok(())
 4473   3298   
        } else {
 4474         -
            Err(crate::model::max_range_integer_internal::ConstraintViolation::Range(value))
        3299  +
            Err(crate::model::min_range_short_internal::ConstraintViolation::Range(value))
 4475   3300   
        }
 4476   3301   
    }
 4477   3302   
}
 4478         -
impl ::std::convert::TryFrom<i32> for MaxRangeInteger {
 4479         -
    type Error = crate::model::max_range_integer_internal::ConstraintViolation;
        3303  +
impl ::std::convert::TryFrom<i16> for MinRangeShort {
        3304  +
    type Error = crate::model::min_range_short_internal::ConstraintViolation;
 4480   3305   
 4481         -
    /// Constructs a `MaxRangeInteger` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
 4482         -
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
        3306  +
    /// Constructs a `MinRangeShort` from an [`i16`], failing when the provided value does not satisfy the modeled constraints.
        3307  +
    fn try_from(value: i16) -> ::std::result::Result<Self, Self::Error> {
 4483   3308   
        Self::check_range(value)?;
 4484   3309   
 4485   3310   
        Ok(Self(value))
 4486   3311   
    }
 4487   3312   
}
 4488   3313   
 4489   3314   
#[allow(missing_docs)] // documentation missing in model
 4490   3315   
///
 4491   3316   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4492         -
/// [constraint traits]. Use [`MinRangeInteger::try_from`] to construct values of this type.
        3317  +
/// [constraint traits]. Use [`MaxRangeShort::try_from`] to construct values of this type.
 4493   3318   
///
 4494   3319   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4495   3320   
///
 4496   3321   
#[derive(
 4497   3322   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4498   3323   
)]
 4499         -
pub(crate) struct MinRangeInteger(pub(crate) i32);
        3324  +
pub(crate) struct MaxRangeShort(pub(crate) i16);
 4500   3325   
#[allow(dead_code)]
 4501         -
impl MinRangeInteger {
 4502         -
    /// Returns an immutable reference to the underlying [`i32`].
 4503         -
    pub fn inner(&self) -> &i32 {
        3326  +
impl MaxRangeShort {
        3327  +
    /// Returns an immutable reference to the underlying [`i16`].
        3328  +
    pub fn inner(&self) -> &i16 {
 4504   3329   
        &self.0
 4505   3330   
    }
 4506   3331   
 4507         -
    /// Consumes the value, returning the underlying [`i32`].
 4508         -
    pub fn into_inner(self) -> i32 {
        3332  +
    /// Consumes the value, returning the underlying [`i16`].
        3333  +
    pub fn into_inner(self) -> i16 {
 4509   3334   
        self.0
 4510   3335   
    }
 4511   3336   
}
 4512   3337   
 4513         -
impl crate::constrained::Constrained for MinRangeInteger {
 4514         -
    type Unconstrained = i32;
        3338  +
impl crate::constrained::Constrained for MaxRangeShort {
        3339  +
    type Unconstrained = i16;
 4515   3340   
}
 4516   3341   
 4517         -
impl ::std::convert::From<i32>
 4518         -
    for crate::constrained::MaybeConstrained<crate::model::MinRangeInteger>
        3342  +
impl ::std::convert::From<i16>
        3343  +
    for crate::constrained::MaybeConstrained<crate::model::MaxRangeShort>
 4519   3344   
{
 4520         -
    fn from(value: i32) -> Self {
        3345  +
    fn from(value: i16) -> Self {
 4521   3346   
        Self::Unconstrained(value)
 4522   3347   
    }
 4523   3348   
}
 4524   3349   
 4525         -
impl ::std::fmt::Display for MinRangeInteger {
        3350  +
impl ::std::fmt::Display for MaxRangeShort {
 4526   3351   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4527   3352   
        self.0.fmt(f)
 4528   3353   
    }
 4529   3354   
}
 4530   3355   
 4531         -
impl ::std::convert::From<MinRangeInteger> for i32 {
 4532         -
    fn from(value: MinRangeInteger) -> Self {
        3356  +
impl ::std::convert::From<MaxRangeShort> for i16 {
        3357  +
    fn from(value: MaxRangeShort) -> Self {
 4533   3358   
        value.into_inner()
 4534   3359   
    }
 4535   3360   
}
 4536         -
impl MinRangeInteger {
        3361  +
impl MaxRangeShort {
 4537   3362   
    fn check_range(
 4538         -
        value: i32,
 4539         -
    ) -> ::std::result::Result<(), crate::model::min_range_integer_internal::ConstraintViolation>
        3363  +
        value: i16,
        3364  +
    ) -> ::std::result::Result<(), crate::model::max_range_short_internal::ConstraintViolation>
 4540   3365   
    {
 4541         -
        if -10 <= value {
        3366  +
        if value <= 11 {
 4542   3367   
            Ok(())
 4543   3368   
        } else {
 4544         -
            Err(crate::model::min_range_integer_internal::ConstraintViolation::Range(value))
        3369  +
            Err(crate::model::max_range_short_internal::ConstraintViolation::Range(value))
 4545   3370   
        }
 4546   3371   
    }
 4547   3372   
}
 4548         -
impl ::std::convert::TryFrom<i32> for MinRangeInteger {
 4549         -
    type Error = crate::model::min_range_integer_internal::ConstraintViolation;
        3373  +
impl ::std::convert::TryFrom<i16> for MaxRangeShort {
        3374  +
    type Error = crate::model::max_range_short_internal::ConstraintViolation;
 4550   3375   
 4551         -
    /// Constructs a `MinRangeInteger` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
 4552         -
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
        3376  +
    /// Constructs a `MaxRangeShort` from an [`i16`], failing when the provided value does not satisfy the modeled constraints.
        3377  +
    fn try_from(value: i16) -> ::std::result::Result<Self, Self::Error> {
 4553   3378   
        Self::check_range(value)?;
 4554   3379   
 4555   3380   
        Ok(Self(value))
 4556   3381   
    }
 4557   3382   
}
 4558   3383   
 4559   3384   
#[allow(missing_docs)] // documentation missing in model
 4560   3385   
///
 4561   3386   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4562         -
/// [constraint traits]. Use [`FixedLengthBlob::try_from`] to construct values of this type.
        3387  +
/// [constraint traits]. Use [`FixedValueShort::try_from`] to construct values of this type.
 4563   3388   
///
 4564   3389   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4565   3390   
///
 4566   3391   
#[derive(
 4567   3392   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4568   3393   
)]
 4569         -
pub(crate) struct FixedLengthBlob(pub(crate) ::aws_smithy_types::Blob);
 4570         -
impl FixedLengthBlob {
 4571         -
    /// Consumes the value, returning the underlying [`::aws_smithy_types::Blob`].
 4572         -
    pub fn into_inner(self) -> ::aws_smithy_types::Blob {
 4573         -
        self.0
        3394  +
pub(crate) struct FixedValueShort(pub(crate) i16);
        3395  +
#[allow(dead_code)]
        3396  +
impl FixedValueShort {
        3397  +
    /// Returns an immutable reference to the underlying [`i16`].
        3398  +
    pub fn inner(&self) -> &i16 {
        3399  +
        &self.0
 4574   3400   
    }
 4575         -
}
 4576         -
impl FixedLengthBlob {
 4577         -
    fn check_length(
 4578         -
        blob: &::aws_smithy_types::Blob,
 4579         -
    ) -> ::std::result::Result<(), crate::model::fixed_length_blob_internal::ConstraintViolation>
 4580         -
    {
 4581         -
        let length = blob.as_ref().len();
 4582   3401   
 4583         -
        if (70..=70).contains(&length) {
 4584         -
            Ok(())
 4585         -
        } else {
 4586         -
            Err(crate::model::fixed_length_blob_internal::ConstraintViolation::Length(length))
 4587         -
        }
        3402  +
    /// Consumes the value, returning the underlying [`i16`].
        3403  +
    pub fn into_inner(self) -> i16 {
        3404  +
        self.0
 4588   3405   
    }
 4589   3406   
}
 4590         -
impl ::std::convert::TryFrom<::aws_smithy_types::Blob> for FixedLengthBlob {
 4591         -
    type Error = crate::model::fixed_length_blob_internal::ConstraintViolation;
 4592         -
 4593         -
    /// Constructs a `FixedLengthBlob` from an [`::aws_smithy_types::Blob`], failing when the provided value does not satisfy the modeled constraints.
 4594         -
    fn try_from(value: ::aws_smithy_types::Blob) -> ::std::result::Result<Self, Self::Error> {
 4595         -
        Self::check_length(&value)?;
 4596   3407   
 4597         -
        Ok(Self(value))
 4598         -
    }
 4599         -
}
 4600         -
impl crate::constrained::Constrained for FixedLengthBlob {
 4601         -
    type Unconstrained = ::aws_smithy_types::Blob;
        3408  +
impl crate::constrained::Constrained for FixedValueShort {
        3409  +
    type Unconstrained = i16;
 4602   3410   
}
 4603   3411   
 4604         -
impl ::std::convert::From<::aws_smithy_types::Blob>
 4605         -
    for crate::constrained::MaybeConstrained<crate::model::FixedLengthBlob>
        3412  +
impl ::std::convert::From<i16>
        3413  +
    for crate::constrained::MaybeConstrained<crate::model::FixedValueShort>
 4606   3414   
{
 4607         -
    fn from(value: ::aws_smithy_types::Blob) -> Self {
        3415  +
    fn from(value: i16) -> Self {
 4608   3416   
        Self::Unconstrained(value)
 4609   3417   
    }
 4610   3418   
}
 4611   3419   
 4612         -
impl ::std::convert::From<FixedLengthBlob> for ::aws_smithy_types::Blob {
 4613         -
    fn from(value: FixedLengthBlob) -> Self {
 4614         -
        value.into_inner()
 4615         -
    }
 4616         -
}
 4617         -
 4618         -
impl ::std::convert::From<::aws_smithy_http_server_python::types::Blob>
 4619         -
    for crate::constrained::MaybeConstrained<crate::model::FixedLengthBlob>
 4620         -
{
 4621         -
    fn from(value: ::aws_smithy_http_server_python::types::Blob) -> Self {
 4622         -
        Self::Unconstrained(value.into())
        3420  +
impl ::std::fmt::Display for FixedValueShort {
        3421  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3422  +
        self.0.fmt(f)
 4623   3423   
    }
 4624   3424   
}
 4625   3425   
 4626         -
impl ::std::convert::From<FixedLengthBlob> for ::aws_smithy_http_server_python::types::Blob {
 4627         -
    fn from(value: FixedLengthBlob) -> Self {
 4628         -
        value.into_inner().into()
        3426  +
impl ::std::convert::From<FixedValueShort> for i16 {
        3427  +
    fn from(value: FixedValueShort) -> Self {
        3428  +
        value.into_inner()
 4629   3429   
    }
 4630   3430   
}
 4631         -
impl ::std::convert::TryFrom<::aws_smithy_http_server_python::types::Blob> for FixedLengthBlob {
 4632         -
    type Error = crate::model::fixed_length_blob_internal::ConstraintViolation;
        3431  +
impl FixedValueShort {
        3432  +
    fn check_range(
        3433  +
        value: i16,
        3434  +
    ) -> ::std::result::Result<(), crate::model::fixed_value_short_internal::ConstraintViolation>
        3435  +
    {
        3436  +
        if (10..=10).contains(&value) {
        3437  +
            Ok(())
        3438  +
        } else {
        3439  +
            Err(crate::model::fixed_value_short_internal::ConstraintViolation::Range(value))
        3440  +
        }
        3441  +
    }
        3442  +
}
        3443  +
impl ::std::convert::TryFrom<i16> for FixedValueShort {
        3444  +
    type Error = crate::model::fixed_value_short_internal::ConstraintViolation;
 4633   3445   
 4634         -
    fn try_from(
 4635         -
        value: ::aws_smithy_http_server_python::types::Blob,
 4636         -
    ) -> ::std::result::Result<Self, Self::Error> {
 4637         -
        value.try_into()
        3446  +
    /// Constructs a `FixedValueShort` from an [`i16`], failing when the provided value does not satisfy the modeled constraints.
        3447  +
    fn try_from(value: i16) -> ::std::result::Result<Self, Self::Error> {
        3448  +
        Self::check_range(value)?;
        3449  +
        3450  +
        Ok(Self(value))
 4638   3451   
    }
 4639   3452   
}
 4640   3453   
 4641   3454   
#[allow(missing_docs)] // documentation missing in model
 4642   3455   
///
 4643   3456   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4644         -
/// [constraint traits]. Use [`MaxLengthBlob::try_from`] to construct values of this type.
        3457  +
/// [constraint traits]. Use [`MinRangeLong::try_from`] to construct values of this type.
 4645   3458   
///
 4646   3459   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4647   3460   
///
 4648   3461   
#[derive(
 4649   3462   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4650   3463   
)]
 4651         -
pub(crate) struct MaxLengthBlob(pub(crate) ::aws_smithy_types::Blob);
 4652         -
impl MaxLengthBlob {
 4653         -
    /// Consumes the value, returning the underlying [`::aws_smithy_types::Blob`].
 4654         -
    pub fn into_inner(self) -> ::aws_smithy_types::Blob {
 4655         -
        self.0
        3464  +
pub(crate) struct MinRangeLong(pub(crate) i64);
        3465  +
#[allow(dead_code)]
        3466  +
impl MinRangeLong {
        3467  +
    /// Returns an immutable reference to the underlying [`i64`].
        3468  +
    pub fn inner(&self) -> &i64 {
        3469  +
        &self.0
 4656   3470   
    }
 4657         -
}
 4658         -
impl MaxLengthBlob {
 4659         -
    fn check_length(
 4660         -
        blob: &::aws_smithy_types::Blob,
 4661         -
    ) -> ::std::result::Result<(), crate::model::max_length_blob_internal::ConstraintViolation>
 4662         -
    {
 4663         -
        let length = blob.as_ref().len();
 4664   3471   
 4665         -
        if length <= 70 {
 4666         -
            Ok(())
 4667         -
        } else {
 4668         -
            Err(crate::model::max_length_blob_internal::ConstraintViolation::Length(length))
 4669         -
        }
        3472  +
    /// Consumes the value, returning the underlying [`i64`].
        3473  +
    pub fn into_inner(self) -> i64 {
        3474  +
        self.0
 4670   3475   
    }
 4671   3476   
}
 4672         -
impl ::std::convert::TryFrom<::aws_smithy_types::Blob> for MaxLengthBlob {
 4673         -
    type Error = crate::model::max_length_blob_internal::ConstraintViolation;
 4674         -
 4675         -
    /// Constructs a `MaxLengthBlob` from an [`::aws_smithy_types::Blob`], failing when the provided value does not satisfy the modeled constraints.
 4676         -
    fn try_from(value: ::aws_smithy_types::Blob) -> ::std::result::Result<Self, Self::Error> {
 4677         -
        Self::check_length(&value)?;
 4678   3477   
 4679         -
        Ok(Self(value))
 4680         -
    }
 4681         -
}
 4682         -
impl crate::constrained::Constrained for MaxLengthBlob {
 4683         -
    type Unconstrained = ::aws_smithy_types::Blob;
        3478  +
impl crate::constrained::Constrained for MinRangeLong {
        3479  +
    type Unconstrained = i64;
 4684   3480   
}
 4685   3481   
 4686         -
impl ::std::convert::From<::aws_smithy_types::Blob>
 4687         -
    for crate::constrained::MaybeConstrained<crate::model::MaxLengthBlob>
        3482  +
impl ::std::convert::From<i64>
        3483  +
    for crate::constrained::MaybeConstrained<crate::model::MinRangeLong>
 4688   3484   
{
 4689         -
    fn from(value: ::aws_smithy_types::Blob) -> Self {
        3485  +
    fn from(value: i64) -> Self {
 4690   3486   
        Self::Unconstrained(value)
 4691   3487   
    }
 4692   3488   
}
 4693   3489   
 4694         -
impl ::std::convert::From<MaxLengthBlob> for ::aws_smithy_types::Blob {
 4695         -
    fn from(value: MaxLengthBlob) -> Self {
 4696         -
        value.into_inner()
        3490  +
impl ::std::fmt::Display for MinRangeLong {
        3491  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3492  +
        self.0.fmt(f)
 4697   3493   
    }
 4698   3494   
}
 4699   3495   
 4700         -
impl ::std::convert::From<::aws_smithy_http_server_python::types::Blob>
 4701         -
    for crate::constrained::MaybeConstrained<crate::model::MaxLengthBlob>
 4702         -
{
 4703         -
    fn from(value: ::aws_smithy_http_server_python::types::Blob) -> Self {
 4704         -
        Self::Unconstrained(value.into())
        3496  +
impl ::std::convert::From<MinRangeLong> for i64 {
        3497  +
    fn from(value: MinRangeLong) -> Self {
        3498  +
        value.into_inner()
 4705   3499   
    }
 4706   3500   
}
 4707         -
 4708         -
impl ::std::convert::From<MaxLengthBlob> for ::aws_smithy_http_server_python::types::Blob {
 4709         -
    fn from(value: MaxLengthBlob) -> Self {
 4710         -
        value.into_inner().into()
        3501  +
impl MinRangeLong {
        3502  +
    fn check_range(
        3503  +
        value: i64,
        3504  +
    ) -> ::std::result::Result<(), crate::model::min_range_long_internal::ConstraintViolation> {
        3505  +
        if -10 <= value {
        3506  +
            Ok(())
        3507  +
        } else {
        3508  +
            Err(crate::model::min_range_long_internal::ConstraintViolation::Range(value))
        3509  +
        }
 4711   3510   
    }
 4712   3511   
}
 4713         -
impl ::std::convert::TryFrom<::aws_smithy_http_server_python::types::Blob> for MaxLengthBlob {
 4714         -
    type Error = crate::model::max_length_blob_internal::ConstraintViolation;
        3512  +
impl ::std::convert::TryFrom<i64> for MinRangeLong {
        3513  +
    type Error = crate::model::min_range_long_internal::ConstraintViolation;
 4715   3514   
 4716         -
    fn try_from(
 4717         -
        value: ::aws_smithy_http_server_python::types::Blob,
 4718         -
    ) -> ::std::result::Result<Self, Self::Error> {
 4719         -
        value.try_into()
        3515  +
    /// Constructs a `MinRangeLong` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
        3516  +
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
        3517  +
        Self::check_range(value)?;
        3518  +
        3519  +
        Ok(Self(value))
 4720   3520   
    }
 4721   3521   
}
 4722   3522   
 4723   3523   
#[allow(missing_docs)] // documentation missing in model
 4724   3524   
///
 4725   3525   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4726         -
/// [constraint traits]. Use [`MinLengthBlob::try_from`] to construct values of this type.
        3526  +
/// [constraint traits]. Use [`MaxRangeLong::try_from`] to construct values of this type.
 4727   3527   
///
 4728   3528   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4729   3529   
///
 4730   3530   
#[derive(
 4731   3531   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4732   3532   
)]
 4733         -
pub(crate) struct MinLengthBlob(pub(crate) ::aws_smithy_types::Blob);
 4734         -
impl MinLengthBlob {
 4735         -
    /// Consumes the value, returning the underlying [`::aws_smithy_types::Blob`].
 4736         -
    pub fn into_inner(self) -> ::aws_smithy_types::Blob {
 4737         -
        self.0
        3533  +
pub(crate) struct MaxRangeLong(pub(crate) i64);
        3534  +
#[allow(dead_code)]
        3535  +
impl MaxRangeLong {
        3536  +
    /// Returns an immutable reference to the underlying [`i64`].
        3537  +
    pub fn inner(&self) -> &i64 {
        3538  +
        &self.0
 4738   3539   
    }
 4739         -
}
 4740         -
impl MinLengthBlob {
 4741         -
    fn check_length(
 4742         -
        blob: &::aws_smithy_types::Blob,
 4743         -
    ) -> ::std::result::Result<(), crate::model::min_length_blob_internal::ConstraintViolation>
 4744         -
    {
 4745         -
        let length = blob.as_ref().len();
 4746   3540   
 4747         -
        if 2 <= length {
 4748         -
            Ok(())
 4749         -
        } else {
 4750         -
            Err(crate::model::min_length_blob_internal::ConstraintViolation::Length(length))
 4751         -
        }
        3541  +
    /// Consumes the value, returning the underlying [`i64`].
        3542  +
    pub fn into_inner(self) -> i64 {
        3543  +
        self.0
 4752   3544   
    }
 4753   3545   
}
 4754         -
impl ::std::convert::TryFrom<::aws_smithy_types::Blob> for MinLengthBlob {
 4755         -
    type Error = crate::model::min_length_blob_internal::ConstraintViolation;
 4756         -
 4757         -
    /// Constructs a `MinLengthBlob` from an [`::aws_smithy_types::Blob`], failing when the provided value does not satisfy the modeled constraints.
 4758         -
    fn try_from(value: ::aws_smithy_types::Blob) -> ::std::result::Result<Self, Self::Error> {
 4759         -
        Self::check_length(&value)?;
 4760   3546   
 4761         -
        Ok(Self(value))
 4762         -
    }
 4763         -
}
 4764         -
impl crate::constrained::Constrained for MinLengthBlob {
 4765         -
    type Unconstrained = ::aws_smithy_types::Blob;
        3547  +
impl crate::constrained::Constrained for MaxRangeLong {
        3548  +
    type Unconstrained = i64;
 4766   3549   
}
 4767   3550   
 4768         -
impl ::std::convert::From<::aws_smithy_types::Blob>
 4769         -
    for crate::constrained::MaybeConstrained<crate::model::MinLengthBlob>
        3551  +
impl ::std::convert::From<i64>
        3552  +
    for crate::constrained::MaybeConstrained<crate::model::MaxRangeLong>
 4770   3553   
{
 4771         -
    fn from(value: ::aws_smithy_types::Blob) -> Self {
        3554  +
    fn from(value: i64) -> Self {
 4772   3555   
        Self::Unconstrained(value)
 4773   3556   
    }
 4774   3557   
}
 4775   3558   
 4776         -
impl ::std::convert::From<MinLengthBlob> for ::aws_smithy_types::Blob {
 4777         -
    fn from(value: MinLengthBlob) -> Self {
 4778         -
        value.into_inner()
        3559  +
impl ::std::fmt::Display for MaxRangeLong {
        3560  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3561  +
        self.0.fmt(f)
 4779   3562   
    }
 4780   3563   
}
 4781   3564   
 4782         -
impl ::std::convert::From<::aws_smithy_http_server_python::types::Blob>
 4783         -
    for crate::constrained::MaybeConstrained<crate::model::MinLengthBlob>
 4784         -
{
 4785         -
    fn from(value: ::aws_smithy_http_server_python::types::Blob) -> Self {
 4786         -
        Self::Unconstrained(value.into())
        3565  +
impl ::std::convert::From<MaxRangeLong> for i64 {
        3566  +
    fn from(value: MaxRangeLong) -> Self {
        3567  +
        value.into_inner()
 4787   3568   
    }
 4788   3569   
}
 4789         -
 4790         -
impl ::std::convert::From<MinLengthBlob> for ::aws_smithy_http_server_python::types::Blob {
 4791         -
    fn from(value: MinLengthBlob) -> Self {
 4792         -
        value.into_inner().into()
        3570  +
impl MaxRangeLong {
        3571  +
    fn check_range(
        3572  +
        value: i64,
        3573  +
    ) -> ::std::result::Result<(), crate::model::max_range_long_internal::ConstraintViolation> {
        3574  +
        if value <= 11 {
        3575  +
            Ok(())
        3576  +
        } else {
        3577  +
            Err(crate::model::max_range_long_internal::ConstraintViolation::Range(value))
        3578  +
        }
 4793   3579   
    }
 4794   3580   
}
 4795         -
impl ::std::convert::TryFrom<::aws_smithy_http_server_python::types::Blob> for MinLengthBlob {
 4796         -
    type Error = crate::model::min_length_blob_internal::ConstraintViolation;
        3581  +
impl ::std::convert::TryFrom<i64> for MaxRangeLong {
        3582  +
    type Error = crate::model::max_range_long_internal::ConstraintViolation;
 4797   3583   
 4798         -
    fn try_from(
 4799         -
        value: ::aws_smithy_http_server_python::types::Blob,
 4800         -
    ) -> ::std::result::Result<Self, Self::Error> {
 4801         -
        value.try_into()
        3584  +
    /// Constructs a `MaxRangeLong` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
        3585  +
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
        3586  +
        Self::check_range(value)?;
        3587  +
        3588  +
        Ok(Self(value))
 4802   3589   
    }
 4803   3590   
}
 4804   3591   
 4805   3592   
#[allow(missing_docs)] // documentation missing in model
 4806   3593   
///
 4807   3594   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4808         -
/// [constraint traits]. Use [`FixedLengthString::try_from`] to construct values of this type.
        3595  +
/// [constraint traits]. Use [`FixedValueLong::try_from`] to construct values of this type.
 4809   3596   
///
 4810   3597   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4811   3598   
///
 4812   3599   
#[derive(
 4813   3600   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4814   3601   
)]
 4815         -
pub(crate) struct FixedLengthString(pub(crate) ::std::string::String);
        3602  +
pub(crate) struct FixedValueLong(pub(crate) i64);
 4816   3603   
#[allow(dead_code)]
 4817         -
impl FixedLengthString {
 4818         -
    /// Extracts a string slice containing the entire underlying `String`.
 4819         -
    pub fn as_str(&self) -> &str {
 4820         -
        &self.0
 4821         -
    }
 4822         -
 4823         -
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 4824         -
    pub fn inner(&self) -> &::std::string::String {
        3604  +
impl FixedValueLong {
        3605  +
    /// Returns an immutable reference to the underlying [`i64`].
        3606  +
    pub fn inner(&self) -> &i64 {
 4825   3607   
        &self.0
 4826   3608   
    }
 4827   3609   
 4828         -
    /// Consumes the value, returning the underlying [`::std::string::String`].
 4829         -
    pub fn into_inner(self) -> ::std::string::String {
        3610  +
    /// Consumes the value, returning the underlying [`i64`].
        3611  +
    pub fn into_inner(self) -> i64 {
 4830   3612   
        self.0
 4831   3613   
    }
 4832   3614   
}
 4833         -
impl FixedLengthString {
 4834         -
    fn check_length(
 4835         -
        string: &str,
 4836         -
    ) -> ::std::result::Result<(), crate::model::fixed_length_string_internal::ConstraintViolation>
 4837         -
    {
 4838         -
        let length = string.chars().count();
 4839         -
 4840         -
        if (69..=69).contains(&length) {
 4841         -
            Ok(())
 4842         -
        } else {
 4843         -
            Err(crate::model::fixed_length_string_internal::ConstraintViolation::Length(length))
 4844         -
        }
 4845         -
    }
 4846         -
}
 4847         -
impl ::std::convert::TryFrom<::std::string::String> for FixedLengthString {
 4848         -
    type Error = crate::model::fixed_length_string_internal::ConstraintViolation;
 4849   3615   
 4850         -
    /// Constructs a `FixedLengthString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 4851         -
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 4852         -
        Self::check_length(&value)?;
 4853         -
 4854         -
        Ok(Self(value))
 4855         -
    }
 4856         -
}
 4857         -
impl crate::constrained::Constrained for FixedLengthString {
 4858         -
    type Unconstrained = ::std::string::String;
        3616  +
impl crate::constrained::Constrained for FixedValueLong {
        3617  +
    type Unconstrained = i64;
 4859   3618   
}
 4860   3619   
 4861         -
impl ::std::convert::From<::std::string::String>
 4862         -
    for crate::constrained::MaybeConstrained<crate::model::FixedLengthString>
        3620  +
impl ::std::convert::From<i64>
        3621  +
    for crate::constrained::MaybeConstrained<crate::model::FixedValueLong>
 4863   3622   
{
 4864         -
    fn from(value: ::std::string::String) -> Self {
        3623  +
    fn from(value: i64) -> Self {
 4865   3624   
        Self::Unconstrained(value)
 4866   3625   
    }
 4867   3626   
}
 4868   3627   
 4869         -
impl ::std::fmt::Display for FixedLengthString {
        3628  +
impl ::std::fmt::Display for FixedValueLong {
 4870   3629   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4871   3630   
        self.0.fmt(f)
 4872   3631   
    }
 4873   3632   
}
 4874   3633   
 4875         -
impl ::std::convert::From<FixedLengthString> for ::std::string::String {
 4876         -
    fn from(value: FixedLengthString) -> Self {
        3634  +
impl ::std::convert::From<FixedValueLong> for i64 {
        3635  +
    fn from(value: FixedValueLong) -> Self {
 4877   3636   
        value.into_inner()
 4878   3637   
    }
 4879   3638   
}
        3639  +
impl FixedValueLong {
        3640  +
    fn check_range(
        3641  +
        value: i64,
        3642  +
    ) -> ::std::result::Result<(), crate::model::fixed_value_long_internal::ConstraintViolation>
        3643  +
    {
        3644  +
        if (10..=10).contains(&value) {
        3645  +
            Ok(())
        3646  +
        } else {
        3647  +
            Err(crate::model::fixed_value_long_internal::ConstraintViolation::Range(value))
        3648  +
        }
        3649  +
    }
        3650  +
}
        3651  +
impl ::std::convert::TryFrom<i64> for FixedValueLong {
        3652  +
    type Error = crate::model::fixed_value_long_internal::ConstraintViolation;
        3653  +
        3654  +
    /// Constructs a `FixedValueLong` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
        3655  +
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
        3656  +
        Self::check_range(value)?;
        3657  +
        3658  +
        Ok(Self(value))
        3659  +
    }
        3660  +
}
 4880   3661   
 4881   3662   
#[allow(missing_docs)] // documentation missing in model
 4882   3663   
///
 4883   3664   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4884         -
/// [constraint traits]. Use [`MaxLengthString::try_from`] to construct values of this type.
        3665  +
/// [constraint traits]. Use [`MinRangeByte::try_from`] to construct values of this type.
 4885   3666   
///
 4886   3667   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4887   3668   
///
 4888   3669   
#[derive(
 4889   3670   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4890   3671   
)]
 4891         -
pub(crate) struct MaxLengthString(pub(crate) ::std::string::String);
        3672  +
pub(crate) struct MinRangeByte(pub(crate) i8);
 4892   3673   
#[allow(dead_code)]
 4893         -
impl MaxLengthString {
 4894         -
    /// Extracts a string slice containing the entire underlying `String`.
 4895         -
    pub fn as_str(&self) -> &str {
 4896         -
        &self.0
 4897         -
    }
 4898         -
 4899         -
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 4900         -
    pub fn inner(&self) -> &::std::string::String {
        3674  +
impl MinRangeByte {
        3675  +
    /// Returns an immutable reference to the underlying [`i8`].
        3676  +
    pub fn inner(&self) -> &i8 {
 4901   3677   
        &self.0
 4902   3678   
    }
 4903   3679   
 4904         -
    /// Consumes the value, returning the underlying [`::std::string::String`].
 4905         -
    pub fn into_inner(self) -> ::std::string::String {
        3680  +
    /// Consumes the value, returning the underlying [`i8`].
        3681  +
    pub fn into_inner(self) -> i8 {
 4906   3682   
        self.0
 4907   3683   
    }
 4908   3684   
}
 4909         -
impl MaxLengthString {
 4910         -
    fn check_length(
 4911         -
        string: &str,
 4912         -
    ) -> ::std::result::Result<(), crate::model::max_length_string_internal::ConstraintViolation>
 4913         -
    {
 4914         -
        let length = string.chars().count();
 4915         -
 4916         -
        if length <= 69 {
 4917         -
            Ok(())
 4918         -
        } else {
 4919         -
            Err(crate::model::max_length_string_internal::ConstraintViolation::Length(length))
 4920         -
        }
 4921         -
    }
 4922         -
}
 4923         -
impl ::std::convert::TryFrom<::std::string::String> for MaxLengthString {
 4924         -
    type Error = crate::model::max_length_string_internal::ConstraintViolation;
 4925   3685   
 4926         -
    /// Constructs a `MaxLengthString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 4927         -
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 4928         -
        Self::check_length(&value)?;
 4929         -
 4930         -
        Ok(Self(value))
 4931         -
    }
 4932         -
}
 4933         -
impl crate::constrained::Constrained for MaxLengthString {
 4934         -
    type Unconstrained = ::std::string::String;
        3686  +
impl crate::constrained::Constrained for MinRangeByte {
        3687  +
    type Unconstrained = i8;
 4935   3688   
}
 4936   3689   
 4937         -
impl ::std::convert::From<::std::string::String>
 4938         -
    for crate::constrained::MaybeConstrained<crate::model::MaxLengthString>
 4939         -
{
 4940         -
    fn from(value: ::std::string::String) -> Self {
        3690  +
impl ::std::convert::From<i8> for crate::constrained::MaybeConstrained<crate::model::MinRangeByte> {
        3691  +
    fn from(value: i8) -> Self {
 4941   3692   
        Self::Unconstrained(value)
 4942   3693   
    }
 4943   3694   
}
 4944   3695   
 4945         -
impl ::std::fmt::Display for MaxLengthString {
        3696  +
impl ::std::fmt::Display for MinRangeByte {
 4946   3697   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 4947   3698   
        self.0.fmt(f)
 4948   3699   
    }
 4949   3700   
}
 4950   3701   
 4951         -
impl ::std::convert::From<MaxLengthString> for ::std::string::String {
 4952         -
    fn from(value: MaxLengthString) -> Self {
        3702  +
impl ::std::convert::From<MinRangeByte> for i8 {
        3703  +
    fn from(value: MinRangeByte) -> Self {
 4953   3704   
        value.into_inner()
 4954   3705   
    }
 4955   3706   
}
        3707  +
impl MinRangeByte {
        3708  +
    fn check_range(
        3709  +
        value: i8,
        3710  +
    ) -> ::std::result::Result<(), crate::model::min_range_byte_internal::ConstraintViolation> {
        3711  +
        if -10 <= value {
        3712  +
            Ok(())
        3713  +
        } else {
        3714  +
            Err(crate::model::min_range_byte_internal::ConstraintViolation::Range(value))
        3715  +
        }
        3716  +
    }
        3717  +
}
        3718  +
impl ::std::convert::TryFrom<i8> for MinRangeByte {
        3719  +
    type Error = crate::model::min_range_byte_internal::ConstraintViolation;
        3720  +
        3721  +
    /// Constructs a `MinRangeByte` from an [`i8`], failing when the provided value does not satisfy the modeled constraints.
        3722  +
    fn try_from(value: i8) -> ::std::result::Result<Self, Self::Error> {
        3723  +
        Self::check_range(value)?;
        3724  +
        3725  +
        Ok(Self(value))
        3726  +
    }
        3727  +
}
 4956   3728   
 4957   3729   
#[allow(missing_docs)] // documentation missing in model
 4958   3730   
///
 4959   3731   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 4960         -
/// [constraint traits]. Use [`MinLengthString::try_from`] to construct values of this type.
        3732  +
/// [constraint traits]. Use [`MaxRangeByte::try_from`] to construct values of this type.
 4961   3733   
///
 4962   3734   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 4963   3735   
///
 4964   3736   
#[derive(
 4965   3737   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 4966   3738   
)]
 4967         -
pub(crate) struct MinLengthString(pub(crate) ::std::string::String);
        3739  +
pub(crate) struct MaxRangeByte(pub(crate) i8);
 4968   3740   
#[allow(dead_code)]
 4969         -
impl MinLengthString {
 4970         -
    /// Extracts a string slice containing the entire underlying `String`.
 4971         -
    pub fn as_str(&self) -> &str {
 4972         -
        &self.0
 4973         -
    }
 4974         -
 4975         -
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 4976         -
    pub fn inner(&self) -> &::std::string::String {
        3741  +
impl MaxRangeByte {
        3742  +
    /// Returns an immutable reference to the underlying [`i8`].
        3743  +
    pub fn inner(&self) -> &i8 {
 4977   3744   
        &self.0
 4978   3745   
    }
 4979   3746   
 4980         -
    /// Consumes the value, returning the underlying [`::std::string::String`].
 4981         -
    pub fn into_inner(self) -> ::std::string::String {
        3747  +
    /// Consumes the value, returning the underlying [`i8`].
        3748  +
    pub fn into_inner(self) -> i8 {
 4982   3749   
        self.0
 4983   3750   
    }
 4984   3751   
}
 4985         -
impl MinLengthString {
 4986         -
    fn check_length(
 4987         -
        string: &str,
 4988         -
    ) -> ::std::result::Result<(), crate::model::min_length_string_internal::ConstraintViolation>
 4989         -
    {
 4990         -
        let length = string.chars().count();
 4991         -
 4992         -
        if 2 <= length {
 4993         -
            Ok(())
 4994         -
        } else {
 4995         -
            Err(crate::model::min_length_string_internal::ConstraintViolation::Length(length))
 4996         -
        }
 4997         -
    }
 4998         -
}
 4999         -
impl ::std::convert::TryFrom<::std::string::String> for MinLengthString {
 5000         -
    type Error = crate::model::min_length_string_internal::ConstraintViolation;
 5001         -
 5002         -
    /// Constructs a `MinLengthString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 5003         -
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 5004         -
        Self::check_length(&value)?;
 5005   3752   
 5006         -
        Ok(Self(value))
 5007         -
    }
 5008         -
}
 5009         -
impl crate::constrained::Constrained for MinLengthString {
 5010         -
    type Unconstrained = ::std::string::String;
        3753  +
impl crate::constrained::Constrained for MaxRangeByte {
        3754  +
    type Unconstrained = i8;
 5011   3755   
}
 5012   3756   
 5013         -
impl ::std::convert::From<::std::string::String>
 5014         -
    for crate::constrained::MaybeConstrained<crate::model::MinLengthString>
 5015         -
{
 5016         -
    fn from(value: ::std::string::String) -> Self {
        3757  +
impl ::std::convert::From<i8> for crate::constrained::MaybeConstrained<crate::model::MaxRangeByte> {
        3758  +
    fn from(value: i8) -> Self {
 5017   3759   
        Self::Unconstrained(value)
 5018   3760   
    }
 5019   3761   
}
 5020   3762   
 5021         -
impl ::std::fmt::Display for MinLengthString {
        3763  +
impl ::std::fmt::Display for MaxRangeByte {
 5022   3764   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5023   3765   
        self.0.fmt(f)
 5024   3766   
    }
 5025   3767   
}
 5026   3768   
 5027         -
impl ::std::convert::From<MinLengthString> for ::std::string::String {
 5028         -
    fn from(value: MinLengthString) -> Self {
        3769  +
impl ::std::convert::From<MaxRangeByte> for i8 {
        3770  +
    fn from(value: MaxRangeByte) -> Self {
 5029   3771   
        value.into_inner()
 5030   3772   
    }
 5031   3773   
}
 5032         -
 5033         -
#[allow(missing_docs)] // documentation missing in model
 5034         -
#[derive(
 5035         -
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 5036         -
)]
 5037         -
pub enum ConstrainedUnionInOutput {
 5038         -
    #[allow(missing_docs)] // documentation missing in model
 5039         -
    Structure(crate::model::TransitivelyConstrainedStructureInOutput),
 5040         -
}
 5041         -
impl ConstrainedUnionInOutput {
 5042         -
    #[allow(irrefutable_let_patterns)]
 5043         -
    /// Tries to convert the enum instance into [`Structure`](crate::model::ConstrainedUnionInOutput::Structure), extracting the inner [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
 5044         -
    /// Returns `Err(&Self)` if it can't be converted.
 5045         -
    pub fn as_structure(
 5046         -
        &self,
 5047         -
    ) -> ::std::result::Result<&crate::model::TransitivelyConstrainedStructureInOutput, &Self> {
 5048         -
        if let ConstrainedUnionInOutput::Structure(val) = &self {
 5049         -
            ::std::result::Result::Ok(val)
        3774  +
impl MaxRangeByte {
        3775  +
    fn check_range(
        3776  +
        value: i8,
        3777  +
    ) -> ::std::result::Result<(), crate::model::max_range_byte_internal::ConstraintViolation> {
        3778  +
        if value <= 11 {
        3779  +
            Ok(())
 5050   3780   
        } else {
 5051         -
            ::std::result::Result::Err(self)
        3781  +
            Err(crate::model::max_range_byte_internal::ConstraintViolation::Range(value))
 5052   3782   
        }
 5053   3783   
    }
 5054         -
    /// Returns true if this is a [`Structure`](crate::model::ConstrainedUnionInOutput::Structure).
 5055         -
    pub fn is_structure(&self) -> bool {
 5056         -
        self.as_structure().is_ok()
        3784  +
}
        3785  +
impl ::std::convert::TryFrom<i8> for MaxRangeByte {
        3786  +
    type Error = crate::model::max_range_byte_internal::ConstraintViolation;
        3787  +
        3788  +
    /// Constructs a `MaxRangeByte` from an [`i8`], failing when the provided value does not satisfy the modeled constraints.
        3789  +
    fn try_from(value: i8) -> ::std::result::Result<Self, Self::Error> {
        3790  +
        Self::check_range(value)?;
        3791  +
        3792  +
        Ok(Self(value))
 5057   3793   
    }
 5058   3794   
}
 5059         -
#[pyo3::pyclass(name = "ConstrainedUnionInOutput")]
        3795  +
        3796  +
#[allow(missing_docs)] // documentation missing in model
        3797  +
///
        3798  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        3799  +
/// [constraint traits]. Use [`FixedValueByte::try_from`] to construct values of this type.
        3800  +
///
        3801  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        3802  +
///
 5060   3803   
#[derive(
 5061   3804   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 5062   3805   
)]
 5063         -
pub struct PyUnionMarkerConstrainedUnionInOutput(pub ConstrainedUnionInOutput);
 5064         -
#[::pyo3::pymethods]
 5065         -
impl PyUnionMarkerConstrainedUnionInOutput {
 5066         -
    #[allow(irrefutable_let_patterns)]
 5067         -
    #[staticmethod]
 5068         -
    /// Creates a new union instance of [`Structure`](crate::model::ConstrainedUnionInOutput::Structure)
 5069         -
    /// :param data constraints_without_public_constrained_types.model.TransitivelyConstrainedStructureInOutput:
 5070         -
    /// :rtype ConstrainedUnionInOutput:
 5071         -
    pub fn structure(data: crate::model::TransitivelyConstrainedStructureInOutput) -> Self {
 5072         -
        Self(ConstrainedUnionInOutput::Structure(data))
        3806  +
pub(crate) struct FixedValueByte(pub(crate) i8);
        3807  +
#[allow(dead_code)]
        3808  +
impl FixedValueByte {
        3809  +
    /// Returns an immutable reference to the underlying [`i8`].
        3810  +
    pub fn inner(&self) -> &i8 {
        3811  +
        &self.0
 5073   3812   
    }
 5074         -
    /// Tries to convert the enum instance into [`Structure`](crate::model::ConstrainedUnionInOutput::Structure), extracting the inner [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
 5075         -
    /// :rtype constraints_without_public_constrained_types.model.TransitivelyConstrainedStructureInOutput:
 5076         -
    pub fn as_structure(
 5077         -
        &self,
 5078         -
    ) -> ::pyo3::PyResult<crate::model::TransitivelyConstrainedStructureInOutput> {
 5079         -
        match self.0.as_structure() {
 5080         -
            Ok(variant) => Ok(variant.clone()),
 5081         -
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
 5082         -
                r"ConstrainedUnionInOutput variant is not of type constraints_without_public_constrained_types.model.TransitivelyConstrainedStructureInOutput",
 5083         -
            )),
 5084         -
        }
        3813  +
        3814  +
    /// Consumes the value, returning the underlying [`i8`].
        3815  +
    pub fn into_inner(self) -> i8 {
        3816  +
        self.0
        3817  +
    }
        3818  +
}
        3819  +
        3820  +
impl crate::constrained::Constrained for FixedValueByte {
        3821  +
    type Unconstrained = i8;
        3822  +
}
        3823  +
        3824  +
impl ::std::convert::From<i8>
        3825  +
    for crate::constrained::MaybeConstrained<crate::model::FixedValueByte>
        3826  +
{
        3827  +
    fn from(value: i8) -> Self {
        3828  +
        Self::Unconstrained(value)
 5085   3829   
    }
 5086         -
    /// Returns true if this is a [`Structure`](crate::model::ConstrainedUnionInOutput::Structure).
 5087         -
    /// :rtype bool:
 5088         -
    pub fn is_structure(&self) -> bool {
 5089         -
        self.0.is_structure()
        3830  +
}
        3831  +
        3832  +
impl ::std::fmt::Display for FixedValueByte {
        3833  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3834  +
        self.0.fmt(f)
 5090   3835   
    }
 5091   3836   
}
 5092         -
impl ::pyo3::IntoPy<::pyo3::PyObject> for ConstrainedUnionInOutput {
 5093         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 5094         -
        PyUnionMarkerConstrainedUnionInOutput(self).into_py(py)
        3837  +
        3838  +
impl ::std::convert::From<FixedValueByte> for i8 {
        3839  +
    fn from(value: FixedValueByte) -> Self {
        3840  +
        value.into_inner()
 5095   3841   
    }
 5096   3842   
}
 5097         -
impl<'source> ::pyo3::FromPyObject<'source> for ConstrainedUnionInOutput {
 5098         -
    fn extract(obj: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 5099         -
        let data: PyUnionMarkerConstrainedUnionInOutput = obj.extract()?;
 5100         -
        Ok(data.0)
        3843  +
impl FixedValueByte {
        3844  +
    fn check_range(
        3845  +
        value: i8,
        3846  +
    ) -> ::std::result::Result<(), crate::model::fixed_value_byte_internal::ConstraintViolation>
        3847  +
    {
        3848  +
        if (10..=10).contains(&value) {
        3849  +
            Ok(())
        3850  +
        } else {
        3851  +
            Err(crate::model::fixed_value_byte_internal::ConstraintViolation::Range(value))
        3852  +
        }
        3853  +
    }
        3854  +
}
        3855  +
impl ::std::convert::TryFrom<i8> for FixedValueByte {
        3856  +
    type Error = crate::model::fixed_value_byte_internal::ConstraintViolation;
        3857  +
        3858  +
    /// Constructs a `FixedValueByte` from an [`i8`], failing when the provided value does not satisfy the modeled constraints.
        3859  +
    fn try_from(value: i8) -> ::std::result::Result<Self, Self::Error> {
        3860  +
        Self::check_range(value)?;
        3861  +
        3862  +
        Ok(Self(value))
 5101   3863   
    }
 5102   3864   
}
 5103   3865   
 5104         -
#[::pyo3::pyclass]
 5105         -
/// :param length_string typing.Optional\[str\]:
 5106         -
/// :rtype None:
 5107   3866   
#[allow(missing_docs)] // documentation missing in model
        3867  +
///
        3868  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        3869  +
/// [constraint traits]. Use [`LengthList::try_from`] to construct values of this type.
        3870  +
///
        3871  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        3872  +
///
 5108   3873   
#[derive(
 5109   3874   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 5110   3875   
)]
 5111         -
pub struct TransitivelyConstrainedStructureInOutput {
 5112         -
    #[pyo3(get, set)]
 5113         -
    /// :type typing.Optional\[str\]:
 5114         -
    #[allow(missing_docs)] // documentation missing in model
 5115         -
    pub length_string: ::std::option::Option<::std::string::String>,
 5116         -
}
 5117         -
impl TransitivelyConstrainedStructureInOutput {
 5118         -
    #[allow(missing_docs)] // documentation missing in model
 5119         -
    pub fn length_string(&self) -> ::std::option::Option<&str> {
 5120         -
        self.length_string.as_deref()
 5121         -
    }
 5122         -
}
 5123         -
#[allow(clippy::new_without_default)]
 5124         -
#[allow(clippy::too_many_arguments)]
 5125         -
#[::pyo3::pymethods]
 5126         -
impl TransitivelyConstrainedStructureInOutput {
 5127         -
    #[new]
 5128         -
    pub fn new(length_string: ::std::option::Option<::std::string::String>) -> Self {
 5129         -
        Self { length_string }
 5130         -
    }
 5131         -
    fn __repr__(&self) -> String {
 5132         -
        format!("{self:?}")
        3876  +
pub(crate) struct LengthList(pub(crate) ::std::vec::Vec<::std::string::String>);
        3877  +
impl LengthList {
        3878  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::string::String>`].
        3879  +
    pub fn into_inner(self) -> ::std::vec::Vec<::std::string::String> {
        3880  +
        self.0
 5133   3881   
    }
 5134         -
    fn __str__(&self) -> String {
 5135         -
        format!("{self:?}")
        3882  +
        3883  +
    fn check_length(
        3884  +
        length: usize,
        3885  +
    ) -> ::std::result::Result<(), crate::model::length_list_internal::ConstraintViolation> {
        3886  +
        if length <= 69 {
        3887  +
            Ok(())
        3888  +
        } else {
        3889  +
            Err(crate::model::length_list_internal::ConstraintViolation::Length(length))
        3890  +
        }
 5136   3891   
    }
 5137   3892   
}
 5138         -
impl<'source> ::pyo3::FromPyObject<'source>
 5139         -
    for std::boxed::Box<TransitivelyConstrainedStructureInOutput>
 5140         -
{
 5141         -
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 5142         -
        ob.extract::<TransitivelyConstrainedStructureInOutput>()
 5143         -
            .map(Box::new)
        3893  +
impl ::std::convert::TryFrom<::std::vec::Vec<::std::string::String>> for LengthList {
        3894  +
    type Error = crate::model::length_list_internal::ConstraintViolation;
        3895  +
        3896  +
    /// Constructs a `LengthList` from an [`::std::vec::Vec<::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
        3897  +
    fn try_from(
        3898  +
        value: ::std::vec::Vec<::std::string::String>,
        3899  +
    ) -> ::std::result::Result<Self, Self::Error> {
        3900  +
        Self::check_length(value.len())?;
        3901  +
        3902  +
        Ok(Self(value))
 5144   3903   
    }
 5145   3904   
}
 5146   3905   
 5147         -
impl ::pyo3::IntoPy<::pyo3::PyObject>
 5148         -
    for std::boxed::Box<TransitivelyConstrainedStructureInOutput>
 5149         -
{
 5150         -
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 5151         -
        (*self).into_py(py)
        3906  +
impl ::std::convert::From<LengthList> for ::std::vec::Vec<::std::string::String> {
        3907  +
    fn from(value: LengthList) -> Self {
        3908  +
        value.into_inner()
 5152   3909   
    }
 5153   3910   
}
 5154         -
impl TransitivelyConstrainedStructureInOutput {
 5155         -
    /// Creates a new builder-style object to manufacture [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
 5156         -
    pub fn builder() -> crate::model::transitively_constrained_structure_in_output::Builder {
 5157         -
        crate::model::transitively_constrained_structure_in_output::Builder::default()
 5158         -
    }
        3911  +
impl crate::constrained::Constrained for LengthList {
        3912  +
    type Unconstrained = crate::unconstrained::length_list_unconstrained::LengthListUnconstrained;
 5159   3913   
}
 5160   3914   
 5161   3915   
#[allow(missing_docs)] // documentation missing in model
 5162   3916   
///
 5163   3917   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 5164         -
/// [constraint traits]. Use [`ConstrainedMapInOutput::try_from`] to construct values of this type.
        3918  +
/// [constraint traits]. Use [`SensitiveLengthList::try_from`] to construct values of this type.
 5165   3919   
///
 5166   3920   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 5167   3921   
///
 5168         -
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
 5169         -
pub(crate) struct ConstrainedMapInOutput(
 5170         -
    pub(crate)  ::std::collections::HashMap<
 5171         -
        ::std::string::String,
 5172         -
        crate::model::TransitivelyConstrainedStructureInOutput,
 5173         -
    >,
 5174         -
);
 5175         -
impl ConstrainedMapInOutput {
 5176         -
    /// Consumes the value, returning the underlying [`::std::collections::HashMap<::std::string::String, crate::model::TransitivelyConstrainedStructureInOutput>`].
 5177         -
    pub fn into_inner(
 5178         -
        self,
 5179         -
    ) -> ::std::collections::HashMap<
 5180         -
        ::std::string::String,
 5181         -
        crate::model::TransitivelyConstrainedStructureInOutput,
 5182         -
    > {
        3922  +
#[derive(
        3923  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        3924  +
)]
        3925  +
pub(crate) struct SensitiveLengthList(pub(crate) ::std::vec::Vec<crate::model::SensitiveStructure>);
        3926  +
impl SensitiveLengthList {
        3927  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::SensitiveStructure>`].
        3928  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::SensitiveStructure> {
 5183   3929   
        self.0
 5184   3930   
    }
        3931  +
        3932  +
    fn check_length(
        3933  +
        length: usize,
        3934  +
    ) -> ::std::result::Result<(), crate::model::sensitive_length_list_internal::ConstraintViolation>
        3935  +
    {
        3936  +
        if length <= 69 {
        3937  +
            Ok(())
        3938  +
        } else {
        3939  +
            Err(crate::model::sensitive_length_list_internal::ConstraintViolation::Length(length))
        3940  +
        }
        3941  +
    }
 5185   3942   
}
 5186         -
impl
 5187         -
    ::std::convert::TryFrom<
 5188         -
        ::std::collections::HashMap<
 5189         -
            ::std::string::String,
 5190         -
            crate::model::TransitivelyConstrainedStructureInOutput,
 5191         -
        >,
 5192         -
    > for ConstrainedMapInOutput
        3943  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::SensitiveStructure>>
        3944  +
    for SensitiveLengthList
 5193   3945   
{
 5194         -
    type Error = crate::model::constrained_map_in_output_internal::ConstraintViolation;
        3946  +
    type Error = crate::model::sensitive_length_list_internal::ConstraintViolation;
 5195   3947   
 5196         -
    /// Constructs a `ConstrainedMapInOutput` from an [`::std::collections::HashMap<::std::string::String, crate::model::TransitivelyConstrainedStructureInOutput>`], failing when the provided value does not satisfy the modeled constraints.
        3948  +
    /// Constructs a `SensitiveLengthList` from an [`::std::vec::Vec<crate::model::SensitiveStructure>`], failing when the provided value does not satisfy the modeled constraints.
 5197   3949   
    fn try_from(
 5198         -
        value: ::std::collections::HashMap<
 5199         -
            ::std::string::String,
 5200         -
            crate::model::TransitivelyConstrainedStructureInOutput,
 5201         -
        >,
        3950  +
        value: ::std::vec::Vec<crate::model::SensitiveStructure>,
 5202   3951   
    ) -> ::std::result::Result<Self, Self::Error> {
 5203         -
        let length = value.len();
 5204         -
        if 69 <= length {
 5205         -
            Ok(Self(value))
 5206         -
        } else {
 5207         -
            Err(
 5208         -
                crate::model::constrained_map_in_output_internal::ConstraintViolation::Length(
 5209         -
                    length,
 5210         -
                ),
 5211         -
            )
 5212         -
        }
        3952  +
        Self::check_length(value.len())?;
        3953  +
        3954  +
        Ok(Self(value))
 5213   3955   
    }
 5214   3956   
}
 5215   3957   
 5216         -
impl ::std::convert::From<ConstrainedMapInOutput>
 5217         -
    for ::std::collections::HashMap<
 5218         -
        ::std::string::String,
 5219         -
        crate::model::TransitivelyConstrainedStructureInOutput,
 5220         -
    >
        3958  +
impl ::std::convert::From<SensitiveLengthList>
        3959  +
    for ::std::vec::Vec<crate::model::SensitiveStructure>
 5221   3960   
{
 5222         -
    fn from(value: ConstrainedMapInOutput) -> Self {
        3961  +
    fn from(value: SensitiveLengthList) -> Self {
 5223   3962   
        value.into_inner()
 5224   3963   
    }
 5225   3964   
}
        3965  +
impl crate::constrained::Constrained for SensitiveLengthList {
        3966  +
    type Unconstrained =
        3967  +
        crate::unconstrained::sensitive_length_list_unconstrained::SensitiveLengthListUnconstrained;
        3968  +
}
 5226   3969   
 5227   3970   
#[allow(missing_docs)] // documentation missing in model
 5228   3971   
///
 5229   3972   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 5230         -
/// [constraint traits]. Use [`ConstrainedListInOutput::try_from`] to construct values of this type.
        3973  +
/// [constraint traits]. Use [`ConBSet::try_from`] to construct values of this type.
 5231   3974   
///
 5232   3975   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 5233   3976   
///
 5234   3977   
#[derive(
 5235   3978   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 5236   3979   
)]
 5237         -
pub(crate) struct ConstrainedListInOutput(
 5238         -
    pub(crate) ::std::vec::Vec<crate::model::ConstrainedUnionInOutput>,
 5239         -
);
 5240         -
impl ConstrainedListInOutput {
 5241         -
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::ConstrainedUnionInOutput>`].
 5242         -
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::ConstrainedUnionInOutput> {
        3980  +
pub(crate) struct ConBSet(pub(crate) ::std::vec::Vec<crate::model::ConBSetInner>);
        3981  +
impl ConBSet {
        3982  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::ConBSetInner>`].
        3983  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::ConBSetInner> {
 5243   3984   
        self.0
 5244   3985   
    }
 5245   3986   
 5246         -
    fn check_length(
 5247         -
        length: usize,
        3987  +
    fn check_unique_items(
        3988  +
        items: ::std::vec::Vec<crate::model::ConBSetInner>,
 5248   3989   
    ) -> ::std::result::Result<
 5249         -
        (),
 5250         -
        crate::model::constrained_list_in_output_internal::ConstraintViolation,
        3990  +
        ::std::vec::Vec<crate::model::ConBSetInner>,
        3991  +
        crate::model::con_b_set_internal::ConstraintViolation,
 5251   3992   
    > {
 5252         -
        if 69 <= length {
 5253         -
            Ok(())
 5254         -
        } else {
        3993  +
        let mut seen = ::std::collections::HashMap::new();
        3994  +
        let mut duplicate_indices = ::std::vec::Vec::new();
        3995  +
        for (idx, item) in items.iter().enumerate() {
        3996  +
            if let Some(prev_idx) = seen.insert(item, idx) {
        3997  +
                duplicate_indices.push(prev_idx);
        3998  +
            }
        3999  +
        }
        4000  +
        4001  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
        4002  +
        for idx in &duplicate_indices {
        4003  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
        4004  +
                last_duplicate_indices.push(prev_idx);
        4005  +
            }
        4006  +
        }
        4007  +
        duplicate_indices.extend(last_duplicate_indices);
        4008  +
        4009  +
        if !duplicate_indices.is_empty() {
        4010  +
            debug_assert!(duplicate_indices.len() >= 2);
 5255   4011   
            Err(
 5256         -
                crate::model::constrained_list_in_output_internal::ConstraintViolation::Length(
 5257         -
                    length,
 5258         -
                ),
        4012  +
                crate::model::con_b_set_internal::ConstraintViolation::UniqueItems {
        4013  +
                    duplicate_indices,
        4014  +
                    original: items,
        4015  +
                },
 5259   4016   
            )
        4017  +
        } else {
        4018  +
            Ok(items)
 5260   4019   
        }
 5261   4020   
    }
 5262   4021   
}
 5263         -
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::ConstrainedUnionInOutput>>
 5264         -
    for ConstrainedListInOutput
 5265         -
{
 5266         -
    type Error = crate::model::constrained_list_in_output_internal::ConstraintViolation;
        4022  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::ConBSetInner>> for ConBSet {
        4023  +
    type Error = crate::model::con_b_set_internal::ConstraintViolation;
 5267   4024   
 5268         -
    /// Constructs a `ConstrainedListInOutput` from an [`::std::vec::Vec<crate::model::ConstrainedUnionInOutput>`], failing when the provided value does not satisfy the modeled constraints.
        4025  +
    /// Constructs a `ConBSet` from an [`::std::vec::Vec<crate::model::ConBSetInner>`], failing when the provided value does not satisfy the modeled constraints.
 5269   4026   
    fn try_from(
 5270         -
        value: ::std::vec::Vec<crate::model::ConstrainedUnionInOutput>,
        4027  +
        value: ::std::vec::Vec<crate::model::ConBSetInner>,
 5271   4028   
    ) -> ::std::result::Result<Self, Self::Error> {
 5272         -
        Self::check_length(value.len())?;
        4029  +
        let value = Self::check_unique_items(value)?;
 5273   4030   
 5274   4031   
        Ok(Self(value))
 5275   4032   
    }
 5276   4033   
}
 5277   4034   
 5278         -
impl ::std::convert::From<ConstrainedListInOutput>
 5279         -
    for ::std::vec::Vec<crate::model::ConstrainedUnionInOutput>
 5280         -
{
 5281         -
    fn from(value: ConstrainedListInOutput) -> Self {
        4035  +
impl ::std::convert::From<ConBSet> for ::std::vec::Vec<crate::model::ConBSetInner> {
        4036  +
    fn from(value: ConBSet) -> Self {
 5282   4037   
        value.into_inner()
 5283   4038   
    }
 5284   4039   
}
 5285         -
 5286         -
/// See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 5287         -
pub mod validation_exception_field {
 5288         -
 5289         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 5290         -
    /// Holds one variant for each of the ways the builder can fail.
 5291         -
    #[allow(clippy::enum_variant_names)]
 5292         -
    pub enum ConstraintViolation {
 5293         -
        /// `path` was not provided but it is required when building `ValidationExceptionField`.
 5294         -
        MissingPath,
 5295         -
        /// `message` was not provided but it is required when building `ValidationExceptionField`.
 5296         -
        MissingMessage,
 5297         -
    }
 5298         -
    impl ::std::fmt::Display for ConstraintViolation {
 5299         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5300         -
            match self {
 5301         -
                ConstraintViolation::MissingPath => write!(f, "`path` was not provided but it is required when building `ValidationExceptionField`"),
 5302         -
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationExceptionField`"),
 5303         -
            }
 5304         -
        }
 5305         -
    }
 5306         -
    impl ::std::error::Error for ConstraintViolation {}
 5307         -
    impl ::std::convert::TryFrom<Builder> for crate::model::ValidationExceptionField {
 5308         -
        type Error = ConstraintViolation;
 5309         -
 5310         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 5311         -
            builder.build()
 5312         -
        }
 5313         -
    }
 5314         -
    /// A builder for [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 5315         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 5316         -
    pub struct Builder {
 5317         -
        pub(crate) path: ::std::option::Option<::std::string::String>,
 5318         -
        pub(crate) message: ::std::option::Option<::std::string::String>,
 5319         -
    }
 5320         -
    impl Builder {
 5321         -
        /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
 5322         -
        pub fn path(mut self, input: ::std::string::String) -> Self {
 5323         -
            self.path = Some(input);
 5324         -
            self
 5325         -
        }
 5326         -
        /// A detailed description of the validation failure.
 5327         -
        pub fn message(mut self, input: ::std::string::String) -> Self {
 5328         -
            self.message = Some(input);
 5329         -
            self
 5330         -
        }
 5331         -
        /// Consumes the builder and constructs a [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 5332         -
        ///
 5333         -
        /// The builder fails to construct a [`ValidationExceptionField`](crate::model::ValidationExceptionField) if you do not provide a value for all non-`Option`al members.
 5334         -
        ///
 5335         -
        pub fn build(self) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
 5336         -
            self.build_enforcing_required_and_enum_traits()
 5337         -
        }
 5338         -
        fn build_enforcing_required_and_enum_traits(
 5339         -
            self,
 5340         -
        ) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
 5341         -
            Ok(crate::model::ValidationExceptionField {
 5342         -
                path: self.path.ok_or(ConstraintViolation::MissingPath)?,
 5343         -
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
 5344         -
            })
 5345         -
        }
        4040  +
impl ::std::convert::From<ConBSet> for ::std::vec::Vec<::std::vec::Vec<::std::string::String>> {
        4041  +
    fn from(value: ConBSet) -> Self {
        4042  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
 5346   4043   
    }
 5347   4044   
}
 5348         -
/// See [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
 5349         -
pub(crate) mod event_stream_regular_message_internal {
        4045  +
impl crate::constrained::Constrained for ConBSet {
        4046  +
    type Unconstrained = crate::unconstrained::con_b_set_unconstrained::ConBSetUnconstrained;
        4047  +
}
 5350   4048   
 5351         -
    impl ::std::convert::From<Builder> for crate::model::EventStreamRegularMessage {
 5352         -
        fn from(builder: Builder) -> Self {
 5353         -
            builder.build()
 5354         -
        }
 5355         -
    }
 5356         -
    /// A builder for [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
 5357         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 5358         -
    pub(crate) struct Builder {
 5359         -
        pub(crate) message_content: ::std::option::Option<::std::string::String>,
 5360         -
    }
 5361         -
    impl Builder {
 5362         -
        #[allow(missing_docs)] // documentation missing in model
 5363         -
        pub(crate) fn set_message_content(
 5364         -
            mut self,
 5365         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
 5366         -
        ) -> Self {
 5367         -
            self.message_content = input.map(|v| v.into());
 5368         -
            self
 5369         -
        }
 5370         -
        /// Consumes the builder and constructs a [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
 5371         -
        pub fn build(self) -> crate::model::EventStreamRegularMessage {
 5372         -
            self.build_enforcing_all_constraints()
 5373         -
        }
 5374         -
        fn build_enforcing_all_constraints(self) -> crate::model::EventStreamRegularMessage {
 5375         -
            crate::model::EventStreamRegularMessage {
 5376         -
                message_content: self.message_content,
 5377         -
            }
 5378         -
        }
        4049  +
#[allow(missing_docs)] // documentation missing in model
        4050  +
///
        4051  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        4052  +
/// [constraint traits]. Use [`LengthMap::try_from`] to construct values of this type.
        4053  +
///
        4054  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        4055  +
///
        4056  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        4057  +
pub(crate) struct LengthMap(
        4058  +
    pub(crate) ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        4059  +
);
        4060  +
impl LengthMap {
        4061  +
    /// Consumes the value, returning the underlying [`::std::collections::HashMap<::std::string::String, ::std::string::String>`].
        4062  +
    pub fn into_inner(
        4063  +
        self,
        4064  +
    ) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
        4065  +
        self.0
 5379   4066   
    }
 5380   4067   
}
 5381         -
/// See [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
 5382         -
pub mod event_stream_regular_message {
        4068  +
impl
        4069  +
    ::std::convert::TryFrom<
        4070  +
        ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        4071  +
    > for LengthMap
        4072  +
{
        4073  +
    type Error = crate::model::length_map_internal::ConstraintViolation;
 5383   4074   
 5384         -
    impl ::std::convert::From<Builder> for crate::model::EventStreamRegularMessage {
 5385         -
        fn from(builder: Builder) -> Self {
 5386         -
            builder.build()
 5387         -
        }
 5388         -
    }
 5389         -
    /// A builder for [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
 5390         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 5391         -
    pub struct Builder {
 5392         -
        pub(crate) message_content: ::std::option::Option<::std::string::String>,
 5393         -
    }
 5394         -
    impl Builder {
 5395         -
        #[allow(missing_docs)] // documentation missing in model
 5396         -
        pub fn message_content(
 5397         -
            mut self,
 5398         -
            input: ::std::option::Option<::std::string::String>,
 5399         -
        ) -> Self {
 5400         -
            self.message_content = input;
 5401         -
            self
 5402         -
        }
 5403         -
        /// Consumes the builder and constructs a [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
 5404         -
        pub fn build(self) -> crate::model::EventStreamRegularMessage {
 5405         -
            self.build_enforcing_required_and_enum_traits()
 5406         -
        }
 5407         -
        fn build_enforcing_required_and_enum_traits(
 5408         -
            self,
 5409         -
        ) -> crate::model::EventStreamRegularMessage {
 5410         -
            crate::model::EventStreamRegularMessage {
 5411         -
                message_content: self.message_content,
 5412         -
            }
        4075  +
    /// Constructs a `LengthMap` from an [`::std::collections::HashMap<::std::string::String, ::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
        4076  +
    fn try_from(
        4077  +
        value: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        4078  +
    ) -> ::std::result::Result<Self, Self::Error> {
        4079  +
        let length = value.len();
        4080  +
        if (1..=69).contains(&length) {
        4081  +
            Ok(Self(value))
        4082  +
        } else {
        4083  +
            Err(crate::model::length_map_internal::ConstraintViolation::Length(length))
 5413   4084   
        }
 5414   4085   
    }
 5415   4086   
}
 5416         -
pub(crate) mod map_of_enum_string_internal {
 5417   4087   
 5418         -
    #[allow(clippy::enum_variant_names)]
 5419         -
    #[derive(Debug, PartialEq)]
 5420         -
    pub(crate) enum ConstraintViolation {
 5421         -
        #[doc(hidden)]
 5422         -
        Key(crate::model::enum_string_internal::ConstraintViolation),
 5423         -
        #[doc(hidden)]
 5424         -
        Value(
 5425         -
            crate::model::EnumString,
 5426         -
            crate::model::enum_string_internal::ConstraintViolation,
 5427         -
        ),
        4088  +
impl ::std::convert::From<LengthMap>
        4089  +
    for ::std::collections::HashMap<::std::string::String, ::std::string::String>
        4090  +
{
        4091  +
    fn from(value: LengthMap) -> Self {
        4092  +
        value.into_inner()
 5428   4093   
    }
        4094  +
}
        4095  +
impl crate::constrained::Constrained for LengthMap {
        4096  +
    type Unconstrained = crate::unconstrained::length_map_unconstrained::LengthMapUnconstrained;
        4097  +
}
 5429   4098   
 5430         -
    impl ::std::fmt::Display for ConstraintViolation {
 5431         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5432         -
            match self {
 5433         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 5434         -
                Self::Value(_, value_constraint_violation) => {
 5435         -
                    write!(f, "{}", value_constraint_violation)
 5436         -
                }
 5437         -
            }
 5438         -
        }
        4099  +
#[allow(missing_docs)] // documentation missing in model
        4100  +
///
        4101  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        4102  +
/// [constraint traits]. Use [`SparseLengthMap::try_from`] to construct values of this type.
        4103  +
///
        4104  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        4105  +
///
        4106  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        4107  +
pub(crate) struct SparseLengthMap(
        4108  +
    pub(crate)  ::std::collections::HashMap<
        4109  +
        ::std::string::String,
        4110  +
        ::std::option::Option<::std::string::String>,
        4111  +
    >,
        4112  +
);
        4113  +
impl SparseLengthMap {
        4114  +
    /// Consumes the value, returning the underlying [`::std::collections::HashMap<::std::string::String, ::std::option::Option<::std::string::String>>`].
        4115  +
    pub fn into_inner(
        4116  +
        self,
        4117  +
    ) -> ::std::collections::HashMap<
        4118  +
        ::std::string::String,
        4119  +
        ::std::option::Option<::std::string::String>,
        4120  +
    > {
        4121  +
        self.0
 5439   4122   
    }
        4123  +
}
        4124  +
impl
        4125  +
    ::std::convert::TryFrom<
        4126  +
        ::std::collections::HashMap<
        4127  +
            ::std::string::String,
        4128  +
            ::std::option::Option<::std::string::String>,
        4129  +
        >,
        4130  +
    > for SparseLengthMap
        4131  +
{
        4132  +
    type Error = crate::model::sparse_length_map_internal::ConstraintViolation;
 5440   4133   
 5441         -
    impl ::std::error::Error for ConstraintViolation {}
 5442         -
    impl ConstraintViolation {
 5443         -
        pub(crate) fn as_validation_exception_field(
 5444         -
            self,
 5445         -
            path: ::std::string::String,
 5446         -
        ) -> crate::model::ValidationExceptionField {
 5447         -
            match self {
 5448         -
                Self::Key(key_constraint_violation) => {
 5449         -
                    key_constraint_violation.as_validation_exception_field(path)
 5450         -
                }
 5451         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 5452         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 5453         -
            }
        4134  +
    /// Constructs a `SparseLengthMap` from an [`::std::collections::HashMap<::std::string::String, ::std::option::Option<::std::string::String>>`], failing when the provided value does not satisfy the modeled constraints.
        4135  +
    fn try_from(
        4136  +
        value: ::std::collections::HashMap<
        4137  +
            ::std::string::String,
        4138  +
            ::std::option::Option<::std::string::String>,
        4139  +
        >,
        4140  +
    ) -> ::std::result::Result<Self, Self::Error> {
        4141  +
        let length = value.len();
        4142  +
        if 69 <= length {
        4143  +
            Ok(Self(value))
        4144  +
        } else {
        4145  +
            Err(crate::model::sparse_length_map_internal::ConstraintViolation::Length(length))
 5454   4146   
        }
 5455   4147   
    }
 5456   4148   
}
 5457         -
pub(crate) mod con_b_map_internal {
 5458         -
 5459         -
    #[allow(clippy::enum_variant_names)]
 5460         -
    #[derive(Debug, PartialEq)]
 5461         -
    pub(crate) enum ConstraintViolation {
 5462         -
        Length(usize),
 5463   4149   
 5464         -
        #[doc(hidden)]
 5465         -
        Value(
 5466         -
            ::std::string::String,
 5467         -
            crate::model::length_string_internal::ConstraintViolation,
 5468         -
        ),
        4150  +
impl ::std::convert::From<SparseLengthMap>
        4151  +
    for ::std::collections::HashMap<
        4152  +
        ::std::string::String,
        4153  +
        ::std::option::Option<::std::string::String>,
        4154  +
    >
        4155  +
{
        4156  +
    fn from(value: SparseLengthMap) -> Self {
        4157  +
        value.into_inner()
 5469   4158   
    }
        4159  +
}
        4160  +
impl crate::constrained::Constrained for SparseLengthMap {
        4161  +
    type Unconstrained =
        4162  +
        crate::unconstrained::sparse_length_map_unconstrained::SparseLengthMapUnconstrained;
        4163  +
}
 5470   4164   
 5471         -
    impl ::std::fmt::Display for ConstraintViolation {
 5472         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5473         -
            match self {
 5474         -
                Self::Length(length) => {
 5475         -
                    write!(f, "Value with length {} provided for 'com.amazonaws.constraints#ConBMap' failed to satisfy constraint: Member must have length between 1 and 69, inclusive", length)
 5476         -
                }
        4165  +
#[allow(missing_docs)] // documentation missing in model
        4166  +
///
        4167  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        4168  +
/// [constraint traits]. Use [`SparseLengthList::try_from`] to construct values of this type.
        4169  +
///
        4170  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        4171  +
///
        4172  +
#[derive(
        4173  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        4174  +
)]
        4175  +
pub(crate) struct SparseLengthList(
        4176  +
    pub(crate) ::std::vec::Vec<::std::option::Option<::std::string::String>>,
        4177  +
);
        4178  +
impl SparseLengthList {
        4179  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::option::Option<::std::string::String>>`].
        4180  +
    pub fn into_inner(self) -> ::std::vec::Vec<::std::option::Option<::std::string::String>> {
        4181  +
        self.0
        4182  +
    }
 5477   4183   
 5478         -
                Self::Value(_, value_constraint_violation) => {
 5479         -
                    write!(f, "{}", value_constraint_violation)
 5480         -
                }
 5481         -
            }
        4184  +
    fn check_length(
        4185  +
        length: usize,
        4186  +
    ) -> ::std::result::Result<(), crate::model::sparse_length_list_internal::ConstraintViolation>
        4187  +
    {
        4188  +
        if 69 <= length {
        4189  +
            Ok(())
        4190  +
        } else {
        4191  +
            Err(crate::model::sparse_length_list_internal::ConstraintViolation::Length(length))
 5482   4192   
        }
 5483   4193   
    }
        4194  +
}
        4195  +
impl ::std::convert::TryFrom<::std::vec::Vec<::std::option::Option<::std::string::String>>>
        4196  +
    for SparseLengthList
        4197  +
{
        4198  +
    type Error = crate::model::sparse_length_list_internal::ConstraintViolation;
 5484   4199   
 5485         -
    impl ::std::error::Error for ConstraintViolation {}
 5486         -
    impl ConstraintViolation {
 5487         -
        pub(crate) fn as_validation_exception_field(
 5488         -
            self,
 5489         -
            path: ::std::string::String,
 5490         -
        ) -> crate::model::ValidationExceptionField {
 5491         -
            match self {
 5492         -
            Self::Length(length) => crate::model::ValidationExceptionField {
 5493         -
                                        message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 1 and 69, inclusive", length, &path),
 5494         -
                                        path,
 5495         -
                                    },
 5496         -
            Self::Value(key, value_constraint_violation) => value_constraint_violation.as_validation_exception_field(path + "/" + key.as_str()),
 5497         -
        }
 5498         -
        }
        4200  +
    /// Constructs a `SparseLengthList` from an [`::std::vec::Vec<::std::option::Option<::std::string::String>>`], failing when the provided value does not satisfy the modeled constraints.
        4201  +
    fn try_from(
        4202  +
        value: ::std::vec::Vec<::std::option::Option<::std::string::String>>,
        4203  +
    ) -> ::std::result::Result<Self, Self::Error> {
        4204  +
        Self::check_length(value.len())?;
        4205  +
        4206  +
        Ok(Self(value))
 5499   4207   
    }
 5500   4208   
}
 5501         -
pub(crate) mod length_string_internal {
 5502   4209   
 5503         -
    #[derive(Debug, PartialEq)]
 5504         -
    pub enum ConstraintViolation {
 5505         -
        /// Error when a string doesn't satisfy its `@length` requirements.
 5506         -
        Length(usize),
        4210  +
impl ::std::convert::From<SparseLengthList>
        4211  +
    for ::std::vec::Vec<::std::option::Option<::std::string::String>>
        4212  +
{
        4213  +
    fn from(value: SparseLengthList) -> Self {
        4214  +
        value.into_inner()
 5507   4215   
    }
        4216  +
}
        4217  +
impl crate::constrained::Constrained for SparseLengthList {
        4218  +
    type Unconstrained =
        4219  +
        crate::unconstrained::sparse_length_list_unconstrained::SparseLengthListUnconstrained;
        4220  +
}
 5508   4221   
 5509         -
    impl ::std::fmt::Display for ConstraintViolation {
 5510         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5511         -
            let message = match self {
 5512         -
                Self::Length(length) => {
 5513         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthString' failed to satisfy constraint: Member must have length between 2 and 69, inclusive", length)
 5514         -
                }
 5515         -
            };
 5516         -
            write!(f, "{message}")
        4222  +
/// A union with constrained members.
        4223  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        4224  +
pub enum ConstrainedUnion {
        4225  +
    #[allow(missing_docs)] // documentation missing in model
        4226  +
    ConBList(::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>),
        4227  +
    #[allow(missing_docs)] // documentation missing in model
        4228  +
    ConBMap(::std::collections::HashMap<::std::string::String, ::std::string::String>),
        4229  +
    #[allow(missing_docs)] // documentation missing in model
        4230  +
    ConBSet(::std::vec::Vec<::std::vec::Vec<::std::string::String>>),
        4231  +
    #[allow(missing_docs)] // documentation missing in model
        4232  +
    ConstrainedStructure(crate::model::ConB),
        4233  +
    #[allow(missing_docs)] // documentation missing in model
        4234  +
    EnumString(crate::model::EnumString),
        4235  +
    #[allow(missing_docs)] // documentation missing in model
        4236  +
    LengthString(::std::string::String),
        4237  +
}
        4238  +
impl ConstrainedUnion {
        4239  +
    /// Tries to convert the enum instance into [`ConBList`](crate::model::ConstrainedUnion::ConBList), extracting the inner [`Vec`](::std::vec::Vec).
        4240  +
    /// Returns `Err(&Self)` if it can't be converted.
        4241  +
    pub fn as_con_b_list(
        4242  +
        &self,
        4243  +
    ) -> ::std::result::Result<&::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>, &Self> {
        4244  +
        if let ConstrainedUnion::ConBList(val) = &self {
        4245  +
            ::std::result::Result::Ok(val)
        4246  +
        } else {
        4247  +
            ::std::result::Result::Err(self)
 5517   4248   
        }
 5518   4249   
    }
 5519         -
 5520         -
    impl ::std::error::Error for ConstraintViolation {}
 5521         -
    impl ConstraintViolation {
 5522         -
        pub(crate) fn as_validation_exception_field(
 5523         -
            self,
 5524         -
            path: ::std::string::String,
 5525         -
        ) -> crate::model::ValidationExceptionField {
 5526         -
            match self {
 5527         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
 5528         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 2 and 69, inclusive", length, &path),
 5529         -
                            path,
 5530         -
                        },
 5531         -
                        }
        4250  +
    /// Returns true if this is a [`ConBList`](crate::model::ConstrainedUnion::ConBList).
        4251  +
    pub fn is_con_b_list(&self) -> bool {
        4252  +
        self.as_con_b_list().is_ok()
        4253  +
    }
        4254  +
    /// Tries to convert the enum instance into [`ConBMap`](crate::model::ConstrainedUnion::ConBMap), extracting the inner [`HashMap`](::std::collections::HashMap).
        4255  +
    /// Returns `Err(&Self)` if it can't be converted.
        4256  +
    pub fn as_con_b_map(
        4257  +
        &self,
        4258  +
    ) -> ::std::result::Result<
        4259  +
        &::std::collections::HashMap<::std::string::String, ::std::string::String>,
        4260  +
        &Self,
        4261  +
    > {
        4262  +
        if let ConstrainedUnion::ConBMap(val) = &self {
        4263  +
            ::std::result::Result::Ok(val)
        4264  +
        } else {
        4265  +
            ::std::result::Result::Err(self)
 5532   4266   
        }
 5533   4267   
    }
 5534         -
}
 5535         -
pub(crate) mod map_of_list_of_length_pattern_string_internal {
 5536         -
 5537         -
    #[allow(clippy::enum_variant_names)]
 5538         -
    #[derive(Debug, PartialEq)]
 5539         -
    pub(crate) enum ConstraintViolation {
 5540         -
        #[doc(hidden)]
 5541         -
        Key(crate::model::length_pattern_string_internal::ConstraintViolation),
 5542         -
        #[doc(hidden)]
 5543         -
        Value(
 5544         -
            crate::model::LengthPatternString,
 5545         -
            crate::model::list_of_length_pattern_string_internal::ConstraintViolation,
 5546         -
        ),
        4268  +
    /// Returns true if this is a [`ConBMap`](crate::model::ConstrainedUnion::ConBMap).
        4269  +
    pub fn is_con_b_map(&self) -> bool {
        4270  +
        self.as_con_b_map().is_ok()
 5547   4271   
    }
 5548         -
 5549         -
    impl ::std::fmt::Display for ConstraintViolation {
 5550         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5551         -
            match self {
 5552         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 5553         -
                Self::Value(_, value_constraint_violation) => {
 5554         -
                    write!(f, "{}", value_constraint_violation)
 5555         -
                }
 5556         -
            }
        4272  +
    /// Tries to convert the enum instance into [`ConBSet`](crate::model::ConstrainedUnion::ConBSet), extracting the inner [`Vec`](::std::vec::Vec).
        4273  +
    /// Returns `Err(&Self)` if it can't be converted.
        4274  +
    pub fn as_con_b_set(
        4275  +
        &self,
        4276  +
    ) -> ::std::result::Result<&::std::vec::Vec<::std::vec::Vec<::std::string::String>>, &Self>
        4277  +
    {
        4278  +
        if let ConstrainedUnion::ConBSet(val) = &self {
        4279  +
            ::std::result::Result::Ok(val)
        4280  +
        } else {
        4281  +
            ::std::result::Result::Err(self)
 5557   4282   
        }
 5558   4283   
    }
 5559         -
 5560         -
    impl ::std::error::Error for ConstraintViolation {}
 5561         -
    impl ConstraintViolation {
 5562         -
        pub(crate) fn as_validation_exception_field(
 5563         -
            self,
 5564         -
            path: ::std::string::String,
 5565         -
        ) -> crate::model::ValidationExceptionField {
 5566         -
            match self {
 5567         -
                Self::Key(key_constraint_violation) => {
 5568         -
                    key_constraint_violation.as_validation_exception_field(path)
 5569         -
                }
 5570         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 5571         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 5572         -
            }
        4284  +
    /// Returns true if this is a [`ConBSet`](crate::model::ConstrainedUnion::ConBSet).
        4285  +
    pub fn is_con_b_set(&self) -> bool {
        4286  +
        self.as_con_b_set().is_ok()
        4287  +
    }
        4288  +
    /// Tries to convert the enum instance into [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure), extracting the inner [`ConB`](crate::model::ConB).
        4289  +
    /// Returns `Err(&Self)` if it can't be converted.
        4290  +
    pub fn as_constrained_structure(&self) -> ::std::result::Result<&crate::model::ConB, &Self> {
        4291  +
        if let ConstrainedUnion::ConstrainedStructure(val) = &self {
        4292  +
            ::std::result::Result::Ok(val)
        4293  +
        } else {
        4294  +
            ::std::result::Result::Err(self)
 5573   4295   
        }
 5574   4296   
    }
 5575         -
}
 5576         -
pub(crate) mod list_of_length_pattern_string_internal {
 5577         -
 5578         -
    #[allow(clippy::enum_variant_names)]
 5579         -
    #[derive(Debug, PartialEq)]
 5580         -
    pub(crate) enum ConstraintViolation {
 5581         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 5582         -
        /// The first component of the tuple is the index in the collection where the
 5583         -
        /// first constraint violation was found.
 5584         -
        #[doc(hidden)]
 5585         -
        Member(
 5586         -
            usize,
 5587         -
            crate::model::length_pattern_string_internal::ConstraintViolation,
 5588         -
        ),
        4297  +
    /// Returns true if this is a [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure).
        4298  +
    pub fn is_constrained_structure(&self) -> bool {
        4299  +
        self.as_constrained_structure().is_ok()
 5589   4300   
    }
 5590         -
 5591         -
    impl ::std::fmt::Display for ConstraintViolation {
 5592         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5593         -
            let message = match self {
 5594         -
                Self::Member(index, failing_member) => format!(
 5595         -
                    "Value at index {index} failed to satisfy constraint. {}",
 5596         -
                    failing_member
 5597         -
                ),
 5598         -
            };
 5599         -
            write!(f, "{message}")
        4301  +
    /// Tries to convert the enum instance into [`EnumString`](crate::model::ConstrainedUnion::EnumString), extracting the inner [`EnumString`](crate::model::EnumString).
        4302  +
    /// Returns `Err(&Self)` if it can't be converted.
        4303  +
    pub fn as_enum_string(&self) -> ::std::result::Result<&crate::model::EnumString, &Self> {
        4304  +
        if let ConstrainedUnion::EnumString(val) = &self {
        4305  +
            ::std::result::Result::Ok(val)
        4306  +
        } else {
        4307  +
            ::std::result::Result::Err(self)
 5600   4308   
        }
 5601   4309   
    }
 5602         -
 5603         -
    impl ::std::error::Error for ConstraintViolation {}
 5604         -
    impl ConstraintViolation {
 5605         -
        pub(crate) fn as_validation_exception_field(
 5606         -
            self,
 5607         -
            path: ::std::string::String,
 5608         -
        ) -> crate::model::ValidationExceptionField {
 5609         -
            match self {
 5610         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 5611         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 5612         -
            }
        4310  +
    /// Returns true if this is a [`EnumString`](crate::model::ConstrainedUnion::EnumString).
        4311  +
    pub fn is_enum_string(&self) -> bool {
        4312  +
        self.as_enum_string().is_ok()
        4313  +
    }
        4314  +
    /// Tries to convert the enum instance into [`LengthString`](crate::model::ConstrainedUnion::LengthString), extracting the inner [`String`](::std::string::String).
        4315  +
    /// Returns `Err(&Self)` if it can't be converted.
        4316  +
    pub fn as_length_string(&self) -> ::std::result::Result<&::std::string::String, &Self> {
        4317  +
        if let ConstrainedUnion::LengthString(val) = &self {
        4318  +
            ::std::result::Result::Ok(val)
        4319  +
        } else {
        4320  +
            ::std::result::Result::Err(self)
 5613   4321   
        }
 5614   4322   
    }
        4323  +
    /// Returns true if this is a [`LengthString`](crate::model::ConstrainedUnion::LengthString).
        4324  +
    pub fn is_length_string(&self) -> bool {
        4325  +
        self.as_length_string().is_ok()
        4326  +
    }
 5615   4327   
}
 5616         -
pub(crate) mod length_pattern_string_internal {
 5617         -
 5618         -
    #[derive(Debug, PartialEq)]
 5619         -
    pub enum ConstraintViolation {
 5620         -
        /// Error when a string doesn't satisfy its `@length` requirements.
 5621         -
        Length(usize),
 5622         -
        /// Error when a string doesn't satisfy its `@pattern`.
 5623         -
        /// Contains the String that failed the pattern.
 5624         -
        Pattern(String),
        4328  +
#[pyo3::pyclass(name = "ConstrainedUnion")]
        4329  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug)]
        4330  +
pub struct PyUnionMarkerConstrainedUnion(pub ConstrainedUnion);
        4331  +
#[::pyo3::pymethods]
        4332  +
impl PyUnionMarkerConstrainedUnion {
        4333  +
    #[staticmethod]
        4334  +
    /// Creates a new union instance of [`ConBList`](crate::model::ConstrainedUnion::ConBList)
        4335  +
    /// :param data typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]:
        4336  +
    /// :rtype ConstrainedUnion:
        4337  +
    pub fn con_b_list(data: ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>) -> Self {
        4338  +
        Self(ConstrainedUnion::ConBList(data))
 5625   4339   
    }
 5626         -
 5627         -
    impl ::std::fmt::Display for ConstraintViolation {
 5628         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5629         -
            let message = match self {
 5630         -
                Self::Length(length) => {
 5631         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthPatternString' failed to satisfy constraint: Member must have length between 5 and 10, inclusive", length)
 5632         -
                }
 5633         -
                Self::Pattern(_) => {
 5634         -
                    format!(
 5635         -
                        r#"Value provided for `com.amazonaws.constraints#LengthPatternString` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 5636         -
                        r#"[a-f0-5]*"#
 5637         -
                    )
 5638         -
                }
 5639         -
            };
 5640         -
            write!(f, "{message}")
        4340  +
    /// Tries to convert the enum instance into [`ConBList`](crate::model::ConstrainedUnion::ConBList), extracting the inner [`Vec`](::std::vec::Vec).
        4341  +
    /// :rtype typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]:
        4342  +
    pub fn as_con_b_list(
        4343  +
        &self,
        4344  +
    ) -> ::pyo3::PyResult<::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>> {
        4345  +
        match self.0.as_con_b_list() {
        4346  +
            Ok(variant) => Ok(variant.clone()),
        4347  +
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
        4348  +
                r"ConstrainedUnion variant is not of type typing.List\[typing.List\[constraints_without_public_constrained_types.model.ConB\]\]",
        4349  +
            )),
 5641   4350   
        }
 5642   4351   
    }
 5643         -
 5644         -
    impl ::std::error::Error for ConstraintViolation {}
 5645         -
    impl ConstraintViolation {
 5646         -
        pub(crate) fn as_validation_exception_field(
 5647         -
            self,
 5648         -
            path: ::std::string::String,
 5649         -
        ) -> crate::model::ValidationExceptionField {
 5650         -
            match self {
 5651         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
 5652         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 5 and 10, inclusive", length, &path),
 5653         -
                            path,
 5654         -
                        },
 5655         -
    
 5656         -
    #[allow(unused_variables)]
 5657         -
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 5658         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"[a-f0-5]*"#),
 5659         -
                            path
 5660         -
                        },
 5661         -
                        }
        4352  +
    /// Returns true if this is a [`ConBList`](crate::model::ConstrainedUnion::ConBList).
        4353  +
    /// :rtype bool:
        4354  +
    pub fn is_con_b_list(&self) -> bool {
        4355  +
        self.0.is_con_b_list()
        4356  +
    }
        4357  +
    #[staticmethod]
        4358  +
    /// Creates a new union instance of [`ConBMap`](crate::model::ConstrainedUnion::ConBMap)
        4359  +
    /// :param data typing.Dict\[str, str\]:
        4360  +
    /// :rtype ConstrainedUnion:
        4361  +
    pub fn con_b_map(
        4362  +
        data: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        4363  +
    ) -> Self {
        4364  +
        Self(ConstrainedUnion::ConBMap(data))
        4365  +
    }
        4366  +
    /// Tries to convert the enum instance into [`ConBMap`](crate::model::ConstrainedUnion::ConBMap), extracting the inner [`HashMap`](::std::collections::HashMap).
        4367  +
    /// :rtype typing.Dict\[str, str\]:
        4368  +
    pub fn as_con_b_map(
        4369  +
        &self,
        4370  +
    ) -> ::pyo3::PyResult<::std::collections::HashMap<::std::string::String, ::std::string::String>>
        4371  +
    {
        4372  +
        match self.0.as_con_b_map() {
        4373  +
            Ok(variant) => Ok(variant.clone()),
        4374  +
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
        4375  +
                r"ConstrainedUnion variant is not of type typing.Dict\[str, str\]",
        4376  +
            )),
 5662   4377   
        }
 5663   4378   
    }
 5664         -
}
 5665         -
pub(crate) mod map_of_length_pattern_string_internal {
 5666         -
 5667         -
    #[allow(clippy::enum_variant_names)]
 5668         -
    #[derive(Debug, PartialEq)]
 5669         -
    pub(crate) enum ConstraintViolation {
 5670         -
        #[doc(hidden)]
 5671         -
        Key(crate::model::length_pattern_string_internal::ConstraintViolation),
 5672         -
        #[doc(hidden)]
 5673         -
        Value(
 5674         -
            crate::model::LengthPatternString,
 5675         -
            crate::model::length_pattern_string_internal::ConstraintViolation,
 5676         -
        ),
        4379  +
    /// Returns true if this is a [`ConBMap`](crate::model::ConstrainedUnion::ConBMap).
        4380  +
    /// :rtype bool:
        4381  +
    pub fn is_con_b_map(&self) -> bool {
        4382  +
        self.0.is_con_b_map()
 5677   4383   
    }
 5678         -
 5679         -
    impl ::std::fmt::Display for ConstraintViolation {
 5680         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5681         -
            match self {
 5682         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 5683         -
                Self::Value(_, value_constraint_violation) => {
 5684         -
                    write!(f, "{}", value_constraint_violation)
 5685         -
                }
 5686         -
            }
        4384  +
    #[staticmethod]
        4385  +
    /// Creates a new union instance of [`ConBSet`](crate::model::ConstrainedUnion::ConBSet)
        4386  +
    /// :param data typing.List\[typing.Set\[str\]\]:
        4387  +
    /// :rtype ConstrainedUnion:
        4388  +
    pub fn con_b_set(data: ::std::vec::Vec<::std::vec::Vec<::std::string::String>>) -> Self {
        4389  +
        Self(ConstrainedUnion::ConBSet(data))
        4390  +
    }
        4391  +
    /// Tries to convert the enum instance into [`ConBSet`](crate::model::ConstrainedUnion::ConBSet), extracting the inner [`Vec`](::std::vec::Vec).
        4392  +
    /// :rtype typing.List\[typing.Set\[str\]\]:
        4393  +
    pub fn as_con_b_set(
        4394  +
        &self,
        4395  +
    ) -> ::pyo3::PyResult<::std::vec::Vec<::std::vec::Vec<::std::string::String>>> {
        4396  +
        match self.0.as_con_b_set() {
        4397  +
            Ok(variant) => Ok(variant.clone()),
        4398  +
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
        4399  +
                r"ConstrainedUnion variant is not of type typing.List\[typing.Set\[str\]\]",
        4400  +
            )),
 5687   4401   
        }
 5688   4402   
    }
 5689         -
 5690         -
    impl ::std::error::Error for ConstraintViolation {}
 5691         -
    impl ConstraintViolation {
 5692         -
        pub(crate) fn as_validation_exception_field(
 5693         -
            self,
 5694         -
            path: ::std::string::String,
 5695         -
        ) -> crate::model::ValidationExceptionField {
 5696         -
            match self {
 5697         -
                Self::Key(key_constraint_violation) => {
 5698         -
                    key_constraint_violation.as_validation_exception_field(path)
 5699         -
                }
 5700         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 5701         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 5702         -
            }
        4403  +
    /// Returns true if this is a [`ConBSet`](crate::model::ConstrainedUnion::ConBSet).
        4404  +
    /// :rtype bool:
        4405  +
    pub fn is_con_b_set(&self) -> bool {
        4406  +
        self.0.is_con_b_set()
        4407  +
    }
        4408  +
    #[staticmethod]
        4409  +
    /// Creates a new union instance of [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure)
        4410  +
    /// :param data constraints_without_public_constrained_types.model.ConB:
        4411  +
    /// :rtype ConstrainedUnion:
        4412  +
    pub fn constrained_structure(data: crate::model::ConB) -> Self {
        4413  +
        Self(ConstrainedUnion::ConstrainedStructure(data))
        4414  +
    }
        4415  +
    /// Tries to convert the enum instance into [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure), extracting the inner [`ConB`](crate::model::ConB).
        4416  +
    /// :rtype constraints_without_public_constrained_types.model.ConB:
        4417  +
    pub fn as_constrained_structure(&self) -> ::pyo3::PyResult<crate::model::ConB> {
        4418  +
        match self.0.as_constrained_structure() {
        4419  +
            Ok(variant) => Ok(variant.clone()),
        4420  +
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
        4421  +
                r"ConstrainedUnion variant is not of type constraints_without_public_constrained_types.model.ConB",
        4422  +
            )),
 5703   4423   
        }
 5704   4424   
    }
 5705         -
}
 5706         -
pub(crate) mod map_of_list_of_pattern_string_internal {
 5707         -
 5708         -
    #[allow(clippy::enum_variant_names)]
 5709         -
    #[derive(Debug, PartialEq)]
 5710         -
    pub(crate) enum ConstraintViolation {
 5711         -
        #[doc(hidden)]
 5712         -
        Key(crate::model::pattern_string_internal::ConstraintViolation),
 5713         -
        #[doc(hidden)]
 5714         -
        Value(
 5715         -
            crate::model::PatternString,
 5716         -
            crate::model::list_of_pattern_string_internal::ConstraintViolation,
 5717         -
        ),
        4425  +
    /// Returns true if this is a [`ConstrainedStructure`](crate::model::ConstrainedUnion::ConstrainedStructure).
        4426  +
    /// :rtype bool:
        4427  +
    pub fn is_constrained_structure(&self) -> bool {
        4428  +
        self.0.is_constrained_structure()
 5718   4429   
    }
 5719         -
 5720         -
    impl ::std::fmt::Display for ConstraintViolation {
 5721         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5722         -
            match self {
 5723         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 5724         -
                Self::Value(_, value_constraint_violation) => {
 5725         -
                    write!(f, "{}", value_constraint_violation)
 5726         -
                }
 5727         -
            }
        4430  +
    #[staticmethod]
        4431  +
    /// Creates a new union instance of [`EnumString`](crate::model::ConstrainedUnion::EnumString)
        4432  +
    /// :param data constraints_without_public_constrained_types.model.EnumString:
        4433  +
    /// :rtype ConstrainedUnion:
        4434  +
    pub fn enum_string(data: crate::model::EnumString) -> Self {
        4435  +
        Self(ConstrainedUnion::EnumString(data))
        4436  +
    }
        4437  +
    /// Tries to convert the enum instance into [`EnumString`](crate::model::ConstrainedUnion::EnumString), extracting the inner [`EnumString`](crate::model::EnumString).
        4438  +
    /// :rtype constraints_without_public_constrained_types.model.EnumString:
        4439  +
    pub fn as_enum_string(&self) -> ::pyo3::PyResult<crate::model::EnumString> {
        4440  +
        match self.0.as_enum_string() {
        4441  +
            Ok(variant) => Ok(variant.clone()),
        4442  +
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
        4443  +
                r"ConstrainedUnion variant is not of type constraints_without_public_constrained_types.model.EnumString",
        4444  +
            )),
 5728   4445   
        }
 5729   4446   
    }
 5730         -
 5731         -
    impl ::std::error::Error for ConstraintViolation {}
 5732         -
    impl ConstraintViolation {
 5733         -
        pub(crate) fn as_validation_exception_field(
 5734         -
            self,
 5735         -
            path: ::std::string::String,
 5736         -
        ) -> crate::model::ValidationExceptionField {
 5737         -
            match self {
 5738         -
                Self::Key(key_constraint_violation) => {
 5739         -
                    key_constraint_violation.as_validation_exception_field(path)
 5740         -
                }
 5741         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 5742         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 5743         -
            }
        4447  +
    /// Returns true if this is a [`EnumString`](crate::model::ConstrainedUnion::EnumString).
        4448  +
    /// :rtype bool:
        4449  +
    pub fn is_enum_string(&self) -> bool {
        4450  +
        self.0.is_enum_string()
        4451  +
    }
        4452  +
    #[staticmethod]
        4453  +
    /// Creates a new union instance of [`LengthString`](crate::model::ConstrainedUnion::LengthString)
        4454  +
    /// :param data str:
        4455  +
    /// :rtype ConstrainedUnion:
        4456  +
    pub fn length_string(data: ::std::string::String) -> Self {
        4457  +
        Self(ConstrainedUnion::LengthString(data))
        4458  +
    }
        4459  +
    /// Tries to convert the enum instance into [`LengthString`](crate::model::ConstrainedUnion::LengthString), extracting the inner [`String`](::std::string::String).
        4460  +
    /// :rtype str:
        4461  +
    pub fn as_length_string(&self) -> ::pyo3::PyResult<::std::string::String> {
        4462  +
        match self.0.as_length_string() {
        4463  +
            Ok(variant) => Ok(variant.clone()),
        4464  +
            Err(_) => Err(::pyo3::exceptions::PyValueError::new_err(
        4465  +
                r"ConstrainedUnion variant is not of type str",
        4466  +
            )),
 5744   4467   
        }
 5745   4468   
    }
        4469  +
    /// Returns true if this is a [`LengthString`](crate::model::ConstrainedUnion::LengthString).
        4470  +
    /// :rtype bool:
        4471  +
    pub fn is_length_string(&self) -> bool {
        4472  +
        self.0.is_length_string()
        4473  +
    }
        4474  +
}
        4475  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for ConstrainedUnion {
        4476  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        4477  +
        PyUnionMarkerConstrainedUnion(self).into_py(py)
        4478  +
    }
        4479  +
}
        4480  +
impl<'source> ::pyo3::FromPyObject<'source> for ConstrainedUnion {
        4481  +
    fn extract(obj: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        4482  +
        let data: PyUnionMarkerConstrainedUnion = obj.extract()?;
        4483  +
        Ok(data.0)
        4484  +
    }
 5746   4485   
}
 5747         -
pub(crate) mod list_of_pattern_string_internal {
 5748   4486   
 5749         -
    #[allow(clippy::enum_variant_names)]
 5750         -
    #[derive(Debug, PartialEq)]
 5751         -
    pub(crate) enum ConstraintViolation {
 5752         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 5753         -
        /// The first component of the tuple is the index in the collection where the
 5754         -
        /// first constraint violation was found.
 5755         -
        #[doc(hidden)]
 5756         -
        Member(
 5757         -
            usize,
 5758         -
            crate::model::pattern_string_internal::ConstraintViolation,
 5759         -
        ),
        4487  +
#[allow(missing_docs)] // documentation missing in model
        4488  +
///
        4489  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        4490  +
/// [constraint traits]. Use [`PatternString::try_from`] to construct values of this type.
        4491  +
///
        4492  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        4493  +
///
        4494  +
#[derive(
        4495  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        4496  +
)]
        4497  +
pub(crate) struct PatternString(pub(crate) ::std::string::String);
        4498  +
#[allow(dead_code)]
        4499  +
impl PatternString {
        4500  +
    /// Extracts a string slice containing the entire underlying `String`.
        4501  +
    pub fn as_str(&self) -> &str {
        4502  +
        &self.0
 5760   4503   
    }
 5761   4504   
 5762         -
    impl ::std::fmt::Display for ConstraintViolation {
 5763         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5764         -
            let message = match self {
 5765         -
                Self::Member(index, failing_member) => format!(
 5766         -
                    "Value at index {index} failed to satisfy constraint. {}",
 5767         -
                    failing_member
 5768         -
                ),
 5769         -
            };
 5770         -
            write!(f, "{message}")
 5771         -
        }
        4505  +
    /// Returns an immutable reference to the underlying [`::std::string::String`].
        4506  +
    pub fn inner(&self) -> &::std::string::String {
        4507  +
        &self.0
 5772   4508   
    }
 5773   4509   
 5774         -
    impl ::std::error::Error for ConstraintViolation {}
 5775         -
    impl ConstraintViolation {
 5776         -
        pub(crate) fn as_validation_exception_field(
 5777         -
            self,
 5778         -
            path: ::std::string::String,
 5779         -
        ) -> crate::model::ValidationExceptionField {
 5780         -
            match self {
 5781         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 5782         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 5783         -
            }
 5784         -
        }
        4510  +
    /// Consumes the value, returning the underlying [`::std::string::String`].
        4511  +
    pub fn into_inner(self) -> ::std::string::String {
        4512  +
        self.0
 5785   4513   
    }
 5786   4514   
}
 5787         -
pub(crate) mod pattern_string_internal {
        4515  +
impl PatternString {
        4516  +
    fn check_pattern(
        4517  +
        string: ::std::string::String,
        4518  +
    ) -> ::std::result::Result<
        4519  +
        ::std::string::String,
        4520  +
        crate::model::pattern_string_internal::ConstraintViolation,
        4521  +
    > {
        4522  +
        let regex = Self::compile_regex();
 5788   4523   
 5789         -
    #[derive(Debug, PartialEq)]
 5790         -
    pub enum ConstraintViolation {
 5791         -
        /// Error when a string doesn't satisfy its `@pattern`.
 5792         -
        /// Contains the String that failed the pattern.
 5793         -
        Pattern(String),
        4524  +
        if regex.is_match(&string) {
        4525  +
            Ok(string)
        4526  +
        } else {
        4527  +
            Err(crate::model::pattern_string_internal::ConstraintViolation::Pattern(string))
        4528  +
        }
 5794   4529   
    }
 5795   4530   
 5796         -
    impl ::std::fmt::Display for ConstraintViolation {
 5797         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5798         -
            let message = match self {
 5799         -
                Self::Pattern(_) => {
 5800         -
                    format!(
 5801         -
                        r#"Value provided for `com.amazonaws.constraints#PatternString` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 5802         -
                        r#"[a-d]{5}"#
 5803         -
                    )
 5804         -
                }
 5805         -
            };
 5806         -
            write!(f, "{message}")
 5807         -
        }
        4531  +
    /// Attempts to compile the regex for this constrained type's `@pattern`.
        4532  +
    /// This can fail if the specified regex is not supported by the `::regex` crate.
        4533  +
    pub fn compile_regex() -> &'static ::regex::Regex {
        4534  +
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
        4535  +
            ::regex::Regex::new(r#"[a-d]{5}"#).expect(r#"The regular expression [a-d]{5} is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
        4536  +
        });
        4537  +
        4538  +
        &REGEX
 5808   4539   
    }
        4540  +
}
        4541  +
impl ::std::convert::TryFrom<::std::string::String> for PatternString {
        4542  +
    type Error = crate::model::pattern_string_internal::ConstraintViolation;
 5809   4543   
 5810         -
    impl ::std::error::Error for ConstraintViolation {}
 5811         -
    impl ConstraintViolation {
 5812         -
        pub(crate) fn as_validation_exception_field(
 5813         -
            self,
 5814         -
            path: ::std::string::String,
 5815         -
        ) -> crate::model::ValidationExceptionField {
 5816         -
            match self {
 5817         -
                            #[allow(unused_variables)]
 5818         -
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 5819         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"[a-d]{5}"#),
 5820         -
                            path
 5821         -
                        },
 5822         -
                        }
 5823         -
        }
        4544  +
    /// Constructs a `PatternString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
        4545  +
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
        4546  +
        let value = Self::check_pattern(value)?;
        4547  +
        4548  +
        Ok(Self(value))
 5824   4549   
    }
 5825   4550   
}
 5826         -
pub(crate) mod map_of_pattern_string_internal {
        4551  +
impl crate::constrained::Constrained for PatternString {
        4552  +
    type Unconstrained = ::std::string::String;
        4553  +
}
 5827   4554   
 5828         -
    #[allow(clippy::enum_variant_names)]
 5829         -
    #[derive(Debug, PartialEq)]
 5830         -
    pub(crate) enum ConstraintViolation {
 5831         -
        #[doc(hidden)]
 5832         -
        Key(crate::model::pattern_string_internal::ConstraintViolation),
 5833         -
        #[doc(hidden)]
 5834         -
        Value(
 5835         -
            crate::model::PatternString,
 5836         -
            crate::model::pattern_string_internal::ConstraintViolation,
 5837         -
        ),
        4555  +
impl ::std::convert::From<::std::string::String>
        4556  +
    for crate::constrained::MaybeConstrained<crate::model::PatternString>
        4557  +
{
        4558  +
    fn from(value: ::std::string::String) -> Self {
        4559  +
        Self::Unconstrained(value)
 5838   4560   
    }
        4561  +
}
 5839   4562   
 5840         -
    impl ::std::fmt::Display for ConstraintViolation {
 5841         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5842         -
            match self {
 5843         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 5844         -
                Self::Value(_, value_constraint_violation) => {
 5845         -
                    write!(f, "{}", value_constraint_violation)
 5846         -
                }
 5847         -
            }
 5848         -
        }
        4563  +
impl ::std::fmt::Display for PatternString {
        4564  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        4565  +
        self.0.fmt(f)
 5849   4566   
    }
        4567  +
}
 5850   4568   
 5851         -
    impl ::std::error::Error for ConstraintViolation {}
 5852         -
    impl ConstraintViolation {
 5853         -
        pub(crate) fn as_validation_exception_field(
 5854         -
            self,
 5855         -
            path: ::std::string::String,
 5856         -
        ) -> crate::model::ValidationExceptionField {
 5857         -
            match self {
 5858         -
                Self::Key(key_constraint_violation) => {
 5859         -
                    key_constraint_violation.as_validation_exception_field(path)
 5860         -
                }
 5861         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 5862         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 5863         -
            }
 5864         -
        }
        4569  +
impl ::std::convert::From<PatternString> for ::std::string::String {
        4570  +
    fn from(value: PatternString) -> Self {
        4571  +
        value.into_inner()
 5865   4572   
    }
 5866   4573   
}
 5867         -
pub(crate) mod map_of_list_of_enum_string_internal {
 5868   4574   
 5869         -
    #[allow(clippy::enum_variant_names)]
 5870         -
    #[derive(Debug, PartialEq)]
 5871         -
    pub(crate) enum ConstraintViolation {
 5872         -
        #[doc(hidden)]
 5873         -
        Key(crate::model::enum_string_internal::ConstraintViolation),
 5874         -
        #[doc(hidden)]
 5875         -
        Value(
 5876         -
            crate::model::EnumString,
 5877         -
            crate::model::list_of_enum_string_internal::ConstraintViolation,
 5878         -
        ),
        4575  +
#[cfg(test)]
        4576  +
mod test_pattern_string {
        4577  +
    #[test]
        4578  +
    fn regex_compiles() {
        4579  +
        crate::model::PatternString::compile_regex();
 5879   4580   
    }
        4581  +
}
 5880   4582   
 5881         -
    impl ::std::fmt::Display for ConstraintViolation {
 5882         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5883         -
            match self {
 5884         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 5885         -
                Self::Value(_, value_constraint_violation) => {
 5886         -
                    write!(f, "{}", value_constraint_violation)
 5887         -
                }
 5888         -
            }
 5889         -
        }
        4583  +
#[allow(missing_docs)] // documentation missing in model
        4584  +
///
        4585  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        4586  +
/// [constraint traits]. Use [`SetOfPatternString::try_from`] to construct values of this type.
        4587  +
///
        4588  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        4589  +
///
        4590  +
#[derive(
        4591  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        4592  +
)]
        4593  +
pub(crate) struct SetOfPatternString(pub(crate) ::std::vec::Vec<crate::model::PatternString>);
        4594  +
impl SetOfPatternString {
        4595  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::PatternString>`].
        4596  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::PatternString> {
        4597  +
        self.0
 5890   4598   
    }
 5891   4599   
 5892         -
    impl ::std::error::Error for ConstraintViolation {}
 5893         -
    impl ConstraintViolation {
 5894         -
        pub(crate) fn as_validation_exception_field(
 5895         -
            self,
 5896         -
            path: ::std::string::String,
 5897         -
        ) -> crate::model::ValidationExceptionField {
 5898         -
            match self {
 5899         -
                Self::Key(key_constraint_violation) => {
 5900         -
                    key_constraint_violation.as_validation_exception_field(path)
 5901         -
                }
 5902         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 5903         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
        4600  +
    fn check_unique_items(
        4601  +
        items: ::std::vec::Vec<crate::model::PatternString>,
        4602  +
    ) -> ::std::result::Result<
        4603  +
        ::std::vec::Vec<crate::model::PatternString>,
        4604  +
        crate::model::set_of_pattern_string_internal::ConstraintViolation,
        4605  +
    > {
        4606  +
        let mut seen = ::std::collections::HashMap::new();
        4607  +
        let mut duplicate_indices = ::std::vec::Vec::new();
        4608  +
        for (idx, item) in items.iter().enumerate() {
        4609  +
            if let Some(prev_idx) = seen.insert(item, idx) {
        4610  +
                duplicate_indices.push(prev_idx);
        4611  +
            }
        4612  +
        }
        4613  +
        4614  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
        4615  +
        for idx in &duplicate_indices {
        4616  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
        4617  +
                last_duplicate_indices.push(prev_idx);
 5904   4618   
            }
 5905   4619   
        }
        4620  +
        duplicate_indices.extend(last_duplicate_indices);
        4621  +
        4622  +
        if !duplicate_indices.is_empty() {
        4623  +
            debug_assert!(duplicate_indices.len() >= 2);
        4624  +
            Err(
        4625  +
                crate::model::set_of_pattern_string_internal::ConstraintViolation::UniqueItems {
        4626  +
                    duplicate_indices,
        4627  +
                    original: items,
        4628  +
                },
        4629  +
            )
        4630  +
        } else {
        4631  +
            Ok(items)
        4632  +
        }
 5906   4633   
    }
 5907   4634   
}
 5908         -
pub(crate) mod list_of_enum_string_internal {
        4635  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::PatternString>> for SetOfPatternString {
        4636  +
    type Error = crate::model::set_of_pattern_string_internal::ConstraintViolation;
 5909   4637   
 5910         -
    #[allow(clippy::enum_variant_names)]
 5911         -
    #[derive(Debug, PartialEq)]
 5912         -
    pub(crate) enum ConstraintViolation {
 5913         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 5914         -
        /// The first component of the tuple is the index in the collection where the
 5915         -
        /// first constraint violation was found.
 5916         -
        #[doc(hidden)]
 5917         -
        Member(
 5918         -
            usize,
 5919         -
            crate::model::enum_string_internal::ConstraintViolation,
 5920         -
        ),
 5921         -
    }
        4638  +
    /// Constructs a `SetOfPatternString` from an [`::std::vec::Vec<crate::model::PatternString>`], failing when the provided value does not satisfy the modeled constraints.
        4639  +
    fn try_from(
        4640  +
        value: ::std::vec::Vec<crate::model::PatternString>,
        4641  +
    ) -> ::std::result::Result<Self, Self::Error> {
        4642  +
        let value = Self::check_unique_items(value)?;
 5922   4643   
 5923         -
    impl ::std::fmt::Display for ConstraintViolation {
 5924         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5925         -
            let message = match self {
 5926         -
                Self::Member(index, failing_member) => format!(
 5927         -
                    "Value at index {index} failed to satisfy constraint. {}",
 5928         -
                    failing_member
 5929         -
                ),
 5930         -
            };
 5931         -
            write!(f, "{message}")
 5932         -
        }
        4644  +
        Ok(Self(value))
 5933   4645   
    }
        4646  +
}
 5934   4647   
 5935         -
    impl ::std::error::Error for ConstraintViolation {}
 5936         -
    impl ConstraintViolation {
 5937         -
        pub(crate) fn as_validation_exception_field(
 5938         -
            self,
 5939         -
            path: ::std::string::String,
 5940         -
        ) -> crate::model::ValidationExceptionField {
 5941         -
            match self {
 5942         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 5943         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 5944         -
            }
 5945         -
        }
        4648  +
impl ::std::convert::From<SetOfPatternString> for ::std::vec::Vec<crate::model::PatternString> {
        4649  +
    fn from(value: SetOfPatternString) -> Self {
        4650  +
        value.into_inner()
 5946   4651   
    }
 5947   4652   
}
 5948         -
pub(crate) mod map_of_length_list_of_pattern_string_internal {
        4653  +
impl ::std::convert::From<SetOfPatternString> for ::std::vec::Vec<::std::string::String> {
        4654  +
    fn from(value: SetOfPatternString) -> Self {
        4655  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
        4656  +
    }
        4657  +
}
        4658  +
impl crate::constrained::Constrained for SetOfPatternString {
        4659  +
    type Unconstrained =
        4660  +
        crate::unconstrained::set_of_pattern_string_unconstrained::SetOfPatternStringUnconstrained;
        4661  +
}
 5949   4662   
 5950         -
    #[allow(clippy::enum_variant_names)]
 5951         -
    #[derive(Debug, PartialEq)]
 5952         -
    pub(crate) enum ConstraintViolation {
 5953         -
        #[doc(hidden)]
 5954         -
        Key(crate::model::pattern_string_internal::ConstraintViolation),
 5955         -
        #[doc(hidden)]
 5956         -
        Value(
 5957         -
            crate::model::PatternString,
 5958         -
            crate::model::length_list_of_pattern_string_internal::ConstraintViolation,
 5959         -
        ),
        4663  +
#[allow(missing_docs)] // documentation missing in model
        4664  +
///
        4665  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        4666  +
/// [constraint traits]. Use [`LengthPatternString::try_from`] to construct values of this type.
        4667  +
///
        4668  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        4669  +
///
        4670  +
#[derive(
        4671  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        4672  +
)]
        4673  +
pub(crate) struct LengthPatternString(pub(crate) ::std::string::String);
        4674  +
#[allow(dead_code)]
        4675  +
impl LengthPatternString {
        4676  +
    /// Extracts a string slice containing the entire underlying `String`.
        4677  +
    pub fn as_str(&self) -> &str {
        4678  +
        &self.0
 5960   4679   
    }
 5961   4680   
 5962         -
    impl ::std::fmt::Display for ConstraintViolation {
 5963         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 5964         -
            match self {
 5965         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 5966         -
                Self::Value(_, value_constraint_violation) => {
 5967         -
                    write!(f, "{}", value_constraint_violation)
 5968         -
                }
 5969         -
            }
 5970         -
        }
        4681  +
    /// Returns an immutable reference to the underlying [`::std::string::String`].
        4682  +
    pub fn inner(&self) -> &::std::string::String {
        4683  +
        &self.0
 5971   4684   
    }
 5972   4685   
 5973         -
    impl ::std::error::Error for ConstraintViolation {}
 5974         -
    impl ConstraintViolation {
 5975         -
        pub(crate) fn as_validation_exception_field(
 5976         -
            self,
 5977         -
            path: ::std::string::String,
 5978         -
        ) -> crate::model::ValidationExceptionField {
 5979         -
            match self {
 5980         -
                Self::Key(key_constraint_violation) => {
 5981         -
                    key_constraint_violation.as_validation_exception_field(path)
 5982         -
                }
 5983         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 5984         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 5985         -
            }
 5986         -
        }
        4686  +
    /// Consumes the value, returning the underlying [`::std::string::String`].
        4687  +
    pub fn into_inner(self) -> ::std::string::String {
        4688  +
        self.0
 5987   4689   
    }
 5988   4690   
}
 5989         -
pub(crate) mod length_list_of_pattern_string_internal {
        4691  +
impl LengthPatternString {
        4692  +
    fn check_length(
        4693  +
        string: &str,
        4694  +
    ) -> ::std::result::Result<(), crate::model::length_pattern_string_internal::ConstraintViolation>
        4695  +
    {
        4696  +
        let length = string.chars().count();
 5990   4697   
 5991         -
    #[allow(clippy::enum_variant_names)]
 5992         -
    #[derive(Debug, PartialEq)]
 5993         -
    pub(crate) enum ConstraintViolation {
 5994         -
        /// Constraint violation error when the list doesn't have the required length
 5995         -
        Length(usize),
 5996         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 5997         -
        /// The first component of the tuple is the index in the collection where the
 5998         -
        /// first constraint violation was found.
 5999         -
        #[doc(hidden)]
 6000         -
        Member(
 6001         -
            usize,
 6002         -
            crate::model::pattern_string_internal::ConstraintViolation,
 6003         -
        ),
        4698  +
        if (5..=10).contains(&length) {
        4699  +
            Ok(())
        4700  +
        } else {
        4701  +
            Err(crate::model::length_pattern_string_internal::ConstraintViolation::Length(length))
        4702  +
        }
 6004   4703   
    }
 6005   4704   
 6006         -
    impl ::std::fmt::Display for ConstraintViolation {
 6007         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6008         -
            let message = match self {
 6009         -
                Self::Length(length) => {
 6010         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthListOfPatternString' failed to satisfy constraint: Member must have length between 12 and 39, inclusive", length)
 6011         -
                }
 6012         -
                Self::Member(index, failing_member) => format!(
 6013         -
                    "Value at index {index} failed to satisfy constraint. {}",
 6014         -
                    failing_member
 6015         -
                ),
 6016         -
            };
 6017         -
            write!(f, "{message}")
        4705  +
    fn check_pattern(
        4706  +
        string: ::std::string::String,
        4707  +
    ) -> ::std::result::Result<
        4708  +
        ::std::string::String,
        4709  +
        crate::model::length_pattern_string_internal::ConstraintViolation,
        4710  +
    > {
        4711  +
        let regex = Self::compile_regex();
        4712  +
        4713  +
        if regex.is_match(&string) {
        4714  +
            Ok(string)
        4715  +
        } else {
        4716  +
            Err(crate::model::length_pattern_string_internal::ConstraintViolation::Pattern(string))
 6018   4717   
        }
 6019   4718   
    }
 6020   4719   
 6021         -
    impl ::std::error::Error for ConstraintViolation {}
 6022         -
    impl ConstraintViolation {
 6023         -
        pub(crate) fn as_validation_exception_field(
 6024         -
            self,
 6025         -
            path: ::std::string::String,
 6026         -
        ) -> crate::model::ValidationExceptionField {
 6027         -
            match self {
 6028         -
                        Self::Length(length) => crate::model::ValidationExceptionField {
 6029         -
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 12 and 39, inclusive", length, &path),
 6030         -
                                path,
 6031         -
                            },
 6032         -
    Self::Member(index, member_constraint_violation) =>
 6033         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 6034         -
                    }
 6035         -
        }
        4720  +
    /// Attempts to compile the regex for this constrained type's `@pattern`.
        4721  +
    /// This can fail if the specified regex is not supported by the `::regex` crate.
        4722  +
    pub fn compile_regex() -> &'static ::regex::Regex {
        4723  +
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
        4724  +
            ::regex::Regex::new(r#"[a-f0-5]*"#).expect(r#"The regular expression [a-f0-5]* is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
        4725  +
        });
        4726  +
        4727  +
        &REGEX
 6036   4728   
    }
 6037   4729   
}
 6038         -
pub(crate) mod map_of_set_of_length_string_internal {
        4730  +
impl ::std::convert::TryFrom<::std::string::String> for LengthPatternString {
        4731  +
    type Error = crate::model::length_pattern_string_internal::ConstraintViolation;
 6039   4732   
 6040         -
    #[allow(clippy::enum_variant_names)]
 6041         -
    #[derive(Debug, PartialEq)]
 6042         -
    pub(crate) enum ConstraintViolation {
 6043         -
        #[doc(hidden)]
 6044         -
        Key(crate::model::length_string_internal::ConstraintViolation),
 6045         -
        #[doc(hidden)]
 6046         -
        Value(
 6047         -
            crate::model::LengthString,
 6048         -
            crate::model::set_of_length_string_internal::ConstraintViolation,
 6049         -
        ),
 6050         -
    }
        4733  +
    /// Constructs a `LengthPatternString` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
        4734  +
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
        4735  +
        Self::check_length(&value)?;
 6051   4736   
 6052         -
    impl ::std::fmt::Display for ConstraintViolation {
 6053         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6054         -
            match self {
 6055         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 6056         -
                Self::Value(_, value_constraint_violation) => {
 6057         -
                    write!(f, "{}", value_constraint_violation)
 6058         -
                }
 6059         -
            }
 6060         -
        }
        4737  +
        let value = Self::check_pattern(value)?;
        4738  +
        4739  +
        Ok(Self(value))
 6061   4740   
    }
        4741  +
}
        4742  +
impl crate::constrained::Constrained for LengthPatternString {
        4743  +
    type Unconstrained = ::std::string::String;
        4744  +
}
 6062   4745   
 6063         -
    impl ::std::error::Error for ConstraintViolation {}
 6064         -
    impl ConstraintViolation {
 6065         -
        pub(crate) fn as_validation_exception_field(
 6066         -
            self,
 6067         -
            path: ::std::string::String,
 6068         -
        ) -> crate::model::ValidationExceptionField {
 6069         -
            match self {
 6070         -
                Self::Key(key_constraint_violation) => {
 6071         -
                    key_constraint_violation.as_validation_exception_field(path)
 6072         -
                }
 6073         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 6074         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 6075         -
            }
 6076         -
        }
        4746  +
impl ::std::convert::From<::std::string::String>
        4747  +
    for crate::constrained::MaybeConstrained<crate::model::LengthPatternString>
        4748  +
{
        4749  +
    fn from(value: ::std::string::String) -> Self {
        4750  +
        Self::Unconstrained(value)
 6077   4751   
    }
 6078   4752   
}
 6079         -
pub(crate) mod set_of_length_string_internal {
 6080   4753   
 6081         -
    #[allow(clippy::enum_variant_names)]
 6082         -
    #[derive(Debug, PartialEq)]
 6083         -
    pub(crate) enum ConstraintViolation {
 6084         -
        /// Constraint violation error when the list does not contain unique items
 6085         -
        UniqueItems {
 6086         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 6087         -
            /// at least two elements.
 6088         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 6089         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 6090         -
            /// Nothing is guaranteed about the order of the indices.
 6091         -
            duplicate_indices: ::std::vec::Vec<usize>,
 6092         -
            /// The original vector, that contains duplicate items.
 6093         -
            original: ::std::vec::Vec<crate::model::LengthString>,
 6094         -
        },
 6095         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 6096         -
        /// The first component of the tuple is the index in the collection where the
 6097         -
        /// first constraint violation was found.
 6098         -
        #[doc(hidden)]
 6099         -
        Member(
 6100         -
            usize,
 6101         -
            crate::model::length_string_internal::ConstraintViolation,
 6102         -
        ),
        4754  +
impl ::std::fmt::Display for LengthPatternString {
        4755  +
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        4756  +
        self.0.fmt(f)
 6103   4757   
    }
        4758  +
}
 6104   4759   
 6105         -
    impl ::std::fmt::Display for ConstraintViolation {
 6106         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6107         -
            let message = match self {
 6108         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 6109         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfLengthString' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 6110         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
 6111         -
                           failing_member)
 6112         -
                            };
 6113         -
            write!(f, "{message}")
 6114         -
        }
        4760  +
impl ::std::convert::From<LengthPatternString> for ::std::string::String {
        4761  +
    fn from(value: LengthPatternString) -> Self {
        4762  +
        value.into_inner()
 6115   4763   
    }
        4764  +
}
 6116   4765   
 6117         -
    impl ::std::error::Error for ConstraintViolation {}
 6118         -
    impl ConstraintViolation {
 6119         -
        pub(crate) fn as_validation_exception_field(
 6120         -
            self,
 6121         -
            path: ::std::string::String,
 6122         -
        ) -> crate::model::ValidationExceptionField {
 6123         -
            match self {
 6124         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 6125         -
                                crate::model::ValidationExceptionField {
 6126         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 6127         -
                                    path,
 6128         -
                                },
 6129         -
    Self::Member(index, member_constraint_violation) =>
 6130         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 6131         -
                    }
 6132         -
        }
        4766  +
#[cfg(test)]
        4767  +
mod test_length_pattern_string {
        4768  +
    #[test]
        4769  +
    fn regex_compiles() {
        4770  +
        crate::model::LengthPatternString::compile_regex();
 6133   4771   
    }
 6134   4772   
}
 6135         -
pub(crate) mod map_of_list_of_length_string_internal {
 6136   4773   
 6137         -
    #[allow(clippy::enum_variant_names)]
 6138         -
    #[derive(Debug, PartialEq)]
 6139         -
    pub(crate) enum ConstraintViolation {
 6140         -
        #[doc(hidden)]
 6141         -
        Key(crate::model::length_string_internal::ConstraintViolation),
 6142         -
        #[doc(hidden)]
 6143         -
        Value(
 6144         -
            crate::model::LengthString,
 6145         -
            crate::model::list_of_length_string_internal::ConstraintViolation,
 6146         -
        ),
        4774  +
#[allow(missing_docs)] // documentation missing in model
        4775  +
///
        4776  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        4777  +
/// [constraint traits]. Use [`SetOfLengthPatternString::try_from`] to construct values of this type.
        4778  +
///
        4779  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        4780  +
///
        4781  +
#[derive(
        4782  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        4783  +
)]
        4784  +
pub(crate) struct SetOfLengthPatternString(
        4785  +
    pub(crate) ::std::vec::Vec<crate::model::LengthPatternString>,
        4786  +
);
        4787  +
impl SetOfLengthPatternString {
        4788  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<crate::model::LengthPatternString>`].
        4789  +
    pub fn into_inner(self) -> ::std::vec::Vec<crate::model::LengthPatternString> {
        4790  +
        self.0
 6147   4791   
    }
 6148   4792   
 6149         -
    impl ::std::fmt::Display for ConstraintViolation {
 6150         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6151         -
            match self {
 6152         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 6153         -
                Self::Value(_, value_constraint_violation) => {
 6154         -
                    write!(f, "{}", value_constraint_violation)
 6155         -
                }
        4793  +
    fn check_unique_items(
        4794  +
        items: ::std::vec::Vec<crate::model::LengthPatternString>,
        4795  +
    ) -> ::std::result::Result<
        4796  +
        ::std::vec::Vec<crate::model::LengthPatternString>,
        4797  +
        crate::model::set_of_length_pattern_string_internal::ConstraintViolation,
        4798  +
    > {
        4799  +
        let mut seen = ::std::collections::HashMap::new();
        4800  +
        let mut duplicate_indices = ::std::vec::Vec::new();
        4801  +
        for (idx, item) in items.iter().enumerate() {
        4802  +
            if let Some(prev_idx) = seen.insert(item, idx) {
        4803  +
                duplicate_indices.push(prev_idx);
 6156   4804   
            }
 6157   4805   
        }
 6158         -
    }
 6159   4806   
 6160         -
    impl ::std::error::Error for ConstraintViolation {}
 6161         -
    impl ConstraintViolation {
 6162         -
        pub(crate) fn as_validation_exception_field(
 6163         -
            self,
 6164         -
            path: ::std::string::String,
 6165         -
        ) -> crate::model::ValidationExceptionField {
 6166         -
            match self {
 6167         -
                Self::Key(key_constraint_violation) => {
 6168         -
                    key_constraint_violation.as_validation_exception_field(path)
 6169         -
                }
 6170         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 6171         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
        4807  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
        4808  +
        for idx in &duplicate_indices {
        4809  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
        4810  +
                last_duplicate_indices.push(prev_idx);
 6172   4811   
            }
 6173   4812   
        }
        4813  +
        duplicate_indices.extend(last_duplicate_indices);
        4814  +
        4815  +
        if !duplicate_indices.is_empty() {
        4816  +
            debug_assert!(duplicate_indices.len() >= 2);
        4817  +
            Err(crate::model::set_of_length_pattern_string_internal::ConstraintViolation::UniqueItems { duplicate_indices, original: items })
        4818  +
        } else {
        4819  +
            Ok(items)
        4820  +
        }
 6174   4821   
    }
 6175   4822   
}
 6176         -
pub(crate) mod list_of_length_string_internal {
        4823  +
impl ::std::convert::TryFrom<::std::vec::Vec<crate::model::LengthPatternString>>
        4824  +
    for SetOfLengthPatternString
        4825  +
{
        4826  +
    type Error = crate::model::set_of_length_pattern_string_internal::ConstraintViolation;
 6177   4827   
 6178         -
    #[allow(clippy::enum_variant_names)]
 6179         -
    #[derive(Debug, PartialEq)]
 6180         -
    pub(crate) enum ConstraintViolation {
 6181         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 6182         -
        /// The first component of the tuple is the index in the collection where the
 6183         -
        /// first constraint violation was found.
 6184         -
        #[doc(hidden)]
 6185         -
        Member(
 6186         -
            usize,
 6187         -
            crate::model::length_string_internal::ConstraintViolation,
 6188         -
        ),
 6189         -
    }
        4828  +
    /// Constructs a `SetOfLengthPatternString` from an [`::std::vec::Vec<crate::model::LengthPatternString>`], failing when the provided value does not satisfy the modeled constraints.
        4829  +
    fn try_from(
        4830  +
        value: ::std::vec::Vec<crate::model::LengthPatternString>,
        4831  +
    ) -> ::std::result::Result<Self, Self::Error> {
        4832  +
        let value = Self::check_unique_items(value)?;
 6190   4833   
 6191         -
    impl ::std::fmt::Display for ConstraintViolation {
 6192         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6193         -
            let message = match self {
 6194         -
                Self::Member(index, failing_member) => format!(
 6195         -
                    "Value at index {index} failed to satisfy constraint. {}",
 6196         -
                    failing_member
 6197         -
                ),
 6198         -
            };
 6199         -
            write!(f, "{message}")
 6200         -
        }
        4834  +
        Ok(Self(value))
 6201   4835   
    }
        4836  +
}
 6202   4837   
 6203         -
    impl ::std::error::Error for ConstraintViolation {}
 6204         -
    impl ConstraintViolation {
 6205         -
        pub(crate) fn as_validation_exception_field(
 6206         -
            self,
 6207         -
            path: ::std::string::String,
 6208         -
        ) -> crate::model::ValidationExceptionField {
 6209         -
            match self {
 6210         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 6211         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 6212         -
            }
 6213         -
        }
        4838  +
impl ::std::convert::From<SetOfLengthPatternString>
        4839  +
    for ::std::vec::Vec<crate::model::LengthPatternString>
        4840  +
{
        4841  +
    fn from(value: SetOfLengthPatternString) -> Self {
        4842  +
        value.into_inner()
 6214   4843   
    }
 6215   4844   
}
 6216         -
pub(crate) mod map_of_length_string_internal {
 6217         -
 6218         -
    #[allow(clippy::enum_variant_names)]
 6219         -
    #[derive(Debug, PartialEq)]
 6220         -
    pub(crate) enum ConstraintViolation {
 6221         -
        #[doc(hidden)]
 6222         -
        Key(crate::model::length_string_internal::ConstraintViolation),
 6223         -
        #[doc(hidden)]
 6224         -
        Value(
 6225         -
            crate::model::LengthString,
 6226         -
            crate::model::length_string_internal::ConstraintViolation,
 6227         -
        ),
        4845  +
impl ::std::convert::From<SetOfLengthPatternString> for ::std::vec::Vec<::std::string::String> {
        4846  +
    fn from(value: SetOfLengthPatternString) -> Self {
        4847  +
        value.into_inner().into_iter().map(|v| v.into()).collect()
 6228   4848   
    }
        4849  +
}
        4850  +
impl crate::constrained::Constrained for SetOfLengthPatternString {
        4851  +
    type Unconstrained = crate::unconstrained::set_of_length_pattern_string_unconstrained::SetOfLengthPatternStringUnconstrained;
        4852  +
}
 6229   4853   
 6230         -
    impl ::std::fmt::Display for ConstraintViolation {
 6231         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6232         -
            match self {
 6233         -
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 6234         -
                Self::Value(_, value_constraint_violation) => {
 6235         -
                    write!(f, "{}", value_constraint_violation)
 6236         -
                }
 6237         -
            }
 6238         -
        }
        4854  +
#[::pyo3::pyclass]
        4855  +
/// :param path str:
        4856  +
/// :param message str:
        4857  +
/// :rtype None:
        4858  +
/// Describes one specific validation failure for an input member.
        4859  +
#[derive(
        4860  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        4861  +
)]
        4862  +
pub struct ValidationExceptionField {
        4863  +
    #[pyo3(get, set)]
        4864  +
    /// :type str:
        4865  +
    /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
        4866  +
    pub path: ::std::string::String,
        4867  +
    #[pyo3(get, set)]
        4868  +
    /// :type str:
        4869  +
    /// A detailed description of the validation failure.
        4870  +
    pub message: ::std::string::String,
        4871  +
}
        4872  +
impl ValidationExceptionField {
        4873  +
    /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
        4874  +
    pub fn path(&self) -> &str {
        4875  +
        use std::ops::Deref;
        4876  +
        self.path.deref()
        4877  +
    }
        4878  +
    /// A detailed description of the validation failure.
        4879  +
    pub fn message(&self) -> &str {
        4880  +
        use std::ops::Deref;
        4881  +
        self.message.deref()
        4882  +
    }
        4883  +
}
        4884  +
#[allow(clippy::new_without_default)]
        4885  +
#[allow(clippy::too_many_arguments)]
        4886  +
#[::pyo3::pymethods]
        4887  +
impl ValidationExceptionField {
        4888  +
    #[new]
        4889  +
    pub fn new(path: ::std::string::String, message: ::std::string::String) -> Self {
        4890  +
        Self { path, message }
        4891  +
    }
        4892  +
    fn __repr__(&self) -> String {
        4893  +
        format!("{self:?}")
        4894  +
    }
        4895  +
    fn __str__(&self) -> String {
        4896  +
        format!("{self:?}")
 6239   4897   
    }
 6240         -
 6241         -
    impl ::std::error::Error for ConstraintViolation {}
 6242         -
    impl ConstraintViolation {
 6243         -
        pub(crate) fn as_validation_exception_field(
 6244         -
            self,
 6245         -
            path: ::std::string::String,
 6246         -
        ) -> crate::model::ValidationExceptionField {
 6247         -
            match self {
 6248         -
                Self::Key(key_constraint_violation) => {
 6249         -
                    key_constraint_violation.as_validation_exception_field(path)
 6250         -
                }
 6251         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 6252         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 6253         -
            }
 6254         -
        }
        4898  +
}
        4899  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ValidationExceptionField> {
        4900  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        4901  +
        ob.extract::<ValidationExceptionField>().map(Box::new)
 6255   4902   
    }
 6256   4903   
}
 6257         -
pub(crate) mod recursive_list_internal {
 6258   4904   
 6259         -
    #[allow(clippy::enum_variant_names)]
 6260         -
    #[derive(Debug, PartialEq)]
 6261         -
    pub(crate) enum ConstraintViolation {
 6262         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 6263         -
        /// The first component of the tuple is the index in the collection where the
 6264         -
        /// first constraint violation was found.
 6265         -
        #[doc(hidden)]
 6266         -
        Member(
 6267         -
            usize,
 6268         -
            crate::model::recursive_shapes_input_output_nested1_internal::ConstraintViolation,
 6269         -
        ),
        4905  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ValidationExceptionField> {
        4906  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        4907  +
        (*self).into_py(py)
 6270   4908   
    }
 6271         -
 6272         -
    impl ::std::fmt::Display for ConstraintViolation {
 6273         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6274         -
            let message = match self {
 6275         -
                Self::Member(index, failing_member) => format!(
 6276         -
                    "Value at index {index} failed to satisfy constraint. {}",
 6277         -
                    failing_member
 6278         -
                ),
 6279         -
            };
 6280         -
            write!(f, "{message}")
 6281         -
        }
        4909  +
}
        4910  +
impl ValidationExceptionField {
        4911  +
    /// Creates a new builder-style object to manufacture [`ValidationExceptionField`](crate::model::ValidationExceptionField).
        4912  +
    pub fn builder() -> crate::model::validation_exception_field::Builder {
        4913  +
        crate::model::validation_exception_field::Builder::default()
 6282   4914   
    }
        4915  +
}
 6283   4916   
 6284         -
    impl ::std::error::Error for ConstraintViolation {}
 6285         -
    impl ConstraintViolation {
 6286         -
        pub(crate) fn as_validation_exception_field(
 6287         -
            self,
 6288         -
            path: ::std::string::String,
 6289         -
        ) -> crate::model::ValidationExceptionField {
 6290         -
            match self {
 6291         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 6292         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 6293         -
            }
 6294         -
        }
        4917  +
#[::pyo3::pyclass]
        4918  +
/// :param length_string typing.Optional\[str\]:
        4919  +
/// :rtype None:
        4920  +
#[allow(missing_docs)] // documentation missing in model
        4921  +
#[derive(
        4922  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        4923  +
)]
        4924  +
pub struct TransitivelyConstrainedStructureInOutput {
        4925  +
    #[pyo3(get, set)]
        4926  +
    /// :type typing.Optional\[str\]:
        4927  +
    #[allow(missing_docs)] // documentation missing in model
        4928  +
    pub length_string: ::std::option::Option<::std::string::String>,
        4929  +
}
        4930  +
impl TransitivelyConstrainedStructureInOutput {
        4931  +
    #[allow(missing_docs)] // documentation missing in model
        4932  +
    pub fn length_string(&self) -> ::std::option::Option<&str> {
        4933  +
        self.length_string.as_deref()
 6295   4934   
    }
 6296   4935   
}
 6297         -
/// See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 6298         -
pub(crate) mod recursive_shapes_input_output_nested1_internal {
 6299         -
 6300         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 6301         -
    /// Holds one variant for each of the ways the builder can fail.
 6302         -
    #[non_exhaustive]
 6303         -
    #[allow(clippy::enum_variant_names)]
 6304         -
    pub(crate) enum ConstraintViolation {
 6305         -
        /// `recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`.
 6306         -
        MissingRecursiveMember,
 6307         -
        /// Constraint violation occurred building member `recursive_member` when building `RecursiveShapesInputOutputNested1`.
 6308         -
        #[doc(hidden)]
 6309         -
        RecursiveMember(
 6310         -
            ::std::boxed::Box<
 6311         -
                crate::model::recursive_shapes_input_output_nested2_internal::ConstraintViolation,
 6312         -
            >,
 6313         -
        ),
        4936  +
#[allow(clippy::new_without_default)]
        4937  +
#[allow(clippy::too_many_arguments)]
        4938  +
#[::pyo3::pymethods]
        4939  +
impl TransitivelyConstrainedStructureInOutput {
        4940  +
    #[new]
        4941  +
    pub fn new(length_string: ::std::option::Option<::std::string::String>) -> Self {
        4942  +
        Self { length_string }
 6314   4943   
    }
 6315         -
    impl ::std::fmt::Display for ConstraintViolation {
 6316         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6317         -
            match self {
 6318         -
                ConstraintViolation::MissingRecursiveMember => write!(f, "`recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`"),
 6319         -
                ConstraintViolation::RecursiveMember(_) => write!(f, "constraint violation occurred building member `recursive_member` when building `RecursiveShapesInputOutputNested1`"),
 6320         -
            }
 6321         -
        }
        4944  +
    fn __repr__(&self) -> String {
        4945  +
        format!("{self:?}")
 6322   4946   
    }
 6323         -
    impl ::std::error::Error for ConstraintViolation {}
 6324         -
    impl ConstraintViolation {
 6325         -
        pub(crate) fn as_validation_exception_field(
 6326         -
            self,
 6327         -
            path: ::std::string::String,
 6328         -
        ) -> crate::model::ValidationExceptionField {
 6329         -
            match self {
 6330         -
            ConstraintViolation::MissingRecursiveMember => crate::model::ValidationExceptionField {
 6331         -
                                                message: format!("Value at '{}/recursiveMember' failed to satisfy constraint: Member must not be null", path),
 6332         -
                                                path: path + "/recursiveMember",
 6333         -
                                            },
 6334         -
            ConstraintViolation::RecursiveMember(inner) => inner.as_validation_exception_field(path + "/recursiveMember"),
 6335         -
        }
 6336         -
        }
        4947  +
    fn __str__(&self) -> String {
        4948  +
        format!("{self:?}")
 6337   4949   
    }
 6338         -
    impl ::std::convert::From<Builder>
 6339         -
        for crate::constrained::MaybeConstrained<crate::model::RecursiveShapesInputOutputNested1>
 6340         -
    {
 6341         -
        fn from(builder: Builder) -> Self {
 6342         -
            Self::Unconstrained(builder)
 6343         -
        }
        4950  +
}
        4951  +
impl<'source> ::pyo3::FromPyObject<'source>
        4952  +
    for std::boxed::Box<TransitivelyConstrainedStructureInOutput>
        4953  +
{
        4954  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        4955  +
        ob.extract::<TransitivelyConstrainedStructureInOutput>()
        4956  +
            .map(Box::new)
 6344   4957   
    }
 6345         -
    impl ::std::convert::TryFrom<Builder> for crate::model::RecursiveShapesInputOutputNested1 {
 6346         -
        type Error = ConstraintViolation;
        4958  +
}
 6347   4959   
 6348         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 6349         -
            builder.build()
 6350         -
        }
        4960  +
impl ::pyo3::IntoPy<::pyo3::PyObject>
        4961  +
    for std::boxed::Box<TransitivelyConstrainedStructureInOutput>
        4962  +
{
        4963  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        4964  +
        (*self).into_py(py)
 6351   4965   
    }
 6352         -
    /// A builder for [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 6353         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 6354         -
    pub(crate) struct Builder {
 6355         -
        pub(crate) recursive_member: ::std::option::Option<
 6356         -
            ::std::boxed::Box<
 6357         -
                crate::constrained::MaybeConstrained<
 6358         -
                    crate::model::RecursiveShapesInputOutputNested2,
 6359         -
                >,
 6360         -
            >,
 6361         -
        >,
        4966  +
}
        4967  +
impl TransitivelyConstrainedStructureInOutput {
        4968  +
    /// Creates a new builder-style object to manufacture [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
        4969  +
    pub fn builder() -> crate::model::transitively_constrained_structure_in_output::Builder {
        4970  +
        crate::model::transitively_constrained_structure_in_output::Builder::default()
 6362   4971   
    }
 6363         -
    impl Builder {
 6364         -
        #[allow(missing_docs)] // documentation missing in model
 6365         -
        pub(crate) fn set_recursive_member(
 6366         -
            mut self,
 6367         -
            input: impl ::std::convert::Into<
 6368         -
                ::std::boxed::Box<
 6369         -
                    crate::constrained::MaybeConstrained<
 6370         -
                        crate::model::RecursiveShapesInputOutputNested2,
 6371         -
                    >,
 6372         -
                >,
 6373         -
            >,
 6374         -
        ) -> Self {
 6375         -
            self.recursive_member = Some(input.into());
 6376         -
            self
 6377         -
        }
 6378         -
        /// Consumes the builder and constructs a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 6379         -
        ///
 6380         -
        /// The builder fails to construct a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1) if a [`ConstraintViolation`] occurs.
 6381         -
        ///
 6382         -
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
 6383         -
        pub fn build(
 6384         -
            self,
 6385         -
        ) -> Result<crate::model::RecursiveShapesInputOutputNested1, ConstraintViolation> {
 6386         -
            self.build_enforcing_all_constraints()
 6387         -
        }
 6388         -
        fn build_enforcing_all_constraints(
 6389         -
            self,
 6390         -
        ) -> Result<crate::model::RecursiveShapesInputOutputNested1, ConstraintViolation> {
 6391         -
            Ok(crate::model::RecursiveShapesInputOutputNested1 {
 6392         -
                recursive_member: self
 6393         -
                    .recursive_member
 6394         -
                    .map(|v| match *v {
 6395         -
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(Box::new(x)),
 6396         -
                        crate::constrained::MaybeConstrained::Unconstrained(x) => {
 6397         -
                            Ok(Box::new(x.try_into()?))
 6398         -
                        }
 6399         -
                    })
 6400         -
                    .map(|res| {
 6401         -
                        res.map_err(Box::new)
 6402         -
                            .map_err(ConstraintViolation::RecursiveMember)
 6403         -
                    })
 6404         -
                    .transpose()?
 6405         -
                    .ok_or(ConstraintViolation::MissingRecursiveMember)?,
 6406         -
            })
 6407         -
        }
        4972  +
}
        4973  +
        4974  +
#[::pyo3::pyclass]
        4975  +
/// :param recursive_member typing.Optional\[constraints_without_public_constrained_types.model.RecursiveShapesInputOutputNested1\]:
        4976  +
/// :rtype None:
        4977  +
#[allow(missing_docs)] // documentation missing in model
        4978  +
#[derive(
        4979  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        4980  +
)]
        4981  +
pub struct RecursiveShapesInputOutputNested2 {
        4982  +
    #[pyo3(get, set)]
        4983  +
    /// :type typing.Optional\[constraints_without_public_constrained_types.model.RecursiveShapesInputOutputNested1\]:
        4984  +
    #[allow(missing_docs)] // documentation missing in model
        4985  +
    pub recursive_member: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
        4986  +
}
        4987  +
impl RecursiveShapesInputOutputNested2 {
        4988  +
    #[allow(missing_docs)] // documentation missing in model
        4989  +
    pub fn recursive_member(
        4990  +
        &self,
        4991  +
    ) -> ::std::option::Option<&crate::model::RecursiveShapesInputOutputNested1> {
        4992  +
        self.recursive_member.as_ref()
        4993  +
    }
        4994  +
}
        4995  +
#[allow(clippy::new_without_default)]
        4996  +
#[allow(clippy::too_many_arguments)]
        4997  +
#[::pyo3::pymethods]
        4998  +
impl RecursiveShapesInputOutputNested2 {
        4999  +
    #[new]
        5000  +
    pub fn new(
        5001  +
        recursive_member: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
        5002  +
    ) -> Self {
        5003  +
        Self { recursive_member }
        5004  +
    }
        5005  +
    fn __repr__(&self) -> String {
        5006  +
        format!("{self:?}")
        5007  +
    }
        5008  +
    fn __str__(&self) -> String {
        5009  +
        format!("{self:?}")
        5010  +
    }
        5011  +
}
        5012  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<RecursiveShapesInputOutputNested2> {
        5013  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        5014  +
        ob.extract::<RecursiveShapesInputOutputNested2>()
        5015  +
            .map(Box::new)
 6408   5016   
    }
 6409   5017   
}
 6410         -
/// See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 6411         -
pub mod recursive_shapes_input_output_nested1 {
 6412   5018   
 6413         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 6414         -
    /// Holds one variant for each of the ways the builder can fail.
 6415         -
    #[allow(clippy::enum_variant_names)]
 6416         -
    pub enum ConstraintViolation {
 6417         -
        /// `recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`.
 6418         -
        MissingRecursiveMember,
        5019  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<RecursiveShapesInputOutputNested2> {
        5020  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        5021  +
        (*self).into_py(py)
 6419   5022   
    }
 6420         -
    impl ::std::fmt::Display for ConstraintViolation {
 6421         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6422         -
            match self {
 6423         -
                ConstraintViolation::MissingRecursiveMember => write!(f, "`recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`"),
 6424         -
            }
 6425         -
        }
        5023  +
}
        5024  +
impl crate::constrained::Constrained for crate::model::RecursiveShapesInputOutputNested2 {
        5025  +
    type Unconstrained = crate::model::recursive_shapes_input_output_nested2_internal::Builder;
        5026  +
}
        5027  +
impl RecursiveShapesInputOutputNested2 {
        5028  +
    /// Creates a new builder-style object to manufacture [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
        5029  +
    pub fn builder() -> crate::model::recursive_shapes_input_output_nested2::Builder {
        5030  +
        crate::model::recursive_shapes_input_output_nested2::Builder::default()
 6426   5031   
    }
 6427         -
    impl ::std::error::Error for ConstraintViolation {}
 6428         -
    impl ::std::convert::TryFrom<Builder> for crate::model::RecursiveShapesInputOutputNested1 {
 6429         -
        type Error = ConstraintViolation;
        5032  +
}
 6430   5033   
 6431         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 6432         -
            builder.build()
 6433         -
        }
        5034  +
#[::pyo3::pyclass]
        5035  +
/// :param message_content typing.Optional\[str\]:
        5036  +
/// :rtype None:
        5037  +
#[allow(missing_docs)] // documentation missing in model
        5038  +
#[derive(
        5039  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        5040  +
)]
        5041  +
pub struct EventStreamRegularMessage {
        5042  +
    #[pyo3(get, set)]
        5043  +
    /// :type typing.Optional\[str\]:
        5044  +
    #[allow(missing_docs)] // documentation missing in model
        5045  +
    pub message_content: ::std::option::Option<::std::string::String>,
        5046  +
}
        5047  +
impl EventStreamRegularMessage {
        5048  +
    #[allow(missing_docs)] // documentation missing in model
        5049  +
    pub fn message_content(&self) -> ::std::option::Option<&str> {
        5050  +
        self.message_content.as_deref()
 6434   5051   
    }
 6435         -
    /// A builder for [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 6436         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 6437         -
    pub struct Builder {
 6438         -
        pub(crate) recursive_member: ::std::option::Option<
 6439         -
            ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
 6440         -
        >,
        5052  +
}
        5053  +
#[allow(clippy::new_without_default)]
        5054  +
#[allow(clippy::too_many_arguments)]
        5055  +
#[::pyo3::pymethods]
        5056  +
impl EventStreamRegularMessage {
        5057  +
    #[new]
        5058  +
    pub fn new(message_content: ::std::option::Option<::std::string::String>) -> Self {
        5059  +
        Self { message_content }
 6441   5060   
    }
 6442         -
    impl Builder {
 6443         -
        #[allow(missing_docs)] // documentation missing in model
 6444         -
        pub fn recursive_member(
 6445         -
            mut self,
 6446         -
            input: ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
 6447         -
        ) -> Self {
 6448         -
            self.recursive_member = Some(input);
 6449         -
            self
 6450         -
        }
 6451         -
        /// Consumes the builder and constructs a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 6452         -
        ///
 6453         -
        /// The builder fails to construct a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1) if you do not provide a value for all non-`Option`al members.
 6454         -
        ///
 6455         -
        pub fn build(
 6456         -
            self,
 6457         -
        ) -> Result<crate::model::RecursiveShapesInputOutputNested1, ConstraintViolation> {
 6458         -
            self.build_enforcing_required_and_enum_traits()
 6459         -
        }
 6460         -
        fn build_enforcing_required_and_enum_traits(
 6461         -
            self,
 6462         -
        ) -> Result<crate::model::RecursiveShapesInputOutputNested1, ConstraintViolation> {
 6463         -
            Ok(crate::model::RecursiveShapesInputOutputNested1 {
 6464         -
                recursive_member: self
 6465         -
                    .recursive_member
 6466         -
                    .ok_or(ConstraintViolation::MissingRecursiveMember)?,
 6467         -
            })
 6468         -
        }
        5061  +
    fn __repr__(&self) -> String {
        5062  +
        format!("{self:?}")
        5063  +
    }
        5064  +
    fn __str__(&self) -> String {
        5065  +
        format!("{self:?}")
        5066  +
    }
        5067  +
}
        5068  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<EventStreamRegularMessage> {
        5069  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        5070  +
        ob.extract::<EventStreamRegularMessage>().map(Box::new)
 6469   5071   
    }
 6470   5072   
}
 6471         -
/// See [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 6472         -
pub(crate) mod recursive_shapes_input_output_nested2_internal {
 6473   5073   
 6474         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 6475         -
    /// Holds one variant for each of the ways the builder can fail.
 6476         -
    #[non_exhaustive]
 6477         -
    #[allow(clippy::enum_variant_names)]
 6478         -
    pub(crate) enum ConstraintViolation {
 6479         -
        /// Constraint violation occurred building member `recursive_member` when building `RecursiveShapesInputOutputNested2`.
 6480         -
        #[doc(hidden)]
 6481         -
        RecursiveMember(
 6482         -
            crate::model::recursive_shapes_input_output_nested1_internal::ConstraintViolation,
 6483         -
        ),
        5074  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<EventStreamRegularMessage> {
        5075  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        5076  +
        (*self).into_py(py)
 6484   5077   
    }
 6485         -
    impl ::std::fmt::Display for ConstraintViolation {
 6486         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 6487         -
            match self {
 6488         -
                ConstraintViolation::RecursiveMember(_) => write!(f, "constraint violation occurred building member `recursive_member` when building `RecursiveShapesInputOutputNested2`"),
 6489         -
            }
 6490         -
        }
        5078  +
}
        5079  +
impl crate::constrained::Constrained for crate::model::EventStreamRegularMessage {
        5080  +
    type Unconstrained = crate::model::event_stream_regular_message_internal::Builder;
        5081  +
}
        5082  +
impl EventStreamRegularMessage {
        5083  +
    /// Creates a new builder-style object to manufacture [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
        5084  +
    pub fn builder() -> crate::model::event_stream_regular_message::Builder {
        5085  +
        crate::model::event_stream_regular_message::Builder::default()
 6491   5086   
    }
 6492         -
    impl ::std::error::Error for ConstraintViolation {}
 6493         -
    impl ConstraintViolation {
 6494         -
        pub(crate) fn as_validation_exception_field(
 6495         -
            self,
 6496         -
            path: ::std::string::String,
 6497         -
        ) -> crate::model::ValidationExceptionField {
 6498         -
            match self {
 6499         -
                ConstraintViolation::RecursiveMember(inner) => {
 6500         -
                    inner.as_validation_exception_field(path + "/recursiveMember")
 6501         -
                }
 6502         -
            }
 6503         -
        }
        5087  +
}
        5088  +
        5089  +
#[::pyo3::pyclass]
        5090  +
/// :rtype None:
        5091  +
#[allow(missing_docs)] // documentation missing in model
        5092  +
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::hash::Hash)]
        5093  +
pub struct SensitiveStructure {}
        5094  +
impl ::std::fmt::Debug for SensitiveStructure {
        5095  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        5096  +
        let mut formatter = f.debug_struct("SensitiveStructure");
        5097  +
        formatter.finish()
 6504   5098   
    }
 6505         -
    impl ::std::convert::From<Builder>
 6506         -
        for crate::constrained::MaybeConstrained<crate::model::RecursiveShapesInputOutputNested2>
 6507         -
    {
 6508         -
        fn from(builder: Builder) -> Self {
 6509         -
            Self::Unconstrained(builder)
 6510         -
        }
        5099  +
}
        5100  +
#[allow(clippy::new_without_default)]
        5101  +
#[allow(clippy::too_many_arguments)]
        5102  +
#[::pyo3::pymethods]
        5103  +
impl SensitiveStructure {
        5104  +
    #[new]
        5105  +
    pub fn new() -> Self {
        5106  +
        Self {}
 6511   5107   
    }
 6512         -
    impl ::std::convert::TryFrom<Builder> for crate::model::RecursiveShapesInputOutputNested2 {
 6513         -
        type Error = ConstraintViolation;
        5108  +
    fn __repr__(&self) -> String {
        5109  +
        format!("{self:?}")
        5110  +
    }
        5111  +
    fn __str__(&self) -> String {
        5112  +
        format!("{self:?}")
        5113  +
    }
        5114  +
}
        5115  +
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<SensitiveStructure> {
        5116  +
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
        5117  +
        ob.extract::<SensitiveStructure>().map(Box::new)
        5118  +
    }
        5119  +
}
 6514   5120   
 6515         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 6516         -
            builder.build()
 6517         -
        }
        5121  +
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<SensitiveStructure> {
        5122  +
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
        5123  +
        (*self).into_py(py)
 6518   5124   
    }
 6519         -
    /// A builder for [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 6520         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 6521         -
    pub(crate) struct Builder {
 6522         -
        pub(crate) recursive_member: ::std::option::Option<
 6523         -
            crate::constrained::MaybeConstrained<crate::model::RecursiveShapesInputOutputNested1>,
 6524         -
        >,
        5125  +
}
        5126  +
impl crate::constrained::Constrained for crate::model::SensitiveStructure {
        5127  +
    type Unconstrained = crate::model::sensitive_structure_internal::Builder;
        5128  +
}
        5129  +
impl SensitiveStructure {
        5130  +
    /// Creates a new builder-style object to manufacture [`SensitiveStructure`](crate::model::SensitiveStructure).
        5131  +
    pub fn builder() -> crate::model::sensitive_structure::Builder {
        5132  +
        crate::model::sensitive_structure::Builder::default()
 6525   5133   
    }
 6526         -
    impl Builder {
 6527         -
        #[allow(missing_docs)] // documentation missing in model
 6528         -
        pub(crate) fn set_recursive_member(
 6529         -
            mut self,
 6530         -
            input: Option<
 6531         -
                impl ::std::convert::Into<
 6532         -
                    crate::constrained::MaybeConstrained<
 6533         -
                        crate::model::RecursiveShapesInputOutputNested1,
 6534         -
                    >,
 6535         -
                >,
 6536         -
            >,
 6537         -
        ) -> Self {
 6538         -
            self.recursive_member = input.map(|v| v.into());
 6539         -
            self
        5134  +
}
        5135  +
        5136  +
#[allow(missing_docs)] // documentation missing in model
        5137  +
///
        5138  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        5139  +
/// [constraint traits]. Use [`ConBSetInner::try_from`] to construct values of this type.
        5140  +
///
        5141  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        5142  +
///
        5143  +
#[derive(
        5144  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        5145  +
)]
        5146  +
pub(crate) struct ConBSetInner(pub(crate) ::std::vec::Vec<::std::string::String>);
        5147  +
impl ConBSetInner {
        5148  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::string::String>`].
        5149  +
    pub fn into_inner(self) -> ::std::vec::Vec<::std::string::String> {
        5150  +
        self.0
        5151  +
    }
        5152  +
        5153  +
    fn check_unique_items(
        5154  +
        items: ::std::vec::Vec<::std::string::String>,
        5155  +
    ) -> ::std::result::Result<
        5156  +
        ::std::vec::Vec<::std::string::String>,
        5157  +
        crate::model::con_b_set_inner_internal::ConstraintViolation,
        5158  +
    > {
        5159  +
        let mut seen = ::std::collections::HashMap::new();
        5160  +
        let mut duplicate_indices = ::std::vec::Vec::new();
        5161  +
        for (idx, item) in items.iter().enumerate() {
        5162  +
            if let Some(prev_idx) = seen.insert(item, idx) {
        5163  +
                duplicate_indices.push(prev_idx);
        5164  +
            }
 6540   5165   
        }
 6541         -
        /// Consumes the builder and constructs a [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 6542         -
        ///
 6543         -
        /// The builder fails to construct a [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2) if a [`ConstraintViolation`] occurs.
 6544         -
        ///
 6545         -
        pub fn build(
 6546         -
            self,
 6547         -
        ) -> Result<crate::model::RecursiveShapesInputOutputNested2, ConstraintViolation> {
 6548         -
            self.build_enforcing_all_constraints()
        5166  +
        5167  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
        5168  +
        for idx in &duplicate_indices {
        5169  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
        5170  +
                last_duplicate_indices.push(prev_idx);
        5171  +
            }
 6549   5172   
        }
 6550         -
        fn build_enforcing_all_constraints(
 6551         -
            self,
 6552         -
        ) -> Result<crate::model::RecursiveShapesInputOutputNested2, ConstraintViolation> {
 6553         -
            Ok(crate::model::RecursiveShapesInputOutputNested2 {
 6554         -
                recursive_member: self
 6555         -
                    .recursive_member
 6556         -
                    .map(|v| match v {
 6557         -
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 6558         -
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 6559         -
                    })
 6560         -
                    .map(|res| res.map_err(ConstraintViolation::RecursiveMember))
 6561         -
                    .transpose()?,
 6562         -
            })
        5173  +
        duplicate_indices.extend(last_duplicate_indices);
        5174  +
        5175  +
        if !duplicate_indices.is_empty() {
        5176  +
            debug_assert!(duplicate_indices.len() >= 2);
        5177  +
            Err(
        5178  +
                crate::model::con_b_set_inner_internal::ConstraintViolation::UniqueItems {
        5179  +
                    duplicate_indices,
        5180  +
                    original: items,
        5181  +
                },
        5182  +
            )
        5183  +
        } else {
        5184  +
            Ok(items)
 6563   5185   
        }
 6564   5186   
    }
 6565   5187   
}
 6566         -
/// See [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 6567         -
pub mod recursive_shapes_input_output_nested2 {
        5188  +
impl ::std::convert::TryFrom<::std::vec::Vec<::std::string::String>> for ConBSetInner {
        5189  +
    type Error = crate::model::con_b_set_inner_internal::ConstraintViolation;
 6568   5190   
 6569         -
    impl ::std::convert::From<Builder> for crate::model::RecursiveShapesInputOutputNested2 {
 6570         -
        fn from(builder: Builder) -> Self {
 6571         -
            builder.build()
 6572         -
        }
        5191  +
    /// Constructs a `ConBSetInner` from an [`::std::vec::Vec<::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
        5192  +
    fn try_from(
        5193  +
        value: ::std::vec::Vec<::std::string::String>,
        5194  +
    ) -> ::std::result::Result<Self, Self::Error> {
        5195  +
        let value = Self::check_unique_items(value)?;
        5196  +
        5197  +
        Ok(Self(value))
 6573   5198   
    }
 6574         -
    /// A builder for [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 6575         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 6576         -
    pub struct Builder {
 6577         -
        pub(crate) recursive_member:
 6578         -
            ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
        5199  +
}
        5200  +
        5201  +
impl ::std::convert::From<ConBSetInner> for ::std::vec::Vec<::std::string::String> {
        5202  +
    fn from(value: ConBSetInner) -> Self {
        5203  +
        value.into_inner()
 6579   5204   
    }
 6580         -
    impl Builder {
 6581         -
        #[allow(missing_docs)] // documentation missing in model
 6582         -
        pub fn recursive_member(
 6583         -
            mut self,
 6584         -
            input: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
 6585         -
        ) -> Self {
 6586         -
            self.recursive_member = input;
 6587         -
            self
 6588         -
        }
 6589         -
        /// Consumes the builder and constructs a [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
 6590         -
        pub fn build(self) -> crate::model::RecursiveShapesInputOutputNested2 {
 6591         -
            self.build_enforcing_required_and_enum_traits()
        5205  +
}
        5206  +
impl crate::constrained::Constrained for ConBSetInner {
        5207  +
    type Unconstrained =
        5208  +
        crate::unconstrained::con_b_set_inner_unconstrained::ConBSetInnerUnconstrained;
        5209  +
}
        5210  +
        5211  +
#[allow(missing_docs)] // documentation missing in model
        5212  +
///
        5213  +
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
        5214  +
/// [constraint traits]. Use [`UniqueItemsList::try_from`] to construct values of this type.
        5215  +
///
        5216  +
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
        5217  +
///
        5218  +
#[derive(
        5219  +
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
        5220  +
)]
        5221  +
pub(crate) struct UniqueItemsList(pub(crate) ::std::vec::Vec<::std::string::String>);
        5222  +
impl UniqueItemsList {
        5223  +
    /// Consumes the value, returning the underlying [`::std::vec::Vec<::std::string::String>`].
        5224  +
    pub fn into_inner(self) -> ::std::vec::Vec<::std::string::String> {
        5225  +
        self.0
        5226  +
    }
        5227  +
        5228  +
    fn check_unique_items(
        5229  +
        items: ::std::vec::Vec<::std::string::String>,
        5230  +
    ) -> ::std::result::Result<
        5231  +
        ::std::vec::Vec<::std::string::String>,
        5232  +
        crate::model::unique_items_list_internal::ConstraintViolation,
        5233  +
    > {
        5234  +
        let mut seen = ::std::collections::HashMap::new();
        5235  +
        let mut duplicate_indices = ::std::vec::Vec::new();
        5236  +
        for (idx, item) in items.iter().enumerate() {
        5237  +
            if let Some(prev_idx) = seen.insert(item, idx) {
        5238  +
                duplicate_indices.push(prev_idx);
        5239  +
            }
 6592   5240   
        }
 6593         -
        fn build_enforcing_required_and_enum_traits(
 6594         -
            self,
 6595         -
        ) -> crate::model::RecursiveShapesInputOutputNested2 {
 6596         -
            crate::model::RecursiveShapesInputOutputNested2 {
 6597         -
                recursive_member: self.recursive_member,
        5241  +
        5242  +
        let mut last_duplicate_indices = ::std::vec::Vec::new();
        5243  +
        for idx in &duplicate_indices {
        5244  +
            if let Some(prev_idx) = seen.remove(&items[*idx]) {
        5245  +
                last_duplicate_indices.push(prev_idx);
 6598   5246   
            }
 6599   5247   
        }
        5248  +
        duplicate_indices.extend(last_duplicate_indices);
        5249  +
        5250  +
        if !duplicate_indices.is_empty() {
        5251  +
            debug_assert!(duplicate_indices.len() >= 2);
        5252  +
            Err(
        5253  +
                crate::model::unique_items_list_internal::ConstraintViolation::UniqueItems {
        5254  +
                    duplicate_indices,
        5255  +
                    original: items,
        5256  +
                },
        5257  +
            )
        5258  +
        } else {
        5259  +
            Ok(items)
        5260  +
        }
        5261  +
    }
        5262  +
}
        5263  +
impl ::std::convert::TryFrom<::std::vec::Vec<::std::string::String>> for UniqueItemsList {
        5264  +
    type Error = crate::model::unique_items_list_internal::ConstraintViolation;
        5265  +
        5266  +
    /// Constructs a `UniqueItemsList` from an [`::std::vec::Vec<::std::string::String>`], failing when the provided value does not satisfy the modeled constraints.
        5267  +
    fn try_from(
        5268  +
        value: ::std::vec::Vec<::std::string::String>,
        5269  +
    ) -> ::std::result::Result<Self, Self::Error> {
        5270  +
        let value = Self::check_unique_items(value)?;
        5271  +
        5272  +
        Ok(Self(value))
        5273  +
    }
        5274  +
}
        5275  +
        5276  +
impl ::std::convert::From<UniqueItemsList> for ::std::vec::Vec<::std::string::String> {
        5277  +
    fn from(value: UniqueItemsList) -> Self {
        5278  +
        value.into_inner()
 6600   5279   
    }
 6601   5280   
}
        5281  +
impl crate::constrained::Constrained for UniqueItemsList {
        5282  +
    type Unconstrained =
        5283  +
        crate::unconstrained::unique_items_list_unconstrained::UniqueItemsListUnconstrained;
        5284  +
}
        5285  +
 6602   5286   
/// See [`ConA`](crate::model::ConA).
 6603   5287   
pub(crate) mod con_a_internal {
 6604   5288   
 6605   5289   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 6606   5290   
    /// Holds one variant for each of the ways the builder can fail.
 6607   5291   
    #[non_exhaustive]
 6608   5292   
    #[allow(clippy::enum_variant_names)]
 6609   5293   
    pub(crate) enum ConstraintViolation {
 6610   5294   
        /// `con_b` was not provided but it is required when building `ConA`.
 6611   5295   
        MissingConB,
@@ -8520,7204 +11681,11681 @@
 8540   7224   
                    .length_set_of_pattern_string
 8541   7225   
                    .map(|v| match v {
 8542   7226   
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 8543   7227   
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 8544   7228   
                    })
 8545   7229   
                    .map(|res| res.map_err(ConstraintViolation::LengthSetOfPatternString))
 8546   7230   
                    .transpose()?
 8547   7231   
                    .map(|v: crate::model::LengthSetOfPatternString| v.into()),
 8548   7232   
            })
 8549   7233   
        }
 8550         -
    }
 8551         -
}
 8552         -
/// See [`ConA`](crate::model::ConA).
 8553         -
pub mod con_a {
 8554         -
 8555         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 8556         -
    /// Holds one variant for each of the ways the builder can fail.
 8557         -
    #[allow(clippy::enum_variant_names)]
 8558         -
    pub enum ConstraintViolation {
 8559         -
        /// `con_b` was not provided but it is required when building `ConA`.
 8560         -
        MissingConB,
 8561         -
    }
 8562         -
    impl ::std::fmt::Display for ConstraintViolation {
 8563         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 8564         -
            match self {
 8565         -
                ConstraintViolation::MissingConB => write!(
 8566         -
                    f,
 8567         -
                    "`con_b` was not provided but it is required when building `ConA`"
 8568         -
                ),
 8569         -
            }
        7234  +
    }
        7235  +
}
        7236  +
/// See [`ConA`](crate::model::ConA).
        7237  +
pub mod con_a {
        7238  +
        7239  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        7240  +
    /// Holds one variant for each of the ways the builder can fail.
        7241  +
    #[allow(clippy::enum_variant_names)]
        7242  +
    pub enum ConstraintViolation {
        7243  +
        /// `con_b` was not provided but it is required when building `ConA`.
        7244  +
        MissingConB,
        7245  +
    }
        7246  +
    impl ::std::fmt::Display for ConstraintViolation {
        7247  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        7248  +
            match self {
        7249  +
                ConstraintViolation::MissingConB => write!(
        7250  +
                    f,
        7251  +
                    "`con_b` was not provided but it is required when building `ConA`"
        7252  +
                ),
        7253  +
            }
        7254  +
        }
        7255  +
    }
        7256  +
    impl ::std::error::Error for ConstraintViolation {}
        7257  +
    impl ::std::convert::TryFrom<Builder> for crate::model::ConA {
        7258  +
        type Error = ConstraintViolation;
        7259  +
        7260  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        7261  +
            builder.build()
        7262  +
        }
        7263  +
    }
        7264  +
    /// A builder for [`ConA`](crate::model::ConA).
        7265  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        7266  +
    pub struct Builder {
        7267  +
        pub(crate) con_b: ::std::option::Option<crate::model::ConB>,
        7268  +
        pub(crate) opt_con_b: ::std::option::Option<crate::model::ConB>,
        7269  +
        pub(crate) length_string: ::std::option::Option<::std::string::String>,
        7270  +
        pub(crate) min_length_string: ::std::option::Option<::std::string::String>,
        7271  +
        pub(crate) max_length_string: ::std::option::Option<::std::string::String>,
        7272  +
        pub(crate) fixed_length_string: ::std::option::Option<::std::string::String>,
        7273  +
        pub(crate) length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7274  +
        pub(crate) min_length_blob:
        7275  +
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7276  +
        pub(crate) max_length_blob:
        7277  +
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7278  +
        pub(crate) fixed_length_blob:
        7279  +
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7280  +
        pub(crate) range_integer: ::std::option::Option<i32>,
        7281  +
        pub(crate) min_range_integer: ::std::option::Option<i32>,
        7282  +
        pub(crate) max_range_integer: ::std::option::Option<i32>,
        7283  +
        pub(crate) fixed_value_integer: ::std::option::Option<i32>,
        7284  +
        pub(crate) range_short: ::std::option::Option<i16>,
        7285  +
        pub(crate) min_range_short: ::std::option::Option<i16>,
        7286  +
        pub(crate) max_range_short: ::std::option::Option<i16>,
        7287  +
        pub(crate) fixed_value_short: ::std::option::Option<i16>,
        7288  +
        pub(crate) range_long: ::std::option::Option<i64>,
        7289  +
        pub(crate) min_range_long: ::std::option::Option<i64>,
        7290  +
        pub(crate) max_range_long: ::std::option::Option<i64>,
        7291  +
        pub(crate) fixed_value_long: ::std::option::Option<i64>,
        7292  +
        pub(crate) range_byte: ::std::option::Option<i8>,
        7293  +
        pub(crate) min_range_byte: ::std::option::Option<i8>,
        7294  +
        pub(crate) max_range_byte: ::std::option::Option<i8>,
        7295  +
        pub(crate) fixed_value_byte: ::std::option::Option<i8>,
        7296  +
        pub(crate) con_b_list:
        7297  +
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>>,
        7298  +
        pub(crate) length_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7299  +
        pub(crate) sensitive_length_list:
        7300  +
            ::std::option::Option<::std::vec::Vec<crate::model::SensitiveStructure>>,
        7301  +
        pub(crate) con_b_set:
        7302  +
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
        7303  +
        pub(crate) con_b_map: ::std::option::Option<
        7304  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7305  +
        >,
        7306  +
        pub(crate) length_map: ::std::option::Option<
        7307  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7308  +
        >,
        7309  +
        pub(crate) map_of_map_of_list_of_list_of_con_b: ::std::option::Option<
        7310  +
            ::std::collections::HashMap<
        7311  +
                ::std::string::String,
        7312  +
                ::std::collections::HashMap<
        7313  +
                    ::std::string::String,
        7314  +
                    ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>,
        7315  +
                >,
        7316  +
            >,
        7317  +
        >,
        7318  +
        pub(crate) sparse_map: ::std::option::Option<
        7319  +
            ::std::collections::HashMap<
        7320  +
                ::std::string::String,
        7321  +
                ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7322  +
            >,
        7323  +
        >,
        7324  +
        pub(crate) sparse_list:
        7325  +
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
        7326  +
        pub(crate) sparse_length_map: ::std::option::Option<
        7327  +
            ::std::collections::HashMap<
        7328  +
                ::std::string::String,
        7329  +
                ::std::option::Option<::std::string::String>,
        7330  +
            >,
        7331  +
        >,
        7332  +
        pub(crate) sparse_length_list:
        7333  +
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
        7334  +
        pub(crate) constrained_union: ::std::option::Option<crate::model::ConstrainedUnion>,
        7335  +
        pub(crate) enum_string: ::std::option::Option<crate::model::EnumString>,
        7336  +
        pub(crate) list_of_length_string:
        7337  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7338  +
        pub(crate) set_of_length_string:
        7339  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7340  +
        pub(crate) map_of_length_string: ::std::option::Option<
        7341  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7342  +
        >,
        7343  +
        pub(crate) list_of_length_blob:
        7344  +
            ::std::option::Option<::std::vec::Vec<::aws_smithy_http_server_python::types::Blob>>,
        7345  +
        pub(crate) map_of_length_blob: ::std::option::Option<
        7346  +
            ::std::collections::HashMap<
        7347  +
                ::std::string::String,
        7348  +
                ::aws_smithy_http_server_python::types::Blob,
        7349  +
            >,
        7350  +
        >,
        7351  +
        pub(crate) list_of_range_integer: ::std::option::Option<::std::vec::Vec<i32>>,
        7352  +
        pub(crate) set_of_range_integer: ::std::option::Option<::std::vec::Vec<i32>>,
        7353  +
        pub(crate) map_of_range_integer:
        7354  +
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
        7355  +
        pub(crate) list_of_range_short: ::std::option::Option<::std::vec::Vec<i16>>,
        7356  +
        pub(crate) set_of_range_short: ::std::option::Option<::std::vec::Vec<i16>>,
        7357  +
        pub(crate) map_of_range_short:
        7358  +
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i16>>,
        7359  +
        pub(crate) list_of_range_long: ::std::option::Option<::std::vec::Vec<i64>>,
        7360  +
        pub(crate) set_of_range_long: ::std::option::Option<::std::vec::Vec<i64>>,
        7361  +
        pub(crate) map_of_range_long:
        7362  +
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i64>>,
        7363  +
        pub(crate) list_of_range_byte: ::std::option::Option<::std::vec::Vec<i8>>,
        7364  +
        pub(crate) set_of_range_byte: ::std::option::Option<::std::vec::Vec<i8>>,
        7365  +
        pub(crate) map_of_range_byte:
        7366  +
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i8>>,
        7367  +
        pub(crate) non_streaming_blob:
        7368  +
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7369  +
        pub(crate) pattern_string: ::std::option::Option<::std::string::String>,
        7370  +
        pub(crate) map_of_pattern_string: ::std::option::Option<
        7371  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7372  +
        >,
        7373  +
        pub(crate) list_of_pattern_string:
        7374  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7375  +
        pub(crate) set_of_pattern_string:
        7376  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7377  +
        pub(crate) length_length_pattern_string: ::std::option::Option<::std::string::String>,
        7378  +
        pub(crate) map_of_length_pattern_string: ::std::option::Option<
        7379  +
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7380  +
        >,
        7381  +
        pub(crate) list_of_length_pattern_string:
        7382  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7383  +
        pub(crate) set_of_length_pattern_string:
        7384  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7385  +
        pub(crate) length_list_of_pattern_string:
        7386  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7387  +
        pub(crate) length_set_of_pattern_string:
        7388  +
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7389  +
    }
        7390  +
    impl Builder {
        7391  +
        #[allow(missing_docs)] // documentation missing in model
        7392  +
        pub fn con_b(mut self, input: crate::model::ConB) -> Self {
        7393  +
            self.con_b = Some(input);
        7394  +
            self
        7395  +
        }
        7396  +
        #[allow(missing_docs)] // documentation missing in model
        7397  +
        pub fn opt_con_b(mut self, input: ::std::option::Option<crate::model::ConB>) -> Self {
        7398  +
            self.opt_con_b = input;
        7399  +
            self
        7400  +
        }
        7401  +
        #[allow(missing_docs)] // documentation missing in model
        7402  +
        pub fn length_string(
        7403  +
            mut self,
        7404  +
            input: ::std::option::Option<::std::string::String>,
        7405  +
        ) -> Self {
        7406  +
            self.length_string = input;
        7407  +
            self
        7408  +
        }
        7409  +
        #[allow(missing_docs)] // documentation missing in model
        7410  +
        pub fn min_length_string(
        7411  +
            mut self,
        7412  +
            input: ::std::option::Option<::std::string::String>,
        7413  +
        ) -> Self {
        7414  +
            self.min_length_string = input;
        7415  +
            self
        7416  +
        }
        7417  +
        #[allow(missing_docs)] // documentation missing in model
        7418  +
        pub fn max_length_string(
        7419  +
            mut self,
        7420  +
            input: ::std::option::Option<::std::string::String>,
        7421  +
        ) -> Self {
        7422  +
            self.max_length_string = input;
        7423  +
            self
        7424  +
        }
        7425  +
        #[allow(missing_docs)] // documentation missing in model
        7426  +
        pub fn fixed_length_string(
        7427  +
            mut self,
        7428  +
            input: ::std::option::Option<::std::string::String>,
        7429  +
        ) -> Self {
        7430  +
            self.fixed_length_string = input;
        7431  +
            self
        7432  +
        }
        7433  +
        #[allow(missing_docs)] // documentation missing in model
        7434  +
        pub fn length_blob(
        7435  +
            mut self,
        7436  +
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7437  +
        ) -> Self {
        7438  +
            self.length_blob = input;
        7439  +
            self
        7440  +
        }
        7441  +
        #[allow(missing_docs)] // documentation missing in model
        7442  +
        pub fn min_length_blob(
        7443  +
            mut self,
        7444  +
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7445  +
        ) -> Self {
        7446  +
            self.min_length_blob = input;
        7447  +
            self
        7448  +
        }
        7449  +
        #[allow(missing_docs)] // documentation missing in model
        7450  +
        pub fn max_length_blob(
        7451  +
            mut self,
        7452  +
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7453  +
        ) -> Self {
        7454  +
            self.max_length_blob = input;
        7455  +
            self
        7456  +
        }
        7457  +
        #[allow(missing_docs)] // documentation missing in model
        7458  +
        pub fn fixed_length_blob(
        7459  +
            mut self,
        7460  +
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7461  +
        ) -> Self {
        7462  +
            self.fixed_length_blob = input;
        7463  +
            self
        7464  +
        }
        7465  +
        #[allow(missing_docs)] // documentation missing in model
        7466  +
        pub fn range_integer(mut self, input: i32) -> Self {
        7467  +
            self.range_integer = Some(input);
        7468  +
            self
        7469  +
        }
        7470  +
        #[allow(missing_docs)] // documentation missing in model
        7471  +
        pub fn min_range_integer(mut self, input: i32) -> Self {
        7472  +
            self.min_range_integer = Some(input);
        7473  +
            self
        7474  +
        }
        7475  +
        #[allow(missing_docs)] // documentation missing in model
        7476  +
        pub fn max_range_integer(mut self, input: i32) -> Self {
        7477  +
            self.max_range_integer = Some(input);
        7478  +
            self
        7479  +
        }
        7480  +
        #[allow(missing_docs)] // documentation missing in model
        7481  +
        pub fn fixed_value_integer(mut self, input: i32) -> Self {
        7482  +
            self.fixed_value_integer = Some(input);
        7483  +
            self
        7484  +
        }
        7485  +
        #[allow(missing_docs)] // documentation missing in model
        7486  +
        pub fn range_short(mut self, input: i16) -> Self {
        7487  +
            self.range_short = Some(input);
        7488  +
            self
        7489  +
        }
        7490  +
        #[allow(missing_docs)] // documentation missing in model
        7491  +
        pub fn min_range_short(mut self, input: i16) -> Self {
        7492  +
            self.min_range_short = Some(input);
        7493  +
            self
        7494  +
        }
        7495  +
        #[allow(missing_docs)] // documentation missing in model
        7496  +
        pub fn max_range_short(mut self, input: i16) -> Self {
        7497  +
            self.max_range_short = Some(input);
        7498  +
            self
        7499  +
        }
        7500  +
        #[allow(missing_docs)] // documentation missing in model
        7501  +
        pub fn fixed_value_short(mut self, input: i16) -> Self {
        7502  +
            self.fixed_value_short = Some(input);
        7503  +
            self
        7504  +
        }
        7505  +
        #[allow(missing_docs)] // documentation missing in model
        7506  +
        pub fn range_long(mut self, input: i64) -> Self {
        7507  +
            self.range_long = Some(input);
        7508  +
            self
        7509  +
        }
        7510  +
        #[allow(missing_docs)] // documentation missing in model
        7511  +
        pub fn min_range_long(mut self, input: i64) -> Self {
        7512  +
            self.min_range_long = Some(input);
        7513  +
            self
        7514  +
        }
        7515  +
        #[allow(missing_docs)] // documentation missing in model
        7516  +
        pub fn max_range_long(mut self, input: i64) -> Self {
        7517  +
            self.max_range_long = Some(input);
        7518  +
            self
        7519  +
        }
        7520  +
        #[allow(missing_docs)] // documentation missing in model
        7521  +
        pub fn fixed_value_long(mut self, input: i64) -> Self {
        7522  +
            self.fixed_value_long = Some(input);
        7523  +
            self
        7524  +
        }
        7525  +
        #[allow(missing_docs)] // documentation missing in model
        7526  +
        pub fn range_byte(mut self, input: i8) -> Self {
        7527  +
            self.range_byte = Some(input);
        7528  +
            self
        7529  +
        }
        7530  +
        #[allow(missing_docs)] // documentation missing in model
        7531  +
        pub fn min_range_byte(mut self, input: i8) -> Self {
        7532  +
            self.min_range_byte = Some(input);
        7533  +
            self
        7534  +
        }
        7535  +
        #[allow(missing_docs)] // documentation missing in model
        7536  +
        pub fn max_range_byte(mut self, input: i8) -> Self {
        7537  +
            self.max_range_byte = Some(input);
        7538  +
            self
        7539  +
        }
        7540  +
        #[allow(missing_docs)] // documentation missing in model
        7541  +
        pub fn fixed_value_byte(mut self, input: i8) -> Self {
        7542  +
            self.fixed_value_byte = Some(input);
        7543  +
            self
        7544  +
        }
        7545  +
        #[allow(missing_docs)] // documentation missing in model
        7546  +
        pub fn con_b_list(
        7547  +
            mut self,
        7548  +
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>>,
        7549  +
        ) -> Self {
        7550  +
            self.con_b_list = input;
        7551  +
            self
        7552  +
        }
        7553  +
        #[allow(missing_docs)] // documentation missing in model
        7554  +
        pub fn length_list(
        7555  +
            mut self,
        7556  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7557  +
        ) -> Self {
        7558  +
            self.length_list = input;
        7559  +
            self
        7560  +
        }
        7561  +
        #[allow(missing_docs)] // documentation missing in model
        7562  +
        pub fn sensitive_length_list(
        7563  +
            mut self,
        7564  +
            input: ::std::option::Option<::std::vec::Vec<crate::model::SensitiveStructure>>,
        7565  +
        ) -> Self {
        7566  +
            self.sensitive_length_list = input;
        7567  +
            self
        7568  +
        }
        7569  +
        #[allow(missing_docs)] // documentation missing in model
        7570  +
        pub fn con_b_set(
        7571  +
            mut self,
        7572  +
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
        7573  +
        ) -> Self {
        7574  +
            self.con_b_set = input;
        7575  +
            self
        7576  +
        }
        7577  +
        #[allow(missing_docs)] // documentation missing in model
        7578  +
        pub fn con_b_map(
        7579  +
            mut self,
        7580  +
            input: ::std::option::Option<
        7581  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7582  +
            >,
        7583  +
        ) -> Self {
        7584  +
            self.con_b_map = input;
        7585  +
            self
        7586  +
        }
        7587  +
        #[allow(missing_docs)] // documentation missing in model
        7588  +
        pub fn length_map(
        7589  +
            mut self,
        7590  +
            input: ::std::option::Option<
        7591  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7592  +
            >,
        7593  +
        ) -> Self {
        7594  +
            self.length_map = input;
        7595  +
            self
        7596  +
        }
        7597  +
        #[allow(missing_docs)] // documentation missing in model
        7598  +
        pub fn map_of_map_of_list_of_list_of_con_b(
        7599  +
            mut self,
        7600  +
            input: ::std::option::Option<
        7601  +
                ::std::collections::HashMap<
        7602  +
                    ::std::string::String,
        7603  +
                    ::std::collections::HashMap<
        7604  +
                        ::std::string::String,
        7605  +
                        ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>,
        7606  +
                    >,
        7607  +
                >,
        7608  +
            >,
        7609  +
        ) -> Self {
        7610  +
            self.map_of_map_of_list_of_list_of_con_b = input;
        7611  +
            self
        7612  +
        }
        7613  +
        #[allow(missing_docs)] // documentation missing in model
        7614  +
        pub fn sparse_map(
        7615  +
            mut self,
        7616  +
            input: ::std::option::Option<
        7617  +
                ::std::collections::HashMap<
        7618  +
                    ::std::string::String,
        7619  +
                    ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7620  +
                >,
        7621  +
            >,
        7622  +
        ) -> Self {
        7623  +
            self.sparse_map = input;
        7624  +
            self
 8570   7625   
        }
 8571         -
    }
 8572         -
    impl ::std::error::Error for ConstraintViolation {}
 8573         -
    impl ::std::convert::TryFrom<Builder> for crate::model::ConA {
 8574         -
        type Error = ConstraintViolation;
 8575         -
 8576         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 8577         -
            builder.build()
        7626  +
        #[allow(missing_docs)] // documentation missing in model
        7627  +
        pub fn sparse_list(
        7628  +
            mut self,
        7629  +
            input: ::std::option::Option<
        7630  +
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
        7631  +
            >,
        7632  +
        ) -> Self {
        7633  +
            self.sparse_list = input;
        7634  +
            self
 8578   7635   
        }
 8579         -
    }
 8580         -
    /// A builder for [`ConA`](crate::model::ConA).
 8581         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
 8582         -
    pub struct Builder {
 8583         -
        pub(crate) con_b: ::std::option::Option<crate::model::ConB>,
 8584         -
        pub(crate) opt_con_b: ::std::option::Option<crate::model::ConB>,
 8585         -
        pub(crate) length_string: ::std::option::Option<::std::string::String>,
 8586         -
        pub(crate) min_length_string: ::std::option::Option<::std::string::String>,
 8587         -
        pub(crate) max_length_string: ::std::option::Option<::std::string::String>,
 8588         -
        pub(crate) fixed_length_string: ::std::option::Option<::std::string::String>,
 8589         -
        pub(crate) length_blob: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 8590         -
        pub(crate) min_length_blob:
 8591         -
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 8592         -
        pub(crate) max_length_blob:
 8593         -
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 8594         -
        pub(crate) fixed_length_blob:
 8595         -
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 8596         -
        pub(crate) range_integer: ::std::option::Option<i32>,
 8597         -
        pub(crate) min_range_integer: ::std::option::Option<i32>,
 8598         -
        pub(crate) max_range_integer: ::std::option::Option<i32>,
 8599         -
        pub(crate) fixed_value_integer: ::std::option::Option<i32>,
 8600         -
        pub(crate) range_short: ::std::option::Option<i16>,
 8601         -
        pub(crate) min_range_short: ::std::option::Option<i16>,
 8602         -
        pub(crate) max_range_short: ::std::option::Option<i16>,
 8603         -
        pub(crate) fixed_value_short: ::std::option::Option<i16>,
 8604         -
        pub(crate) range_long: ::std::option::Option<i64>,
 8605         -
        pub(crate) min_range_long: ::std::option::Option<i64>,
 8606         -
        pub(crate) max_range_long: ::std::option::Option<i64>,
 8607         -
        pub(crate) fixed_value_long: ::std::option::Option<i64>,
 8608         -
        pub(crate) range_byte: ::std::option::Option<i8>,
 8609         -
        pub(crate) min_range_byte: ::std::option::Option<i8>,
 8610         -
        pub(crate) max_range_byte: ::std::option::Option<i8>,
 8611         -
        pub(crate) fixed_value_byte: ::std::option::Option<i8>,
 8612         -
        pub(crate) con_b_list:
 8613         -
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>>,
 8614         -
        pub(crate) length_list: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8615         -
        pub(crate) sensitive_length_list:
 8616         -
            ::std::option::Option<::std::vec::Vec<crate::model::SensitiveStructure>>,
 8617         -
        pub(crate) con_b_set:
 8618         -
            ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 8619         -
        pub(crate) con_b_map: ::std::option::Option<
 8620         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 8621         -
        >,
 8622         -
        pub(crate) length_map: ::std::option::Option<
 8623         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 8624         -
        >,
 8625         -
        pub(crate) map_of_map_of_list_of_list_of_con_b: ::std::option::Option<
 8626         -
            ::std::collections::HashMap<
 8627         -
                ::std::string::String,
        7636  +
        #[allow(missing_docs)] // documentation missing in model
        7637  +
        pub fn sparse_length_map(
        7638  +
            mut self,
        7639  +
            input: ::std::option::Option<
 8628   7640   
                ::std::collections::HashMap<
 8629   7641   
                    ::std::string::String,
 8630         -
                    ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>,
        7642  +
                    ::std::option::Option<::std::string::String>,
 8631   7643   
                >,
 8632   7644   
            >,
 8633         -
        >,
 8634         -
        pub(crate) sparse_map: ::std::option::Option<
 8635         -
            ::std::collections::HashMap<
 8636         -
                ::std::string::String,
 8637         -
                ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7645  +
        ) -> Self {
        7646  +
            self.sparse_length_map = input;
        7647  +
            self
        7648  +
        }
        7649  +
        #[allow(missing_docs)] // documentation missing in model
        7650  +
        pub fn sparse_length_list(
        7651  +
            mut self,
        7652  +
            input: ::std::option::Option<
        7653  +
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
 8638   7654   
            >,
 8639         -
        >,
 8640         -
        pub(crate) sparse_list:
 8641         -
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
 8642         -
        pub(crate) sparse_length_map: ::std::option::Option<
 8643         -
            ::std::collections::HashMap<
 8644         -
                ::std::string::String,
 8645         -
                ::std::option::Option<::std::string::String>,
        7655  +
        ) -> Self {
        7656  +
            self.sparse_length_list = input;
        7657  +
            self
        7658  +
        }
        7659  +
        /// A union with constrained members.
        7660  +
        pub fn constrained_union(
        7661  +
            mut self,
        7662  +
            input: ::std::option::Option<crate::model::ConstrainedUnion>,
        7663  +
        ) -> Self {
        7664  +
            self.constrained_union = input;
        7665  +
            self
        7666  +
        }
        7667  +
        #[allow(missing_docs)] // documentation missing in model
        7668  +
        pub fn enum_string(
        7669  +
            mut self,
        7670  +
            input: ::std::option::Option<crate::model::EnumString>,
        7671  +
        ) -> Self {
        7672  +
            self.enum_string = input;
        7673  +
            self
        7674  +
        }
        7675  +
        #[allow(missing_docs)] // documentation missing in model
        7676  +
        pub fn list_of_length_string(
        7677  +
            mut self,
        7678  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7679  +
        ) -> Self {
        7680  +
            self.list_of_length_string = input;
        7681  +
            self
        7682  +
        }
        7683  +
        #[allow(missing_docs)] // documentation missing in model
        7684  +
        pub fn set_of_length_string(
        7685  +
            mut self,
        7686  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7687  +
        ) -> Self {
        7688  +
            self.set_of_length_string = input;
        7689  +
            self
        7690  +
        }
        7691  +
        #[allow(missing_docs)] // documentation missing in model
        7692  +
        pub fn map_of_length_string(
        7693  +
            mut self,
        7694  +
            input: ::std::option::Option<
        7695  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 8646   7696   
            >,
 8647         -
        >,
 8648         -
        pub(crate) sparse_length_list:
 8649         -
            ::std::option::Option<::std::vec::Vec<::std::option::Option<::std::string::String>>>,
 8650         -
        pub(crate) constrained_union: ::std::option::Option<crate::model::ConstrainedUnion>,
 8651         -
        pub(crate) enum_string: ::std::option::Option<crate::model::EnumString>,
 8652         -
        pub(crate) list_of_length_string:
 8653         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8654         -
        pub(crate) set_of_length_string:
 8655         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8656         -
        pub(crate) map_of_length_string: ::std::option::Option<
 8657         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 8658         -
        >,
 8659         -
        pub(crate) list_of_length_blob:
 8660         -
            ::std::option::Option<::std::vec::Vec<::aws_smithy_http_server_python::types::Blob>>,
 8661         -
        pub(crate) map_of_length_blob: ::std::option::Option<
 8662         -
            ::std::collections::HashMap<
 8663         -
                ::std::string::String,
 8664         -
                ::aws_smithy_http_server_python::types::Blob,
        7697  +
        ) -> Self {
        7698  +
            self.map_of_length_string = input;
        7699  +
            self
        7700  +
        }
        7701  +
        #[allow(missing_docs)] // documentation missing in model
        7702  +
        pub fn list_of_length_blob(
        7703  +
            mut self,
        7704  +
            input: ::std::option::Option<
        7705  +
                ::std::vec::Vec<::aws_smithy_http_server_python::types::Blob>,
 8665   7706   
            >,
 8666         -
        >,
 8667         -
        pub(crate) list_of_range_integer: ::std::option::Option<::std::vec::Vec<i32>>,
 8668         -
        pub(crate) set_of_range_integer: ::std::option::Option<::std::vec::Vec<i32>>,
 8669         -
        pub(crate) map_of_range_integer:
 8670         -
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
 8671         -
        pub(crate) list_of_range_short: ::std::option::Option<::std::vec::Vec<i16>>,
 8672         -
        pub(crate) set_of_range_short: ::std::option::Option<::std::vec::Vec<i16>>,
 8673         -
        pub(crate) map_of_range_short:
 8674         -
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i16>>,
 8675         -
        pub(crate) list_of_range_long: ::std::option::Option<::std::vec::Vec<i64>>,
 8676         -
        pub(crate) set_of_range_long: ::std::option::Option<::std::vec::Vec<i64>>,
 8677         -
        pub(crate) map_of_range_long:
 8678         -
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i64>>,
 8679         -
        pub(crate) list_of_range_byte: ::std::option::Option<::std::vec::Vec<i8>>,
 8680         -
        pub(crate) set_of_range_byte: ::std::option::Option<::std::vec::Vec<i8>>,
 8681         -
        pub(crate) map_of_range_byte:
 8682         -
            ::std::option::Option<::std::collections::HashMap<::std::string::String, i8>>,
 8683         -
        pub(crate) non_streaming_blob:
 8684         -
            ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 8685         -
        pub(crate) pattern_string: ::std::option::Option<::std::string::String>,
 8686         -
        pub(crate) map_of_pattern_string: ::std::option::Option<
 8687         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 8688         -
        >,
 8689         -
        pub(crate) list_of_pattern_string:
 8690         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8691         -
        pub(crate) set_of_pattern_string:
 8692         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8693         -
        pub(crate) length_length_pattern_string: ::std::option::Option<::std::string::String>,
 8694         -
        pub(crate) map_of_length_pattern_string: ::std::option::Option<
 8695         -
            ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 8696         -
        >,
 8697         -
        pub(crate) list_of_length_pattern_string:
 8698         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8699         -
        pub(crate) set_of_length_pattern_string:
 8700         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8701         -
        pub(crate) length_list_of_pattern_string:
 8702         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8703         -
        pub(crate) length_set_of_pattern_string:
 8704         -
            ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8705         -
    }
 8706         -
    impl Builder {
        7707  +
        ) -> Self {
        7708  +
            self.list_of_length_blob = input;
        7709  +
            self
        7710  +
        }
        7711  +
        #[allow(missing_docs)] // documentation missing in model
        7712  +
        pub fn map_of_length_blob(
        7713  +
            mut self,
        7714  +
            input: ::std::option::Option<
        7715  +
                ::std::collections::HashMap<
        7716  +
                    ::std::string::String,
        7717  +
                    ::aws_smithy_http_server_python::types::Blob,
        7718  +
                >,
        7719  +
            >,
        7720  +
        ) -> Self {
        7721  +
            self.map_of_length_blob = input;
        7722  +
            self
        7723  +
        }
 8707   7724   
        #[allow(missing_docs)] // documentation missing in model
 8708         -
        pub fn con_b(mut self, input: crate::model::ConB) -> Self {
 8709         -
            self.con_b = Some(input);
        7725  +
        pub fn list_of_range_integer(
        7726  +
            mut self,
        7727  +
            input: ::std::option::Option<::std::vec::Vec<i32>>,
        7728  +
        ) -> Self {
        7729  +
            self.list_of_range_integer = input;
 8710   7730   
            self
 8711   7731   
        }
 8712   7732   
        #[allow(missing_docs)] // documentation missing in model
 8713         -
        pub fn opt_con_b(mut self, input: ::std::option::Option<crate::model::ConB>) -> Self {
 8714         -
            self.opt_con_b = input;
        7733  +
        pub fn set_of_range_integer(
        7734  +
            mut self,
        7735  +
            input: ::std::option::Option<::std::vec::Vec<i32>>,
        7736  +
        ) -> Self {
        7737  +
            self.set_of_range_integer = input;
 8715   7738   
            self
 8716   7739   
        }
 8717   7740   
        #[allow(missing_docs)] // documentation missing in model
 8718         -
        pub fn length_string(
        7741  +
        pub fn map_of_range_integer(
 8719   7742   
            mut self,
 8720         -
            input: ::std::option::Option<::std::string::String>,
        7743  +
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
 8721   7744   
        ) -> Self {
 8722         -
            self.length_string = input;
        7745  +
            self.map_of_range_integer = input;
 8723   7746   
            self
 8724   7747   
        }
 8725   7748   
        #[allow(missing_docs)] // documentation missing in model
 8726         -
        pub fn min_length_string(
        7749  +
        pub fn list_of_range_short(
 8727   7750   
            mut self,
 8728         -
            input: ::std::option::Option<::std::string::String>,
        7751  +
            input: ::std::option::Option<::std::vec::Vec<i16>>,
 8729   7752   
        ) -> Self {
 8730         -
            self.min_length_string = input;
        7753  +
            self.list_of_range_short = input;
 8731   7754   
            self
 8732   7755   
        }
 8733   7756   
        #[allow(missing_docs)] // documentation missing in model
 8734         -
        pub fn max_length_string(
        7757  +
        pub fn set_of_range_short(
 8735   7758   
            mut self,
 8736         -
            input: ::std::option::Option<::std::string::String>,
        7759  +
            input: ::std::option::Option<::std::vec::Vec<i16>>,
 8737   7760   
        ) -> Self {
 8738         -
            self.max_length_string = input;
        7761  +
            self.set_of_range_short = input;
 8739   7762   
            self
 8740   7763   
        }
 8741   7764   
        #[allow(missing_docs)] // documentation missing in model
 8742         -
        pub fn fixed_length_string(
        7765  +
        pub fn map_of_range_short(
 8743   7766   
            mut self,
 8744         -
            input: ::std::option::Option<::std::string::String>,
        7767  +
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i16>>,
 8745   7768   
        ) -> Self {
 8746         -
            self.fixed_length_string = input;
        7769  +
            self.map_of_range_short = input;
 8747   7770   
            self
 8748   7771   
        }
 8749   7772   
        #[allow(missing_docs)] // documentation missing in model
 8750         -
        pub fn length_blob(
        7773  +
        pub fn list_of_range_long(
 8751   7774   
            mut self,
 8752         -
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7775  +
            input: ::std::option::Option<::std::vec::Vec<i64>>,
 8753   7776   
        ) -> Self {
 8754         -
            self.length_blob = input;
        7777  +
            self.list_of_range_long = input;
 8755   7778   
            self
 8756   7779   
        }
 8757   7780   
        #[allow(missing_docs)] // documentation missing in model
 8758         -
        pub fn min_length_blob(
        7781  +
        pub fn set_of_range_long(
 8759   7782   
            mut self,
 8760         -
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7783  +
            input: ::std::option::Option<::std::vec::Vec<i64>>,
 8761   7784   
        ) -> Self {
 8762         -
            self.min_length_blob = input;
        7785  +
            self.set_of_range_long = input;
 8763   7786   
            self
 8764   7787   
        }
 8765   7788   
        #[allow(missing_docs)] // documentation missing in model
 8766         -
        pub fn max_length_blob(
        7789  +
        pub fn map_of_range_long(
 8767   7790   
            mut self,
 8768         -
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
        7791  +
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i64>>,
 8769   7792   
        ) -> Self {
 8770         -
            self.max_length_blob = input;
        7793  +
            self.map_of_range_long = input;
 8771   7794   
            self
 8772   7795   
        }
 8773   7796   
        #[allow(missing_docs)] // documentation missing in model
 8774         -
        pub fn fixed_length_blob(
        7797  +
        pub fn list_of_range_byte(
        7798  +
            mut self,
        7799  +
            input: ::std::option::Option<::std::vec::Vec<i8>>,
        7800  +
        ) -> Self {
        7801  +
            self.list_of_range_byte = input;
        7802  +
            self
        7803  +
        }
        7804  +
        #[allow(missing_docs)] // documentation missing in model
        7805  +
        pub fn set_of_range_byte(
        7806  +
            mut self,
        7807  +
            input: ::std::option::Option<::std::vec::Vec<i8>>,
        7808  +
        ) -> Self {
        7809  +
            self.set_of_range_byte = input;
        7810  +
            self
        7811  +
        }
        7812  +
        #[allow(missing_docs)] // documentation missing in model
        7813  +
        pub fn map_of_range_byte(
        7814  +
            mut self,
        7815  +
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i8>>,
        7816  +
        ) -> Self {
        7817  +
            self.map_of_range_byte = input;
        7818  +
            self
        7819  +
        }
        7820  +
        #[allow(missing_docs)] // documentation missing in model
        7821  +
        pub fn non_streaming_blob(
 8775   7822   
            mut self,
 8776   7823   
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 8777   7824   
        ) -> Self {
 8778         -
            self.fixed_length_blob = input;
        7825  +
            self.non_streaming_blob = input;
 8779   7826   
            self
 8780   7827   
        }
 8781   7828   
        #[allow(missing_docs)] // documentation missing in model
 8782         -
        pub fn range_integer(mut self, input: i32) -> Self {
 8783         -
            self.range_integer = Some(input);
        7829  +
        pub fn pattern_string(
        7830  +
            mut self,
        7831  +
            input: ::std::option::Option<::std::string::String>,
        7832  +
        ) -> Self {
        7833  +
            self.pattern_string = input;
 8784   7834   
            self
 8785   7835   
        }
 8786   7836   
        #[allow(missing_docs)] // documentation missing in model
 8787         -
        pub fn min_range_integer(mut self, input: i32) -> Self {
 8788         -
            self.min_range_integer = Some(input);
        7837  +
        pub fn map_of_pattern_string(
        7838  +
            mut self,
        7839  +
            input: ::std::option::Option<
        7840  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7841  +
            >,
        7842  +
        ) -> Self {
        7843  +
            self.map_of_pattern_string = input;
 8789   7844   
            self
 8790   7845   
        }
 8791   7846   
        #[allow(missing_docs)] // documentation missing in model
 8792         -
        pub fn max_range_integer(mut self, input: i32) -> Self {
 8793         -
            self.max_range_integer = Some(input);
        7847  +
        pub fn list_of_pattern_string(
        7848  +
            mut self,
        7849  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7850  +
        ) -> Self {
        7851  +
            self.list_of_pattern_string = input;
 8794   7852   
            self
 8795   7853   
        }
 8796   7854   
        #[allow(missing_docs)] // documentation missing in model
 8797         -
        pub fn fixed_value_integer(mut self, input: i32) -> Self {
 8798         -
            self.fixed_value_integer = Some(input);
        7855  +
        pub fn set_of_pattern_string(
        7856  +
            mut self,
        7857  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7858  +
        ) -> Self {
        7859  +
            self.set_of_pattern_string = input;
 8799   7860   
            self
 8800   7861   
        }
 8801   7862   
        #[allow(missing_docs)] // documentation missing in model
 8802         -
        pub fn range_short(mut self, input: i16) -> Self {
 8803         -
            self.range_short = Some(input);
        7863  +
        pub fn length_length_pattern_string(
        7864  +
            mut self,
        7865  +
            input: ::std::option::Option<::std::string::String>,
        7866  +
        ) -> Self {
        7867  +
            self.length_length_pattern_string = input;
 8804   7868   
            self
 8805   7869   
        }
 8806   7870   
        #[allow(missing_docs)] // documentation missing in model
 8807         -
        pub fn min_range_short(mut self, input: i16) -> Self {
 8808         -
            self.min_range_short = Some(input);
        7871  +
        pub fn map_of_length_pattern_string(
        7872  +
            mut self,
        7873  +
            input: ::std::option::Option<
        7874  +
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        7875  +
            >,
        7876  +
        ) -> Self {
        7877  +
            self.map_of_length_pattern_string = input;
 8809   7878   
            self
 8810   7879   
        }
 8811   7880   
        #[allow(missing_docs)] // documentation missing in model
 8812         -
        pub fn max_range_short(mut self, input: i16) -> Self {
 8813         -
            self.max_range_short = Some(input);
        7881  +
        pub fn list_of_length_pattern_string(
        7882  +
            mut self,
        7883  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7884  +
        ) -> Self {
        7885  +
            self.list_of_length_pattern_string = input;
 8814   7886   
            self
 8815   7887   
        }
 8816   7888   
        #[allow(missing_docs)] // documentation missing in model
 8817         -
        pub fn fixed_value_short(mut self, input: i16) -> Self {
 8818         -
            self.fixed_value_short = Some(input);
        7889  +
        pub fn set_of_length_pattern_string(
        7890  +
            mut self,
        7891  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7892  +
        ) -> Self {
        7893  +
            self.set_of_length_pattern_string = input;
 8819   7894   
            self
 8820   7895   
        }
 8821   7896   
        #[allow(missing_docs)] // documentation missing in model
 8822         -
        pub fn range_long(mut self, input: i64) -> Self {
 8823         -
            self.range_long = Some(input);
        7897  +
        pub fn length_list_of_pattern_string(
        7898  +
            mut self,
        7899  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7900  +
        ) -> Self {
        7901  +
            self.length_list_of_pattern_string = input;
 8824   7902   
            self
 8825   7903   
        }
 8826   7904   
        #[allow(missing_docs)] // documentation missing in model
 8827         -
        pub fn min_range_long(mut self, input: i64) -> Self {
 8828         -
            self.min_range_long = Some(input);
        7905  +
        pub fn length_set_of_pattern_string(
        7906  +
            mut self,
        7907  +
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        7908  +
        ) -> Self {
        7909  +
            self.length_set_of_pattern_string = input;
 8829   7910   
            self
 8830   7911   
        }
 8831         -
        #[allow(missing_docs)] // documentation missing in model
 8832         -
        pub fn max_range_long(mut self, input: i64) -> Self {
 8833         -
            self.max_range_long = Some(input);
 8834         -
            self
        7912  +
        /// Consumes the builder and constructs a [`ConA`](crate::model::ConA).
        7913  +
        ///
        7914  +
        /// The builder fails to construct a [`ConA`](crate::model::ConA) if you do not provide a value for all non-`Option`al members.
        7915  +
        ///
        7916  +
        pub fn build(self) -> Result<crate::model::ConA, ConstraintViolation> {
        7917  +
            self.build_enforcing_required_and_enum_traits()
        7918  +
        }
        7919  +
        fn build_enforcing_required_and_enum_traits(
        7920  +
            self,
        7921  +
        ) -> Result<crate::model::ConA, ConstraintViolation> {
        7922  +
            Ok(crate::model::ConA {
        7923  +
                con_b: self.con_b.ok_or(ConstraintViolation::MissingConB)?,
        7924  +
                opt_con_b: self.opt_con_b,
        7925  +
                length_string: self.length_string,
        7926  +
                min_length_string: self.min_length_string,
        7927  +
                max_length_string: self.max_length_string,
        7928  +
                fixed_length_string: self.fixed_length_string,
        7929  +
                length_blob: self.length_blob,
        7930  +
                min_length_blob: self.min_length_blob,
        7931  +
                max_length_blob: self.max_length_blob,
        7932  +
                fixed_length_blob: self.fixed_length_blob,
        7933  +
                range_integer: self.range_integer.unwrap_or(0i32),
        7934  +
                min_range_integer: self.min_range_integer.unwrap_or(0i32),
        7935  +
                max_range_integer: self.max_range_integer.unwrap_or(0i32),
        7936  +
                fixed_value_integer: self.fixed_value_integer.unwrap_or(0i32),
        7937  +
                range_short: self.range_short.unwrap_or(0i16),
        7938  +
                min_range_short: self.min_range_short.unwrap_or(0i16),
        7939  +
                max_range_short: self.max_range_short.unwrap_or(0i16),
        7940  +
                fixed_value_short: self.fixed_value_short.unwrap_or(0i16),
        7941  +
                range_long: self.range_long.unwrap_or(0i64),
        7942  +
                min_range_long: self.min_range_long.unwrap_or(0i64),
        7943  +
                max_range_long: self.max_range_long.unwrap_or(0i64),
        7944  +
                fixed_value_long: self.fixed_value_long.unwrap_or(0i64),
        7945  +
                range_byte: self.range_byte.unwrap_or(0i8),
        7946  +
                min_range_byte: self.min_range_byte.unwrap_or(0i8),
        7947  +
                max_range_byte: self.max_range_byte.unwrap_or(0i8),
        7948  +
                fixed_value_byte: self.fixed_value_byte.unwrap_or(0i8),
        7949  +
                con_b_list: self.con_b_list,
        7950  +
                length_list: self.length_list,
        7951  +
                sensitive_length_list: self.sensitive_length_list,
        7952  +
                con_b_set: self.con_b_set,
        7953  +
                con_b_map: self.con_b_map,
        7954  +
                length_map: self.length_map,
        7955  +
                map_of_map_of_list_of_list_of_con_b: self.map_of_map_of_list_of_list_of_con_b,
        7956  +
                sparse_map: self.sparse_map,
        7957  +
                sparse_list: self.sparse_list,
        7958  +
                sparse_length_map: self.sparse_length_map,
        7959  +
                sparse_length_list: self.sparse_length_list,
        7960  +
                constrained_union: self.constrained_union,
        7961  +
                enum_string: self.enum_string,
        7962  +
                list_of_length_string: self.list_of_length_string,
        7963  +
                set_of_length_string: self.set_of_length_string,
        7964  +
                map_of_length_string: self.map_of_length_string,
        7965  +
                list_of_length_blob: self.list_of_length_blob,
        7966  +
                map_of_length_blob: self.map_of_length_blob,
        7967  +
                list_of_range_integer: self.list_of_range_integer,
        7968  +
                set_of_range_integer: self.set_of_range_integer,
        7969  +
                map_of_range_integer: self.map_of_range_integer,
        7970  +
                list_of_range_short: self.list_of_range_short,
        7971  +
                set_of_range_short: self.set_of_range_short,
        7972  +
                map_of_range_short: self.map_of_range_short,
        7973  +
                list_of_range_long: self.list_of_range_long,
        7974  +
                set_of_range_long: self.set_of_range_long,
        7975  +
                map_of_range_long: self.map_of_range_long,
        7976  +
                list_of_range_byte: self.list_of_range_byte,
        7977  +
                set_of_range_byte: self.set_of_range_byte,
        7978  +
                map_of_range_byte: self.map_of_range_byte,
        7979  +
                non_streaming_blob: self.non_streaming_blob,
        7980  +
                pattern_string: self.pattern_string,
        7981  +
                map_of_pattern_string: self.map_of_pattern_string,
        7982  +
                list_of_pattern_string: self.list_of_pattern_string,
        7983  +
                set_of_pattern_string: self.set_of_pattern_string,
        7984  +
                length_length_pattern_string: self.length_length_pattern_string,
        7985  +
                map_of_length_pattern_string: self.map_of_length_pattern_string,
        7986  +
                list_of_length_pattern_string: self.list_of_length_pattern_string,
        7987  +
                set_of_length_pattern_string: self.set_of_length_pattern_string,
        7988  +
                length_list_of_pattern_string: self.length_list_of_pattern_string,
        7989  +
                length_set_of_pattern_string: self.length_set_of_pattern_string,
        7990  +
            })
        7991  +
        }
        7992  +
    }
        7993  +
}
        7994  +
pub(crate) mod constrained_list_in_output_internal {
        7995  +
        7996  +
    #[allow(clippy::enum_variant_names)]
        7997  +
    #[derive(Debug, PartialEq)]
        7998  +
    pub(crate) enum ConstraintViolation {
        7999  +
        /// Constraint violation error when the list doesn't have the required length
        8000  +
        Length(usize),
        8001  +
    }
        8002  +
        8003  +
    impl ::std::fmt::Display for ConstraintViolation {
        8004  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8005  +
            let message = match self {
        8006  +
                Self::Length(length) => {
        8007  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#ConstrainedListInOutput' failed to satisfy constraint: Member must have length greater than or equal to 69", length)
        8008  +
                }
        8009  +
            };
        8010  +
            write!(f, "{message}")
        8011  +
        }
        8012  +
    }
        8013  +
        8014  +
    impl ::std::error::Error for ConstraintViolation {}
        8015  +
}
        8016  +
pub(crate) mod constrained_map_in_output_internal {
        8017  +
        8018  +
    #[allow(clippy::enum_variant_names)]
        8019  +
    #[derive(Debug, PartialEq)]
        8020  +
    pub(crate) enum ConstraintViolation {
        8021  +
        Length(usize),
        8022  +
    }
        8023  +
        8024  +
    impl ::std::fmt::Display for ConstraintViolation {
        8025  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8026  +
            match self {
        8027  +
                Self::Length(length) => {
        8028  +
                    write!(f, "Value with length {} provided for 'com.amazonaws.constraints#ConstrainedMapInOutput' failed to satisfy constraint: Member must have length greater than or equal to 69", length)
        8029  +
                }
        8030  +
            }
 8835   8031   
        }
 8836         -
        #[allow(missing_docs)] // documentation missing in model
 8837         -
        pub fn fixed_value_long(mut self, input: i64) -> Self {
 8838         -
            self.fixed_value_long = Some(input);
 8839         -
            self
        8032  +
    }
        8033  +
        8034  +
    impl ::std::error::Error for ConstraintViolation {}
        8035  +
}
        8036  +
pub(crate) mod length_string_internal {
        8037  +
        8038  +
    #[derive(Debug, PartialEq)]
        8039  +
    pub enum ConstraintViolation {
        8040  +
        /// Error when a string doesn't satisfy its `@length` requirements.
        8041  +
        Length(usize),
        8042  +
    }
        8043  +
        8044  +
    impl ::std::fmt::Display for ConstraintViolation {
        8045  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8046  +
            let message = match self {
        8047  +
                Self::Length(length) => {
        8048  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthString' failed to satisfy constraint: Member must have length between 2 and 69, inclusive", length)
        8049  +
                }
        8050  +
            };
        8051  +
            write!(f, "{message}")
 8840   8052   
        }
 8841         -
        #[allow(missing_docs)] // documentation missing in model
 8842         -
        pub fn range_byte(mut self, input: i8) -> Self {
 8843         -
            self.range_byte = Some(input);
 8844         -
            self
        8053  +
    }
        8054  +
        8055  +
    impl ::std::error::Error for ConstraintViolation {}
        8056  +
    impl ConstraintViolation {
        8057  +
        pub(crate) fn as_validation_exception_field(
        8058  +
            self,
        8059  +
            path: ::std::string::String,
        8060  +
        ) -> crate::model::ValidationExceptionField {
        8061  +
            match self {
        8062  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
        8063  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 2 and 69, inclusive", length, &path),
        8064  +
                            path,
        8065  +
                        },
        8066  +
                        }
 8845   8067   
        }
 8846         -
        #[allow(missing_docs)] // documentation missing in model
 8847         -
        pub fn min_range_byte(mut self, input: i8) -> Self {
 8848         -
            self.min_range_byte = Some(input);
 8849         -
            self
        8068  +
    }
        8069  +
}
        8070  +
pub(crate) mod range_integer_internal {
        8071  +
        8072  +
    #[derive(Debug, PartialEq)]
        8073  +
    pub enum ConstraintViolation {
        8074  +
        Range(i32),
        8075  +
    }
        8076  +
        8077  +
    impl ::std::fmt::Display for ConstraintViolation {
        8078  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8079  +
            write!(f, "Value for `com.amazonaws.constraints#RangeInteger`failed to satisfy constraint: Member must be between 0 and 69, inclusive")
 8850   8080   
        }
 8851         -
        #[allow(missing_docs)] // documentation missing in model
 8852         -
        pub fn max_range_byte(mut self, input: i8) -> Self {
 8853         -
            self.max_range_byte = Some(input);
 8854         -
            self
        8081  +
    }
        8082  +
        8083  +
    impl ::std::error::Error for ConstraintViolation {}
        8084  +
    impl ConstraintViolation {
        8085  +
        pub(crate) fn as_validation_exception_field(
        8086  +
            self,
        8087  +
            path: ::std::string::String,
        8088  +
        ) -> crate::model::ValidationExceptionField {
        8089  +
            match self {
        8090  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
        8091  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 69, inclusive", &path),
        8092  +
                            path,
        8093  +
                        },
        8094  +
                        }
 8855   8095   
        }
 8856         -
        #[allow(missing_docs)] // documentation missing in model
 8857         -
        pub fn fixed_value_byte(mut self, input: i8) -> Self {
 8858         -
            self.fixed_value_byte = Some(input);
 8859         -
            self
        8096  +
    }
        8097  +
}
        8098  +
pub(crate) mod range_short_internal {
        8099  +
        8100  +
    #[derive(Debug, PartialEq)]
        8101  +
    pub enum ConstraintViolation {
        8102  +
        Range(i16),
        8103  +
    }
        8104  +
        8105  +
    impl ::std::fmt::Display for ConstraintViolation {
        8106  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8107  +
            write!(f, "Value for `com.amazonaws.constraints#RangeShort`failed to satisfy constraint: Member must be between 0 and 10, inclusive")
 8860   8108   
        }
 8861         -
        #[allow(missing_docs)] // documentation missing in model
 8862         -
        pub fn con_b_list(
 8863         -
            mut self,
 8864         -
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>>,
 8865         -
        ) -> Self {
 8866         -
            self.con_b_list = input;
 8867         -
            self
        8109  +
    }
        8110  +
        8111  +
    impl ::std::error::Error for ConstraintViolation {}
        8112  +
    impl ConstraintViolation {
        8113  +
        pub(crate) fn as_validation_exception_field(
        8114  +
            self,
        8115  +
            path: ::std::string::String,
        8116  +
        ) -> crate::model::ValidationExceptionField {
        8117  +
            match self {
        8118  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
        8119  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 10, inclusive", &path),
        8120  +
                            path,
        8121  +
                        },
        8122  +
                        }
 8868   8123   
        }
 8869         -
        #[allow(missing_docs)] // documentation missing in model
 8870         -
        pub fn length_list(
 8871         -
            mut self,
 8872         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8873         -
        ) -> Self {
 8874         -
            self.length_list = input;
 8875         -
            self
        8124  +
    }
        8125  +
}
        8126  +
pub(crate) mod range_long_internal {
        8127  +
        8128  +
    #[derive(Debug, PartialEq)]
        8129  +
    pub enum ConstraintViolation {
        8130  +
        Range(i64),
        8131  +
    }
        8132  +
        8133  +
    impl ::std::fmt::Display for ConstraintViolation {
        8134  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8135  +
            write!(f, "Value for `com.amazonaws.constraints#RangeLong`failed to satisfy constraint: Member must be between 0 and 10, inclusive")
 8876   8136   
        }
 8877         -
        #[allow(missing_docs)] // documentation missing in model
 8878         -
        pub fn sensitive_length_list(
 8879         -
            mut self,
 8880         -
            input: ::std::option::Option<::std::vec::Vec<crate::model::SensitiveStructure>>,
 8881         -
        ) -> Self {
 8882         -
            self.sensitive_length_list = input;
 8883         -
            self
        8137  +
    }
        8138  +
        8139  +
    impl ::std::error::Error for ConstraintViolation {}
        8140  +
    impl ConstraintViolation {
        8141  +
        pub(crate) fn as_validation_exception_field(
        8142  +
            self,
        8143  +
            path: ::std::string::String,
        8144  +
        ) -> crate::model::ValidationExceptionField {
        8145  +
            match self {
        8146  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
        8147  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 10, inclusive", &path),
        8148  +
                            path,
        8149  +
                        },
        8150  +
                        }
 8884   8151   
        }
 8885         -
        #[allow(missing_docs)] // documentation missing in model
 8886         -
        pub fn con_b_set(
 8887         -
            mut self,
 8888         -
            input: ::std::option::Option<::std::vec::Vec<::std::vec::Vec<::std::string::String>>>,
 8889         -
        ) -> Self {
 8890         -
            self.con_b_set = input;
 8891         -
            self
        8152  +
    }
        8153  +
}
        8154  +
pub(crate) mod range_byte_internal {
        8155  +
        8156  +
    #[derive(Debug, PartialEq)]
        8157  +
    pub enum ConstraintViolation {
        8158  +
        Range(i8),
        8159  +
    }
        8160  +
        8161  +
    impl ::std::fmt::Display for ConstraintViolation {
        8162  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8163  +
            write!(f, "Value for `com.amazonaws.constraints#RangeByte`failed to satisfy constraint: Member must be between 0 and 10, inclusive")
 8892   8164   
        }
 8893         -
        #[allow(missing_docs)] // documentation missing in model
 8894         -
        pub fn con_b_map(
 8895         -
            mut self,
 8896         -
            input: ::std::option::Option<
 8897         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 8898         -
            >,
 8899         -
        ) -> Self {
 8900         -
            self.con_b_map = input;
 8901         -
            self
        8165  +
    }
        8166  +
        8167  +
    impl ::std::error::Error for ConstraintViolation {}
        8168  +
    impl ConstraintViolation {
        8169  +
        pub(crate) fn as_validation_exception_field(
        8170  +
            self,
        8171  +
            path: ::std::string::String,
        8172  +
        ) -> crate::model::ValidationExceptionField {
        8173  +
            match self {
        8174  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
        8175  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 10, inclusive", &path),
        8176  +
                            path,
        8177  +
                        },
        8178  +
                        }
 8902   8179   
        }
 8903         -
        #[allow(missing_docs)] // documentation missing in model
 8904         -
        pub fn length_map(
 8905         -
            mut self,
 8906         -
            input: ::std::option::Option<
 8907         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 8908         -
            >,
 8909         -
        ) -> Self {
 8910         -
            self.length_map = input;
 8911         -
            self
        8180  +
    }
        8181  +
}
        8182  +
pub(crate) mod map_of_length_string_internal {
        8183  +
        8184  +
    #[allow(clippy::enum_variant_names)]
        8185  +
    #[derive(Debug, PartialEq)]
        8186  +
    pub(crate) enum ConstraintViolation {
        8187  +
        #[doc(hidden)]
        8188  +
        Key(crate::model::length_string_internal::ConstraintViolation),
        8189  +
        #[doc(hidden)]
        8190  +
        Value(
        8191  +
            crate::model::LengthString,
        8192  +
            crate::model::length_string_internal::ConstraintViolation,
        8193  +
        ),
        8194  +
    }
        8195  +
        8196  +
    impl ::std::fmt::Display for ConstraintViolation {
        8197  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8198  +
            match self {
        8199  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        8200  +
                Self::Value(_, value_constraint_violation) => {
        8201  +
                    write!(f, "{}", value_constraint_violation)
        8202  +
                }
        8203  +
            }
 8912   8204   
        }
 8913         -
        #[allow(missing_docs)] // documentation missing in model
 8914         -
        pub fn map_of_map_of_list_of_list_of_con_b(
 8915         -
            mut self,
 8916         -
            input: ::std::option::Option<
 8917         -
                ::std::collections::HashMap<
 8918         -
                    ::std::string::String,
 8919         -
                    ::std::collections::HashMap<
 8920         -
                        ::std::string::String,
 8921         -
                        ::std::vec::Vec<::std::vec::Vec<crate::model::ConB>>,
 8922         -
                    >,
 8923         -
                >,
 8924         -
            >,
 8925         -
        ) -> Self {
 8926         -
            self.map_of_map_of_list_of_list_of_con_b = input;
 8927         -
            self
        8205  +
    }
        8206  +
        8207  +
    impl ::std::error::Error for ConstraintViolation {}
        8208  +
    impl ConstraintViolation {
        8209  +
        pub(crate) fn as_validation_exception_field(
        8210  +
            self,
        8211  +
            path: ::std::string::String,
        8212  +
        ) -> crate::model::ValidationExceptionField {
        8213  +
            match self {
        8214  +
                Self::Key(key_constraint_violation) => {
        8215  +
                    key_constraint_violation.as_validation_exception_field(path)
        8216  +
                }
        8217  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        8218  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        8219  +
            }
 8928   8220   
        }
 8929         -
        #[allow(missing_docs)] // documentation missing in model
 8930         -
        pub fn sparse_map(
 8931         -
            mut self,
 8932         -
            input: ::std::option::Option<
 8933         -
                ::std::collections::HashMap<
 8934         -
                    ::std::string::String,
 8935         -
                    ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8936         -
                >,
 8937         -
            >,
 8938         -
        ) -> Self {
 8939         -
            self.sparse_map = input;
 8940         -
            self
        8221  +
    }
        8222  +
}
        8223  +
pub(crate) mod set_of_length_string_internal {
        8224  +
        8225  +
    #[allow(clippy::enum_variant_names)]
        8226  +
    #[derive(Debug, PartialEq)]
        8227  +
    pub(crate) enum ConstraintViolation {
        8228  +
        /// Constraint violation error when the list does not contain unique items
        8229  +
        UniqueItems {
        8230  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        8231  +
            /// at least two elements.
        8232  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        8233  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        8234  +
            /// Nothing is guaranteed about the order of the indices.
        8235  +
            duplicate_indices: ::std::vec::Vec<usize>,
        8236  +
            /// The original vector, that contains duplicate items.
        8237  +
            original: ::std::vec::Vec<crate::model::LengthString>,
        8238  +
        },
        8239  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8240  +
        /// The first component of the tuple is the index in the collection where the
        8241  +
        /// first constraint violation was found.
        8242  +
        #[doc(hidden)]
        8243  +
        Member(
        8244  +
            usize,
        8245  +
            crate::model::length_string_internal::ConstraintViolation,
        8246  +
        ),
        8247  +
    }
        8248  +
        8249  +
    impl ::std::fmt::Display for ConstraintViolation {
        8250  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8251  +
            let message = match self {
        8252  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        8253  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfLengthString' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        8254  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
        8255  +
                           failing_member)
        8256  +
                            };
        8257  +
            write!(f, "{message}")
 8941   8258   
        }
 8942         -
        #[allow(missing_docs)] // documentation missing in model
 8943         -
        pub fn sparse_list(
 8944         -
            mut self,
 8945         -
            input: ::std::option::Option<
 8946         -
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
 8947         -
            >,
 8948         -
        ) -> Self {
 8949         -
            self.sparse_list = input;
 8950         -
            self
        8259  +
    }
        8260  +
        8261  +
    impl ::std::error::Error for ConstraintViolation {}
        8262  +
    impl ConstraintViolation {
        8263  +
        pub(crate) fn as_validation_exception_field(
        8264  +
            self,
        8265  +
            path: ::std::string::String,
        8266  +
        ) -> crate::model::ValidationExceptionField {
        8267  +
            match self {
        8268  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        8269  +
                                crate::model::ValidationExceptionField {
        8270  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        8271  +
                                    path,
        8272  +
                                },
        8273  +
    Self::Member(index, member_constraint_violation) =>
        8274  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
        8275  +
                    }
 8951   8276   
        }
 8952         -
        #[allow(missing_docs)] // documentation missing in model
 8953         -
        pub fn sparse_length_map(
 8954         -
            mut self,
 8955         -
            input: ::std::option::Option<
 8956         -
                ::std::collections::HashMap<
 8957         -
                    ::std::string::String,
 8958         -
                    ::std::option::Option<::std::string::String>,
 8959         -
                >,
 8960         -
            >,
 8961         -
        ) -> Self {
 8962         -
            self.sparse_length_map = input;
 8963         -
            self
        8277  +
    }
        8278  +
}
        8279  +
pub(crate) mod list_of_length_string_internal {
        8280  +
        8281  +
    #[allow(clippy::enum_variant_names)]
        8282  +
    #[derive(Debug, PartialEq)]
        8283  +
    pub(crate) enum ConstraintViolation {
        8284  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8285  +
        /// The first component of the tuple is the index in the collection where the
        8286  +
        /// first constraint violation was found.
        8287  +
        #[doc(hidden)]
        8288  +
        Member(
        8289  +
            usize,
        8290  +
            crate::model::length_string_internal::ConstraintViolation,
        8291  +
        ),
        8292  +
    }
        8293  +
        8294  +
    impl ::std::fmt::Display for ConstraintViolation {
        8295  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8296  +
            let message = match self {
        8297  +
                Self::Member(index, failing_member) => format!(
        8298  +
                    "Value at index {index} failed to satisfy constraint. {}",
        8299  +
                    failing_member
        8300  +
                ),
        8301  +
            };
        8302  +
            write!(f, "{message}")
 8964   8303   
        }
 8965         -
        #[allow(missing_docs)] // documentation missing in model
 8966         -
        pub fn sparse_length_list(
 8967         -
            mut self,
 8968         -
            input: ::std::option::Option<
 8969         -
                ::std::vec::Vec<::std::option::Option<::std::string::String>>,
 8970         -
            >,
 8971         -
        ) -> Self {
 8972         -
            self.sparse_length_list = input;
 8973         -
            self
        8304  +
    }
        8305  +
        8306  +
    impl ::std::error::Error for ConstraintViolation {}
        8307  +
    impl ConstraintViolation {
        8308  +
        pub(crate) fn as_validation_exception_field(
        8309  +
            self,
        8310  +
            path: ::std::string::String,
        8311  +
        ) -> crate::model::ValidationExceptionField {
        8312  +
            match self {
        8313  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
        8314  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        8315  +
            }
 8974   8316   
        }
 8975         -
        /// A union with constrained members.
 8976         -
        pub fn constrained_union(
 8977         -
            mut self,
 8978         -
            input: ::std::option::Option<crate::model::ConstrainedUnion>,
 8979         -
        ) -> Self {
 8980         -
            self.constrained_union = input;
 8981         -
            self
        8317  +
    }
        8318  +
}
        8319  +
pub(crate) mod length_list_of_pattern_string_internal {
        8320  +
        8321  +
    #[allow(clippy::enum_variant_names)]
        8322  +
    #[derive(Debug, PartialEq)]
        8323  +
    pub(crate) enum ConstraintViolation {
        8324  +
        /// Constraint violation error when the list doesn't have the required length
        8325  +
        Length(usize),
        8326  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8327  +
        /// The first component of the tuple is the index in the collection where the
        8328  +
        /// first constraint violation was found.
        8329  +
        #[doc(hidden)]
        8330  +
        Member(
        8331  +
            usize,
        8332  +
            crate::model::pattern_string_internal::ConstraintViolation,
        8333  +
        ),
        8334  +
    }
        8335  +
        8336  +
    impl ::std::fmt::Display for ConstraintViolation {
        8337  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8338  +
            let message = match self {
        8339  +
                Self::Length(length) => {
        8340  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthListOfPatternString' failed to satisfy constraint: Member must have length between 12 and 39, inclusive", length)
        8341  +
                }
        8342  +
                Self::Member(index, failing_member) => format!(
        8343  +
                    "Value at index {index} failed to satisfy constraint. {}",
        8344  +
                    failing_member
        8345  +
                ),
        8346  +
            };
        8347  +
            write!(f, "{message}")
 8982   8348   
        }
 8983         -
        #[allow(missing_docs)] // documentation missing in model
 8984         -
        pub fn enum_string(
 8985         -
            mut self,
 8986         -
            input: ::std::option::Option<crate::model::EnumString>,
 8987         -
        ) -> Self {
 8988         -
            self.enum_string = input;
 8989         -
            self
        8349  +
    }
        8350  +
        8351  +
    impl ::std::error::Error for ConstraintViolation {}
        8352  +
    impl ConstraintViolation {
        8353  +
        pub(crate) fn as_validation_exception_field(
        8354  +
            self,
        8355  +
            path: ::std::string::String,
        8356  +
        ) -> crate::model::ValidationExceptionField {
        8357  +
            match self {
        8358  +
                        Self::Length(length) => crate::model::ValidationExceptionField {
        8359  +
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 12 and 39, inclusive", length, &path),
        8360  +
                                path,
        8361  +
                            },
        8362  +
    Self::Member(index, member_constraint_violation) =>
        8363  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
        8364  +
                    }
        8365  +
        }
        8366  +
    }
        8367  +
}
        8368  +
pub(crate) mod length_set_of_pattern_string_internal {
        8369  +
        8370  +
    #[allow(clippy::enum_variant_names)]
        8371  +
    #[derive(Debug, PartialEq)]
        8372  +
    pub(crate) enum ConstraintViolation {
        8373  +
        /// Constraint violation error when the list doesn't have the required length
        8374  +
        Length(usize),
        8375  +
        /// Constraint violation error when the list does not contain unique items
        8376  +
        UniqueItems {
        8377  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        8378  +
            /// at least two elements.
        8379  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        8380  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        8381  +
            /// Nothing is guaranteed about the order of the indices.
        8382  +
            duplicate_indices: ::std::vec::Vec<usize>,
        8383  +
            /// The original vector, that contains duplicate items.
        8384  +
            original: ::std::vec::Vec<crate::model::PatternString>,
        8385  +
        },
        8386  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8387  +
        /// The first component of the tuple is the index in the collection where the
        8388  +
        /// first constraint violation was found.
        8389  +
        #[doc(hidden)]
        8390  +
        Member(
        8391  +
            usize,
        8392  +
            crate::model::pattern_string_internal::ConstraintViolation,
        8393  +
        ),
        8394  +
    }
        8395  +
        8396  +
    impl ::std::fmt::Display for ConstraintViolation {
        8397  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8398  +
            let message = match self {
        8399  +
                                Self::Length(length) => {
        8400  +
                            format!("Value with length {} provided for 'com.amazonaws.constraints#LengthSetOfPatternString' failed to satisfy constraint: Member must have length between 5 and 9, inclusive", length)
        8401  +
                        },
        8402  +
    Self::UniqueItems { duplicate_indices, .. } =>
        8403  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#LengthSetOfPatternString' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        8404  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
        8405  +
                           failing_member)
        8406  +
                            };
        8407  +
            write!(f, "{message}")
 8990   8408   
        }
 8991         -
        #[allow(missing_docs)] // documentation missing in model
 8992         -
        pub fn list_of_length_string(
 8993         -
            mut self,
 8994         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 8995         -
        ) -> Self {
 8996         -
            self.list_of_length_string = input;
 8997         -
            self
        8409  +
    }
        8410  +
        8411  +
    impl ::std::error::Error for ConstraintViolation {}
        8412  +
    impl ConstraintViolation {
        8413  +
        pub(crate) fn as_validation_exception_field(
        8414  +
            self,
        8415  +
            path: ::std::string::String,
        8416  +
        ) -> crate::model::ValidationExceptionField {
        8417  +
            match self {
        8418  +
                        Self::Length(length) => crate::model::ValidationExceptionField {
        8419  +
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 5 and 9, inclusive", length, &path),
        8420  +
                                path,
        8421  +
                            },
        8422  +
    Self::UniqueItems { duplicate_indices, .. } =>
        8423  +
                                crate::model::ValidationExceptionField {
        8424  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        8425  +
                                    path,
        8426  +
                                },
        8427  +
    Self::Member(index, member_constraint_violation) =>
        8428  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
        8429  +
                    }
 8998   8430   
        }
 8999         -
        #[allow(missing_docs)] // documentation missing in model
 9000         -
        pub fn set_of_length_string(
 9001         -
            mut self,
 9002         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 9003         -
        ) -> Self {
 9004         -
            self.set_of_length_string = input;
 9005         -
            self
        8431  +
    }
        8432  +
}
        8433  +
pub(crate) mod set_of_range_byte_internal {
        8434  +
        8435  +
    #[allow(clippy::enum_variant_names)]
        8436  +
    #[derive(Debug, PartialEq)]
        8437  +
    pub(crate) enum ConstraintViolation {
        8438  +
        /// Constraint violation error when the list does not contain unique items
        8439  +
        UniqueItems {
        8440  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        8441  +
            /// at least two elements.
        8442  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        8443  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        8444  +
            /// Nothing is guaranteed about the order of the indices.
        8445  +
            duplicate_indices: ::std::vec::Vec<usize>,
        8446  +
            /// The original vector, that contains duplicate items.
        8447  +
            original: ::std::vec::Vec<crate::model::RangeByte>,
        8448  +
        },
        8449  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8450  +
        /// The first component of the tuple is the index in the collection where the
        8451  +
        /// first constraint violation was found.
        8452  +
        #[doc(hidden)]
        8453  +
        Member(
        8454  +
            usize,
        8455  +
            crate::model::range_byte_internal::ConstraintViolation,
        8456  +
        ),
        8457  +
    }
        8458  +
        8459  +
    impl ::std::fmt::Display for ConstraintViolation {
        8460  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8461  +
            let message = match self {
        8462  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        8463  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfRangeByte' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        8464  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
        8465  +
                           failing_member)
        8466  +
                            };
        8467  +
            write!(f, "{message}")
 9006   8468   
        }
 9007         -
        #[allow(missing_docs)] // documentation missing in model
 9008         -
        pub fn map_of_length_string(
 9009         -
            mut self,
 9010         -
            input: ::std::option::Option<
 9011         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
 9012         -
            >,
 9013         -
        ) -> Self {
 9014         -
            self.map_of_length_string = input;
 9015         -
            self
        8469  +
    }
        8470  +
        8471  +
    impl ::std::error::Error for ConstraintViolation {}
        8472  +
    impl ConstraintViolation {
        8473  +
        pub(crate) fn as_validation_exception_field(
        8474  +
            self,
        8475  +
            path: ::std::string::String,
        8476  +
        ) -> crate::model::ValidationExceptionField {
        8477  +
            match self {
        8478  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        8479  +
                                crate::model::ValidationExceptionField {
        8480  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        8481  +
                                    path,
        8482  +
                                },
        8483  +
    Self::Member(index, member_constraint_violation) =>
        8484  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
        8485  +
                    }
 9016   8486   
        }
 9017         -
        #[allow(missing_docs)] // documentation missing in model
 9018         -
        pub fn list_of_length_blob(
 9019         -
            mut self,
 9020         -
            input: ::std::option::Option<
 9021         -
                ::std::vec::Vec<::aws_smithy_http_server_python::types::Blob>,
 9022         -
            >,
 9023         -
        ) -> Self {
 9024         -
            self.list_of_length_blob = input;
 9025         -
            self
        8487  +
    }
        8488  +
}
        8489  +
pub(crate) mod set_of_range_short_internal {
        8490  +
        8491  +
    #[allow(clippy::enum_variant_names)]
        8492  +
    #[derive(Debug, PartialEq)]
        8493  +
    pub(crate) enum ConstraintViolation {
        8494  +
        /// Constraint violation error when the list does not contain unique items
        8495  +
        UniqueItems {
        8496  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        8497  +
            /// at least two elements.
        8498  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        8499  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        8500  +
            /// Nothing is guaranteed about the order of the indices.
        8501  +
            duplicate_indices: ::std::vec::Vec<usize>,
        8502  +
            /// The original vector, that contains duplicate items.
        8503  +
            original: ::std::vec::Vec<crate::model::RangeShort>,
        8504  +
        },
        8505  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8506  +
        /// The first component of the tuple is the index in the collection where the
        8507  +
        /// first constraint violation was found.
        8508  +
        #[doc(hidden)]
        8509  +
        Member(
        8510  +
            usize,
        8511  +
            crate::model::range_short_internal::ConstraintViolation,
        8512  +
        ),
        8513  +
    }
        8514  +
        8515  +
    impl ::std::fmt::Display for ConstraintViolation {
        8516  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8517  +
            let message = match self {
        8518  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        8519  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfRangeShort' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        8520  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
        8521  +
                           failing_member)
        8522  +
                            };
        8523  +
            write!(f, "{message}")
 9026   8524   
        }
 9027         -
        #[allow(missing_docs)] // documentation missing in model
 9028         -
        pub fn map_of_length_blob(
 9029         -
            mut self,
 9030         -
            input: ::std::option::Option<
 9031         -
                ::std::collections::HashMap<
 9032         -
                    ::std::string::String,
 9033         -
                    ::aws_smithy_http_server_python::types::Blob,
 9034         -
                >,
 9035         -
            >,
 9036         -
        ) -> Self {
 9037         -
            self.map_of_length_blob = input;
 9038         -
            self
        8525  +
    }
        8526  +
        8527  +
    impl ::std::error::Error for ConstraintViolation {}
        8528  +
    impl ConstraintViolation {
        8529  +
        pub(crate) fn as_validation_exception_field(
        8530  +
            self,
        8531  +
            path: ::std::string::String,
        8532  +
        ) -> crate::model::ValidationExceptionField {
        8533  +
            match self {
        8534  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        8535  +
                                crate::model::ValidationExceptionField {
        8536  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        8537  +
                                    path,
        8538  +
                                },
        8539  +
    Self::Member(index, member_constraint_violation) =>
        8540  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
        8541  +
                    }
 9039   8542   
        }
 9040         -
        #[allow(missing_docs)] // documentation missing in model
 9041         -
        pub fn list_of_range_integer(
 9042         -
            mut self,
 9043         -
            input: ::std::option::Option<::std::vec::Vec<i32>>,
 9044         -
        ) -> Self {
 9045         -
            self.list_of_range_integer = input;
 9046         -
            self
        8543  +
    }
        8544  +
}
        8545  +
pub(crate) mod set_of_range_integer_internal {
        8546  +
        8547  +
    #[allow(clippy::enum_variant_names)]
        8548  +
    #[derive(Debug, PartialEq)]
        8549  +
    pub(crate) enum ConstraintViolation {
        8550  +
        /// Constraint violation error when the list does not contain unique items
        8551  +
        UniqueItems {
        8552  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        8553  +
            /// at least two elements.
        8554  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        8555  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        8556  +
            /// Nothing is guaranteed about the order of the indices.
        8557  +
            duplicate_indices: ::std::vec::Vec<usize>,
        8558  +
            /// The original vector, that contains duplicate items.
        8559  +
            original: ::std::vec::Vec<crate::model::RangeInteger>,
        8560  +
        },
        8561  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8562  +
        /// The first component of the tuple is the index in the collection where the
        8563  +
        /// first constraint violation was found.
        8564  +
        #[doc(hidden)]
        8565  +
        Member(
        8566  +
            usize,
        8567  +
            crate::model::range_integer_internal::ConstraintViolation,
        8568  +
        ),
        8569  +
    }
        8570  +
        8571  +
    impl ::std::fmt::Display for ConstraintViolation {
        8572  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8573  +
            let message = match self {
        8574  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        8575  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfRangeInteger' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        8576  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
        8577  +
                           failing_member)
        8578  +
                            };
        8579  +
            write!(f, "{message}")
 9047   8580   
        }
 9048         -
        #[allow(missing_docs)] // documentation missing in model
 9049         -
        pub fn set_of_range_integer(
 9050         -
            mut self,
 9051         -
            input: ::std::option::Option<::std::vec::Vec<i32>>,
 9052         -
        ) -> Self {
 9053         -
            self.set_of_range_integer = input;
 9054         -
            self
        8581  +
    }
        8582  +
        8583  +
    impl ::std::error::Error for ConstraintViolation {}
        8584  +
    impl ConstraintViolation {
        8585  +
        pub(crate) fn as_validation_exception_field(
        8586  +
            self,
        8587  +
            path: ::std::string::String,
        8588  +
        ) -> crate::model::ValidationExceptionField {
        8589  +
            match self {
        8590  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        8591  +
                                crate::model::ValidationExceptionField {
        8592  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        8593  +
                                    path,
        8594  +
                                },
        8595  +
    Self::Member(index, member_constraint_violation) =>
        8596  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
        8597  +
                    }
 9055   8598   
        }
 9056         -
        #[allow(missing_docs)] // documentation missing in model
 9057         -
        pub fn map_of_range_integer(
 9058         -
            mut self,
 9059         -
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i32>>,
 9060         -
        ) -> Self {
 9061         -
            self.map_of_range_integer = input;
 9062         -
            self
        8599  +
    }
        8600  +
}
        8601  +
pub(crate) mod set_of_range_long_internal {
        8602  +
        8603  +
    #[allow(clippy::enum_variant_names)]
        8604  +
    #[derive(Debug, PartialEq)]
        8605  +
    pub(crate) enum ConstraintViolation {
        8606  +
        /// Constraint violation error when the list does not contain unique items
        8607  +
        UniqueItems {
        8608  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
        8609  +
            /// at least two elements.
        8610  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
        8611  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
        8612  +
            /// Nothing is guaranteed about the order of the indices.
        8613  +
            duplicate_indices: ::std::vec::Vec<usize>,
        8614  +
            /// The original vector, that contains duplicate items.
        8615  +
            original: ::std::vec::Vec<crate::model::RangeLong>,
        8616  +
        },
        8617  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8618  +
        /// The first component of the tuple is the index in the collection where the
        8619  +
        /// first constraint violation was found.
        8620  +
        #[doc(hidden)]
        8621  +
        Member(
        8622  +
            usize,
        8623  +
            crate::model::range_long_internal::ConstraintViolation,
        8624  +
        ),
        8625  +
    }
        8626  +
        8627  +
    impl ::std::fmt::Display for ConstraintViolation {
        8628  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8629  +
            let message = match self {
        8630  +
                                Self::UniqueItems { duplicate_indices, .. } =>
        8631  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfRangeLong' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
        8632  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
        8633  +
                           failing_member)
        8634  +
                            };
        8635  +
            write!(f, "{message}")
 9063   8636   
        }
 9064         -
        #[allow(missing_docs)] // documentation missing in model
 9065         -
        pub fn list_of_range_short(
 9066         -
            mut self,
 9067         -
            input: ::std::option::Option<::std::vec::Vec<i16>>,
 9068         -
        ) -> Self {
 9069         -
            self.list_of_range_short = input;
 9070         -
            self
        8637  +
    }
        8638  +
        8639  +
    impl ::std::error::Error for ConstraintViolation {}
        8640  +
    impl ConstraintViolation {
        8641  +
        pub(crate) fn as_validation_exception_field(
        8642  +
            self,
        8643  +
            path: ::std::string::String,
        8644  +
        ) -> crate::model::ValidationExceptionField {
        8645  +
            match self {
        8646  +
                        Self::UniqueItems { duplicate_indices, .. } =>
        8647  +
                                crate::model::ValidationExceptionField {
        8648  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
        8649  +
                                    path,
        8650  +
                                },
        8651  +
    Self::Member(index, member_constraint_violation) =>
        8652  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
        8653  +
                    }
 9071   8654   
        }
 9072         -
        #[allow(missing_docs)] // documentation missing in model
 9073         -
        pub fn set_of_range_short(
 9074         -
            mut self,
 9075         -
            input: ::std::option::Option<::std::vec::Vec<i16>>,
 9076         -
        ) -> Self {
 9077         -
            self.set_of_range_short = input;
 9078         -
            self
        8655  +
    }
        8656  +
}
        8657  +
pub(crate) mod list_of_range_byte_internal {
        8658  +
        8659  +
    #[allow(clippy::enum_variant_names)]
        8660  +
    #[derive(Debug, PartialEq)]
        8661  +
    pub(crate) enum ConstraintViolation {
        8662  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8663  +
        /// The first component of the tuple is the index in the collection where the
        8664  +
        /// first constraint violation was found.
        8665  +
        #[doc(hidden)]
        8666  +
        Member(
        8667  +
            usize,
        8668  +
            crate::model::range_byte_internal::ConstraintViolation,
        8669  +
        ),
        8670  +
    }
        8671  +
        8672  +
    impl ::std::fmt::Display for ConstraintViolation {
        8673  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8674  +
            let message = match self {
        8675  +
                Self::Member(index, failing_member) => format!(
        8676  +
                    "Value at index {index} failed to satisfy constraint. {}",
        8677  +
                    failing_member
        8678  +
                ),
        8679  +
            };
        8680  +
            write!(f, "{message}")
 9079   8681   
        }
 9080         -
        #[allow(missing_docs)] // documentation missing in model
 9081         -
        pub fn map_of_range_short(
 9082         -
            mut self,
 9083         -
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i16>>,
 9084         -
        ) -> Self {
 9085         -
            self.map_of_range_short = input;
 9086         -
            self
        8682  +
    }
        8683  +
        8684  +
    impl ::std::error::Error for ConstraintViolation {}
        8685  +
    impl ConstraintViolation {
        8686  +
        pub(crate) fn as_validation_exception_field(
        8687  +
            self,
        8688  +
            path: ::std::string::String,
        8689  +
        ) -> crate::model::ValidationExceptionField {
        8690  +
            match self {
        8691  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
        8692  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        8693  +
            }
 9087   8694   
        }
 9088         -
        #[allow(missing_docs)] // documentation missing in model
 9089         -
        pub fn list_of_range_long(
 9090         -
            mut self,
 9091         -
            input: ::std::option::Option<::std::vec::Vec<i64>>,
 9092         -
        ) -> Self {
 9093         -
            self.list_of_range_long = input;
 9094         -
            self
        8695  +
    }
        8696  +
}
        8697  +
pub(crate) mod list_of_range_short_internal {
        8698  +
        8699  +
    #[allow(clippy::enum_variant_names)]
        8700  +
    #[derive(Debug, PartialEq)]
        8701  +
    pub(crate) enum ConstraintViolation {
        8702  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8703  +
        /// The first component of the tuple is the index in the collection where the
        8704  +
        /// first constraint violation was found.
        8705  +
        #[doc(hidden)]
        8706  +
        Member(
        8707  +
            usize,
        8708  +
            crate::model::range_short_internal::ConstraintViolation,
        8709  +
        ),
        8710  +
    }
        8711  +
        8712  +
    impl ::std::fmt::Display for ConstraintViolation {
        8713  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8714  +
            let message = match self {
        8715  +
                Self::Member(index, failing_member) => format!(
        8716  +
                    "Value at index {index} failed to satisfy constraint. {}",
        8717  +
                    failing_member
        8718  +
                ),
        8719  +
            };
        8720  +
            write!(f, "{message}")
 9095   8721   
        }
 9096         -
        #[allow(missing_docs)] // documentation missing in model
 9097         -
        pub fn set_of_range_long(
 9098         -
            mut self,
 9099         -
            input: ::std::option::Option<::std::vec::Vec<i64>>,
 9100         -
        ) -> Self {
 9101         -
            self.set_of_range_long = input;
 9102         -
            self
        8722  +
    }
        8723  +
        8724  +
    impl ::std::error::Error for ConstraintViolation {}
        8725  +
    impl ConstraintViolation {
        8726  +
        pub(crate) fn as_validation_exception_field(
        8727  +
            self,
        8728  +
            path: ::std::string::String,
        8729  +
        ) -> crate::model::ValidationExceptionField {
        8730  +
            match self {
        8731  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
        8732  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        8733  +
            }
 9103   8734   
        }
 9104         -
        #[allow(missing_docs)] // documentation missing in model
 9105         -
        pub fn map_of_range_long(
 9106         -
            mut self,
 9107         -
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i64>>,
 9108         -
        ) -> Self {
 9109         -
            self.map_of_range_long = input;
 9110         -
            self
        8735  +
    }
        8736  +
}
        8737  +
pub(crate) mod list_of_range_integer_internal {
        8738  +
        8739  +
    #[allow(clippy::enum_variant_names)]
        8740  +
    #[derive(Debug, PartialEq)]
        8741  +
    pub(crate) enum ConstraintViolation {
        8742  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8743  +
        /// The first component of the tuple is the index in the collection where the
        8744  +
        /// first constraint violation was found.
        8745  +
        #[doc(hidden)]
        8746  +
        Member(
        8747  +
            usize,
        8748  +
            crate::model::range_integer_internal::ConstraintViolation,
        8749  +
        ),
        8750  +
    }
        8751  +
        8752  +
    impl ::std::fmt::Display for ConstraintViolation {
        8753  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8754  +
            let message = match self {
        8755  +
                Self::Member(index, failing_member) => format!(
        8756  +
                    "Value at index {index} failed to satisfy constraint. {}",
        8757  +
                    failing_member
        8758  +
                ),
        8759  +
            };
        8760  +
            write!(f, "{message}")
 9111   8761   
        }
 9112         -
        #[allow(missing_docs)] // documentation missing in model
 9113         -
        pub fn list_of_range_byte(
 9114         -
            mut self,
 9115         -
            input: ::std::option::Option<::std::vec::Vec<i8>>,
 9116         -
        ) -> Self {
 9117         -
            self.list_of_range_byte = input;
 9118         -
            self
        8762  +
    }
        8763  +
        8764  +
    impl ::std::error::Error for ConstraintViolation {}
        8765  +
    impl ConstraintViolation {
        8766  +
        pub(crate) fn as_validation_exception_field(
        8767  +
            self,
        8768  +
            path: ::std::string::String,
        8769  +
        ) -> crate::model::ValidationExceptionField {
        8770  +
            match self {
        8771  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
        8772  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        8773  +
            }
 9119   8774   
        }
 9120         -
        #[allow(missing_docs)] // documentation missing in model
 9121         -
        pub fn set_of_range_byte(
 9122         -
            mut self,
 9123         -
            input: ::std::option::Option<::std::vec::Vec<i8>>,
 9124         -
        ) -> Self {
 9125         -
            self.set_of_range_byte = input;
 9126         -
            self
        8775  +
    }
        8776  +
}
        8777  +
pub(crate) mod list_of_range_long_internal {
        8778  +
        8779  +
    #[allow(clippy::enum_variant_names)]
        8780  +
    #[derive(Debug, PartialEq)]
        8781  +
    pub(crate) enum ConstraintViolation {
        8782  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8783  +
        /// The first component of the tuple is the index in the collection where the
        8784  +
        /// first constraint violation was found.
        8785  +
        #[doc(hidden)]
        8786  +
        Member(
        8787  +
            usize,
        8788  +
            crate::model::range_long_internal::ConstraintViolation,
        8789  +
        ),
        8790  +
    }
        8791  +
        8792  +
    impl ::std::fmt::Display for ConstraintViolation {
        8793  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8794  +
            let message = match self {
        8795  +
                Self::Member(index, failing_member) => format!(
        8796  +
                    "Value at index {index} failed to satisfy constraint. {}",
        8797  +
                    failing_member
        8798  +
                ),
        8799  +
            };
        8800  +
            write!(f, "{message}")
 9127   8801   
        }
 9128         -
        #[allow(missing_docs)] // documentation missing in model
 9129         -
        pub fn map_of_range_byte(
 9130         -
            mut self,
 9131         -
            input: ::std::option::Option<::std::collections::HashMap<::std::string::String, i8>>,
 9132         -
        ) -> Self {
 9133         -
            self.map_of_range_byte = input;
 9134         -
            self
        8802  +
    }
        8803  +
        8804  +
    impl ::std::error::Error for ConstraintViolation {}
        8805  +
    impl ConstraintViolation {
        8806  +
        pub(crate) fn as_validation_exception_field(
        8807  +
            self,
        8808  +
            path: ::std::string::String,
        8809  +
        ) -> crate::model::ValidationExceptionField {
        8810  +
            match self {
        8811  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
        8812  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        8813  +
            }
 9135   8814   
        }
 9136         -
        #[allow(missing_docs)] // documentation missing in model
 9137         -
        pub fn non_streaming_blob(
 9138         -
            mut self,
 9139         -
            input: ::std::option::Option<::aws_smithy_http_server_python::types::Blob>,
 9140         -
        ) -> Self {
 9141         -
            self.non_streaming_blob = input;
 9142         -
            self
        8815  +
    }
        8816  +
}
        8817  +
pub(crate) mod list_of_enum_string_internal {
        8818  +
        8819  +
    #[allow(clippy::enum_variant_names)]
        8820  +
    #[derive(Debug, PartialEq)]
        8821  +
    pub(crate) enum ConstraintViolation {
        8822  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        8823  +
        /// The first component of the tuple is the index in the collection where the
        8824  +
        /// first constraint violation was found.
        8825  +
        #[doc(hidden)]
        8826  +
        Member(
        8827  +
            usize,
        8828  +
            crate::model::enum_string_internal::ConstraintViolation,
        8829  +
        ),
        8830  +
    }
        8831  +
        8832  +
    impl ::std::fmt::Display for ConstraintViolation {
        8833  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8834  +
            let message = match self {
        8835  +
                Self::Member(index, failing_member) => format!(
        8836  +
                    "Value at index {index} failed to satisfy constraint. {}",
        8837  +
                    failing_member
        8838  +
                ),
        8839  +
            };
        8840  +
            write!(f, "{message}")
 9143   8841   
        }
 9144         -
        #[allow(missing_docs)] // documentation missing in model
 9145         -
        pub fn pattern_string(
 9146         -
            mut self,
 9147         -
            input: ::std::option::Option<::std::string::String>,
 9148         -
        ) -> Self {
 9149         -
            self.pattern_string = input;
 9150         -
            self
        8842  +
    }
        8843  +
        8844  +
    impl ::std::error::Error for ConstraintViolation {}
        8845  +
    impl ConstraintViolation {
        8846  +
        pub(crate) fn as_validation_exception_field(
        8847  +
            self,
        8848  +
            path: ::std::string::String,
        8849  +
        ) -> crate::model::ValidationExceptionField {
        8850  +
            match self {
        8851  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
        8852  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        8853  +
            }
 9151   8854   
        }
 9152         -
        #[allow(missing_docs)] // documentation missing in model
 9153         -
        pub fn map_of_pattern_string(
 9154         -
            mut self,
 9155         -
            input: ::std::option::Option<
 9156         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        8855  +
    }
        8856  +
}
        8857  +
/// See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
        8858  +
pub(crate) mod recursive_shapes_input_output_nested1_internal {
        8859  +
        8860  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        8861  +
    /// Holds one variant for each of the ways the builder can fail.
        8862  +
    #[non_exhaustive]
        8863  +
    #[allow(clippy::enum_variant_names)]
        8864  +
    pub(crate) enum ConstraintViolation {
        8865  +
        /// `recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`.
        8866  +
        MissingRecursiveMember,
        8867  +
        /// Constraint violation occurred building member `recursive_member` when building `RecursiveShapesInputOutputNested1`.
        8868  +
        #[doc(hidden)]
        8869  +
        RecursiveMember(
        8870  +
            ::std::boxed::Box<
        8871  +
                crate::model::recursive_shapes_input_output_nested2_internal::ConstraintViolation,
 9157   8872   
            >,
 9158         -
        ) -> Self {
 9159         -
            self.map_of_pattern_string = input;
 9160         -
            self
        8873  +
        ),
        8874  +
    }
        8875  +
    impl ::std::fmt::Display for ConstraintViolation {
        8876  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8877  +
            match self {
        8878  +
                ConstraintViolation::MissingRecursiveMember => write!(f, "`recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`"),
        8879  +
                ConstraintViolation::RecursiveMember(_) => write!(f, "constraint violation occurred building member `recursive_member` when building `RecursiveShapesInputOutputNested1`"),
        8880  +
            }
 9161   8881   
        }
 9162         -
        #[allow(missing_docs)] // documentation missing in model
 9163         -
        pub fn list_of_pattern_string(
 9164         -
            mut self,
 9165         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 9166         -
        ) -> Self {
 9167         -
            self.list_of_pattern_string = input;
 9168         -
            self
        8882  +
    }
        8883  +
    impl ::std::error::Error for ConstraintViolation {}
        8884  +
    impl ConstraintViolation {
        8885  +
        pub(crate) fn as_validation_exception_field(
        8886  +
            self,
        8887  +
            path: ::std::string::String,
        8888  +
        ) -> crate::model::ValidationExceptionField {
        8889  +
            match self {
        8890  +
            ConstraintViolation::MissingRecursiveMember => crate::model::ValidationExceptionField {
        8891  +
                                                message: format!("Value at '{}/recursiveMember' failed to satisfy constraint: Member must not be null", path),
        8892  +
                                                path: path + "/recursiveMember",
        8893  +
                                            },
        8894  +
            ConstraintViolation::RecursiveMember(inner) => inner.as_validation_exception_field(path + "/recursiveMember"),
 9169   8895   
        }
 9170         -
        #[allow(missing_docs)] // documentation missing in model
 9171         -
        pub fn set_of_pattern_string(
 9172         -
            mut self,
 9173         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 9174         -
        ) -> Self {
 9175         -
            self.set_of_pattern_string = input;
 9176         -
            self
 9177   8896   
        }
 9178         -
        #[allow(missing_docs)] // documentation missing in model
 9179         -
        pub fn length_length_pattern_string(
 9180         -
            mut self,
 9181         -
            input: ::std::option::Option<::std::string::String>,
 9182         -
        ) -> Self {
 9183         -
            self.length_length_pattern_string = input;
 9184         -
            self
        8897  +
    }
        8898  +
    impl ::std::convert::From<Builder>
        8899  +
        for crate::constrained::MaybeConstrained<crate::model::RecursiveShapesInputOutputNested1>
        8900  +
    {
        8901  +
        fn from(builder: Builder) -> Self {
        8902  +
            Self::Unconstrained(builder)
        8903  +
        }
        8904  +
    }
        8905  +
    impl ::std::convert::TryFrom<Builder> for crate::model::RecursiveShapesInputOutputNested1 {
        8906  +
        type Error = ConstraintViolation;
        8907  +
        8908  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        8909  +
            builder.build()
 9185   8910   
        }
        8911  +
    }
        8912  +
    /// A builder for [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
        8913  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        8914  +
    pub(crate) struct Builder {
        8915  +
        pub(crate) recursive_member: ::std::option::Option<
        8916  +
            ::std::boxed::Box<
        8917  +
                crate::constrained::MaybeConstrained<
        8918  +
                    crate::model::RecursiveShapesInputOutputNested2,
        8919  +
                >,
        8920  +
            >,
        8921  +
        >,
        8922  +
    }
        8923  +
    impl Builder {
 9186   8924   
        #[allow(missing_docs)] // documentation missing in model
 9187         -
        pub fn map_of_length_pattern_string(
        8925  +
        pub(crate) fn set_recursive_member(
 9188   8926   
            mut self,
 9189         -
            input: ::std::option::Option<
 9190         -
                ::std::collections::HashMap<::std::string::String, ::std::string::String>,
        8927  +
            input: impl ::std::convert::Into<
        8928  +
                ::std::boxed::Box<
        8929  +
                    crate::constrained::MaybeConstrained<
        8930  +
                        crate::model::RecursiveShapesInputOutputNested2,
        8931  +
                    >,
        8932  +
                >,
 9191   8933   
            >,
 9192   8934   
        ) -> Self {
 9193         -
            self.map_of_length_pattern_string = input;
        8935  +
            self.recursive_member = Some(input.into());
 9194   8936   
            self
 9195   8937   
        }
 9196         -
        #[allow(missing_docs)] // documentation missing in model
 9197         -
        pub fn list_of_length_pattern_string(
 9198         -
            mut self,
 9199         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 9200         -
        ) -> Self {
 9201         -
            self.list_of_length_pattern_string = input;
 9202         -
            self
        8938  +
        /// Consumes the builder and constructs a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
        8939  +
        ///
        8940  +
        /// The builder fails to construct a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1) if a [`ConstraintViolation`] occurs.
        8941  +
        ///
        8942  +
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
        8943  +
        pub fn build(
        8944  +
            self,
        8945  +
        ) -> Result<crate::model::RecursiveShapesInputOutputNested1, ConstraintViolation> {
        8946  +
            self.build_enforcing_all_constraints()
 9203   8947   
        }
 9204         -
        #[allow(missing_docs)] // documentation missing in model
 9205         -
        pub fn set_of_length_pattern_string(
 9206         -
            mut self,
 9207         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 9208         -
        ) -> Self {
 9209         -
            self.set_of_length_pattern_string = input;
 9210         -
            self
        8948  +
        fn build_enforcing_all_constraints(
        8949  +
            self,
        8950  +
        ) -> Result<crate::model::RecursiveShapesInputOutputNested1, ConstraintViolation> {
        8951  +
            Ok(crate::model::RecursiveShapesInputOutputNested1 {
        8952  +
                recursive_member: self
        8953  +
                    .recursive_member
        8954  +
                    .map(|v| match *v {
        8955  +
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(Box::new(x)),
        8956  +
                        crate::constrained::MaybeConstrained::Unconstrained(x) => {
        8957  +
                            Ok(Box::new(x.try_into()?))
        8958  +
                        }
        8959  +
                    })
        8960  +
                    .map(|res| {
        8961  +
                        res.map_err(Box::new)
        8962  +
                            .map_err(ConstraintViolation::RecursiveMember)
        8963  +
                    })
        8964  +
                    .transpose()?
        8965  +
                    .ok_or(ConstraintViolation::MissingRecursiveMember)?,
        8966  +
            })
 9211   8967   
        }
 9212         -
        #[allow(missing_docs)] // documentation missing in model
 9213         -
        pub fn length_list_of_pattern_string(
 9214         -
            mut self,
 9215         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
 9216         -
        ) -> Self {
 9217         -
            self.length_list_of_pattern_string = input;
 9218         -
            self
        8968  +
    }
        8969  +
}
        8970  +
/// See [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
        8971  +
pub mod recursive_shapes_input_output_nested1 {
        8972  +
        8973  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        8974  +
    /// Holds one variant for each of the ways the builder can fail.
        8975  +
    #[allow(clippy::enum_variant_names)]
        8976  +
    pub enum ConstraintViolation {
        8977  +
        /// `recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`.
        8978  +
        MissingRecursiveMember,
        8979  +
    }
        8980  +
    impl ::std::fmt::Display for ConstraintViolation {
        8981  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        8982  +
            match self {
        8983  +
                ConstraintViolation::MissingRecursiveMember => write!(f, "`recursive_member` was not provided but it is required when building `RecursiveShapesInputOutputNested1`"),
        8984  +
            }
        8985  +
        }
        8986  +
    }
        8987  +
    impl ::std::error::Error for ConstraintViolation {}
        8988  +
    impl ::std::convert::TryFrom<Builder> for crate::model::RecursiveShapesInputOutputNested1 {
        8989  +
        type Error = ConstraintViolation;
        8990  +
        8991  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        8992  +
            builder.build()
 9219   8993   
        }
        8994  +
    }
        8995  +
    /// A builder for [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
        8996  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        8997  +
    pub struct Builder {
        8998  +
        pub(crate) recursive_member: ::std::option::Option<
        8999  +
            ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
        9000  +
        >,
        9001  +
    }
        9002  +
    impl Builder {
 9220   9003   
        #[allow(missing_docs)] // documentation missing in model
 9221         -
        pub fn length_set_of_pattern_string(
        9004  +
        pub fn recursive_member(
 9222   9005   
            mut self,
 9223         -
            input: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
        9006  +
            input: ::std::boxed::Box<crate::model::RecursiveShapesInputOutputNested2>,
 9224   9007   
        ) -> Self {
 9225         -
            self.length_set_of_pattern_string = input;
        9008  +
            self.recursive_member = Some(input);
 9226   9009   
            self
 9227   9010   
        }
 9228         -
        /// Consumes the builder and constructs a [`ConA`](crate::model::ConA).
        9011  +
        /// Consumes the builder and constructs a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1).
 9229   9012   
        ///
 9230         -
        /// The builder fails to construct a [`ConA`](crate::model::ConA) if you do not provide a value for all non-`Option`al members.
        9013  +
        /// The builder fails to construct a [`RecursiveShapesInputOutputNested1`](crate::model::RecursiveShapesInputOutputNested1) if you do not provide a value for all non-`Option`al members.
 9231   9014   
        ///
 9232         -
        pub fn build(self) -> Result<crate::model::ConA, ConstraintViolation> {
        9015  +
        pub fn build(
        9016  +
            self,
        9017  +
        ) -> Result<crate::model::RecursiveShapesInputOutputNested1, ConstraintViolation> {
 9233   9018   
            self.build_enforcing_required_and_enum_traits()
 9234   9019   
        }
 9235   9020   
        fn build_enforcing_required_and_enum_traits(
 9236   9021   
            self,
 9237         -
        ) -> Result<crate::model::ConA, ConstraintViolation> {
 9238         -
            Ok(crate::model::ConA {
 9239         -
                con_b: self.con_b.ok_or(ConstraintViolation::MissingConB)?,
 9240         -
                opt_con_b: self.opt_con_b,
 9241         -
                length_string: self.length_string,
 9242         -
                min_length_string: self.min_length_string,
 9243         -
                max_length_string: self.max_length_string,
 9244         -
                fixed_length_string: self.fixed_length_string,
 9245         -
                length_blob: self.length_blob,
 9246         -
                min_length_blob: self.min_length_blob,
 9247         -
                max_length_blob: self.max_length_blob,
 9248         -
                fixed_length_blob: self.fixed_length_blob,
 9249         -
                range_integer: self.range_integer.unwrap_or(0i32),
 9250         -
                min_range_integer: self.min_range_integer.unwrap_or(0i32),
 9251         -
                max_range_integer: self.max_range_integer.unwrap_or(0i32),
 9252         -
                fixed_value_integer: self.fixed_value_integer.unwrap_or(0i32),
 9253         -
                range_short: self.range_short.unwrap_or(0i16),
 9254         -
                min_range_short: self.min_range_short.unwrap_or(0i16),
 9255         -
                max_range_short: self.max_range_short.unwrap_or(0i16),
 9256         -
                fixed_value_short: self.fixed_value_short.unwrap_or(0i16),
 9257         -
                range_long: self.range_long.unwrap_or(0i64),
 9258         -
                min_range_long: self.min_range_long.unwrap_or(0i64),
 9259         -
                max_range_long: self.max_range_long.unwrap_or(0i64),
 9260         -
                fixed_value_long: self.fixed_value_long.unwrap_or(0i64),
 9261         -
                range_byte: self.range_byte.unwrap_or(0i8),
 9262         -
                min_range_byte: self.min_range_byte.unwrap_or(0i8),
 9263         -
                max_range_byte: self.max_range_byte.unwrap_or(0i8),
 9264         -
                fixed_value_byte: self.fixed_value_byte.unwrap_or(0i8),
 9265         -
                con_b_list: self.con_b_list,
 9266         -
                length_list: self.length_list,
 9267         -
                sensitive_length_list: self.sensitive_length_list,
 9268         -
                con_b_set: self.con_b_set,
 9269         -
                con_b_map: self.con_b_map,
 9270         -
                length_map: self.length_map,
 9271         -
                map_of_map_of_list_of_list_of_con_b: self.map_of_map_of_list_of_list_of_con_b,
 9272         -
                sparse_map: self.sparse_map,
 9273         -
                sparse_list: self.sparse_list,
 9274         -
                sparse_length_map: self.sparse_length_map,
 9275         -
                sparse_length_list: self.sparse_length_list,
 9276         -
                constrained_union: self.constrained_union,
 9277         -
                enum_string: self.enum_string,
 9278         -
                list_of_length_string: self.list_of_length_string,
 9279         -
                set_of_length_string: self.set_of_length_string,
 9280         -
                map_of_length_string: self.map_of_length_string,
 9281         -
                list_of_length_blob: self.list_of_length_blob,
 9282         -
                map_of_length_blob: self.map_of_length_blob,
 9283         -
                list_of_range_integer: self.list_of_range_integer,
 9284         -
                set_of_range_integer: self.set_of_range_integer,
 9285         -
                map_of_range_integer: self.map_of_range_integer,
 9286         -
                list_of_range_short: self.list_of_range_short,
 9287         -
                set_of_range_short: self.set_of_range_short,
 9288         -
                map_of_range_short: self.map_of_range_short,
 9289         -
                list_of_range_long: self.list_of_range_long,
 9290         -
                set_of_range_long: self.set_of_range_long,
 9291         -
                map_of_range_long: self.map_of_range_long,
 9292         -
                list_of_range_byte: self.list_of_range_byte,
 9293         -
                set_of_range_byte: self.set_of_range_byte,
 9294         -
                map_of_range_byte: self.map_of_range_byte,
 9295         -
                non_streaming_blob: self.non_streaming_blob,
 9296         -
                pattern_string: self.pattern_string,
 9297         -
                map_of_pattern_string: self.map_of_pattern_string,
 9298         -
                list_of_pattern_string: self.list_of_pattern_string,
 9299         -
                set_of_pattern_string: self.set_of_pattern_string,
 9300         -
                length_length_pattern_string: self.length_length_pattern_string,
 9301         -
                map_of_length_pattern_string: self.map_of_length_pattern_string,
 9302         -
                list_of_length_pattern_string: self.list_of_length_pattern_string,
 9303         -
                set_of_length_pattern_string: self.set_of_length_pattern_string,
 9304         -
                length_list_of_pattern_string: self.length_list_of_pattern_string,
 9305         -
                length_set_of_pattern_string: self.length_set_of_pattern_string,
        9022  +
        ) -> Result<crate::model::RecursiveShapesInputOutputNested1, ConstraintViolation> {
        9023  +
            Ok(crate::model::RecursiveShapesInputOutputNested1 {
        9024  +
                recursive_member: self
        9025  +
                    .recursive_member
        9026  +
                    .ok_or(ConstraintViolation::MissingRecursiveMember)?,
 9306   9027   
            })
 9307   9028   
        }
 9308   9029   
    }
 9309   9030   
}
 9310         -
pub(crate) mod length_set_of_pattern_string_internal {
        9031  +
pub(crate) mod recursive_list_internal {
        9032  +
        9033  +
    #[allow(clippy::enum_variant_names)]
        9034  +
    #[derive(Debug, PartialEq)]
        9035  +
    pub(crate) enum ConstraintViolation {
        9036  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
        9037  +
        /// The first component of the tuple is the index in the collection where the
        9038  +
        /// first constraint violation was found.
        9039  +
        #[doc(hidden)]
        9040  +
        Member(
        9041  +
            usize,
        9042  +
            crate::model::recursive_shapes_input_output_nested1_internal::ConstraintViolation,
        9043  +
        ),
        9044  +
    }
        9045  +
        9046  +
    impl ::std::fmt::Display for ConstraintViolation {
        9047  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        9048  +
            let message = match self {
        9049  +
                Self::Member(index, failing_member) => format!(
        9050  +
                    "Value at index {index} failed to satisfy constraint. {}",
        9051  +
                    failing_member
        9052  +
                ),
        9053  +
            };
        9054  +
            write!(f, "{message}")
        9055  +
        }
        9056  +
    }
        9057  +
        9058  +
    impl ::std::error::Error for ConstraintViolation {}
        9059  +
    impl ConstraintViolation {
        9060  +
        pub(crate) fn as_validation_exception_field(
        9061  +
            self,
        9062  +
            path: ::std::string::String,
        9063  +
        ) -> crate::model::ValidationExceptionField {
        9064  +
            match self {
        9065  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
        9066  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        9067  +
            }
        9068  +
        }
        9069  +
    }
        9070  +
}
        9071  +
pub(crate) mod con_b_map_internal {
        9072  +
        9073  +
    #[allow(clippy::enum_variant_names)]
        9074  +
    #[derive(Debug, PartialEq)]
        9075  +
    pub(crate) enum ConstraintViolation {
        9076  +
        Length(usize),
        9077  +
        9078  +
        #[doc(hidden)]
        9079  +
        Value(
        9080  +
            ::std::string::String,
        9081  +
            crate::model::length_string_internal::ConstraintViolation,
        9082  +
        ),
        9083  +
    }
        9084  +
        9085  +
    impl ::std::fmt::Display for ConstraintViolation {
        9086  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        9087  +
            match self {
        9088  +
                Self::Length(length) => {
        9089  +
                    write!(f, "Value with length {} provided for 'com.amazonaws.constraints#ConBMap' failed to satisfy constraint: Member must have length between 1 and 69, inclusive", length)
        9090  +
                }
        9091  +
        9092  +
                Self::Value(_, value_constraint_violation) => {
        9093  +
                    write!(f, "{}", value_constraint_violation)
        9094  +
                }
        9095  +
            }
        9096  +
        }
        9097  +
    }
        9098  +
        9099  +
    impl ::std::error::Error for ConstraintViolation {}
        9100  +
    impl ConstraintViolation {
        9101  +
        pub(crate) fn as_validation_exception_field(
        9102  +
            self,
        9103  +
            path: ::std::string::String,
        9104  +
        ) -> crate::model::ValidationExceptionField {
        9105  +
            match self {
        9106  +
            Self::Length(length) => crate::model::ValidationExceptionField {
        9107  +
                                        message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 1 and 69, inclusive", length, &path),
        9108  +
                                        path,
        9109  +
                                    },
        9110  +
            Self::Value(key, value_constraint_violation) => value_constraint_violation.as_validation_exception_field(path + "/" + key.as_str()),
        9111  +
        }
        9112  +
        }
        9113  +
    }
        9114  +
}
        9115  +
pub(crate) mod map_of_list_of_length_string_internal {
        9116  +
        9117  +
    #[allow(clippy::enum_variant_names)]
        9118  +
    #[derive(Debug, PartialEq)]
        9119  +
    pub(crate) enum ConstraintViolation {
        9120  +
        #[doc(hidden)]
        9121  +
        Key(crate::model::length_string_internal::ConstraintViolation),
        9122  +
        #[doc(hidden)]
        9123  +
        Value(
        9124  +
            crate::model::LengthString,
        9125  +
            crate::model::list_of_length_string_internal::ConstraintViolation,
        9126  +
        ),
        9127  +
    }
        9128  +
        9129  +
    impl ::std::fmt::Display for ConstraintViolation {
        9130  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        9131  +
            match self {
        9132  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        9133  +
                Self::Value(_, value_constraint_violation) => {
        9134  +
                    write!(f, "{}", value_constraint_violation)
        9135  +
                }
        9136  +
            }
        9137  +
        }
        9138  +
    }
        9139  +
        9140  +
    impl ::std::error::Error for ConstraintViolation {}
        9141  +
    impl ConstraintViolation {
        9142  +
        pub(crate) fn as_validation_exception_field(
        9143  +
            self,
        9144  +
            path: ::std::string::String,
        9145  +
        ) -> crate::model::ValidationExceptionField {
        9146  +
            match self {
        9147  +
                Self::Key(key_constraint_violation) => {
        9148  +
                    key_constraint_violation.as_validation_exception_field(path)
        9149  +
                }
        9150  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        9151  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        9152  +
            }
        9153  +
        }
        9154  +
    }
        9155  +
}
        9156  +
pub(crate) mod map_of_set_of_length_string_internal {
        9157  +
        9158  +
    #[allow(clippy::enum_variant_names)]
        9159  +
    #[derive(Debug, PartialEq)]
        9160  +
    pub(crate) enum ConstraintViolation {
        9161  +
        #[doc(hidden)]
        9162  +
        Key(crate::model::length_string_internal::ConstraintViolation),
        9163  +
        #[doc(hidden)]
        9164  +
        Value(
        9165  +
            crate::model::LengthString,
        9166  +
            crate::model::set_of_length_string_internal::ConstraintViolation,
        9167  +
        ),
        9168  +
    }
        9169  +
        9170  +
    impl ::std::fmt::Display for ConstraintViolation {
        9171  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        9172  +
            match self {
        9173  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        9174  +
                Self::Value(_, value_constraint_violation) => {
        9175  +
                    write!(f, "{}", value_constraint_violation)
        9176  +
                }
        9177  +
            }
        9178  +
        }
        9179  +
    }
        9180  +
        9181  +
    impl ::std::error::Error for ConstraintViolation {}
        9182  +
    impl ConstraintViolation {
        9183  +
        pub(crate) fn as_validation_exception_field(
        9184  +
            self,
        9185  +
            path: ::std::string::String,
        9186  +
        ) -> crate::model::ValidationExceptionField {
        9187  +
            match self {
        9188  +
                Self::Key(key_constraint_violation) => {
        9189  +
                    key_constraint_violation.as_validation_exception_field(path)
        9190  +
                }
        9191  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        9192  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        9193  +
            }
        9194  +
        }
        9195  +
    }
        9196  +
}
        9197  +
pub(crate) mod map_of_length_list_of_pattern_string_internal {
 9311   9198   
 9312   9199   
    #[allow(clippy::enum_variant_names)]
 9313   9200   
    #[derive(Debug, PartialEq)]
 9314   9201   
    pub(crate) enum ConstraintViolation {
 9315         -
        /// Constraint violation error when the list doesn't have the required length
 9316         -
        Length(usize),
 9317         -
        /// Constraint violation error when the list does not contain unique items
 9318         -
        UniqueItems {
 9319         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 9320         -
            /// at least two elements.
 9321         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 9322         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 9323         -
            /// Nothing is guaranteed about the order of the indices.
 9324         -
            duplicate_indices: ::std::vec::Vec<usize>,
 9325         -
            /// The original vector, that contains duplicate items.
 9326         -
            original: ::std::vec::Vec<crate::model::PatternString>,
 9327         -
        },
 9328         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9329         -
        /// The first component of the tuple is the index in the collection where the
 9330         -
        /// first constraint violation was found.
 9331   9202   
        #[doc(hidden)]
 9332         -
        Member(
 9333         -
            usize,
 9334         -
            crate::model::pattern_string_internal::ConstraintViolation,
        9203  +
        Key(crate::model::pattern_string_internal::ConstraintViolation),
        9204  +
        #[doc(hidden)]
        9205  +
        Value(
        9206  +
            crate::model::PatternString,
        9207  +
            crate::model::length_list_of_pattern_string_internal::ConstraintViolation,
 9335   9208   
        ),
 9336   9209   
    }
 9337   9210   
 9338   9211   
    impl ::std::fmt::Display for ConstraintViolation {
 9339   9212   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9340         -
            let message = match self {
 9341         -
                                Self::Length(length) => {
 9342         -
                            format!("Value with length {} provided for 'com.amazonaws.constraints#LengthSetOfPatternString' failed to satisfy constraint: Member must have length between 5 and 9, inclusive", length)
 9343         -
                        },
 9344         -
    Self::UniqueItems { duplicate_indices, .. } =>
 9345         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#LengthSetOfPatternString' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 9346         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
 9347         -
                           failing_member)
 9348         -
                            };
 9349         -
            write!(f, "{message}")
        9213  +
            match self {
        9214  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        9215  +
                Self::Value(_, value_constraint_violation) => {
        9216  +
                    write!(f, "{}", value_constraint_violation)
        9217  +
                }
        9218  +
            }
 9350   9219   
        }
 9351   9220   
    }
 9352   9221   
 9353   9222   
    impl ::std::error::Error for ConstraintViolation {}
 9354   9223   
    impl ConstraintViolation {
 9355   9224   
        pub(crate) fn as_validation_exception_field(
 9356   9225   
            self,
 9357   9226   
            path: ::std::string::String,
 9358   9227   
        ) -> crate::model::ValidationExceptionField {
 9359   9228   
            match self {
 9360         -
                        Self::Length(length) => crate::model::ValidationExceptionField {
 9361         -
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 5 and 9, inclusive", length, &path),
 9362         -
                                path,
 9363         -
                            },
 9364         -
    Self::UniqueItems { duplicate_indices, .. } =>
 9365         -
                                crate::model::ValidationExceptionField {
 9366         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 9367         -
                                    path,
 9368         -
                                },
 9369         -
    Self::Member(index, member_constraint_violation) =>
 9370         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 9371         -
                    }
        9229  +
                Self::Key(key_constraint_violation) => {
        9230  +
                    key_constraint_violation.as_validation_exception_field(path)
        9231  +
                }
        9232  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        9233  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        9234  +
            }
 9372   9235   
        }
 9373   9236   
    }
 9374   9237   
}
 9375         -
pub(crate) mod set_of_length_pattern_string_internal {
        9238  +
pub(crate) mod map_of_list_of_enum_string_internal {
 9376   9239   
 9377   9240   
    #[allow(clippy::enum_variant_names)]
 9378   9241   
    #[derive(Debug, PartialEq)]
 9379   9242   
    pub(crate) enum ConstraintViolation {
 9380         -
        /// Constraint violation error when the list does not contain unique items
 9381         -
        UniqueItems {
 9382         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 9383         -
            /// at least two elements.
 9384         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 9385         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 9386         -
            /// Nothing is guaranteed about the order of the indices.
 9387         -
            duplicate_indices: ::std::vec::Vec<usize>,
 9388         -
            /// The original vector, that contains duplicate items.
 9389         -
            original: ::std::vec::Vec<crate::model::LengthPatternString>,
 9390         -
        },
 9391         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9392         -
        /// The first component of the tuple is the index in the collection where the
 9393         -
        /// first constraint violation was found.
 9394   9243   
        #[doc(hidden)]
 9395         -
        Member(
 9396         -
            usize,
 9397         -
            crate::model::length_pattern_string_internal::ConstraintViolation,
        9244  +
        Key(crate::model::enum_string_internal::ConstraintViolation),
        9245  +
        #[doc(hidden)]
        9246  +
        Value(
        9247  +
            crate::model::EnumString,
        9248  +
            crate::model::list_of_enum_string_internal::ConstraintViolation,
 9398   9249   
        ),
 9399   9250   
    }
 9400   9251   
 9401   9252   
    impl ::std::fmt::Display for ConstraintViolation {
 9402   9253   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9403         -
            let message = match self {
 9404         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 9405         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfLengthPatternString' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 9406         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
 9407         -
                           failing_member)
 9408         -
                            };
 9409         -
            write!(f, "{message}")
        9254  +
            match self {
        9255  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        9256  +
                Self::Value(_, value_constraint_violation) => {
        9257  +
                    write!(f, "{}", value_constraint_violation)
        9258  +
                }
        9259  +
            }
 9410   9260   
        }
 9411   9261   
    }
 9412   9262   
 9413   9263   
    impl ::std::error::Error for ConstraintViolation {}
 9414   9264   
    impl ConstraintViolation {
 9415   9265   
        pub(crate) fn as_validation_exception_field(
 9416   9266   
            self,
 9417   9267   
            path: ::std::string::String,
 9418   9268   
        ) -> crate::model::ValidationExceptionField {
 9419   9269   
            match self {
 9420         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 9421         -
                                crate::model::ValidationExceptionField {
 9422         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 9423         -
                                    path,
 9424         -
                                },
 9425         -
    Self::Member(index, member_constraint_violation) =>
 9426         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 9427         -
                    }
        9270  +
                Self::Key(key_constraint_violation) => {
        9271  +
                    key_constraint_violation.as_validation_exception_field(path)
        9272  +
                }
        9273  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        9274  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        9275  +
            }
 9428   9276   
        }
 9429   9277   
    }
 9430   9278   
}
 9431         -
pub(crate) mod set_of_pattern_string_internal {
        9279  +
pub(crate) mod map_of_pattern_string_internal {
 9432   9280   
 9433   9281   
    #[allow(clippy::enum_variant_names)]
 9434   9282   
    #[derive(Debug, PartialEq)]
 9435   9283   
    pub(crate) enum ConstraintViolation {
 9436         -
        /// Constraint violation error when the list does not contain unique items
 9437         -
        UniqueItems {
 9438         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 9439         -
            /// at least two elements.
 9440         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 9441         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 9442         -
            /// Nothing is guaranteed about the order of the indices.
 9443         -
            duplicate_indices: ::std::vec::Vec<usize>,
 9444         -
            /// The original vector, that contains duplicate items.
 9445         -
            original: ::std::vec::Vec<crate::model::PatternString>,
 9446         -
        },
 9447         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9448         -
        /// The first component of the tuple is the index in the collection where the
 9449         -
        /// first constraint violation was found.
 9450   9284   
        #[doc(hidden)]
 9451         -
        Member(
 9452         -
            usize,
        9285  +
        Key(crate::model::pattern_string_internal::ConstraintViolation),
        9286  +
        #[doc(hidden)]
        9287  +
        Value(
        9288  +
            crate::model::PatternString,
 9453   9289   
            crate::model::pattern_string_internal::ConstraintViolation,
 9454   9290   
        ),
 9455   9291   
    }
 9456   9292   
 9457   9293   
    impl ::std::fmt::Display for ConstraintViolation {
 9458   9294   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9459         -
            let message = match self {
 9460         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 9461         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfPatternString' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 9462         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
 9463         -
                           failing_member)
 9464         -
                            };
 9465         -
            write!(f, "{message}")
        9295  +
            match self {
        9296  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        9297  +
                Self::Value(_, value_constraint_violation) => {
        9298  +
                    write!(f, "{}", value_constraint_violation)
        9299  +
                }
        9300  +
            }
 9466   9301   
        }
 9467   9302   
    }
 9468   9303   
 9469   9304   
    impl ::std::error::Error for ConstraintViolation {}
 9470   9305   
    impl ConstraintViolation {
 9471   9306   
        pub(crate) fn as_validation_exception_field(
 9472   9307   
            self,
 9473   9308   
            path: ::std::string::String,
 9474   9309   
        ) -> crate::model::ValidationExceptionField {
 9475   9310   
            match self {
 9476         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 9477         -
                                crate::model::ValidationExceptionField {
 9478         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 9479         -
                                    path,
 9480         -
                                },
 9481         -
    Self::Member(index, member_constraint_violation) =>
 9482         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 9483         -
                    }
        9311  +
                Self::Key(key_constraint_violation) => {
        9312  +
                    key_constraint_violation.as_validation_exception_field(path)
        9313  +
                }
        9314  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        9315  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        9316  +
            }
 9484   9317   
        }
 9485   9318   
    }
 9486   9319   
}
 9487         -
pub(crate) mod map_of_range_byte_internal {
        9320  +
pub(crate) mod map_of_list_of_pattern_string_internal {
 9488   9321   
 9489   9322   
    #[allow(clippy::enum_variant_names)]
 9490   9323   
    #[derive(Debug, PartialEq)]
 9491   9324   
    pub(crate) enum ConstraintViolation {
        9325  +
        #[doc(hidden)]
        9326  +
        Key(crate::model::pattern_string_internal::ConstraintViolation),
 9492   9327   
        #[doc(hidden)]
 9493   9328   
        Value(
 9494         -
            ::std::string::String,
 9495         -
            crate::model::range_byte_internal::ConstraintViolation,
        9329  +
            crate::model::PatternString,
        9330  +
            crate::model::list_of_pattern_string_internal::ConstraintViolation,
 9496   9331   
        ),
 9497   9332   
    }
 9498   9333   
 9499   9334   
    impl ::std::fmt::Display for ConstraintViolation {
 9500   9335   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9501   9336   
            match self {
        9337  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
 9502   9338   
                Self::Value(_, value_constraint_violation) => {
 9503   9339   
                    write!(f, "{}", value_constraint_violation)
 9504   9340   
                }
 9505   9341   
            }
 9506   9342   
        }
 9507   9343   
    }
 9508   9344   
 9509   9345   
    impl ::std::error::Error for ConstraintViolation {}
 9510   9346   
    impl ConstraintViolation {
 9511   9347   
        pub(crate) fn as_validation_exception_field(
 9512   9348   
            self,
 9513   9349   
            path: ::std::string::String,
 9514   9350   
        ) -> crate::model::ValidationExceptionField {
 9515   9351   
            match self {
        9352  +
                Self::Key(key_constraint_violation) => {
        9353  +
                    key_constraint_violation.as_validation_exception_field(path)
        9354  +
                }
 9516   9355   
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 9517   9356   
                    .as_validation_exception_field(path + "/" + key.as_str()),
 9518   9357   
            }
 9519   9358   
        }
 9520   9359   
    }
 9521   9360   
}
 9522         -
pub(crate) mod range_byte_internal {
        9361  +
pub(crate) mod map_of_length_pattern_string_internal {
 9523   9362   
        9363  +
    #[allow(clippy::enum_variant_names)]
 9524   9364   
    #[derive(Debug, PartialEq)]
 9525         -
    pub enum ConstraintViolation {
 9526         -
        Range(i8),
        9365  +
    pub(crate) enum ConstraintViolation {
        9366  +
        #[doc(hidden)]
        9367  +
        Key(crate::model::length_pattern_string_internal::ConstraintViolation),
        9368  +
        #[doc(hidden)]
        9369  +
        Value(
        9370  +
            crate::model::LengthPatternString,
        9371  +
            crate::model::length_pattern_string_internal::ConstraintViolation,
        9372  +
        ),
 9527   9373   
    }
 9528   9374   
 9529   9375   
    impl ::std::fmt::Display for ConstraintViolation {
 9530   9376   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9531         -
            write!(f, "Value for `com.amazonaws.constraints#RangeByte`failed to satisfy constraint: Member must be between 0 and 10, inclusive")
        9377  +
            match self {
        9378  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        9379  +
                Self::Value(_, value_constraint_violation) => {
        9380  +
                    write!(f, "{}", value_constraint_violation)
        9381  +
                }
        9382  +
            }
 9532   9383   
        }
 9533   9384   
    }
 9534   9385   
 9535   9386   
    impl ::std::error::Error for ConstraintViolation {}
 9536   9387   
    impl ConstraintViolation {
 9537   9388   
        pub(crate) fn as_validation_exception_field(
 9538   9389   
            self,
 9539   9390   
            path: ::std::string::String,
 9540   9391   
        ) -> crate::model::ValidationExceptionField {
 9541   9392   
            match self {
 9542         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
 9543         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 10, inclusive", &path),
 9544         -
                            path,
 9545         -
                        },
 9546         -
                        }
        9393  +
                Self::Key(key_constraint_violation) => {
        9394  +
                    key_constraint_violation.as_validation_exception_field(path)
        9395  +
                }
        9396  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        9397  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        9398  +
            }
 9547   9399   
        }
 9548   9400   
    }
 9549   9401   
}
 9550         -
pub(crate) mod set_of_range_byte_internal {
        9402  +
pub(crate) mod map_of_list_of_length_pattern_string_internal {
        9403  +
        9404  +
    #[allow(clippy::enum_variant_names)]
        9405  +
    #[derive(Debug, PartialEq)]
        9406  +
    pub(crate) enum ConstraintViolation {
        9407  +
        #[doc(hidden)]
        9408  +
        Key(crate::model::length_pattern_string_internal::ConstraintViolation),
        9409  +
        #[doc(hidden)]
        9410  +
        Value(
        9411  +
            crate::model::LengthPatternString,
        9412  +
            crate::model::list_of_length_pattern_string_internal::ConstraintViolation,
        9413  +
        ),
        9414  +
    }
        9415  +
        9416  +
    impl ::std::fmt::Display for ConstraintViolation {
        9417  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        9418  +
            match self {
        9419  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        9420  +
                Self::Value(_, value_constraint_violation) => {
        9421  +
                    write!(f, "{}", value_constraint_violation)
        9422  +
                }
        9423  +
            }
        9424  +
        }
        9425  +
    }
        9426  +
        9427  +
    impl ::std::error::Error for ConstraintViolation {}
        9428  +
    impl ConstraintViolation {
        9429  +
        pub(crate) fn as_validation_exception_field(
        9430  +
            self,
        9431  +
            path: ::std::string::String,
        9432  +
        ) -> crate::model::ValidationExceptionField {
        9433  +
            match self {
        9434  +
                Self::Key(key_constraint_violation) => {
        9435  +
                    key_constraint_violation.as_validation_exception_field(path)
        9436  +
                }
        9437  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        9438  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        9439  +
            }
        9440  +
        }
        9441  +
    }
        9442  +
}
        9443  +
pub(crate) mod map_of_enum_string_internal {
 9551   9444   
 9552   9445   
    #[allow(clippy::enum_variant_names)]
 9553   9446   
    #[derive(Debug, PartialEq)]
 9554   9447   
    pub(crate) enum ConstraintViolation {
 9555         -
        /// Constraint violation error when the list does not contain unique items
 9556         -
        UniqueItems {
 9557         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 9558         -
            /// at least two elements.
 9559         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 9560         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 9561         -
            /// Nothing is guaranteed about the order of the indices.
 9562         -
            duplicate_indices: ::std::vec::Vec<usize>,
 9563         -
            /// The original vector, that contains duplicate items.
 9564         -
            original: ::std::vec::Vec<crate::model::RangeByte>,
 9565         -
        },
 9566         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9567         -
        /// The first component of the tuple is the index in the collection where the
 9568         -
        /// first constraint violation was found.
 9569   9448   
        #[doc(hidden)]
 9570         -
        Member(
 9571         -
            usize,
 9572         -
            crate::model::range_byte_internal::ConstraintViolation,
        9449  +
        Key(crate::model::enum_string_internal::ConstraintViolation),
        9450  +
        #[doc(hidden)]
        9451  +
        Value(
        9452  +
            crate::model::EnumString,
        9453  +
            crate::model::enum_string_internal::ConstraintViolation,
 9573   9454   
        ),
 9574   9455   
    }
 9575   9456   
 9576   9457   
    impl ::std::fmt::Display for ConstraintViolation {
 9577   9458   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9578         -
            let message = match self {
 9579         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 9580         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfRangeByte' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 9581         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
 9582         -
                           failing_member)
 9583         -
                            };
 9584         -
            write!(f, "{message}")
        9459  +
            match self {
        9460  +
                Self::Key(key_constraint_violation) => write!(f, "{}", key_constraint_violation),
        9461  +
                Self::Value(_, value_constraint_violation) => {
        9462  +
                    write!(f, "{}", value_constraint_violation)
        9463  +
                }
        9464  +
            }
 9585   9465   
        }
 9586   9466   
    }
 9587   9467   
 9588   9468   
    impl ::std::error::Error for ConstraintViolation {}
 9589   9469   
    impl ConstraintViolation {
 9590   9470   
        pub(crate) fn as_validation_exception_field(
 9591   9471   
            self,
 9592   9472   
            path: ::std::string::String,
 9593   9473   
        ) -> crate::model::ValidationExceptionField {
 9594   9474   
            match self {
 9595         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 9596         -
                                crate::model::ValidationExceptionField {
 9597         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 9598         -
                                    path,
 9599         -
                                },
 9600         -
    Self::Member(index, member_constraint_violation) =>
 9601         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 9602         -
                    }
        9475  +
                Self::Key(key_constraint_violation) => {
        9476  +
                    key_constraint_violation.as_validation_exception_field(path)
        9477  +
                }
        9478  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
        9479  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
        9480  +
            }
 9603   9481   
        }
 9604   9482   
    }
 9605   9483   
}
 9606         -
pub(crate) mod list_of_range_byte_internal {
        9484  +
/// See [`ConB`](crate::model::ConB).
        9485  +
pub(crate) mod con_b_internal {
 9607   9486   
        9487  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        9488  +
    /// Holds one variant for each of the ways the builder can fail.
        9489  +
    #[non_exhaustive]
 9608   9490   
    #[allow(clippy::enum_variant_names)]
 9609         -
    #[derive(Debug, PartialEq)]
 9610   9491   
    pub(crate) enum ConstraintViolation {
 9611         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9612         -
        /// The first component of the tuple is the index in the collection where the
 9613         -
        /// first constraint violation was found.
 9614         -
        #[doc(hidden)]
 9615         -
        Member(
 9616         -
            usize,
 9617         -
            crate::model::range_byte_internal::ConstraintViolation,
 9618         -
        ),
        9492  +
        /// `nice` was not provided but it is required when building `ConB`.
        9493  +
        MissingNice,
        9494  +
        /// `int` was not provided but it is required when building `ConB`.
        9495  +
        MissingInt,
 9619   9496   
    }
 9620         -
 9621   9497   
    impl ::std::fmt::Display for ConstraintViolation {
 9622   9498   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9623         -
            let message = match self {
 9624         -
                Self::Member(index, failing_member) => format!(
 9625         -
                    "Value at index {index} failed to satisfy constraint. {}",
 9626         -
                    failing_member
        9499  +
            match self {
        9500  +
                ConstraintViolation::MissingNice => write!(
        9501  +
                    f,
        9502  +
                    "`nice` was not provided but it is required when building `ConB`"
 9627   9503   
                ),
 9628         -
            };
 9629         -
            write!(f, "{message}")
        9504  +
                ConstraintViolation::MissingInt => write!(
        9505  +
                    f,
        9506  +
                    "`int` was not provided but it is required when building `ConB`"
        9507  +
                ),
        9508  +
            }
 9630   9509   
        }
 9631   9510   
    }
 9632         -
 9633   9511   
    impl ::std::error::Error for ConstraintViolation {}
 9634   9512   
    impl ConstraintViolation {
 9635   9513   
        pub(crate) fn as_validation_exception_field(
 9636   9514   
            self,
 9637   9515   
            path: ::std::string::String,
 9638   9516   
        ) -> crate::model::ValidationExceptionField {
 9639   9517   
            match self {
 9640         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 9641         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
        9518  +
                ConstraintViolation::MissingNice => crate::model::ValidationExceptionField {
        9519  +
                    message: format!(
        9520  +
                        "Value at '{}/nice' failed to satisfy constraint: Member must not be null",
        9521  +
                        path
        9522  +
                    ),
        9523  +
                    path: path + "/nice",
        9524  +
                },
        9525  +
                ConstraintViolation::MissingInt => crate::model::ValidationExceptionField {
        9526  +
                    message: format!(
        9527  +
                        "Value at '{}/int' failed to satisfy constraint: Member must not be null",
        9528  +
                        path
        9529  +
                    ),
        9530  +
                    path: path + "/int",
        9531  +
                },
 9642   9532   
            }
 9643   9533   
        }
 9644   9534   
    }
        9535  +
    impl ::std::convert::From<Builder> for crate::constrained::MaybeConstrained<crate::model::ConB> {
        9536  +
        fn from(builder: Builder) -> Self {
        9537  +
            Self::Unconstrained(builder)
        9538  +
        }
        9539  +
    }
        9540  +
    impl ::std::convert::TryFrom<Builder> for crate::model::ConB {
        9541  +
        type Error = ConstraintViolation;
        9542  +
        9543  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        9544  +
            builder.build()
        9545  +
        }
        9546  +
    }
        9547  +
    /// A builder for [`ConB`](crate::model::ConB).
        9548  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        9549  +
    pub(crate) struct Builder {
        9550  +
        pub(crate) nice: ::std::option::Option<::std::string::String>,
        9551  +
        pub(crate) int: ::std::option::Option<i32>,
        9552  +
        pub(crate) opt_nice: ::std::option::Option<::std::string::String>,
        9553  +
        pub(crate) opt_int: ::std::option::Option<i32>,
        9554  +
    }
        9555  +
    impl Builder {
        9556  +
        #[allow(missing_docs)] // documentation missing in model
        9557  +
        pub(crate) fn set_nice(
        9558  +
            mut self,
        9559  +
            input: impl ::std::convert::Into<::std::string::String>,
        9560  +
        ) -> Self {
        9561  +
            self.nice = Some(input.into());
        9562  +
            self
        9563  +
        }
        9564  +
        #[allow(missing_docs)] // documentation missing in model
        9565  +
        pub(crate) fn set_int(mut self, input: impl ::std::convert::Into<i32>) -> Self {
        9566  +
            self.int = Some(input.into());
        9567  +
            self
        9568  +
        }
        9569  +
        #[allow(missing_docs)] // documentation missing in model
        9570  +
        pub(crate) fn set_opt_nice(
        9571  +
            mut self,
        9572  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
        9573  +
        ) -> Self {
        9574  +
            self.opt_nice = input.map(|v| v.into());
        9575  +
            self
        9576  +
        }
        9577  +
        #[allow(missing_docs)] // documentation missing in model
        9578  +
        pub(crate) fn set_opt_int(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
        9579  +
            self.opt_int = input.map(|v| v.into());
        9580  +
            self
        9581  +
        }
        9582  +
        /// Consumes the builder and constructs a [`ConB`](crate::model::ConB).
        9583  +
        ///
        9584  +
        /// The builder fails to construct a [`ConB`](crate::model::ConB) if a [`ConstraintViolation`] occurs.
        9585  +
        ///
        9586  +
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
        9587  +
        pub fn build(self) -> Result<crate::model::ConB, ConstraintViolation> {
        9588  +
            self.build_enforcing_all_constraints()
        9589  +
        }
        9590  +
        fn build_enforcing_all_constraints(
        9591  +
            self,
        9592  +
        ) -> Result<crate::model::ConB, ConstraintViolation> {
        9593  +
            Ok(crate::model::ConB {
        9594  +
                nice: self.nice.ok_or(ConstraintViolation::MissingNice)?,
        9595  +
                int: self.int.ok_or(ConstraintViolation::MissingInt)?,
        9596  +
                opt_nice: self.opt_nice,
        9597  +
                opt_int: self.opt_int,
        9598  +
            })
        9599  +
        }
        9600  +
    }
 9645   9601   
}
 9646         -
pub(crate) mod map_of_range_long_internal {
        9602  +
/// See [`ConB`](crate::model::ConB).
        9603  +
pub mod con_b {
 9647   9604   
        9605  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
        9606  +
    /// Holds one variant for each of the ways the builder can fail.
 9648   9607   
    #[allow(clippy::enum_variant_names)]
        9608  +
    pub enum ConstraintViolation {
        9609  +
        /// `nice` was not provided but it is required when building `ConB`.
        9610  +
        MissingNice,
        9611  +
        /// `int` was not provided but it is required when building `ConB`.
        9612  +
        MissingInt,
        9613  +
    }
        9614  +
    impl ::std::fmt::Display for ConstraintViolation {
        9615  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        9616  +
            match self {
        9617  +
                ConstraintViolation::MissingNice => write!(
        9618  +
                    f,
        9619  +
                    "`nice` was not provided but it is required when building `ConB`"
        9620  +
                ),
        9621  +
                ConstraintViolation::MissingInt => write!(
        9622  +
                    f,
        9623  +
                    "`int` was not provided but it is required when building `ConB`"
        9624  +
                ),
        9625  +
            }
        9626  +
        }
        9627  +
    }
        9628  +
    impl ::std::error::Error for ConstraintViolation {}
        9629  +
    impl ::std::convert::TryFrom<Builder> for crate::model::ConB {
        9630  +
        type Error = ConstraintViolation;
        9631  +
        9632  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
        9633  +
            builder.build()
        9634  +
        }
        9635  +
    }
        9636  +
    /// A builder for [`ConB`](crate::model::ConB).
        9637  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        9638  +
    pub struct Builder {
        9639  +
        pub(crate) nice: ::std::option::Option<::std::string::String>,
        9640  +
        pub(crate) int: ::std::option::Option<i32>,
        9641  +
        pub(crate) opt_nice: ::std::option::Option<::std::string::String>,
        9642  +
        pub(crate) opt_int: ::std::option::Option<i32>,
        9643  +
    }
        9644  +
    impl Builder {
        9645  +
        #[allow(missing_docs)] // documentation missing in model
        9646  +
        pub fn nice(mut self, input: ::std::string::String) -> Self {
        9647  +
            self.nice = Some(input);
        9648  +
            self
        9649  +
        }
        9650  +
        #[allow(missing_docs)] // documentation missing in model
        9651  +
        pub fn int(mut self, input: i32) -> Self {
        9652  +
            self.int = Some(input);
        9653  +
            self
        9654  +
        }
        9655  +
        #[allow(missing_docs)] // documentation missing in model
        9656  +
        pub fn opt_nice(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        9657  +
            self.opt_nice = input;
        9658  +
            self
        9659  +
        }
        9660  +
        #[allow(missing_docs)] // documentation missing in model
        9661  +
        pub fn opt_int(mut self, input: ::std::option::Option<i32>) -> Self {
        9662  +
            self.opt_int = input;
        9663  +
            self
        9664  +
        }
        9665  +
        /// Consumes the builder and constructs a [`ConB`](crate::model::ConB).
        9666  +
        ///
        9667  +
        /// The builder fails to construct a [`ConB`](crate::model::ConB) if you do not provide a value for all non-`Option`al members.
        9668  +
        ///
        9669  +
        pub fn build(self) -> Result<crate::model::ConB, ConstraintViolation> {
        9670  +
            self.build_enforcing_required_and_enum_traits()
        9671  +
        }
        9672  +
        fn build_enforcing_required_and_enum_traits(
        9673  +
            self,
        9674  +
        ) -> Result<crate::model::ConB, ConstraintViolation> {
        9675  +
            Ok(crate::model::ConB {
        9676  +
                nice: self.nice.ok_or(ConstraintViolation::MissingNice)?,
        9677  +
                int: self.int.ok_or(ConstraintViolation::MissingInt)?,
        9678  +
                opt_nice: self.opt_nice,
        9679  +
                opt_int: self.opt_int,
        9680  +
            })
        9681  +
        }
        9682  +
    }
        9683  +
}
        9684  +
pub(crate) mod min_length_string_internal {
        9685  +
 9649   9686   
    #[derive(Debug, PartialEq)]
 9650         -
    pub(crate) enum ConstraintViolation {
 9651         -
        #[doc(hidden)]
 9652         -
        Value(
 9653         -
            ::std::string::String,
 9654         -
            crate::model::range_long_internal::ConstraintViolation,
 9655         -
        ),
        9687  +
    pub enum ConstraintViolation {
        9688  +
        /// Error when a string doesn't satisfy its `@length` requirements.
        9689  +
        Length(usize),
 9656   9690   
    }
 9657   9691   
 9658   9692   
    impl ::std::fmt::Display for ConstraintViolation {
 9659   9693   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9660         -
            match self {
 9661         -
                Self::Value(_, value_constraint_violation) => {
 9662         -
                    write!(f, "{}", value_constraint_violation)
        9694  +
            let message = match self {
        9695  +
                Self::Length(length) => {
        9696  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#MinLengthString' failed to satisfy constraint: Member must have length greater than or equal to 2", length)
 9663   9697   
                }
 9664         -
            }
        9698  +
            };
        9699  +
            write!(f, "{message}")
 9665   9700   
        }
 9666   9701   
    }
 9667   9702   
 9668   9703   
    impl ::std::error::Error for ConstraintViolation {}
 9669   9704   
    impl ConstraintViolation {
 9670   9705   
        pub(crate) fn as_validation_exception_field(
 9671   9706   
            self,
 9672   9707   
            path: ::std::string::String,
 9673   9708   
        ) -> crate::model::ValidationExceptionField {
 9674   9709   
            match self {
 9675         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 9676         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 9677         -
            }
        9710  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
        9711  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 2", length, &path),
        9712  +
                            path,
        9713  +
                        },
        9714  +
                        }
 9678   9715   
        }
 9679   9716   
    }
 9680   9717   
}
 9681         -
pub(crate) mod range_long_internal {
        9718  +
pub(crate) mod max_length_string_internal {
 9682   9719   
 9683   9720   
    #[derive(Debug, PartialEq)]
 9684   9721   
    pub enum ConstraintViolation {
 9685         -
        Range(i64),
        9722  +
        /// Error when a string doesn't satisfy its `@length` requirements.
        9723  +
        Length(usize),
 9686   9724   
    }
 9687   9725   
 9688   9726   
    impl ::std::fmt::Display for ConstraintViolation {
 9689   9727   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9690         -
            write!(f, "Value for `com.amazonaws.constraints#RangeLong`failed to satisfy constraint: Member must be between 0 and 10, inclusive")
        9728  +
            let message = match self {
        9729  +
                Self::Length(length) => {
        9730  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#MaxLengthString' failed to satisfy constraint: Member must have length less than or equal to 69", length)
        9731  +
                }
        9732  +
            };
        9733  +
            write!(f, "{message}")
 9691   9734   
        }
 9692   9735   
    }
 9693   9736   
 9694   9737   
    impl ::std::error::Error for ConstraintViolation {}
 9695   9738   
    impl ConstraintViolation {
 9696   9739   
        pub(crate) fn as_validation_exception_field(
 9697   9740   
            self,
 9698   9741   
            path: ::std::string::String,
 9699   9742   
        ) -> crate::model::ValidationExceptionField {
 9700   9743   
            match self {
 9701         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
 9702         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 10, inclusive", &path),
        9744  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
        9745  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length less than or equal to 69", length, &path),
 9703   9746   
                            path,
 9704   9747   
                        },
 9705   9748   
                        }
 9706   9749   
        }
 9707   9750   
    }
 9708   9751   
}
 9709         -
pub(crate) mod set_of_range_long_internal {
        9752  +
pub(crate) mod fixed_length_string_internal {
 9710   9753   
 9711         -
    #[allow(clippy::enum_variant_names)]
 9712   9754   
    #[derive(Debug, PartialEq)]
 9713         -
    pub(crate) enum ConstraintViolation {
 9714         -
        /// Constraint violation error when the list does not contain unique items
 9715         -
        UniqueItems {
 9716         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 9717         -
            /// at least two elements.
 9718         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 9719         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 9720         -
            /// Nothing is guaranteed about the order of the indices.
 9721         -
            duplicate_indices: ::std::vec::Vec<usize>,
 9722         -
            /// The original vector, that contains duplicate items.
 9723         -
            original: ::std::vec::Vec<crate::model::RangeLong>,
 9724         -
        },
 9725         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9726         -
        /// The first component of the tuple is the index in the collection where the
 9727         -
        /// first constraint violation was found.
 9728         -
        #[doc(hidden)]
 9729         -
        Member(
 9730         -
            usize,
 9731         -
            crate::model::range_long_internal::ConstraintViolation,
 9732         -
        ),
        9755  +
    pub enum ConstraintViolation {
        9756  +
        /// Error when a string doesn't satisfy its `@length` requirements.
        9757  +
        Length(usize),
 9733   9758   
    }
 9734   9759   
 9735   9760   
    impl ::std::fmt::Display for ConstraintViolation {
 9736   9761   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9737   9762   
            let message = match self {
 9738         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 9739         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfRangeLong' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 9740         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
 9741         -
                           failing_member)
 9742         -
                            };
        9763  +
                Self::Length(length) => {
        9764  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#FixedLengthString' failed to satisfy constraint: Member must have length between 69 and 69, inclusive", length)
        9765  +
                }
        9766  +
            };
 9743   9767   
            write!(f, "{message}")
 9744   9768   
        }
 9745   9769   
    }
 9746   9770   
 9747   9771   
    impl ::std::error::Error for ConstraintViolation {}
 9748   9772   
    impl ConstraintViolation {
 9749   9773   
        pub(crate) fn as_validation_exception_field(
 9750   9774   
            self,
 9751   9775   
            path: ::std::string::String,
 9752   9776   
        ) -> crate::model::ValidationExceptionField {
 9753   9777   
            match self {
 9754         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 9755         -
                                crate::model::ValidationExceptionField {
 9756         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 9757         -
                                    path,
 9758         -
                                },
 9759         -
    Self::Member(index, member_constraint_violation) =>
 9760         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 9761         -
                    }
        9778  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
        9779  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 69 and 69, inclusive", length, &path),
        9780  +
                            path,
        9781  +
                        },
        9782  +
                        }
 9762   9783   
        }
 9763   9784   
    }
 9764   9785   
}
 9765         -
pub(crate) mod list_of_range_long_internal {
        9786  +
pub(crate) mod length_blob_internal {
 9766   9787   
 9767         -
    #[allow(clippy::enum_variant_names)]
 9768   9788   
    #[derive(Debug, PartialEq)]
 9769         -
    pub(crate) enum ConstraintViolation {
 9770         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9771         -
        /// The first component of the tuple is the index in the collection where the
 9772         -
        /// first constraint violation was found.
 9773         -
        #[doc(hidden)]
 9774         -
        Member(
 9775         -
            usize,
 9776         -
            crate::model::range_long_internal::ConstraintViolation,
 9777         -
        ),
        9789  +
    pub enum ConstraintViolation {
        9790  +
        /// Error when a blob doesn't satisfy its `@length` requirements.
        9791  +
        Length(usize),
 9778   9792   
    }
 9779   9793   
 9780   9794   
    impl ::std::fmt::Display for ConstraintViolation {
 9781   9795   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9782   9796   
            let message = match self {
 9783         -
                Self::Member(index, failing_member) => format!(
 9784         -
                    "Value at index {index} failed to satisfy constraint. {}",
 9785         -
                    failing_member
 9786         -
                ),
        9797  +
                Self::Length(length) => {
        9798  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthBlob' failed to satisfy constraint: Member must have length between 2 and 70, inclusive", length)
        9799  +
                }
 9787   9800   
            };
 9788   9801   
            write!(f, "{message}")
 9789   9802   
        }
 9790   9803   
    }
 9791   9804   
 9792   9805   
    impl ::std::error::Error for ConstraintViolation {}
 9793   9806   
    impl ConstraintViolation {
 9794   9807   
        pub(crate) fn as_validation_exception_field(
 9795   9808   
            self,
 9796   9809   
            path: ::std::string::String,
 9797   9810   
        ) -> crate::model::ValidationExceptionField {
 9798   9811   
            match self {
 9799         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 9800         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 9801         -
            }
        9812  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
        9813  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 2 and 70, inclusive", length, &path),
        9814  +
                            path,
        9815  +
                        },
        9816  +
                        }
 9802   9817   
        }
 9803   9818   
    }
 9804   9819   
}
 9805         -
pub(crate) mod map_of_range_short_internal {
        9820  +
pub(crate) mod min_length_blob_internal {
 9806   9821   
 9807         -
    #[allow(clippy::enum_variant_names)]
 9808   9822   
    #[derive(Debug, PartialEq)]
 9809         -
    pub(crate) enum ConstraintViolation {
 9810         -
        #[doc(hidden)]
 9811         -
        Value(
 9812         -
            ::std::string::String,
 9813         -
            crate::model::range_short_internal::ConstraintViolation,
 9814         -
        ),
        9823  +
    pub enum ConstraintViolation {
        9824  +
        /// Error when a blob doesn't satisfy its `@length` requirements.
        9825  +
        Length(usize),
 9815   9826   
    }
 9816   9827   
 9817   9828   
    impl ::std::fmt::Display for ConstraintViolation {
 9818   9829   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9819         -
            match self {
 9820         -
                Self::Value(_, value_constraint_violation) => {
 9821         -
                    write!(f, "{}", value_constraint_violation)
        9830  +
            let message = match self {
        9831  +
                Self::Length(length) => {
        9832  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#MinLengthBlob' failed to satisfy constraint: Member must have length greater than or equal to 2", length)
 9822   9833   
                }
 9823         -
            }
        9834  +
            };
        9835  +
            write!(f, "{message}")
 9824   9836   
        }
 9825   9837   
    }
 9826   9838   
 9827   9839   
    impl ::std::error::Error for ConstraintViolation {}
 9828   9840   
    impl ConstraintViolation {
 9829   9841   
        pub(crate) fn as_validation_exception_field(
 9830   9842   
            self,
 9831   9843   
            path: ::std::string::String,
 9832   9844   
        ) -> crate::model::ValidationExceptionField {
 9833   9845   
            match self {
 9834         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 9835         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 9836         -
            }
        9846  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
        9847  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 2", length, &path),
        9848  +
                            path,
        9849  +
                        },
        9850  +
                        }
 9837   9851   
        }
 9838   9852   
    }
 9839   9853   
}
 9840         -
pub(crate) mod range_short_internal {
        9854  +
pub(crate) mod max_length_blob_internal {
 9841   9855   
 9842   9856   
    #[derive(Debug, PartialEq)]
 9843   9857   
    pub enum ConstraintViolation {
 9844         -
        Range(i16),
        9858  +
        /// Error when a blob doesn't satisfy its `@length` requirements.
        9859  +
        Length(usize),
 9845   9860   
    }
 9846   9861   
 9847   9862   
    impl ::std::fmt::Display for ConstraintViolation {
 9848   9863   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9849         -
            write!(f, "Value for `com.amazonaws.constraints#RangeShort`failed to satisfy constraint: Member must be between 0 and 10, inclusive")
        9864  +
            let message = match self {
        9865  +
                Self::Length(length) => {
        9866  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#MaxLengthBlob' failed to satisfy constraint: Member must have length less than or equal to 70", length)
        9867  +
                }
        9868  +
            };
        9869  +
            write!(f, "{message}")
 9850   9870   
        }
 9851   9871   
    }
 9852   9872   
 9853   9873   
    impl ::std::error::Error for ConstraintViolation {}
 9854   9874   
    impl ConstraintViolation {
 9855   9875   
        pub(crate) fn as_validation_exception_field(
 9856   9876   
            self,
 9857   9877   
            path: ::std::string::String,
 9858   9878   
        ) -> crate::model::ValidationExceptionField {
 9859   9879   
            match self {
 9860         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
 9861         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 10, inclusive", &path),
        9880  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
        9881  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length less than or equal to 70", length, &path),
 9862   9882   
                            path,
 9863   9883   
                        },
 9864   9884   
                        }
 9865   9885   
        }
 9866   9886   
    }
 9867   9887   
}
 9868         -
pub(crate) mod set_of_range_short_internal {
        9888  +
pub(crate) mod fixed_length_blob_internal {
 9869   9889   
 9870         -
    #[allow(clippy::enum_variant_names)]
 9871   9890   
    #[derive(Debug, PartialEq)]
 9872         -
    pub(crate) enum ConstraintViolation {
 9873         -
        /// Constraint violation error when the list does not contain unique items
 9874         -
        UniqueItems {
 9875         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
 9876         -
            /// at least two elements.
 9877         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
 9878         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
 9879         -
            /// Nothing is guaranteed about the order of the indices.
 9880         -
            duplicate_indices: ::std::vec::Vec<usize>,
 9881         -
            /// The original vector, that contains duplicate items.
 9882         -
            original: ::std::vec::Vec<crate::model::RangeShort>,
 9883         -
        },
 9884         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9885         -
        /// The first component of the tuple is the index in the collection where the
 9886         -
        /// first constraint violation was found.
 9887         -
        #[doc(hidden)]
 9888         -
        Member(
 9889         -
            usize,
 9890         -
            crate::model::range_short_internal::ConstraintViolation,
 9891         -
        ),
        9891  +
    pub enum ConstraintViolation {
        9892  +
        /// Error when a blob doesn't satisfy its `@length` requirements.
        9893  +
        Length(usize),
 9892   9894   
    }
 9893   9895   
 9894   9896   
    impl ::std::fmt::Display for ConstraintViolation {
 9895   9897   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9896   9898   
            let message = match self {
 9897         -
                                Self::UniqueItems { duplicate_indices, .. } =>
 9898         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfRangeShort' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
 9899         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
 9900         -
                           failing_member)
 9901         -
                            };
        9899  +
                Self::Length(length) => {
        9900  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#FixedLengthBlob' failed to satisfy constraint: Member must have length between 70 and 70, inclusive", length)
        9901  +
                }
        9902  +
            };
 9902   9903   
            write!(f, "{message}")
 9903   9904   
        }
 9904   9905   
    }
 9905   9906   
 9906   9907   
    impl ::std::error::Error for ConstraintViolation {}
 9907   9908   
    impl ConstraintViolation {
 9908   9909   
        pub(crate) fn as_validation_exception_field(
 9909   9910   
            self,
 9910   9911   
            path: ::std::string::String,
 9911   9912   
        ) -> crate::model::ValidationExceptionField {
 9912   9913   
            match self {
 9913         -
                        Self::UniqueItems { duplicate_indices, .. } =>
 9914         -
                                crate::model::ValidationExceptionField {
 9915         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
 9916         -
                                    path,
 9917         -
                                },
 9918         -
    Self::Member(index, member_constraint_violation) =>
 9919         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
 9920         -
                    }
        9914  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
        9915  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 70 and 70, inclusive", length, &path),
        9916  +
                            path,
        9917  +
                        },
        9918  +
                        }
 9921   9919   
        }
 9922   9920   
    }
 9923   9921   
}
 9924         -
pub(crate) mod list_of_range_short_internal {
        9922  +
pub(crate) mod min_range_integer_internal {
 9925   9923   
 9926         -
    #[allow(clippy::enum_variant_names)]
 9927   9924   
    #[derive(Debug, PartialEq)]
 9928         -
    pub(crate) enum ConstraintViolation {
 9929         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 9930         -
        /// The first component of the tuple is the index in the collection where the
 9931         -
        /// first constraint violation was found.
 9932         -
        #[doc(hidden)]
 9933         -
        Member(
 9934         -
            usize,
 9935         -
            crate::model::range_short_internal::ConstraintViolation,
 9936         -
        ),
        9925  +
    pub enum ConstraintViolation {
        9926  +
        Range(i32),
 9937   9927   
    }
 9938   9928   
 9939   9929   
    impl ::std::fmt::Display for ConstraintViolation {
 9940   9930   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9941         -
            let message = match self {
 9942         -
                Self::Member(index, failing_member) => format!(
 9943         -
                    "Value at index {index} failed to satisfy constraint. {}",
 9944         -
                    failing_member
 9945         -
                ),
 9946         -
            };
 9947         -
            write!(f, "{message}")
        9931  +
            write!(f, "Value for `com.amazonaws.constraints#MinRangeInteger`failed to satisfy constraint: Member must be greater than or equal to -10")
 9948   9932   
        }
 9949   9933   
    }
 9950   9934   
 9951   9935   
    impl ::std::error::Error for ConstraintViolation {}
 9952   9936   
    impl ConstraintViolation {
 9953   9937   
        pub(crate) fn as_validation_exception_field(
 9954   9938   
            self,
 9955   9939   
            path: ::std::string::String,
 9956   9940   
        ) -> crate::model::ValidationExceptionField {
 9957   9941   
            match self {
 9958         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 9959         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 9960         -
            }
        9942  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
        9943  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to -10", &path),
        9944  +
                            path,
        9945  +
                        },
        9946  +
                        }
 9961   9947   
        }
 9962   9948   
    }
 9963   9949   
}
 9964         -
pub(crate) mod map_of_range_integer_internal {
        9950  +
pub(crate) mod max_range_integer_internal {
 9965   9951   
 9966         -
    #[allow(clippy::enum_variant_names)]
 9967   9952   
    #[derive(Debug, PartialEq)]
 9968         -
    pub(crate) enum ConstraintViolation {
 9969         -
        #[doc(hidden)]
 9970         -
        Value(
 9971         -
            ::std::string::String,
 9972         -
            crate::model::range_integer_internal::ConstraintViolation,
 9973         -
        ),
        9953  +
    pub enum ConstraintViolation {
        9954  +
        Range(i32),
 9974   9955   
    }
 9975   9956   
 9976   9957   
    impl ::std::fmt::Display for ConstraintViolation {
 9977   9958   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 9978         -
            match self {
 9979         -
                Self::Value(_, value_constraint_violation) => {
 9980         -
                    write!(f, "{}", value_constraint_violation)
 9981         -
                }
 9982         -
            }
        9959  +
            write!(f, "Value for `com.amazonaws.constraints#MaxRangeInteger`failed to satisfy constraint: Member must be less than or equal to 69")
 9983   9960   
        }
 9984   9961   
    }
 9985   9962   
 9986   9963   
    impl ::std::error::Error for ConstraintViolation {}
 9987   9964   
    impl ConstraintViolation {
 9988   9965   
        pub(crate) fn as_validation_exception_field(
 9989   9966   
            self,
 9990   9967   
            path: ::std::string::String,
 9991   9968   
        ) -> crate::model::ValidationExceptionField {
 9992   9969   
            match self {
 9993         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
 9994         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
 9995         -
            }
        9970  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
        9971  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be less than or equal to 69", &path),
        9972  +
                            path,
        9973  +
                        },
        9974  +
                        }
 9996   9975   
        }
 9997   9976   
    }
 9998   9977   
}
 9999         -
pub(crate) mod range_integer_internal {
        9978  +
pub(crate) mod fixed_value_integer_internal {
10000   9979   
10001   9980   
    #[derive(Debug, PartialEq)]
10002   9981   
    pub enum ConstraintViolation {
10003   9982   
        Range(i32),
10004   9983   
    }
10005   9984   
10006   9985   
    impl ::std::fmt::Display for ConstraintViolation {
10007   9986   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10008         -
            write!(f, "Value for `com.amazonaws.constraints#RangeInteger`failed to satisfy constraint: Member must be between 0 and 69, inclusive")
        9987  +
            write!(f, "Value for `com.amazonaws.constraints#FixedValueInteger`failed to satisfy constraint: Member must be between 69 and 69, inclusive")
10009   9988   
        }
10010   9989   
    }
10011   9990   
10012   9991   
    impl ::std::error::Error for ConstraintViolation {}
10013   9992   
    impl ConstraintViolation {
10014   9993   
        pub(crate) fn as_validation_exception_field(
10015   9994   
            self,
10016   9995   
            path: ::std::string::String,
10017   9996   
        ) -> crate::model::ValidationExceptionField {
10018   9997   
            match self {
10019   9998   
                            Self::Range(_) => crate::model::ValidationExceptionField {
10020         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 69, inclusive", &path),
        9999  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 69 and 69, inclusive", &path),
10021  10000   
                            path,
10022  10001   
                        },
10023  10002   
                        }
10024  10003   
        }
10025  10004   
    }
10026  10005   
}
10027         -
pub(crate) mod set_of_range_integer_internal {
       10006  +
pub(crate) mod min_range_short_internal {
10028  10007   
10029         -
    #[allow(clippy::enum_variant_names)]
10030  10008   
    #[derive(Debug, PartialEq)]
10031         -
    pub(crate) enum ConstraintViolation {
10032         -
        /// Constraint violation error when the list does not contain unique items
10033         -
        UniqueItems {
10034         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
10035         -
            /// at least two elements.
10036         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
10037         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
10038         -
            /// Nothing is guaranteed about the order of the indices.
10039         -
            duplicate_indices: ::std::vec::Vec<usize>,
10040         -
            /// The original vector, that contains duplicate items.
10041         -
            original: ::std::vec::Vec<crate::model::RangeInteger>,
10042         -
        },
10043         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
10044         -
        /// The first component of the tuple is the index in the collection where the
10045         -
        /// first constraint violation was found.
10046         -
        #[doc(hidden)]
10047         -
        Member(
10048         -
            usize,
10049         -
            crate::model::range_integer_internal::ConstraintViolation,
10050         -
        ),
       10009  +
    pub enum ConstraintViolation {
       10010  +
        Range(i16),
10051  10011   
    }
10052  10012   
10053  10013   
    impl ::std::fmt::Display for ConstraintViolation {
10054  10014   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10055         -
            let message = match self {
10056         -
                                Self::UniqueItems { duplicate_indices, .. } =>
10057         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfRangeInteger' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
10058         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
10059         -
                           failing_member)
10060         -
                            };
10061         -
            write!(f, "{message}")
       10015  +
            write!(f, "Value for `com.amazonaws.constraints#MinRangeShort`failed to satisfy constraint: Member must be greater than or equal to -10")
10062  10016   
        }
10063  10017   
    }
10064  10018   
10065  10019   
    impl ::std::error::Error for ConstraintViolation {}
10066  10020   
    impl ConstraintViolation {
10067  10021   
        pub(crate) fn as_validation_exception_field(
10068  10022   
            self,
10069  10023   
            path: ::std::string::String,
10070  10024   
        ) -> crate::model::ValidationExceptionField {
10071  10025   
            match self {
10072         -
                        Self::UniqueItems { duplicate_indices, .. } =>
10073         -
                                crate::model::ValidationExceptionField {
10074         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
10075         -
                                    path,
10076         -
                                },
10077         -
    Self::Member(index, member_constraint_violation) =>
10078         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
10079         -
                    }
       10026  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10027  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to -10", &path),
       10028  +
                            path,
       10029  +
                        },
       10030  +
                        }
10080  10031   
        }
10081  10032   
    }
10082  10033   
}
10083         -
pub(crate) mod list_of_range_integer_internal {
       10034  +
pub(crate) mod max_range_short_internal {
10084  10035   
10085         -
    #[allow(clippy::enum_variant_names)]
10086  10036   
    #[derive(Debug, PartialEq)]
10087         -
    pub(crate) enum ConstraintViolation {
10088         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
10089         -
        /// The first component of the tuple is the index in the collection where the
10090         -
        /// first constraint violation was found.
10091         -
        #[doc(hidden)]
10092         -
        Member(
10093         -
            usize,
10094         -
            crate::model::range_integer_internal::ConstraintViolation,
10095         -
        ),
       10037  +
    pub enum ConstraintViolation {
       10038  +
        Range(i16),
10096  10039   
    }
10097  10040   
10098  10041   
    impl ::std::fmt::Display for ConstraintViolation {
10099  10042   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10100         -
            let message = match self {
10101         -
                Self::Member(index, failing_member) => format!(
10102         -
                    "Value at index {index} failed to satisfy constraint. {}",
10103         -
                    failing_member
10104         -
                ),
10105         -
            };
10106         -
            write!(f, "{message}")
       10043  +
            write!(f, "Value for `com.amazonaws.constraints#MaxRangeShort`failed to satisfy constraint: Member must be less than or equal to 11")
10107  10044   
        }
10108  10045   
    }
10109  10046   
10110  10047   
    impl ::std::error::Error for ConstraintViolation {}
10111  10048   
    impl ConstraintViolation {
10112  10049   
        pub(crate) fn as_validation_exception_field(
10113  10050   
            self,
10114  10051   
            path: ::std::string::String,
10115  10052   
        ) -> crate::model::ValidationExceptionField {
10116  10053   
            match self {
10117         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
10118         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
10119         -
            }
       10054  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10055  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be less than or equal to 11", &path),
       10056  +
                            path,
       10057  +
                        },
       10058  +
                        }
10120  10059   
        }
10121  10060   
    }
10122  10061   
}
10123         -
pub(crate) mod map_of_length_blob_internal {
       10062  +
pub(crate) mod fixed_value_short_internal {
10124  10063   
10125         -
    #[allow(clippy::enum_variant_names)]
10126  10064   
    #[derive(Debug, PartialEq)]
10127         -
    pub(crate) enum ConstraintViolation {
10128         -
        #[doc(hidden)]
10129         -
        Value(
10130         -
            ::std::string::String,
10131         -
            crate::model::length_blob_internal::ConstraintViolation,
10132         -
        ),
       10065  +
    pub enum ConstraintViolation {
       10066  +
        Range(i16),
10133  10067   
    }
10134  10068   
10135  10069   
    impl ::std::fmt::Display for ConstraintViolation {
10136  10070   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10137         -
            match self {
10138         -
                Self::Value(_, value_constraint_violation) => {
10139         -
                    write!(f, "{}", value_constraint_violation)
10140         -
                }
10141         -
            }
       10071  +
            write!(f, "Value for `com.amazonaws.constraints#FixedValueShort`failed to satisfy constraint: Member must be between 10 and 10, inclusive")
10142  10072   
        }
10143  10073   
    }
10144  10074   
10145  10075   
    impl ::std::error::Error for ConstraintViolation {}
10146  10076   
    impl ConstraintViolation {
10147  10077   
        pub(crate) fn as_validation_exception_field(
10148  10078   
            self,
10149  10079   
            path: ::std::string::String,
10150  10080   
        ) -> crate::model::ValidationExceptionField {
10151  10081   
            match self {
10152         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
10153         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
10154         -
            }
       10082  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10083  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 10 and 10, inclusive", &path),
       10084  +
                            path,
       10085  +
                        },
       10086  +
                        }
10155  10087   
        }
10156  10088   
    }
10157  10089   
}
10158         -
pub(crate) mod length_blob_internal {
       10090  +
pub(crate) mod min_range_long_internal {
10159  10091   
10160  10092   
    #[derive(Debug, PartialEq)]
10161  10093   
    pub enum ConstraintViolation {
10162         -
        /// Error when a blob doesn't satisfy its `@length` requirements.
10163         -
        Length(usize),
       10094  +
        Range(i64),
10164  10095   
    }
10165  10096   
10166  10097   
    impl ::std::fmt::Display for ConstraintViolation {
10167  10098   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10168         -
            let message = match self {
10169         -
                Self::Length(length) => {
10170         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthBlob' failed to satisfy constraint: Member must have length between 2 and 70, inclusive", length)
10171         -
                }
10172         -
            };
10173         -
            write!(f, "{message}")
       10099  +
            write!(f, "Value for `com.amazonaws.constraints#MinRangeLong`failed to satisfy constraint: Member must be greater than or equal to -10")
10174  10100   
        }
10175  10101   
    }
10176  10102   
10177  10103   
    impl ::std::error::Error for ConstraintViolation {}
10178  10104   
    impl ConstraintViolation {
10179  10105   
        pub(crate) fn as_validation_exception_field(
10180  10106   
            self,
10181  10107   
            path: ::std::string::String,
10182  10108   
        ) -> crate::model::ValidationExceptionField {
10183  10109   
            match self {
10184         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
10185         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 2 and 70, inclusive", length, &path),
       10110  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10111  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to -10", &path),
10186  10112   
                            path,
10187  10113   
                        },
10188  10114   
                        }
10189  10115   
        }
10190  10116   
    }
10191  10117   
}
10192         -
pub(crate) mod list_of_length_blob_internal {
       10118  +
pub(crate) mod max_range_long_internal {
10193  10119   
10194         -
    #[allow(clippy::enum_variant_names)]
10195  10120   
    #[derive(Debug, PartialEq)]
10196         -
    pub(crate) enum ConstraintViolation {
10197         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
10198         -
        /// The first component of the tuple is the index in the collection where the
10199         -
        /// first constraint violation was found.
10200         -
        #[doc(hidden)]
10201         -
        Member(
10202         -
            usize,
10203         -
            crate::model::length_blob_internal::ConstraintViolation,
10204         -
        ),
       10121  +
    pub enum ConstraintViolation {
       10122  +
        Range(i64),
10205  10123   
    }
10206  10124   
10207  10125   
    impl ::std::fmt::Display for ConstraintViolation {
10208  10126   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10209         -
            let message = match self {
10210         -
                Self::Member(index, failing_member) => format!(
10211         -
                    "Value at index {index} failed to satisfy constraint. {}",
10212         -
                    failing_member
10213         -
                ),
10214         -
            };
10215         -
            write!(f, "{message}")
       10127  +
            write!(f, "Value for `com.amazonaws.constraints#MaxRangeLong`failed to satisfy constraint: Member must be less than or equal to 11")
10216  10128   
        }
10217  10129   
    }
10218  10130   
10219  10131   
    impl ::std::error::Error for ConstraintViolation {}
10220  10132   
    impl ConstraintViolation {
10221  10133   
        pub(crate) fn as_validation_exception_field(
10222  10134   
            self,
10223  10135   
            path: ::std::string::String,
10224  10136   
        ) -> crate::model::ValidationExceptionField {
10225  10137   
            match self {
10226         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
10227         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
10228         -
            }
       10138  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10139  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be less than or equal to 11", &path),
       10140  +
                            path,
       10141  +
                        },
       10142  +
                        }
10229  10143   
        }
10230  10144   
    }
10231  10145   
}
10232         -
pub(crate) mod constrained_union_internal {
       10146  +
pub(crate) mod fixed_value_long_internal {
10233  10147   
10234         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
10235         -
    #[allow(clippy::enum_variant_names)]
10236         -
    pub(crate) enum ConstraintViolation {
10237         -
        ConBList(crate::model::con_b_list_internal::ConstraintViolation),
10238         -
        ConBMap(crate::model::con_b_map_internal::ConstraintViolation),
10239         -
        ConBSet(crate::model::con_b_set_internal::ConstraintViolation),
10240         -
        ConstrainedStructure(crate::model::con_b_internal::ConstraintViolation),
10241         -
        EnumString(crate::model::enum_string_internal::ConstraintViolation),
10242         -
        LengthString(crate::model::length_string_internal::ConstraintViolation),
       10148  +
    #[derive(Debug, PartialEq)]
       10149  +
    pub enum ConstraintViolation {
       10150  +
        Range(i64),
10243  10151   
    }
       10152  +
10244  10153   
    impl ::std::fmt::Display for ConstraintViolation {
10245  10154   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10246         -
            match self {
10247         -
                Self::ConBList(inner) => write!(f, "{inner}"),
10248         -
                Self::ConBMap(inner) => write!(f, "{inner}"),
10249         -
                Self::ConBSet(inner) => write!(f, "{inner}"),
10250         -
                Self::ConstrainedStructure(inner) => write!(f, "{inner}"),
10251         -
                Self::EnumString(inner) => write!(f, "{inner}"),
10252         -
                Self::LengthString(inner) => write!(f, "{inner}"),
10253         -
            }
       10155  +
            write!(f, "Value for `com.amazonaws.constraints#FixedValueLong`failed to satisfy constraint: Member must be between 10 and 10, inclusive")
10254  10156   
        }
10255  10157   
    }
10256  10158   
10257  10159   
    impl ::std::error::Error for ConstraintViolation {}
10258  10160   
    impl ConstraintViolation {
10259  10161   
        pub(crate) fn as_validation_exception_field(
10260  10162   
            self,
10261  10163   
            path: ::std::string::String,
10262  10164   
        ) -> crate::model::ValidationExceptionField {
10263  10165   
            match self {
10264         -
                Self::ConBList(inner) => inner.as_validation_exception_field(path + "/conBList"),
10265         -
                Self::ConBMap(inner) => inner.as_validation_exception_field(path + "/conBMap"),
10266         -
                Self::ConBSet(inner) => inner.as_validation_exception_field(path + "/conBSet"),
10267         -
                Self::ConstrainedStructure(inner) => {
10268         -
                    inner.as_validation_exception_field(path + "/constrainedStructure")
10269         -
                }
10270         -
                Self::EnumString(inner) => {
10271         -
                    inner.as_validation_exception_field(path + "/enumString")
10272         -
                }
10273         -
                Self::LengthString(inner) => {
10274         -
                    inner.as_validation_exception_field(path + "/lengthString")
10275         -
                }
10276         -
            }
       10166  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10167  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 10 and 10, inclusive", &path),
       10168  +
                            path,
       10169  +
                        },
       10170  +
                        }
10277  10171   
        }
10278  10172   
    }
10279  10173   
}
10280         -
pub(crate) mod con_b_set_internal {
       10174  +
pub(crate) mod min_range_byte_internal {
10281  10175   
10282         -
    #[allow(clippy::enum_variant_names)]
10283  10176   
    #[derive(Debug, PartialEq)]
10284         -
    pub(crate) enum ConstraintViolation {
10285         -
        /// Constraint violation error when the list does not contain unique items
10286         -
        UniqueItems {
10287         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
10288         -
            /// at least two elements.
10289         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
10290         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
10291         -
            /// Nothing is guaranteed about the order of the indices.
10292         -
            duplicate_indices: ::std::vec::Vec<usize>,
10293         -
            /// The original vector, that contains duplicate items.
10294         -
            original: ::std::vec::Vec<crate::model::ConBSetInner>,
10295         -
        },
10296         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
10297         -
        /// The first component of the tuple is the index in the collection where the
10298         -
        /// first constraint violation was found.
10299         -
        #[doc(hidden)]
10300         -
        Member(
10301         -
            usize,
10302         -
            crate::model::con_b_set_inner_internal::ConstraintViolation,
10303         -
        ),
       10177  +
    pub enum ConstraintViolation {
       10178  +
        Range(i8),
10304  10179   
    }
10305  10180   
10306  10181   
    impl ::std::fmt::Display for ConstraintViolation {
10307  10182   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10308         -
            let message = match self {
10309         -
                                Self::UniqueItems { duplicate_indices, .. } =>
10310         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#ConBSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
10311         -
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
10312         -
                           failing_member)
10313         -
                            };
10314         -
            write!(f, "{message}")
       10183  +
            write!(f, "Value for `com.amazonaws.constraints#MinRangeByte`failed to satisfy constraint: Member must be greater than or equal to -10")
10315  10184   
        }
10316  10185   
    }
10317  10186   
10318  10187   
    impl ::std::error::Error for ConstraintViolation {}
10319  10188   
    impl ConstraintViolation {
10320  10189   
        pub(crate) fn as_validation_exception_field(
10321  10190   
            self,
10322  10191   
            path: ::std::string::String,
10323  10192   
        ) -> crate::model::ValidationExceptionField {
10324  10193   
            match self {
10325         -
                        Self::UniqueItems { duplicate_indices, .. } =>
10326         -
                                crate::model::ValidationExceptionField {
10327         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
10328         -
                                    path,
10329         -
                                },
10330         -
    Self::Member(index, member_constraint_violation) =>
10331         -
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
10332         -
                    }
       10194  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10195  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to -10", &path),
       10196  +
                            path,
       10197  +
                        },
       10198  +
                        }
10333  10199   
        }
10334  10200   
    }
10335  10201   
}
10336         -
pub(crate) mod con_b_set_inner_internal {
10337         -
10338         -
    #[allow(clippy::enum_variant_names)]
10339         -
    #[derive(Debug, PartialEq)]
10340         -
    pub(crate) enum ConstraintViolation {
10341         -
        /// Constraint violation error when the list does not contain unique items
10342         -
        UniqueItems {
10343         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
10344         -
            /// at least two elements.
10345         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
10346         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
10347         -
            /// Nothing is guaranteed about the order of the indices.
10348         -
            duplicate_indices: ::std::vec::Vec<usize>,
10349         -
            /// The original vector, that contains duplicate items.
10350         -
            original: ::std::vec::Vec<::std::string::String>,
10351         -
        },
       10202  +
pub(crate) mod max_range_byte_internal {
       10203  +
       10204  +
    #[derive(Debug, PartialEq)]
       10205  +
    pub enum ConstraintViolation {
       10206  +
        Range(i8),
10352  10207   
    }
10353  10208   
10354  10209   
    impl ::std::fmt::Display for ConstraintViolation {
10355  10210   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10356         -
            let message = match self {
10357         -
                                Self::UniqueItems { duplicate_indices, .. } =>
10358         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#ConBSetInner' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
10359         -
                            };
10360         -
            write!(f, "{message}")
       10211  +
            write!(f, "Value for `com.amazonaws.constraints#MaxRangeByte`failed to satisfy constraint: Member must be less than or equal to 11")
10361  10212   
        }
10362  10213   
    }
10363  10214   
10364  10215   
    impl ::std::error::Error for ConstraintViolation {}
10365  10216   
    impl ConstraintViolation {
10366  10217   
        pub(crate) fn as_validation_exception_field(
10367  10218   
            self,
10368  10219   
            path: ::std::string::String,
10369  10220   
        ) -> crate::model::ValidationExceptionField {
10370  10221   
            match self {
10371         -
                        Self::UniqueItems { duplicate_indices, .. } =>
10372         -
                                crate::model::ValidationExceptionField {
10373         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
10374         -
                                    path,
10375         -
                                },
10376         -
                    }
       10222  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10223  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be less than or equal to 11", &path),
       10224  +
                            path,
       10225  +
                        },
       10226  +
                        }
10377  10227   
        }
10378  10228   
    }
10379  10229   
}
10380         -
pub(crate) mod con_b_list_internal {
       10230  +
pub(crate) mod fixed_value_byte_internal {
10381  10231   
10382         -
    #[allow(clippy::enum_variant_names)]
10383  10232   
    #[derive(Debug, PartialEq)]
10384         -
    pub(crate) enum ConstraintViolation {
10385         -
        /// Constraint violation error when an element doesn't satisfy its own constraints.
10386         -
        /// The first component of the tuple is the index in the collection where the
10387         -
        /// first constraint violation was found.
10388         -
        #[doc(hidden)]
10389         -
        Member(
10390         -
            usize,
10391         -
            crate::model::con_b_list_inner_internal::ConstraintViolation,
10392         -
        ),
       10233  +
    pub enum ConstraintViolation {
       10234  +
        Range(i8),
10393  10235   
    }
10394  10236   
10395  10237   
    impl ::std::fmt::Display for ConstraintViolation {
10396  10238   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10397         -
            let message = match self {
10398         -
                Self::Member(index, failing_member) => format!(
10399         -
                    "Value at index {index} failed to satisfy constraint. {}",
10400         -
                    failing_member
10401         -
                ),
10402         -
            };
10403         -
            write!(f, "{message}")
       10239  +
            write!(f, "Value for `com.amazonaws.constraints#FixedValueByte`failed to satisfy constraint: Member must be between 10 and 10, inclusive")
10404  10240   
        }
10405  10241   
    }
10406  10242   
10407  10243   
    impl ::std::error::Error for ConstraintViolation {}
10408  10244   
    impl ConstraintViolation {
10409  10245   
        pub(crate) fn as_validation_exception_field(
10410  10246   
            self,
10411  10247   
            path: ::std::string::String,
10412  10248   
        ) -> crate::model::ValidationExceptionField {
10413  10249   
            match self {
10414         -
                Self::Member(index, member_constraint_violation) => member_constraint_violation
10415         -
                    .as_validation_exception_field(path + "/" + &index.to_string()),
10416         -
            }
       10250  +
                            Self::Range(_) => crate::model::ValidationExceptionField {
       10251  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 10 and 10, inclusive", &path),
       10252  +
                            path,
       10253  +
                        },
       10254  +
                        }
10417  10255   
        }
10418  10256   
    }
10419  10257   
}
10420         -
pub(crate) mod con_b_list_inner_internal {
       10258  +
pub(crate) mod con_b_list_internal {
10421  10259   
10422  10260   
    #[allow(clippy::enum_variant_names)]
10423  10261   
    #[derive(Debug, PartialEq)]
10424  10262   
    pub(crate) enum ConstraintViolation {
10425  10263   
        /// Constraint violation error when an element doesn't satisfy its own constraints.
10426  10264   
        /// The first component of the tuple is the index in the collection where the
10427  10265   
        /// first constraint violation was found.
10428  10266   
        #[doc(hidden)]
10429         -
        Member(usize, crate::model::con_b_internal::ConstraintViolation),
       10267  +
        Member(
       10268  +
            usize,
       10269  +
            crate::model::con_b_list_inner_internal::ConstraintViolation,
       10270  +
        ),
10430  10271   
    }
10431  10272   
10432  10273   
    impl ::std::fmt::Display for ConstraintViolation {
10433  10274   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10434  10275   
            let message = match self {
10435  10276   
                Self::Member(index, failing_member) => format!(
10436  10277   
                    "Value at index {index} failed to satisfy constraint. {}",
10437  10278   
                    failing_member
10438  10279   
                ),
10439  10280   
            };
10440  10281   
            write!(f, "{message}")
10441  10282   
        }
10442  10283   
    }
10443  10284   
10444  10285   
    impl ::std::error::Error for ConstraintViolation {}
10445  10286   
    impl ConstraintViolation {
10446  10287   
        pub(crate) fn as_validation_exception_field(
10447  10288   
            self,
10448  10289   
            path: ::std::string::String,
10449  10290   
        ) -> crate::model::ValidationExceptionField {
10450  10291   
            match self {
10451  10292   
                Self::Member(index, member_constraint_violation) => member_constraint_violation
10452  10293   
                    .as_validation_exception_field(path + "/" + &index.to_string()),
10453  10294   
            }
10454  10295   
        }
10455  10296   
    }
10456  10297   
}
10457         -
/// See [`ConB`](crate::model::ConB).
10458         -
pub(crate) mod con_b_internal {
       10298  +
pub(crate) mod length_list_internal {
10459  10299   
10460         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
10461         -
    /// Holds one variant for each of the ways the builder can fail.
10462         -
    #[non_exhaustive]
10463  10300   
    #[allow(clippy::enum_variant_names)]
       10301  +
    #[derive(Debug, PartialEq)]
10464  10302   
    pub(crate) enum ConstraintViolation {
10465         -
        /// `nice` was not provided but it is required when building `ConB`.
10466         -
        MissingNice,
10467         -
        /// `int` was not provided but it is required when building `ConB`.
10468         -
        MissingInt,
       10303  +
        /// Constraint violation error when the list doesn't have the required length
       10304  +
        Length(usize),
10469  10305   
    }
       10306  +
10470  10307   
    impl ::std::fmt::Display for ConstraintViolation {
10471  10308   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10472         -
            match self {
10473         -
                ConstraintViolation::MissingNice => write!(
10474         -
                    f,
10475         -
                    "`nice` was not provided but it is required when building `ConB`"
10476         -
                ),
10477         -
                ConstraintViolation::MissingInt => write!(
10478         -
                    f,
10479         -
                    "`int` was not provided but it is required when building `ConB`"
10480         -
                ),
10481         -
            }
       10309  +
            let message = match self {
       10310  +
                Self::Length(length) => {
       10311  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthList' failed to satisfy constraint: Member must have length less than or equal to 69", length)
       10312  +
                }
       10313  +
            };
       10314  +
            write!(f, "{message}")
10482  10315   
        }
10483  10316   
    }
       10317  +
10484  10318   
    impl ::std::error::Error for ConstraintViolation {}
10485  10319   
    impl ConstraintViolation {
10486  10320   
        pub(crate) fn as_validation_exception_field(
10487  10321   
            self,
10488         -
            path: ::std::string::String,
10489         -
        ) -> crate::model::ValidationExceptionField {
10490         -
            match self {
10491         -
                ConstraintViolation::MissingNice => crate::model::ValidationExceptionField {
10492         -
                    message: format!(
10493         -
                        "Value at '{}/nice' failed to satisfy constraint: Member must not be null",
10494         -
                        path
10495         -
                    ),
10496         -
                    path: path + "/nice",
10497         -
                },
10498         -
                ConstraintViolation::MissingInt => crate::model::ValidationExceptionField {
10499         -
                    message: format!(
10500         -
                        "Value at '{}/int' failed to satisfy constraint: Member must not be null",
10501         -
                        path
10502         -
                    ),
10503         -
                    path: path + "/int",
10504         -
                },
10505         -
            }
10506         -
        }
10507         -
    }
10508         -
    impl ::std::convert::From<Builder> for crate::constrained::MaybeConstrained<crate::model::ConB> {
10509         -
        fn from(builder: Builder) -> Self {
10510         -
            Self::Unconstrained(builder)
10511         -
        }
10512         -
    }
10513         -
    impl ::std::convert::TryFrom<Builder> for crate::model::ConB {
10514         -
        type Error = ConstraintViolation;
10515         -
10516         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
10517         -
            builder.build()
10518         -
        }
10519         -
    }
10520         -
    /// A builder for [`ConB`](crate::model::ConB).
10521         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
10522         -
    pub(crate) struct Builder {
10523         -
        pub(crate) nice: ::std::option::Option<::std::string::String>,
10524         -
        pub(crate) int: ::std::option::Option<i32>,
10525         -
        pub(crate) opt_nice: ::std::option::Option<::std::string::String>,
10526         -
        pub(crate) opt_int: ::std::option::Option<i32>,
10527         -
    }
10528         -
    impl Builder {
10529         -
        #[allow(missing_docs)] // documentation missing in model
10530         -
        pub(crate) fn set_nice(
10531         -
            mut self,
10532         -
            input: impl ::std::convert::Into<::std::string::String>,
10533         -
        ) -> Self {
10534         -
            self.nice = Some(input.into());
10535         -
            self
10536         -
        }
10537         -
        #[allow(missing_docs)] // documentation missing in model
10538         -
        pub(crate) fn set_int(mut self, input: impl ::std::convert::Into<i32>) -> Self {
10539         -
            self.int = Some(input.into());
10540         -
            self
10541         -
        }
10542         -
        #[allow(missing_docs)] // documentation missing in model
10543         -
        pub(crate) fn set_opt_nice(
10544         -
            mut self,
10545         -
            input: Option<impl ::std::convert::Into<::std::string::String>>,
10546         -
        ) -> Self {
10547         -
            self.opt_nice = input.map(|v| v.into());
10548         -
            self
10549         -
        }
10550         -
        #[allow(missing_docs)] // documentation missing in model
10551         -
        pub(crate) fn set_opt_int(mut self, input: Option<impl ::std::convert::Into<i32>>) -> Self {
10552         -
            self.opt_int = input.map(|v| v.into());
10553         -
            self
10554         -
        }
10555         -
        /// Consumes the builder and constructs a [`ConB`](crate::model::ConB).
10556         -
        ///
10557         -
        /// The builder fails to construct a [`ConB`](crate::model::ConB) if a [`ConstraintViolation`] occurs.
10558         -
        ///
10559         -
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
10560         -
        pub fn build(self) -> Result<crate::model::ConB, ConstraintViolation> {
10561         -
            self.build_enforcing_all_constraints()
10562         -
        }
10563         -
        fn build_enforcing_all_constraints(
10564         -
            self,
10565         -
        ) -> Result<crate::model::ConB, ConstraintViolation> {
10566         -
            Ok(crate::model::ConB {
10567         -
                nice: self.nice.ok_or(ConstraintViolation::MissingNice)?,
10568         -
                int: self.int.ok_or(ConstraintViolation::MissingInt)?,
10569         -
                opt_nice: self.opt_nice,
10570         -
                opt_int: self.opt_int,
10571         -
            })
10572         -
        }
10573         -
    }
10574         -
}
10575         -
/// See [`ConB`](crate::model::ConB).
10576         -
pub mod con_b {
10577         -
10578         -
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
10579         -
    /// Holds one variant for each of the ways the builder can fail.
10580         -
    #[allow(clippy::enum_variant_names)]
10581         -
    pub enum ConstraintViolation {
10582         -
        /// `nice` was not provided but it is required when building `ConB`.
10583         -
        MissingNice,
10584         -
        /// `int` was not provided but it is required when building `ConB`.
10585         -
        MissingInt,
10586         -
    }
10587         -
    impl ::std::fmt::Display for ConstraintViolation {
10588         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10589         -
            match self {
10590         -
                ConstraintViolation::MissingNice => write!(
10591         -
                    f,
10592         -
                    "`nice` was not provided but it is required when building `ConB`"
10593         -
                ),
10594         -
                ConstraintViolation::MissingInt => write!(
10595         -
                    f,
10596         -
                    "`int` was not provided but it is required when building `ConB`"
10597         -
                ),
10598         -
            }
10599         -
        }
10600         -
    }
10601         -
    impl ::std::error::Error for ConstraintViolation {}
10602         -
    impl ::std::convert::TryFrom<Builder> for crate::model::ConB {
10603         -
        type Error = ConstraintViolation;
10604         -
10605         -
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
10606         -
            builder.build()
10607         -
        }
10608         -
    }
10609         -
    /// A builder for [`ConB`](crate::model::ConB).
10610         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
10611         -
    pub struct Builder {
10612         -
        pub(crate) nice: ::std::option::Option<::std::string::String>,
10613         -
        pub(crate) int: ::std::option::Option<i32>,
10614         -
        pub(crate) opt_nice: ::std::option::Option<::std::string::String>,
10615         -
        pub(crate) opt_int: ::std::option::Option<i32>,
10616         -
    }
10617         -
    impl Builder {
10618         -
        #[allow(missing_docs)] // documentation missing in model
10619         -
        pub fn nice(mut self, input: ::std::string::String) -> Self {
10620         -
            self.nice = Some(input);
10621         -
            self
10622         -
        }
10623         -
        #[allow(missing_docs)] // documentation missing in model
10624         -
        pub fn int(mut self, input: i32) -> Self {
10625         -
            self.int = Some(input);
10626         -
            self
10627         -
        }
10628         -
        #[allow(missing_docs)] // documentation missing in model
10629         -
        pub fn opt_nice(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
10630         -
            self.opt_nice = input;
10631         -
            self
10632         -
        }
10633         -
        #[allow(missing_docs)] // documentation missing in model
10634         -
        pub fn opt_int(mut self, input: ::std::option::Option<i32>) -> Self {
10635         -
            self.opt_int = input;
10636         -
            self
10637         -
        }
10638         -
        /// Consumes the builder and constructs a [`ConB`](crate::model::ConB).
10639         -
        ///
10640         -
        /// The builder fails to construct a [`ConB`](crate::model::ConB) if you do not provide a value for all non-`Option`al members.
10641         -
        ///
10642         -
        pub fn build(self) -> Result<crate::model::ConB, ConstraintViolation> {
10643         -
            self.build_enforcing_required_and_enum_traits()
10644         -
        }
10645         -
        fn build_enforcing_required_and_enum_traits(
10646         -
            self,
10647         -
        ) -> Result<crate::model::ConB, ConstraintViolation> {
10648         -
            Ok(crate::model::ConB {
10649         -
                nice: self.nice.ok_or(ConstraintViolation::MissingNice)?,
10650         -
                int: self.int.ok_or(ConstraintViolation::MissingInt)?,
10651         -
                opt_nice: self.opt_nice,
10652         -
                opt_int: self.opt_int,
10653         -
            })
       10322  +
            path: ::std::string::String,
       10323  +
        ) -> crate::model::ValidationExceptionField {
       10324  +
            match self {
       10325  +
                        Self::Length(length) => crate::model::ValidationExceptionField {
       10326  +
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length less than or equal to 69", length, &path),
       10327  +
                                path,
       10328  +
                            },
       10329  +
                    }
10654  10330   
        }
10655  10331   
    }
10656  10332   
}
10657         -
pub(crate) mod sparse_length_list_internal {
       10333  +
pub(crate) mod sensitive_length_list_internal {
10658  10334   
10659  10335   
    #[allow(clippy::enum_variant_names)]
10660  10336   
    #[derive(Debug, PartialEq)]
10661  10337   
    pub(crate) enum ConstraintViolation {
10662  10338   
        /// Constraint violation error when the list doesn't have the required length
10663  10339   
        Length(usize),
10664  10340   
    }
10665  10341   
10666  10342   
    impl ::std::fmt::Display for ConstraintViolation {
10667  10343   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10668  10344   
            let message = match self {
10669  10345   
                Self::Length(length) => {
10670         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#SparseLengthList' failed to satisfy constraint: Member must have length greater than or equal to 69", length)
       10346  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#SensitiveLengthList' failed to satisfy constraint: Member must have length less than or equal to 69", length)
10671  10347   
                }
10672  10348   
            };
10673  10349   
            write!(f, "{message}")
10674  10350   
        }
10675  10351   
    }
10676  10352   
10677  10353   
    impl ::std::error::Error for ConstraintViolation {}
10678  10354   
    impl ConstraintViolation {
10679  10355   
        pub(crate) fn as_validation_exception_field(
10680  10356   
            self,
10681  10357   
            path: ::std::string::String,
10682  10358   
        ) -> crate::model::ValidationExceptionField {
10683  10359   
            match self {
10684  10360   
                        Self::Length(length) => crate::model::ValidationExceptionField {
10685         -
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 69", length, &path),
       10361  +
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length less than or equal to 69", length, &path),
10686  10362   
                                path,
10687  10363   
                            },
10688  10364   
                    }
10689  10365   
        }
10690  10366   
    }
10691  10367   
}
10692         -
pub(crate) mod sparse_length_map_internal {
       10368  +
pub(crate) mod con_b_set_internal {
       10369  +
       10370  +
    #[allow(clippy::enum_variant_names)]
       10371  +
    #[derive(Debug, PartialEq)]
       10372  +
    pub(crate) enum ConstraintViolation {
       10373  +
        /// Constraint violation error when the list does not contain unique items
       10374  +
        UniqueItems {
       10375  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
       10376  +
            /// at least two elements.
       10377  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
       10378  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
       10379  +
            /// Nothing is guaranteed about the order of the indices.
       10380  +
            duplicate_indices: ::std::vec::Vec<usize>,
       10381  +
            /// The original vector, that contains duplicate items.
       10382  +
            original: ::std::vec::Vec<crate::model::ConBSetInner>,
       10383  +
        },
       10384  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
       10385  +
        /// The first component of the tuple is the index in the collection where the
       10386  +
        /// first constraint violation was found.
       10387  +
        #[doc(hidden)]
       10388  +
        Member(
       10389  +
            usize,
       10390  +
            crate::model::con_b_set_inner_internal::ConstraintViolation,
       10391  +
        ),
       10392  +
    }
       10393  +
       10394  +
    impl ::std::fmt::Display for ConstraintViolation {
       10395  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
       10396  +
            let message = match self {
       10397  +
                                Self::UniqueItems { duplicate_indices, .. } =>
       10398  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#ConBSet' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
       10399  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
       10400  +
                           failing_member)
       10401  +
                            };
       10402  +
            write!(f, "{message}")
       10403  +
        }
       10404  +
    }
       10405  +
       10406  +
    impl ::std::error::Error for ConstraintViolation {}
       10407  +
    impl ConstraintViolation {
       10408  +
        pub(crate) fn as_validation_exception_field(
       10409  +
            self,
       10410  +
            path: ::std::string::String,
       10411  +
        ) -> crate::model::ValidationExceptionField {
       10412  +
            match self {
       10413  +
                        Self::UniqueItems { duplicate_indices, .. } =>
       10414  +
                                crate::model::ValidationExceptionField {
       10415  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
       10416  +
                                    path,
       10417  +
                                },
       10418  +
    Self::Member(index, member_constraint_violation) =>
       10419  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
       10420  +
                    }
       10421  +
        }
       10422  +
    }
       10423  +
}
       10424  +
pub(crate) mod length_map_internal {
10693  10425   
10694  10426   
    #[allow(clippy::enum_variant_names)]
10695  10427   
    #[derive(Debug, PartialEq)]
10696  10428   
    pub(crate) enum ConstraintViolation {
10697  10429   
        Length(usize),
10698  10430   
    }
10699  10431   
10700  10432   
    impl ::std::fmt::Display for ConstraintViolation {
10701  10433   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10702  10434   
            match self {
10703  10435   
                Self::Length(length) => {
10704         -
                    write!(f, "Value with length {} provided for 'com.amazonaws.constraints#SparseLengthMap' failed to satisfy constraint: Member must have length greater than or equal to 69", length)
       10436  +
                    write!(f, "Value with length {} provided for 'com.amazonaws.constraints#LengthMap' failed to satisfy constraint: Member must have length between 1 and 69, inclusive", length)
10705  10437   
                }
10706  10438   
            }
10707  10439   
        }
10708  10440   
    }
10709  10441   
10710  10442   
    impl ::std::error::Error for ConstraintViolation {}
10711  10443   
    impl ConstraintViolation {
10712  10444   
        pub(crate) fn as_validation_exception_field(
10713  10445   
            self,
10714  10446   
            path: ::std::string::String,
10715  10447   
        ) -> crate::model::ValidationExceptionField {
10716  10448   
            match self {
10717  10449   
            Self::Length(length) => crate::model::ValidationExceptionField {
10718         -
                                        message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 69", length, &path),
       10450  +
                                        message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 1 and 69, inclusive", length, &path),
10719  10451   
                                        path,
10720  10452   
                                    },
10721  10453   
        }
10722  10454   
        }
10723  10455   
    }
10724  10456   
}
       10457  +
pub(crate) mod map_of_map_of_list_of_list_of_con_b_internal {
       10458  +
       10459  +
    #[allow(clippy::enum_variant_names)]
       10460  +
    #[derive(Debug, PartialEq)]
       10461  +
    pub(crate) enum ConstraintViolation {
       10462  +
        #[doc(hidden)]
       10463  +
        Value(
       10464  +
            ::std::string::String,
       10465  +
            crate::model::map_of_list_of_list_of_con_b_internal::ConstraintViolation,
       10466  +
        ),
       10467  +
    }
       10468  +
       10469  +
    impl ::std::fmt::Display for ConstraintViolation {
       10470  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
       10471  +
            match self {
       10472  +
                Self::Value(_, value_constraint_violation) => {
       10473  +
                    write!(f, "{}", value_constraint_violation)
       10474  +
                }
       10475  +
            }
       10476  +
        }
       10477  +
    }
       10478  +
       10479  +
    impl ::std::error::Error for ConstraintViolation {}
       10480  +
    impl ConstraintViolation {
       10481  +
        pub(crate) fn as_validation_exception_field(
       10482  +
            self,
       10483  +
            path: ::std::string::String,
       10484  +
        ) -> crate::model::ValidationExceptionField {
       10485  +
            match self {
       10486  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
       10487  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
       10488  +
            }
       10489  +
        }
       10490  +
    }
       10491  +
}
       10492  +
pub(crate) mod sparse_map_internal {
       10493  +
       10494  +
    #[allow(clippy::enum_variant_names)]
       10495  +
    #[derive(Debug, PartialEq)]
       10496  +
    pub(crate) enum ConstraintViolation {
       10497  +
        #[doc(hidden)]
       10498  +
        Value(
       10499  +
            ::std::string::String,
       10500  +
            crate::model::unique_items_list_internal::ConstraintViolation,
       10501  +
        ),
       10502  +
    }
       10503  +
       10504  +
    impl ::std::fmt::Display for ConstraintViolation {
       10505  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
       10506  +
            match self {
       10507  +
                Self::Value(_, value_constraint_violation) => {
       10508  +
                    write!(f, "{}", value_constraint_violation)
       10509  +
                }
       10510  +
            }
       10511  +
        }
       10512  +
    }
       10513  +
       10514  +
    impl ::std::error::Error for ConstraintViolation {}
       10515  +
    impl ConstraintViolation {
       10516  +
        pub(crate) fn as_validation_exception_field(
       10517  +
            self,
       10518  +
            path: ::std::string::String,
       10519  +
        ) -> crate::model::ValidationExceptionField {
       10520  +
            match self {
       10521  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
       10522  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
       10523  +
            }
       10524  +
        }
       10525  +
    }
       10526  +
}
10725  10527   
pub(crate) mod sparse_list_internal {
10726  10528   
10727  10529   
    #[allow(clippy::enum_variant_names)]
10728  10530   
    #[derive(Debug, PartialEq)]
10729  10531   
    pub(crate) enum ConstraintViolation {
10730  10532   
        /// Constraint violation error when an element doesn't satisfy its own constraints.
10731  10533   
        /// The first component of the tuple is the index in the collection where the
10732  10534   
        /// first constraint violation was found.
10733  10535   
        #[doc(hidden)]
10734  10536   
        Member(
10735  10537   
            usize,
10736  10538   
            crate::model::length_string_internal::ConstraintViolation,
10737  10539   
        ),
10738  10540   
    }
10739  10541   
10740  10542   
    impl ::std::fmt::Display for ConstraintViolation {
10741  10543   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10742  10544   
            let message = match self {
10743  10545   
                Self::Member(index, failing_member) => format!(
10744  10546   
                    "Value at index {index} failed to satisfy constraint. {}",
10745  10547   
                    failing_member
10746  10548   
                ),
10747  10549   
            };
10748  10550   
            write!(f, "{message}")
10749  10551   
        }
10750  10552   
    }
10751  10553   
10752  10554   
    impl ::std::error::Error for ConstraintViolation {}
10753  10555   
    impl ConstraintViolation {
10754  10556   
        pub(crate) fn as_validation_exception_field(
10755  10557   
            self,
10756  10558   
            path: ::std::string::String,
10757  10559   
        ) -> crate::model::ValidationExceptionField {
10758  10560   
            match self {
10759  10561   
                Self::Member(index, member_constraint_violation) => member_constraint_violation
10760  10562   
                    .as_validation_exception_field(path + "/" + &index.to_string()),
10761  10563   
            }
10762  10564   
        }
10763  10565   
    }
10764  10566   
}
10765         -
pub(crate) mod sparse_map_internal {
       10567  +
pub(crate) mod sparse_length_map_internal {
10766  10568   
10767  10569   
    #[allow(clippy::enum_variant_names)]
10768  10570   
    #[derive(Debug, PartialEq)]
10769  10571   
    pub(crate) enum ConstraintViolation {
10770         -
        #[doc(hidden)]
10771         -
        Value(
10772         -
            ::std::string::String,
10773         -
            crate::model::unique_items_list_internal::ConstraintViolation,
10774         -
        ),
       10572  +
        Length(usize),
10775  10573   
    }
10776  10574   
10777  10575   
    impl ::std::fmt::Display for ConstraintViolation {
10778  10576   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10779  10577   
            match self {
10780         -
                Self::Value(_, value_constraint_violation) => {
10781         -
                    write!(f, "{}", value_constraint_violation)
       10578  +
                Self::Length(length) => {
       10579  +
                    write!(f, "Value with length {} provided for 'com.amazonaws.constraints#SparseLengthMap' failed to satisfy constraint: Member must have length greater than or equal to 69", length)
10782  10580   
                }
10783  10581   
            }
10784  10582   
        }
10785  10583   
    }
10786  10584   
10787  10585   
    impl ::std::error::Error for ConstraintViolation {}
10788  10586   
    impl ConstraintViolation {
10789  10587   
        pub(crate) fn as_validation_exception_field(
10790  10588   
            self,
10791  10589   
            path: ::std::string::String,
10792  10590   
        ) -> crate::model::ValidationExceptionField {
10793  10591   
            match self {
10794         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
10795         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
10796         -
            }
       10592  +
            Self::Length(length) => crate::model::ValidationExceptionField {
       10593  +
                                        message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 69", length, &path),
       10594  +
                                        path,
       10595  +
                                    },
       10596  +
        }
10797  10597   
        }
10798  10598   
    }
10799  10599   
}
10800         -
pub(crate) mod unique_items_list_internal {
       10600  +
pub(crate) mod sparse_length_list_internal {
10801  10601   
10802  10602   
    #[allow(clippy::enum_variant_names)]
10803  10603   
    #[derive(Debug, PartialEq)]
10804  10604   
    pub(crate) enum ConstraintViolation {
10805         -
        /// Constraint violation error when the list does not contain unique items
10806         -
        UniqueItems {
10807         -
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
10808         -
            /// at least two elements.
10809         -
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
10810         -
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
10811         -
            /// Nothing is guaranteed about the order of the indices.
10812         -
            duplicate_indices: ::std::vec::Vec<usize>,
10813         -
            /// The original vector, that contains duplicate items.
10814         -
            original: ::std::vec::Vec<::std::string::String>,
10815         -
        },
       10605  +
        /// Constraint violation error when the list doesn't have the required length
       10606  +
        Length(usize),
10816  10607   
    }
10817  10608   
10818  10609   
    impl ::std::fmt::Display for ConstraintViolation {
10819  10610   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10820  10611   
            let message = match self {
10821         -
                                Self::UniqueItems { duplicate_indices, .. } =>
10822         -
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#UniqueItemsList' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
10823         -
                            };
       10612  +
                Self::Length(length) => {
       10613  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#SparseLengthList' failed to satisfy constraint: Member must have length greater than or equal to 69", length)
       10614  +
                }
       10615  +
            };
10824  10616   
            write!(f, "{message}")
10825  10617   
        }
10826  10618   
    }
10827  10619   
10828  10620   
    impl ::std::error::Error for ConstraintViolation {}
10829  10621   
    impl ConstraintViolation {
10830  10622   
        pub(crate) fn as_validation_exception_field(
10831  10623   
            self,
10832  10624   
            path: ::std::string::String,
10833  10625   
        ) -> crate::model::ValidationExceptionField {
10834  10626   
            match self {
10835         -
                        Self::UniqueItems { duplicate_indices, .. } =>
10836         -
                                crate::model::ValidationExceptionField {
10837         -
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
10838         -
                                    path,
10839         -
                                },
       10627  +
                        Self::Length(length) => crate::model::ValidationExceptionField {
       10628  +
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 69", length, &path),
       10629  +
                                path,
       10630  +
                            },
10840  10631   
                    }
10841  10632   
        }
10842  10633   
    }
10843  10634   
}
10844         -
pub(crate) mod map_of_map_of_list_of_list_of_con_b_internal {
       10635  +
pub(crate) mod constrained_union_internal {
       10636  +
       10637  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
       10638  +
    #[allow(clippy::enum_variant_names)]
       10639  +
    pub(crate) enum ConstraintViolation {
       10640  +
        ConBList(crate::model::con_b_list_internal::ConstraintViolation),
       10641  +
        ConBMap(crate::model::con_b_map_internal::ConstraintViolation),
       10642  +
        ConBSet(crate::model::con_b_set_internal::ConstraintViolation),
       10643  +
        ConstrainedStructure(crate::model::con_b_internal::ConstraintViolation),
       10644  +
        EnumString(crate::model::enum_string_internal::ConstraintViolation),
       10645  +
        LengthString(crate::model::length_string_internal::ConstraintViolation),
       10646  +
    }
       10647  +
    impl ::std::fmt::Display for ConstraintViolation {
       10648  +
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
       10649  +
            match self {
       10650  +
                Self::ConBList(inner) => write!(f, "{inner}"),
       10651  +
                Self::ConBMap(inner) => write!(f, "{inner}"),
       10652  +
                Self::ConBSet(inner) => write!(f, "{inner}"),
       10653  +
                Self::ConstrainedStructure(inner) => write!(f, "{inner}"),
       10654  +
                Self::EnumString(inner) => write!(f, "{inner}"),
       10655  +
                Self::LengthString(inner) => write!(f, "{inner}"),
       10656  +
            }
       10657  +
        }
       10658  +
    }
       10659  +
       10660  +
    impl ::std::error::Error for ConstraintViolation {}
       10661  +
    impl ConstraintViolation {
       10662  +
        pub(crate) fn as_validation_exception_field(
       10663  +
            self,
       10664  +
            path: ::std::string::String,
       10665  +
        ) -> crate::model::ValidationExceptionField {
       10666  +
            match self {
       10667  +
                Self::ConBList(inner) => inner.as_validation_exception_field(path + "/conBList"),
       10668  +
                Self::ConBMap(inner) => inner.as_validation_exception_field(path + "/conBMap"),
       10669  +
                Self::ConBSet(inner) => inner.as_validation_exception_field(path + "/conBSet"),
       10670  +
                Self::ConstrainedStructure(inner) => {
       10671  +
                    inner.as_validation_exception_field(path + "/constrainedStructure")
       10672  +
                }
       10673  +
                Self::EnumString(inner) => {
       10674  +
                    inner.as_validation_exception_field(path + "/enumString")
       10675  +
                }
       10676  +
                Self::LengthString(inner) => {
       10677  +
                    inner.as_validation_exception_field(path + "/lengthString")
       10678  +
                }
       10679  +
            }
       10680  +
        }
       10681  +
    }
       10682  +
}
       10683  +
pub(crate) mod list_of_length_blob_internal {
10845  10684   
10846  10685   
    #[allow(clippy::enum_variant_names)]
10847  10686   
    #[derive(Debug, PartialEq)]
10848  10687   
    pub(crate) enum ConstraintViolation {
       10688  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
       10689  +
        /// The first component of the tuple is the index in the collection where the
       10690  +
        /// first constraint violation was found.
10849  10691   
        #[doc(hidden)]
10850         -
        Value(
10851         -
            ::std::string::String,
10852         -
            crate::model::map_of_list_of_list_of_con_b_internal::ConstraintViolation,
       10692  +
        Member(
       10693  +
            usize,
       10694  +
            crate::model::length_blob_internal::ConstraintViolation,
10853  10695   
        ),
10854  10696   
    }
10855  10697   
10856  10698   
    impl ::std::fmt::Display for ConstraintViolation {
10857  10699   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10858         -
            match self {
10859         -
                Self::Value(_, value_constraint_violation) => {
10860         -
                    write!(f, "{}", value_constraint_violation)
10861         -
                }
10862         -
            }
       10700  +
            let message = match self {
       10701  +
                Self::Member(index, failing_member) => format!(
       10702  +
                    "Value at index {index} failed to satisfy constraint. {}",
       10703  +
                    failing_member
       10704  +
                ),
       10705  +
            };
       10706  +
            write!(f, "{message}")
10863  10707   
        }
10864  10708   
    }
10865  10709   
10866  10710   
    impl ::std::error::Error for ConstraintViolation {}
10867  10711   
    impl ConstraintViolation {
10868  10712   
        pub(crate) fn as_validation_exception_field(
10869  10713   
            self,
10870  10714   
            path: ::std::string::String,
10871  10715   
        ) -> crate::model::ValidationExceptionField {
10872  10716   
            match self {
10873         -
                Self::Value(key, value_constraint_violation) => value_constraint_violation
10874         -
                    .as_validation_exception_field(path + "/" + key.as_str()),
       10717  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
       10718  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
10875  10719   
            }
10876  10720   
        }
10877  10721   
    }
10878  10722   
}
10879         -
pub(crate) mod map_of_list_of_list_of_con_b_internal {
       10723  +
pub(crate) mod map_of_length_blob_internal {
10880  10724   
10881  10725   
    #[allow(clippy::enum_variant_names)]
10882  10726   
    #[derive(Debug, PartialEq)]
10883  10727   
    pub(crate) enum ConstraintViolation {
10884  10728   
        #[doc(hidden)]
10885  10729   
        Value(
10886  10730   
            ::std::string::String,
10887         -
            crate::model::con_b_list_internal::ConstraintViolation,
       10731  +
            crate::model::length_blob_internal::ConstraintViolation,
10888  10732   
        ),
10889  10733   
    }
10890  10734   
10891  10735   
    impl ::std::fmt::Display for ConstraintViolation {
10892  10736   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10893  10737   
            match self {
10894  10738   
                Self::Value(_, value_constraint_violation) => {
10895  10739   
                    write!(f, "{}", value_constraint_violation)
10896  10740   
                }
10897  10741   
            }
10898  10742   
        }
10899  10743   
    }
10900  10744   
10901  10745   
    impl ::std::error::Error for ConstraintViolation {}
10902  10746   
    impl ConstraintViolation {
10903  10747   
        pub(crate) fn as_validation_exception_field(
10904  10748   
            self,
10905  10749   
            path: ::std::string::String,
10906  10750   
        ) -> crate::model::ValidationExceptionField {
10907  10751   
            match self {
10908  10752   
                Self::Value(key, value_constraint_violation) => value_constraint_violation
10909  10753   
                    .as_validation_exception_field(path + "/" + key.as_str()),
10910  10754   
            }
10911  10755   
        }
10912  10756   
    }
10913  10757   
}
10914         -
pub(crate) mod length_map_internal {
       10758  +
pub(crate) mod map_of_range_integer_internal {
10915  10759   
10916  10760   
    #[allow(clippy::enum_variant_names)]
10917  10761   
    #[derive(Debug, PartialEq)]
10918  10762   
    pub(crate) enum ConstraintViolation {
10919         -
        Length(usize),
       10763  +
        #[doc(hidden)]
       10764  +
        Value(
       10765  +
            ::std::string::String,
       10766  +
            crate::model::range_integer_internal::ConstraintViolation,
       10767  +
        ),
10920  10768   
    }
10921  10769   
10922  10770   
    impl ::std::fmt::Display for ConstraintViolation {
10923  10771   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10924  10772   
            match self {
10925         -
                Self::Length(length) => {
10926         -
                    write!(f, "Value with length {} provided for 'com.amazonaws.constraints#LengthMap' failed to satisfy constraint: Member must have length between 1 and 69, inclusive", length)
       10773  +
                Self::Value(_, value_constraint_violation) => {
       10774  +
                    write!(f, "{}", value_constraint_violation)
10927  10775   
                }
10928  10776   
            }
10929  10777   
        }
10930  10778   
    }
10931  10779   
10932  10780   
    impl ::std::error::Error for ConstraintViolation {}
10933  10781   
    impl ConstraintViolation {
10934  10782   
        pub(crate) fn as_validation_exception_field(
10935  10783   
            self,
10936  10784   
            path: ::std::string::String,
10937  10785   
        ) -> crate::model::ValidationExceptionField {
10938  10786   
            match self {
10939         -
            Self::Length(length) => crate::model::ValidationExceptionField {
10940         -
                                        message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 1 and 69, inclusive", length, &path),
10941         -
                                        path,
10942         -
                                    },
10943         -
        }
       10787  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
       10788  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
       10789  +
            }
10944  10790   
        }
10945  10791   
    }
10946  10792   
}
10947         -
pub(crate) mod sensitive_length_list_internal {
       10793  +
pub(crate) mod map_of_range_short_internal {
10948  10794   
10949  10795   
    #[allow(clippy::enum_variant_names)]
10950  10796   
    #[derive(Debug, PartialEq)]
10951  10797   
    pub(crate) enum ConstraintViolation {
10952         -
        /// Constraint violation error when the list doesn't have the required length
10953         -
        Length(usize),
       10798  +
        #[doc(hidden)]
       10799  +
        Value(
       10800  +
            ::std::string::String,
       10801  +
            crate::model::range_short_internal::ConstraintViolation,
       10802  +
        ),
10954  10803   
    }
10955  10804   
10956  10805   
    impl ::std::fmt::Display for ConstraintViolation {
10957  10806   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
10958         -
            let message = match self {
10959         -
                Self::Length(length) => {
10960         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#SensitiveLengthList' failed to satisfy constraint: Member must have length less than or equal to 69", length)
       10807  +
            match self {
       10808  +
                Self::Value(_, value_constraint_violation) => {
       10809  +
                    write!(f, "{}", value_constraint_violation)
10961  10810   
                }
10962         -
            };
10963         -
            write!(f, "{message}")
       10811  +
            }
10964  10812   
        }
10965  10813   
    }
10966  10814   
10967  10815   
    impl ::std::error::Error for ConstraintViolation {}
10968  10816   
    impl ConstraintViolation {
10969  10817   
        pub(crate) fn as_validation_exception_field(
10970  10818   
            self,
10971  10819   
            path: ::std::string::String,
10972  10820   
        ) -> crate::model::ValidationExceptionField {
10973  10821   
            match self {
10974         -
                        Self::Length(length) => crate::model::ValidationExceptionField {
10975         -
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length less than or equal to 69", length, &path),
10976         -
                                path,
10977         -
                            },
10978         -
                    }
10979         -
        }
10980         -
    }
10981         -
}
10982         -
/// See [`SensitiveStructure`](crate::model::SensitiveStructure).
10983         -
pub(crate) mod sensitive_structure_internal {
10984         -
10985         -
    impl ::std::convert::From<Builder> for crate::model::SensitiveStructure {
10986         -
        fn from(builder: Builder) -> Self {
10987         -
            builder.build()
10988         -
        }
10989         -
    }
10990         -
    /// A builder for [`SensitiveStructure`](crate::model::SensitiveStructure).
10991         -
    #[derive(::std::clone::Clone, ::std::default::Default)]
10992         -
    pub(crate) struct Builder {}
10993         -
    impl Builder {
10994         -
        /// Consumes the builder and constructs a [`SensitiveStructure`](crate::model::SensitiveStructure).
10995         -
        pub fn build(self) -> crate::model::SensitiveStructure {
10996         -
            self.build_enforcing_all_constraints()
10997         -
        }
10998         -
        fn build_enforcing_all_constraints(self) -> crate::model::SensitiveStructure {
10999         -
            crate::model::SensitiveStructure {}
11000         -
        }
11001         -
    }
11002         -
    impl ::std::fmt::Debug for Builder {
11003         -
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
11004         -
            let mut formatter = f.debug_struct("Builder");
11005         -
            formatter.finish()
11006         -
        }
11007         -
    }
11008         -
}
11009         -
/// See [`SensitiveStructure`](crate::model::SensitiveStructure).
11010         -
pub mod sensitive_structure {
11011         -
11012         -
    impl ::std::convert::From<Builder> for crate::model::SensitiveStructure {
11013         -
        fn from(builder: Builder) -> Self {
11014         -
            builder.build()
11015         -
        }
11016         -
    }
11017         -
    /// A builder for [`SensitiveStructure`](crate::model::SensitiveStructure).
11018         -
    #[derive(::std::clone::Clone, ::std::default::Default)]
11019         -
    pub struct Builder {}
11020         -
    impl Builder {
11021         -
        /// Consumes the builder and constructs a [`SensitiveStructure`](crate::model::SensitiveStructure).
11022         -
        pub fn build(self) -> crate::model::SensitiveStructure {
11023         -
            self.build_enforcing_required_and_enum_traits()
11024         -
        }
11025         -
        fn build_enforcing_required_and_enum_traits(self) -> crate::model::SensitiveStructure {
11026         -
            crate::model::SensitiveStructure {}
       10822  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
       10823  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
       10824  +
            }
11027  10825   
        }
11028  10826   
    }
11029  10827   
}
11030         -
pub(crate) mod length_list_internal {
       10828  +
pub(crate) mod map_of_range_long_internal {
11031  10829   
11032  10830   
    #[allow(clippy::enum_variant_names)]
11033  10831   
    #[derive(Debug, PartialEq)]
11034  10832   
    pub(crate) enum ConstraintViolation {
11035         -
        /// Constraint violation error when the list doesn't have the required length
11036         -
        Length(usize),
       10833  +
        #[doc(hidden)]
       10834  +
        Value(
       10835  +
            ::std::string::String,
       10836  +
            crate::model::range_long_internal::ConstraintViolation,
       10837  +
        ),
11037  10838   
    }
11038  10839   
11039  10840   
    impl ::std::fmt::Display for ConstraintViolation {
11040  10841   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11041         -
            let message = match self {
11042         -
                Self::Length(length) => {
11043         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthList' failed to satisfy constraint: Member must have length less than or equal to 69", length)
11044         -
                }
11045         -
            };
11046         -
            write!(f, "{message}")
11047         -
        }
11048         -
    }
11049         -
11050         -
    impl ::std::error::Error for ConstraintViolation {}
11051         -
    impl ConstraintViolation {
11052         -
        pub(crate) fn as_validation_exception_field(
11053         -
            self,
11054         -
            path: ::std::string::String,
11055         -
        ) -> crate::model::ValidationExceptionField {
11056  10842   
            match self {
11057         -
                        Self::Length(length) => crate::model::ValidationExceptionField {
11058         -
                                message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length less than or equal to 69", length, &path),
11059         -
                                path,
11060         -
                            },
11061         -
                    }
11062         -
        }
11063         -
    }
11064         -
}
11065         -
pub(crate) mod fixed_value_byte_internal {
11066         -
11067         -
    #[derive(Debug, PartialEq)]
11068         -
    pub enum ConstraintViolation {
11069         -
        Range(i8),
11070         -
    }
11071         -
11072         -
    impl ::std::fmt::Display for ConstraintViolation {
11073         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11074         -
            write!(f, "Value for `com.amazonaws.constraints#FixedValueByte`failed to satisfy constraint: Member must be between 10 and 10, inclusive")
       10843  +
                Self::Value(_, value_constraint_violation) => {
       10844  +
                    write!(f, "{}", value_constraint_violation)
       10845  +
                }
       10846  +
            }
11075  10847   
        }
11076  10848   
    }
11077  10849   
11078  10850   
    impl ::std::error::Error for ConstraintViolation {}
11079  10851   
    impl ConstraintViolation {
11080  10852   
        pub(crate) fn as_validation_exception_field(
11081  10853   
            self,
11082  10854   
            path: ::std::string::String,
11083  10855   
        ) -> crate::model::ValidationExceptionField {
11084  10856   
            match self {
11085         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11086         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 10 and 10, inclusive", &path),
11087         -
                            path,
11088         -
                        },
11089         -
                        }
       10857  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
       10858  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
       10859  +
            }
11090  10860   
        }
11091  10861   
    }
11092  10862   
}
11093         -
pub(crate) mod max_range_byte_internal {
       10863  +
pub(crate) mod map_of_range_byte_internal {
11094  10864   
       10865  +
    #[allow(clippy::enum_variant_names)]
11095  10866   
    #[derive(Debug, PartialEq)]
11096         -
    pub enum ConstraintViolation {
11097         -
        Range(i8),
       10867  +
    pub(crate) enum ConstraintViolation {
       10868  +
        #[doc(hidden)]
       10869  +
        Value(
       10870  +
            ::std::string::String,
       10871  +
            crate::model::range_byte_internal::ConstraintViolation,
       10872  +
        ),
11098  10873   
    }
11099  10874   
11100  10875   
    impl ::std::fmt::Display for ConstraintViolation {
11101  10876   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11102         -
            write!(f, "Value for `com.amazonaws.constraints#MaxRangeByte`failed to satisfy constraint: Member must be less than or equal to 11")
11103         -
        }
11104         -
    }
11105         -
11106         -
    impl ::std::error::Error for ConstraintViolation {}
11107         -
    impl ConstraintViolation {
11108         -
        pub(crate) fn as_validation_exception_field(
11109         -
            self,
11110         -
            path: ::std::string::String,
11111         -
        ) -> crate::model::ValidationExceptionField {
11112  10877   
            match self {
11113         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11114         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be less than or equal to 11", &path),
11115         -
                            path,
11116         -
                        },
11117         -
                        }
11118         -
        }
11119         -
    }
11120         -
}
11121         -
pub(crate) mod min_range_byte_internal {
11122         -
11123         -
    #[derive(Debug, PartialEq)]
11124         -
    pub enum ConstraintViolation {
11125         -
        Range(i8),
11126         -
    }
11127         -
11128         -
    impl ::std::fmt::Display for ConstraintViolation {
11129         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11130         -
            write!(f, "Value for `com.amazonaws.constraints#MinRangeByte`failed to satisfy constraint: Member must be greater than or equal to -10")
       10878  +
                Self::Value(_, value_constraint_violation) => {
       10879  +
                    write!(f, "{}", value_constraint_violation)
       10880  +
                }
       10881  +
            }
11131  10882   
        }
11132  10883   
    }
11133  10884   
11134  10885   
    impl ::std::error::Error for ConstraintViolation {}
11135  10886   
    impl ConstraintViolation {
11136  10887   
        pub(crate) fn as_validation_exception_field(
11137  10888   
            self,
11138  10889   
            path: ::std::string::String,
11139  10890   
        ) -> crate::model::ValidationExceptionField {
11140  10891   
            match self {
11141         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11142         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to -10", &path),
11143         -
                            path,
11144         -
                        },
11145         -
                        }
       10892  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
       10893  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
       10894  +
            }
11146  10895   
        }
11147  10896   
    }
11148  10897   
}
11149         -
pub(crate) mod fixed_value_long_internal {
       10898  +
pub(crate) mod pattern_string_internal {
11150  10899   
11151  10900   
    #[derive(Debug, PartialEq)]
11152  10901   
    pub enum ConstraintViolation {
11153         -
        Range(i64),
       10902  +
        /// Error when a string doesn't satisfy its `@pattern`.
       10903  +
        /// Contains the String that failed the pattern.
       10904  +
        Pattern(String),
11154  10905   
    }
11155  10906   
11156  10907   
    impl ::std::fmt::Display for ConstraintViolation {
11157  10908   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11158         -
            write!(f, "Value for `com.amazonaws.constraints#FixedValueLong`failed to satisfy constraint: Member must be between 10 and 10, inclusive")
       10909  +
            let message = match self {
       10910  +
                Self::Pattern(_) => {
       10911  +
                    format!(
       10912  +
                        r#"Value provided for `com.amazonaws.constraints#PatternString` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
       10913  +
                        r#"[a-d]{5}"#
       10914  +
                    )
       10915  +
                }
       10916  +
            };
       10917  +
            write!(f, "{message}")
11159  10918   
        }
11160  10919   
    }
11161  10920   
11162  10921   
    impl ::std::error::Error for ConstraintViolation {}
11163  10922   
    impl ConstraintViolation {
11164  10923   
        pub(crate) fn as_validation_exception_field(
11165  10924   
            self,
11166  10925   
            path: ::std::string::String,
11167  10926   
        ) -> crate::model::ValidationExceptionField {
11168  10927   
            match self {
11169         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11170         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 10 and 10, inclusive", &path),
11171         -
                            path,
       10928  +
                            #[allow(unused_variables)]
       10929  +
    Self::Pattern(_) => crate::model::ValidationExceptionField {
       10930  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"[a-d]{5}"#),
       10931  +
                            path
11172  10932   
                        },
11173  10933   
                        }
11174  10934   
        }
11175  10935   
    }
11176  10936   
}
11177         -
pub(crate) mod max_range_long_internal {
       10937  +
pub(crate) mod list_of_pattern_string_internal {
11178  10938   
       10939  +
    #[allow(clippy::enum_variant_names)]
11179  10940   
    #[derive(Debug, PartialEq)]
11180         -
    pub enum ConstraintViolation {
11181         -
        Range(i64),
       10941  +
    pub(crate) enum ConstraintViolation {
       10942  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
       10943  +
        /// The first component of the tuple is the index in the collection where the
       10944  +
        /// first constraint violation was found.
       10945  +
        #[doc(hidden)]
       10946  +
        Member(
       10947  +
            usize,
       10948  +
            crate::model::pattern_string_internal::ConstraintViolation,
       10949  +
        ),
11182  10950   
    }
11183  10951   
11184  10952   
    impl ::std::fmt::Display for ConstraintViolation {
11185  10953   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11186         -
            write!(f, "Value for `com.amazonaws.constraints#MaxRangeLong`failed to satisfy constraint: Member must be less than or equal to 11")
       10954  +
            let message = match self {
       10955  +
                Self::Member(index, failing_member) => format!(
       10956  +
                    "Value at index {index} failed to satisfy constraint. {}",
       10957  +
                    failing_member
       10958  +
                ),
       10959  +
            };
       10960  +
            write!(f, "{message}")
11187  10961   
        }
11188  10962   
    }
11189  10963   
11190  10964   
    impl ::std::error::Error for ConstraintViolation {}
11191  10965   
    impl ConstraintViolation {
11192  10966   
        pub(crate) fn as_validation_exception_field(
11193  10967   
            self,
11194  10968   
            path: ::std::string::String,
11195  10969   
        ) -> crate::model::ValidationExceptionField {
11196  10970   
            match self {
11197         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11198         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be less than or equal to 11", &path),
11199         -
                            path,
11200         -
                        },
11201         -
                        }
       10971  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
       10972  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
       10973  +
            }
11202  10974   
        }
11203  10975   
    }
11204  10976   
}
11205         -
pub(crate) mod min_range_long_internal {
       10977  +
pub(crate) mod set_of_pattern_string_internal {
11206  10978   
       10979  +
    #[allow(clippy::enum_variant_names)]
11207  10980   
    #[derive(Debug, PartialEq)]
11208         -
    pub enum ConstraintViolation {
11209         -
        Range(i64),
       10981  +
    pub(crate) enum ConstraintViolation {
       10982  +
        /// Constraint violation error when the list does not contain unique items
       10983  +
        UniqueItems {
       10984  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
       10985  +
            /// at least two elements.
       10986  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
       10987  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
       10988  +
            /// Nothing is guaranteed about the order of the indices.
       10989  +
            duplicate_indices: ::std::vec::Vec<usize>,
       10990  +
            /// The original vector, that contains duplicate items.
       10991  +
            original: ::std::vec::Vec<crate::model::PatternString>,
       10992  +
        },
       10993  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
       10994  +
        /// The first component of the tuple is the index in the collection where the
       10995  +
        /// first constraint violation was found.
       10996  +
        #[doc(hidden)]
       10997  +
        Member(
       10998  +
            usize,
       10999  +
            crate::model::pattern_string_internal::ConstraintViolation,
       11000  +
        ),
11210  11001   
    }
11211  11002   
11212  11003   
    impl ::std::fmt::Display for ConstraintViolation {
11213  11004   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11214         -
            write!(f, "Value for `com.amazonaws.constraints#MinRangeLong`failed to satisfy constraint: Member must be greater than or equal to -10")
       11005  +
            let message = match self {
       11006  +
                                Self::UniqueItems { duplicate_indices, .. } =>
       11007  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfPatternString' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
       11008  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
       11009  +
                           failing_member)
       11010  +
                            };
       11011  +
            write!(f, "{message}")
11215  11012   
        }
11216  11013   
    }
11217  11014   
11218  11015   
    impl ::std::error::Error for ConstraintViolation {}
11219  11016   
    impl ConstraintViolation {
11220  11017   
        pub(crate) fn as_validation_exception_field(
11221  11018   
            self,
11222  11019   
            path: ::std::string::String,
11223  11020   
        ) -> crate::model::ValidationExceptionField {
11224  11021   
            match self {
11225         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11226         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to -10", &path),
11227         -
                            path,
11228         -
                        },
11229         -
                        }
       11022  +
                        Self::UniqueItems { duplicate_indices, .. } =>
       11023  +
                                crate::model::ValidationExceptionField {
       11024  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
       11025  +
                                    path,
       11026  +
                                },
       11027  +
    Self::Member(index, member_constraint_violation) =>
       11028  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
       11029  +
                    }
11230  11030   
        }
11231  11031   
    }
11232  11032   
}
11233         -
pub(crate) mod fixed_value_short_internal {
       11033  +
pub(crate) mod length_pattern_string_internal {
11234  11034   
11235  11035   
    #[derive(Debug, PartialEq)]
11236  11036   
    pub enum ConstraintViolation {
11237         -
        Range(i16),
       11037  +
        /// Error when a string doesn't satisfy its `@length` requirements.
       11038  +
        Length(usize),
       11039  +
        /// Error when a string doesn't satisfy its `@pattern`.
       11040  +
        /// Contains the String that failed the pattern.
       11041  +
        Pattern(String),
11238  11042   
    }
11239  11043   
11240  11044   
    impl ::std::fmt::Display for ConstraintViolation {
11241  11045   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11242         -
            write!(f, "Value for `com.amazonaws.constraints#FixedValueShort`failed to satisfy constraint: Member must be between 10 and 10, inclusive")
       11046  +
            let message = match self {
       11047  +
                Self::Length(length) => {
       11048  +
                    format!("Value with length {} provided for 'com.amazonaws.constraints#LengthPatternString' failed to satisfy constraint: Member must have length between 5 and 10, inclusive", length)
       11049  +
                }
       11050  +
                Self::Pattern(_) => {
       11051  +
                    format!(
       11052  +
                        r#"Value provided for `com.amazonaws.constraints#LengthPatternString` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
       11053  +
                        r#"[a-f0-5]*"#
       11054  +
                    )
       11055  +
                }
       11056  +
            };
       11057  +
            write!(f, "{message}")
11243  11058   
        }
11244  11059   
    }
11245  11060   
11246  11061   
    impl ::std::error::Error for ConstraintViolation {}
11247  11062   
    impl ConstraintViolation {
11248  11063   
        pub(crate) fn as_validation_exception_field(
11249  11064   
            self,
11250  11065   
            path: ::std::string::String,
11251  11066   
        ) -> crate::model::ValidationExceptionField {
11252  11067   
            match self {
11253         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11254         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 10 and 10, inclusive", &path),
       11068  +
                            Self::Length(length) => crate::model::ValidationExceptionField {
       11069  +
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 5 and 10, inclusive", length, &path),
11255  11070   
                            path,
11256  11071   
                        },
       11072  +
    
       11073  +
    #[allow(unused_variables)]
       11074  +
    Self::Pattern(_) => crate::model::ValidationExceptionField {
       11075  +
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"[a-f0-5]*"#),
       11076  +
                            path
       11077  +
                        },
11257  11078   
                        }
11258  11079   
        }
11259  11080   
    }
11260  11081   
}
11261         -
pub(crate) mod max_range_short_internal {
       11082  +
pub(crate) mod list_of_length_pattern_string_internal {
11262  11083   
       11084  +
    #[allow(clippy::enum_variant_names)]
11263  11085   
    #[derive(Debug, PartialEq)]
11264         -
    pub enum ConstraintViolation {
11265         -
        Range(i16),
       11086  +
    pub(crate) enum ConstraintViolation {
       11087  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
       11088  +
        /// The first component of the tuple is the index in the collection where the
       11089  +
        /// first constraint violation was found.
       11090  +
        #[doc(hidden)]
       11091  +
        Member(
       11092  +
            usize,
       11093  +
            crate::model::length_pattern_string_internal::ConstraintViolation,
       11094  +
        ),
11266  11095   
    }
11267  11096   
11268  11097   
    impl ::std::fmt::Display for ConstraintViolation {
11269  11098   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11270         -
            write!(f, "Value for `com.amazonaws.constraints#MaxRangeShort`failed to satisfy constraint: Member must be less than or equal to 11")
       11099  +
            let message = match self {
       11100  +
                Self::Member(index, failing_member) => format!(
       11101  +
                    "Value at index {index} failed to satisfy constraint. {}",
       11102  +
                    failing_member
       11103  +
                ),
       11104  +
            };
       11105  +
            write!(f, "{message}")
11271  11106   
        }
11272  11107   
    }
11273  11108   
11274  11109   
    impl ::std::error::Error for ConstraintViolation {}
11275  11110   
    impl ConstraintViolation {
11276  11111   
        pub(crate) fn as_validation_exception_field(
11277  11112   
            self,
11278  11113   
            path: ::std::string::String,
11279  11114   
        ) -> crate::model::ValidationExceptionField {
11280  11115   
            match self {
11281         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11282         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be less than or equal to 11", &path),
11283         -
                            path,
11284         -
                        },
11285         -
                        }
       11116  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
       11117  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
       11118  +
            }
11286  11119   
        }
11287  11120   
    }
11288  11121   
}
11289         -
pub(crate) mod min_range_short_internal {
       11122  +
pub(crate) mod set_of_length_pattern_string_internal {
11290  11123   
       11124  +
    #[allow(clippy::enum_variant_names)]
11291  11125   
    #[derive(Debug, PartialEq)]
11292         -
    pub enum ConstraintViolation {
11293         -
        Range(i16),
       11126  +
    pub(crate) enum ConstraintViolation {
       11127  +
        /// Constraint violation error when the list does not contain unique items
       11128  +
        UniqueItems {
       11129  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
       11130  +
            /// at least two elements.
       11131  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
       11132  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
       11133  +
            /// Nothing is guaranteed about the order of the indices.
       11134  +
            duplicate_indices: ::std::vec::Vec<usize>,
       11135  +
            /// The original vector, that contains duplicate items.
       11136  +
            original: ::std::vec::Vec<crate::model::LengthPatternString>,
       11137  +
        },
       11138  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
       11139  +
        /// The first component of the tuple is the index in the collection where the
       11140  +
        /// first constraint violation was found.
       11141  +
        #[doc(hidden)]
       11142  +
        Member(
       11143  +
            usize,
       11144  +
            crate::model::length_pattern_string_internal::ConstraintViolation,
       11145  +
        ),
11294  11146   
    }
11295  11147   
11296  11148   
    impl ::std::fmt::Display for ConstraintViolation {
11297  11149   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11298         -
            write!(f, "Value for `com.amazonaws.constraints#MinRangeShort`failed to satisfy constraint: Member must be greater than or equal to -10")
       11150  +
            let message = match self {
       11151  +
                                Self::UniqueItems { duplicate_indices, .. } =>
       11152  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#SetOfLengthPatternString' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
       11153  +
    Self::Member(index, failing_member) => format!("Value at index {index} failed to satisfy constraint. {}",
       11154  +
                           failing_member)
       11155  +
                            };
       11156  +
            write!(f, "{message}")
11299  11157   
        }
11300  11158   
    }
11301  11159   
11302  11160   
    impl ::std::error::Error for ConstraintViolation {}
11303  11161   
    impl ConstraintViolation {
11304  11162   
        pub(crate) fn as_validation_exception_field(
11305  11163   
            self,
11306  11164   
            path: ::std::string::String,
11307  11165   
        ) -> crate::model::ValidationExceptionField {
11308  11166   
            match self {
11309         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11310         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to -10", &path),
11311         -
                            path,
11312         -
                        },
11313         -
                        }
       11167  +
                        Self::UniqueItems { duplicate_indices, .. } =>
       11168  +
                                crate::model::ValidationExceptionField {
       11169  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
       11170  +
                                    path,
       11171  +
                                },
       11172  +
    Self::Member(index, member_constraint_violation) =>
       11173  +
                        member_constraint_violation.as_validation_exception_field(path + "/" + &index.to_string())
       11174  +
                    }
11314  11175   
        }
11315  11176   
    }
11316  11177   
}
11317         -
pub(crate) mod fixed_value_integer_internal {
       11178  +
/// See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
       11179  +
pub mod validation_exception_field {
11318  11180   
11319         -
    #[derive(Debug, PartialEq)]
       11181  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
       11182  +
    /// Holds one variant for each of the ways the builder can fail.
       11183  +
    #[allow(clippy::enum_variant_names)]
11320  11184   
    pub enum ConstraintViolation {
11321         -
        Range(i32),
       11185  +
        /// `path` was not provided but it is required when building `ValidationExceptionField`.
       11186  +
        MissingPath,
       11187  +
        /// `message` was not provided but it is required when building `ValidationExceptionField`.
       11188  +
        MissingMessage,
11322  11189   
    }
11323         -
11324  11190   
    impl ::std::fmt::Display for ConstraintViolation {
11325  11191   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11326         -
            write!(f, "Value for `com.amazonaws.constraints#FixedValueInteger`failed to satisfy constraint: Member must be between 69 and 69, inclusive")
       11192  +
            match self {
       11193  +
                ConstraintViolation::MissingPath => write!(f, "`path` was not provided but it is required when building `ValidationExceptionField`"),
       11194  +
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationExceptionField`"),
       11195  +
            }
       11196  +
        }
       11197  +
    }
       11198  +
    impl ::std::error::Error for ConstraintViolation {}
       11199  +
    impl ::std::convert::TryFrom<Builder> for crate::model::ValidationExceptionField {
       11200  +
        type Error = ConstraintViolation;
       11201  +
       11202  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
       11203  +
            builder.build()
       11204  +
        }
       11205  +
    }
       11206  +
    /// A builder for [`ValidationExceptionField`](crate::model::ValidationExceptionField).
       11207  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
       11208  +
    pub struct Builder {
       11209  +
        pub(crate) path: ::std::option::Option<::std::string::String>,
       11210  +
        pub(crate) message: ::std::option::Option<::std::string::String>,
       11211  +
    }
       11212  +
    impl Builder {
       11213  +
        /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
       11214  +
        pub fn path(mut self, input: ::std::string::String) -> Self {
       11215  +
            self.path = Some(input);
       11216  +
            self
       11217  +
        }
       11218  +
        /// A detailed description of the validation failure.
       11219  +
        pub fn message(mut self, input: ::std::string::String) -> Self {
       11220  +
            self.message = Some(input);
       11221  +
            self
       11222  +
        }
       11223  +
        /// Consumes the builder and constructs a [`ValidationExceptionField`](crate::model::ValidationExceptionField).
       11224  +
        ///
       11225  +
        /// The builder fails to construct a [`ValidationExceptionField`](crate::model::ValidationExceptionField) if you do not provide a value for all non-`Option`al members.
       11226  +
        ///
       11227  +
        pub fn build(self) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
       11228  +
            self.build_enforcing_required_and_enum_traits()
       11229  +
        }
       11230  +
        fn build_enforcing_required_and_enum_traits(
       11231  +
            self,
       11232  +
        ) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
       11233  +
            Ok(crate::model::ValidationExceptionField {
       11234  +
                path: self.path.ok_or(ConstraintViolation::MissingPath)?,
       11235  +
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
       11236  +
            })
       11237  +
        }
       11238  +
    }
       11239  +
}
       11240  +
/// See [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
       11241  +
pub mod transitively_constrained_structure_in_output {
       11242  +
       11243  +
    impl ::std::convert::From<Builder> for crate::model::TransitivelyConstrainedStructureInOutput {
       11244  +
        fn from(builder: Builder) -> Self {
       11245  +
            builder.build()
       11246  +
        }
       11247  +
    }
       11248  +
    /// A builder for [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
       11249  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
       11250  +
    pub struct Builder {
       11251  +
        pub(crate) length_string: ::std::option::Option<::std::string::String>,
       11252  +
    }
       11253  +
    impl Builder {
       11254  +
        #[allow(missing_docs)] // documentation missing in model
       11255  +
        pub fn length_string(
       11256  +
            mut self,
       11257  +
            input: ::std::option::Option<::std::string::String>,
       11258  +
        ) -> Self {
       11259  +
            self.length_string = input;
       11260  +
            self
       11261  +
        }
       11262  +
        /// Consumes the builder and constructs a [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
       11263  +
        pub fn build(self) -> crate::model::TransitivelyConstrainedStructureInOutput {
       11264  +
            self.build_enforcing_required_and_enum_traits()
11327  11265   
        }
11328         -
    }
11329         -
11330         -
    impl ::std::error::Error for ConstraintViolation {}
11331         -
    impl ConstraintViolation {
11332         -
        pub(crate) fn as_validation_exception_field(
       11266  +
        fn build_enforcing_required_and_enum_traits(
11333  11267   
            self,
11334         -
            path: ::std::string::String,
11335         -
        ) -> crate::model::ValidationExceptionField {
11336         -
            match self {
11337         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11338         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 69 and 69, inclusive", &path),
11339         -
                            path,
11340         -
                        },
11341         -
                        }
       11268  +
        ) -> crate::model::TransitivelyConstrainedStructureInOutput {
       11269  +
            crate::model::TransitivelyConstrainedStructureInOutput {
       11270  +
                length_string: self.length_string,
       11271  +
            }
11342  11272   
        }
11343  11273   
    }
11344  11274   
}
11345         -
pub(crate) mod max_range_integer_internal {
       11275  +
/// See [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
       11276  +
pub(crate) mod recursive_shapes_input_output_nested2_internal {
11346  11277   
11347         -
    #[derive(Debug, PartialEq)]
11348         -
    pub enum ConstraintViolation {
11349         -
        Range(i32),
       11278  +
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
       11279  +
    /// Holds one variant for each of the ways the builder can fail.
       11280  +
    #[non_exhaustive]
       11281  +
    #[allow(clippy::enum_variant_names)]
       11282  +
    pub(crate) enum ConstraintViolation {
       11283  +
        /// Constraint violation occurred building member `recursive_member` when building `RecursiveShapesInputOutputNested2`.
       11284  +
        #[doc(hidden)]
       11285  +
        RecursiveMember(
       11286  +
            crate::model::recursive_shapes_input_output_nested1_internal::ConstraintViolation,
       11287  +
        ),
11350  11288   
    }
11351         -
11352  11289   
    impl ::std::fmt::Display for ConstraintViolation {
11353  11290   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11354         -
            write!(f, "Value for `com.amazonaws.constraints#MaxRangeInteger`failed to satisfy constraint: Member must be less than or equal to 69")
       11291  +
            match self {
       11292  +
                ConstraintViolation::RecursiveMember(_) => write!(f, "constraint violation occurred building member `recursive_member` when building `RecursiveShapesInputOutputNested2`"),
       11293  +
            }
11355  11294   
        }
11356  11295   
    }
11357         -
11358  11296   
    impl ::std::error::Error for ConstraintViolation {}
11359  11297   
    impl ConstraintViolation {
11360  11298   
        pub(crate) fn as_validation_exception_field(
11361  11299   
            self,
11362  11300   
            path: ::std::string::String,
11363  11301   
        ) -> crate::model::ValidationExceptionField {
11364  11302   
            match self {
11365         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11366         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be less than or equal to 69", &path),
11367         -
                            path,
11368         -
                        },
11369         -
                        }
       11303  +
                ConstraintViolation::RecursiveMember(inner) => {
       11304  +
                    inner.as_validation_exception_field(path + "/recursiveMember")
       11305  +
                }
       11306  +
            }
11370  11307   
        }
11371  11308   
    }
11372         -
}
11373         -
pub(crate) mod min_range_integer_internal {
11374         -
11375         -
    #[derive(Debug, PartialEq)]
11376         -
    pub enum ConstraintViolation {
11377         -
        Range(i32),
       11309  +
    impl ::std::convert::From<Builder>
       11310  +
        for crate::constrained::MaybeConstrained<crate::model::RecursiveShapesInputOutputNested2>
       11311  +
    {
       11312  +
        fn from(builder: Builder) -> Self {
       11313  +
            Self::Unconstrained(builder)
       11314  +
        }
11378  11315   
    }
       11316  +
    impl ::std::convert::TryFrom<Builder> for crate::model::RecursiveShapesInputOutputNested2 {
       11317  +
        type Error = ConstraintViolation;
11379  11318   
11380         -
    impl ::std::fmt::Display for ConstraintViolation {
11381         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11382         -
            write!(f, "Value for `com.amazonaws.constraints#MinRangeInteger`failed to satisfy constraint: Member must be greater than or equal to -10")
       11319  +
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
       11320  +
            builder.build()
11383  11321   
        }
11384  11322   
    }
11385         -
11386         -
    impl ::std::error::Error for ConstraintViolation {}
11387         -
    impl ConstraintViolation {
11388         -
        pub(crate) fn as_validation_exception_field(
       11323  +
    /// A builder for [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
       11324  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
       11325  +
    pub(crate) struct Builder {
       11326  +
        pub(crate) recursive_member: ::std::option::Option<
       11327  +
            crate::constrained::MaybeConstrained<crate::model::RecursiveShapesInputOutputNested1>,
       11328  +
        >,
       11329  +
    }
       11330  +
    impl Builder {
       11331  +
        #[allow(missing_docs)] // documentation missing in model
       11332  +
        pub(crate) fn set_recursive_member(
       11333  +
            mut self,
       11334  +
            input: Option<
       11335  +
                impl ::std::convert::Into<
       11336  +
                    crate::constrained::MaybeConstrained<
       11337  +
                        crate::model::RecursiveShapesInputOutputNested1,
       11338  +
                    >,
       11339  +
                >,
       11340  +
            >,
       11341  +
        ) -> Self {
       11342  +
            self.recursive_member = input.map(|v| v.into());
       11343  +
            self
       11344  +
        }
       11345  +
        /// Consumes the builder and constructs a [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
       11346  +
        ///
       11347  +
        /// The builder fails to construct a [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2) if a [`ConstraintViolation`] occurs.
       11348  +
        ///
       11349  +
        pub fn build(
11389  11350   
            self,
11390         -
            path: ::std::string::String,
11391         -
        ) -> crate::model::ValidationExceptionField {
11392         -
            match self {
11393         -
                            Self::Range(_) => crate::model::ValidationExceptionField {
11394         -
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to -10", &path),
11395         -
                            path,
11396         -
                        },
11397         -
                        }
       11351  +
        ) -> Result<crate::model::RecursiveShapesInputOutputNested2, ConstraintViolation> {
       11352  +
            self.build_enforcing_all_constraints()
       11353  +
        }
       11354  +
        fn build_enforcing_all_constraints(
       11355  +
            self,
       11356  +
        ) -> Result<crate::model::RecursiveShapesInputOutputNested2, ConstraintViolation> {
       11357  +
            Ok(crate::model::RecursiveShapesInputOutputNested2 {
       11358  +
                recursive_member: self
       11359  +
                    .recursive_member
       11360  +
                    .map(|v| match v {
       11361  +
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
       11362  +
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
       11363  +
                    })
       11364  +
                    .map(|res| res.map_err(ConstraintViolation::RecursiveMember))
       11365  +
                    .transpose()?,
       11366  +
            })
11398  11367   
        }
11399  11368   
    }
11400  11369   
}
11401         -
pub(crate) mod fixed_length_blob_internal {
11402         -
11403         -
    #[derive(Debug, PartialEq)]
11404         -
    pub enum ConstraintViolation {
11405         -
        /// Error when a blob doesn't satisfy its `@length` requirements.
11406         -
        Length(usize),
11407         -
    }
       11370  +
/// See [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
       11371  +
pub mod recursive_shapes_input_output_nested2 {
11408  11372   
11409         -
    impl ::std::fmt::Display for ConstraintViolation {
11410         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11411         -
            let message = match self {
11412         -
                Self::Length(length) => {
11413         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#FixedLengthBlob' failed to satisfy constraint: Member must have length between 70 and 70, inclusive", length)
11414         -
                }
11415         -
            };
11416         -
            write!(f, "{message}")
       11373  +
    impl ::std::convert::From<Builder> for crate::model::RecursiveShapesInputOutputNested2 {
       11374  +
        fn from(builder: Builder) -> Self {
       11375  +
            builder.build()
11417  11376   
        }
11418  11377   
    }
11419         -
11420         -
    impl ::std::error::Error for ConstraintViolation {}
11421         -
    impl ConstraintViolation {
11422         -
        pub(crate) fn as_validation_exception_field(
       11378  +
    /// A builder for [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
       11379  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
       11380  +
    pub struct Builder {
       11381  +
        pub(crate) recursive_member:
       11382  +
            ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
       11383  +
    }
       11384  +
    impl Builder {
       11385  +
        #[allow(missing_docs)] // documentation missing in model
       11386  +
        pub fn recursive_member(
       11387  +
            mut self,
       11388  +
            input: ::std::option::Option<crate::model::RecursiveShapesInputOutputNested1>,
       11389  +
        ) -> Self {
       11390  +
            self.recursive_member = input;
       11391  +
            self
       11392  +
        }
       11393  +
        /// Consumes the builder and constructs a [`RecursiveShapesInputOutputNested2`](crate::model::RecursiveShapesInputOutputNested2).
       11394  +
        pub fn build(self) -> crate::model::RecursiveShapesInputOutputNested2 {
       11395  +
            self.build_enforcing_required_and_enum_traits()
       11396  +
        }
       11397  +
        fn build_enforcing_required_and_enum_traits(
11423  11398   
            self,
11424         -
            path: ::std::string::String,
11425         -
        ) -> crate::model::ValidationExceptionField {
11426         -
            match self {
11427         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
11428         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 70 and 70, inclusive", length, &path),
11429         -
                            path,
11430         -
                        },
11431         -
                        }
       11399  +
        ) -> crate::model::RecursiveShapesInputOutputNested2 {
       11400  +
            crate::model::RecursiveShapesInputOutputNested2 {
       11401  +
                recursive_member: self.recursive_member,
       11402  +
            }
11432  11403   
        }
11433  11404   
    }
11434  11405   
}
11435         -
pub(crate) mod max_length_blob_internal {
       11406  +
/// See [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
       11407  +
pub(crate) mod event_stream_regular_message_internal {
11436  11408   
11437         -
    #[derive(Debug, PartialEq)]
11438         -
    pub enum ConstraintViolation {
11439         -
        /// Error when a blob doesn't satisfy its `@length` requirements.
11440         -
        Length(usize),
       11409  +
    impl ::std::convert::From<Builder> for crate::model::EventStreamRegularMessage {
       11410  +
        fn from(builder: Builder) -> Self {
       11411  +
            builder.build()
       11412  +
        }
11441  11413   
    }
11442         -
11443         -
    impl ::std::fmt::Display for ConstraintViolation {
11444         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11445         -
            let message = match self {
11446         -
                Self::Length(length) => {
11447         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#MaxLengthBlob' failed to satisfy constraint: Member must have length less than or equal to 70", length)
11448         -
                }
11449         -
            };
11450         -
            write!(f, "{message}")
       11414  +
    /// A builder for [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
       11415  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
       11416  +
    pub(crate) struct Builder {
       11417  +
        pub(crate) message_content: ::std::option::Option<::std::string::String>,
       11418  +
    }
       11419  +
    impl Builder {
       11420  +
        #[allow(missing_docs)] // documentation missing in model
       11421  +
        pub(crate) fn set_message_content(
       11422  +
            mut self,
       11423  +
            input: Option<impl ::std::convert::Into<::std::string::String>>,
       11424  +
        ) -> Self {
       11425  +
            self.message_content = input.map(|v| v.into());
       11426  +
            self
       11427  +
        }
       11428  +
        /// Consumes the builder and constructs a [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
       11429  +
        pub fn build(self) -> crate::model::EventStreamRegularMessage {
       11430  +
            self.build_enforcing_all_constraints()
       11431  +
        }
       11432  +
        fn build_enforcing_all_constraints(self) -> crate::model::EventStreamRegularMessage {
       11433  +
            crate::model::EventStreamRegularMessage {
       11434  +
                message_content: self.message_content,
       11435  +
            }
11451  11436   
        }
11452  11437   
    }
       11438  +
}
       11439  +
/// See [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
       11440  +
pub mod event_stream_regular_message {
11453  11441   
11454         -
    impl ::std::error::Error for ConstraintViolation {}
11455         -
    impl ConstraintViolation {
11456         -
        pub(crate) fn as_validation_exception_field(
11457         -
            self,
11458         -
            path: ::std::string::String,
11459         -
        ) -> crate::model::ValidationExceptionField {
11460         -
            match self {
11461         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
11462         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length less than or equal to 70", length, &path),
11463         -
                            path,
11464         -
                        },
11465         -
                        }
       11442  +
    impl ::std::convert::From<Builder> for crate::model::EventStreamRegularMessage {
       11443  +
        fn from(builder: Builder) -> Self {
       11444  +
            builder.build()
       11445  +
        }
       11446  +
    }
       11447  +
    /// A builder for [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
       11448  +
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
       11449  +
    pub struct Builder {
       11450  +
        pub(crate) message_content: ::std::option::Option<::std::string::String>,
       11451  +
    }
       11452  +
    impl Builder {
       11453  +
        #[allow(missing_docs)] // documentation missing in model
       11454  +
        pub fn message_content(
       11455  +
            mut self,
       11456  +
            input: ::std::option::Option<::std::string::String>,
       11457  +
        ) -> Self {
       11458  +
            self.message_content = input;
       11459  +
            self
       11460  +
        }
       11461  +
        /// Consumes the builder and constructs a [`EventStreamRegularMessage`](crate::model::EventStreamRegularMessage).
       11462  +
        pub fn build(self) -> crate::model::EventStreamRegularMessage {
       11463  +
            self.build_enforcing_required_and_enum_traits()
       11464  +
        }
       11465  +
        fn build_enforcing_required_and_enum_traits(
       11466  +
            self,
       11467  +
        ) -> crate::model::EventStreamRegularMessage {
       11468  +
            crate::model::EventStreamRegularMessage {
       11469  +
                message_content: self.message_content,
       11470  +
            }
11466  11471   
        }
11467  11472   
    }
11468  11473   
}
11469         -
pub(crate) mod min_length_blob_internal {
       11474  +
pub(crate) mod con_b_list_inner_internal {
11470  11475   
       11476  +
    #[allow(clippy::enum_variant_names)]
11471  11477   
    #[derive(Debug, PartialEq)]
11472         -
    pub enum ConstraintViolation {
11473         -
        /// Error when a blob doesn't satisfy its `@length` requirements.
11474         -
        Length(usize),
       11478  +
    pub(crate) enum ConstraintViolation {
       11479  +
        /// Constraint violation error when an element doesn't satisfy its own constraints.
       11480  +
        /// The first component of the tuple is the index in the collection where the
       11481  +
        /// first constraint violation was found.
       11482  +
        #[doc(hidden)]
       11483  +
        Member(usize, crate::model::con_b_internal::ConstraintViolation),
11475  11484   
    }
11476  11485   
11477  11486   
    impl ::std::fmt::Display for ConstraintViolation {
11478  11487   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11479  11488   
            let message = match self {
11480         -
                Self::Length(length) => {
11481         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#MinLengthBlob' failed to satisfy constraint: Member must have length greater than or equal to 2", length)
11482         -
                }
       11489  +
                Self::Member(index, failing_member) => format!(
       11490  +
                    "Value at index {index} failed to satisfy constraint. {}",
       11491  +
                    failing_member
       11492  +
                ),
11483  11493   
            };
11484  11494   
            write!(f, "{message}")
11485  11495   
        }
11486  11496   
    }
11487  11497   
11488  11498   
    impl ::std::error::Error for ConstraintViolation {}
11489  11499   
    impl ConstraintViolation {
11490  11500   
        pub(crate) fn as_validation_exception_field(
11491  11501   
            self,
11492  11502   
            path: ::std::string::String,
11493  11503   
        ) -> crate::model::ValidationExceptionField {
11494  11504   
            match self {
11495         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
11496         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 2", length, &path),
11497         -
                            path,
11498         -
                        },
11499         -
                        }
       11505  +
                Self::Member(index, member_constraint_violation) => member_constraint_violation
       11506  +
                    .as_validation_exception_field(path + "/" + &index.to_string()),
       11507  +
            }
11500  11508   
        }
11501  11509   
    }
11502  11510   
}
11503         -
pub(crate) mod fixed_length_string_internal {
       11511  +
/// See [`SensitiveStructure`](crate::model::SensitiveStructure).
       11512  +
pub(crate) mod sensitive_structure_internal {
11504  11513   
11505         -
    #[derive(Debug, PartialEq)]
11506         -
    pub enum ConstraintViolation {
11507         -
        /// Error when a string doesn't satisfy its `@length` requirements.
11508         -
        Length(usize),
       11514  +
    impl ::std::convert::From<Builder> for crate::model::SensitiveStructure {
       11515  +
        fn from(builder: Builder) -> Self {
       11516  +
            builder.build()
       11517  +
        }
11509  11518   
    }
11510         -
11511         -
    impl ::std::fmt::Display for ConstraintViolation {
11512         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11513         -
            let message = match self {
11514         -
                Self::Length(length) => {
11515         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#FixedLengthString' failed to satisfy constraint: Member must have length between 69 and 69, inclusive", length)
11516         -
                }
11517         -
            };
11518         -
            write!(f, "{message}")
       11519  +
    /// A builder for [`SensitiveStructure`](crate::model::SensitiveStructure).
       11520  +
    #[derive(::std::clone::Clone, ::std::default::Default)]
       11521  +
    pub(crate) struct Builder {}
       11522  +
    impl Builder {
       11523  +
        /// Consumes the builder and constructs a [`SensitiveStructure`](crate::model::SensitiveStructure).
       11524  +
        pub fn build(self) -> crate::model::SensitiveStructure {
       11525  +
            self.build_enforcing_all_constraints()
       11526  +
        }
       11527  +
        fn build_enforcing_all_constraints(self) -> crate::model::SensitiveStructure {
       11528  +
            crate::model::SensitiveStructure {}
11519  11529   
        }
11520  11530   
    }
11521         -
11522         -
    impl ::std::error::Error for ConstraintViolation {}
11523         -
    impl ConstraintViolation {
11524         -
        pub(crate) fn as_validation_exception_field(
11525         -
            self,
11526         -
            path: ::std::string::String,
11527         -
        ) -> crate::model::ValidationExceptionField {
11528         -
            match self {
11529         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
11530         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 69 and 69, inclusive", length, &path),
11531         -
                            path,
11532         -
                        },
11533         -
                        }
       11531  +
    impl ::std::fmt::Debug for Builder {
       11532  +
        fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
       11533  +
            let mut formatter = f.debug_struct("Builder");
       11534  +
            formatter.finish()
11534  11535   
        }
11535  11536   
    }
11536  11537   
}
11537         -
pub(crate) mod max_length_string_internal {
11538         -
11539         -
    #[derive(Debug, PartialEq)]
11540         -
    pub enum ConstraintViolation {
11541         -
        /// Error when a string doesn't satisfy its `@length` requirements.
11542         -
        Length(usize),
11543         -
    }
       11538  +
/// See [`SensitiveStructure`](crate::model::SensitiveStructure).
       11539  +
pub mod sensitive_structure {
11544  11540   
11545         -
    impl ::std::fmt::Display for ConstraintViolation {
11546         -
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11547         -
            let message = match self {
11548         -
                Self::Length(length) => {
11549         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#MaxLengthString' failed to satisfy constraint: Member must have length less than or equal to 69", length)
11550         -
                }
11551         -
            };
11552         -
            write!(f, "{message}")
       11541  +
    impl ::std::convert::From<Builder> for crate::model::SensitiveStructure {
       11542  +
        fn from(builder: Builder) -> Self {
       11543  +
            builder.build()
11553  11544   
        }
11554  11545   
    }
11555         -
11556         -
    impl ::std::error::Error for ConstraintViolation {}
11557         -
    impl ConstraintViolation {
11558         -
        pub(crate) fn as_validation_exception_field(
11559         -
            self,
11560         -
            path: ::std::string::String,
11561         -
        ) -> crate::model::ValidationExceptionField {
11562         -
            match self {
11563         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
11564         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length less than or equal to 69", length, &path),
11565         -
                            path,
11566         -
                        },
11567         -
                        }
       11546  +
    /// A builder for [`SensitiveStructure`](crate::model::SensitiveStructure).
       11547  +
    #[derive(::std::clone::Clone, ::std::default::Default)]
       11548  +
    pub struct Builder {}
       11549  +
    impl Builder {
       11550  +
        /// Consumes the builder and constructs a [`SensitiveStructure`](crate::model::SensitiveStructure).
       11551  +
        pub fn build(self) -> crate::model::SensitiveStructure {
       11552  +
            self.build_enforcing_required_and_enum_traits()
       11553  +
        }
       11554  +
        fn build_enforcing_required_and_enum_traits(self) -> crate::model::SensitiveStructure {
       11555  +
            crate::model::SensitiveStructure {}
11568  11556   
        }
11569  11557   
    }
11570  11558   
}
11571         -
pub(crate) mod min_length_string_internal {
       11559  +
pub(crate) mod con_b_set_inner_internal {
11572  11560   
       11561  +
    #[allow(clippy::enum_variant_names)]
11573  11562   
    #[derive(Debug, PartialEq)]
11574         -
    pub enum ConstraintViolation {
11575         -
        /// Error when a string doesn't satisfy its `@length` requirements.
11576         -
        Length(usize),
       11563  +
    pub(crate) enum ConstraintViolation {
       11564  +
        /// Constraint violation error when the list does not contain unique items
       11565  +
        UniqueItems {
       11566  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
       11567  +
            /// at least two elements.
       11568  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
       11569  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
       11570  +
            /// Nothing is guaranteed about the order of the indices.
       11571  +
            duplicate_indices: ::std::vec::Vec<usize>,
       11572  +
            /// The original vector, that contains duplicate items.
       11573  +
            original: ::std::vec::Vec<::std::string::String>,
       11574  +
        },
11577  11575   
    }
11578  11576   
11579  11577   
    impl ::std::fmt::Display for ConstraintViolation {
11580  11578   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11581  11579   
            let message = match self {
11582         -
                Self::Length(length) => {
11583         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#MinLengthString' failed to satisfy constraint: Member must have length greater than or equal to 2", length)
11584         -
                }
11585         -
            };
       11580  +
                                Self::UniqueItems { duplicate_indices, .. } =>
       11581  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#ConBSetInner' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
       11582  +
                            };
11586  11583   
            write!(f, "{message}")
11587  11584   
        }
11588  11585   
    }
11589  11586   
11590  11587   
    impl ::std::error::Error for ConstraintViolation {}
11591  11588   
    impl ConstraintViolation {
11592  11589   
        pub(crate) fn as_validation_exception_field(
11593  11590   
            self,
11594  11591   
            path: ::std::string::String,
11595  11592   
        ) -> crate::model::ValidationExceptionField {
11596  11593   
            match self {
11597         -
                            Self::Length(length) => crate::model::ValidationExceptionField {
11598         -
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length greater than or equal to 2", length, &path),
11599         -
                            path,
11600         -
                        },
11601         -
                        }
11602         -
        }
11603         -
    }
11604         -
}
11605         -
/// See [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
11606         -
pub mod transitively_constrained_structure_in_output {
11607         -
11608         -
    impl ::std::convert::From<Builder> for crate::model::TransitivelyConstrainedStructureInOutput {
11609         -
        fn from(builder: Builder) -> Self {
11610         -
            builder.build()
11611         -
        }
11612         -
    }
11613         -
    /// A builder for [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
11614         -
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
11615         -
    pub struct Builder {
11616         -
        pub(crate) length_string: ::std::option::Option<::std::string::String>,
11617         -
    }
11618         -
    impl Builder {
11619         -
        #[allow(missing_docs)] // documentation missing in model
11620         -
        pub fn length_string(
11621         -
            mut self,
11622         -
            input: ::std::option::Option<::std::string::String>,
11623         -
        ) -> Self {
11624         -
            self.length_string = input;
11625         -
            self
11626         -
        }
11627         -
        /// Consumes the builder and constructs a [`TransitivelyConstrainedStructureInOutput`](crate::model::TransitivelyConstrainedStructureInOutput).
11628         -
        pub fn build(self) -> crate::model::TransitivelyConstrainedStructureInOutput {
11629         -
            self.build_enforcing_required_and_enum_traits()
11630         -
        }
11631         -
        fn build_enforcing_required_and_enum_traits(
11632         -
            self,
11633         -
        ) -> crate::model::TransitivelyConstrainedStructureInOutput {
11634         -
            crate::model::TransitivelyConstrainedStructureInOutput {
11635         -
                length_string: self.length_string,
11636         -
            }
       11594  +
                        Self::UniqueItems { duplicate_indices, .. } =>
       11595  +
                                crate::model::ValidationExceptionField {
       11596  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
       11597  +
                                    path,
       11598  +
                                },
       11599  +
                    }
11637  11600   
        }
11638  11601   
    }
11639  11602   
}
11640         -
pub(crate) mod constrained_map_in_output_internal {
       11603  +
pub(crate) mod map_of_list_of_list_of_con_b_internal {
11641  11604   
11642  11605   
    #[allow(clippy::enum_variant_names)]
11643  11606   
    #[derive(Debug, PartialEq)]
11644  11607   
    pub(crate) enum ConstraintViolation {
11645         -
        Length(usize),
       11608  +
        #[doc(hidden)]
       11609  +
        Value(
       11610  +
            ::std::string::String,
       11611  +
            crate::model::con_b_list_internal::ConstraintViolation,
       11612  +
        ),
11646  11613   
    }
11647  11614   
11648  11615   
    impl ::std::fmt::Display for ConstraintViolation {
11649  11616   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11650  11617   
            match self {
11651         -
                Self::Length(length) => {
11652         -
                    write!(f, "Value with length {} provided for 'com.amazonaws.constraints#ConstrainedMapInOutput' failed to satisfy constraint: Member must have length greater than or equal to 69", length)
       11618  +
                Self::Value(_, value_constraint_violation) => {
       11619  +
                    write!(f, "{}", value_constraint_violation)
11653  11620   
                }
11654  11621   
            }
11655  11622   
        }
11656  11623   
    }
11657  11624   
11658  11625   
    impl ::std::error::Error for ConstraintViolation {}
       11626  +
    impl ConstraintViolation {
       11627  +
        pub(crate) fn as_validation_exception_field(
       11628  +
            self,
       11629  +
            path: ::std::string::String,
       11630  +
        ) -> crate::model::ValidationExceptionField {
       11631  +
            match self {
       11632  +
                Self::Value(key, value_constraint_violation) => value_constraint_violation
       11633  +
                    .as_validation_exception_field(path + "/" + key.as_str()),
       11634  +
            }
       11635  +
        }
       11636  +
    }
11659  11637   
}
11660         -
pub(crate) mod constrained_list_in_output_internal {
       11638  +
pub(crate) mod unique_items_list_internal {
11661  11639   
11662  11640   
    #[allow(clippy::enum_variant_names)]
11663  11641   
    #[derive(Debug, PartialEq)]
11664  11642   
    pub(crate) enum ConstraintViolation {
11665         -
        /// Constraint violation error when the list doesn't have the required length
11666         -
        Length(usize),
       11643  +
        /// Constraint violation error when the list does not contain unique items
       11644  +
        UniqueItems {
       11645  +
            /// A vector of indices into `original` pointing to all duplicate items. This vector has
       11646  +
            /// at least two elements.
       11647  +
            /// More specifically, for every element `idx_1` in `duplicate_indices`, there exists another
       11648  +
            /// distinct element `idx_2` such that `original[idx_1] == original[idx_2]` is `true`.
       11649  +
            /// Nothing is guaranteed about the order of the indices.
       11650  +
            duplicate_indices: ::std::vec::Vec<usize>,
       11651  +
            /// The original vector, that contains duplicate items.
       11652  +
            original: ::std::vec::Vec<::std::string::String>,
       11653  +
        },
11667  11654   
    }
11668  11655   
11669  11656   
    impl ::std::fmt::Display for ConstraintViolation {
11670  11657   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11671  11658   
            let message = match self {
11672         -
                Self::Length(length) => {
11673         -
                    format!("Value with length {} provided for 'com.amazonaws.constraints#ConstrainedListInOutput' failed to satisfy constraint: Member must have length greater than or equal to 69", length)
11674         -
                }
11675         -
            };
       11659  +
                                Self::UniqueItems { duplicate_indices, .. } =>
       11660  +
                            format!("Value with repeated values at indices {:?} provided for 'com.amazonaws.constraints#UniqueItemsList' failed to satisfy constraint: Member must have unique values", &duplicate_indices),
       11661  +
                            };
11676  11662   
            write!(f, "{message}")
11677  11663   
        }
11678  11664   
    }
11679  11665   
11680  11666   
    impl ::std::error::Error for ConstraintViolation {}
       11667  +
    impl ConstraintViolation {
       11668  +
        pub(crate) fn as_validation_exception_field(
       11669  +
            self,
       11670  +
            path: ::std::string::String,
       11671  +
        ) -> crate::model::ValidationExceptionField {
       11672  +
            match self {
       11673  +
                        Self::UniqueItems { duplicate_indices, .. } =>
       11674  +
                                crate::model::ValidationExceptionField {
       11675  +
                                    message: format!("Value with repeated values at indices {:?} at '{}' failed to satisfy constraint: Member must have unique values", &duplicate_indices, &path),
       11676  +
                                    path,
       11677  +
                                },
       11678  +
                    }
       11679  +
        }
       11680  +
    }
11681  11681   
}