Server Test Python

Server Test Python

rev. dfb5149b65b7bcc09edd15b8e071ad43b5ac5943 (ignoring whitespace)

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 {
        3626  +
            /* ServerBuilderGenerator.kt:287 */
        3627  +
            Ok(
        3628  +
                /* ServerBuilderGenerator.kt:542 */
        3629  +
                crate::model::Tag {
        3630  +
                    /* ServerBuilderGenerator.kt:546 */
 3116   3631   
                    key: self
 3117   3632   
                        .key
        3633  +
                        /* ServerBuilderGenerator.kt:602 */
 3118   3634   
                        .map(|v| match v {
 3119   3635   
                            crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 3120   3636   
                            crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 3121   3637   
                        })
        3638  +
                        /* ServerBuilderGenerator.kt:614 */
 3122   3639   
                        .map(|res| res.map_err(ConstraintViolation::Key))
 3123   3640   
                        .transpose()?
        3641  +
                        /* ServerBuilderGenerator.kt:630 */
 3124   3642   
                        .map(|v: crate::model::TagKey| v.into()),
        3643  +
                    /* ServerBuilderGenerator.kt:546 */
 3125   3644   
                    value: self
 3126   3645   
                        .value
        3646  +
                        /* ServerBuilderGenerator.kt:602 */
 3127   3647   
                        .map(|v| match v {
 3128   3648   
                            crate::constrained::MaybeConstrained::Constrained(x) => Ok(x),
 3129   3649   
                            crate::constrained::MaybeConstrained::Unconstrained(x) => x.try_into(),
 3130   3650   
                        })
        3651  +
                        /* ServerBuilderGenerator.kt:614 */
 3131   3652   
                        .map(|res| res.map_err(ConstraintViolation::Value))
 3132   3653   
                        .transpose()?
        3654  +
                        /* ServerBuilderGenerator.kt:630 */
 3133   3655   
                        .map(|v: crate::model::TagValue| v.into()),
 3134         -
            })
        3656  +
                    /* ServerBuilderGenerator.kt:542 */
        3657  +
                }, /* ServerBuilderGenerator.kt:287 */
        3658  +
            )
        3659  +
            /* ServerBuilderGenerator.kt:283 */
 3135   3660   
        }
        3661  +
        /* ServerBuilderGenerator.kt:215 */
 3136   3662   
    }
        3663  +
        3664  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
 3137   3665   
}
 3138         -
/// See [`Tag`](crate::model::Tag).
        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) => {

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

@@ -1,1 +0,243 @@
    1      1   
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
    2         -
    3         -
/// <p>Creates a new Amazon EBS snapshot. The new snapshot enters the <code>pending</code> state after the request completes.</p>
           2  +
/* ServerOperationGenerator.kt:48 */
           3  +
/// /* ServerOperationGenerator.kt:48 */<p>Creates a new Amazon EBS snapshot. The new snapshot enters the <code>pending</code> state after the request completes.</p>
    4      4   
/// <p>After creating the snapshot, use <a href="https://docs.aws.amazon.com/ebs/latest/APIReference/API_PutSnapshotBlock.html"> PutSnapshotBlock</a> to write blocks of data to the snapshot.</p>
           5  +
/* ServerOperationGenerator.kt:55 */
    5      6   
pub struct StartSnapshot;
    6      7   
    7      8   
impl ::aws_smithy_http_server::operation::OperationShape for StartSnapshot {
    8      9   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
    9     10   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   10     11   
            "com.amazonaws.ebs#StartSnapshot",
   11     12   
            "com.amazonaws.ebs",
   12     13   
            "StartSnapshot",
   13     14   
        );
   14     15   
   15     16   
    type Input = crate::input::StartSnapshotInput;
   16     17   
    type Output = crate::output::StartSnapshotOutput;
   17     18   
    type Error = crate::error::StartSnapshotError;
   18     19   
}
   19     20   
   20     21   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for StartSnapshot {
   21     22   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   22     23   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   23     24   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
   24     25   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   25     26   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   26     27   
        >,
   27     28   
    >;
   28     29   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
   29     30   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   30     31   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   31     32   
    >;
   32     33   
   33     34   
    fn request_fmt() -> Self::RequestFmt {
   34     35   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   35     36   
    }
   36     37   
   37     38   
    fn response_fmt() -> Self::ResponseFmt {
   38     39   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   39     40   
    }
   40     41   
}
          42  +
/* ServerOperationGenerator.kt:88 */
   41     43   
   42         -
/// <p>Writes a block of data to a snapshot. If the specified block contains data, the existing data is overwritten. The target snapshot must be in the <code>pending</code> state.</p>
          44  +
/// /* ServerOperationGenerator.kt:48 */<p>Writes a block of data to a snapshot. If the specified block contains data, the existing data is overwritten. The target snapshot must be in the <code>pending</code> state.</p>
   43     45   
/// <p>Data written to a snapshot must be aligned with 512-byte sectors.</p>
          46  +
/* ServerOperationGenerator.kt:55 */
   44     47   
pub struct PutSnapshotBlock;
   45     48   
   46     49   
impl ::aws_smithy_http_server::operation::OperationShape for PutSnapshotBlock {
   47     50   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   48     51   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   49     52   
            "com.amazonaws.ebs#PutSnapshotBlock",
   50     53   
            "com.amazonaws.ebs",
   51     54   
            "PutSnapshotBlock",
   52     55   
        );
   53     56   
   54     57   
    type Input = crate::input::PutSnapshotBlockInput;
   55     58   
    type Output = crate::output::PutSnapshotBlockOutput;
   56     59   
    type Error = crate::error::PutSnapshotBlockError;
   57     60   
}
   58     61   
   59     62   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for PutSnapshotBlock {
   60     63   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   61     64   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   62     65   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
   63     66   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   64     67   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
   65     68   
        >,
   66     69   
    >;
   67     70   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
   68     71   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   69     72   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
   70     73   
    >;
   71     74   
   72     75   
    fn request_fmt() -> Self::RequestFmt {
   73     76   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
   74     77   
    }
   75     78   
   76     79   
    fn response_fmt() -> Self::ResponseFmt {
   77     80   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
   78     81   
    }
   79     82   
}
          83  +
/* ServerOperationGenerator.kt:88 */
   80     84   
   81         -
/// <p>Returns information about the blocks in an Amazon Elastic Block Store snapshot.</p>
          85  +
/// /* ServerOperationGenerator.kt:48 */<p>Returns information about the blocks in an Amazon Elastic Block Store snapshot.</p>
          86  +
/* ServerOperationGenerator.kt:55 */
   82     87   
pub struct ListSnapshotBlocks;
   83     88   
   84     89   
impl ::aws_smithy_http_server::operation::OperationShape for ListSnapshotBlocks {
   85     90   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
   86     91   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
   87     92   
            "com.amazonaws.ebs#ListSnapshotBlocks",
   88     93   
            "com.amazonaws.ebs",
   89     94   
            "ListSnapshotBlocks",
   90     95   
        );
   91     96   
   92     97   
    type Input = crate::input::ListSnapshotBlocksInput;
   93     98   
    type Output = crate::output::ListSnapshotBlocksOutput;
   94     99   
    type Error = crate::error::ListSnapshotBlocksError;
   95    100   
}
   96    101   
   97    102   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for ListSnapshotBlocks {
   98    103   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
   99    104   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  100    105   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  101    106   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  102    107   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  103    108   
        >,
  104    109   
    >;
  105    110   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  106    111   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  107    112   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  108    113   
    >;
  109    114   
  110    115   
    fn request_fmt() -> Self::RequestFmt {
  111    116   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  112    117   
    }
  113    118   
  114    119   
    fn response_fmt() -> Self::ResponseFmt {
  115    120   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  116    121   
    }
  117    122   
}
         123  +
/* ServerOperationGenerator.kt:88 */
  118    124   
  119         -
/// <p>Returns information about the blocks that are different between two Amazon Elastic Block Store snapshots of the same volume/snapshot lineage.</p>
         125  +
/// /* ServerOperationGenerator.kt:48 */<p>Returns information about the blocks that are different between two Amazon Elastic Block Store snapshots of the same volume/snapshot lineage.</p>
         126  +
/* ServerOperationGenerator.kt:55 */
  120    127   
pub struct ListChangedBlocks;
  121    128   
  122    129   
impl ::aws_smithy_http_server::operation::OperationShape for ListChangedBlocks {
  123    130   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  124    131   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  125    132   
            "com.amazonaws.ebs#ListChangedBlocks",
  126    133   
            "com.amazonaws.ebs",
  127    134   
            "ListChangedBlocks",
  128    135   
        );
  129    136   
  130    137   
    type Input = crate::input::ListChangedBlocksInput;
  131    138   
    type Output = crate::output::ListChangedBlocksOutput;
  132    139   
    type Error = crate::error::ListChangedBlocksError;
  133    140   
}
  134    141   
  135    142   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for ListChangedBlocks {
  136    143   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  137    144   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  138    145   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  139    146   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  140    147   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  141    148   
        >,
  142    149   
    >;
  143    150   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  144    151   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  145    152   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  146    153   
    >;
  147    154   
  148    155   
    fn request_fmt() -> Self::RequestFmt {
  149    156   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  150    157   
    }
  151    158   
  152    159   
    fn response_fmt() -> Self::ResponseFmt {
  153    160   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  154    161   
    }
  155    162   
}
         163  +
/* ServerOperationGenerator.kt:88 */
  156    164   
  157         -
/// <p>Returns the data in a block in an Amazon Elastic Block Store snapshot.</p>
         165  +
/// /* ServerOperationGenerator.kt:48 */<p>Returns the data in a block in an Amazon Elastic Block Store snapshot.</p>
         166  +
/* ServerOperationGenerator.kt:55 */
  158    167   
pub struct GetSnapshotBlock;
  159    168   
  160    169   
impl ::aws_smithy_http_server::operation::OperationShape for GetSnapshotBlock {
  161    170   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  162    171   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  163    172   
            "com.amazonaws.ebs#GetSnapshotBlock",
  164    173   
            "com.amazonaws.ebs",
  165    174   
            "GetSnapshotBlock",
  166    175   
        );
  167    176   
  168    177   
    type Input = crate::input::GetSnapshotBlockInput;
  169    178   
    type Output = crate::output::GetSnapshotBlockOutput;
  170    179   
    type Error = crate::error::GetSnapshotBlockError;
  171    180   
}
  172    181   
  173    182   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for GetSnapshotBlock {
  174    183   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  175    184   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  176    185   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  177    186   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  178    187   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  179    188   
        >,
  180    189   
    >;
  181    190   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  182    191   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  183    192   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  184    193   
    >;
  185    194   
  186    195   
    fn request_fmt() -> Self::RequestFmt {
  187    196   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  188    197   
    }
  189    198   
  190    199   
    fn response_fmt() -> Self::ResponseFmt {
  191    200   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  192    201   
    }
  193    202   
}
         203  +
/* ServerOperationGenerator.kt:88 */
  194    204   
  195         -
/// <p>Seals and completes the snapshot after all of the required blocks of data have been written to it. Completing the snapshot changes the status to <code>completed</code>. You cannot write new blocks to a snapshot after it has been completed.</p>
         205  +
/// /* ServerOperationGenerator.kt:48 */<p>Seals and completes the snapshot after all of the required blocks of data have been written to it. Completing the snapshot changes the status to <code>completed</code>. You cannot write new blocks to a snapshot after it has been completed.</p>
         206  +
/* ServerOperationGenerator.kt:55 */
  196    207   
pub struct CompleteSnapshot;
  197    208   
  198    209   
impl ::aws_smithy_http_server::operation::OperationShape for CompleteSnapshot {
  199    210   
    const ID: ::aws_smithy_http_server::shape_id::ShapeId =
  200    211   
        ::aws_smithy_http_server::shape_id::ShapeId::new(
  201    212   
            "com.amazonaws.ebs#CompleteSnapshot",
  202    213   
            "com.amazonaws.ebs",
  203    214   
            "CompleteSnapshot",
  204    215   
        );
  205    216   
  206    217   
    type Input = crate::input::CompleteSnapshotInput;
  207    218   
    type Output = crate::output::CompleteSnapshotOutput;
  208    219   
    type Error = crate::error::CompleteSnapshotError;
  209    220   
}
  210    221   
  211    222   
impl ::aws_smithy_http_server::instrumentation::sensitivity::Sensitivity for CompleteSnapshot {
  212    223   
    type RequestFmt = ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt<
  213    224   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  214    225   
        ::aws_smithy_http_server::instrumentation::sensitivity::uri::MakeUri<
  215    226   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  216    227   
            ::aws_smithy_http_server::instrumentation::MakeIdentity,
  217    228   
        >,
  218    229   
    >;
  219    230   
    type ResponseFmt = ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt<
  220    231   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  221    232   
        ::aws_smithy_http_server::instrumentation::MakeIdentity,
  222    233   
    >;
  223    234   
  224    235   
    fn request_fmt() -> Self::RequestFmt {
  225    236   
        ::aws_smithy_http_server::instrumentation::sensitivity::RequestFmt::new()
  226    237   
    }
  227    238   
  228    239   
    fn response_fmt() -> Self::ResponseFmt {
  229    240   
        ::aws_smithy_http_server::instrumentation::sensitivity::ResponseFmt::new()
  230    241   
    }
  231    242   
}
         243  +
/* ServerOperationGenerator.kt:88 */

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

@@ -1,1 +966,1512 @@
    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 tags typing.Optional\[typing.List\[ebs.model.Tag\]\]:
    4      6   
/// :param kms_key_arn typing.Optional\[str\]:
    5      7   
/// :param owner_id typing.Optional\[str\]:
    6      8   
/// :param volume_size typing.Optional\[int\]:
    7      9   
/// :param parent_snapshot_id typing.Optional\[str\]:
    8     10   
/// :param description typing.Optional\[str\]:
    9     11   
/// :param snapshot_id typing.Optional\[str\]:
   10     12   
/// :param block_size typing.Optional\[int\]:
   11     13   
/// :param start_time typing.Optional\[ebs.types.DateTime\]:
   12     14   
/// :param status typing.Optional\[ebs.model.Status\]:
   13     15   
/// :rtype None:
          16  +
/* StructureGenerator.kt:197 */
   14     17   
#[allow(missing_docs)] // documentation missing in model
          18  +
/* RustType.kt:516 */
   15     19   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::hash::Hash)]
   16         -
pub struct StartSnapshotOutput {
          20  +
pub /* StructureGenerator.kt:201 */ struct StartSnapshotOutput {
          21  +
    /* RustType.kt:516 */
   17     22   
    #[pyo3(get, set)]
          23  +
    /* PythonServerStructureGenerator.kt:80 */
   18     24   
    /// :type typing.Optional\[typing.List\[ebs.model.Tag\]\]:
   19         -
    /// <p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
          25  +
    /// /* StructureGenerator.kt:231 */<p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
   20     26   
    pub tags: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
          27  +
    /* RustType.kt:516 */
   21     28   
    #[pyo3(get, set)]
          29  +
    /* PythonServerStructureGenerator.kt:80 */
   22     30   
    /// :type typing.Optional\[str\]:
   23         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
          31  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
   24     32   
    pub kms_key_arn: ::std::option::Option<::std::string::String>,
          33  +
    /* RustType.kt:516 */
   25     34   
    #[pyo3(get, set)]
          35  +
    /* PythonServerStructureGenerator.kt:80 */
   26     36   
    /// :type typing.Optional\[str\]:
   27         -
    /// <p>The AWS account ID of the snapshot owner.</p>
          37  +
    /// /* StructureGenerator.kt:231 */<p>The AWS account ID of the snapshot owner.</p>
   28     38   
    pub owner_id: ::std::option::Option<::std::string::String>,
          39  +
    /* RustType.kt:516 */
   29     40   
    #[pyo3(get, set)]
          41  +
    /* PythonServerStructureGenerator.kt:80 */
   30     42   
    /// :type typing.Optional\[int\]:
   31         -
    /// <p>The size of the volume, in GiB.</p>
          43  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume, in GiB.</p>
   32     44   
    pub volume_size: ::std::option::Option<i64>,
          45  +
    /* RustType.kt:516 */
   33     46   
    #[pyo3(get, set)]
          47  +
    /* PythonServerStructureGenerator.kt:80 */
   34     48   
    /// :type typing.Optional\[str\]:
   35         -
    /// <p>The ID of the parent snapshot.</p>
          49  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the parent snapshot.</p>
   36     50   
    pub parent_snapshot_id: ::std::option::Option<::std::string::String>,
          51  +
    /* RustType.kt:516 */
   37     52   
    #[pyo3(get, set)]
          53  +
    /* PythonServerStructureGenerator.kt:80 */
   38     54   
    /// :type typing.Optional\[str\]:
   39         -
    /// <p>The description of the snapshot.</p>
          55  +
    /// /* StructureGenerator.kt:231 */<p>The description of the snapshot.</p>
   40     56   
    pub description: ::std::option::Option<::std::string::String>,
          57  +
    /* RustType.kt:516 */
   41     58   
    #[pyo3(get, set)]
          59  +
    /* PythonServerStructureGenerator.kt:80 */
   42     60   
    /// :type typing.Optional\[str\]:
   43         -
    /// <p>The ID of the snapshot.</p>
          61  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the snapshot.</p>
   44     62   
    pub snapshot_id: ::std::option::Option<::std::string::String>,
          63  +
    /* RustType.kt:516 */
   45     64   
    #[pyo3(get, set)]
          65  +
    /* PythonServerStructureGenerator.kt:80 */
   46     66   
    /// :type typing.Optional\[int\]:
   47         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
          67  +
    /// /* StructureGenerator.kt:231 */<p>The size of the blocks in the snapshot, in bytes.</p>
   48     68   
    pub block_size: ::std::option::Option<i32>,
          69  +
    /* RustType.kt:516 */
   49     70   
    #[pyo3(get, set)]
          71  +
    /* PythonServerStructureGenerator.kt:80 */
   50     72   
    /// :type typing.Optional\[ebs.types.DateTime\]:
   51         -
    /// <p>The timestamp when the snapshot was created.</p>
          73  +
    /// /* StructureGenerator.kt:231 */<p>The timestamp when the snapshot was created.</p>
   52     74   
    pub start_time: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
          75  +
    /* RustType.kt:516 */
   53     76   
    #[pyo3(get, set)]
          77  +
    /* PythonServerStructureGenerator.kt:80 */
   54     78   
    /// :type typing.Optional\[ebs.model.Status\]:
   55         -
    /// <p>The status of the snapshot.</p>
          79  +
    /// /* StructureGenerator.kt:231 */<p>The status of the snapshot.</p>
   56     80   
    pub status: ::std::option::Option<crate::model::Status>,
          81  +
    /* StructureGenerator.kt:201 */
   57     82   
}
          83  +
/* StructureGenerator.kt:135 */
   58     84   
impl StartSnapshotOutput {
   59         -
    /// <p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
          85  +
    /// /* StructureGenerator.kt:231 */<p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
          86  +
    /* StructureGenerator.kt:166 */
   60     87   
    pub fn tags(&self) -> ::std::option::Option<&[crate::model::Tag]> {
          88  +
        /* StructureGenerator.kt:169 */
   61     89   
        self.tags.as_deref()
          90  +
        /* StructureGenerator.kt:166 */
   62     91   
    }
   63         -
    /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
          92  +
    /// /* StructureGenerator.kt:231 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
          93  +
    /* StructureGenerator.kt:166 */
   64     94   
    pub fn kms_key_arn(&self) -> ::std::option::Option<&str> {
          95  +
        /* StructureGenerator.kt:169 */
   65     96   
        self.kms_key_arn.as_deref()
          97  +
        /* StructureGenerator.kt:166 */
   66     98   
    }
   67         -
    /// <p>The AWS account ID of the snapshot owner.</p>
          99  +
    /// /* StructureGenerator.kt:231 */<p>The AWS account ID of the snapshot owner.</p>
         100  +
    /* StructureGenerator.kt:166 */
   68    101   
    pub fn owner_id(&self) -> ::std::option::Option<&str> {
         102  +
        /* StructureGenerator.kt:169 */
   69    103   
        self.owner_id.as_deref()
         104  +
        /* StructureGenerator.kt:166 */
   70    105   
    }
   71         -
    /// <p>The size of the volume, in GiB.</p>
         106  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume, in GiB.</p>
         107  +
    /* StructureGenerator.kt:166 */
   72    108   
    pub fn volume_size(&self) -> ::std::option::Option<i64> {
         109  +
        /* StructureGenerator.kt:168 */
   73    110   
        self.volume_size
         111  +
        /* StructureGenerator.kt:166 */
   74    112   
    }
   75         -
    /// <p>The ID of the parent snapshot.</p>
         113  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the parent snapshot.</p>
         114  +
    /* StructureGenerator.kt:166 */
   76    115   
    pub fn parent_snapshot_id(&self) -> ::std::option::Option<&str> {
         116  +
        /* StructureGenerator.kt:169 */
   77    117   
        self.parent_snapshot_id.as_deref()
         118  +
        /* StructureGenerator.kt:166 */
   78    119   
    }
   79         -
    /// <p>The description of the snapshot.</p>
         120  +
    /// /* StructureGenerator.kt:231 */<p>The description of the snapshot.</p>
         121  +
    /* StructureGenerator.kt:166 */
   80    122   
    pub fn description(&self) -> ::std::option::Option<&str> {
         123  +
        /* StructureGenerator.kt:169 */
   81    124   
        self.description.as_deref()
         125  +
        /* StructureGenerator.kt:166 */
   82    126   
    }
   83         -
    /// <p>The ID of the snapshot.</p>
         127  +
    /// /* StructureGenerator.kt:231 */<p>The ID of the snapshot.</p>
         128  +
    /* StructureGenerator.kt:166 */
   84    129   
    pub fn snapshot_id(&self) -> ::std::option::Option<&str> {
         130  +
        /* StructureGenerator.kt:169 */
   85    131   
        self.snapshot_id.as_deref()
         132  +
        /* StructureGenerator.kt:166 */
   86    133   
    }
   87         -
    /// <p>The size of the blocks in the snapshot, in bytes.</p>
         134  +
    /// /* StructureGenerator.kt:231 */<p>The size of the blocks in the snapshot, in bytes.</p>
         135  +
    /* StructureGenerator.kt:166 */
   88    136   
    pub fn block_size(&self) -> ::std::option::Option<i32> {
         137  +
        /* StructureGenerator.kt:168 */
   89    138   
        self.block_size
         139  +
        /* StructureGenerator.kt:166 */
   90    140   
    }
   91         -
    /// <p>The timestamp when the snapshot was created.</p>
         141  +
    /// /* StructureGenerator.kt:231 */<p>The timestamp when the snapshot was created.</p>
         142  +
    /* StructureGenerator.kt:166 */
   92    143   
    pub fn start_time(
   93    144   
        &self,
   94    145   
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::DateTime> {
         146  +
        /* StructureGenerator.kt:170 */
   95    147   
        self.start_time.as_ref()
         148  +
        /* StructureGenerator.kt:166 */
   96    149   
    }
   97         -
    /// <p>The status of the snapshot.</p>
         150  +
    /// /* StructureGenerator.kt:231 */<p>The status of the snapshot.</p>
         151  +
    /* StructureGenerator.kt:166 */
   98    152   
    pub fn status(&self) -> ::std::option::Option<&crate::model::Status> {
         153  +
        /* StructureGenerator.kt:170 */
   99    154   
        self.status.as_ref()
         155  +
        /* StructureGenerator.kt:166 */
  100    156   
    }
         157  +
    /* StructureGenerator.kt:135 */
  101    158   
}
         159  +
/* StructureGenerator.kt:101 */
  102    160   
impl ::std::fmt::Debug for StartSnapshotOutput {
         161  +
    /* StructureGenerator.kt:105 */
  103    162   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         163  +
        /* StructureGenerator.kt:106 */
  104    164   
        let mut formatter = f.debug_struct("StartSnapshotOutput");
         165  +
        /* StructureGenerator.kt:121 */
  105    166   
        formatter.field("tags", &self.tags);
         167  +
        /* StructureGenerator.kt:121 */
  106    168   
        formatter.field("kms_key_arn", &"*** Sensitive Data Redacted ***");
         169  +
        /* StructureGenerator.kt:121 */
  107    170   
        formatter.field("owner_id", &self.owner_id);
         171  +
        /* StructureGenerator.kt:121 */
  108    172   
        formatter.field("volume_size", &self.volume_size);
         173  +
        /* StructureGenerator.kt:121 */
  109    174   
        formatter.field("parent_snapshot_id", &self.parent_snapshot_id);
         175  +
        /* StructureGenerator.kt:121 */
  110    176   
        formatter.field("description", &self.description);
         177  +
        /* StructureGenerator.kt:121 */
  111    178   
        formatter.field("snapshot_id", &self.snapshot_id);
         179  +
        /* StructureGenerator.kt:121 */
  112    180   
        formatter.field("block_size", &self.block_size);
         181  +
        /* StructureGenerator.kt:121 */
  113    182   
        formatter.field("start_time", &self.start_time);
         183  +
        /* StructureGenerator.kt:121 */
  114    184   
        formatter.field("status", &self.status);
         185  +
        /* StructureGenerator.kt:126 */
  115    186   
        formatter.finish()
         187  +
        /* StructureGenerator.kt:105 */
  116    188   
    }
         189  +
    /* StructureGenerator.kt:101 */
  117    190   
}
         191  +
/* RustType.kt:516 */
  118    192   
#[allow(clippy::new_without_default)]
         193  +
/* RustType.kt:516 */
  119    194   
#[allow(clippy::too_many_arguments)]
         195  +
/* RustType.kt:516 */
  120    196   
#[::pyo3::pymethods]
         197  +
/* PythonServerStructureGenerator.kt:88 */
  121    198   
impl StartSnapshotOutput {
  122    199   
    #[new]
  123    200   
    pub fn new(
  124    201   
        tags: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
  125    202   
        kms_key_arn: ::std::option::Option<::std::string::String>,
  126    203   
        owner_id: ::std::option::Option<::std::string::String>,
  127    204   
        volume_size: ::std::option::Option<i64>,
  128    205   
        parent_snapshot_id: ::std::option::Option<::std::string::String>,
  129    206   
        description: ::std::option::Option<::std::string::String>,
  130    207   
        snapshot_id: ::std::option::Option<::std::string::String>,
  131    208   
        block_size: ::std::option::Option<i32>,
  132    209   
        start_time: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
  133    210   
        status: ::std::option::Option<crate::model::Status>,
  134    211   
    ) -> Self {
  135    212   
        Self {
  136    213   
            tags,
  137    214   
            kms_key_arn,
  138    215   
            owner_id,
  139    216   
            volume_size,
  140    217   
            parent_snapshot_id,
  141    218   
            description,
  142    219   
            snapshot_id,
  143    220   
            block_size,
  144    221   
            start_time,
  145    222   
            status,
  146    223   
        }
  147    224   
    }
  148    225   
    fn __repr__(&self) -> String {
  149    226   
        format!("{self:?}")
  150    227   
    }
  151    228   
    fn __str__(&self) -> String {
  152    229   
        format!("{self:?}")
  153    230   
    }
  154    231   
}
         232  +
/* PythonServerStructureGenerator.kt:111 */
  155    233   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<StartSnapshotOutput> {
  156    234   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  157    235   
        ob.extract::<StartSnapshotOutput>().map(Box::new)
  158    236   
    }
  159    237   
}
  160    238   
  161    239   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<StartSnapshotOutput> {
  162    240   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  163    241   
        (*self).into_py(py)
  164    242   
    }
  165    243   
}
         244  +
/* ServerCodegenVisitor.kt:370 */
  166    245   
impl StartSnapshotOutput {
  167         -
    /// Creates a new builder-style object to manufacture [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         246  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         247  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  168    248   
    pub fn builder() -> crate::output::start_snapshot_output::Builder {
         249  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
  169    250   
        crate::output::start_snapshot_output::Builder::default()
         251  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  170    252   
    }
         253  +
    /* ServerCodegenVisitor.kt:370 */
  171    254   
}
  172    255   
         256  +
/* RustType.kt:516 */
  173    257   
#[::pyo3::pyclass]
         258  +
/* PythonServerStructureGenerator.kt:63 */
  174    259   
/// :param checksum_algorithm typing.Optional\[ebs.model.ChecksumAlgorithm\]:
  175    260   
/// :param checksum typing.Optional\[str\]:
  176    261   
/// :rtype None:
         262  +
/* StructureGenerator.kt:197 */
  177    263   
#[allow(missing_docs)] // documentation missing in model
         264  +
/* RustType.kt:516 */
  178    265   
#[derive(
  179    266   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  180    267   
)]
  181         -
pub struct PutSnapshotBlockOutput {
         268  +
pub /* StructureGenerator.kt:201 */ struct PutSnapshotBlockOutput {
         269  +
    /* RustType.kt:516 */
  182    270   
    #[pyo3(get, set)]
         271  +
    /* PythonServerStructureGenerator.kt:80 */
  183    272   
    /// :type typing.Optional\[ebs.model.ChecksumAlgorithm\]:
  184         -
    /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
         273  +
    /// /* StructureGenerator.kt:231 */<p>The algorithm used by Amazon EBS to generate the checksum.</p>
  185    274   
    pub checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
         275  +
    /* RustType.kt:516 */
  186    276   
    #[pyo3(get, set)]
         277  +
    /* PythonServerStructureGenerator.kt:80 */
  187    278   
    /// :type typing.Optional\[str\]:
  188         -
    /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
         279  +
    /// /* StructureGenerator.kt:231 */<p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
  189    280   
    pub checksum: ::std::option::Option<::std::string::String>,
         281  +
    /* StructureGenerator.kt:201 */
  190    282   
}
         283  +
/* StructureGenerator.kt:135 */
  191    284   
impl PutSnapshotBlockOutput {
  192         -
    /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
         285  +
    /// /* StructureGenerator.kt:231 */<p>The algorithm used by Amazon EBS to generate the checksum.</p>
         286  +
    /* StructureGenerator.kt:166 */
  193    287   
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::model::ChecksumAlgorithm> {
         288  +
        /* StructureGenerator.kt:170 */
  194    289   
        self.checksum_algorithm.as_ref()
         290  +
        /* StructureGenerator.kt:166 */
  195    291   
    }
  196         -
    /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
         292  +
    /// /* StructureGenerator.kt:231 */<p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
         293  +
    /* StructureGenerator.kt:166 */
  197    294   
    pub fn checksum(&self) -> ::std::option::Option<&str> {
         295  +
        /* StructureGenerator.kt:169 */
  198    296   
        self.checksum.as_deref()
         297  +
        /* StructureGenerator.kt:166 */
  199    298   
    }
         299  +
    /* StructureGenerator.kt:135 */
  200    300   
}
         301  +
/* RustType.kt:516 */
  201    302   
#[allow(clippy::new_without_default)]
         303  +
/* RustType.kt:516 */
  202    304   
#[allow(clippy::too_many_arguments)]
         305  +
/* RustType.kt:516 */
  203    306   
#[::pyo3::pymethods]
         307  +
/* PythonServerStructureGenerator.kt:88 */
  204    308   
impl PutSnapshotBlockOutput {
  205    309   
    #[new]
  206    310   
    pub fn new(
  207    311   
        checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  208    312   
        checksum: ::std::option::Option<::std::string::String>,
  209    313   
    ) -> Self {
  210    314   
        Self {
  211    315   
            checksum_algorithm,
  212    316   
            checksum,
  213    317   
        }
  214    318   
    }
  215    319   
    fn __repr__(&self) -> String {
  216    320   
        format!("{self:?}")
  217    321   
    }
  218    322   
    fn __str__(&self) -> String {
  219    323   
        format!("{self:?}")
  220    324   
    }
  221    325   
}
         326  +
/* PythonServerStructureGenerator.kt:111 */
  222    327   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<PutSnapshotBlockOutput> {
  223    328   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  224    329   
        ob.extract::<PutSnapshotBlockOutput>().map(Box::new)
  225    330   
    }
  226    331   
}
  227    332   
  228    333   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<PutSnapshotBlockOutput> {
  229    334   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  230    335   
        (*self).into_py(py)
  231    336   
    }
  232    337   
}
         338  +
/* ServerCodegenVisitor.kt:370 */
  233    339   
impl PutSnapshotBlockOutput {
  234         -
    /// Creates a new builder-style object to manufacture [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
         340  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
         341  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  235    342   
    pub fn builder() -> crate::output::put_snapshot_block_output::Builder {
         343  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
  236    344   
        crate::output::put_snapshot_block_output::Builder::default()
         345  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  237    346   
    }
         347  +
    /* ServerCodegenVisitor.kt:370 */
  238    348   
}
  239    349   
         350  +
/* RustType.kt:516 */
  240    351   
#[::pyo3::pyclass]
         352  +
/* PythonServerStructureGenerator.kt:63 */
  241    353   
/// :param volume_size typing.Optional\[int\]:
  242    354   
/// :param next_token typing.Optional\[str\]:
  243    355   
/// :param expiry_time typing.Optional\[ebs.types.DateTime\]:
  244    356   
/// :param blocks typing.Optional\[typing.List\[ebs.model.Block\]\]:
  245    357   
/// :param block_size typing.Optional\[int\]:
  246    358   
/// :rtype None:
         359  +
/* StructureGenerator.kt:197 */
  247    360   
#[allow(missing_docs)] // documentation missing in model
         361  +
/* RustType.kt:516 */
  248    362   
#[derive(::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::hash::Hash)]
  249         -
pub struct ListSnapshotBlocksOutput {
         363  +
pub /* StructureGenerator.kt:201 */ struct ListSnapshotBlocksOutput {
         364  +
    /* RustType.kt:516 */
  250    365   
    #[pyo3(get, set)]
         366  +
    /* PythonServerStructureGenerator.kt:80 */
  251    367   
    /// :type typing.Optional\[int\]:
  252         -
    /// <p>The size of the volume in GB.</p>
         368  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume in GB.</p>
  253    369   
    pub volume_size: ::std::option::Option<i64>,
         370  +
    /* RustType.kt:516 */
  254    371   
    #[pyo3(get, set)]
         372  +
    /* PythonServerStructureGenerator.kt:80 */
  255    373   
    /// :type typing.Optional\[str\]:
  256         -
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
         374  +
    /// /* StructureGenerator.kt:231 */<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
  257    375   
    pub next_token: ::std::option::Option<::std::string::String>,
         376  +
    /* RustType.kt:516 */
  258    377   
    #[pyo3(get, set)]
         378  +
    /* PythonServerStructureGenerator.kt:80 */
  259    379   
    /// :type typing.Optional\[ebs.types.DateTime\]:
  260         -
    /// <p>The time when the <code>BlockToken</code> expires.</p>
         380  +
    /// /* StructureGenerator.kt:231 */<p>The time when the <code>BlockToken</code> expires.</p>
  261    381   
    pub expiry_time: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
         382  +
    /* RustType.kt:516 */
  262    383   
    #[pyo3(get, set)]
         384  +
    /* PythonServerStructureGenerator.kt:80 */
  263    385   
    /// :type typing.Optional\[typing.List\[ebs.model.Block\]\]:
  264         -
    /// <p>An array of objects containing information about the blocks.</p>
         386  +
    /// /* StructureGenerator.kt:231 */<p>An array of objects containing information about the blocks.</p>
  265    387   
    pub blocks: ::std::option::Option<::std::vec::Vec<crate::model::Block>>,
         388  +
    /* RustType.kt:516 */
  266    389   
    #[pyo3(get, set)]
         390  +
    /* PythonServerStructureGenerator.kt:80 */
  267    391   
    /// :type typing.Optional\[int\]:
  268         -
    /// <p>The size of the block.</p>
         392  +
    /// /* StructureGenerator.kt:231 */<p>The size of the block.</p>
  269    393   
    pub block_size: ::std::option::Option<i32>,
         394  +
    /* StructureGenerator.kt:201 */
  270    395   
}
         396  +
/* StructureGenerator.kt:135 */
  271    397   
impl ListSnapshotBlocksOutput {
  272         -
    /// <p>The size of the volume in GB.</p>
         398  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume in GB.</p>
         399  +
    /* StructureGenerator.kt:166 */
  273    400   
    pub fn volume_size(&self) -> ::std::option::Option<i64> {
         401  +
        /* StructureGenerator.kt:168 */
  274    402   
        self.volume_size
         403  +
        /* StructureGenerator.kt:166 */
  275    404   
    }
  276         -
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
         405  +
    /// /* StructureGenerator.kt:231 */<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
         406  +
    /* StructureGenerator.kt:166 */
  277    407   
    pub fn next_token(&self) -> ::std::option::Option<&str> {
         408  +
        /* StructureGenerator.kt:169 */
  278    409   
        self.next_token.as_deref()
         410  +
        /* StructureGenerator.kt:166 */
  279    411   
    }
  280         -
    /// <p>The time when the <code>BlockToken</code> expires.</p>
         412  +
    /// /* StructureGenerator.kt:231 */<p>The time when the <code>BlockToken</code> expires.</p>
         413  +
    /* StructureGenerator.kt:166 */
  281    414   
    pub fn expiry_time(
  282    415   
        &self,
  283    416   
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::DateTime> {
         417  +
        /* StructureGenerator.kt:170 */
  284    418   
        self.expiry_time.as_ref()
         419  +
        /* StructureGenerator.kt:166 */
  285    420   
    }
  286         -
    /// <p>An array of objects containing information about the blocks.</p>
         421  +
    /// /* StructureGenerator.kt:231 */<p>An array of objects containing information about the blocks.</p>
         422  +
    /* StructureGenerator.kt:166 */
  287    423   
    pub fn blocks(&self) -> ::std::option::Option<&[crate::model::Block]> {
         424  +
        /* StructureGenerator.kt:169 */
  288    425   
        self.blocks.as_deref()
         426  +
        /* StructureGenerator.kt:166 */
  289    427   
    }
  290         -
    /// <p>The size of the block.</p>
         428  +
    /// /* StructureGenerator.kt:231 */<p>The size of the block.</p>
         429  +
    /* StructureGenerator.kt:166 */
  291    430   
    pub fn block_size(&self) -> ::std::option::Option<i32> {
         431  +
        /* StructureGenerator.kt:168 */
  292    432   
        self.block_size
         433  +
        /* StructureGenerator.kt:166 */
  293    434   
    }
         435  +
    /* StructureGenerator.kt:135 */
  294    436   
}
         437  +
/* StructureGenerator.kt:101 */
  295    438   
impl ::std::fmt::Debug for ListSnapshotBlocksOutput {
         439  +
    /* StructureGenerator.kt:105 */
  296    440   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         441  +
        /* StructureGenerator.kt:106 */
  297    442   
        let mut formatter = f.debug_struct("ListSnapshotBlocksOutput");
         443  +
        /* StructureGenerator.kt:121 */
  298    444   
        formatter.field("volume_size", &self.volume_size);
         445  +
        /* StructureGenerator.kt:121 */
  299    446   
        formatter.field("next_token", &self.next_token);
         447  +
        /* StructureGenerator.kt:121 */
  300    448   
        formatter.field("expiry_time", &self.expiry_time);
         449  +
        /* StructureGenerator.kt:121 */
  301    450   
        formatter.field("blocks", &"*** Sensitive Data Redacted ***");
         451  +
        /* StructureGenerator.kt:121 */
  302    452   
        formatter.field("block_size", &self.block_size);
         453  +
        /* StructureGenerator.kt:126 */
  303    454   
        formatter.finish()
         455  +
        /* StructureGenerator.kt:105 */
  304    456   
    }
         457  +
    /* StructureGenerator.kt:101 */
  305    458   
}
         459  +
/* RustType.kt:516 */
  306    460   
#[allow(clippy::new_without_default)]
         461  +
/* RustType.kt:516 */
  307    462   
#[allow(clippy::too_many_arguments)]
         463  +
/* RustType.kt:516 */
  308    464   
#[::pyo3::pymethods]
         465  +
/* PythonServerStructureGenerator.kt:88 */
  309    466   
impl ListSnapshotBlocksOutput {
  310    467   
    #[new]
  311    468   
    pub fn new(
  312    469   
        volume_size: ::std::option::Option<i64>,
  313    470   
        next_token: ::std::option::Option<::std::string::String>,
  314    471   
        expiry_time: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
  315    472   
        blocks: ::std::option::Option<::std::vec::Vec<crate::model::Block>>,
  316    473   
        block_size: ::std::option::Option<i32>,
  317    474   
    ) -> Self {
  318    475   
        Self {
  319    476   
            volume_size,
  320    477   
            next_token,
  321    478   
            expiry_time,
  322    479   
            blocks,
  323    480   
            block_size,
  324    481   
        }
  325    482   
    }
  326    483   
    fn __repr__(&self) -> String {
  327    484   
        format!("{self:?}")
  328    485   
    }
  329    486   
    fn __str__(&self) -> String {
  330    487   
        format!("{self:?}")
  331    488   
    }
  332    489   
}
         490  +
/* PythonServerStructureGenerator.kt:111 */
  333    491   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ListSnapshotBlocksOutput> {
  334    492   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  335    493   
        ob.extract::<ListSnapshotBlocksOutput>().map(Box::new)
  336    494   
    }
  337    495   
}
  338    496   
  339    497   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ListSnapshotBlocksOutput> {
  340    498   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  341    499   
        (*self).into_py(py)
  342    500   
    }
  343    501   
}
         502  +
/* ServerCodegenVisitor.kt:370 */
  344    503   
impl ListSnapshotBlocksOutput {
  345         -
    /// Creates a new builder-style object to manufacture [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
         504  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
         505  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  346    506   
    pub fn builder() -> crate::output::list_snapshot_blocks_output::Builder {
         507  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
  347    508   
        crate::output::list_snapshot_blocks_output::Builder::default()
         509  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  348    510   
    }
         511  +
    /* ServerCodegenVisitor.kt:370 */
  349    512   
}
  350    513   
         514  +
/* RustType.kt:516 */
  351    515   
#[::pyo3::pyclass]
         516  +
/* PythonServerStructureGenerator.kt:63 */
  352    517   
/// :param block_size typing.Optional\[int\]:
  353    518   
/// :param expiry_time typing.Optional\[ebs.types.DateTime\]:
  354    519   
/// :param volume_size typing.Optional\[int\]:
  355    520   
/// :param next_token typing.Optional\[str\]:
  356    521   
/// :param changed_blocks typing.Optional\[typing.List\[ebs.model.ChangedBlock\]\]:
  357    522   
/// :rtype None:
         523  +
/* StructureGenerator.kt:197 */
  358    524   
#[allow(missing_docs)] // documentation missing in model
         525  +
/* RustType.kt:516 */
  359    526   
#[derive(
  360    527   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  361    528   
)]
  362         -
pub struct ListChangedBlocksOutput {
         529  +
pub /* StructureGenerator.kt:201 */ struct ListChangedBlocksOutput {
         530  +
    /* RustType.kt:516 */
  363    531   
    #[pyo3(get, set)]
         532  +
    /* PythonServerStructureGenerator.kt:80 */
  364    533   
    /// :type typing.Optional\[int\]:
  365         -
    /// <p>The size of the block.</p>
         534  +
    /// /* StructureGenerator.kt:231 */<p>The size of the block.</p>
  366    535   
    pub block_size: ::std::option::Option<i32>,
         536  +
    /* RustType.kt:516 */
  367    537   
    #[pyo3(get, set)]
         538  +
    /* PythonServerStructureGenerator.kt:80 */
  368    539   
    /// :type typing.Optional\[ebs.types.DateTime\]:
  369         -
    /// <p>The time when the <code>BlockToken</code> expires.</p>
         540  +
    /// /* StructureGenerator.kt:231 */<p>The time when the <code>BlockToken</code> expires.</p>
  370    541   
    pub expiry_time: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
         542  +
    /* RustType.kt:516 */
  371    543   
    #[pyo3(get, set)]
         544  +
    /* PythonServerStructureGenerator.kt:80 */
  372    545   
    /// :type typing.Optional\[int\]:
  373         -
    /// <p>The size of the volume in GB.</p>
         546  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume in GB.</p>
  374    547   
    pub volume_size: ::std::option::Option<i64>,
         548  +
    /* RustType.kt:516 */
  375    549   
    #[pyo3(get, set)]
         550  +
    /* PythonServerStructureGenerator.kt:80 */
  376    551   
    /// :type typing.Optional\[str\]:
  377         -
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
         552  +
    /// /* StructureGenerator.kt:231 */<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
  378    553   
    pub next_token: ::std::option::Option<::std::string::String>,
         554  +
    /* RustType.kt:516 */
  379    555   
    #[pyo3(get, set)]
         556  +
    /* PythonServerStructureGenerator.kt:80 */
  380    557   
    /// :type typing.Optional\[typing.List\[ebs.model.ChangedBlock\]\]:
  381         -
    /// <p>An array of objects containing information about the changed blocks.</p>
         558  +
    /// /* StructureGenerator.kt:231 */<p>An array of objects containing information about the changed blocks.</p>
  382    559   
    pub changed_blocks: ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
         560  +
    /* StructureGenerator.kt:201 */
  383    561   
}
         562  +
/* StructureGenerator.kt:135 */
  384    563   
impl ListChangedBlocksOutput {
  385         -
    /// <p>The size of the block.</p>
         564  +
    /// /* StructureGenerator.kt:231 */<p>The size of the block.</p>
         565  +
    /* StructureGenerator.kt:166 */
  386    566   
    pub fn block_size(&self) -> ::std::option::Option<i32> {
         567  +
        /* StructureGenerator.kt:168 */
  387    568   
        self.block_size
         569  +
        /* StructureGenerator.kt:166 */
  388    570   
    }
  389         -
    /// <p>The time when the <code>BlockToken</code> expires.</p>
         571  +
    /// /* StructureGenerator.kt:231 */<p>The time when the <code>BlockToken</code> expires.</p>
         572  +
    /* StructureGenerator.kt:166 */
  390    573   
    pub fn expiry_time(
  391    574   
        &self,
  392    575   
    ) -> ::std::option::Option<&::aws_smithy_http_server_python::types::DateTime> {
         576  +
        /* StructureGenerator.kt:170 */
  393    577   
        self.expiry_time.as_ref()
         578  +
        /* StructureGenerator.kt:166 */
  394    579   
    }
  395         -
    /// <p>The size of the volume in GB.</p>
         580  +
    /// /* StructureGenerator.kt:231 */<p>The size of the volume in GB.</p>
         581  +
    /* StructureGenerator.kt:166 */
  396    582   
    pub fn volume_size(&self) -> ::std::option::Option<i64> {
         583  +
        /* StructureGenerator.kt:168 */
  397    584   
        self.volume_size
         585  +
        /* StructureGenerator.kt:166 */
  398    586   
    }
  399         -
    /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
         587  +
    /// /* StructureGenerator.kt:231 */<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
         588  +
    /* StructureGenerator.kt:166 */
  400    589   
    pub fn next_token(&self) -> ::std::option::Option<&str> {
         590  +
        /* StructureGenerator.kt:169 */
  401    591   
        self.next_token.as_deref()
         592  +
        /* StructureGenerator.kt:166 */
  402    593   
    }
  403         -
    /// <p>An array of objects containing information about the changed blocks.</p>
         594  +
    /// /* StructureGenerator.kt:231 */<p>An array of objects containing information about the changed blocks.</p>
         595  +
    /* StructureGenerator.kt:166 */
  404    596   
    pub fn changed_blocks(&self) -> ::std::option::Option<&[crate::model::ChangedBlock]> {
         597  +
        /* StructureGenerator.kt:169 */
  405    598   
        self.changed_blocks.as_deref()
         599  +
        /* StructureGenerator.kt:166 */
  406    600   
    }
         601  +
    /* StructureGenerator.kt:135 */
  407    602   
}
         603  +
/* RustType.kt:516 */
  408    604   
#[allow(clippy::new_without_default)]
         605  +
/* RustType.kt:516 */
  409    606   
#[allow(clippy::too_many_arguments)]
         607  +
/* RustType.kt:516 */
  410    608   
#[::pyo3::pymethods]
         609  +
/* PythonServerStructureGenerator.kt:88 */
  411    610   
impl ListChangedBlocksOutput {
  412    611   
    #[new]
  413    612   
    pub fn new(
  414    613   
        block_size: ::std::option::Option<i32>,
  415    614   
        expiry_time: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
  416    615   
        volume_size: ::std::option::Option<i64>,
  417    616   
        next_token: ::std::option::Option<::std::string::String>,
  418    617   
        changed_blocks: ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
  419    618   
    ) -> Self {
  420    619   
        Self {
  421    620   
            block_size,
  422    621   
            expiry_time,
  423    622   
            volume_size,
  424    623   
            next_token,
  425    624   
            changed_blocks,
  426    625   
        }
  427    626   
    }
  428    627   
    fn __repr__(&self) -> String {
  429    628   
        format!("{self:?}")
  430    629   
    }
  431    630   
    fn __str__(&self) -> String {
  432    631   
        format!("{self:?}")
  433    632   
    }
  434    633   
}
         634  +
/* PythonServerStructureGenerator.kt:111 */
  435    635   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<ListChangedBlocksOutput> {
  436    636   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  437    637   
        ob.extract::<ListChangedBlocksOutput>().map(Box::new)
  438    638   
    }
  439    639   
}
  440    640   
  441    641   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<ListChangedBlocksOutput> {
  442    642   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  443    643   
        (*self).into_py(py)
  444    644   
    }
  445    645   
}
         646  +
/* ServerCodegenVisitor.kt:370 */
  446    647   
impl ListChangedBlocksOutput {
  447         -
    /// Creates a new builder-style object to manufacture [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
         648  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
         649  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  448    650   
    pub fn builder() -> crate::output::list_changed_blocks_output::Builder {
         651  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
  449    652   
        crate::output::list_changed_blocks_output::Builder::default()
         653  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  450    654   
    }
         655  +
    /* ServerCodegenVisitor.kt:370 */
  451    656   
}
  452    657   
         658  +
/* RustType.kt:516 */
  453    659   
#[::pyo3::pyclass]
         660  +
/* PythonServerStructureGenerator.kt:63 */
         661  +
/// :param block_data ebs.types.ByteStream:
  454    662   
/// :param data_length typing.Optional\[int\]:
  455    663   
/// :param checksum_algorithm typing.Optional\[ebs.model.ChecksumAlgorithm\]:
  456    664   
/// :param checksum typing.Optional\[str\]:
  457         -
/// :param block_data ebs.types.ByteStream:
  458    665   
/// :rtype None:
         666  +
/* StructureGenerator.kt:197 */
  459    667   
#[allow(missing_docs)] // documentation missing in model
         668  +
/* RustType.kt:516 */
  460    669   
#[derive(::std::clone::Clone)]
  461         -
pub struct GetSnapshotBlockOutput {
         670  +
pub /* StructureGenerator.kt:201 */ struct GetSnapshotBlockOutput {
         671  +
    /* RustType.kt:516 */
  462    672   
    #[pyo3(get, set)]
         673  +
    /* PythonServerStructureGenerator.kt:80 */
  463    674   
    /// :type typing.Optional\[int\]:
  464         -
    /// <p>The size of the data in the block.</p>
         675  +
    /// /* StructureGenerator.kt:231 */<p>The size of the data in the block.</p>
  465    676   
    pub data_length: ::std::option::Option<i32>,
         677  +
    /* RustType.kt:516 */
  466    678   
    #[pyo3(get, set)]
         679  +
    /* PythonServerStructureGenerator.kt:80 */
  467    680   
    /// :type typing.Optional\[ebs.model.ChecksumAlgorithm\]:
  468         -
    /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
         681  +
    /// /* StructureGenerator.kt:231 */<p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
  469    682   
    pub checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
         683  +
    /* RustType.kt:516 */
  470    684   
    #[pyo3(get, set)]
         685  +
    /* PythonServerStructureGenerator.kt:80 */
  471    686   
    /// :type typing.Optional\[str\]:
  472         -
    /// <p>The checksum generated for the block, which is Base64 encoded.</p>
         687  +
    /// /* StructureGenerator.kt:231 */<p>The checksum generated for the block, which is Base64 encoded.</p>
  473    688   
    pub checksum: ::std::option::Option<::std::string::String>,
         689  +
    /* RustType.kt:516 */
  474    690   
    #[pyo3(get, set)]
         691  +
    /* PythonServerStructureGenerator.kt:80 */
  475    692   
    /// :type ebs.types.ByteStream:
  476         -
    /// <p>The data content of the block.</p>
         693  +
    /// /* StructureGenerator.kt:231 */<p>The data content of the block.</p>
  477    694   
    pub block_data: ::aws_smithy_http_server_python::types::ByteStream,
         695  +
    /* StructureGenerator.kt:201 */
  478    696   
}
         697  +
/* StructureGenerator.kt:135 */
  479    698   
impl GetSnapshotBlockOutput {
  480         -
    /// <p>The size of the data in the block.</p>
         699  +
    /// /* StructureGenerator.kt:231 */<p>The size of the data in the block.</p>
         700  +
    /* StructureGenerator.kt:166 */
  481    701   
    pub fn data_length(&self) -> ::std::option::Option<i32> {
         702  +
        /* StructureGenerator.kt:168 */
  482    703   
        self.data_length
         704  +
        /* StructureGenerator.kt:166 */
  483    705   
    }
  484         -
    /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
         706  +
    /// /* StructureGenerator.kt:231 */<p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
         707  +
    /* StructureGenerator.kt:166 */
  485    708   
    pub fn checksum_algorithm(&self) -> ::std::option::Option<&crate::model::ChecksumAlgorithm> {
         709  +
        /* StructureGenerator.kt:170 */
  486    710   
        self.checksum_algorithm.as_ref()
         711  +
        /* StructureGenerator.kt:166 */
  487    712   
    }
  488         -
    /// <p>The checksum generated for the block, which is Base64 encoded.</p>
         713  +
    /// /* StructureGenerator.kt:231 */<p>The checksum generated for the block, which is Base64 encoded.</p>
         714  +
    /* StructureGenerator.kt:166 */
  489    715   
    pub fn checksum(&self) -> ::std::option::Option<&str> {
         716  +
        /* StructureGenerator.kt:169 */
  490    717   
        self.checksum.as_deref()
         718  +
        /* StructureGenerator.kt:166 */
  491    719   
    }
  492         -
    /// <p>The data content of the block.</p>
         720  +
    /// /* StructureGenerator.kt:231 */<p>The data content of the block.</p>
         721  +
    /* StructureGenerator.kt:166 */
  493    722   
    pub fn block_data(&self) -> &::aws_smithy_http_server_python::types::ByteStream {
         723  +
        /* StructureGenerator.kt:172 */
  494    724   
        &self.block_data
         725  +
        /* StructureGenerator.kt:166 */
  495    726   
    }
         727  +
    /* StructureGenerator.kt:135 */
  496    728   
}
         729  +
/* StructureGenerator.kt:101 */
  497    730   
impl ::std::fmt::Debug for GetSnapshotBlockOutput {
         731  +
    /* StructureGenerator.kt:105 */
  498    732   
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         733  +
        /* StructureGenerator.kt:106 */
  499    734   
        let mut formatter = f.debug_struct("GetSnapshotBlockOutput");
         735  +
        /* StructureGenerator.kt:121 */
  500    736   
        formatter.field("data_length", &self.data_length);
         737  +
        /* StructureGenerator.kt:121 */
  501    738   
        formatter.field("checksum_algorithm", &self.checksum_algorithm);
         739  +
        /* StructureGenerator.kt:121 */
  502    740   
        formatter.field("checksum", &self.checksum);
         741  +
        /* StructureGenerator.kt:121 */
  503    742   
        formatter.field("block_data", &"*** Sensitive Data Redacted ***");
         743  +
        /* StructureGenerator.kt:126 */
  504    744   
        formatter.finish()
         745  +
        /* StructureGenerator.kt:105 */
  505    746   
    }
         747  +
    /* StructureGenerator.kt:101 */
  506    748   
}
         749  +
/* RustType.kt:516 */
  507    750   
#[allow(clippy::new_without_default)]
         751  +
/* RustType.kt:516 */
  508    752   
#[allow(clippy::too_many_arguments)]
         753  +
/* RustType.kt:516 */
  509    754   
#[::pyo3::pymethods]
         755  +
/* PythonServerStructureGenerator.kt:88 */
  510    756   
impl GetSnapshotBlockOutput {
  511    757   
    #[new]
  512    758   
    pub fn new(
         759  +
        block_data: ::aws_smithy_http_server_python::types::ByteStream,
  513    760   
        data_length: ::std::option::Option<i32>,
  514    761   
        checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  515    762   
        checksum: ::std::option::Option<::std::string::String>,
  516         -
        block_data: ::aws_smithy_http_server_python::types::ByteStream,
  517    763   
    ) -> Self {
  518    764   
        Self {
         765  +
            block_data,
  519    766   
            data_length,
  520    767   
            checksum_algorithm,
  521    768   
            checksum,
  522         -
            block_data,
  523    769   
        }
  524    770   
    }
  525    771   
    fn __repr__(&self) -> String {
  526    772   
        format!("{self:?}")
  527    773   
    }
  528    774   
    fn __str__(&self) -> String {
  529    775   
        format!("{self:?}")
  530    776   
    }
  531    777   
}
         778  +
/* PythonServerStructureGenerator.kt:111 */
  532    779   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<GetSnapshotBlockOutput> {
  533    780   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  534    781   
        ob.extract::<GetSnapshotBlockOutput>().map(Box::new)
  535    782   
    }
  536    783   
}
  537    784   
  538    785   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<GetSnapshotBlockOutput> {
  539    786   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  540    787   
        (*self).into_py(py)
  541    788   
    }
  542    789   
}
         790  +
/* ServerCodegenVisitor.kt:370 */
  543    791   
impl GetSnapshotBlockOutput {
  544         -
    /// Creates a new builder-style object to manufacture [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
         792  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
         793  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  545    794   
    pub fn builder() -> crate::output::get_snapshot_block_output::Builder {
         795  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
  546    796   
        crate::output::get_snapshot_block_output::Builder::default()
         797  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  547    798   
    }
         799  +
    /* ServerCodegenVisitor.kt:370 */
  548    800   
}
  549    801   
         802  +
/* RustType.kt:516 */
  550    803   
#[::pyo3::pyclass]
         804  +
/* PythonServerStructureGenerator.kt:63 */
  551    805   
/// :param status typing.Optional\[ebs.model.Status\]:
  552    806   
/// :rtype None:
         807  +
/* StructureGenerator.kt:197 */
  553    808   
#[allow(missing_docs)] // documentation missing in model
         809  +
/* RustType.kt:516 */
  554    810   
#[derive(
  555    811   
    ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::PartialEq, ::std::fmt::Debug, ::std::hash::Hash,
  556    812   
)]
  557         -
pub struct CompleteSnapshotOutput {
         813  +
pub /* StructureGenerator.kt:201 */ struct CompleteSnapshotOutput {
         814  +
    /* RustType.kt:516 */
  558    815   
    #[pyo3(get, set)]
         816  +
    /* PythonServerStructureGenerator.kt:80 */
  559    817   
    /// :type typing.Optional\[ebs.model.Status\]:
  560         -
    /// <p>The status of the snapshot.</p>
         818  +
    /// /* StructureGenerator.kt:231 */<p>The status of the snapshot.</p>
  561    819   
    pub status: ::std::option::Option<crate::model::Status>,
         820  +
    /* StructureGenerator.kt:201 */
  562    821   
}
         822  +
/* StructureGenerator.kt:135 */
  563    823   
impl CompleteSnapshotOutput {
  564         -
    /// <p>The status of the snapshot.</p>
         824  +
    /// /* StructureGenerator.kt:231 */<p>The status of the snapshot.</p>
         825  +
    /* StructureGenerator.kt:166 */
  565    826   
    pub fn status(&self) -> ::std::option::Option<&crate::model::Status> {
         827  +
        /* StructureGenerator.kt:170 */
  566    828   
        self.status.as_ref()
         829  +
        /* StructureGenerator.kt:166 */
  567    830   
    }
         831  +
    /* StructureGenerator.kt:135 */
  568    832   
}
         833  +
/* RustType.kt:516 */
  569    834   
#[allow(clippy::new_without_default)]
         835  +
/* RustType.kt:516 */
  570    836   
#[allow(clippy::too_many_arguments)]
         837  +
/* RustType.kt:516 */
  571    838   
#[::pyo3::pymethods]
         839  +
/* PythonServerStructureGenerator.kt:88 */
  572    840   
impl CompleteSnapshotOutput {
  573    841   
    #[new]
  574    842   
    pub fn new(status: ::std::option::Option<crate::model::Status>) -> Self {
  575    843   
        Self { status }
  576    844   
    }
  577    845   
    fn __repr__(&self) -> String {
  578    846   
        format!("{self:?}")
  579    847   
    }
  580    848   
    fn __str__(&self) -> String {
  581    849   
        format!("{self:?}")
  582    850   
    }
  583    851   
}
         852  +
/* PythonServerStructureGenerator.kt:111 */
  584    853   
impl<'source> ::pyo3::FromPyObject<'source> for std::boxed::Box<CompleteSnapshotOutput> {
  585    854   
    fn extract(ob: &'source ::pyo3::PyAny) -> ::pyo3::PyResult<Self> {
  586    855   
        ob.extract::<CompleteSnapshotOutput>().map(Box::new)
  587    856   
    }
  588    857   
}
  589    858   
  590    859   
impl ::pyo3::IntoPy<::pyo3::PyObject> for std::boxed::Box<CompleteSnapshotOutput> {
  591    860   
    fn into_py(self, py: ::pyo3::Python<'_>) -> ::pyo3::PyObject {
  592    861   
        (*self).into_py(py)
  593    862   
    }
  594    863   
}
         864  +
/* ServerCodegenVisitor.kt:370 */
  595    865   
impl CompleteSnapshotOutput {
  596         -
    /// Creates a new builder-style object to manufacture [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
         866  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:211 */Creates a new builder-style object to manufacture [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
         867  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  597    868   
    pub fn builder() -> crate::output::complete_snapshot_output::Builder {
         869  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:213 */
  598    870   
        crate::output::complete_snapshot_output::Builder::default()
         871  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:212 */
  599    872   
    }
         873  +
    /* ServerCodegenVisitor.kt:370 */
  600    874   
}
  601         -
/// See [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         875  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
  602    876   
pub mod start_snapshot_output {
  603    877   
         878  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
  604    879   
    impl ::std::convert::From<Builder> for crate::output::StartSnapshotOutput {
  605    880   
        fn from(builder: Builder) -> Self {
  606    881   
            builder.build()
  607    882   
        }
  608    883   
    }
  609         -
    /// A builder for [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         884  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
         885  +
    /* RustType.kt:516 */
  610    886   
    #[derive(::std::clone::Clone, ::std::default::Default)]
         887  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  611    888   
    pub struct Builder {
         889  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  612    890   
        pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
         891  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  613    892   
        pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
         893  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  614    894   
        pub(crate) owner_id: ::std::option::Option<::std::string::String>,
         895  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  615    896   
        pub(crate) volume_size: ::std::option::Option<i64>,
         897  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  616    898   
        pub(crate) parent_snapshot_id: ::std::option::Option<::std::string::String>,
         899  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  617    900   
        pub(crate) description: ::std::option::Option<::std::string::String>,
         901  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  618    902   
        pub(crate) snapshot_id: ::std::option::Option<::std::string::String>,
         903  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  619    904   
        pub(crate) block_size: ::std::option::Option<i32>,
         905  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  620    906   
        pub(crate) start_time:
  621    907   
            ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
         908  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  622    909   
        pub(crate) status: ::std::option::Option<crate::model::Status>,
         910  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  623    911   
    }
         912  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  624    913   
    impl Builder {
  625         -
        /// <p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         914  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The tags applied to the snapshot. You can specify up to 50 tags per snapshot. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html"> Tagging your Amazon EC2 resources</a> in the <i>Amazon Elastic Compute Cloud User Guide</i>.</p>
         915  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  626    916   
        pub fn tags(
  627    917   
            mut self,
  628    918   
            input: ::std::option::Option<::std::vec::Vec<crate::model::Tag>>,
  629    919   
        ) -> Self {
  630         -
            self.tags = input;
         920  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
         921  +
            self.tags =
         922  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
         923  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  631    924   
            self
         925  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  632    926   
        }
  633         -
        /// <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         927  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the snapshot.</p>
         928  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  634    929   
        pub fn kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  635         -
            self.kms_key_arn = input;
         930  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
         931  +
            self.kms_key_arn =
         932  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
         933  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  636    934   
            self
         935  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  637    936   
        }
  638         -
        /// <p>The AWS account ID of the snapshot owner.</p>
         937  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The AWS account ID of the snapshot owner.</p>
         938  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  639    939   
        pub fn owner_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  640         -
            self.owner_id = input;
         940  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
         941  +
            self.owner_id =
         942  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
         943  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  641    944   
            self
         945  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  642    946   
        }
  643         -
        /// <p>The size of the volume, in GiB.</p>
         947  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The size of the volume, in GiB.</p>
         948  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  644    949   
        pub fn volume_size(mut self, input: ::std::option::Option<i64>) -> Self {
  645         -
            self.volume_size = input;
         950  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
         951  +
            self.volume_size =
         952  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
         953  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  646    954   
            self
         955  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  647    956   
        }
  648         -
        /// <p>The ID of the parent snapshot.</p>
         957  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The ID of the parent snapshot.</p>
         958  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  649    959   
        pub fn parent_snapshot_id(
  650    960   
            mut self,
  651    961   
            input: ::std::option::Option<::std::string::String>,
  652    962   
        ) -> Self {
  653         -
            self.parent_snapshot_id = input;
         963  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
         964  +
            self.parent_snapshot_id =
         965  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
         966  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  654    967   
            self
         968  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  655    969   
        }
  656         -
        /// <p>The description of the snapshot.</p>
         970  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The description of the snapshot.</p>
         971  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  657    972   
        pub fn description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  658         -
            self.description = input;
         973  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
         974  +
            self.description =
         975  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
         976  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  659    977   
            self
         978  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  660    979   
        }
  661         -
        /// <p>The ID of the snapshot.</p>
         980  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The ID of the snapshot.</p>
         981  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  662    982   
        pub fn snapshot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  663         -
            self.snapshot_id = input;
         983  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
         984  +
            self.snapshot_id =
         985  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
         986  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  664    987   
            self
         988  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  665    989   
        }
  666         -
        /// <p>The size of the blocks in the snapshot, in bytes.</p>
         990  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The size of the blocks in the snapshot, in bytes.</p>
         991  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  667    992   
        pub fn block_size(mut self, input: ::std::option::Option<i32>) -> Self {
  668         -
            self.block_size = input;
         993  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
         994  +
            self.block_size =
         995  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
         996  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  669    997   
            self
         998  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  670    999   
        }
  671         -
        /// <p>The timestamp when the snapshot was created.</p>
        1000  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The timestamp when the snapshot was created.</p>
        1001  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  672   1002   
        pub fn start_time(
  673   1003   
            mut self,
  674   1004   
            input: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
  675   1005   
        ) -> Self {
  676         -
            self.start_time = input;
        1006  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1007  +
            self.start_time =
        1008  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1009  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  677   1010   
            self
        1011  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  678   1012   
        }
  679         -
        /// <p>The status of the snapshot.</p>
        1013  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The status of the snapshot.</p>
        1014  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  680   1015   
        pub fn status(mut self, input: ::std::option::Option<crate::model::Status>) -> Self {
  681         -
            self.status = input;
        1016  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1017  +
            self.status =
        1018  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1019  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  682   1020   
            self
        1021  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  683   1022   
        }
  684         -
        /// Consumes the builder and constructs a [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
        1023  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`StartSnapshotOutput`](crate::output::StartSnapshotOutput).
        1024  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
  685   1025   
        pub fn build(self) -> crate::output::StartSnapshotOutput {
  686   1026   
            self.build_enforcing_required_and_enum_traits()
  687   1027   
        }
        1028  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  688   1029   
        fn build_enforcing_required_and_enum_traits(self) -> crate::output::StartSnapshotOutput {
        1030  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  689   1031   
            crate::output::StartSnapshotOutput {
        1032  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  690   1033   
                tags: self.tags,
        1034  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  691   1035   
                kms_key_arn: self.kms_key_arn,
        1036  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  692   1037   
                owner_id: self.owner_id,
        1038  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  693   1039   
                volume_size: self.volume_size,
        1040  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  694   1041   
                parent_snapshot_id: self.parent_snapshot_id,
        1042  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  695   1043   
                description: self.description,
        1044  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  696   1045   
                snapshot_id: self.snapshot_id,
        1046  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  697   1047   
                block_size: self.block_size,
        1048  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  698   1049   
                start_time: self.start_time,
        1050  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  699   1051   
                status: self.status,
        1052  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  700   1053   
            }
        1054  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  701   1055   
        }
        1056  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  702   1057   
    }
        1058  +
        1059  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  703   1060   
}
  704         -
/// See [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
        1061  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
  705   1062   
pub mod put_snapshot_block_output {
  706   1063   
        1064  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
  707   1065   
    impl ::std::convert::From<Builder> for crate::output::PutSnapshotBlockOutput {
  708   1066   
        fn from(builder: Builder) -> Self {
  709   1067   
            builder.build()
  710   1068   
        }
  711   1069   
    }
  712         -
    /// A builder for [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
        1070  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
        1071  +
    /* RustType.kt:516 */
  713   1072   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1073  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  714   1074   
    pub struct Builder {
        1075  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  715   1076   
        pub(crate) checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
        1077  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  716   1078   
        pub(crate) checksum: ::std::option::Option<::std::string::String>,
        1079  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  717   1080   
    }
        1081  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  718   1082   
    impl Builder {
  719         -
        /// <p>The algorithm used by Amazon EBS to generate the checksum.</p>
        1083  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The algorithm used by Amazon EBS to generate the checksum.</p>
        1084  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  720   1085   
        pub fn checksum_algorithm(
  721   1086   
            mut self,
  722   1087   
            input: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  723   1088   
        ) -> Self {
  724         -
            self.checksum_algorithm = input;
        1089  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1090  +
            self.checksum_algorithm =
        1091  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1092  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  725   1093   
            self
        1094  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  726   1095   
        }
  727         -
        /// <p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
        1096  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The SHA256 checksum generated for the block data by Amazon EBS.</p>
        1097  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  728   1098   
        pub fn checksum(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  729         -
            self.checksum = input;
        1099  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1100  +
            self.checksum =
        1101  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1102  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  730   1103   
            self
        1104  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  731   1105   
        }
  732         -
        /// Consumes the builder and constructs a [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
        1106  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`PutSnapshotBlockOutput`](crate::output::PutSnapshotBlockOutput).
        1107  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
  733   1108   
        pub fn build(self) -> crate::output::PutSnapshotBlockOutput {
  734   1109   
            self.build_enforcing_required_and_enum_traits()
  735   1110   
        }
        1111  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  736   1112   
        fn build_enforcing_required_and_enum_traits(self) -> crate::output::PutSnapshotBlockOutput {
        1113  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  737   1114   
            crate::output::PutSnapshotBlockOutput {
        1115  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  738   1116   
                checksum_algorithm: self.checksum_algorithm,
        1117  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  739   1118   
                checksum: self.checksum,
        1119  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  740   1120   
            }
        1121  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  741   1122   
        }
        1123  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  742   1124   
    }
        1125  +
        1126  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  743   1127   
}
  744         -
/// See [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
        1128  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
  745   1129   
pub mod list_snapshot_blocks_output {
  746   1130   
        1131  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
  747   1132   
    impl ::std::convert::From<Builder> for crate::output::ListSnapshotBlocksOutput {
  748   1133   
        fn from(builder: Builder) -> Self {
  749   1134   
            builder.build()
  750   1135   
        }
  751   1136   
    }
  752         -
    /// A builder for [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
        1137  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
        1138  +
    /* RustType.kt:516 */
  753   1139   
    #[derive(::std::clone::Clone, ::std::default::Default)]
        1140  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  754   1141   
    pub struct Builder {
        1142  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  755   1143   
        pub(crate) volume_size: ::std::option::Option<i64>,
        1144  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  756   1145   
        pub(crate) next_token: ::std::option::Option<::std::string::String>,
        1146  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  757   1147   
        pub(crate) expiry_time:
  758   1148   
            ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
        1149  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  759   1150   
        pub(crate) blocks: ::std::option::Option<::std::vec::Vec<crate::model::Block>>,
        1151  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  760   1152   
        pub(crate) block_size: ::std::option::Option<i32>,
        1153  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  761   1154   
    }
        1155  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  762   1156   
    impl Builder {
  763         -
        /// <p>The size of the volume in GB.</p>
        1157  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The size of the volume in GB.</p>
        1158  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  764   1159   
        pub fn volume_size(mut self, input: ::std::option::Option<i64>) -> Self {
  765         -
            self.volume_size = input;
        1160  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1161  +
            self.volume_size =
        1162  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1163  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  766   1164   
            self
        1165  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  767   1166   
        }
  768         -
        /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
        1167  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
        1168  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  769   1169   
        pub fn next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  770         -
            self.next_token = input;
        1170  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1171  +
            self.next_token =
        1172  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1173  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  771   1174   
            self
        1175  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  772   1176   
        }
  773         -
        /// <p>The time when the <code>BlockToken</code> expires.</p>
        1177  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The time when the <code>BlockToken</code> expires.</p>
        1178  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  774   1179   
        pub fn expiry_time(
  775   1180   
            mut self,
  776   1181   
            input: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
  777   1182   
        ) -> Self {
  778         -
            self.expiry_time = input;
        1183  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1184  +
            self.expiry_time =
        1185  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1186  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  779   1187   
            self
        1188  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  780   1189   
        }
  781         -
        /// <p>An array of objects containing information about the blocks.</p>
        1190  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>An array of objects containing information about the blocks.</p>
        1191  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  782   1192   
        pub fn blocks(
  783   1193   
            mut self,
  784   1194   
            input: ::std::option::Option<::std::vec::Vec<crate::model::Block>>,
  785   1195   
        ) -> Self {
  786         -
            self.blocks = input;
        1196  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1197  +
            self.blocks =
        1198  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1199  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  787   1200   
            self
        1201  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  788   1202   
        }
  789         -
        /// <p>The size of the block.</p>
        1203  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The size of the block.</p>
        1204  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  790   1205   
        pub fn block_size(mut self, input: ::std::option::Option<i32>) -> Self {
  791         -
            self.block_size = input;
        1206  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1207  +
            self.block_size =
        1208  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1209  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  792   1210   
            self
        1211  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  793   1212   
        }
  794         -
        /// Consumes the builder and constructs a [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
        1213  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`ListSnapshotBlocksOutput`](crate::output::ListSnapshotBlocksOutput).
        1214  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
  795   1215   
        pub fn build(self) -> crate::output::ListSnapshotBlocksOutput {
  796   1216   
            self.build_enforcing_required_and_enum_traits()
  797   1217   
        }
        1218  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  798   1219   
        fn build_enforcing_required_and_enum_traits(
  799   1220   
            self,
  800   1221   
        ) -> crate::output::ListSnapshotBlocksOutput {
        1222  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  801   1223   
            crate::output::ListSnapshotBlocksOutput {
        1224  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  802   1225   
                volume_size: self.volume_size,
        1226  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  803   1227   
                next_token: self.next_token,
        1228  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  804   1229   
                expiry_time: self.expiry_time,
        1230  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  805   1231   
                blocks: self.blocks,
        1232  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  806   1233   
                block_size: self.block_size,
        1234  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  807   1235   
            }
        1236  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  808   1237   
        }
        1238  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  809   1239   
    }
        1240  +
        1241  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  810   1242   
}
  811         -
/// See [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
        1243  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
  812   1244   
pub mod list_changed_blocks_output {
  813   1245   
        1246  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
  814   1247   
    impl ::std::convert::From<Builder> for crate::output::ListChangedBlocksOutput {
  815   1248   
        fn from(builder: Builder) -> Self {
  816   1249   
            builder.build()
  817   1250   
        }
  818   1251   
    }
  819         -
    /// A builder for [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
        1252  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
        1253  +
    /* RustType.kt:516 */
  820   1254   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1255  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  821   1256   
    pub struct Builder {
        1257  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  822   1258   
        pub(crate) block_size: ::std::option::Option<i32>,
        1259  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  823   1260   
        pub(crate) expiry_time:
  824   1261   
            ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
        1262  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  825   1263   
        pub(crate) volume_size: ::std::option::Option<i64>,
        1264  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  826   1265   
        pub(crate) next_token: ::std::option::Option<::std::string::String>,
        1266  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  827   1267   
        pub(crate) changed_blocks:
  828   1268   
            ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
        1269  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  829   1270   
    }
        1271  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  830   1272   
    impl Builder {
  831         -
        /// <p>The size of the block.</p>
        1273  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The size of the block.</p>
        1274  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  832   1275   
        pub fn block_size(mut self, input: ::std::option::Option<i32>) -> Self {
  833         -
            self.block_size = input;
        1276  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1277  +
            self.block_size =
        1278  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1279  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  834   1280   
            self
        1281  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  835   1282   
        }
  836         -
        /// <p>The time when the <code>BlockToken</code> expires.</p>
        1283  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The time when the <code>BlockToken</code> expires.</p>
        1284  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  837   1285   
        pub fn expiry_time(
  838   1286   
            mut self,
  839   1287   
            input: ::std::option::Option<::aws_smithy_http_server_python::types::DateTime>,
  840   1288   
        ) -> Self {
  841         -
            self.expiry_time = input;
        1289  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1290  +
            self.expiry_time =
        1291  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1292  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  842   1293   
            self
        1294  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  843   1295   
        }
  844         -
        /// <p>The size of the volume in GB.</p>
        1296  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The size of the volume in GB.</p>
        1297  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  845   1298   
        pub fn volume_size(mut self, input: ::std::option::Option<i64>) -> Self {
  846         -
            self.volume_size = input;
        1299  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1300  +
            self.volume_size =
        1301  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1302  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  847   1303   
            self
        1304  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  848   1305   
        }
  849         -
        /// <p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
        1306  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>
        1307  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  850   1308   
        pub fn next_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  851         -
            self.next_token = input;
        1309  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1310  +
            self.next_token =
        1311  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1312  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  852   1313   
            self
        1314  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  853   1315   
        }
  854         -
        /// <p>An array of objects containing information about the changed blocks.</p>
        1316  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>An array of objects containing information about the changed blocks.</p>
        1317  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  855   1318   
        pub fn changed_blocks(
  856   1319   
            mut self,
  857   1320   
            input: ::std::option::Option<::std::vec::Vec<crate::model::ChangedBlock>>,
  858   1321   
        ) -> Self {
  859         -
            self.changed_blocks = input;
        1322  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1323  +
            self.changed_blocks =
        1324  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1325  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  860   1326   
            self
        1327  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  861   1328   
        }
  862         -
        /// Consumes the builder and constructs a [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
        1329  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`ListChangedBlocksOutput`](crate::output::ListChangedBlocksOutput).
        1330  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
  863   1331   
        pub fn build(self) -> crate::output::ListChangedBlocksOutput {
  864   1332   
            self.build_enforcing_required_and_enum_traits()
  865   1333   
        }
        1334  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  866   1335   
        fn build_enforcing_required_and_enum_traits(
  867   1336   
            self,
  868   1337   
        ) -> crate::output::ListChangedBlocksOutput {
        1338  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  869   1339   
            crate::output::ListChangedBlocksOutput {
        1340  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  870   1341   
                block_size: self.block_size,
        1342  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  871   1343   
                expiry_time: self.expiry_time,
        1344  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  872   1345   
                volume_size: self.volume_size,
        1346  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  873   1347   
                next_token: self.next_token,
        1348  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  874   1349   
                changed_blocks: self.changed_blocks,
        1350  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  875   1351   
            }
        1352  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  876   1353   
        }
        1354  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  877   1355   
    }
        1356  +
        1357  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  878   1358   
}
  879         -
/// See [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
        1359  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
  880   1360   
pub mod get_snapshot_block_output {
  881   1361   
        1362  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
  882   1363   
    impl ::std::convert::From<Builder> for crate::output::GetSnapshotBlockOutput {
  883   1364   
        fn from(builder: Builder) -> Self {
  884   1365   
            builder.build()
  885   1366   
        }
  886   1367   
    }
  887         -
    /// A builder for [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
        1368  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
        1369  +
    /* RustType.kt:516 */
  888   1370   
    #[derive(::std::clone::Clone, ::std::default::Default)]
        1371  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  889   1372   
    pub struct Builder {
        1373  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  890   1374   
        pub(crate) data_length: ::std::option::Option<i32>,
        1375  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  891   1376   
        pub(crate) checksum_algorithm: ::std::option::Option<crate::model::ChecksumAlgorithm>,
        1377  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  892   1378   
        pub(crate) checksum: ::std::option::Option<::std::string::String>,
        1379  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  893   1380   
        pub(crate) block_data:
  894   1381   
            ::std::option::Option<::aws_smithy_http_server_python::types::ByteStream>,
        1382  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  895   1383   
    }
        1384  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  896   1385   
    impl Builder {
  897         -
        /// <p>The size of the data in the block.</p>
        1386  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The size of the data in the block.</p>
        1387  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  898   1388   
        pub fn data_length(mut self, input: ::std::option::Option<i32>) -> Self {
  899         -
            self.data_length = input;
        1389  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1390  +
            self.data_length =
        1391  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1392  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  900   1393   
            self
        1394  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  901   1395   
        }
  902         -
        /// <p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
        1396  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The algorithm used to generate the checksum for the block, such as SHA256.</p>
        1397  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  903   1398   
        pub fn checksum_algorithm(
  904   1399   
            mut self,
  905   1400   
            input: ::std::option::Option<crate::model::ChecksumAlgorithm>,
  906   1401   
        ) -> Self {
  907         -
            self.checksum_algorithm = input;
        1402  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1403  +
            self.checksum_algorithm =
        1404  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1405  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  908   1406   
            self
        1407  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  909   1408   
        }
  910         -
        /// <p>The checksum generated for the block, which is Base64 encoded.</p>
        1409  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The checksum generated for the block, which is Base64 encoded.</p>
        1410  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  911   1411   
        pub fn checksum(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
  912         -
            self.checksum = input;
        1412  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1413  +
            self.checksum =
        1414  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1415  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  913   1416   
            self
        1417  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  914   1418   
        }
  915         -
        /// <p>The data content of the block.</p>
        1419  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The data content of the block.</p>
        1420  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  916   1421   
        pub fn block_data(
  917   1422   
            mut self,
  918   1423   
            input: ::aws_smithy_http_server_python::types::ByteStream,
  919   1424   
        ) -> Self {
  920         -
            self.block_data = Some(input);
        1425  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1426  +
            self.block_data =
        1427  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:246 */Some(
        1428  +
                    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1429  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:246 */)
        1430  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  921   1431   
            self
        1432  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  922   1433   
        }
  923         -
        /// Consumes the builder and constructs a [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
        1434  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`GetSnapshotBlockOutput`](crate::output::GetSnapshotBlockOutput).
        1435  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
  924   1436   
        pub fn build(self) -> crate::output::GetSnapshotBlockOutput {
  925   1437   
            self.build_enforcing_required_and_enum_traits()
  926   1438   
        }
        1439  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  927   1440   
        fn build_enforcing_required_and_enum_traits(self) -> crate::output::GetSnapshotBlockOutput {
        1441  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  928   1442   
            crate::output::GetSnapshotBlockOutput {
        1443  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  929   1444   
                data_length: self.data_length,
        1445  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  930   1446   
                checksum_algorithm: self.checksum_algorithm,
        1447  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  931   1448   
                checksum: self.checksum,
  932         -
                block_data: self.block_data.unwrap_or_default(),
        1449  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
        1450  +
                block_data: self
        1451  +
                    .block_data
        1452  +
                    /* ServerBuilderGeneratorCommon.kt:113 */
        1453  +
                    .unwrap_or_default(),
        1454  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  933   1455   
            }
        1456  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  934   1457   
        }
        1458  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  935   1459   
    }
        1460  +
        1461  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  936   1462   
}
  937         -
/// See [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
        1463  +
/// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:110 */See [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
  938   1464   
pub mod complete_snapshot_output {
  939   1465   
        1466  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:269 */
  940   1467   
    impl ::std::convert::From<Builder> for crate::output::CompleteSnapshotOutput {
  941   1468   
        fn from(builder: Builder) -> Self {
  942   1469   
            builder.build()
  943   1470   
        }
  944   1471   
    }
  945         -
    /// A builder for [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
        1472  +
    /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:130 */A builder for [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
        1473  +
    /* RustType.kt:516 */
  946   1474   
    #[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
        1475  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  947   1476   
    pub struct Builder {
        1477  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:225 */
  948   1478   
        pub(crate) status: ::std::option::Option<crate::model::Status>,
        1479  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:137 */
  949   1480   
    }
        1481  +
    /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  950   1482   
    impl Builder {
  951         -
        /// <p>The status of the snapshot.</p>
        1483  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:241 */<p>The status of the snapshot.</p>
        1484  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  952   1485   
        pub fn status(mut self, input: ::std::option::Option<crate::model::Status>) -> Self {
  953         -
            self.status = input;
        1486  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */
        1487  +
            self.status =
        1488  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:247 */input
        1489  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:245 */;
  954   1490   
            self
        1491  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:244 */
  955   1492   
        }
  956         -
        /// Consumes the builder and constructs a [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
        1493  +
        /// /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:150 */Consumes the builder and constructs a [`CompleteSnapshotOutput`](crate::output::CompleteSnapshotOutput).
        1494  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:159 */
  957   1495   
        pub fn build(self) -> crate::output::CompleteSnapshotOutput {
  958   1496   
            self.build_enforcing_required_and_enum_traits()
  959   1497   
        }
        1498  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  960   1499   
        fn build_enforcing_required_and_enum_traits(self) -> crate::output::CompleteSnapshotOutput {
        1500  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  961   1501   
            crate::output::CompleteSnapshotOutput {
        1502  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:186 */
  962   1503   
                status: self.status,
        1504  +
                /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:182 */
  963   1505   
            }
        1506  +
            /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:171 */
  964   1507   
        }
        1508  +
        /* ServerBuilderGeneratorWithoutPublicConstrainedTypes.kt:141 */
  965   1509   
    }
        1510  +
        1511  +
    /* RustCrateInlineModuleComposingWriter.kt:299 */
  966   1512   
}