Server Test Python

Server Test Python

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943

Files changed:

tmp-codegen-diff/codegen-server-test-python/ebs/rust-server-codegen-python/src/lib.rs

@@ -12,12 +71,72 @@
   32     32   
//!
   33     33   
//!
   34     34   
//! <p>This API reference provides detailed information about the actions, data types,
   35     35   
//! parameters, and errors of the EBS direct APIs. For more information about the elements that
   36     36   
//! make up the EBS direct APIs, and examples of how to use them effectively, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-accessing-snapshot.html">Accessing the Contents of an EBS Snapshot</a> in the <i>Amazon Elastic Compute Cloud User
   37     37   
//! Guide</i>. For more information about the supported AWS Regions, endpoints,
   38     38   
//! and service quotas for the EBS direct APIs, see <a href="https://docs.aws.amazon.com/general/latest/gr/ebs-service.html">Amazon Elastic Block Store Endpoints and Quotas</a> in
   39     39   
//! the <i>AWS General Reference</i>.</p>
   40     40   
   41     41   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
          42  +
/* ServerRootGenerator.kt:65 */
   42     43   
//! A fast and customizable Rust implementation of the Ebs Smithy service.
   43     44   
//!
   44     45   
//! # Using Ebs
   45     46   
//!
   46     47   
//! The primary entrypoint is [`Ebs`]: it satisfies the [`Service<http::Request, Response = http::Response>`](::tower::Service)
   47     48   
//! trait and therefore can be handed to a [`hyper` server](https://github.com/hyperium/hyper) via [`Ebs::into_make_service`]
   48     49   
//! or used in AWS Lambda
   49     50   
#![cfg_attr(
   50     51   
    feature = "aws-lambda",
   51     52   
    doc = " via [`LambdaHandler`](crate::server::routing::LambdaHandler)."
@@ -211,212 +303,317 @@
  231    232   
//! }
  232    233   
//!
  233    234   
//! ```
  234    235   
//!
  235    236   
//! [`serve`]: https://docs.rs/hyper/0.14.16/hyper/server/struct.Builder.html#method.serve
  236    237   
//! [`tower::make::MakeService`]: https://docs.rs/tower/latest/tower/make/trait.MakeService.html
  237    238   
//! [HTTP binding traits]: https://smithy.io/2.0/spec/http-bindings.html
  238    239   
//! [operations]: https://smithy.io/2.0/spec/service-types.html#operation
  239    240   
//! [hyper server]: https://docs.rs/hyper/latest/hyper/server/index.html
  240    241   
//! [Service]: https://docs.rs/tower-service/latest/tower_service/trait.Service.html
         242  +
/* ServerRootGenerator.kt:261 */
  241    243   
pub use crate::service::{Ebs, EbsBuilder, EbsConfig, EbsConfigBuilder, MissingOperationsError};
  242    244   
  243         -
/// Contains the types that are re-exported from the `aws-smithy-http-server` crate.
         245  +
/// /* ServerRustModule.kt:55 */Contains the types that are re-exported from the `aws-smithy-http-server` crate.
  244    246   
pub mod server {
  245    247   
    // Re-export all types from the `aws-smithy-http-server` crate.
  246    248   
    pub use ::aws_smithy_http_server::*;
         249  +
         250  +
    /* CodegenDelegator.kt:200 */
  247    251   
}
  248    252   
         253  +
/* CrateVersionCustomization.kt:23 */
  249    254   
/// Crate version number.
  250    255   
pub static PKG_VERSION: &str = env!("CARGO_PKG_VERSION");
  251    256   
  252         -
/// Constrained types for constrained shapes.
         257  +
/// /* ServerRustModule.kt:55 */Constrained types for constrained shapes.
         258  +
/* RustModule.kt:172 */
  253    259   
mod constrained;
  254    260   
  255         -
/// All error types that operations can return. Documentation on these types is copied from the model.
         261  +
/// /* ServerRustModule.kt:55 */All error types that operations can return. Documentation on these types is copied from the model.
  256    262   
pub mod error;
  257    263   
  258         -
/// Input structures for operations. Documentation on these types is copied from the model.
         264  +
/// /* ServerRustModule.kt:55 */Input structures for operations. Documentation on these types is copied from the model.
  259    265   
pub mod input;
  260    266   
  261         -
/// Data structures used by operation inputs/outputs. Documentation on these types is copied from the model.
         267  +
/// /* ServerRustModule.kt:55 */Data structures used by operation inputs/outputs. Documentation on these types is copied from the model.
  262    268   
pub mod model;
  263    269   
  264         -
/// All operations that this crate can perform.
         270  +
/// /* ServerRustModule.kt:55 */All operations that this crate can perform.
  265    271   
pub mod operation;
  266    272   
         273  +
/* ServerRustModule.kt:79 */
  267    274   
/// A collection of types representing each operation defined in the service closure.
  268    275   
///
  269    276   
/// The [plugin system](::aws_smithy_http_server::plugin) makes use of these
  270    277   
/// [zero-sized types](https://doc.rust-lang.org/nomicon/exotic-sizes.html#zero-sized-types-zsts) (ZSTs) to
  271    278   
/// parameterize [`Plugin`](::aws_smithy_http_server::plugin::Plugin) implementations. Their traits, such as
  272    279   
/// [`OperationShape`](::aws_smithy_http_server::operation::OperationShape), can be used to provide
  273    280   
/// operation specific information to the [`Layer`](::tower::Layer) being applied.
  274    281   
pub mod operation_shape;
  275    282   
  276         -
/// Output structures for operations. Documentation on these types is copied from the model.
         283  +
/// /* ServerRustModule.kt:55 */Output structures for operations. Documentation on these types is copied from the model.
  277    284   
pub mod output;
  278    285   
  279         -
/// Export PyO3 symbols in the shared library
         286  +
/// /* PythonServerRustModule.kt:23 */Export PyO3 symbols in the shared library
  280    287   
pub mod python_module_export;
  281    288   
  282         -
/// Operation adapters that delegate to Python handlers.
         289  +
/// /* PythonServerRustModule.kt:23 */Operation adapters that delegate to Python handlers.
  283    290   
pub mod python_operation_adaptor;
  284    291   
  285         -
/// Python server and application implementation.
         292  +
/// /* PythonServerRustModule.kt:23 */Python server and application implementation.
  286    293   
pub mod python_server_application;
  287    294   
         295  +
/* RustModule.kt:172 */
  288    296   
mod service;
  289    297   
  290         -
/// Data primitives referenced by other data types.
         298  +
/// /* ServerRustModule.kt:55 */Data primitives referenced by other data types.
  291    299   
pub mod types;
  292    300   
  293         -
/// Unconstrained types for constrained shapes.
         301  +
/// /* ServerRustModule.kt:55 */Unconstrained types for constrained shapes.
         302  +
/* RustModule.kt:172 */
  294    303   
mod unconstrained;
  295    304   
  296    305   
pub(crate) mod protocol_serde;
  297    306   
  298         -
/// Re-exported Python types from supporting crates.
         307  +
/// /* PythonServerCodegenDecorator.kt:57 */Re-exported Python types from supporting crates.
         308  +
/* PythonServerCodegenDecorator.kt:58 */
  299    309   
pub mod python_types {
         310  +
    /* PythonServerCodegenDecorator.kt:59 */
  300    311   
    pub use ::aws_smithy_http_server_python::types::Blob;
         312  +
    /* PythonServerCodegenDecorator.kt:60 */
  301    313   
    pub use ::aws_smithy_http_server_python::types::DateTime;
         314  +
    /* PythonServerCodegenDecorator.kt:61 */
  302    315   
    pub use ::aws_smithy_http_server_python::types::Document;
         316  +
    /* PythonServerCodegenDecorator.kt:58 */
  303    317   
}

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

@@ -1,1 +3695,4355 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* RustType.kt:516 */
    2      3   
#[::pyo3::pyclass]
           4  +
/* PythonServerStructureGenerator.kt:63 */
    3      5   
/// :param path str:
    4      6   
/// :param message str:
    5      7   
/// :rtype None:
    6         -
/// Describes one specific validation failure for an input member.
           8  +
/// /* StructureGenerator.kt:197 */Describes one specific validation failure for an input member.
           9  +
/* RustType.kt:516 */
    7     10   
#[derive(
    8     11   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
    9     12   
)]
   10         -
pub struct ValidationExceptionField {
          13  +
pub /* StructureGenerator.kt:201 */ struct ValidationExceptionField {
          14  +
    /* RustType.kt:516 */
   11     15   
    #[pyo3(get, set)]
          16  +
    /* PythonServerStructureGenerator.kt:80 */
   12     17   
    /// :type str:
   13         -
    /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
          18  +
    /// /* StructureGenerator.kt:231 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
   14     19   
    pub path: ::std::string::String,
          20  +
    /* RustType.kt:516 */
   15     21   
    #[pyo3(get, set)]
          22  +
    /* PythonServerStructureGenerator.kt:80 */
   16     23   
    /// :type str:
   17         -
    /// A detailed description of the validation failure.
          24  +
    /// /* StructureGenerator.kt:231 */A detailed description of the validation failure.
   18     25   
    pub message: ::std::string::String,
          26  +
    /* StructureGenerator.kt:201 */
   19     27   
}
          28  +
/* StructureGenerator.kt:135 */
   20     29   
impl ValidationExceptionField {
   21         -
    /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
          30  +
    /// /* StructureGenerator.kt:231 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
          31  +
    /* StructureGenerator.kt:166 */
   22     32   
    pub fn path(&self) -> &str {
          33  +
        /* StructureGenerator.kt:171 */
   23     34   
        use std::ops::Deref;
   24     35   
        self.path.deref()
          36  +
        /* StructureGenerator.kt:166 */
   25     37   
    }
   26         -
    /// A detailed description of the validation failure.
          38  +
    /// /* StructureGenerator.kt:231 */A detailed description of the validation failure.
          39  +
    /* StructureGenerator.kt:166 */
   27     40   
    pub fn message(&self) -> &str {
          41  +
        /* StructureGenerator.kt:171 */
   28     42   
        use std::ops::Deref;
   29     43   
        self.message.deref()
          44  +
        /* StructureGenerator.kt:166 */
   30     45   
    }
          46  +
    /* StructureGenerator.kt:135 */
   31     47   
}
          48  +
/* RustType.kt:516 */
   32     49   
#[allow(clippy::new_without_default)]
          50  +
/* RustType.kt:516 */
   33     51   
#[allow(clippy::too_many_arguments)]
          52  +
/* RustType.kt:516 */
   34     53   
#[::pyo3::pymethods]
          54  +
/* PythonServerStructureGenerator.kt:88 */
   35     55   
impl ValidationExceptionField {
   36     56   
    #[new]
   37     57   
    pub fn new(path: ::std::string::String, message: ::std::string::String) -> Self {
   38     58   
        Self { path, message }
   39     59   
    }
   40     60   
    fn __repr__(&self) -> String {
   41     61   
        format!("{self:?}")
   42     62   
    }
   43     63   
    fn __str__(&self) -> String {
   44     64   
        format!("{self:?}")
   45     65   
    }
   46     66   
}
          67  +
/* PythonServerStructureGenerator.kt:111 */
   47     68   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ValidationExceptionField> {
   48     69   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
   49     70   
        ob.extract::<ValidationExceptionField>().map(Box::new)
   50     71   
    }
   51     72   
}
   52     73   
   53     74   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ValidationExceptionField> {
   54     75   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
   55     76   
        (*self).into_py(py)
   56     77   
    }
   57     78   
}
          79  +
/* ServerCodegenVisitor.kt:370 */
   58     80   
impl ValidationExceptionField {
   59         -
    /// Creates a new builder-style object to manufacture [`ValidationExceptionField`](crate::model::ValidationExceptionField).
          81  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`ValidationExceptionField`](crate::model::ValidationExceptionField).
          82  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
   60     83   
    pub fn builder() -> crate::model::validation_exception_field::Builder {
          84  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
   61     85   
        crate::model::validation_exception_field::Builder::default()
          86  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
   62     87   
    }
          88  +
    /* ServerCodegenVisitor.kt:370 */
   63     89   
}
   64     90   
          91  +
/* ConstrainedStringGenerator.kt:82 */
   65     92   
#[allow(missing_docs)] // documentation missing in model
   66         -
///
          93  +
/// /* ConstrainedStringGenerator.kt:83 */
   67     94   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
   68     95   
/// [constraint traits]. Use [`ErrorMessage::try_from`] to construct values of this type.
   69     96   
///
   70     97   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
   71     98   
///
          99  +
/* RustType.kt:516 */
   72    100   
#[derive(
   73    101   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
   74    102   
)]
   75         -
pub(crate) struct ErrorMessage(pub(crate) ::std::string::String);
         103  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct ErrorMessage(
         104  +
    pub(crate) ::std::string::String,
         105  +
);
         106  +
/* RustType.kt:516 */
   76    107   
#[allow(dead_code)]
         108  +
/* ConstrainedStringGenerator.kt:90 */
   77    109   
impl ErrorMessage {
   78    110   
    /// Extracts a string slice containing the entire underlying `String`.
   79    111   
    pub fn as_str(&self) -> &str {
   80    112   
        &self.0
   81    113   
    }
   82    114   
   83    115   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
   84    116   
    pub fn inner(&self) -> &::std::string::String {
   85    117   
        &self.0
   86    118   
    }
   87    119   
   88    120   
    /// Consumes the value, returning the underlying [`::std::string::String`].
   89    121   
    pub fn into_inner(self) -> ::std::string::String {
   90    122   
        self.0
   91    123   
    }
   92    124   
}
         125  +
/* TraitInfo.kt:41 */
   93    126   
impl ErrorMessage {
   94    127   
    fn check_length(
   95    128   
        string: &str,
   96    129   
    ) -> ::std::result::Result<(), crate::model::error_message_internal::ConstraintViolation> {
   97    130   
        let length = string.chars().count();
   98    131   
   99    132   
        if (0..=256).contains(&length) {
  100    133   
            Ok(())
  101    134   
        } else {
  102    135   
            Err(crate::model::error_message_internal::ConstraintViolation::Length(length))
  103    136   
        }
  104    137   
    }
  105    138   
}
         139  +
/* TraitInfo.kt:57 */
  106    140   
impl ::std::convert::TryFrom<::std::string::String> for ErrorMessage {
  107    141   
    type Error = crate::model::error_message_internal::ConstraintViolation;
  108    142   
  109    143   
    /// Constructs a `ErrorMessage` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
  110    144   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
  111    145   
        Self::check_length(&value)?;
  112    146   
  113    147   
        Ok(Self(value))
  114    148   
    }
  115    149   
}
         150  +
/* ConstrainedStringGenerator.kt:112 */
  116    151   
impl crate::constrained::Constrained for ErrorMessage {
  117    152   
    type Unconstrained = ::std::string::String;
  118    153   
}
  119    154   
  120    155   
impl ::std::convert::From<::std::string::String>
  121    156   
    for crate::constrained::MaybeConstrained<crate::model::ErrorMessage>
  122    157   
{
  123    158   
    fn from(value: ::std::string::String) -> Self {
  124    159   
        Self::Unconstrained(value)
  125    160   
    }
  126    161   
}
  127    162   
  128    163   
impl ::std::fmt::Display for ErrorMessage {
  129    164   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  130    165   
        self.0.fmt(f)
  131    166   
    }
  132    167   
}
  133    168   
  134    169   
impl ::std::convert::From<ErrorMessage> for ::std::string::String {
  135    170   
    fn from(value: ErrorMessage) -> Self {
  136    171   
        value.into_inner()
  137    172   
    }
  138    173   
}
  139    174   
         175  +
/* RustType.kt:516 */
  140    176   
#[::pyo3::pyclass]
         177  +
/* EnumGenerator.kt:154 */
  141    178   
#[allow(missing_docs)] // documentation missing in model
         179  +
/* RustType.kt:516 */
  142    180   
#[derive(
  143    181   
    ::std::clone::Clone,
  144    182   
    ::std::cmp::Eq,
  145    183   
    ::std::cmp::Ord,
  146    184   
    ::std::cmp::PartialEq,
  147    185   
    ::std::cmp::PartialOrd,
  148    186   
    ::std::fmt::Debug,
  149    187   
    ::std::hash::Hash,
  150    188   
)]
  151         -
pub enum ServiceQuotaExceededExceptionReason {
         189  +
pub /* EnumGenerator.kt:267 */ enum ServiceQuotaExceededExceptionReason {
         190  +
    /* EnumGenerator.kt:154 */
  152    191   
    #[allow(missing_docs)] // documentation missing in model
         192  +
    /* EnumGenerator.kt:143 */
  153    193   
    DependencyServiceQuotaExceeded,
         194  +
    /* EnumGenerator.kt:267 */
  154    195   
}
  155    196   
pub(crate) mod service_quota_exceeded_exception_reason_internal {
  156    197   
    #[derive(Debug, PartialEq)]
  157    198   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  158    199   
  159    200   
    impl ::std::fmt::Display for ConstraintViolation {
  160    201   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  161    202   
            write!(
  162    203   
                f,
  163    204   
                r#"Value provided for 'com.amazonaws.ebs#ServiceQuotaExceededExceptionReason' failed to satisfy constraint: Member must satisfy enum value set: [DEPENDENCY_SERVICE_QUOTA_EXCEEDED]"#
  164    205   
            )
  165    206   
        }
  166    207   
    }
  167    208   
  168    209   
    impl ::std::error::Error for ConstraintViolation {}
         210  +
         211  +
    /* ServerEnumGenerator.kt:46 */
  169    212   
}
         213  +
/* ServerEnumGenerator.kt:85 */
  170    214   
impl ::std::convert::TryFrom<&str> for ServiceQuotaExceededExceptionReason {
  171    215   
    type Error =
  172    216   
        crate::model::service_quota_exceeded_exception_reason_internal::ConstraintViolation;
  173    217   
    fn try_from(
  174    218   
        s: &str,
  175    219   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  176    220   
        match s {
  177    221   
            "DEPENDENCY_SERVICE_QUOTA_EXCEEDED" => {
  178    222   
                Ok(ServiceQuotaExceededExceptionReason::DependencyServiceQuotaExceeded)
  179    223   
            }
  180    224   
            _ => Err(
  181    225   
                crate::model::service_quota_exceeded_exception_reason_internal::ConstraintViolation(
  182    226   
                    s.to_owned(),
  183    227   
                ),
  184    228   
            ),
  185    229   
        }
  186    230   
    }
  187    231   
}
  188    232   
impl ::std::convert::TryFrom<::std::string::String> for ServiceQuotaExceededExceptionReason {
  189    233   
    type Error =
  190    234   
        crate::model::service_quota_exceeded_exception_reason_internal::ConstraintViolation;
  191    235   
    fn try_from(
  192    236   
        s: ::std::string::String,
  193    237   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  194    238   
    {
  195    239   
        s.as_str().try_into()
  196    240   
    }
  197    241   
}
         242  +
/* ServerEnumGenerator.kt:145 */
  198    243   
impl std::str::FromStr for ServiceQuotaExceededExceptionReason {
  199    244   
    type Err = crate::model::service_quota_exceeded_exception_reason_internal::ConstraintViolation;
  200    245   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  201    246   
        Self::try_from(s)
  202    247   
    }
  203    248   
}
         249  +
/* EnumGenerator.kt:274 */
  204    250   
impl ServiceQuotaExceededExceptionReason {
  205    251   
    /// Returns the `&str` value of the enum member.
  206    252   
    pub fn as_str(&self) -> &str {
  207    253   
        match self {
  208    254   
            ServiceQuotaExceededExceptionReason::DependencyServiceQuotaExceeded => {
  209    255   
                "DEPENDENCY_SERVICE_QUOTA_EXCEEDED"
  210    256   
            }
  211    257   
        }
  212    258   
    }
  213    259   
    /// Returns all the `&str` representations of the enum members.
  214    260   
    pub const fn values() -> &'static [&'static str] {
  215    261   
        &["DEPENDENCY_SERVICE_QUOTA_EXCEEDED"]
  216    262   
    }
  217    263   
}
         264  +
/* EnumGenerator.kt:223 */
  218    265   
impl ::std::convert::AsRef<str> for ServiceQuotaExceededExceptionReason {
  219    266   
    fn as_ref(&self) -> &str {
  220    267   
        self.as_str()
  221    268   
    }
  222    269   
}
         270  +
/* RustType.kt:516 */
  223    271   
#[::pyo3::pymethods]
         272  +
/* PythonServerEnumGenerator.kt:41 */
  224    273   
impl ServiceQuotaExceededExceptionReason {
  225    274   
    #[getter]
  226    275   
    pub fn name(&self) -> &str {
  227    276   
        match self {
  228    277   
            ServiceQuotaExceededExceptionReason::DependencyServiceQuotaExceeded => {
  229    278   
                "DependencyServiceQuotaExceeded"
  230    279   
            }
  231    280   
        }
  232    281   
    }
  233    282   
    #[getter]
  234    283   
    pub fn value(&self) -> &str {
  235    284   
        self.as_str()
  236    285   
    }
  237    286   
    fn __repr__(&self) -> String {
  238    287   
        self.as_str().to_owned()
  239    288   
    }
  240    289   
    fn __str__(&self) -> String {
  241    290   
        self.as_str().to_owned()
  242    291   
    }
  243    292   
}
         293  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  244    294   
impl crate::constrained::Constrained for ServiceQuotaExceededExceptionReason {
  245    295   
    type Unconstrained = ::std::string::String;
  246    296   
}
  247    297   
  248    298   
impl ::std::convert::From<::std::string::String>
  249    299   
    for crate::constrained::MaybeConstrained<crate::model::ServiceQuotaExceededExceptionReason>
  250    300   
{
  251    301   
    fn from(value: ::std::string::String) -> Self {
  252    302   
        Self::Unconstrained(value)
  253    303   
    }
  254    304   
}
  255    305   
         306  +
/* RustType.kt:516 */
  256    307   
#[::pyo3::pyclass]
         308  +
/* EnumGenerator.kt:154 */
  257    309   
#[allow(missing_docs)] // documentation missing in model
         310  +
/* RustType.kt:516 */
  258    311   
#[derive(
  259    312   
    ::std::clone::Clone,
  260    313   
    ::std::cmp::Eq,
  261    314   
    ::std::cmp::Ord,
  262    315   
    ::std::cmp::PartialEq,
  263    316   
    ::std::cmp::PartialOrd,
  264    317   
    ::std::fmt::Debug,
  265    318   
    ::std::hash::Hash,
  266    319   
)]
  267         -
pub enum RequestThrottledExceptionReason {
         320  +
pub /* EnumGenerator.kt:267 */ enum RequestThrottledExceptionReason {
         321  +
    /* EnumGenerator.kt:154 */
  268    322   
    #[allow(missing_docs)] // documentation missing in model
         323  +
    /* EnumGenerator.kt:143 */
  269    324   
    AccountThrottled,
         325  +
    /* EnumGenerator.kt:154 */
  270    326   
    #[allow(missing_docs)] // documentation missing in model
         327  +
    /* EnumGenerator.kt:143 */
  271    328   
    DependencyRequestThrottled,
         329  +
    /* EnumGenerator.kt:267 */
  272    330   
}
  273    331   
pub(crate) mod request_throttled_exception_reason_internal {
  274    332   
    #[derive(Debug, PartialEq)]
  275    333   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  276    334   
  277    335   
    impl ::std::fmt::Display for ConstraintViolation {
  278    336   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  279    337   
            write!(
  280    338   
                f,
  281    339   
                r#"Value provided for 'com.amazonaws.ebs#RequestThrottledExceptionReason' failed to satisfy constraint: Member must satisfy enum value set: [ACCOUNT_THROTTLED, DEPENDENCY_REQUEST_THROTTLED]"#
  282    340   
            )
  283    341   
        }
  284    342   
    }
  285    343   
  286    344   
    impl ::std::error::Error for ConstraintViolation {}
         345  +
         346  +
    /* ServerEnumGenerator.kt:46 */
  287    347   
}
         348  +
/* ServerEnumGenerator.kt:85 */
  288    349   
impl ::std::convert::TryFrom<&str> for RequestThrottledExceptionReason {
  289    350   
    type Error = crate::model::request_throttled_exception_reason_internal::ConstraintViolation;
  290    351   
    fn try_from(
  291    352   
        s: &str,
  292    353   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  293    354   
        match s {
  294    355   
            "ACCOUNT_THROTTLED" => Ok(RequestThrottledExceptionReason::AccountThrottled),
  295    356   
            "DEPENDENCY_REQUEST_THROTTLED" => {
  296    357   
                Ok(RequestThrottledExceptionReason::DependencyRequestThrottled)
  297    358   
            }
  298    359   
            _ => Err(
  299    360   
                crate::model::request_throttled_exception_reason_internal::ConstraintViolation(
  300    361   
                    s.to_owned(),
  301    362   
                ),
  302    363   
            ),
  303    364   
        }
  304    365   
    }
  305    366   
}
  306    367   
impl ::std::convert::TryFrom<::std::string::String> for RequestThrottledExceptionReason {
  307    368   
    type Error = crate::model::request_throttled_exception_reason_internal::ConstraintViolation;
  308    369   
    fn try_from(
  309    370   
        s: ::std::string::String,
  310    371   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  311    372   
    {
  312    373   
        s.as_str().try_into()
  313    374   
    }
  314    375   
}
         376  +
/* ServerEnumGenerator.kt:145 */
  315    377   
impl std::str::FromStr for RequestThrottledExceptionReason {
  316    378   
    type Err = crate::model::request_throttled_exception_reason_internal::ConstraintViolation;
  317    379   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  318    380   
        Self::try_from(s)
  319    381   
    }
  320    382   
}
         383  +
/* EnumGenerator.kt:274 */
  321    384   
impl RequestThrottledExceptionReason {
  322    385   
    /// Returns the `&str` value of the enum member.
  323    386   
    pub fn as_str(&self) -> &str {
  324    387   
        match self {
  325    388   
            RequestThrottledExceptionReason::AccountThrottled => "ACCOUNT_THROTTLED",
  326    389   
            RequestThrottledExceptionReason::DependencyRequestThrottled => {
  327    390   
                "DEPENDENCY_REQUEST_THROTTLED"
  328    391   
            }
  329    392   
        }
  330    393   
    }
  331    394   
    /// Returns all the `&str` representations of the enum members.
  332    395   
    pub const fn values() -> &'static [&'static str] {
  333    396   
        &["ACCOUNT_THROTTLED", "DEPENDENCY_REQUEST_THROTTLED"]
  334    397   
    }
  335    398   
}
         399  +
/* EnumGenerator.kt:223 */
  336    400   
impl ::std::convert::AsRef<str> for RequestThrottledExceptionReason {
  337    401   
    fn as_ref(&self) -> &str {
  338    402   
        self.as_str()
  339    403   
    }
  340    404   
}
         405  +
/* RustType.kt:516 */
  341    406   
#[::pyo3::pymethods]
         407  +
/* PythonServerEnumGenerator.kt:41 */
  342    408   
impl RequestThrottledExceptionReason {
  343    409   
    #[getter]
  344    410   
    pub fn name(&self) -> &str {
  345    411   
        match self {
  346    412   
            RequestThrottledExceptionReason::AccountThrottled => "AccountThrottled",
  347    413   
            RequestThrottledExceptionReason::DependencyRequestThrottled => {
  348    414   
                "DependencyRequestThrottled"
  349    415   
            }
  350    416   
        }
  351    417   
    }
  352    418   
    #[getter]
  353    419   
    pub fn value(&self) -> &str {
  354    420   
        self.as_str()
  355    421   
    }
  356    422   
    fn __repr__(&self) -> String {
  357    423   
        self.as_str().to_owned()
  358    424   
    }
  359    425   
    fn __str__(&self) -> String {
  360    426   
        self.as_str().to_owned()
  361    427   
    }
  362    428   
}
         429  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  363    430   
impl crate::constrained::Constrained for RequestThrottledExceptionReason {
  364    431   
    type Unconstrained = ::std::string::String;
  365    432   
}
  366    433   
  367    434   
impl ::std::convert::From<::std::string::String>
  368    435   
    for crate::constrained::MaybeConstrained<crate::model::RequestThrottledExceptionReason>
  369    436   
{
  370    437   
    fn from(value: ::std::string::String) -> Self {
  371    438   
        Self::Unconstrained(value)
  372    439   
    }
  373    440   
}
  374    441   
         442  +
/* RustType.kt:516 */
  375    443   
#[::pyo3::pyclass]
         444  +
/* EnumGenerator.kt:154 */
  376    445   
#[allow(missing_docs)] // documentation missing in model
         446  +
/* RustType.kt:516 */
  377    447   
#[derive(
  378    448   
    ::std::clone::Clone,
  379    449   
    ::std::cmp::Eq,
  380    450   
    ::std::cmp::Ord,
  381    451   
    ::std::cmp::PartialEq,
  382    452   
    ::std::cmp::PartialOrd,
  383    453   
    ::std::fmt::Debug,
  384    454   
    ::std::hash::Hash,
  385    455   
)]
  386         -
pub enum AccessDeniedExceptionReason {
         456  +
pub /* EnumGenerator.kt:267 */ enum AccessDeniedExceptionReason {
         457  +
    /* EnumGenerator.kt:154 */
  387    458   
    #[allow(missing_docs)] // documentation missing in model
         459  +
    /* EnumGenerator.kt:143 */
  388    460   
    DependencyAccessDenied,
         461  +
    /* EnumGenerator.kt:154 */
  389    462   
    #[allow(missing_docs)] // documentation missing in model
         463  +
    /* EnumGenerator.kt:143 */
  390    464   
    UnauthorizedAccount,
         465  +
    /* EnumGenerator.kt:267 */
  391    466   
}
  392    467   
pub(crate) mod access_denied_exception_reason_internal {
  393    468   
    #[derive(Debug, PartialEq)]
  394    469   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  395    470   
  396    471   
    impl ::std::fmt::Display for ConstraintViolation {
  397    472   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  398    473   
            write!(
  399    474   
                f,
  400    475   
                r#"Value provided for 'com.amazonaws.ebs#AccessDeniedExceptionReason' failed to satisfy constraint: Member must satisfy enum value set: [UNAUTHORIZED_ACCOUNT, DEPENDENCY_ACCESS_DENIED]"#
  401    476   
            )
  402    477   
        }
  403    478   
    }
  404    479   
  405    480   
    impl ::std::error::Error for ConstraintViolation {}
         481  +
         482  +
    /* ServerEnumGenerator.kt:46 */
  406    483   
}
         484  +
/* ServerEnumGenerator.kt:85 */
  407    485   
impl ::std::convert::TryFrom<&str> for AccessDeniedExceptionReason {
  408    486   
    type Error = crate::model::access_denied_exception_reason_internal::ConstraintViolation;
  409    487   
    fn try_from(
  410    488   
        s: &str,
  411    489   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  412    490   
        match s {
  413    491   
            "DEPENDENCY_ACCESS_DENIED" => Ok(AccessDeniedExceptionReason::DependencyAccessDenied),
  414    492   
            "UNAUTHORIZED_ACCOUNT" => Ok(AccessDeniedExceptionReason::UnauthorizedAccount),
  415    493   
            _ => Err(
  416    494   
                crate::model::access_denied_exception_reason_internal::ConstraintViolation(
  417    495   
                    s.to_owned(),
  418    496   
                ),
  419    497   
            ),
  420    498   
        }
  421    499   
    }
  422    500   
}
  423    501   
impl ::std::convert::TryFrom<::std::string::String> for AccessDeniedExceptionReason {
  424    502   
    type Error = crate::model::access_denied_exception_reason_internal::ConstraintViolation;
  425    503   
    fn try_from(
  426    504   
        s: ::std::string::String,
  427    505   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  428    506   
    {
  429    507   
        s.as_str().try_into()
  430    508   
    }
  431    509   
}
         510  +
/* ServerEnumGenerator.kt:145 */
  432    511   
impl std::str::FromStr for AccessDeniedExceptionReason {
  433    512   
    type Err = crate::model::access_denied_exception_reason_internal::ConstraintViolation;
  434    513   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  435    514   
        Self::try_from(s)
  436    515   
    }
  437    516   
}
         517  +
/* EnumGenerator.kt:274 */
  438    518   
impl AccessDeniedExceptionReason {
  439    519   
    /// Returns the `&str` value of the enum member.
  440    520   
    pub fn as_str(&self) -> &str {
  441    521   
        match self {
  442    522   
            AccessDeniedExceptionReason::DependencyAccessDenied => "DEPENDENCY_ACCESS_DENIED",
  443    523   
            AccessDeniedExceptionReason::UnauthorizedAccount => "UNAUTHORIZED_ACCOUNT",
  444    524   
        }
  445    525   
    }
  446    526   
    /// Returns all the `&str` representations of the enum members.
  447    527   
    pub const fn values() -> &'static [&'static str] {
  448    528   
        &["DEPENDENCY_ACCESS_DENIED", "UNAUTHORIZED_ACCOUNT"]
  449    529   
    }
  450    530   
}
         531  +
/* EnumGenerator.kt:223 */
  451    532   
impl ::std::convert::AsRef<str> for AccessDeniedExceptionReason {
  452    533   
    fn as_ref(&self) -> &str {
  453    534   
        self.as_str()
  454    535   
    }
  455    536   
}
         537  +
/* RustType.kt:516 */
  456    538   
#[::pyo3::pymethods]
         539  +
/* PythonServerEnumGenerator.kt:41 */
  457    540   
impl AccessDeniedExceptionReason {
  458    541   
    #[getter]
  459    542   
    pub fn name(&self) -> &str {
  460    543   
        match self {
  461    544   
            AccessDeniedExceptionReason::DependencyAccessDenied => "DependencyAccessDenied",
  462    545   
            AccessDeniedExceptionReason::UnauthorizedAccount => "UnauthorizedAccount",
  463    546   
        }
  464    547   
    }
  465    548   
    #[getter]
  466    549   
    pub fn value(&self) -> &str {
  467    550   
        self.as_str()
  468    551   
    }
  469    552   
    fn __repr__(&self) -> String {
  470    553   
        self.as_str().to_owned()
  471    554   
    }
  472    555   
    fn __str__(&self) -> String {
  473    556   
        self.as_str().to_owned()
  474    557   
    }
  475    558   
}
         559  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  476    560   
impl crate::constrained::Constrained for AccessDeniedExceptionReason {
  477    561   
    type Unconstrained = ::std::string::String;
  478    562   
}
  479    563   
  480    564   
impl ::std::convert::From<::std::string::String>
  481    565   
    for crate::constrained::MaybeConstrained<crate::model::AccessDeniedExceptionReason>
  482    566   
{
  483    567   
    fn from(value: ::std::string::String) -> Self {
  484    568   
        Self::Unconstrained(value)
  485    569   
    }
  486    570   
}
  487    571   
         572  +
/* RustType.kt:516 */
  488    573   
#[::pyo3::pyclass]
         574  +
/* EnumGenerator.kt:154 */
  489    575   
#[allow(missing_docs)] // documentation missing in model
         576  +
/* RustType.kt:516 */
  490    577   
#[derive(
  491    578   
    ::std::clone::Clone,
  492    579   
    ::std::cmp::Eq,
  493    580   
    ::std::cmp::Ord,
  494    581   
    ::std::cmp::PartialEq,
  495    582   
    ::std::cmp::PartialOrd,
  496    583   
    ::std::fmt::Debug,
  497    584   
    ::std::hash::Hash,
  498    585   
)]
  499         -
pub enum ResourceNotFoundExceptionReason {
         586  +
pub /* EnumGenerator.kt:267 */ enum ResourceNotFoundExceptionReason {
         587  +
    /* EnumGenerator.kt:154 */
  500    588   
    #[allow(missing_docs)] // documentation missing in model
         589  +
    /* EnumGenerator.kt:143 */
  501    590   
    DependencyResourceNotFound,
         591  +
    /* EnumGenerator.kt:154 */
  502    592   
    #[allow(missing_docs)] // documentation missing in model
         593  +
    /* EnumGenerator.kt:143 */
  503    594   
    SnapshotNotFound,
         595  +
    /* EnumGenerator.kt:267 */
  504    596   
}
  505    597   
pub(crate) mod resource_not_found_exception_reason_internal {
  506    598   
    #[derive(Debug, PartialEq)]
  507    599   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  508    600   
  509    601   
    impl ::std::fmt::Display for ConstraintViolation {
  510    602   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  511    603   
            write!(
  512    604   
                f,
  513    605   
                r#"Value provided for 'com.amazonaws.ebs#ResourceNotFoundExceptionReason' failed to satisfy constraint: Member must satisfy enum value set: [SNAPSHOT_NOT_FOUND, DEPENDENCY_RESOURCE_NOT_FOUND]"#
  514    606   
            )
  515    607   
        }
  516    608   
    }
  517    609   
  518    610   
    impl ::std::error::Error for ConstraintViolation {}
         611  +
         612  +
    /* ServerEnumGenerator.kt:46 */
  519    613   
}
         614  +
/* ServerEnumGenerator.kt:85 */
  520    615   
impl ::std::convert::TryFrom<&str> for ResourceNotFoundExceptionReason {
  521    616   
    type Error = crate::model::resource_not_found_exception_reason_internal::ConstraintViolation;
  522    617   
    fn try_from(
  523    618   
        s: &str,
  524    619   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  525    620   
        match s {
  526    621   
            "DEPENDENCY_RESOURCE_NOT_FOUND" => {
  527    622   
                Ok(ResourceNotFoundExceptionReason::DependencyResourceNotFound)
  528    623   
            }
  529    624   
            "SNAPSHOT_NOT_FOUND" => Ok(ResourceNotFoundExceptionReason::SnapshotNotFound),
  530    625   
            _ => Err(
  531    626   
                crate::model::resource_not_found_exception_reason_internal::ConstraintViolation(
  532    627   
                    s.to_owned(),
  533    628   
                ),
  534    629   
            ),
  535    630   
        }
  536    631   
    }
  537    632   
}
  538    633   
impl ::std::convert::TryFrom<::std::string::String> for ResourceNotFoundExceptionReason {
  539    634   
    type Error = crate::model::resource_not_found_exception_reason_internal::ConstraintViolation;
  540    635   
    fn try_from(
  541    636   
        s: ::std::string::String,
  542    637   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  543    638   
    {
  544    639   
        s.as_str().try_into()
  545    640   
    }
  546    641   
}
         642  +
/* ServerEnumGenerator.kt:145 */
  547    643   
impl std::str::FromStr for ResourceNotFoundExceptionReason {
  548    644   
    type Err = crate::model::resource_not_found_exception_reason_internal::ConstraintViolation;
  549    645   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  550    646   
        Self::try_from(s)
  551    647   
    }
  552    648   
}
         649  +
/* EnumGenerator.kt:274 */
  553    650   
impl ResourceNotFoundExceptionReason {
  554    651   
    /// Returns the `&str` value of the enum member.
  555    652   
    pub fn as_str(&self) -> &str {
  556    653   
        match self {
  557    654   
            ResourceNotFoundExceptionReason::DependencyResourceNotFound => {
  558    655   
                "DEPENDENCY_RESOURCE_NOT_FOUND"
  559    656   
            }
  560    657   
            ResourceNotFoundExceptionReason::SnapshotNotFound => "SNAPSHOT_NOT_FOUND",
  561    658   
        }
  562    659   
    }
  563    660   
    /// Returns all the `&str` representations of the enum members.
  564    661   
    pub const fn values() -> &'static [&'static str] {
  565    662   
        &["DEPENDENCY_RESOURCE_NOT_FOUND", "SNAPSHOT_NOT_FOUND"]
  566    663   
    }
  567    664   
}
         665  +
/* EnumGenerator.kt:223 */
  568    666   
impl ::std::convert::AsRef<str> for ResourceNotFoundExceptionReason {
  569    667   
    fn as_ref(&self) -> &str {
  570    668   
        self.as_str()
  571    669   
    }
  572    670   
}
         671  +
/* RustType.kt:516 */
  573    672   
#[::pyo3::pymethods]
         673  +
/* PythonServerEnumGenerator.kt:41 */
  574    674   
impl ResourceNotFoundExceptionReason {
  575    675   
    #[getter]
  576    676   
    pub fn name(&self) -> &str {
  577    677   
        match self {
  578    678   
            ResourceNotFoundExceptionReason::DependencyResourceNotFound => {
  579    679   
                "DependencyResourceNotFound"
  580    680   
            }
  581    681   
            ResourceNotFoundExceptionReason::SnapshotNotFound => "SnapshotNotFound",
  582    682   
        }
  583    683   
    }
  584    684   
    #[getter]
  585    685   
    pub fn value(&self) -> &str {
  586    686   
        self.as_str()
  587    687   
    }
  588    688   
    fn __repr__(&self) -> String {
  589    689   
        self.as_str().to_owned()
  590    690   
    }
  591    691   
    fn __str__(&self) -> String {
  592    692   
        self.as_str().to_owned()
  593    693   
    }
  594    694   
}
         695  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  595    696   
impl crate::constrained::Constrained for ResourceNotFoundExceptionReason {
  596    697   
    type Unconstrained = ::std::string::String;
  597    698   
}
  598    699   
  599    700   
impl ::std::convert::From<::std::string::String>
  600    701   
    for crate::constrained::MaybeConstrained<crate::model::ResourceNotFoundExceptionReason>
  601    702   
{
  602    703   
    fn from(value: ::std::string::String) -> Self {
  603    704   
        Self::Unconstrained(value)
  604    705   
    }
  605    706   
}
  606    707   
         708  +
/* RustType.kt:516 */
  607    709   
#[::pyo3::pyclass]
         710  +
/* EnumGenerator.kt:154 */
  608    711   
#[allow(missing_docs)] // documentation missing in model
         712  +
/* RustType.kt:516 */
  609    713   
#[derive(
  610    714   
    ::std::clone::Clone,
  611    715   
    ::std::cmp::Eq,
  612    716   
    ::std::cmp::Ord,
  613    717   
    ::std::cmp::PartialEq,
  614    718   
    ::std::cmp::PartialOrd,
  615    719   
    ::std::fmt::Debug,
  616    720   
    ::std::hash::Hash,
  617    721   
)]
  618         -
pub enum Status {
         722  +
pub /* EnumGenerator.kt:267 */ enum Status {
         723  +
    /* EnumGenerator.kt:154 */
  619    724   
    #[allow(missing_docs)] // documentation missing in model
         725  +
    /* EnumGenerator.kt:143 */
  620    726   
    Completed,
         727  +
    /* EnumGenerator.kt:154 */
  621    728   
    #[allow(missing_docs)] // documentation missing in model
         729  +
    /* EnumGenerator.kt:143 */
  622    730   
    Error,
         731  +
    /* EnumGenerator.kt:154 */
  623    732   
    #[allow(missing_docs)] // documentation missing in model
         733  +
    /* EnumGenerator.kt:143 */
  624    734   
    Pending,
         735  +
    /* EnumGenerator.kt:267 */
  625    736   
}
  626    737   
pub(crate) mod status_internal {
  627    738   
    #[derive(Debug, PartialEq)]
  628    739   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
  629    740   
  630    741   
    impl ::std::fmt::Display for ConstraintViolation {
  631    742   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  632    743   
            write!(
  633    744   
                f,
  634    745   
                r#"Value provided for 'com.amazonaws.ebs#Status' failed to satisfy constraint: Member must satisfy enum value set: [completed, pending, error]"#
  635    746   
            )
  636    747   
        }
  637    748   
    }
  638    749   
  639    750   
    impl ::std::error::Error for ConstraintViolation {}
         751  +
         752  +
    /* ServerEnumGenerator.kt:46 */
  640    753   
}
         754  +
/* ServerEnumGenerator.kt:85 */
  641    755   
impl ::std::convert::TryFrom<&str> for Status {
  642    756   
    type Error = crate::model::status_internal::ConstraintViolation;
  643    757   
    fn try_from(
  644    758   
        s: &str,
  645    759   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
  646    760   
        match s {
  647    761   
            "completed" => Ok(Status::Completed),
  648    762   
            "error" => Ok(Status::Error),
  649    763   
            "pending" => Ok(Status::Pending),
  650    764   
            _ => Err(crate::model::status_internal::ConstraintViolation(
  651    765   
                s.to_owned(),
  652    766   
            )),
  653    767   
        }
  654    768   
    }
  655    769   
}
  656    770   
impl ::std::convert::TryFrom<::std::string::String> for Status {
  657    771   
    type Error = crate::model::status_internal::ConstraintViolation;
  658    772   
    fn try_from(
  659    773   
        s: ::std::string::String,
  660    774   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
  661    775   
    {
  662    776   
        s.as_str().try_into()
  663    777   
    }
  664    778   
}
         779  +
/* ServerEnumGenerator.kt:145 */
  665    780   
impl std::str::FromStr for Status {
  666    781   
    type Err = crate::model::status_internal::ConstraintViolation;
  667    782   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
  668    783   
        Self::try_from(s)
  669    784   
    }
  670    785   
}
         786  +
/* EnumGenerator.kt:274 */
  671    787   
impl Status {
  672    788   
    /// Returns the `&str` value of the enum member.
  673    789   
    pub fn as_str(&self) -> &str {
  674    790   
        match self {
  675    791   
            Status::Completed => "completed",
  676    792   
            Status::Error => "error",
  677    793   
            Status::Pending => "pending",
  678    794   
        }
  679    795   
    }
  680    796   
    /// Returns all the `&str` representations of the enum members.
  681    797   
    pub const fn values() -> &'static [&'static str] {
  682    798   
        &["completed", "error", "pending"]
  683    799   
    }
  684    800   
}
         801  +
/* EnumGenerator.kt:223 */
  685    802   
impl ::std::convert::AsRef<str> for Status {
  686    803   
    fn as_ref(&self) -> &str {
  687    804   
        self.as_str()
  688    805   
    }
  689    806   
}
         807  +
/* RustType.kt:516 */
  690    808   
#[::pyo3::pymethods]
         809  +
/* PythonServerEnumGenerator.kt:41 */
  691    810   
impl Status {
  692    811   
    #[getter]
  693    812   
    pub fn name(&self) -> &str {
  694    813   
        match self {
  695    814   
            Status::Completed => "Completed",
  696    815   
            Status::Error => "Error",
  697    816   
            Status::Pending => "Pending",
  698    817   
        }
  699    818   
    }
  700    819   
    #[getter]
  701    820   
    pub fn value(&self) -> &str {
  702    821   
        self.as_str()
  703    822   
    }
  704    823   
    fn __repr__(&self) -> String {
  705    824   
        self.as_str().to_owned()
  706    825   
    }
  707    826   
    fn __str__(&self) -> String {
  708    827   
        self.as_str().to_owned()
  709    828   
    }
  710    829   
}
         830  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
  711    831   
impl crate::constrained::Constrained for Status {
  712    832   
    type Unconstrained = ::std::string::String;
  713    833   
}
  714    834   
  715    835   
impl ::std::convert::From<::std::string::String>
  716    836   
    for crate::constrained::MaybeConstrained<crate::model::Status>
  717    837   
{
  718    838   
    fn from(value: ::std::string::String) -> Self {
  719    839   
        Self::Unconstrained(value)
  720    840   
    }
  721    841   
}
  722    842   
         843  +
/* ConstrainedStringGenerator.kt:82 */
  723    844   
#[allow(missing_docs)] // documentation missing in model
  724         -
///
         845  +
/// /* ConstrainedStringGenerator.kt:83 */
  725    846   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  726    847   
/// [constraint traits]. Use [`SnapshotId::try_from`] to construct values of this type.
  727    848   
///
  728    849   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  729    850   
///
         851  +
/* RustType.kt:516 */
  730    852   
#[derive(
  731    853   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  732    854   
)]
  733         -
pub(crate) struct SnapshotId(pub(crate) ::std::string::String);
         855  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct SnapshotId(
         856  +
    pub(crate) ::std::string::String,
         857  +
);
         858  +
/* RustType.kt:516 */
  734    859   
#[allow(dead_code)]
         860  +
/* ConstrainedStringGenerator.kt:90 */
  735    861   
impl SnapshotId {
  736    862   
    /// Extracts a string slice containing the entire underlying `String`.
  737    863   
    pub fn as_str(&self) -> &str {
  738    864   
        &self.0
  739    865   
    }
  740    866   
  741    867   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
  742    868   
    pub fn inner(&self) -> &::std::string::String {
  743    869   
        &self.0
  744    870   
    }
  745    871   
  746    872   
    /// Consumes the value, returning the underlying [`::std::string::String`].
  747    873   
    pub fn into_inner(self) -> ::std::string::String {
  748    874   
        self.0
  749    875   
    }
  750    876   
}
         877  +
/* TraitInfo.kt:41 */
  751    878   
impl SnapshotId {
  752    879   
    fn check_length(
  753    880   
        string: &str,
  754    881   
    ) -> ::std::result::Result<(), crate::model::snapshot_id_internal::ConstraintViolation> {
  755    882   
        let length = string.chars().count();
  756    883   
  757    884   
        if (1..=64).contains(&length) {
  758    885   
            Ok(())
  759    886   
        } else {
  760    887   
            Err(crate::model::snapshot_id_internal::ConstraintViolation::Length(length))
  761    888   
        }
  762    889   
    }
  763    890   
  764    891   
    fn check_pattern(
  765    892   
        string: ::std::string::String,
  766    893   
    ) -> ::std::result::Result<
  767    894   
        ::std::string::String,
  768    895   
        crate::model::snapshot_id_internal::ConstraintViolation,
  769    896   
    > {
  770    897   
        let regex = Self::compile_regex();
  771    898   
  772    899   
        if regex.is_match(&string) {
  773    900   
            Ok(string)
  774    901   
        } else {
  775    902   
            Err(crate::model::snapshot_id_internal::ConstraintViolation::Pattern(string))
  776    903   
        }
  777    904   
    }
  778    905   
  779    906   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
  780    907   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
  781    908   
    pub fn compile_regex() -> &'static ::regex::Regex {
  782    909   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
  783    910   
            ::regex::Regex::new(r#"^snap-[0-9a-f]+$"#).expect(r#"The regular expression ^snap-[0-9a-f]+$ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
  784    911   
        });
  785    912   
  786    913   
        &REGEX
  787    914   
    }
  788    915   
}
         916  +
/* TraitInfo.kt:57 */
  789    917   
impl ::std::convert::TryFrom<::std::string::String> for SnapshotId {
  790    918   
    type Error = crate::model::snapshot_id_internal::ConstraintViolation;
  791    919   
  792    920   
    /// Constructs a `SnapshotId` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
  793    921   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
  794    922   
        Self::check_length(&value)?;
  795    923   
  796    924   
        let value = Self::check_pattern(value)?;
  797    925   
  798    926   
        Ok(Self(value))
  799    927   
    }
  800    928   
}
         929  +
/* ConstrainedStringGenerator.kt:112 */
  801    930   
impl crate::constrained::Constrained for SnapshotId {
  802    931   
    type Unconstrained = ::std::string::String;
  803    932   
}
  804    933   
  805    934   
impl ::std::convert::From<::std::string::String>
  806    935   
    for crate::constrained::MaybeConstrained<crate::model::SnapshotId>
  807    936   
{
  808    937   
    fn from(value: ::std::string::String) -> Self {
  809    938   
        Self::Unconstrained(value)
  810    939   
    }
  811    940   
}
  812    941   
  813    942   
impl ::std::fmt::Display for SnapshotId {
  814    943   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  815    944   
        self.0.fmt(f)
  816    945   
    }
  817    946   
}
  818    947   
  819    948   
impl ::std::convert::From<SnapshotId> for ::std::string::String {
  820    949   
    fn from(value: SnapshotId) -> Self {
  821    950   
        value.into_inner()
  822    951   
    }
  823    952   
}
  824    953   
         954  +
/* RustType.kt:516 */
  825    955   
#[cfg(test)]
         956  +
/* ConstrainedStringGenerator.kt:205 */
  826    957   
mod test_snapshot_id {
  827    958   
    #[test]
  828    959   
    fn regex_compiles() {
  829    960   
        crate::model::SnapshotId::compile_regex();
  830    961   
    }
         962  +
         963  +
    /* ConstrainedStringGenerator.kt:205 */
  831    964   
}
  832    965   
         966  +
/* ConstrainedStringGenerator.kt:82 */
  833    967   
#[allow(missing_docs)] // documentation missing in model
  834         -
///
         968  +
/// /* ConstrainedStringGenerator.kt:83 */
  835    969   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  836    970   
/// [constraint traits]. Use [`Description::try_from`] to construct values of this type.
  837    971   
///
  838    972   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  839    973   
///
         974  +
/* RustType.kt:516 */
  840    975   
#[derive(
  841    976   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  842    977   
)]
  843         -
pub(crate) struct Description(pub(crate) ::std::string::String);
         978  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct Description(
         979  +
    pub(crate) ::std::string::String,
         980  +
);
         981  +
/* RustType.kt:516 */
  844    982   
#[allow(dead_code)]
         983  +
/* ConstrainedStringGenerator.kt:90 */
  845    984   
impl Description {
  846    985   
    /// Extracts a string slice containing the entire underlying `String`.
  847    986   
    pub fn as_str(&self) -> &str {
  848    987   
        &self.0
  849    988   
    }
  850    989   
  851    990   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
  852    991   
    pub fn inner(&self) -> &::std::string::String {
  853    992   
        &self.0
  854    993   
    }
  855    994   
  856    995   
    /// Consumes the value, returning the underlying [`::std::string::String`].
  857    996   
    pub fn into_inner(self) -> ::std::string::String {
  858    997   
        self.0
  859    998   
    }
  860    999   
}
        1000  +
/* TraitInfo.kt:41 */
  861   1001   
impl Description {
  862   1002   
    fn check_length(
  863   1003   
        string: &str,
  864   1004   
    ) -> ::std::result::Result<(), crate::model::description_internal::ConstraintViolation> {
  865   1005   
        let length = string.chars().count();
  866   1006   
  867   1007   
        if (0..=255).contains(&length) {
  868   1008   
            Ok(())
  869   1009   
        } else {
  870   1010   
            Err(crate::model::description_internal::ConstraintViolation::Length(length))
  871   1011   
        }
  872   1012   
    }
  873   1013   
  874   1014   
    fn check_pattern(
  875   1015   
        string: ::std::string::String,
  876   1016   
    ) -> ::std::result::Result<
  877   1017   
        ::std::string::String,
  878   1018   
        crate::model::description_internal::ConstraintViolation,
  879   1019   
    > {
  880   1020   
        let regex = Self::compile_regex();
  881   1021   
  882   1022   
        if regex.is_match(&string) {
  883   1023   
            Ok(string)
  884   1024   
        } else {
  885   1025   
            Err(crate::model::description_internal::ConstraintViolation::Pattern(string))
  886   1026   
        }
  887   1027   
    }
  888   1028   
  889   1029   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
  890   1030   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
  891   1031   
    pub fn compile_regex() -> &'static ::regex::Regex {
  892   1032   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
  893   1033   
            ::regex::Regex::new(r#"^[\S\s]+$"#).expect(r#"The regular expression ^[\S\s]+$ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
  894   1034   
        });
  895   1035   
  896   1036   
        &REGEX
  897   1037   
    }
  898   1038   
}
        1039  +
/* TraitInfo.kt:57 */
  899   1040   
impl ::std::convert::TryFrom<::std::string::String> for Description {
  900   1041   
    type Error = crate::model::description_internal::ConstraintViolation;
  901   1042   
  902   1043   
    /// Constructs a `Description` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
  903   1044   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
  904   1045   
        Self::check_length(&value)?;
  905   1046   
  906   1047   
        let value = Self::check_pattern(value)?;
  907   1048   
  908   1049   
        Ok(Self(value))
  909   1050   
    }
  910   1051   
}
        1052  +
/* ConstrainedStringGenerator.kt:112 */
  911   1053   
impl crate::constrained::Constrained for Description {
  912   1054   
    type Unconstrained = ::std::string::String;
  913   1055   
}
  914   1056   
  915   1057   
impl ::std::convert::From<::std::string::String>
  916   1058   
    for crate::constrained::MaybeConstrained<crate::model::Description>
  917   1059   
{
  918   1060   
    fn from(value: ::std::string::String) -> Self {
  919   1061   
        Self::Unconstrained(value)
  920   1062   
    }
  921   1063   
}
  922   1064   
  923   1065   
impl ::std::fmt::Display for Description {
  924   1066   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  925   1067   
        self.0.fmt(f)
  926   1068   
    }
  927   1069   
}
  928   1070   
  929   1071   
impl ::std::convert::From<Description> for ::std::string::String {
  930   1072   
    fn from(value: Description) -> Self {
  931   1073   
        value.into_inner()
  932   1074   
    }
  933   1075   
}
  934   1076   
        1077  +
/* RustType.kt:516 */
  935   1078   
#[cfg(test)]
        1079  +
/* ConstrainedStringGenerator.kt:205 */
  936   1080   
mod test_description {
  937   1081   
    #[test]
  938   1082   
    fn regex_compiles() {
  939   1083   
        crate::model::Description::compile_regex();
  940   1084   
    }
        1085  +
        1086  +
    /* ConstrainedStringGenerator.kt:205 */
  941   1087   
}
  942   1088   
        1089  +
/* ConstrainedNumberGenerator.kt:82 */
  943   1090   
#[allow(missing_docs)] // documentation missing in model
  944         -
///
        1091  +
/// /* ConstrainedNumberGenerator.kt:83 */
  945   1092   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
  946   1093   
/// [constraint traits]. Use [`VolumeSize::try_from`] to construct values of this type.
  947   1094   
///
  948   1095   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
  949   1096   
///
        1097  +
/* RustType.kt:516 */
  950   1098   
#[derive(
  951   1099   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  952   1100   
)]
  953         -
pub(crate) struct VolumeSize(pub(crate) i64);
        1101  +
pub(crate) /* ConstrainedNumberGenerator.kt:86 */ struct VolumeSize(pub(crate) i64);
        1102  +
/* RustType.kt:516 */
  954   1103   
#[allow(dead_code)]
        1104  +
/* ConstrainedNumberGenerator.kt:91 */
  955   1105   
impl VolumeSize {
  956   1106   
    /// Returns an immutable reference to the underlying [`i64`].
  957   1107   
    pub fn inner(&self) -> &i64 {
  958   1108   
        &self.0
  959   1109   
    }
  960   1110   
  961   1111   
    /// Consumes the value, returning the underlying [`i64`].
  962   1112   
    pub fn into_inner(self) -> i64 {
  963   1113   
        self.0
  964   1114   
    }
  965   1115   
}
  966   1116   
  967   1117   
impl crate::constrained::Constrained for VolumeSize {
  968   1118   
    type Unconstrained = i64;
  969   1119   
}
  970   1120   
  971   1121   
impl ::std::convert::From<i64> for crate::constrained::MaybeConstrained<crate::model::VolumeSize> {
  972   1122   
    fn from(value: i64) -> Self {
  973   1123   
        Self::Unconstrained(value)
  974   1124   
    }
  975   1125   
}
  976   1126   
  977   1127   
impl ::std::fmt::Display for VolumeSize {
  978   1128   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
  979   1129   
        self.0.fmt(f)
  980   1130   
    }
  981   1131   
}
  982   1132   
  983   1133   
impl ::std::convert::From<VolumeSize> for i64 {
  984   1134   
    fn from(value: VolumeSize) -> Self {
  985   1135   
        value.into_inner()
  986   1136   
    }
  987   1137   
}
        1138  +
/* TraitInfo.kt:41 */
  988   1139   
impl VolumeSize {
  989   1140   
    fn check_range(
  990   1141   
        value: i64,
  991   1142   
    ) -> ::std::result::Result<(), crate::model::volume_size_internal::ConstraintViolation> {
  992   1143   
        if 1 <= value {
  993   1144   
            Ok(())
  994   1145   
        } else {
  995   1146   
            Err(crate::model::volume_size_internal::ConstraintViolation::Range(value))
  996   1147   
        }
  997   1148   
    }
  998   1149   
}
        1150  +
/* TraitInfo.kt:57 */
  999   1151   
impl ::std::convert::TryFrom<i64> for VolumeSize {
 1000   1152   
    type Error = crate::model::volume_size_internal::ConstraintViolation;
 1001   1153   
 1002   1154   
    /// Constructs a `VolumeSize` from an [`i64`], failing when the provided value does not satisfy the modeled constraints.
 1003   1155   
    fn try_from(value: i64) -> ::std::result::Result<Self, Self::Error> {
 1004   1156   
        Self::check_range(value)?;
 1005   1157   
 1006   1158   
        Ok(Self(value))
 1007   1159   
    }
 1008   1160   
}
 1009   1161   
        1162  +
/* ConstrainedStringGenerator.kt:82 */
 1010   1163   
#[allow(missing_docs)] // documentation missing in model
 1011         -
///
        1164  +
/// /* ConstrainedStringGenerator.kt:83 */
 1012   1165   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1013   1166   
/// [constraint traits]. Use [`OwnerId::try_from`] to construct values of this type.
 1014   1167   
///
 1015   1168   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1016   1169   
///
        1170  +
/* RustType.kt:516 */
 1017   1171   
#[derive(
 1018   1172   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1019   1173   
)]
 1020         -
pub(crate) struct OwnerId(pub(crate) ::std::string::String);
        1174  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct OwnerId(pub(crate) ::std::string::String);
        1175  +
/* RustType.kt:516 */
 1021   1176   
#[allow(dead_code)]
        1177  +
/* ConstrainedStringGenerator.kt:90 */
 1022   1178   
impl OwnerId {
 1023   1179   
    /// Extracts a string slice containing the entire underlying `String`.
 1024   1180   
    pub fn as_str(&self) -> &str {
 1025   1181   
        &self.0
 1026   1182   
    }
 1027   1183   
 1028   1184   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 1029   1185   
    pub fn inner(&self) -> &::std::string::String {
 1030   1186   
        &self.0
 1031   1187   
    }
 1032   1188   
 1033   1189   
    /// Consumes the value, returning the underlying [`::std::string::String`].
 1034   1190   
    pub fn into_inner(self) -> ::std::string::String {
 1035   1191   
        self.0
 1036   1192   
    }
 1037   1193   
}
        1194  +
/* TraitInfo.kt:41 */
 1038   1195   
impl OwnerId {
 1039   1196   
    fn check_length(
 1040   1197   
        string: &str,
 1041   1198   
    ) -> ::std::result::Result<(), crate::model::owner_id_internal::ConstraintViolation> {
 1042   1199   
        let length = string.chars().count();
 1043   1200   
 1044   1201   
        if (1..=24).contains(&length) {
 1045   1202   
            Ok(())
 1046   1203   
        } else {
 1047   1204   
            Err(crate::model::owner_id_internal::ConstraintViolation::Length(length))
 1048   1205   
        }
 1049   1206   
    }
 1050   1207   
 1051   1208   
    fn check_pattern(
 1052   1209   
        string: ::std::string::String,
 1053   1210   
    ) -> ::std::result::Result<
 1054   1211   
        ::std::string::String,
 1055   1212   
        crate::model::owner_id_internal::ConstraintViolation,
 1056   1213   
    > {
 1057   1214   
        let regex = Self::compile_regex();
 1058   1215   
 1059   1216   
        if regex.is_match(&string) {
 1060   1217   
            Ok(string)
 1061   1218   
        } else {
 1062   1219   
            Err(crate::model::owner_id_internal::ConstraintViolation::Pattern(string))
 1063   1220   
        }
 1064   1221   
    }
 1065   1222   
 1066   1223   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
 1067   1224   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
 1068   1225   
    pub fn compile_regex() -> &'static ::regex::Regex {
 1069   1226   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
 1070   1227   
            ::regex::Regex::new(r#"\S+"#).expect(r#"The regular expression \S+ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
 1071   1228   
        });
 1072   1229   
 1073   1230   
        &REGEX
 1074   1231   
    }
 1075   1232   
}
        1233  +
/* TraitInfo.kt:57 */
 1076   1234   
impl ::std::convert::TryFrom<::std::string::String> for OwnerId {
 1077   1235   
    type Error = crate::model::owner_id_internal::ConstraintViolation;
 1078   1236   
 1079   1237   
    /// Constructs a `OwnerId` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 1080   1238   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 1081   1239   
        Self::check_length(&value)?;
 1082   1240   
 1083   1241   
        let value = Self::check_pattern(value)?;
 1084   1242   
 1085   1243   
        Ok(Self(value))
 1086   1244   
    }
 1087   1245   
}
        1246  +
/* ConstrainedStringGenerator.kt:112 */
 1088   1247   
impl crate::constrained::Constrained for OwnerId {
 1089   1248   
    type Unconstrained = ::std::string::String;
 1090   1249   
}
 1091   1250   
 1092   1251   
impl ::std::convert::From<::std::string::String>
 1093   1252   
    for crate::constrained::MaybeConstrained<crate::model::OwnerId>
 1094   1253   
{
 1095   1254   
    fn from(value: ::std::string::String) -> Self {
 1096   1255   
        Self::Unconstrained(value)
 1097   1256   
    }
 1098   1257   
}
 1099   1258   
 1100   1259   
impl ::std::fmt::Display for OwnerId {
 1101   1260   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1102   1261   
        self.0.fmt(f)
 1103   1262   
    }
 1104   1263   
}
 1105   1264   
 1106   1265   
impl ::std::convert::From<OwnerId> for ::std::string::String {
 1107   1266   
    fn from(value: OwnerId) -> Self {
 1108   1267   
        value.into_inner()
 1109   1268   
    }
 1110   1269   
}
 1111   1270   
        1271  +
/* RustType.kt:516 */
 1112   1272   
#[cfg(test)]
        1273  +
/* ConstrainedStringGenerator.kt:205 */
 1113   1274   
mod test_owner_id {
 1114   1275   
    #[test]
 1115   1276   
    fn regex_compiles() {
 1116   1277   
        crate::model::OwnerId::compile_regex();
 1117   1278   
    }
        1279  +
        1280  +
    /* ConstrainedStringGenerator.kt:205 */
 1118   1281   
}
 1119   1282   
        1283  +
/* ConstrainedStringGenerator.kt:82 */
 1120   1284   
#[allow(missing_docs)] // documentation missing in model
 1121         -
///
        1285  +
/// /* ConstrainedStringGenerator.kt:83 */
 1122   1286   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1123   1287   
/// [constraint traits]. Use [`KmsKeyArn::try_from`] to construct values of this type.
 1124   1288   
///
 1125   1289   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1126   1290   
///
        1291  +
/* RustType.kt:516 */
 1127   1292   
#[derive(
 1128   1293   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1129   1294   
)]
 1130         -
pub(crate) struct KmsKeyArn(pub(crate) ::std::string::String);
        1295  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct KmsKeyArn(
        1296  +
    pub(crate) ::std::string::String,
        1297  +
);
        1298  +
/* RustType.kt:516 */
 1131   1299   
#[allow(dead_code)]
        1300  +
/* ConstrainedStringGenerator.kt:90 */
 1132   1301   
impl KmsKeyArn {
 1133   1302   
    /// Extracts a string slice containing the entire underlying `String`.
 1134   1303   
    pub fn as_str(&self) -> &str {
 1135   1304   
        &self.0
 1136   1305   
    }
 1137   1306   
 1138   1307   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 1139   1308   
    pub fn inner(&self) -> &::std::string::String {
 1140   1309   
        &self.0
 1141   1310   
    }
 1142   1311   
 1143   1312   
    /// Consumes the value, returning the underlying [`::std::string::String`].
 1144   1313   
    pub fn into_inner(self) -> ::std::string::String {
 1145   1314   
        self.0
 1146   1315   
    }
 1147   1316   
}
        1317  +
/* TraitInfo.kt:41 */
 1148   1318   
impl KmsKeyArn {
 1149   1319   
    fn check_length(
 1150   1320   
        string: &str,
 1151   1321   
    ) -> ::std::result::Result<(), crate::model::kms_key_arn_internal::ConstraintViolation> {
 1152   1322   
        let length = string.chars().count();
 1153   1323   
 1154   1324   
        if (1..=2048).contains(&length) {
 1155   1325   
            Ok(())
 1156   1326   
        } else {
 1157   1327   
            Err(crate::model::kms_key_arn_internal::ConstraintViolation::Length(length))
 1158   1328   
        }
 1159   1329   
    }
 1160   1330   
 1161   1331   
    fn check_pattern(
 1162   1332   
        string: ::std::string::String,
 1163   1333   
    ) -> ::std::result::Result<
 1164   1334   
        ::std::string::String,
 1165   1335   
        crate::model::kms_key_arn_internal::ConstraintViolation,
 1166   1336   
    > {
 1167   1337   
        let regex = Self::compile_regex();
 1168   1338   
 1169   1339   
        if regex.is_match(&string) {
 1170   1340   
            Ok(string)
 1171   1341   
        } else {
 1172   1342   
            Err(crate::model::kms_key_arn_internal::ConstraintViolation::Pattern(string))
 1173   1343   
        }
 1174   1344   
    }
 1175   1345   
 1176   1346   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
 1177   1347   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
 1178   1348   
    pub fn compile_regex() -> &'static ::regex::Regex {
 1179   1349   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
 1180   1350   
            ::regex::Regex::new(r#"arn:aws[a-z\-]*:kms:.*:[0-9]{12}:key/.*"#).expect(r#"The regular expression arn:aws[a-z\-]*:kms:.*:[0-9]{12}:key/.* is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
 1181   1351   
        });
 1182   1352   
 1183   1353   
        &REGEX
 1184   1354   
    }
 1185   1355   
}
        1356  +
/* TraitInfo.kt:57 */
 1186   1357   
impl ::std::convert::TryFrom<::std::string::String> for KmsKeyArn {
 1187   1358   
    type Error = crate::model::kms_key_arn_internal::ConstraintViolation;
 1188   1359   
 1189   1360   
    /// Constructs a `KmsKeyArn` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 1190   1361   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 1191   1362   
        Self::check_length(&value)?;
 1192   1363   
 1193   1364   
        let value = Self::check_pattern(value)?;
 1194   1365   
 1195   1366   
        Ok(Self(value))
 1196   1367   
    }
 1197   1368   
}
        1369  +
/* ConstrainedStringGenerator.kt:112 */
 1198   1370   
impl crate::constrained::Constrained for KmsKeyArn {
 1199   1371   
    type Unconstrained = ::std::string::String;
 1200   1372   
}
 1201   1373   
 1202   1374   
impl ::std::convert::From<::std::string::String>
 1203   1375   
    for crate::constrained::MaybeConstrained<crate::model::KmsKeyArn>
 1204   1376   
{
 1205   1377   
    fn from(value: ::std::string::String) -> Self {
 1206   1378   
        Self::Unconstrained(value)
 1207   1379   
    }
 1208   1380   
}
 1209   1381   
 1210   1382   
impl ::std::fmt::Display for KmsKeyArn {
 1211   1383   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1212   1384   
        "*** Sensitive Data Redacted ***".fmt(f)
 1213   1385   
    }
 1214   1386   
}
 1215   1387   
 1216   1388   
impl ::std::convert::From<KmsKeyArn> for ::std::string::String {
 1217   1389   
    fn from(value: KmsKeyArn) -> Self {
 1218   1390   
        value.into_inner()
 1219   1391   
    }
 1220   1392   
}
 1221   1393   
        1394  +
/* RustType.kt:516 */
 1222   1395   
#[cfg(test)]
        1396  +
/* ConstrainedStringGenerator.kt:205 */
 1223   1397   
mod test_kms_key_arn {
 1224   1398   
    #[test]
 1225   1399   
    fn regex_compiles() {
 1226   1400   
        crate::model::KmsKeyArn::compile_regex();
 1227   1401   
    }
        1402  +
        1403  +
    /* ConstrainedStringGenerator.kt:205 */
 1228   1404   
}
 1229   1405   
        1406  +
/* RustType.kt:516 */
 1230   1407   
#[::pyo3::pyclass]
        1408  +
/* PythonServerStructureGenerator.kt:63 */
 1231   1409   
/// :param key typing.Optional\[str\]:
 1232   1410   
/// :param value typing.Optional\[str\]:
 1233   1411   
/// :rtype None:
 1234         -
/// <p>Describes a tag.</p>
        1412  +
/// /* StructureGenerator.kt:197 */<p>Describes a tag.</p>
        1413  +
/* RustType.kt:516 */
 1235   1414   
#[derive(
 1236   1415   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1237   1416   
)]
 1238         -
pub struct Tag {
        1417  +
pub /* StructureGenerator.kt:201 */ struct Tag {
        1418  +
    /* RustType.kt:516 */
 1239   1419   
    #[pyo3(get, set)]
        1420  +
    /* PythonServerStructureGenerator.kt:80 */
 1240   1421   
    /// :type typing.Optional\[str\]:
 1241         -
    /// <p>The key of the tag.</p>
        1422  +
    /// /* StructureGenerator.kt:231 */<p>The key of the tag.</p>
 1242   1423   
    pub key: ::std::option::Option<::std::string::String>,
        1424  +
    /* RustType.kt:516 */
 1243   1425   
    #[pyo3(get, set)]
        1426  +
    /* PythonServerStructureGenerator.kt:80 */
 1244   1427   
    /// :type typing.Optional\[str\]:
 1245         -
    /// <p>The value of the tag.</p>
        1428  +
    /// /* StructureGenerator.kt:231 */<p>The value of the tag.</p>
 1246   1429   
    pub value: ::std::option::Option<::std::string::String>,
        1430  +
    /* StructureGenerator.kt:201 */
 1247   1431   
}
        1432  +
/* StructureGenerator.kt:135 */
 1248   1433   
impl Tag {
 1249         -
    /// <p>The key of the tag.</p>
        1434  +
    /// /* StructureGenerator.kt:231 */<p>The key of the tag.</p>
        1435  +
    /* StructureGenerator.kt:166 */
 1250   1436   
    pub fn key(&self) -> ::std::option::Option<&str> {
        1437  +
        /* StructureGenerator.kt:169 */
 1251   1438   
        self.key.as_deref()
        1439  +
        /* StructureGenerator.kt:166 */
 1252   1440   
    }
 1253         -
    /// <p>The value of the tag.</p>
        1441  +
    /// /* StructureGenerator.kt:231 */<p>The value of the tag.</p>
        1442  +
    /* StructureGenerator.kt:166 */
 1254   1443   
    pub fn value(&self) -> ::std::option::Option<&str> {
        1444  +
        /* StructureGenerator.kt:169 */
 1255   1445   
        self.value.as_deref()
        1446  +
        /* StructureGenerator.kt:166 */
 1256   1447   
    }
        1448  +
    /* StructureGenerator.kt:135 */
 1257   1449   
}
        1450  +
/* RustType.kt:516 */
 1258   1451   
#[allow(clippy::new_without_default)]
        1452  +
/* RustType.kt:516 */
 1259   1453   
#[allow(clippy::too_many_arguments)]
        1454  +
/* RustType.kt:516 */
 1260   1455   
#[::pyo3::pymethods]
        1456  +
/* PythonServerStructureGenerator.kt:88 */
 1261   1457   
impl Tag {
 1262   1458   
    #[new]
 1263   1459   
    pub fn new(
 1264   1460   
        key: ::std::option::Option<::std::string::String>,
 1265   1461   
        value: ::std::option::Option<::std::string::String>,
 1266   1462   
    ) -> Self {
 1267   1463   
        Self { key, value }
 1268   1464   
    }
 1269   1465   
    fn __repr__(&self) -> String {
 1270   1466   
        format!("{self:?}")
 1271   1467   
    }
 1272   1468   
    fn __str__(&self) -> String {
 1273   1469   
        format!("{self:?}")
 1274   1470   
    }
 1275   1471   
}
        1472  +
/* PythonServerStructureGenerator.kt:111 */
 1276   1473   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<Tag> {
 1277   1474   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 1278   1475   
        ob.extract::<Tag>().map(Box::new)
 1279   1476   
    }
 1280   1477   
}
 1281   1478   
 1282   1479   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<Tag> {
 1283   1480   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 1284   1481   
        (*self).into_py(py)
 1285   1482   
    }
 1286   1483   
}
        1484  +
/* ServerStructureConstrainedTraitImpl.kt:21 */
 1287   1485   
impl crate::constrained::Constrained for crate::model::Tag {
 1288   1486   
    type Unconstrained = crate::model::tag_internal::Builder;
 1289   1487   
}
        1488  +
/* ServerCodegenVisitor.kt:370 */
 1290   1489   
impl Tag {
 1291         -
    /// Creates a new builder-style object to manufacture [`Tag`](crate::model::Tag).
        1490  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`Tag`](crate::model::Tag).
        1491  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
 1292   1492   
    pub fn builder() -> crate::model::tag::Builder {
        1493  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
 1293   1494   
        crate::model::tag::Builder::default()
        1495  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
 1294   1496   
    }
        1497  +
    /* ServerCodegenVisitor.kt:370 */
 1295   1498   
}
 1296   1499   
        1500  +
/* ConstrainedStringGenerator.kt:82 */
 1297   1501   
#[allow(missing_docs)] // documentation missing in model
 1298         -
///
        1502  +
/// /* ConstrainedStringGenerator.kt:83 */
 1299   1503   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1300   1504   
/// [constraint traits]. Use [`TagValue::try_from`] to construct values of this type.
 1301   1505   
///
 1302   1506   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1303   1507   
///
        1508  +
/* RustType.kt:516 */
 1304   1509   
#[derive(
 1305   1510   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1306   1511   
)]
 1307         -
pub(crate) struct TagValue(pub(crate) ::std::string::String);
        1512  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct TagValue(pub(crate) ::std::string::String);
        1513  +
/* RustType.kt:516 */
 1308   1514   
#[allow(dead_code)]
        1515  +
/* ConstrainedStringGenerator.kt:90 */
 1309   1516   
impl TagValue {
 1310   1517   
    /// Extracts a string slice containing the entire underlying `String`.
 1311   1518   
    pub fn as_str(&self) -> &str {
 1312   1519   
        &self.0
 1313   1520   
    }
 1314   1521   
 1315   1522   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 1316   1523   
    pub fn inner(&self) -> &::std::string::String {
 1317   1524   
        &self.0
 1318   1525   
    }
 1319   1526   
 1320   1527   
    /// Consumes the value, returning the underlying [`::std::string::String`].
 1321   1528   
    pub fn into_inner(self) -> ::std::string::String {
 1322   1529   
        self.0
 1323   1530   
    }
 1324   1531   
}
        1532  +
/* TraitInfo.kt:41 */
 1325   1533   
impl TagValue {
 1326   1534   
    fn check_length(
 1327   1535   
        string: &str,
 1328   1536   
    ) -> ::std::result::Result<(), crate::model::tag_value_internal::ConstraintViolation> {
 1329   1537   
        let length = string.chars().count();
 1330   1538   
 1331   1539   
        if (0..=255).contains(&length) {
 1332   1540   
            Ok(())
 1333   1541   
        } else {
 1334   1542   
            Err(crate::model::tag_value_internal::ConstraintViolation::Length(length))
 1335   1543   
        }
 1336   1544   
    }
 1337   1545   
 1338   1546   
    fn check_pattern(
 1339   1547   
        string: ::std::string::String,
 1340   1548   
    ) -> ::std::result::Result<
 1341   1549   
        ::std::string::String,
 1342   1550   
        crate::model::tag_value_internal::ConstraintViolation,
 1343   1551   
    > {
 1344   1552   
        let regex = Self::compile_regex();
 1345   1553   
 1346   1554   
        if regex.is_match(&string) {
 1347   1555   
            Ok(string)
 1348   1556   
        } else {
 1349   1557   
            Err(crate::model::tag_value_internal::ConstraintViolation::Pattern(string))
 1350   1558   
        }
 1351   1559   
    }
 1352   1560   
 1353   1561   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
 1354   1562   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
 1355   1563   
    pub fn compile_regex() -> &'static ::regex::Regex {
 1356   1564   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
 1357   1565   
            ::regex::Regex::new(r#"^[\S\s]+$"#).expect(r#"The regular expression ^[\S\s]+$ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
 1358   1566   
        });
 1359   1567   
 1360   1568   
        &REGEX
 1361   1569   
    }
 1362   1570   
}
        1571  +
/* TraitInfo.kt:57 */
 1363   1572   
impl ::std::convert::TryFrom<::std::string::String> for TagValue {
 1364   1573   
    type Error = crate::model::tag_value_internal::ConstraintViolation;
 1365   1574   
 1366   1575   
    /// Constructs a `TagValue` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 1367   1576   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 1368   1577   
        Self::check_length(&value)?;
 1369   1578   
 1370   1579   
        let value = Self::check_pattern(value)?;
 1371   1580   
 1372   1581   
        Ok(Self(value))
 1373   1582   
    }
 1374   1583   
}
        1584  +
/* ConstrainedStringGenerator.kt:112 */
 1375   1585   
impl crate::constrained::Constrained for TagValue {
 1376   1586   
    type Unconstrained = ::std::string::String;
 1377   1587   
}
 1378   1588   
 1379   1589   
impl ::std::convert::From<::std::string::String>
 1380   1590   
    for crate::constrained::MaybeConstrained<crate::model::TagValue>
 1381   1591   
{
 1382   1592   
    fn from(value: ::std::string::String) -> Self {
 1383   1593   
        Self::Unconstrained(value)
 1384   1594   
    }
 1385   1595   
}
 1386   1596   
 1387   1597   
impl ::std::fmt::Display for TagValue {
 1388   1598   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1389   1599   
        self.0.fmt(f)
 1390   1600   
    }
 1391   1601   
}
 1392   1602   
 1393   1603   
impl ::std::convert::From<TagValue> for ::std::string::String {
 1394   1604   
    fn from(value: TagValue) -> Self {
 1395   1605   
        value.into_inner()
 1396   1606   
    }
 1397   1607   
}
 1398   1608   
        1609  +
/* RustType.kt:516 */
 1399   1610   
#[cfg(test)]
        1611  +
/* ConstrainedStringGenerator.kt:205 */
 1400   1612   
mod test_tag_value {
 1401   1613   
    #[test]
 1402   1614   
    fn regex_compiles() {
 1403   1615   
        crate::model::TagValue::compile_regex();
 1404   1616   
    }
        1617  +
        1618  +
    /* ConstrainedStringGenerator.kt:205 */
 1405   1619   
}
 1406   1620   
        1621  +
/* ConstrainedStringGenerator.kt:82 */
 1407   1622   
#[allow(missing_docs)] // documentation missing in model
 1408         -
///
        1623  +
/// /* ConstrainedStringGenerator.kt:83 */
 1409   1624   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1410   1625   
/// [constraint traits]. Use [`TagKey::try_from`] to construct values of this type.
 1411   1626   
///
 1412   1627   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1413   1628   
///
        1629  +
/* RustType.kt:516 */
 1414   1630   
#[derive(
 1415   1631   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1416   1632   
)]
 1417         -
pub(crate) struct TagKey(pub(crate) ::std::string::String);
        1633  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct TagKey(pub(crate) ::std::string::String);
        1634  +
/* RustType.kt:516 */
 1418   1635   
#[allow(dead_code)]
        1636  +
/* ConstrainedStringGenerator.kt:90 */
 1419   1637   
impl TagKey {
 1420   1638   
    /// Extracts a string slice containing the entire underlying `String`.
 1421   1639   
    pub fn as_str(&self) -> &str {
 1422   1640   
        &self.0
 1423   1641   
    }
 1424   1642   
 1425   1643   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 1426   1644   
    pub fn inner(&self) -> &::std::string::String {
 1427   1645   
        &self.0
 1428   1646   
    }
 1429   1647   
 1430   1648   
    /// Consumes the value, returning the underlying [`::std::string::String`].
 1431   1649   
    pub fn into_inner(self) -> ::std::string::String {
 1432   1650   
        self.0
 1433   1651   
    }
 1434   1652   
}
        1653  +
/* TraitInfo.kt:41 */
 1435   1654   
impl TagKey {
 1436   1655   
    fn check_length(
 1437   1656   
        string: &str,
 1438   1657   
    ) -> ::std::result::Result<(), crate::model::tag_key_internal::ConstraintViolation> {
 1439   1658   
        let length = string.chars().count();
 1440   1659   
 1441   1660   
        if (0..=127).contains(&length) {
 1442   1661   
            Ok(())
 1443   1662   
        } else {
 1444   1663   
            Err(crate::model::tag_key_internal::ConstraintViolation::Length(
 1445   1664   
                length,
 1446   1665   
            ))
 1447   1666   
        }
 1448   1667   
    }
 1449   1668   
 1450   1669   
    fn check_pattern(
 1451   1670   
        string: ::std::string::String,
 1452   1671   
    ) -> ::std::result::Result<
 1453   1672   
        ::std::string::String,
 1454   1673   
        crate::model::tag_key_internal::ConstraintViolation,
 1455   1674   
    > {
 1456   1675   
        let regex = Self::compile_regex();
 1457   1676   
 1458   1677   
        if regex.is_match(&string) {
 1459   1678   
            Ok(string)
 1460   1679   
        } else {
 1461   1680   
            Err(crate::model::tag_key_internal::ConstraintViolation::Pattern(string))
 1462   1681   
        }
 1463   1682   
    }
 1464   1683   
 1465   1684   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
 1466   1685   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
 1467   1686   
    pub fn compile_regex() -> &'static ::regex::Regex {
 1468   1687   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
 1469   1688   
            ::regex::Regex::new(r#"^[\S\s]+$"#).expect(r#"The regular expression ^[\S\s]+$ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
 1470   1689   
        });
 1471   1690   
 1472   1691   
        &REGEX
 1473   1692   
    }
 1474   1693   
}
        1694  +
/* TraitInfo.kt:57 */
 1475   1695   
impl ::std::convert::TryFrom<::std::string::String> for TagKey {
 1476   1696   
    type Error = crate::model::tag_key_internal::ConstraintViolation;
 1477   1697   
 1478   1698   
    /// Constructs a `TagKey` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 1479   1699   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 1480   1700   
        Self::check_length(&value)?;
 1481   1701   
 1482   1702   
        let value = Self::check_pattern(value)?;
 1483   1703   
 1484   1704   
        Ok(Self(value))
 1485   1705   
    }
 1486   1706   
}
        1707  +
/* ConstrainedStringGenerator.kt:112 */
 1487   1708   
impl crate::constrained::Constrained for TagKey {
 1488   1709   
    type Unconstrained = ::std::string::String;
 1489   1710   
}
 1490   1711   
 1491   1712   
impl ::std::convert::From<::std::string::String>
 1492   1713   
    for crate::constrained::MaybeConstrained<crate::model::TagKey>
 1493   1714   
{
 1494   1715   
    fn from(value: ::std::string::String) -> Self {
 1495   1716   
        Self::Unconstrained(value)
 1496   1717   
    }
 1497   1718   
}
 1498   1719   
 1499   1720   
impl ::std::fmt::Display for TagKey {
 1500   1721   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1501   1722   
        self.0.fmt(f)
 1502   1723   
    }
 1503   1724   
}
 1504   1725   
 1505   1726   
impl ::std::convert::From<TagKey> for ::std::string::String {
 1506   1727   
    fn from(value: TagKey) -> Self {
 1507   1728   
        value.into_inner()
 1508   1729   
    }
 1509   1730   
}
 1510   1731   
        1732  +
/* RustType.kt:516 */
 1511   1733   
#[cfg(test)]
        1734  +
/* ConstrainedStringGenerator.kt:205 */
 1512   1735   
mod test_tag_key {
 1513   1736   
    #[test]
 1514   1737   
    fn regex_compiles() {
 1515   1738   
        crate::model::TagKey::compile_regex();
 1516   1739   
    }
        1740  +
        1741  +
    /* ConstrainedStringGenerator.kt:205 */
 1517   1742   
}
 1518   1743   
        1744  +
/* ConstrainedStringGenerator.kt:82 */
 1519   1745   
#[allow(missing_docs)] // documentation missing in model
 1520         -
///
        1746  +
/// /* ConstrainedStringGenerator.kt:83 */
 1521   1747   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1522   1748   
/// [constraint traits]. Use [`IdempotencyToken::try_from`] to construct values of this type.
 1523   1749   
///
 1524   1750   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1525   1751   
///
        1752  +
/* RustType.kt:516 */
 1526   1753   
#[derive(
 1527   1754   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1528   1755   
)]
 1529         -
pub(crate) struct IdempotencyToken(pub(crate) ::std::string::String);
        1756  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct IdempotencyToken(
        1757  +
    pub(crate) ::std::string::String,
        1758  +
);
        1759  +
/* RustType.kt:516 */
 1530   1760   
#[allow(dead_code)]
        1761  +
/* ConstrainedStringGenerator.kt:90 */
 1531   1762   
impl IdempotencyToken {
 1532   1763   
    /// Extracts a string slice containing the entire underlying `String`.
 1533   1764   
    pub fn as_str(&self) -> &str {
 1534   1765   
        &self.0
 1535   1766   
    }
 1536   1767   
 1537   1768   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 1538   1769   
    pub fn inner(&self) -> &::std::string::String {
 1539   1770   
        &self.0
 1540   1771   
    }
 1541   1772   
 1542   1773   
    /// Consumes the value, returning the underlying [`::std::string::String`].
 1543   1774   
    pub fn into_inner(self) -> ::std::string::String {
 1544   1775   
        self.0
 1545   1776   
    }
 1546   1777   
}
        1778  +
/* TraitInfo.kt:41 */
 1547   1779   
impl IdempotencyToken {
 1548   1780   
    fn check_length(
 1549   1781   
        string: &str,
 1550   1782   
    ) -> ::std::result::Result<(), crate::model::idempotency_token_internal::ConstraintViolation>
 1551   1783   
    {
 1552   1784   
        let length = string.chars().count();
 1553   1785   
 1554   1786   
        if (0..=255).contains(&length) {
 1555   1787   
            Ok(())
 1556   1788   
        } else {
 1557   1789   
            Err(crate::model::idempotency_token_internal::ConstraintViolation::Length(length))
 1558   1790   
        }
 1559   1791   
    }
 1560   1792   
 1561   1793   
    fn check_pattern(
 1562   1794   
        string: ::std::string::String,
 1563   1795   
    ) -> ::std::result::Result<
 1564   1796   
        ::std::string::String,
 1565   1797   
        crate::model::idempotency_token_internal::ConstraintViolation,
 1566   1798   
    > {
 1567   1799   
        let regex = Self::compile_regex();
 1568   1800   
 1569   1801   
        if regex.is_match(&string) {
 1570   1802   
            Ok(string)
 1571   1803   
        } else {
 1572   1804   
            Err(crate::model::idempotency_token_internal::ConstraintViolation::Pattern(string))
 1573   1805   
        }
 1574   1806   
    }
 1575   1807   
 1576   1808   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
 1577   1809   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
 1578   1810   
    pub fn compile_regex() -> &'static ::regex::Regex {
 1579   1811   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
 1580   1812   
            ::regex::Regex::new(r#"^[\S]+$"#).expect(r#"The regular expression ^[\S]+$ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
 1581   1813   
        });
 1582   1814   
 1583   1815   
        &REGEX
 1584   1816   
    }
 1585   1817   
}
        1818  +
/* TraitInfo.kt:57 */
 1586   1819   
impl ::std::convert::TryFrom<::std::string::String> for IdempotencyToken {
 1587   1820   
    type Error = crate::model::idempotency_token_internal::ConstraintViolation;
 1588   1821   
 1589   1822   
    /// Constructs a `IdempotencyToken` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 1590   1823   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 1591   1824   
        Self::check_length(&value)?;
 1592   1825   
 1593   1826   
        let value = Self::check_pattern(value)?;
 1594   1827   
 1595   1828   
        Ok(Self(value))
 1596   1829   
    }
 1597   1830   
}
        1831  +
/* ConstrainedStringGenerator.kt:112 */
 1598   1832   
impl crate::constrained::Constrained for IdempotencyToken {
 1599   1833   
    type Unconstrained = ::std::string::String;
 1600   1834   
}
 1601   1835   
 1602   1836   
impl ::std::convert::From<::std::string::String>
 1603   1837   
    for crate::constrained::MaybeConstrained<crate::model::IdempotencyToken>
 1604   1838   
{
 1605   1839   
    fn from(value: ::std::string::String) -> Self {
 1606   1840   
        Self::Unconstrained(value)
 1607   1841   
    }
 1608   1842   
}
 1609   1843   
 1610   1844   
impl ::std::fmt::Display for IdempotencyToken {
 1611   1845   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1612   1846   
        self.0.fmt(f)
 1613   1847   
    }
 1614   1848   
}
 1615   1849   
 1616   1850   
impl ::std::convert::From<IdempotencyToken> for ::std::string::String {
 1617   1851   
    fn from(value: IdempotencyToken) -> Self {
 1618   1852   
        value.into_inner()
 1619   1853   
    }
 1620   1854   
}
 1621   1855   
        1856  +
/* RustType.kt:516 */
 1622   1857   
#[cfg(test)]
        1858  +
/* ConstrainedStringGenerator.kt:205 */
 1623   1859   
mod test_idempotency_token {
 1624   1860   
    #[test]
 1625   1861   
    fn regex_compiles() {
 1626   1862   
        crate::model::IdempotencyToken::compile_regex();
 1627   1863   
    }
        1864  +
        1865  +
    /* ConstrainedStringGenerator.kt:205 */
 1628   1866   
}
 1629   1867   
        1868  +
/* ConstrainedNumberGenerator.kt:82 */
 1630   1869   
#[allow(missing_docs)] // documentation missing in model
 1631         -
///
        1870  +
/// /* ConstrainedNumberGenerator.kt:83 */
 1632   1871   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1633   1872   
/// [constraint traits]. Use [`Timeout::try_from`] to construct values of this type.
 1634   1873   
///
 1635   1874   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1636   1875   
///
        1876  +
/* RustType.kt:516 */
 1637   1877   
#[derive(
 1638   1878   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1639   1879   
)]
 1640         -
pub(crate) struct Timeout(pub(crate) i32);
        1880  +
pub(crate) /* ConstrainedNumberGenerator.kt:86 */ struct Timeout(pub(crate) i32);
        1881  +
/* RustType.kt:516 */
 1641   1882   
#[allow(dead_code)]
        1883  +
/* ConstrainedNumberGenerator.kt:91 */
 1642   1884   
impl Timeout {
 1643   1885   
    /// Returns an immutable reference to the underlying [`i32`].
 1644   1886   
    pub fn inner(&self) -> &i32 {
 1645   1887   
        &self.0
 1646   1888   
    }
 1647   1889   
 1648   1890   
    /// Consumes the value, returning the underlying [`i32`].
 1649   1891   
    pub fn into_inner(self) -> i32 {
 1650   1892   
        self.0
 1651   1893   
    }
 1652   1894   
}
 1653   1895   
 1654   1896   
impl crate::constrained::Constrained for Timeout {
 1655   1897   
    type Unconstrained = i32;
 1656   1898   
}
 1657   1899   
 1658   1900   
impl ::std::convert::From<i32> for crate::constrained::MaybeConstrained<crate::model::Timeout> {
 1659   1901   
    fn from(value: i32) -> Self {
 1660   1902   
        Self::Unconstrained(value)
 1661   1903   
    }
 1662   1904   
}
 1663   1905   
 1664   1906   
impl ::std::fmt::Display for Timeout {
 1665   1907   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1666   1908   
        self.0.fmt(f)
 1667   1909   
    }
 1668   1910   
}
 1669   1911   
 1670   1912   
impl ::std::convert::From<Timeout> for i32 {
 1671   1913   
    fn from(value: Timeout) -> Self {
 1672   1914   
        value.into_inner()
 1673   1915   
    }
 1674   1916   
}
        1917  +
/* TraitInfo.kt:41 */
 1675   1918   
impl Timeout {
 1676   1919   
    fn check_range(
 1677   1920   
        value: i32,
 1678   1921   
    ) -> ::std::result::Result<(), crate::model::timeout_internal::ConstraintViolation> {
 1679   1922   
        if (10..=60).contains(&value) {
 1680   1923   
            Ok(())
 1681   1924   
        } else {
 1682   1925   
            Err(crate::model::timeout_internal::ConstraintViolation::Range(
 1683   1926   
                value,
 1684   1927   
            ))
 1685   1928   
        }
 1686   1929   
    }
 1687   1930   
}
        1931  +
/* TraitInfo.kt:57 */
 1688   1932   
impl ::std::convert::TryFrom<i32> for Timeout {
 1689   1933   
    type Error = crate::model::timeout_internal::ConstraintViolation;
 1690   1934   
 1691   1935   
    /// Constructs a `Timeout` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
 1692   1936   
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 1693   1937   
        Self::check_range(value)?;
 1694   1938   
 1695   1939   
        Ok(Self(value))
 1696   1940   
    }
 1697   1941   
}
 1698   1942   
        1943  +
/* ConstrainedStringGenerator.kt:82 */
 1699   1944   
#[allow(missing_docs)] // documentation missing in model
 1700         -
///
        1945  +
/// /* ConstrainedStringGenerator.kt:83 */
 1701   1946   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1702   1947   
/// [constraint traits]. Use [`Checksum::try_from`] to construct values of this type.
 1703   1948   
///
 1704   1949   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1705   1950   
///
        1951  +
/* RustType.kt:516 */
 1706   1952   
#[derive(
 1707   1953   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1708   1954   
)]
 1709         -
pub(crate) struct Checksum(pub(crate) ::std::string::String);
        1955  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct Checksum(pub(crate) ::std::string::String);
        1956  +
/* RustType.kt:516 */
 1710   1957   
#[allow(dead_code)]
        1958  +
/* ConstrainedStringGenerator.kt:90 */
 1711   1959   
impl Checksum {
 1712   1960   
    /// Extracts a string slice containing the entire underlying `String`.
 1713   1961   
    pub fn as_str(&self) -> &str {
 1714   1962   
        &self.0
 1715   1963   
    }
 1716   1964   
 1717   1965   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 1718   1966   
    pub fn inner(&self) -> &::std::string::String {
 1719   1967   
        &self.0
 1720   1968   
    }
 1721   1969   
 1722   1970   
    /// Consumes the value, returning the underlying [`::std::string::String`].
 1723   1971   
    pub fn into_inner(self) -> ::std::string::String {
 1724   1972   
        self.0
 1725   1973   
    }
 1726   1974   
}
        1975  +
/* TraitInfo.kt:41 */
 1727   1976   
impl Checksum {
 1728   1977   
    fn check_length(
 1729   1978   
        string: &str,
 1730   1979   
    ) -> ::std::result::Result<(), crate::model::checksum_internal::ConstraintViolation> {
 1731   1980   
        let length = string.chars().count();
 1732   1981   
 1733   1982   
        if (0..=64).contains(&length) {
 1734   1983   
            Ok(())
 1735   1984   
        } else {
 1736   1985   
            Err(crate::model::checksum_internal::ConstraintViolation::Length(length))
 1737   1986   
        }
 1738   1987   
    }
 1739   1988   
 1740   1989   
    fn check_pattern(
 1741   1990   
        string: ::std::string::String,
 1742   1991   
    ) -> ::std::result::Result<
 1743   1992   
        ::std::string::String,
 1744   1993   
        crate::model::checksum_internal::ConstraintViolation,
 1745   1994   
    > {
 1746   1995   
        let regex = Self::compile_regex();
 1747   1996   
 1748   1997   
        if regex.is_match(&string) {
 1749   1998   
            Ok(string)
 1750   1999   
        } else {
 1751   2000   
            Err(crate::model::checksum_internal::ConstraintViolation::Pattern(string))
 1752   2001   
        }
 1753   2002   
    }
 1754   2003   
 1755   2004   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
 1756   2005   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
 1757   2006   
    pub fn compile_regex() -> &'static ::regex::Regex {
 1758   2007   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
 1759   2008   
            ::regex::Regex::new(r#"^[A-Za-z0-9+/=]+$"#).expect(r#"The regular expression ^[A-Za-z0-9+/=]+$ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
 1760   2009   
        });
 1761   2010   
 1762   2011   
        &REGEX
 1763   2012   
    }
 1764   2013   
}
        2014  +
/* TraitInfo.kt:57 */
 1765   2015   
impl ::std::convert::TryFrom<::std::string::String> for Checksum {
 1766   2016   
    type Error = crate::model::checksum_internal::ConstraintViolation;
 1767   2017   
 1768   2018   
    /// Constructs a `Checksum` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 1769   2019   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 1770   2020   
        Self::check_length(&value)?;
 1771   2021   
 1772   2022   
        let value = Self::check_pattern(value)?;
 1773   2023   
 1774   2024   
        Ok(Self(value))
 1775   2025   
    }
 1776   2026   
}
        2027  +
/* ConstrainedStringGenerator.kt:112 */
 1777   2028   
impl crate::constrained::Constrained for Checksum {
 1778   2029   
    type Unconstrained = ::std::string::String;
 1779   2030   
}
 1780   2031   
 1781   2032   
impl ::std::convert::From<::std::string::String>
 1782   2033   
    for crate::constrained::MaybeConstrained<crate::model::Checksum>
 1783   2034   
{
 1784   2035   
    fn from(value: ::std::string::String) -> Self {
 1785   2036   
        Self::Unconstrained(value)
 1786   2037   
    }
 1787   2038   
}
 1788   2039   
 1789   2040   
impl ::std::fmt::Display for Checksum {
 1790   2041   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1791   2042   
        self.0.fmt(f)
 1792   2043   
    }
 1793   2044   
}
 1794   2045   
 1795   2046   
impl ::std::convert::From<Checksum> for ::std::string::String {
 1796   2047   
    fn from(value: Checksum) -> Self {
 1797   2048   
        value.into_inner()
 1798   2049   
    }
 1799   2050   
}
 1800   2051   
        2052  +
/* RustType.kt:516 */
 1801   2053   
#[cfg(test)]
        2054  +
/* ConstrainedStringGenerator.kt:205 */
 1802   2055   
mod test_checksum {
 1803   2056   
    #[test]
 1804   2057   
    fn regex_compiles() {
 1805   2058   
        crate::model::Checksum::compile_regex();
 1806   2059   
    }
        2060  +
        2061  +
    /* ConstrainedStringGenerator.kt:205 */
 1807   2062   
}
 1808   2063   
        2064  +
/* RustType.kt:516 */
 1809   2065   
#[::pyo3::pyclass]
        2066  +
/* EnumGenerator.kt:154 */
 1810   2067   
#[allow(missing_docs)] // documentation missing in model
        2068  +
/* RustType.kt:516 */
 1811   2069   
#[derive(
 1812   2070   
    ::std::clone::Clone,
 1813   2071   
    ::std::cmp::Eq,
 1814   2072   
    ::std::cmp::Ord,
 1815   2073   
    ::std::cmp::PartialEq,
 1816   2074   
    ::std::cmp::PartialOrd,
 1817   2075   
    ::std::fmt::Debug,
 1818   2076   
    ::std::hash::Hash,
 1819   2077   
)]
 1820         -
pub enum ChecksumAlgorithm {
        2078  +
pub /* EnumGenerator.kt:267 */ enum ChecksumAlgorithm {
        2079  +
    /* EnumGenerator.kt:154 */
 1821   2080   
    #[allow(missing_docs)] // documentation missing in model
        2081  +
    /* EnumGenerator.kt:143 */
 1822   2082   
    ChecksumAlgorithmSha256,
        2083  +
    /* EnumGenerator.kt:267 */
 1823   2084   
}
 1824   2085   
pub(crate) mod checksum_algorithm_internal {
 1825   2086   
    #[derive(Debug, PartialEq)]
 1826   2087   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
 1827   2088   
 1828   2089   
    impl ::std::fmt::Display for ConstraintViolation {
 1829   2090   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1830   2091   
            write!(
 1831   2092   
                f,
 1832   2093   
                r#"Value provided for 'com.amazonaws.ebs#ChecksumAlgorithm' failed to satisfy constraint: Member must satisfy enum value set: [SHA256]"#
 1833   2094   
            )
 1834   2095   
        }
 1835   2096   
    }
 1836   2097   
 1837   2098   
    impl ::std::error::Error for ConstraintViolation {}
 1838   2099   
    impl ConstraintViolation {
 1839   2100   
        pub(crate) fn as_validation_exception_field(
 1840   2101   
            self,
 1841   2102   
            path: ::std::string::String,
 1842   2103   
        ) -> crate::model::ValidationExceptionField {
 1843   2104   
            crate::model::ValidationExceptionField {
 1844   2105   
                message: format!(
 1845   2106   
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [SHA256]"#,
 1846   2107   
                    &path
 1847   2108   
                ),
 1848   2109   
                path,
 1849   2110   
            }
 1850   2111   
        }
 1851   2112   
    }
        2113  +
        2114  +
    /* ServerEnumGenerator.kt:46 */
 1852   2115   
}
        2116  +
/* ServerEnumGenerator.kt:85 */
 1853   2117   
impl ::std::convert::TryFrom<&str> for ChecksumAlgorithm {
 1854   2118   
    type Error = crate::model::checksum_algorithm_internal::ConstraintViolation;
 1855   2119   
    fn try_from(
 1856   2120   
        s: &str,
 1857   2121   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
 1858   2122   
        match s {
 1859   2123   
            "SHA256" => Ok(ChecksumAlgorithm::ChecksumAlgorithmSha256),
 1860   2124   
            _ => Err(crate::model::checksum_algorithm_internal::ConstraintViolation(s.to_owned())),
 1861   2125   
        }
 1862   2126   
    }
 1863   2127   
}
 1864   2128   
impl ::std::convert::TryFrom<::std::string::String> for ChecksumAlgorithm {
 1865   2129   
    type Error = crate::model::checksum_algorithm_internal::ConstraintViolation;
 1866   2130   
    fn try_from(
 1867   2131   
        s: ::std::string::String,
 1868   2132   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
 1869   2133   
    {
 1870   2134   
        s.as_str().try_into()
 1871   2135   
    }
 1872   2136   
}
        2137  +
/* ServerEnumGenerator.kt:145 */
 1873   2138   
impl std::str::FromStr for ChecksumAlgorithm {
 1874   2139   
    type Err = crate::model::checksum_algorithm_internal::ConstraintViolation;
 1875   2140   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
 1876   2141   
        Self::try_from(s)
 1877   2142   
    }
 1878   2143   
}
        2144  +
/* EnumGenerator.kt:274 */
 1879   2145   
impl ChecksumAlgorithm {
 1880   2146   
    /// Returns the `&str` value of the enum member.
 1881   2147   
    pub fn as_str(&self) -> &str {
 1882   2148   
        match self {
 1883   2149   
            ChecksumAlgorithm::ChecksumAlgorithmSha256 => "SHA256",
 1884   2150   
        }
 1885   2151   
    }
 1886   2152   
    /// Returns all the `&str` representations of the enum members.
 1887   2153   
    pub const fn values() -> &'static [&'static str] {
 1888   2154   
        &["SHA256"]
 1889   2155   
    }
 1890   2156   
}
        2157  +
/* EnumGenerator.kt:223 */
 1891   2158   
impl ::std::convert::AsRef<str> for ChecksumAlgorithm {
 1892   2159   
    fn as_ref(&self) -> &str {
 1893   2160   
        self.as_str()
 1894   2161   
    }
 1895   2162   
}
        2163  +
/* RustType.kt:516 */
 1896   2164   
#[::pyo3::pymethods]
        2165  +
/* PythonServerEnumGenerator.kt:41 */
 1897   2166   
impl ChecksumAlgorithm {
 1898   2167   
    #[getter]
 1899   2168   
    pub fn name(&self) -> &str {
 1900   2169   
        match self {
 1901   2170   
            ChecksumAlgorithm::ChecksumAlgorithmSha256 => "ChecksumAlgorithmSha256",
 1902   2171   
        }
 1903   2172   
    }
 1904   2173   
    #[getter]
 1905   2174   
    pub fn value(&self) -> &str {
 1906   2175   
        self.as_str()
 1907   2176   
    }
 1908   2177   
    fn __repr__(&self) -> String {
 1909   2178   
        self.as_str().to_owned()
 1910   2179   
    }
 1911   2180   
    fn __str__(&self) -> String {
 1912   2181   
        self.as_str().to_owned()
 1913   2182   
    }
 1914   2183   
}
        2184  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
 1915   2185   
impl crate::constrained::Constrained for ChecksumAlgorithm {
 1916   2186   
    type Unconstrained = ::std::string::String;
 1917   2187   
}
 1918   2188   
 1919   2189   
impl ::std::convert::From<::std::string::String>
 1920   2190   
    for crate::constrained::MaybeConstrained<crate::model::ChecksumAlgorithm>
 1921   2191   
{
 1922   2192   
    fn from(value: ::std::string::String) -> Self {
 1923   2193   
        Self::Unconstrained(value)
 1924   2194   
    }
 1925   2195   
}
 1926   2196   
        2197  +
/* ConstrainedNumberGenerator.kt:82 */
 1927   2198   
#[allow(missing_docs)] // documentation missing in model
 1928         -
///
        2199  +
/// /* ConstrainedNumberGenerator.kt:83 */
 1929   2200   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1930   2201   
/// [constraint traits]. Use [`Progress::try_from`] to construct values of this type.
 1931   2202   
///
 1932   2203   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 1933   2204   
///
        2205  +
/* RustType.kt:516 */
 1934   2206   
#[derive(
 1935   2207   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 1936   2208   
)]
 1937         -
pub(crate) struct Progress(pub(crate) i32);
        2209  +
pub(crate) /* ConstrainedNumberGenerator.kt:86 */ struct Progress(pub(crate) i32);
        2210  +
/* RustType.kt:516 */
 1938   2211   
#[allow(dead_code)]
        2212  +
/* ConstrainedNumberGenerator.kt:91 */
 1939   2213   
impl Progress {
 1940   2214   
    /// Returns an immutable reference to the underlying [`i32`].
 1941   2215   
    pub fn inner(&self) -> &i32 {
 1942   2216   
        &self.0
 1943   2217   
    }
 1944   2218   
 1945   2219   
    /// Consumes the value, returning the underlying [`i32`].
 1946   2220   
    pub fn into_inner(self) -> i32 {
 1947   2221   
        self.0
 1948   2222   
    }
 1949   2223   
}
 1950   2224   
 1951   2225   
impl crate::constrained::Constrained for Progress {
 1952   2226   
    type Unconstrained = i32;
 1953   2227   
}
 1954   2228   
 1955   2229   
impl ::std::convert::From<i32> for crate::constrained::MaybeConstrained<crate::model::Progress> {
 1956   2230   
    fn from(value: i32) -> Self {
 1957   2231   
        Self::Unconstrained(value)
 1958   2232   
    }
 1959   2233   
}
 1960   2234   
 1961   2235   
impl ::std::fmt::Display for Progress {
 1962   2236   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 1963   2237   
        self.0.fmt(f)
 1964   2238   
    }
 1965   2239   
}
 1966   2240   
 1967   2241   
impl ::std::convert::From<Progress> for i32 {
 1968   2242   
    fn from(value: Progress) -> Self {
 1969   2243   
        value.into_inner()
 1970   2244   
    }
 1971   2245   
}
        2246  +
/* TraitInfo.kt:41 */
 1972   2247   
impl Progress {
 1973   2248   
    fn check_range(
 1974   2249   
        value: i32,
 1975   2250   
    ) -> ::std::result::Result<(), crate::model::progress_internal::ConstraintViolation> {
 1976   2251   
        if (0..=100).contains(&value) {
 1977   2252   
            Ok(())
 1978   2253   
        } else {
 1979   2254   
            Err(crate::model::progress_internal::ConstraintViolation::Range(
 1980   2255   
                value,
 1981   2256   
            ))
 1982   2257   
        }
 1983   2258   
    }
 1984   2259   
}
        2260  +
/* TraitInfo.kt:57 */
 1985   2261   
impl ::std::convert::TryFrom<i32> for Progress {
 1986   2262   
    type Error = crate::model::progress_internal::ConstraintViolation;
 1987   2263   
 1988   2264   
    /// Constructs a `Progress` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
 1989   2265   
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 1990   2266   
        Self::check_range(value)?;
 1991   2267   
 1992   2268   
        Ok(Self(value))
 1993   2269   
    }
 1994   2270   
}
 1995   2271   
        2272  +
/* ConstrainedNumberGenerator.kt:82 */
 1996   2273   
#[allow(missing_docs)] // documentation missing in model
 1997         -
///
        2274  +
/// /* ConstrainedNumberGenerator.kt:83 */
 1998   2275   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 1999   2276   
/// [constraint traits]. Use [`BlockIndex::try_from`] to construct values of this type.
 2000   2277   
///
 2001   2278   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2002   2279   
///
        2280  +
/* RustType.kt:516 */
 2003   2281   
#[derive(
 2004   2282   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2005   2283   
)]
 2006         -
pub(crate) struct BlockIndex(pub(crate) i32);
        2284  +
pub(crate) /* ConstrainedNumberGenerator.kt:86 */ struct BlockIndex(pub(crate) i32);
        2285  +
/* RustType.kt:516 */
 2007   2286   
#[allow(dead_code)]
        2287  +
/* ConstrainedNumberGenerator.kt:91 */
 2008   2288   
impl BlockIndex {
 2009   2289   
    /// Returns an immutable reference to the underlying [`i32`].
 2010   2290   
    pub fn inner(&self) -> &i32 {
 2011   2291   
        &self.0
 2012   2292   
    }
 2013   2293   
 2014   2294   
    /// Consumes the value, returning the underlying [`i32`].
 2015   2295   
    pub fn into_inner(self) -> i32 {
 2016   2296   
        self.0
 2017   2297   
    }
 2018   2298   
}
 2019   2299   
 2020   2300   
impl crate::constrained::Constrained for BlockIndex {
 2021   2301   
    type Unconstrained = i32;
 2022   2302   
}
 2023   2303   
 2024   2304   
impl ::std::convert::From<i32> for crate::constrained::MaybeConstrained<crate::model::BlockIndex> {
 2025   2305   
    fn from(value: i32) -> Self {
 2026   2306   
        Self::Unconstrained(value)
 2027   2307   
    }
 2028   2308   
}
 2029   2309   
 2030   2310   
impl ::std::fmt::Display for BlockIndex {
 2031   2311   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2032   2312   
        self.0.fmt(f)
 2033   2313   
    }
 2034   2314   
}
 2035   2315   
 2036   2316   
impl ::std::convert::From<BlockIndex> for i32 {
 2037   2317   
    fn from(value: BlockIndex) -> Self {
 2038   2318   
        value.into_inner()
 2039   2319   
    }
 2040   2320   
}
        2321  +
/* TraitInfo.kt:41 */
 2041   2322   
impl BlockIndex {
 2042   2323   
    fn check_range(
 2043   2324   
        value: i32,
 2044   2325   
    ) -> ::std::result::Result<(), crate::model::block_index_internal::ConstraintViolation> {
 2045   2326   
        if 0 <= value {
 2046   2327   
            Ok(())
 2047   2328   
        } else {
 2048   2329   
            Err(crate::model::block_index_internal::ConstraintViolation::Range(value))
 2049   2330   
        }
 2050   2331   
    }
 2051   2332   
}
        2333  +
/* TraitInfo.kt:57 */
 2052   2334   
impl ::std::convert::TryFrom<i32> for BlockIndex {
 2053   2335   
    type Error = crate::model::block_index_internal::ConstraintViolation;
 2054   2336   
 2055   2337   
    /// Constructs a `BlockIndex` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
 2056   2338   
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 2057   2339   
        Self::check_range(value)?;
 2058   2340   
 2059   2341   
        Ok(Self(value))
 2060   2342   
    }
 2061   2343   
}
 2062   2344   
        2345  +
/* RustType.kt:516 */
 2063   2346   
#[::pyo3::pyclass]
        2347  +
/* PythonServerStructureGenerator.kt:63 */
 2064   2348   
/// :param block_token typing.Optional\[str\]:
 2065   2349   
/// :param block_index typing.Optional\[int\]:
 2066   2350   
/// :rtype None:
 2067         -
/// <p>A block of data in an Amazon Elastic Block Store snapshot.</p>
        2351  +
/// /* StructureGenerator.kt:197 */<p>A block of data in an Amazon Elastic Block Store snapshot.</p>
        2352  +
/* RustType.kt:516 */
 2068   2353   
#[derive(
 2069   2354   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2070   2355   
)]
 2071         -
pub struct Block {
        2356  +
pub /* StructureGenerator.kt:201 */ struct Block {
        2357  +
    /* RustType.kt:516 */
 2072   2358   
    #[pyo3(get, set)]
        2359  +
    /* PythonServerStructureGenerator.kt:80 */
 2073   2360   
    /// :type typing.Optional\[str\]:
 2074         -
    /// <p>The block token for the block index.</p>
        2361  +
    /// /* StructureGenerator.kt:231 */<p>The block token for the block index.</p>
 2075   2362   
    pub block_token: ::std::option::Option<::std::string::String>,
        2363  +
    /* RustType.kt:516 */
 2076   2364   
    #[pyo3(get, set)]
        2365  +
    /* PythonServerStructureGenerator.kt:80 */
 2077   2366   
    /// :type typing.Optional\[int\]:
 2078         -
    /// <p>The block index.</p>
        2367  +
    /// /* StructureGenerator.kt:231 */<p>The block index.</p>
 2079   2368   
    pub block_index: ::std::option::Option<i32>,
        2369  +
    /* StructureGenerator.kt:201 */
 2080   2370   
}
        2371  +
/* StructureGenerator.kt:135 */
 2081   2372   
impl Block {
 2082         -
    /// <p>The block token for the block index.</p>
        2373  +
    /// /* StructureGenerator.kt:231 */<p>The block token for the block index.</p>
        2374  +
    /* StructureGenerator.kt:166 */
 2083   2375   
    pub fn block_token(&self) -> ::std::option::Option<&str> {
        2376  +
        /* StructureGenerator.kt:169 */
 2084   2377   
        self.block_token.as_deref()
        2378  +
        /* StructureGenerator.kt:166 */
 2085   2379   
    }
 2086         -
    /// <p>The block index.</p>
        2380  +
    /// /* StructureGenerator.kt:231 */<p>The block index.</p>
        2381  +
    /* StructureGenerator.kt:166 */
 2087   2382   
    pub fn block_index(&self) -> ::std::option::Option<i32> {
        2383  +
        /* StructureGenerator.kt:168 */
 2088   2384   
        self.block_index
        2385  +
        /* StructureGenerator.kt:166 */
 2089   2386   
    }
        2387  +
    /* StructureGenerator.kt:135 */
 2090   2388   
}
        2389  +
/* RustType.kt:516 */
 2091   2390   
#[allow(clippy::new_without_default)]
        2391  +
/* RustType.kt:516 */
 2092   2392   
#[allow(clippy::too_many_arguments)]
        2393  +
/* RustType.kt:516 */
 2093   2394   
#[::pyo3::pymethods]
        2395  +
/* PythonServerStructureGenerator.kt:88 */
 2094   2396   
impl Block {
 2095   2397   
    #[new]
 2096   2398   
    pub fn new(
 2097   2399   
        block_token: ::std::option::Option<::std::string::String>,
 2098   2400   
        block_index: ::std::option::Option<i32>,
 2099   2401   
    ) -> Self {
 2100   2402   
        Self {
 2101   2403   
            block_token,
 2102   2404   
            block_index,
 2103   2405   
        }
 2104   2406   
    }
 2105   2407   
    fn __repr__(&self) -> String {
 2106   2408   
        format!("{self:?}")
 2107   2409   
    }
 2108   2410   
    fn __str__(&self) -> String {
 2109   2411   
        format!("{self:?}")
 2110   2412   
    }
 2111   2413   
}
        2414  +
/* PythonServerStructureGenerator.kt:111 */
 2112   2415   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<Block> {
 2113   2416   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 2114   2417   
        ob.extract::<Block>().map(Box::new)
 2115   2418   
    }
 2116   2419   
}
 2117   2420   
 2118   2421   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<Block> {
 2119   2422   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 2120   2423   
        (*self).into_py(py)
 2121   2424   
    }
 2122   2425   
}
        2426  +
/* ServerCodegenVisitor.kt:370 */
 2123   2427   
impl Block {
 2124         -
    /// Creates a new builder-style object to manufacture [`Block`](crate::model::Block).
        2428  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`Block`](crate::model::Block).
        2429  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
 2125   2430   
    pub fn builder() -> crate::model::block::Builder {
        2431  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
 2126   2432   
        crate::model::block::Builder::default()
        2433  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
 2127   2434   
    }
        2435  +
    /* ServerCodegenVisitor.kt:370 */
 2128   2436   
}
 2129   2437   
        2438  +
/* ConstrainedStringGenerator.kt:82 */
 2130   2439   
#[allow(missing_docs)] // documentation missing in model
 2131         -
///
        2440  +
/// /* ConstrainedStringGenerator.kt:83 */
 2132   2441   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2133   2442   
/// [constraint traits]. Use [`BlockToken::try_from`] to construct values of this type.
 2134   2443   
///
 2135   2444   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2136   2445   
///
        2446  +
/* RustType.kt:516 */
 2137   2447   
#[derive(
 2138   2448   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2139   2449   
)]
 2140         -
pub(crate) struct BlockToken(pub(crate) ::std::string::String);
        2450  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct BlockToken(
        2451  +
    pub(crate) ::std::string::String,
        2452  +
);
        2453  +
/* RustType.kt:516 */
 2141   2454   
#[allow(dead_code)]
        2455  +
/* ConstrainedStringGenerator.kt:90 */
 2142   2456   
impl BlockToken {
 2143   2457   
    /// Extracts a string slice containing the entire underlying `String`.
 2144   2458   
    pub fn as_str(&self) -> &str {
 2145   2459   
        &self.0
 2146   2460   
    }
 2147   2461   
 2148   2462   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 2149   2463   
    pub fn inner(&self) -> &::std::string::String {
 2150   2464   
        &self.0
 2151   2465   
    }
 2152   2466   
 2153   2467   
    /// Consumes the value, returning the underlying [`::std::string::String`].
 2154   2468   
    pub fn into_inner(self) -> ::std::string::String {
 2155   2469   
        self.0
 2156   2470   
    }
 2157   2471   
}
        2472  +
/* TraitInfo.kt:41 */
 2158   2473   
impl BlockToken {
 2159   2474   
    fn check_length(
 2160   2475   
        string: &str,
 2161   2476   
    ) -> ::std::result::Result<(), crate::model::block_token_internal::ConstraintViolation> {
 2162   2477   
        let length = string.chars().count();
 2163   2478   
 2164   2479   
        if (0..=256).contains(&length) {
 2165   2480   
            Ok(())
 2166   2481   
        } else {
 2167   2482   
            Err(crate::model::block_token_internal::ConstraintViolation::Length(length))
 2168   2483   
        }
 2169   2484   
    }
 2170   2485   
 2171   2486   
    fn check_pattern(
 2172   2487   
        string: ::std::string::String,
 2173   2488   
    ) -> ::std::result::Result<
 2174   2489   
        ::std::string::String,
 2175   2490   
        crate::model::block_token_internal::ConstraintViolation,
 2176   2491   
    > {
 2177   2492   
        let regex = Self::compile_regex();
 2178   2493   
 2179   2494   
        if regex.is_match(&string) {
 2180   2495   
            Ok(string)
 2181   2496   
        } else {
 2182   2497   
            Err(crate::model::block_token_internal::ConstraintViolation::Pattern(string))
 2183   2498   
        }
 2184   2499   
    }
 2185   2500   
 2186   2501   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
 2187   2502   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
 2188   2503   
    pub fn compile_regex() -> &'static ::regex::Regex {
 2189   2504   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
 2190   2505   
            ::regex::Regex::new(r#"^[A-Za-z0-9+/=]+$"#).expect(r#"The regular expression ^[A-Za-z0-9+/=]+$ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
 2191   2506   
        });
 2192   2507   
 2193   2508   
        &REGEX
 2194   2509   
    }
 2195   2510   
}
        2511  +
/* TraitInfo.kt:57 */
 2196   2512   
impl ::std::convert::TryFrom<::std::string::String> for BlockToken {
 2197   2513   
    type Error = crate::model::block_token_internal::ConstraintViolation;
 2198   2514   
 2199   2515   
    /// Constructs a `BlockToken` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 2200   2516   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 2201   2517   
        Self::check_length(&value)?;
 2202   2518   
 2203   2519   
        let value = Self::check_pattern(value)?;
 2204   2520   
 2205   2521   
        Ok(Self(value))
 2206   2522   
    }
 2207   2523   
}
        2524  +
/* ConstrainedStringGenerator.kt:112 */
 2208   2525   
impl crate::constrained::Constrained for BlockToken {
 2209   2526   
    type Unconstrained = ::std::string::String;
 2210   2527   
}
 2211   2528   
 2212   2529   
impl ::std::convert::From<::std::string::String>
 2213   2530   
    for crate::constrained::MaybeConstrained<crate::model::BlockToken>
 2214   2531   
{
 2215   2532   
    fn from(value: ::std::string::String) -> Self {
 2216   2533   
        Self::Unconstrained(value)
 2217   2534   
    }
 2218   2535   
}
 2219   2536   
 2220   2537   
impl ::std::fmt::Display for BlockToken {
 2221   2538   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2222   2539   
        self.0.fmt(f)
 2223   2540   
    }
 2224   2541   
}
 2225   2542   
 2226   2543   
impl ::std::convert::From<BlockToken> for ::std::string::String {
 2227   2544   
    fn from(value: BlockToken) -> Self {
 2228   2545   
        value.into_inner()
 2229   2546   
    }
 2230   2547   
}
 2231   2548   
        2549  +
/* RustType.kt:516 */
 2232   2550   
#[cfg(test)]
        2551  +
/* ConstrainedStringGenerator.kt:205 */
 2233   2552   
mod test_block_token {
 2234   2553   
    #[test]
 2235   2554   
    fn regex_compiles() {
 2236   2555   
        crate::model::BlockToken::compile_regex();
 2237   2556   
    }
        2557  +
        2558  +
    /* ConstrainedStringGenerator.kt:205 */
 2238   2559   
}
 2239   2560   
        2561  +
/* ConstrainedStringGenerator.kt:82 */
 2240   2562   
#[allow(missing_docs)] // documentation missing in model
 2241         -
///
        2563  +
/// /* ConstrainedStringGenerator.kt:83 */
 2242   2564   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2243   2565   
/// [constraint traits]. Use [`PageToken::try_from`] to construct values of this type.
 2244   2566   
///
 2245   2567   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2246   2568   
///
        2569  +
/* RustType.kt:516 */
 2247   2570   
#[derive(
 2248   2571   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2249   2572   
)]
 2250         -
pub(crate) struct PageToken(pub(crate) ::std::string::String);
        2573  +
pub(crate) /* ConstrainedStringGenerator.kt:86 */ struct PageToken(
        2574  +
    pub(crate) ::std::string::String,
        2575  +
);
        2576  +
/* RustType.kt:516 */
 2251   2577   
#[allow(dead_code)]
        2578  +
/* ConstrainedStringGenerator.kt:90 */
 2252   2579   
impl PageToken {
 2253   2580   
    /// Extracts a string slice containing the entire underlying `String`.
 2254   2581   
    pub fn as_str(&self) -> &str {
 2255   2582   
        &self.0
 2256   2583   
    }
 2257   2584   
 2258   2585   
    /// Returns an immutable reference to the underlying [`::std::string::String`].
 2259   2586   
    pub fn inner(&self) -> &::std::string::String {
 2260   2587   
        &self.0
 2261   2588   
    }
 2262   2589   
 2263   2590   
    /// Consumes the value, returning the underlying [`::std::string::String`].
 2264   2591   
    pub fn into_inner(self) -> ::std::string::String {
 2265   2592   
        self.0
 2266   2593   
    }
 2267   2594   
}
        2595  +
/* TraitInfo.kt:41 */
 2268   2596   
impl PageToken {
 2269   2597   
    fn check_length(
 2270   2598   
        string: &str,
 2271   2599   
    ) -> ::std::result::Result<(), crate::model::page_token_internal::ConstraintViolation> {
 2272   2600   
        let length = string.chars().count();
 2273   2601   
 2274   2602   
        if (0..=256).contains(&length) {
 2275   2603   
            Ok(())
 2276   2604   
        } else {
 2277   2605   
            Err(crate::model::page_token_internal::ConstraintViolation::Length(length))
 2278   2606   
        }
 2279   2607   
    }
 2280   2608   
 2281   2609   
    fn check_pattern(
 2282   2610   
        string: ::std::string::String,
 2283   2611   
    ) -> ::std::result::Result<
 2284   2612   
        ::std::string::String,
 2285   2613   
        crate::model::page_token_internal::ConstraintViolation,
 2286   2614   
    > {
 2287   2615   
        let regex = Self::compile_regex();
 2288   2616   
 2289   2617   
        if regex.is_match(&string) {
 2290   2618   
            Ok(string)
 2291   2619   
        } else {
 2292   2620   
            Err(crate::model::page_token_internal::ConstraintViolation::Pattern(string))
 2293   2621   
        }
 2294   2622   
    }
 2295   2623   
 2296   2624   
    /// Attempts to compile the regex for this constrained type's `@pattern`.
 2297   2625   
    /// This can fail if the specified regex is not supported by the `::regex` crate.
 2298   2626   
    pub fn compile_regex() -> &'static ::regex::Regex {
 2299   2627   
        static REGEX: std::sync::LazyLock<::regex::Regex> = std::sync::LazyLock::new(|| {
 2300   2628   
            ::regex::Regex::new(r#"^[A-Za-z0-9+/=]+$"#).expect(r#"The regular expression ^[A-Za-z0-9+/=]+$ is not supported by the `regex` crate; feel free to file an issue under https://github.com/smithy-lang/smithy-rs/issues for support"#)
 2301   2629   
        });
 2302   2630   
 2303   2631   
        &REGEX
 2304   2632   
    }
 2305   2633   
}
        2634  +
/* TraitInfo.kt:57 */
 2306   2635   
impl ::std::convert::TryFrom<::std::string::String> for PageToken {
 2307   2636   
    type Error = crate::model::page_token_internal::ConstraintViolation;
 2308   2637   
 2309   2638   
    /// Constructs a `PageToken` from an [`::std::string::String`], failing when the provided value does not satisfy the modeled constraints.
 2310   2639   
    fn try_from(value: ::std::string::String) -> ::std::result::Result<Self, Self::Error> {
 2311   2640   
        Self::check_length(&value)?;
 2312   2641   
 2313   2642   
        let value = Self::check_pattern(value)?;
 2314   2643   
 2315   2644   
        Ok(Self(value))
 2316   2645   
    }
 2317   2646   
}
        2647  +
/* ConstrainedStringGenerator.kt:112 */
 2318   2648   
impl crate::constrained::Constrained for PageToken {
 2319   2649   
    type Unconstrained = ::std::string::String;
 2320   2650   
}
 2321   2651   
 2322   2652   
impl ::std::convert::From<::std::string::String>
 2323   2653   
    for crate::constrained::MaybeConstrained<crate::model::PageToken>
 2324   2654   
{
 2325   2655   
    fn from(value: ::std::string::String) -> Self {
 2326   2656   
        Self::Unconstrained(value)
 2327   2657   
    }
 2328   2658   
}
 2329   2659   
 2330   2660   
impl ::std::fmt::Display for PageToken {
 2331   2661   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2332   2662   
        self.0.fmt(f)
 2333   2663   
    }
 2334   2664   
}
 2335   2665   
 2336   2666   
impl ::std::convert::From<PageToken> for ::std::string::String {
 2337   2667   
    fn from(value: PageToken) -> Self {
 2338   2668   
        value.into_inner()
 2339   2669   
    }
 2340   2670   
}
 2341   2671   
        2672  +
/* RustType.kt:516 */
 2342   2673   
#[cfg(test)]
        2674  +
/* ConstrainedStringGenerator.kt:205 */
 2343   2675   
mod test_page_token {
 2344   2676   
    #[test]
 2345   2677   
    fn regex_compiles() {
 2346   2678   
        crate::model::PageToken::compile_regex();
 2347   2679   
    }
        2680  +
        2681  +
    /* ConstrainedStringGenerator.kt:205 */
 2348   2682   
}
 2349   2683   
        2684  +
/* ConstrainedNumberGenerator.kt:82 */
 2350   2685   
#[allow(missing_docs)] // documentation missing in model
 2351         -
///
        2686  +
/// /* ConstrainedNumberGenerator.kt:83 */
 2352   2687   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2353   2688   
/// [constraint traits]. Use [`MaxResults::try_from`] to construct values of this type.
 2354   2689   
///
 2355   2690   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2356   2691   
///
        2692  +
/* RustType.kt:516 */
 2357   2693   
#[derive(
 2358   2694   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2359   2695   
)]
 2360         -
pub(crate) struct MaxResults(pub(crate) i32);
        2696  +
pub(crate) /* ConstrainedNumberGenerator.kt:86 */ struct MaxResults(pub(crate) i32);
        2697  +
/* RustType.kt:516 */
 2361   2698   
#[allow(dead_code)]
        2699  +
/* ConstrainedNumberGenerator.kt:91 */
 2362   2700   
impl MaxResults {
 2363   2701   
    /// Returns an immutable reference to the underlying [`i32`].
 2364   2702   
    pub fn inner(&self) -> &i32 {
 2365   2703   
        &self.0
 2366   2704   
    }
 2367   2705   
 2368   2706   
    /// Consumes the value, returning the underlying [`i32`].
 2369   2707   
    pub fn into_inner(self) -> i32 {
 2370   2708   
        self.0
 2371   2709   
    }
 2372   2710   
}
 2373   2711   
 2374   2712   
impl crate::constrained::Constrained for MaxResults {
 2375   2713   
    type Unconstrained = i32;
 2376   2714   
}
 2377   2715   
 2378   2716   
impl ::std::convert::From<i32> for crate::constrained::MaybeConstrained<crate::model::MaxResults> {
 2379   2717   
    fn from(value: i32) -> Self {
 2380   2718   
        Self::Unconstrained(value)
 2381   2719   
    }
 2382   2720   
}
 2383   2721   
 2384   2722   
impl ::std::fmt::Display for MaxResults {
 2385   2723   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2386   2724   
        self.0.fmt(f)
 2387   2725   
    }
 2388   2726   
}
 2389   2727   
 2390   2728   
impl ::std::convert::From<MaxResults> for i32 {
 2391   2729   
    fn from(value: MaxResults) -> Self {
 2392   2730   
        value.into_inner()
 2393   2731   
    }
 2394   2732   
}
        2733  +
/* TraitInfo.kt:41 */
 2395   2734   
impl MaxResults {
 2396   2735   
    fn check_range(
 2397   2736   
        value: i32,
 2398   2737   
    ) -> ::std::result::Result<(), crate::model::max_results_internal::ConstraintViolation> {
 2399   2738   
        if (100..=10000).contains(&value) {
 2400   2739   
            Ok(())
 2401   2740   
        } else {
 2402   2741   
            Err(crate::model::max_results_internal::ConstraintViolation::Range(value))
 2403   2742   
        }
 2404   2743   
    }
 2405   2744   
}
        2745  +
/* TraitInfo.kt:57 */
 2406   2746   
impl ::std::convert::TryFrom<i32> for MaxResults {
 2407   2747   
    type Error = crate::model::max_results_internal::ConstraintViolation;
 2408   2748   
 2409   2749   
    /// Constructs a `MaxResults` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
 2410   2750   
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 2411   2751   
        Self::check_range(value)?;
 2412   2752   
 2413   2753   
        Ok(Self(value))
 2414   2754   
    }
 2415   2755   
}
 2416   2756   
        2757  +
/* RustType.kt:516 */
 2417   2758   
#[::pyo3::pyclass]
        2759  +
/* PythonServerStructureGenerator.kt:63 */
 2418   2760   
/// :param first_block_token typing.Optional\[str\]:
 2419   2761   
/// :param block_index typing.Optional\[int\]:
 2420   2762   
/// :param second_block_token typing.Optional\[str\]:
 2421   2763   
/// :rtype None:
 2422         -
/// <p>A block of data in an Amazon Elastic Block Store snapshot that is different from another snapshot of the same volume/snapshot lineage.</p>
        2764  +
/// /* StructureGenerator.kt:197 */<p>A block of data in an Amazon Elastic Block Store snapshot that is different from another snapshot of the same volume/snapshot lineage.</p>
        2765  +
/* RustType.kt:516 */
 2423   2766   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::hash::Hash)]
 2424         -
pub struct ChangedBlock {
        2767  +
pub /* StructureGenerator.kt:201 */ struct ChangedBlock {
        2768  +
    /* RustType.kt:516 */
 2425   2769   
    #[pyo3(get, set)]
        2770  +
    /* PythonServerStructureGenerator.kt:80 */
 2426   2771   
    /// :type typing.Optional\[str\]:
 2427         -
    /// <p>The block token for the block index of the <code>FirstSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation. This value is absent if the first snapshot does not have the changed block that is on the second snapshot.</p>
        2772  +
    /// /* StructureGenerator.kt:231 */<p>The block token for the block index of the <code>FirstSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation. This value is absent if the first snapshot does not have the changed block that is on the second snapshot.</p>
 2428   2773   
    pub first_block_token: ::std::option::Option<::std::string::String>,
        2774  +
    /* RustType.kt:516 */
 2429   2775   
    #[pyo3(get, set)]
        2776  +
    /* PythonServerStructureGenerator.kt:80 */
 2430   2777   
    /// :type typing.Optional\[int\]:
 2431         -
    /// <p>The block index.</p>
        2778  +
    /// /* StructureGenerator.kt:231 */<p>The block index.</p>
 2432   2779   
    pub block_index: ::std::option::Option<i32>,
        2780  +
    /* RustType.kt:516 */
 2433   2781   
    #[pyo3(get, set)]
        2782  +
    /* PythonServerStructureGenerator.kt:80 */
 2434   2783   
    /// :type typing.Optional\[str\]:
 2435         -
    /// <p>The block token for the block index of the <code>SecondSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation.</p>
        2784  +
    /// /* StructureGenerator.kt:231 */<p>The block token for the block index of the <code>SecondSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation.</p>
 2436   2785   
    pub second_block_token: ::std::option::Option<::std::string::String>,
        2786  +
    /* StructureGenerator.kt:201 */
 2437   2787   
}
        2788  +
/* StructureGenerator.kt:135 */
 2438   2789   
impl ChangedBlock {
 2439         -
    /// <p>The block token for the block index of the <code>FirstSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation. This value is absent if the first snapshot does not have the changed block that is on the second snapshot.</p>
        2790  +
    /// /* StructureGenerator.kt:231 */<p>The block token for the block index of the <code>FirstSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation. This value is absent if the first snapshot does not have the changed block that is on the second snapshot.</p>
        2791  +
    /* StructureGenerator.kt:166 */
 2440   2792   
    pub fn first_block_token(&self) -> ::std::option::Option<&str> {
        2793  +
        /* StructureGenerator.kt:169 */
 2441   2794   
        self.first_block_token.as_deref()
        2795  +
        /* StructureGenerator.kt:166 */
 2442   2796   
    }
 2443         -
    /// <p>The block index.</p>
        2797  +
    /// /* StructureGenerator.kt:231 */<p>The block index.</p>
        2798  +
    /* StructureGenerator.kt:166 */
 2444   2799   
    pub fn block_index(&self) -> ::std::option::Option<i32> {
        2800  +
        /* StructureGenerator.kt:168 */
 2445   2801   
        self.block_index
        2802  +
        /* StructureGenerator.kt:166 */
 2446   2803   
    }
 2447         -
    /// <p>The block token for the block index of the <code>SecondSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation.</p>
        2804  +
    /// /* StructureGenerator.kt:231 */<p>The block token for the block index of the <code>SecondSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation.</p>
        2805  +
    /* StructureGenerator.kt:166 */
 2448   2806   
    pub fn second_block_token(&self) -> ::std::option::Option<&str> {
        2807  +
        /* StructureGenerator.kt:169 */
 2449   2808   
        self.second_block_token.as_deref()
        2809  +
        /* StructureGenerator.kt:166 */
 2450   2810   
    }
        2811  +
    /* StructureGenerator.kt:135 */
 2451   2812   
}
        2813  +
/* StructureGenerator.kt:101 */
 2452   2814   
impl ::std::fmt::Debug for ChangedBlock {
        2815  +
    /* StructureGenerator.kt:105 */
 2453   2816   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        2817  +
        /* StructureGenerator.kt:106 */
 2454   2818   
        let mut formatter = f.debug_struct("ChangedBlock");
        2819  +
        /* StructureGenerator.kt:121 */
 2455   2820   
        formatter.field("first_block_token", &"*** Sensitive Data Redacted ***");
        2821  +
        /* StructureGenerator.kt:121 */
 2456   2822   
        formatter.field("block_index", &"*** Sensitive Data Redacted ***");
        2823  +
        /* StructureGenerator.kt:121 */
 2457   2824   
        formatter.field("second_block_token", &"*** Sensitive Data Redacted ***");
        2825  +
        /* StructureGenerator.kt:126 */
 2458   2826   
        formatter.finish()
        2827  +
        /* StructureGenerator.kt:105 */
 2459   2828   
    }
        2829  +
    /* StructureGenerator.kt:101 */
 2460   2830   
}
        2831  +
/* RustType.kt:516 */
 2461   2832   
#[allow(clippy::new_without_default)]
        2833  +
/* RustType.kt:516 */
 2462   2834   
#[allow(clippy::too_many_arguments)]
        2835  +
/* RustType.kt:516 */
 2463   2836   
#[::pyo3::pymethods]
        2837  +
/* PythonServerStructureGenerator.kt:88 */
 2464   2838   
impl ChangedBlock {
 2465   2839   
    #[new]
 2466   2840   
    pub fn new(
 2467   2841   
        first_block_token: ::std::option::Option<::std::string::String>,
 2468   2842   
        block_index: ::std::option::Option<i32>,
 2469   2843   
        second_block_token: ::std::option::Option<::std::string::String>,
 2470   2844   
    ) -> Self {
 2471   2845   
        Self {
 2472   2846   
            first_block_token,
 2473   2847   
            block_index,
 2474   2848   
            second_block_token,
 2475   2849   
        }
 2476   2850   
    }
 2477   2851   
    fn __repr__(&self) -> String {
 2478   2852   
        format!("{self:?}")
 2479   2853   
    }
 2480   2854   
    fn __str__(&self) -> String {
 2481   2855   
        format!("{self:?}")
 2482   2856   
    }
 2483   2857   
}
        2858  +
/* PythonServerStructureGenerator.kt:111 */
 2484   2859   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ChangedBlock> {
 2485   2860   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
 2486   2861   
        ob.extract::<ChangedBlock>().map(Box::new)
 2487   2862   
    }
 2488   2863   
}
 2489   2864   
 2490   2865   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ChangedBlock> {
 2491   2866   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
 2492   2867   
        (*self).into_py(py)
 2493   2868   
    }
 2494   2869   
}
        2870  +
/* ServerCodegenVisitor.kt:370 */
 2495   2871   
impl ChangedBlock {
 2496         -
    /// Creates a new builder-style object to manufacture [`ChangedBlock`](crate::model::ChangedBlock).
        2872  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`ChangedBlock`](crate::model::ChangedBlock).
        2873  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
 2497   2874   
    pub fn builder() -> crate::model::changed_block::Builder {
        2875  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
 2498   2876   
        crate::model::changed_block::Builder::default()
        2877  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
 2499   2878   
    }
        2879  +
    /* ServerCodegenVisitor.kt:370 */
 2500   2880   
}
 2501   2881   
        2882  +
/* RustType.kt:516 */
 2502   2883   
#[::pyo3::pyclass]
        2884  +
/* EnumGenerator.kt:154 */
 2503   2885   
#[allow(missing_docs)] // documentation missing in model
        2886  +
/* RustType.kt:516 */
 2504   2887   
#[derive(
 2505   2888   
    ::std::clone::Clone,
 2506   2889   
    ::std::cmp::Eq,
 2507   2890   
    ::std::cmp::Ord,
 2508   2891   
    ::std::cmp::PartialEq,
 2509   2892   
    ::std::cmp::PartialOrd,
 2510   2893   
    ::std::fmt::Debug,
 2511   2894   
    ::std::hash::Hash,
 2512   2895   
)]
 2513         -
pub enum ChecksumAggregationMethod {
        2896  +
pub /* EnumGenerator.kt:267 */ enum ChecksumAggregationMethod {
        2897  +
    /* EnumGenerator.kt:154 */
 2514   2898   
    #[allow(missing_docs)] // documentation missing in model
        2899  +
    /* EnumGenerator.kt:143 */
 2515   2900   
    ChecksumAggregationLinear,
        2901  +
    /* EnumGenerator.kt:267 */
 2516   2902   
}
 2517   2903   
pub(crate) mod checksum_aggregation_method_internal {
 2518   2904   
    #[derive(Debug, PartialEq)]
 2519   2905   
    pub struct ConstraintViolation(pub(crate) ::std::string::String);
 2520   2906   
 2521   2907   
    impl ::std::fmt::Display for ConstraintViolation {
 2522   2908   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2523   2909   
            write!(
 2524   2910   
                f,
 2525   2911   
                r#"Value provided for 'com.amazonaws.ebs#ChecksumAggregationMethod' failed to satisfy constraint: Member must satisfy enum value set: [LINEAR]"#
 2526   2912   
            )
 2527   2913   
        }
 2528   2914   
    }
 2529   2915   
 2530   2916   
    impl ::std::error::Error for ConstraintViolation {}
 2531   2917   
    impl ConstraintViolation {
 2532   2918   
        pub(crate) fn as_validation_exception_field(
 2533   2919   
            self,
 2534   2920   
            path: ::std::string::String,
 2535   2921   
        ) -> crate::model::ValidationExceptionField {
 2536   2922   
            crate::model::ValidationExceptionField {
 2537   2923   
                message: format!(
 2538   2924   
                    r#"Value at '{}' failed to satisfy constraint: Member must satisfy enum value set: [LINEAR]"#,
 2539   2925   
                    &path
 2540   2926   
                ),
 2541   2927   
                path,
 2542   2928   
            }
 2543   2929   
        }
 2544   2930   
    }
        2931  +
        2932  +
    /* ServerEnumGenerator.kt:46 */
 2545   2933   
}
        2934  +
/* ServerEnumGenerator.kt:85 */
 2546   2935   
impl ::std::convert::TryFrom<&str> for ChecksumAggregationMethod {
 2547   2936   
    type Error = crate::model::checksum_aggregation_method_internal::ConstraintViolation;
 2548   2937   
    fn try_from(
 2549   2938   
        s: &str,
 2550   2939   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<&str>>::Error> {
 2551   2940   
        match s {
 2552   2941   
            "LINEAR" => Ok(ChecksumAggregationMethod::ChecksumAggregationLinear),
 2553   2942   
            _ => Err(
 2554   2943   
                crate::model::checksum_aggregation_method_internal::ConstraintViolation(
 2555   2944   
                    s.to_owned(),
 2556   2945   
                ),
 2557   2946   
            ),
 2558   2947   
        }
 2559   2948   
    }
 2560   2949   
}
 2561   2950   
impl ::std::convert::TryFrom<::std::string::String> for ChecksumAggregationMethod {
 2562   2951   
    type Error = crate::model::checksum_aggregation_method_internal::ConstraintViolation;
 2563   2952   
    fn try_from(
 2564   2953   
        s: ::std::string::String,
 2565   2954   
    ) -> ::std::result::Result<Self, <Self as ::std::convert::TryFrom<::std::string::String>>::Error>
 2566   2955   
    {
 2567   2956   
        s.as_str().try_into()
 2568   2957   
    }
 2569   2958   
}
        2959  +
/* ServerEnumGenerator.kt:145 */
 2570   2960   
impl std::str::FromStr for ChecksumAggregationMethod {
 2571   2961   
    type Err = crate::model::checksum_aggregation_method_internal::ConstraintViolation;
 2572   2962   
    fn from_str(s: &str) -> std::result::Result<Self, <Self as std::str::FromStr>::Err> {
 2573   2963   
        Self::try_from(s)
 2574   2964   
    }
 2575   2965   
}
        2966  +
/* EnumGenerator.kt:274 */
 2576   2967   
impl ChecksumAggregationMethod {
 2577   2968   
    /// Returns the `&str` value of the enum member.
 2578   2969   
    pub fn as_str(&self) -> &str {
 2579   2970   
        match self {
 2580   2971   
            ChecksumAggregationMethod::ChecksumAggregationLinear => "LINEAR",
 2581   2972   
        }
 2582   2973   
    }
 2583   2974   
    /// Returns all the `&str` representations of the enum members.
 2584   2975   
    pub const fn values() -> &'static [&'static str] {
 2585   2976   
        &["LINEAR"]
 2586   2977   
    }
 2587   2978   
}
        2979  +
/* EnumGenerator.kt:223 */
 2588   2980   
impl ::std::convert::AsRef<str> for ChecksumAggregationMethod {
 2589   2981   
    fn as_ref(&self) -> &str {
 2590   2982   
        self.as_str()
 2591   2983   
    }
 2592   2984   
}
        2985  +
/* RustType.kt:516 */
 2593   2986   
#[::pyo3::pymethods]
        2987  +
/* PythonServerEnumGenerator.kt:41 */
 2594   2988   
impl ChecksumAggregationMethod {
 2595   2989   
    #[getter]
 2596   2990   
    pub fn name(&self) -> &str {
 2597   2991   
        match self {
 2598   2992   
            ChecksumAggregationMethod::ChecksumAggregationLinear => "ChecksumAggregationLinear",
 2599   2993   
        }
 2600   2994   
    }
 2601   2995   
    #[getter]
 2602   2996   
    pub fn value(&self) -> &str {
 2603   2997   
        self.as_str()
 2604   2998   
    }
 2605   2999   
    fn __repr__(&self) -> String {
 2606   3000   
        self.as_str().to_owned()
 2607   3001   
    }
 2608   3002   
    fn __str__(&self) -> String {
 2609   3003   
        self.as_str().to_owned()
 2610   3004   
    }
 2611   3005   
}
        3006  +
/* ConstrainedTraitForEnumGenerator.kt:36 */
 2612   3007   
impl crate::constrained::Constrained for ChecksumAggregationMethod {
 2613   3008   
    type Unconstrained = ::std::string::String;
 2614   3009   
}
 2615   3010   
 2616   3011   
impl ::std::convert::From<::std::string::String>
 2617   3012   
    for crate::constrained::MaybeConstrained<crate::model::ChecksumAggregationMethod>
 2618   3013   
{
 2619   3014   
    fn from(value: ::std::string::String) -> Self {
 2620   3015   
        Self::Unconstrained(value)
 2621   3016   
    }
 2622   3017   
}
 2623   3018   
        3019  +
/* ConstrainedNumberGenerator.kt:82 */
 2624   3020   
#[allow(missing_docs)] // documentation missing in model
 2625         -
///
        3021  +
/// /* ConstrainedNumberGenerator.kt:83 */
 2626   3022   
/// This is a constrained type because its corresponding modeled Smithy shape has one or more
 2627   3023   
/// [constraint traits]. Use [`ChangedBlocksCount::try_from`] to construct values of this type.
 2628   3024   
///
 2629   3025   
/// [constraint traits]: https://smithy.io/2.0/spec/constraint-traits.html
 2630   3026   
///
        3027  +
/* RustType.kt:516 */
 2631   3028   
#[derive(
 2632   3029   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
 2633   3030   
)]
 2634         -
pub(crate) struct ChangedBlocksCount(pub(crate) i32);
        3031  +
pub(crate) /* ConstrainedNumberGenerator.kt:86 */ struct ChangedBlocksCount(pub(crate) i32);
        3032  +
/* RustType.kt:516 */
 2635   3033   
#[allow(dead_code)]
        3034  +
/* ConstrainedNumberGenerator.kt:91 */
 2636   3035   
impl ChangedBlocksCount {
 2637   3036   
    /// Returns an immutable reference to the underlying [`i32`].
 2638   3037   
    pub fn inner(&self) -> &i32 {
 2639   3038   
        &self.0
 2640   3039   
    }
 2641   3040   
 2642   3041   
    /// Consumes the value, returning the underlying [`i32`].
 2643   3042   
    pub fn into_inner(self) -> i32 {
 2644   3043   
        self.0
 2645   3044   
    }
 2646   3045   
}
 2647   3046   
 2648   3047   
impl crate::constrained::Constrained for ChangedBlocksCount {
 2649   3048   
    type Unconstrained = i32;
 2650   3049   
}
 2651   3050   
 2652   3051   
impl ::std::convert::From<i32>
 2653   3052   
    for crate::constrained::MaybeConstrained<crate::model::ChangedBlocksCount>
 2654   3053   
{
 2655   3054   
    fn from(value: i32) -> Self {
 2656   3055   
        Self::Unconstrained(value)
 2657   3056   
    }
 2658   3057   
}
 2659   3058   
 2660   3059   
impl ::std::fmt::Display for ChangedBlocksCount {
 2661   3060   
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2662   3061   
        self.0.fmt(f)
 2663   3062   
    }
 2664   3063   
}
 2665   3064   
 2666   3065   
impl ::std::convert::From<ChangedBlocksCount> for i32 {
 2667   3066   
    fn from(value: ChangedBlocksCount) -> Self {
 2668   3067   
        value.into_inner()
 2669   3068   
    }
 2670   3069   
}
        3070  +
/* TraitInfo.kt:41 */
 2671   3071   
impl ChangedBlocksCount {
 2672   3072   
    fn check_range(
 2673   3073   
        value: i32,
 2674   3074   
    ) -> ::std::result::Result<(), crate::model::changed_blocks_count_internal::ConstraintViolation>
 2675   3075   
    {
 2676   3076   
        if 0 <= value {
 2677   3077   
            Ok(())
 2678   3078   
        } else {
 2679   3079   
            Err(crate::model::changed_blocks_count_internal::ConstraintViolation::Range(value))
 2680   3080   
        }
 2681   3081   
    }
 2682   3082   
}
        3083  +
/* TraitInfo.kt:57 */
 2683   3084   
impl ::std::convert::TryFrom<i32> for ChangedBlocksCount {
 2684   3085   
    type Error = crate::model::changed_blocks_count_internal::ConstraintViolation;
 2685   3086   
 2686   3087   
    /// Constructs a `ChangedBlocksCount` from an [`i32`], failing when the provided value does not satisfy the modeled constraints.
 2687   3088   
    fn try_from(value: i32) -> ::std::result::Result<Self, Self::Error> {
 2688   3089   
        Self::check_range(value)?;
 2689   3090   
 2690   3091   
        Ok(Self(value))
 2691   3092   
    }
 2692   3093   
}
 2693   3094   
 2694         -
/// See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
        3095  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 2695   3096   
pub mod validation_exception_field {
 2696   3097   
        3098  +
    /* RustType.kt:516 */
 2697   3099   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 2698         -
    /// Holds one variant for each of the ways the builder can fail.
 2699         -
        3100  +
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
        3101  +
    /* ServerBuilderConstraintViolations.kt:75 */
 2700   3102   
    #[allow(clippy::enum_variant_names)]
 2701   3103   
    pub enum ConstraintViolation {
 2702         -
        /// `path` was not provided but it is required when building `ValidationExceptionField`.
        3104  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`path` was not provided but it is required when building `ValidationExceptionField`.
        3105  +
        /* ServerBuilderConstraintViolations.kt:143 */
 2703   3106   
        MissingPath,
 2704         -
        /// `message` was not provided but it is required when building `ValidationExceptionField`.
        3107  +
        /// /* ServerBuilderConstraintViolations.kt:138 */`message` was not provided but it is required when building `ValidationExceptionField`.
        3108  +
        /* ServerBuilderConstraintViolations.kt:143 */
 2705   3109   
        MissingMessage,
        3110  +
        /* ServerBuilderConstraintViolations.kt:75 */
 2706   3111   
    }
        3112  +
    /* ServerBuilderConstraintViolations.kt:117 */
 2707   3113   
    impl ::std::fmt::Display for ConstraintViolation {
        3114  +
        /* ServerBuilderConstraintViolations.kt:118 */
 2708   3115   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3116  +
            /* ServerBuilderConstraintViolations.kt:119 */
 2709   3117   
            match self {
 2710         -
                ConstraintViolation::MissingPath => write!(f, "`path` was not provided but it is required when building `ValidationExceptionField`"),
 2711         -
                ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationExceptionField`"),
 2712         -
            }
        3118  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingPath => write!(f, "`path` was not provided but it is required when building `ValidationExceptionField`"),
        3119  +
                /* ServerBuilderConstraintViolations.kt:127 */ConstraintViolation::MissingMessage => write!(f, "`message` was not provided but it is required when building `ValidationExceptionField`"),
        3120  +
            /* ServerBuilderConstraintViolations.kt:119 */}
        3121  +
            /* ServerBuilderConstraintViolations.kt:118 */
 2713   3122   
        }
        3123  +
        /* ServerBuilderConstraintViolations.kt:117 */
 2714   3124   
    }
        3125  +
    /* ServerBuilderConstraintViolations.kt:84 */
 2715   3126   
    impl ::std::error::Error for ConstraintViolation {}
        3127  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:254 */
 2716   3128   
    impl ::std::convert::TryFrom<Builder> for crate::model::ValidationExceptionField {
 2717   3129   
        type Error = ConstraintViolation;
 2718   3130   
 2719   3131   
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 2720   3132   
            builder.build()
 2721   3133   
        }
 2722   3134   
    }
 2723         -
    /// A builder for [`ValidationExceptionField`](crate::model::ValidationExceptionField).
        3135  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`ValidationExceptionField`](crate::model::ValidationExceptionField).
        3136  +
    /* RustType.kt:516 */
 2724   3137   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        3138  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
 2725   3139   
    pub struct Builder {
        3140  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 2726   3141   
        pub(crate) path: ::std::option::Option<::std::string::String>,
        3142  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 2727   3143   
        pub(crate) message: ::std::option::Option<::std::string::String>,
        3144  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
 2728   3145   
    }
        3146  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
 2729   3147   
    impl Builder {
 2730         -
        /// A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
        3148  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.
        3149  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 2731   3150   
        pub fn path(mut self, input: ::std::string::String) -> Self {
 2732         -
            self.path = Some(input);
        3151  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        3152  +
            self.path =
        3153  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:246 */Some(
        3154  +
                    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        3155  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:246 */)
        3156  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 2733   3157   
            self
        3158  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 2734   3159   
        }
 2735         -
        /// A detailed description of the validation failure.
        3160  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */A detailed description of the validation failure.
        3161  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 2736   3162   
        pub fn message(mut self, input: ::std::string::String) -> Self {
 2737         -
            self.message = Some(input);
        3163  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        3164  +
            self.message =
        3165  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:246 */Some(
        3166  +
                    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        3167  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:246 */)
        3168  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 2738   3169   
            self
        3170  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 2739   3171   
        }
 2740         -
        /// Consumes the builder and constructs a [`ValidationExceptionField`](crate::model::ValidationExceptionField).
 2741         -
        ///
        3172  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`ValidationExceptionField`](crate::model::ValidationExceptionField).
        3173  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:152 */
 2742   3174   
        /// The builder fails to construct a [`ValidationExceptionField`](crate::model::ValidationExceptionField) if you do not provide a value for all non-`Option`al members.
 2743   3175   
        ///
        3176  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
 2744   3177   
        pub fn build(self) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
 2745   3178   
            self.build_enforcing_required_and_enum_traits()
 2746   3179   
        }
        3180  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
 2747   3181   
        fn build_enforcing_required_and_enum_traits(
 2748   3182   
            self,
 2749   3183   
        ) -> Result<crate::model::ValidationExceptionField, ConstraintViolation> {
 2750         -
            Ok(crate::model::ValidationExceptionField {
 2751         -
                path: self.path.ok_or(ConstraintViolation::MissingPath)?,
 2752         -
                message: self.message.ok_or(ConstraintViolation::MissingMessage)?,
 2753         -
            })
        3184  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:175 */
        3185  +
            Ok(
        3186  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
        3187  +
                crate::model::ValidationExceptionField {
        3188  +
                    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
        3189  +
                    path: self
        3190  +
                        .path
        3191  +
                        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:202 */
        3192  +
                        .ok_or(ConstraintViolation::MissingPath)?,
        3193  +
                    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
        3194  +
                    message: self
        3195  +
                        .message
        3196  +
                        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:202 */
        3197  +
                        .ok_or(ConstraintViolation::MissingMessage)?,
        3198  +
                    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
        3199  +
                }, /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:175 */
        3200  +
            )
        3201  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
 2754   3202   
        }
        3203  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
 2755   3204   
    }
        3205  +
        3206  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2756   3207   
}
 2757   3208   
pub(crate) mod error_message_internal {
 2758   3209   
        3210  +
    /* ConstrainedStringGenerator.kt:155 */
 2759   3211   
    #[derive(Debug, PartialEq)]
 2760   3212   
    pub enum ConstraintViolation {
 2761   3213   
        /// Error when a string doesn't satisfy its `@length` requirements.
 2762   3214   
        Length(usize),
 2763   3215   
    }
 2764   3216   
 2765   3217   
    impl ::std::fmt::Display for ConstraintViolation {
 2766   3218   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2767   3219   
            let message = match self {
 2768   3220   
                Self::Length(length) => {
 2769   3221   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#ErrorMessage' failed to satisfy constraint: Member must have length between 0 and 256, inclusive", length)
 2770   3222   
                }
 2771   3223   
            };
 2772   3224   
            write!(f, "{message}")
 2773   3225   
        }
 2774   3226   
    }
 2775   3227   
 2776   3228   
    impl ::std::error::Error for ConstraintViolation {}
        3229  +
        3230  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2777   3231   
}
 2778   3232   
pub(crate) mod snapshot_id_internal {
 2779   3233   
        3234  +
    /* ConstrainedStringGenerator.kt:155 */
 2780   3235   
    #[derive(Debug, PartialEq)]
 2781   3236   
    pub enum ConstraintViolation {
 2782   3237   
        /// Error when a string doesn't satisfy its `@length` requirements.
 2783   3238   
        Length(usize),
 2784   3239   
        /// Error when a string doesn't satisfy its `@pattern`.
 2785   3240   
        /// Contains the String that failed the pattern.
 2786   3241   
        Pattern(String),
 2787   3242   
    }
 2788   3243   
 2789   3244   
    impl ::std::fmt::Display for ConstraintViolation {
 2790   3245   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2791   3246   
            let message = match self {
 2792   3247   
                Self::Length(length) => {
 2793   3248   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#SnapshotId' failed to satisfy constraint: Member must have length between 1 and 64, inclusive", length)
 2794   3249   
                }
 2795   3250   
                Self::Pattern(_) => {
 2796   3251   
                    format!(
 2797   3252   
                        r#"Value provided for `com.amazonaws.ebs#SnapshotId` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 2798   3253   
                        r#"^snap-[0-9a-f]+$"#
 2799   3254   
                    )
 2800   3255   
                }
 2801   3256   
            };
 2802   3257   
            write!(f, "{message}")
 2803   3258   
        }
 2804   3259   
    }
 2805   3260   
 2806   3261   
    impl ::std::error::Error for ConstraintViolation {}
        3262  +
    /* ConstrainedStringGenerator.kt:180 */
 2807   3263   
    impl ConstraintViolation {
 2808   3264   
        pub(crate) fn as_validation_exception_field(
 2809   3265   
            self,
 2810   3266   
            path: ::std::string::String,
 2811   3267   
        ) -> crate::model::ValidationExceptionField {
 2812   3268   
            match self {
 2813   3269   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 2814   3270   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 1 and 64, inclusive", length, &path),
 2815   3271   
                            path,
 2816   3272   
                        },
 2817   3273   
    
 2818   3274   
    #[allow(unused_variables)]
 2819   3275   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 2820   3276   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"^snap-[0-9a-f]+$"#),
 2821   3277   
                            path
 2822   3278   
                        },
 2823   3279   
                        }
 2824   3280   
        }
 2825   3281   
    }
        3282  +
        3283  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2826   3284   
}
 2827   3285   
pub(crate) mod description_internal {
 2828   3286   
        3287  +
    /* ConstrainedStringGenerator.kt:155 */
 2829   3288   
    #[derive(Debug, PartialEq)]
 2830   3289   
    pub enum ConstraintViolation {
 2831   3290   
        /// Error when a string doesn't satisfy its `@length` requirements.
 2832   3291   
        Length(usize),
 2833   3292   
        /// Error when a string doesn't satisfy its `@pattern`.
 2834   3293   
        /// Contains the String that failed the pattern.
 2835   3294   
        Pattern(String),
 2836   3295   
    }
 2837   3296   
 2838   3297   
    impl ::std::fmt::Display for ConstraintViolation {
 2839   3298   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2840   3299   
            let message = match self {
 2841   3300   
                Self::Length(length) => {
 2842   3301   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#Description' failed to satisfy constraint: Member must have length between 0 and 255, inclusive", length)
 2843   3302   
                }
 2844   3303   
                Self::Pattern(_) => {
 2845   3304   
                    format!(
 2846   3305   
                        r#"Value provided for `com.amazonaws.ebs#Description` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 2847   3306   
                        r#"^[\S\s]+$"#
 2848   3307   
                    )
 2849   3308   
                }
 2850   3309   
            };
 2851   3310   
            write!(f, "{message}")
 2852   3311   
        }
 2853   3312   
    }
 2854   3313   
 2855   3314   
    impl ::std::error::Error for ConstraintViolation {}
        3315  +
    /* ConstrainedStringGenerator.kt:180 */
 2856   3316   
    impl ConstraintViolation {
 2857   3317   
        pub(crate) fn as_validation_exception_field(
 2858   3318   
            self,
 2859   3319   
            path: ::std::string::String,
 2860   3320   
        ) -> crate::model::ValidationExceptionField {
 2861   3321   
            match self {
 2862   3322   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 2863   3323   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 0 and 255, inclusive", length, &path),
 2864   3324   
                            path,
 2865   3325   
                        },
 2866   3326   
    
 2867   3327   
    #[allow(unused_variables)]
 2868   3328   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 2869   3329   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"^[\S\s]+$"#),
 2870   3330   
                            path
 2871   3331   
                        },
 2872   3332   
                        }
 2873   3333   
        }
 2874   3334   
    }
        3335  +
        3336  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2875   3337   
}
 2876   3338   
pub(crate) mod volume_size_internal {
 2877   3339   
        3340  +
    /* ConstrainedNumberGenerator.kt:139 */
 2878   3341   
    #[derive(Debug, PartialEq)]
 2879   3342   
    pub enum ConstraintViolation {
 2880   3343   
        Range(i64),
 2881   3344   
    }
 2882   3345   
 2883   3346   
    impl ::std::fmt::Display for ConstraintViolation {
 2884   3347   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2885   3348   
            write!(f, "Value for `com.amazonaws.ebs#VolumeSize`failed to satisfy constraint: Member must be greater than or equal to 1")
 2886   3349   
        }
 2887   3350   
    }
 2888   3351   
 2889   3352   
    impl ::std::error::Error for ConstraintViolation {}
        3353  +
    /* ConstrainedNumberGenerator.kt:159 */
 2890   3354   
    impl ConstraintViolation {
 2891   3355   
        pub(crate) fn as_validation_exception_field(
 2892   3356   
            self,
 2893   3357   
            path: ::std::string::String,
 2894   3358   
        ) -> crate::model::ValidationExceptionField {
 2895   3359   
            match self {
 2896   3360   
                            Self::Range(_) => crate::model::ValidationExceptionField {
 2897   3361   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to 1", &path),
 2898   3362   
                            path,
 2899   3363   
                        },
 2900   3364   
                        }
 2901   3365   
        }
 2902   3366   
    }
        3367  +
        3368  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2903   3369   
}
 2904   3370   
pub(crate) mod owner_id_internal {
 2905   3371   
        3372  +
    /* ConstrainedStringGenerator.kt:155 */
 2906   3373   
    #[derive(Debug, PartialEq)]
 2907   3374   
    pub enum ConstraintViolation {
 2908   3375   
        /// Error when a string doesn't satisfy its `@length` requirements.
 2909   3376   
        Length(usize),
 2910   3377   
        /// Error when a string doesn't satisfy its `@pattern`.
 2911   3378   
        /// Contains the String that failed the pattern.
 2912   3379   
        Pattern(String),
 2913   3380   
    }
 2914   3381   
 2915   3382   
    impl ::std::fmt::Display for ConstraintViolation {
 2916   3383   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2917   3384   
            let message = match self {
 2918   3385   
                Self::Length(length) => {
 2919   3386   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#OwnerId' failed to satisfy constraint: Member must have length between 1 and 24, inclusive", length)
 2920   3387   
                }
 2921   3388   
                Self::Pattern(_) => {
 2922   3389   
                    format!(
 2923   3390   
                        r#"Value provided for `com.amazonaws.ebs#OwnerId` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 2924   3391   
                        r#"\S+"#
 2925   3392   
                    )
 2926   3393   
                }
 2927   3394   
            };
 2928   3395   
            write!(f, "{message}")
 2929   3396   
        }
 2930   3397   
    }
 2931   3398   
 2932   3399   
    impl ::std::error::Error for ConstraintViolation {}
        3400  +
        3401  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2933   3402   
}
 2934   3403   
pub(crate) mod kms_key_arn_internal {
 2935   3404   
        3405  +
    /* ConstrainedStringGenerator.kt:155 */
 2936   3406   
    #[derive(Debug, PartialEq)]
 2937   3407   
    pub enum ConstraintViolation {
 2938   3408   
        /// Error when a string doesn't satisfy its `@length` requirements.
 2939   3409   
        Length(usize),
 2940   3410   
        /// Error when a string doesn't satisfy its `@pattern`.
 2941   3411   
        /// Contains the String that failed the pattern.
 2942   3412   
        Pattern(String),
 2943   3413   
    }
 2944   3414   
 2945   3415   
    impl ::std::fmt::Display for ConstraintViolation {
 2946   3416   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2947   3417   
            let message = match self {
 2948   3418   
                Self::Length(length) => {
 2949   3419   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#KmsKeyArn' failed to satisfy constraint: Member must have length between 1 and 2048, inclusive", length)
 2950   3420   
                }
 2951   3421   
                Self::Pattern(_) => {
 2952   3422   
                    format!(
 2953   3423   
                        r#"Value provided for `com.amazonaws.ebs#KmsKeyArn` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 2954   3424   
                        r#"arn:aws[a-z\-]*:kms:.*:[0-9]{12}:key/.*"#
 2955   3425   
                    )
 2956   3426   
                }
 2957   3427   
            };
 2958   3428   
            write!(f, "{message}")
 2959   3429   
        }
 2960   3430   
    }
 2961   3431   
 2962   3432   
    impl ::std::error::Error for ConstraintViolation {}
        3433  +
    /* ConstrainedStringGenerator.kt:180 */
 2963   3434   
    impl ConstraintViolation {
 2964   3435   
        pub(crate) fn as_validation_exception_field(
 2965   3436   
            self,
 2966   3437   
            path: ::std::string::String,
 2967   3438   
        ) -> crate::model::ValidationExceptionField {
 2968   3439   
            match self {
 2969   3440   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 2970   3441   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 1 and 2048, inclusive", length, &path),
 2971   3442   
                            path,
 2972   3443   
                        },
 2973   3444   
    
 2974   3445   
    #[allow(unused_variables)]
 2975   3446   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 2976   3447   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"arn:aws[a-z\-]*:kms:.*:[0-9]{12}:key/.*"#),
 2977   3448   
                            path
 2978   3449   
                        },
 2979   3450   
                        }
 2980   3451   
        }
 2981   3452   
    }
        3453  +
        3454  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 2982   3455   
}
 2983   3456   
pub(crate) mod tags_internal {
 2984   3457   
        3458  +
    /* CollectionConstraintViolationGenerator.kt:78 */
 2985   3459   
    #[allow(clippy::enum_variant_names)]
 2986   3460   
    #[derive(Debug, PartialEq)]
 2987   3461   
    pub(crate) enum ConstraintViolation {
 2988   3462   
        /// Constraint violation error when an element doesn't satisfy its own constraints.
 2989   3463   
        /// The first component of the tuple is the index in the collection where the
 2990   3464   
        /// first constraint violation was found.
 2991   3465   
        #[doc(hidden)]
 2992   3466   
        Member(usize, crate::model::tag_internal::ConstraintViolation),
 2993   3467   
    }
 2994   3468   
 2995   3469   
    impl ::std::fmt::Display for ConstraintViolation {
 2996   3470   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 2997   3471   
            let message = match self {
 2998   3472   
                Self::Member(index, failing_member) => format!(
 2999   3473   
                    "Value at index {index} failed to satisfy constraint. {}",
 3000   3474   
                    failing_member
 3001   3475   
                ),
 3002   3476   
            };
 3003   3477   
            write!(f, "{message}")
 3004   3478   
        }
 3005   3479   
    }
 3006   3480   
 3007   3481   
    impl ::std::error::Error for ConstraintViolation {}
        3482  +
    /* CollectionConstraintViolationGenerator.kt:104 */
 3008   3483   
    impl ConstraintViolation {
 3009   3484   
        pub(crate) fn as_validation_exception_field(
 3010   3485   
            self,
 3011   3486   
            path: ::std::string::String,
 3012   3487   
        ) -> crate::model::ValidationExceptionField {
 3013   3488   
            match self {
 3014   3489   
                Self::Member(index, member_constraint_violation) => member_constraint_violation
 3015   3490   
                    .as_validation_exception_field(path + "/" + &index.to_string()),
 3016   3491   
            }
 3017   3492   
        }
 3018   3493   
    }
        3494  +
        3495  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3019   3496   
}
 3020         -
/// See [`Tag`](crate::model::Tag).
        3497  +
/// /* ServerBuilderGenerator.kt:171 */See [`Tag`](crate::model::Tag).
 3021   3498   
pub(crate) mod tag_internal {
 3022   3499   
        3500  +
    /* RustType.kt:516 */
 3023   3501   
    #[derive(::std::cmp::PartialEq, ::std::fmt::Debug)]
 3024         -
    /// Holds one variant for each of the ways the builder can fail.
        3502  +
    /// /* ServerBuilderConstraintViolations.kt:72 */Holds one variant for each of the ways the builder can fail.
        3503  +
    /* RustType.kt:516 */
 3025   3504   
    #[non_exhaustive]
        3505  +
    /* ServerBuilderConstraintViolations.kt:75 */
 3026   3506   
    #[allow(clippy::enum_variant_names)]
 3027   3507   
    pub(crate) enum ConstraintViolation {
 3028         -
        /// Constraint violation occurred building member `key` when building `Tag`.
        3508  +
        /// /* ServerBuilderConstraintViolations.kt:158 */Constraint violation occurred building member `key` when building `Tag`.
        3509  +
        /* RustType.kt:516 */
 3029   3510   
        #[doc(hidden)]
        3511  +
        /* ServerBuilderConstraintViolations.kt:164 */
 3030   3512   
        Key(crate::model::tag_key_internal::ConstraintViolation),
 3031         -
        /// Constraint violation occurred building member `value` when building `Tag`.
        3513  +
        /// /* ServerBuilderConstraintViolations.kt:158 */Constraint violation occurred building member `value` when building `Tag`.
        3514  +
        /* RustType.kt:516 */
 3032   3515   
        #[doc(hidden)]
        3516  +
        /* ServerBuilderConstraintViolations.kt:164 */
 3033   3517   
        Value(crate::model::tag_value_internal::ConstraintViolation),
        3518  +
        /* ServerBuilderConstraintViolations.kt:75 */
 3034   3519   
    }
        3520  +
    /* ServerBuilderConstraintViolations.kt:117 */
 3035   3521   
    impl ::std::fmt::Display for ConstraintViolation {
        3522  +
        /* ServerBuilderConstraintViolations.kt:118 */
 3036   3523   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        3524  +
            /* ServerBuilderConstraintViolations.kt:119 */
 3037   3525   
            match self {
        3526  +
                /* ServerBuilderConstraintViolations.kt:127 */
 3038   3527   
                ConstraintViolation::Key(_) => write!(
 3039   3528   
                    f,
 3040   3529   
                    "constraint violation occurred building member `key` when building `Tag`"
 3041   3530   
                ),
        3531  +
                /* ServerBuilderConstraintViolations.kt:127 */
 3042   3532   
                ConstraintViolation::Value(_) => write!(
 3043   3533   
                    f,
 3044   3534   
                    "constraint violation occurred building member `value` when building `Tag`"
 3045   3535   
                ),
        3536  +
                /* ServerBuilderConstraintViolations.kt:119 */
 3046   3537   
            }
        3538  +
            /* ServerBuilderConstraintViolations.kt:118 */
 3047   3539   
        }
        3540  +
        /* ServerBuilderConstraintViolations.kt:117 */
 3048   3541   
    }
        3542  +
    /* ServerBuilderConstraintViolations.kt:84 */
 3049   3543   
    impl ::std::error::Error for ConstraintViolation {}
        3544  +
    /* ServerBuilderConstraintViolations.kt:171 */
 3050   3545   
    impl ConstraintViolation {
 3051   3546   
        pub(crate) fn as_validation_exception_field(
 3052   3547   
            self,
 3053   3548   
            path: ::std::string::String,
 3054   3549   
        ) -> crate::model::ValidationExceptionField {
 3055   3550   
            match self {
 3056   3551   
                ConstraintViolation::Key(inner) => {
 3057   3552   
                    inner.as_validation_exception_field(path + "/Key")
 3058   3553   
                }
 3059   3554   
                ConstraintViolation::Value(inner) => {
 3060   3555   
                    inner.as_validation_exception_field(path + "/Value")
 3061   3556   
                }
 3062   3557   
            }
 3063   3558   
        }
 3064   3559   
    }
        3560  +
    /* ServerBuilderGenerator.kt:244 */
 3065   3561   
    impl ::std::convert::From<Builder> for crate::constrained::MaybeConstrained<crate::model::Tag> {
 3066   3562   
        fn from(builder: Builder) -> Self {
 3067   3563   
            Self::Unconstrained(builder)
 3068   3564   
        }
 3069   3565   
    }
        3566  +
    /* ServerBuilderGenerator.kt:446 */
 3070   3567   
    impl ::std::convert::TryFrom<Builder> for crate::model::Tag {
 3071   3568   
        type Error = ConstraintViolation;
 3072   3569   
 3073   3570   
        fn try_from(builder: Builder) -> ::std::result::Result<Self, Self::Error> {
 3074   3571   
            builder.build()
 3075   3572   
        }
 3076   3573   
    }
 3077         -
    /// A builder for [`Tag`](crate::model::Tag).
        3574  +
    /// /* ServerBuilderGenerator.kt:201 */A builder for [`Tag`](crate::model::Tag).
        3575  +
    /* RustType.kt:516 */
 3078   3576   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        3577  +
    /* ServerBuilderGenerator.kt:211 */
 3079   3578   
    pub(crate) struct Builder {
        3579  +
        /* ServerBuilderGenerator.kt:308 */
 3080   3580   
        pub(crate) key:
 3081   3581   
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::TagKey>>,
        3582  +
        /* ServerBuilderGenerator.kt:308 */
 3082   3583   
        pub(crate) value:
 3083   3584   
            ::std::option::Option<crate::constrained::MaybeConstrained<crate::model::TagValue>>,
        3585  +
        /* ServerBuilderGenerator.kt:211 */
 3084   3586   
    }
        3587  +
    /* ServerBuilderGenerator.kt:215 */
 3085   3588   
    impl Builder {
 3086         -
        /// <p>The key of the tag.</p>
        3589  +
        /// /* ServerBuilderGenerator.kt:426 */<p>The key of the tag.</p>
        3590  +
        /* ServerBuilderGenerator.kt:428 */
 3087   3591   
        pub(crate) fn set_key(
 3088   3592   
            mut self,
 3089   3593   
            input: Option<
 3090   3594   
                impl ::std::convert::Into<crate::constrained::MaybeConstrained<crate::model::TagKey>>,
 3091   3595   
            >,
 3092   3596   
        ) -> Self {
        3597  +
            /* ServerBuilderGenerator.kt:429 */
 3093   3598   
            self.key = input.map(|v| v.into());
 3094   3599   
            self
        3600  +
            /* ServerBuilderGenerator.kt:428 */
 3095   3601   
        }
 3096         -
        /// <p>The value of the tag.</p>
        3602  +
        /// /* ServerBuilderGenerator.kt:426 */<p>The value of the tag.</p>
        3603  +
        /* ServerBuilderGenerator.kt:428 */
 3097   3604   
        pub(crate) fn set_value(
 3098   3605   
            mut self,
 3099   3606   
            input: Option<
 3100   3607   
                impl ::std::convert::Into<crate::constrained::MaybeConstrained<crate::model::TagValue>>,
 3101   3608   
            >,
 3102   3609   
        ) -> Self {
        3610  +
            /* ServerBuilderGenerator.kt:429 */
 3103   3611   
            self.value = input.map(|v| v.into());
 3104   3612   
            self
        3613  +
            /* ServerBuilderGenerator.kt:428 */
 3105   3614   
        }
 3106         -
        /// Consumes the builder and constructs a [`Tag`](crate::model::Tag).
 3107         -
        ///
        3615  +
        /// /* ServerBuilderGenerator.kt:258 */Consumes the builder and constructs a [`Tag`](crate::model::Tag).
        3616  +
        /// /* ServerBuilderGenerator.kt:260 */
 3108   3617   
        /// The builder fails to construct a [`Tag`](crate::model::Tag) if a [`ConstraintViolation`] occurs.
 3109   3618   
        ///
 3110         -
        /// If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
        3619  +
        /// /* ServerBuilderGenerator.kt:268 */If the builder fails, it will return the _first_ encountered [`ConstraintViolation`].
        3620  +
        /* ServerBuilderGenerator.kt:271 */
 3111   3621   
        pub fn build(self) -> Result<crate::model::Tag, ConstraintViolation> {
 3112   3622   
            self.build_enforcing_all_constraints()
 3113   3623   
        }
        3624  +
        /* ServerBuilderGenerator.kt:283 */
 3114   3625   
        fn build_enforcing_all_constraints(self) -> Result<crate::model::Tag, ConstraintViolation> {
 3115         -
            Ok(crate::model::Tag {
 3116         -
                key: self
 3117         -
                    .key
 3118         -
                    .map(|v| match v {
 3119         -
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 3120         -
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 3121         -
                    })
 3122         -
                    .map(|res| res.map_err(ConstraintViolation::Key))
 3123         -
                    .transpose()?
 3124         -
                    .map(|v: crate::model::TagKey| v.into()),
 3125         -
                value: self
 3126         -
                    .value
 3127         -
                    .map(|v| match v {
 3128         -
                        crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 3129         -
                        crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 3130         -
                    })
 3131         -
                    .map(|res| res.map_err(ConstraintViolation::Value))
 3132         -
                    .transpose()?
 3133         -
                    .map(|v: crate::model::TagValue| v.into()),
 3134         -
            })
 3135         -
        }
 3136         -
    }
 3137         -
}
 3138         -
/// See [`Tag`](crate::model::Tag).
        3626  +
            /* ServerBuilderGenerator.kt:287 */
        3627  +
            Ok(
        3628  +
                /* ServerBuilderGenerator.kt:542 */
        3629  +
                crate::model::Tag {
        3630  +
                    /* ServerBuilderGenerator.kt:546 */
        3631  +
                    key: self
        3632  +
                        .key
        3633  +
                        /* ServerBuilderGenerator.kt:602 */
        3634  +
                        .map(|v| match v {
        3635  +
                            crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
        3636  +
                            crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
        3637  +
                        })
        3638  +
                        /* ServerBuilderGenerator.kt:614 */
        3639  +
                        .map(|res| res.map_err(ConstraintViolation::Key))
        3640  +
                        .transpose()?
        3641  +
                        /* ServerBuilderGenerator.kt:630 */
        3642  +
                        .map(|v: crate::model::TagKey| v.into()),
        3643  +
                    /* ServerBuilderGenerator.kt:546 */
        3644  +
                    value: self
        3645  +
                        .value
        3646  +
                        /* ServerBuilderGenerator.kt:602 */
        3647  +
                        .map(|v| match v {
        3648  +
                            crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
        3649  +
                            crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
        3650  +
                        })
        3651  +
                        /* ServerBuilderGenerator.kt:614 */
        3652  +
                        .map(|res| res.map_err(ConstraintViolation::Value))
        3653  +
                        .transpose()?
        3654  +
                        /* ServerBuilderGenerator.kt:630 */
        3655  +
                        .map(|v: crate::model::TagValue| v.into()),
        3656  +
                    /* ServerBuilderGenerator.kt:542 */
        3657  +
                }, /* ServerBuilderGenerator.kt:287 */
        3658  +
            )
        3659  +
            /* ServerBuilderGenerator.kt:283 */
        3660  +
        }
        3661  +
        /* ServerBuilderGenerator.kt:215 */
        3662  +
    }
        3663  +
        3664  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
        3665  +
}
        3666  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`Tag`](crate::model::Tag).
 3139   3667   
pub mod tag {
 3140   3668   
        3669  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
 3141   3670   
    impl ::std::convert::From<Builder> for crate::model::Tag {
 3142   3671   
        fn from(builder: Builder) -> Self {
 3143   3672   
            builder.build()
 3144   3673   
        }
 3145   3674   
    }
 3146         -
    /// A builder for [`Tag`](crate::model::Tag).
        3675  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`Tag`](crate::model::Tag).
        3676  +
    /* RustType.kt:516 */
 3147   3677   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        3678  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
 3148   3679   
    pub struct Builder {
        3680  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 3149   3681   
        pub(crate) key: ::std::option::Option<::std::string::String>,
        3682  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 3150   3683   
        pub(crate) value: ::std::option::Option<::std::string::String>,
        3684  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
 3151   3685   
    }
        3686  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
 3152   3687   
    impl Builder {
 3153         -
        /// <p>The key of the tag.</p>
        3688  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The key of the tag.</p>
        3689  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3154   3690   
        pub fn key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 3155         -
            self.key = input;
        3691  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        3692  +
            self.key =
        3693  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        3694  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 3156   3695   
            self
        3696  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3157   3697   
        }
 3158         -
        /// <p>The value of the tag.</p>
        3698  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The value of the tag.</p>
        3699  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3159   3700   
        pub fn value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 3160         -
            self.value = input;
        3701  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        3702  +
            self.value =
        3703  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        3704  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 3161   3705   
            self
        3706  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3162   3707   
        }
 3163         -
        /// Consumes the builder and constructs a [`Tag`](crate::model::Tag).
        3708  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`Tag`](crate::model::Tag).
        3709  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
 3164   3710   
        pub fn build(self) -> crate::model::Tag {
 3165   3711   
            self.build_enforcing_required_and_enum_traits()
 3166   3712   
        }
        3713  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
 3167   3714   
        fn build_enforcing_required_and_enum_traits(self) -> crate::model::Tag {
        3715  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
 3168   3716   
            crate::model::Tag {
        3717  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
 3169   3718   
                key: self.key,
        3719  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
 3170   3720   
                value: self.value,
        3721  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
 3171   3722   
            }
        3723  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
 3172   3724   
        }
        3725  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
 3173   3726   
    }
        3727  +
        3728  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3174   3729   
}
 3175   3730   
pub(crate) mod tag_value_internal {
 3176   3731   
        3732  +
    /* ConstrainedStringGenerator.kt:155 */
 3177   3733   
    #[derive(Debug, PartialEq)]
 3178   3734   
    pub enum ConstraintViolation {
 3179   3735   
        /// Error when a string doesn't satisfy its `@length` requirements.
 3180   3736   
        Length(usize),
 3181   3737   
        /// Error when a string doesn't satisfy its `@pattern`.
 3182   3738   
        /// Contains the String that failed the pattern.
 3183   3739   
        Pattern(String),
 3184   3740   
    }
 3185   3741   
 3186   3742   
    impl ::std::fmt::Display for ConstraintViolation {
 3187   3743   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3188   3744   
            let message = match self {
 3189   3745   
                Self::Length(length) => {
 3190   3746   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#TagValue' failed to satisfy constraint: Member must have length between 0 and 255, inclusive", length)
 3191   3747   
                }
 3192   3748   
                Self::Pattern(_) => {
 3193   3749   
                    format!(
 3194   3750   
                        r#"Value provided for `com.amazonaws.ebs#TagValue` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 3195   3751   
                        r#"^[\S\s]+$"#
 3196   3752   
                    )
 3197   3753   
                }
 3198   3754   
            };
 3199   3755   
            write!(f, "{message}")
 3200   3756   
        }
 3201   3757   
    }
 3202   3758   
 3203   3759   
    impl ::std::error::Error for ConstraintViolation {}
        3760  +
    /* ConstrainedStringGenerator.kt:180 */
 3204   3761   
    impl ConstraintViolation {
 3205   3762   
        pub(crate) fn as_validation_exception_field(
 3206   3763   
            self,
 3207   3764   
            path: ::std::string::String,
 3208   3765   
        ) -> crate::model::ValidationExceptionField {
 3209   3766   
            match self {
 3210   3767   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 3211   3768   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 0 and 255, inclusive", length, &path),
 3212   3769   
                            path,
 3213   3770   
                        },
 3214   3771   
    
 3215   3772   
    #[allow(unused_variables)]
 3216   3773   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 3217   3774   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"^[\S\s]+$"#),
 3218   3775   
                            path
 3219   3776   
                        },
 3220   3777   
                        }
 3221   3778   
        }
 3222   3779   
    }
        3780  +
        3781  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3223   3782   
}
 3224   3783   
pub(crate) mod tag_key_internal {
 3225   3784   
        3785  +
    /* ConstrainedStringGenerator.kt:155 */
 3226   3786   
    #[derive(Debug, PartialEq)]
 3227   3787   
    pub enum ConstraintViolation {
 3228   3788   
        /// Error when a string doesn't satisfy its `@length` requirements.
 3229   3789   
        Length(usize),
 3230   3790   
        /// Error when a string doesn't satisfy its `@pattern`.
 3231   3791   
        /// Contains the String that failed the pattern.
 3232   3792   
        Pattern(String),
 3233   3793   
    }
 3234   3794   
 3235   3795   
    impl ::std::fmt::Display for ConstraintViolation {
 3236   3796   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3237   3797   
            let message = match self {
 3238   3798   
                Self::Length(length) => {
 3239   3799   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#TagKey' failed to satisfy constraint: Member must have length between 0 and 127, inclusive", length)
 3240   3800   
                }
 3241   3801   
                Self::Pattern(_) => {
 3242   3802   
                    format!(
 3243   3803   
                        r#"Value provided for `com.amazonaws.ebs#TagKey` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 3244   3804   
                        r#"^[\S\s]+$"#
 3245   3805   
                    )
 3246   3806   
                }
 3247   3807   
            };
 3248   3808   
            write!(f, "{message}")
 3249   3809   
        }
 3250   3810   
    }
 3251   3811   
 3252   3812   
    impl ::std::error::Error for ConstraintViolation {}
        3813  +
    /* ConstrainedStringGenerator.kt:180 */
 3253   3814   
    impl ConstraintViolation {
 3254   3815   
        pub(crate) fn as_validation_exception_field(
 3255   3816   
            self,
 3256   3817   
            path: ::std::string::String,
 3257   3818   
        ) -> crate::model::ValidationExceptionField {
 3258   3819   
            match self {
 3259   3820   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 3260   3821   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 0 and 127, inclusive", length, &path),
 3261   3822   
                            path,
 3262   3823   
                        },
 3263   3824   
    
 3264   3825   
    #[allow(unused_variables)]
 3265   3826   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 3266   3827   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"^[\S\s]+$"#),
 3267   3828   
                            path
 3268   3829   
                        },
 3269   3830   
                        }
 3270   3831   
        }
 3271   3832   
    }
        3833  +
        3834  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3272   3835   
}
 3273   3836   
pub(crate) mod idempotency_token_internal {
 3274   3837   
        3838  +
    /* ConstrainedStringGenerator.kt:155 */
 3275   3839   
    #[derive(Debug, PartialEq)]
 3276   3840   
    pub enum ConstraintViolation {
 3277   3841   
        /// Error when a string doesn't satisfy its `@length` requirements.
 3278   3842   
        Length(usize),
 3279   3843   
        /// Error when a string doesn't satisfy its `@pattern`.
 3280   3844   
        /// Contains the String that failed the pattern.
 3281   3845   
        Pattern(String),
 3282   3846   
    }
 3283   3847   
 3284   3848   
    impl ::std::fmt::Display for ConstraintViolation {
 3285   3849   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3286   3850   
            let message = match self {
 3287   3851   
                Self::Length(length) => {
 3288   3852   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#IdempotencyToken' failed to satisfy constraint: Member must have length between 0 and 255, inclusive", length)
 3289   3853   
                }
 3290   3854   
                Self::Pattern(_) => {
 3291   3855   
                    format!(
 3292   3856   
                        r#"Value provided for `com.amazonaws.ebs#IdempotencyToken` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 3293   3857   
                        r#"^[\S]+$"#
 3294   3858   
                    )
 3295   3859   
                }
 3296   3860   
            };
 3297   3861   
            write!(f, "{message}")
 3298   3862   
        }
 3299   3863   
    }
 3300   3864   
 3301   3865   
    impl ::std::error::Error for ConstraintViolation {}
        3866  +
    /* ConstrainedStringGenerator.kt:180 */
 3302   3867   
    impl ConstraintViolation {
 3303   3868   
        pub(crate) fn as_validation_exception_field(
 3304   3869   
            self,
 3305   3870   
            path: ::std::string::String,
 3306   3871   
        ) -> crate::model::ValidationExceptionField {
 3307   3872   
            match self {
 3308   3873   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 3309   3874   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 0 and 255, inclusive", length, &path),
 3310   3875   
                            path,
 3311   3876   
                        },
 3312   3877   
    
 3313   3878   
    #[allow(unused_variables)]
 3314   3879   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 3315   3880   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"^[\S]+$"#),
 3316   3881   
                            path
 3317   3882   
                        },
 3318   3883   
                        }
 3319   3884   
        }
 3320   3885   
    }
        3886  +
        3887  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3321   3888   
}
 3322   3889   
pub(crate) mod timeout_internal {
 3323   3890   
        3891  +
    /* ConstrainedNumberGenerator.kt:139 */
 3324   3892   
    #[derive(Debug, PartialEq)]
 3325   3893   
    pub enum ConstraintViolation {
 3326   3894   
        Range(i32),
 3327   3895   
    }
 3328   3896   
 3329   3897   
    impl ::std::fmt::Display for ConstraintViolation {
 3330   3898   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3331   3899   
            write!(f, "Value for `com.amazonaws.ebs#Timeout`failed to satisfy constraint: Member must be between 10 and 60, inclusive")
 3332   3900   
        }
 3333   3901   
    }
 3334   3902   
 3335   3903   
    impl ::std::error::Error for ConstraintViolation {}
        3904  +
    /* ConstrainedNumberGenerator.kt:159 */
 3336   3905   
    impl ConstraintViolation {
 3337   3906   
        pub(crate) fn as_validation_exception_field(
 3338   3907   
            self,
 3339   3908   
            path: ::std::string::String,
 3340   3909   
        ) -> crate::model::ValidationExceptionField {
 3341   3910   
            match self {
 3342   3911   
                            Self::Range(_) => crate::model::ValidationExceptionField {
 3343   3912   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 10 and 60, inclusive", &path),
 3344   3913   
                            path,
 3345   3914   
                        },
 3346   3915   
                        }
 3347   3916   
        }
 3348   3917   
    }
        3918  +
        3919  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3349   3920   
}
 3350   3921   
pub(crate) mod checksum_internal {
 3351   3922   
        3923  +
    /* ConstrainedStringGenerator.kt:155 */
 3352   3924   
    #[derive(Debug, PartialEq)]
 3353   3925   
    pub enum ConstraintViolation {
 3354   3926   
        /// Error when a string doesn't satisfy its `@length` requirements.
 3355   3927   
        Length(usize),
 3356   3928   
        /// Error when a string doesn't satisfy its `@pattern`.
 3357   3929   
        /// Contains the String that failed the pattern.
 3358   3930   
        Pattern(String),
 3359   3931   
    }
 3360   3932   
 3361   3933   
    impl ::std::fmt::Display for ConstraintViolation {
 3362   3934   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3363   3935   
            let message = match self {
 3364   3936   
                Self::Length(length) => {
 3365   3937   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#Checksum' failed to satisfy constraint: Member must have length between 0 and 64, inclusive", length)
 3366   3938   
                }
 3367   3939   
                Self::Pattern(_) => {
 3368   3940   
                    format!(
 3369   3941   
                        r#"Value provided for `com.amazonaws.ebs#Checksum` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 3370   3942   
                        r#"^[A-Za-z0-9+/=]+$"#
 3371   3943   
                    )
 3372   3944   
                }
 3373   3945   
            };
 3374   3946   
            write!(f, "{message}")
 3375   3947   
        }
 3376   3948   
    }
 3377   3949   
 3378   3950   
    impl ::std::error::Error for ConstraintViolation {}
        3951  +
    /* ConstrainedStringGenerator.kt:180 */
 3379   3952   
    impl ConstraintViolation {
 3380   3953   
        pub(crate) fn as_validation_exception_field(
 3381   3954   
            self,
 3382   3955   
            path: ::std::string::String,
 3383   3956   
        ) -> crate::model::ValidationExceptionField {
 3384   3957   
            match self {
 3385   3958   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 3386   3959   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 0 and 64, inclusive", length, &path),
 3387   3960   
                            path,
 3388   3961   
                        },
 3389   3962   
    
 3390   3963   
    #[allow(unused_variables)]
 3391   3964   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 3392   3965   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"^[A-Za-z0-9+/=]+$"#),
 3393   3966   
                            path
 3394   3967   
                        },
 3395   3968   
                        }
 3396   3969   
        }
 3397   3970   
    }
        3971  +
        3972  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3398   3973   
}
 3399   3974   
pub(crate) mod progress_internal {
 3400   3975   
        3976  +
    /* ConstrainedNumberGenerator.kt:139 */
 3401   3977   
    #[derive(Debug, PartialEq)]
 3402   3978   
    pub enum ConstraintViolation {
 3403   3979   
        Range(i32),
 3404   3980   
    }
 3405   3981   
 3406   3982   
    impl ::std::fmt::Display for ConstraintViolation {
 3407   3983   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3408   3984   
            write!(f, "Value for `com.amazonaws.ebs#Progress`failed to satisfy constraint: Member must be between 0 and 100, inclusive")
 3409   3985   
        }
 3410   3986   
    }
 3411   3987   
 3412   3988   
    impl ::std::error::Error for ConstraintViolation {}
        3989  +
    /* ConstrainedNumberGenerator.kt:159 */
 3413   3990   
    impl ConstraintViolation {
 3414   3991   
        pub(crate) fn as_validation_exception_field(
 3415   3992   
            self,
 3416   3993   
            path: ::std::string::String,
 3417   3994   
        ) -> crate::model::ValidationExceptionField {
 3418   3995   
            match self {
 3419   3996   
                            Self::Range(_) => crate::model::ValidationExceptionField {
 3420   3997   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 0 and 100, inclusive", &path),
 3421   3998   
                            path,
 3422   3999   
                        },
 3423   4000   
                        }
 3424   4001   
        }
 3425   4002   
    }
        4003  +
        4004  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3426   4005   
}
 3427   4006   
pub(crate) mod block_index_internal {
 3428   4007   
        4008  +
    /* ConstrainedNumberGenerator.kt:139 */
 3429   4009   
    #[derive(Debug, PartialEq)]
 3430   4010   
    pub enum ConstraintViolation {
 3431   4011   
        Range(i32),
 3432   4012   
    }
 3433   4013   
 3434   4014   
    impl ::std::fmt::Display for ConstraintViolation {
 3435   4015   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3436   4016   
            write!(f, "Value for `com.amazonaws.ebs#BlockIndex`failed to satisfy constraint: Member must be greater than or equal to 0")
 3437   4017   
        }
 3438   4018   
    }
 3439   4019   
 3440   4020   
    impl ::std::error::Error for ConstraintViolation {}
        4021  +
    /* ConstrainedNumberGenerator.kt:159 */
 3441   4022   
    impl ConstraintViolation {
 3442   4023   
        pub(crate) fn as_validation_exception_field(
 3443   4024   
            self,
 3444   4025   
            path: ::std::string::String,
 3445   4026   
        ) -> crate::model::ValidationExceptionField {
 3446   4027   
            match self {
 3447   4028   
                            Self::Range(_) => crate::model::ValidationExceptionField {
 3448   4029   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to 0", &path),
 3449   4030   
                            path,
 3450   4031   
                        },
 3451   4032   
                        }
 3452   4033   
        }
 3453   4034   
    }
        4035  +
        4036  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3454   4037   
}
 3455         -
/// See [`Block`](crate::model::Block).
        4038  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`Block`](crate::model::Block).
 3456   4039   
pub mod block {
 3457   4040   
        4041  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
 3458   4042   
    impl ::std::convert::From<Builder> for crate::model::Block {
 3459   4043   
        fn from(builder: Builder) -> Self {
 3460   4044   
            builder.build()
 3461   4045   
        }
 3462   4046   
    }
 3463         -
    /// A builder for [`Block`](crate::model::Block).
        4047  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`Block`](crate::model::Block).
        4048  +
    /* RustType.kt:516 */
 3464   4049   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        4050  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
 3465   4051   
    pub struct Builder {
        4052  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 3466   4053   
        pub(crate) block_token: ::std::option::Option<::std::string::String>,
        4054  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 3467   4055   
        pub(crate) block_index: ::std::option::Option<i32>,
        4056  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
 3468   4057   
    }
        4058  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
 3469   4059   
    impl Builder {
 3470         -
        /// <p>The block token for the block index.</p>
        4060  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The block token for the block index.</p>
        4061  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3471   4062   
        pub fn block_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
 3472         -
            self.block_token = input;
        4063  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        4064  +
            self.block_token =
        4065  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        4066  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 3473   4067   
            self
        4068  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3474   4069   
        }
 3475         -
        /// <p>The block index.</p>
        4070  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The block index.</p>
        4071  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3476   4072   
        pub fn block_index(mut self, input: ::std::option::Option<i32>) -> Self {
 3477         -
            self.block_index = input;
        4073  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        4074  +
            self.block_index =
        4075  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        4076  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 3478   4077   
            self
        4078  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3479   4079   
        }
 3480         -
        /// Consumes the builder and constructs a [`Block`](crate::model::Block).
        4080  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`Block`](crate::model::Block).
        4081  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
 3481   4082   
        pub fn build(self) -> crate::model::Block {
 3482   4083   
            self.build_enforcing_required_and_enum_traits()
 3483   4084   
        }
        4085  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
 3484   4086   
        fn build_enforcing_required_and_enum_traits(self) -> crate::model::Block {
        4087  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
 3485   4088   
            crate::model::Block {
        4089  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
 3486   4090   
                block_token: self.block_token,
        4091  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
 3487   4092   
                block_index: self.block_index,
        4093  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
 3488   4094   
            }
        4095  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
 3489   4096   
        }
        4097  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
 3490   4098   
    }
        4099  +
        4100  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3491   4101   
}
 3492   4102   
pub(crate) mod block_token_internal {
 3493   4103   
        4104  +
    /* ConstrainedStringGenerator.kt:155 */
 3494   4105   
    #[derive(Debug, PartialEq)]
 3495   4106   
    pub enum ConstraintViolation {
 3496   4107   
        /// Error when a string doesn't satisfy its `@length` requirements.
 3497   4108   
        Length(usize),
 3498   4109   
        /// Error when a string doesn't satisfy its `@pattern`.
 3499   4110   
        /// Contains the String that failed the pattern.
 3500   4111   
        Pattern(String),
 3501   4112   
    }
 3502   4113   
 3503   4114   
    impl ::std::fmt::Display for ConstraintViolation {
 3504   4115   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3505   4116   
            let message = match self {
 3506   4117   
                Self::Length(length) => {
 3507   4118   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#BlockToken' failed to satisfy constraint: Member must have length between 0 and 256, inclusive", length)
 3508   4119   
                }
 3509   4120   
                Self::Pattern(_) => {
 3510   4121   
                    format!(
 3511   4122   
                        r#"Value provided for `com.amazonaws.ebs#BlockToken` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 3512   4123   
                        r#"^[A-Za-z0-9+/=]+$"#
 3513   4124   
                    )
 3514   4125   
                }
 3515   4126   
            };
 3516   4127   
            write!(f, "{message}")
 3517   4128   
        }
 3518   4129   
    }
 3519   4130   
 3520   4131   
    impl ::std::error::Error for ConstraintViolation {}
        4132  +
    /* ConstrainedStringGenerator.kt:180 */
 3521   4133   
    impl ConstraintViolation {
 3522   4134   
        pub(crate) fn as_validation_exception_field(
 3523   4135   
            self,
 3524   4136   
            path: ::std::string::String,
 3525   4137   
        ) -> crate::model::ValidationExceptionField {
 3526   4138   
            match self {
 3527   4139   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 3528   4140   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 0 and 256, inclusive", length, &path),
 3529   4141   
                            path,
 3530   4142   
                        },
 3531   4143   
    
 3532   4144   
    #[allow(unused_variables)]
 3533   4145   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 3534   4146   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"^[A-Za-z0-9+/=]+$"#),
 3535   4147   
                            path
 3536   4148   
                        },
 3537   4149   
                        }
 3538   4150   
        }
 3539   4151   
    }
        4152  +
        4153  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3540   4154   
}
 3541   4155   
pub(crate) mod page_token_internal {
 3542   4156   
        4157  +
    /* ConstrainedStringGenerator.kt:155 */
 3543   4158   
    #[derive(Debug, PartialEq)]
 3544   4159   
    pub enum ConstraintViolation {
 3545   4160   
        /// Error when a string doesn't satisfy its `@length` requirements.
 3546   4161   
        Length(usize),
 3547   4162   
        /// Error when a string doesn't satisfy its `@pattern`.
 3548   4163   
        /// Contains the String that failed the pattern.
 3549   4164   
        Pattern(String),
 3550   4165   
    }
 3551   4166   
 3552   4167   
    impl ::std::fmt::Display for ConstraintViolation {
 3553   4168   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3554   4169   
            let message = match self {
 3555   4170   
                Self::Length(length) => {
 3556   4171   
                    format!("Value with length {} provided for 'com.amazonaws.ebs#PageToken' failed to satisfy constraint: Member must have length between 0 and 256, inclusive", length)
 3557   4172   
                }
 3558   4173   
                Self::Pattern(_) => {
 3559   4174   
                    format!(
 3560   4175   
                        r#"Value provided for `com.amazonaws.ebs#PageToken` failed to satisfy the constraint: Member must match the regular expression pattern: {}"#,
 3561   4176   
                        r#"^[A-Za-z0-9+/=]+$"#
 3562   4177   
                    )
 3563   4178   
                }
 3564   4179   
            };
 3565   4180   
            write!(f, "{message}")
 3566   4181   
        }
 3567   4182   
    }
 3568   4183   
 3569   4184   
    impl ::std::error::Error for ConstraintViolation {}
        4185  +
    /* ConstrainedStringGenerator.kt:180 */
 3570   4186   
    impl ConstraintViolation {
 3571   4187   
        pub(crate) fn as_validation_exception_field(
 3572   4188   
            self,
 3573   4189   
            path: ::std::string::String,
 3574   4190   
        ) -> crate::model::ValidationExceptionField {
 3575   4191   
            match self {
 3576   4192   
                            Self::Length(length) => crate::model::ValidationExceptionField {
 3577   4193   
                            message: format!("Value with length {} at '{}' failed to satisfy constraint: Member must have length between 0 and 256, inclusive", length, &path),
 3578   4194   
                            path,
 3579   4195   
                        },
 3580   4196   
    
 3581   4197   
    #[allow(unused_variables)]
 3582   4198   
    Self::Pattern(_) => crate::model::ValidationExceptionField {
 3583   4199   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must satisfy regular expression pattern: {}", &path, r#"^[A-Za-z0-9+/=]+$"#),
 3584   4200   
                            path
 3585   4201   
                        },
 3586   4202   
                        }
 3587   4203   
        }
 3588   4204   
    }
        4205  +
        4206  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3589   4207   
}
 3590   4208   
pub(crate) mod max_results_internal {
 3591   4209   
        4210  +
    /* ConstrainedNumberGenerator.kt:139 */
 3592   4211   
    #[derive(Debug, PartialEq)]
 3593   4212   
    pub enum ConstraintViolation {
 3594   4213   
        Range(i32),
 3595   4214   
    }
 3596   4215   
 3597   4216   
    impl ::std::fmt::Display for ConstraintViolation {
 3598   4217   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3599   4218   
            write!(f, "Value for `com.amazonaws.ebs#MaxResults`failed to satisfy constraint: Member must be between 100 and 10000, inclusive")
 3600   4219   
        }
 3601   4220   
    }
 3602   4221   
 3603   4222   
    impl ::std::error::Error for ConstraintViolation {}
        4223  +
    /* ConstrainedNumberGenerator.kt:159 */
 3604   4224   
    impl ConstraintViolation {
 3605   4225   
        pub(crate) fn as_validation_exception_field(
 3606   4226   
            self,
 3607   4227   
            path: ::std::string::String,
 3608   4228   
        ) -> crate::model::ValidationExceptionField {
 3609   4229   
            match self {
 3610   4230   
                            Self::Range(_) => crate::model::ValidationExceptionField {
 3611   4231   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be between 100 and 10000, inclusive", &path),
 3612   4232   
                            path,
 3613   4233   
                        },
 3614   4234   
                        }
 3615   4235   
        }
 3616   4236   
    }
        4237  +
        4238  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3617   4239   
}
 3618         -
/// See [`ChangedBlock`](crate::model::ChangedBlock).
        4240  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`ChangedBlock`](crate::model::ChangedBlock).
 3619   4241   
pub mod changed_block {
 3620   4242   
        4243  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
 3621   4244   
    impl ::std::convert::From<Builder> for crate::model::ChangedBlock {
 3622   4245   
        fn from(builder: Builder) -> Self {
 3623   4246   
            builder.build()
 3624   4247   
        }
 3625   4248   
    }
 3626         -
    /// A builder for [`ChangedBlock`](crate::model::ChangedBlock).
        4249  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`ChangedBlock`](crate::model::ChangedBlock).
        4250  +
    /* RustType.kt:516 */
 3627   4251   
    #[derive(::std::clone::Clone, ::std::default::Default)]
        4252  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
 3628   4253   
    pub struct Builder {
        4254  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 3629   4255   
        pub(crate) first_block_token: ::std::option::Option<::std::string::String>,
        4256  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 3630   4257   
        pub(crate) block_index: ::std::option::Option<i32>,
        4258  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
 3631   4259   
        pub(crate) second_block_token: ::std::option::Option<::std::string::String>,
        4260  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
 3632   4261   
    }
        4262  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
 3633   4263   
    impl Builder {
 3634         -
        /// <p>The block token for the block index of the <code>FirstSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation. This value is absent if the first snapshot does not have the changed block that is on the second snapshot.</p>
        4264  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The block token for the block index of the <code>FirstSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation. This value is absent if the first snapshot does not have the changed block that is on the second snapshot.</p>
        4265  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3635   4266   
        pub fn first_block_token(
 3636   4267   
            mut self,
 3637   4268   
            input: ::std::option::Option<::std::string::String>,
 3638   4269   
        ) -> Self {
 3639         -
            self.first_block_token = input;
        4270  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        4271  +
            self.first_block_token =
        4272  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        4273  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 3640   4274   
            self
        4275  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3641   4276   
        }
 3642         -
        /// <p>The block index.</p>
        4277  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The block index.</p>
        4278  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3643   4279   
        pub fn block_index(mut self, input: ::std::option::Option<i32>) -> Self {
 3644         -
            self.block_index = input;
        4280  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        4281  +
            self.block_index =
        4282  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        4283  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 3645   4284   
            self
        4285  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3646   4286   
        }
 3647         -
        /// <p>The block token for the block index of the <code>SecondSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation.</p>
        4287  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The block token for the block index of the <code>SecondSnapshotId</code> specified in the <code>ListChangedBlocks</code> operation.</p>
        4288  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3648   4289   
        pub fn second_block_token(
 3649   4290   
            mut self,
 3650   4291   
            input: ::std::option::Option<::std::string::String>,
 3651   4292   
        ) -> Self {
 3652         -
            self.second_block_token = input;
        4293  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        4294  +
            self.second_block_token =
        4295  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        4296  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
 3653   4297   
            self
        4298  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
 3654   4299   
        }
 3655         -
        /// Consumes the builder and constructs a [`ChangedBlock`](crate::model::ChangedBlock).
        4300  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`ChangedBlock`](crate::model::ChangedBlock).
        4301  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
 3656   4302   
        pub fn build(self) -> crate::model::ChangedBlock {
 3657   4303   
            self.build_enforcing_required_and_enum_traits()
 3658   4304   
        }
        4305  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
 3659   4306   
        fn build_enforcing_required_and_enum_traits(self) -> crate::model::ChangedBlock {
        4307  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
 3660   4308   
            crate::model::ChangedBlock {
        4309  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
 3661   4310   
                first_block_token: self.first_block_token,
        4311  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
 3662   4312   
                block_index: self.block_index,
        4313  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
 3663   4314   
                second_block_token: self.second_block_token,
        4315  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
 3664   4316   
            }
        4317  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
 3665   4318   
        }
        4319  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
 3666   4320   
    }
        4321  +
        4322  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3667   4323   
}
 3668   4324   
pub(crate) mod changed_blocks_count_internal {
 3669   4325   
        4326  +
    /* ConstrainedNumberGenerator.kt:139 */
 3670   4327   
    #[derive(Debug, PartialEq)]
 3671   4328   
    pub enum ConstraintViolation {
 3672   4329   
        Range(i32),
 3673   4330   
    }
 3674   4331   
 3675   4332   
    impl ::std::fmt::Display for ConstraintViolation {
 3676   4333   
        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
 3677   4334   
            write!(f, "Value for `com.amazonaws.ebs#ChangedBlocksCount`failed to satisfy constraint: Member must be greater than or equal to 0")
 3678   4335   
        }
 3679   4336   
    }
 3680   4337   
 3681   4338   
    impl ::std::error::Error for ConstraintViolation {}
        4339  +
    /* ConstrainedNumberGenerator.kt:159 */
 3682   4340   
    impl ConstraintViolation {
 3683   4341   
        pub(crate) fn as_validation_exception_field(
 3684   4342   
            self,
 3685   4343   
            path: ::std::string::String,
 3686   4344   
        ) -> crate::model::ValidationExceptionField {
 3687   4345   
            match self {
 3688   4346   
                            Self::Range(_) => crate::model::ValidationExceptionField {
 3689   4347   
                            message: format!("Value at '{}' failed to satisfy constraint: Member must be greater than or equal to 0", &path),
 3690   4348   
                            path,
 3691   4349   
                        },
 3692   4350   
                        }
 3693   4351   
        }
 3694   4352   
    }
        4353  +
        4354  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3695   4355   
}

tmp-codegen-diff/codegen-server-test-python/ebs/rust-server-codegen-python/src/operation.rs

@@ -1,1 +31,32 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
    2      3   
const CONTENT_TYPE_STARTSNAPSHOT: ::mime::Mime = ::mime::APPLICATION_JSON;
    3      4   
::pin_project_lite::pin_project! {
    4      5   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
    5      6   
    /// [`StartSnapshotInput`](crate::input::StartSnapshotInput) using modelled bindings.
    6      7   
    pub struct StartSnapshotInputFuture {
    7      8   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::StartSnapshotInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
    8      9   
    }
    9     10   
}
   10     11   
   11     12   
impl std::future::Future for StartSnapshotInputFuture {
@@ -38,39 +133,137 @@
   58     59   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
   59     60   
                    e,
   60     61   
                )
   61     62   
            },
   62     63   
        );
   63     64   
        StartSnapshotInputFuture {
   64     65   
            inner: Box::pin(fut),
   65     66   
        }
   66     67   
    }
   67     68   
}
          69  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
   68     70   
impl
   69     71   
    ::aws_smithy_http_server::response::IntoResponse<
   70     72   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
   71     73   
    > for crate::output::StartSnapshotOutput
   72     74   
{
   73     75   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
   74     76   
        match crate::protocol_serde::shape_start_snapshot::ser_start_snapshot_http_response(self) {
   75     77   
            Ok(response) => response,
   76     78   
            Err(e) => {
   77     79   
                ::tracing::error!(error = %e, "failed to serialize response");
   78     80   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
   79     81   
            }
   80     82   
        }
   81     83   
    }
   82     84   
}
          85  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
   83     86   
impl
   84     87   
    ::aws_smithy_http_server::response::IntoResponse<
   85     88   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
   86     89   
    > for crate::error::StartSnapshotError
   87     90   
{
   88     91   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
   89     92   
        match crate::protocol_serde::shape_start_snapshot::ser_start_snapshot_http_error(&self) {
   90     93   
            Ok(mut response) => {
   91     94   
                response.extensions_mut().insert(
   92     95   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
   93     96   
                );
   94     97   
                response
   95     98   
            }
   96     99   
            Err(e) => {
   97    100   
                ::tracing::error!(error = %e, "failed to serialize response");
   98    101   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
   99    102   
            }
  100    103   
        }
  101    104   
    }
  102    105   
}
  103    106   
         107  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  104    108   
const CONTENT_TYPE_PUTSNAPSHOTBLOCK: ::mime::Mime = ::mime::APPLICATION_JSON;
  105    109   
::pin_project_lite::pin_project! {
  106    110   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  107    111   
    /// [`PutSnapshotBlockInput`](crate::input::PutSnapshotBlockInput) using modelled bindings.
  108    112   
    pub struct PutSnapshotBlockInputFuture {
  109    113   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::PutSnapshotBlockInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  110    114   
    }
  111    115   
}
  112    116   
  113    117   
impl std::future::Future for PutSnapshotBlockInputFuture {
@@ -143,147 +242,249 @@
  163    167   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  164    168   
                    e,
  165    169   
                )
  166    170   
            },
  167    171   
        );
  168    172   
        PutSnapshotBlockInputFuture {
  169    173   
            inner: Box::pin(fut),
  170    174   
        }
  171    175   
    }
  172    176   
}
         177  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  173    178   
impl
  174    179   
    ::aws_smithy_http_server::response::IntoResponse<
  175    180   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  176    181   
    > for crate::output::PutSnapshotBlockOutput
  177    182   
{
  178    183   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  179    184   
        match crate::protocol_serde::shape_put_snapshot_block::ser_put_snapshot_block_http_response(
  180    185   
            self,
  181    186   
        ) {
  182    187   
            Ok(response) => response,
  183    188   
            Err(e) => {
  184    189   
                ::tracing::error!(error = %e, "failed to serialize response");
  185    190   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  186    191   
            }
  187    192   
        }
  188    193   
    }
  189    194   
}
         195  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  190    196   
impl
  191    197   
    ::aws_smithy_http_server::response::IntoResponse<
  192    198   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  193    199   
    > for crate::error::PutSnapshotBlockError
  194    200   
{
  195    201   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  196    202   
        match crate::protocol_serde::shape_put_snapshot_block::ser_put_snapshot_block_http_error(
  197    203   
            &self,
  198    204   
        ) {
  199    205   
            Ok(mut response) => {
  200    206   
                response.extensions_mut().insert(
  201    207   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
  202    208   
                );
  203    209   
                response
  204    210   
            }
  205    211   
            Err(e) => {
  206    212   
                ::tracing::error!(error = %e, "failed to serialize response");
  207    213   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  208    214   
            }
  209    215   
        }
  210    216   
    }
  211    217   
}
  212    218   
         219  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  213    220   
const CONTENT_TYPE_LISTSNAPSHOTBLOCKS: ::mime::Mime = ::mime::APPLICATION_JSON;
  214    221   
::pin_project_lite::pin_project! {
  215    222   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  216    223   
    /// [`ListSnapshotBlocksInput`](crate::input::ListSnapshotBlocksInput) using modelled bindings.
  217    224   
    pub struct ListSnapshotBlocksInputFuture {
  218    225   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ListSnapshotBlocksInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  219    226   
    }
  220    227   
}
  221    228   
  222    229   
impl std::future::Future for ListSnapshotBlocksInputFuture {
@@ -251,258 +348,358 @@
  271    278   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  272    279   
                    e,
  273    280   
                )
  274    281   
            },
  275    282   
        );
  276    283   
        ListSnapshotBlocksInputFuture {
  277    284   
            inner: Box::pin(fut),
  278    285   
        }
  279    286   
    }
  280    287   
}
         288  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  281    289   
impl
  282    290   
    ::aws_smithy_http_server::response::IntoResponse<
  283    291   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  284    292   
    > for crate::output::ListSnapshotBlocksOutput
  285    293   
{
  286    294   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  287    295   
        match crate::protocol_serde::shape_list_snapshot_blocks::ser_list_snapshot_blocks_http_response(self) {
  288    296   
                        Ok(response) => response,
  289    297   
                        Err(e) => {
  290    298   
                            ::tracing::error!(error = %e, "failed to serialize response");
  291    299   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  292    300   
                        }
  293    301   
                    }
  294    302   
    }
  295    303   
}
         304  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  296    305   
impl
  297    306   
    ::aws_smithy_http_server::response::IntoResponse<
  298    307   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  299    308   
    > for crate::error::ListSnapshotBlocksError
  300    309   
{
  301    310   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  302    311   
        match crate::protocol_serde::shape_list_snapshot_blocks::ser_list_snapshot_blocks_http_error(
  303    312   
            &self,
  304    313   
        ) {
  305    314   
            Ok(mut response) => {
  306    315   
                response.extensions_mut().insert(
  307    316   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
  308    317   
                );
  309    318   
                response
  310    319   
            }
  311    320   
            Err(e) => {
  312    321   
                ::tracing::error!(error = %e, "failed to serialize response");
  313    322   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  314    323   
            }
  315    324   
        }
  316    325   
    }
  317    326   
}
  318    327   
         328  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  319    329   
const CONTENT_TYPE_LISTCHANGEDBLOCKS: ::mime::Mime = ::mime::APPLICATION_JSON;
  320    330   
::pin_project_lite::pin_project! {
  321    331   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  322    332   
    /// [`ListChangedBlocksInput`](crate::input::ListChangedBlocksInput) using modelled bindings.
  323    333   
    pub struct ListChangedBlocksInputFuture {
  324    334   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::ListChangedBlocksInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  325    335   
    }
  326    336   
}
  327    337   
  328    338   
impl std::future::Future for ListChangedBlocksInputFuture {
@@ -357,367 +454,467 @@
  377    387   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  378    388   
                    e,
  379    389   
                )
  380    390   
            },
  381    391   
        );
  382    392   
        ListChangedBlocksInputFuture {
  383    393   
            inner: Box::pin(fut),
  384    394   
        }
  385    395   
    }
  386    396   
}
         397  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  387    398   
impl
  388    399   
    ::aws_smithy_http_server::response::IntoResponse<
  389    400   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  390    401   
    > for crate::output::ListChangedBlocksOutput
  391    402   
{
  392    403   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  393    404   
        match crate::protocol_serde::shape_list_changed_blocks::ser_list_changed_blocks_http_response(self) {
  394    405   
                        Ok(response) => response,
  395    406   
                        Err(e) => {
  396    407   
                            ::tracing::error!(error = %e, "failed to serialize response");
  397    408   
                            ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  398    409   
                        }
  399    410   
                    }
  400    411   
    }
  401    412   
}
         413  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  402    414   
impl
  403    415   
    ::aws_smithy_http_server::response::IntoResponse<
  404    416   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  405    417   
    > for crate::error::ListChangedBlocksError
  406    418   
{
  407    419   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  408    420   
        match crate::protocol_serde::shape_list_changed_blocks::ser_list_changed_blocks_http_error(
  409    421   
            &self,
  410    422   
        ) {
  411    423   
            Ok(mut response) => {
  412    424   
                response.extensions_mut().insert(
  413    425   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
  414    426   
                );
  415    427   
                response
  416    428   
            }
  417    429   
            Err(e) => {
  418    430   
                ::tracing::error!(error = %e, "failed to serialize response");
  419    431   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  420    432   
            }
  421    433   
        }
  422    434   
    }
  423    435   
}
  424    436   
         437  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  425    438   
const CONTENT_TYPE_GETSNAPSHOTBLOCK: ::mime::Mime = ::mime::APPLICATION_OCTET_STREAM;
  426    439   
::pin_project_lite::pin_project! {
  427    440   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  428    441   
    /// [`GetSnapshotBlockInput`](crate::input::GetSnapshotBlockInput) using modelled bindings.
  429    442   
    pub struct GetSnapshotBlockInputFuture {
  430    443   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::GetSnapshotBlockInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  431    444   
    }
  432    445   
}
  433    446   
  434    447   
impl std::future::Future for GetSnapshotBlockInputFuture {
@@ -463,476 +562,578 @@
  483    496   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  484    497   
                    e,
  485    498   
                )
  486    499   
            },
  487    500   
        );
  488    501   
        GetSnapshotBlockInputFuture {
  489    502   
            inner: Box::pin(fut),
  490    503   
        }
  491    504   
    }
  492    505   
}
         506  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  493    507   
impl
  494    508   
    ::aws_smithy_http_server::response::IntoResponse<
  495    509   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  496    510   
    > for crate::output::GetSnapshotBlockOutput
  497    511   
{
  498    512   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  499    513   
        match crate::protocol_serde::shape_get_snapshot_block::ser_get_snapshot_block_http_response(
  500    514   
            self,
  501    515   
        ) {
  502    516   
            Ok(response) => response,
  503    517   
            Err(e) => {
  504    518   
                ::tracing::error!(error = %e, "failed to serialize response");
  505    519   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  506    520   
            }
  507    521   
        }
  508    522   
    }
  509    523   
}
         524  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  510    525   
impl
  511    526   
    ::aws_smithy_http_server::response::IntoResponse<
  512    527   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  513    528   
    > for crate::error::GetSnapshotBlockError
  514    529   
{
  515    530   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  516    531   
        match crate::protocol_serde::shape_get_snapshot_block::ser_get_snapshot_block_http_error(
  517    532   
            &self,
  518    533   
        ) {
  519    534   
            Ok(mut response) => {
  520    535   
                response.extensions_mut().insert(
  521    536   
                    ::aws_smithy_http_server::extension::ModeledErrorExtension::new(self.name()),
  522    537   
                );
  523    538   
                response
  524    539   
            }
  525    540   
            Err(e) => {
  526    541   
                ::tracing::error!(error = %e, "failed to serialize response");
  527    542   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  528    543   
            }
  529    544   
        }
  530    545   
    }
  531    546   
}
  532    547   
         548  +
/* ServerHttpBoundProtocolGenerator.kt:266 */
  533    549   
const CONTENT_TYPE_COMPLETESNAPSHOT: ::mime::Mime = ::mime::APPLICATION_JSON;
  534    550   
::pin_project_lite::pin_project! {
  535    551   
    /// A [`Future`](std::future::Future) aggregating the body bytes of a [`Request`] and constructing the
  536    552   
    /// [`CompleteSnapshotInput`](crate::input::CompleteSnapshotInput) using modelled bindings.
  537    553   
    pub struct CompleteSnapshotInputFuture {
  538    554   
        inner: std::pin::Pin<Box<dyn std::future::Future<Output = Result<crate::input::CompleteSnapshotInput, ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError>> + Send>>
  539    555   
    }
  540    556   
}
  541    557   
  542    558   
impl std::future::Future for CompleteSnapshotInputFuture {
@@ -571,587 +639,657 @@
  591    607   
                ::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(
  592    608   
                    e,
  593    609   
                )
  594    610   
            },
  595    611   
        );
  596    612   
        CompleteSnapshotInputFuture {
  597    613   
            inner: Box::pin(fut),
  598    614   
        }
  599    615   
    }
  600    616   
}
         617  +
/* ServerHttpBoundProtocolGenerator.kt:329 */
  601    618   
impl
  602    619   
    ::aws_smithy_http_server::response::IntoResponse<
  603    620   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  604    621   
    > for crate::output::CompleteSnapshotOutput
  605    622   
{
  606    623   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  607    624   
        match crate::protocol_serde::shape_complete_snapshot::ser_complete_snapshot_http_response(
  608    625   
            self,
  609    626   
        ) {
  610    627   
            Ok(response) => response,
  611    628   
            Err(e) => {
  612    629   
                ::tracing::error!(error = %e, "failed to serialize response");
  613    630   
                ::aws_smithy_http_server::response::IntoResponse::<::aws_smithy_http_server::protocol::rest_json_1::RestJson1>::into_response(::aws_smithy_http_server::protocol::rest_json_1::runtime_error::RuntimeError::from(e))
  614    631   
            }
  615    632   
        }
  616    633   
    }
  617    634   
}
         635  +
/* ServerHttpBoundProtocolGenerator.kt:350 */
  618    636   
impl
  619    637   
    ::aws_smithy_http_server::response::IntoResponse<
  620    638   
        ::aws_smithy_http_server::protocol::rest_json_1::RestJson1,
  621    639   
    > for crate::error::CompleteSnapshotError
  622    640   
{
  623    641   
    fn into_response(self) -> ::aws_smithy_http_server::response::Response {
  624    642   
        match crate::protocol_serde::shape_complete_snapshot::ser_complete_snapshot_http_error(
  625    643   
            &self,
  626    644   
        ) {
  627    645   
            Ok(mut response) => {