Server Test

Server Test

rev. d838bf488731ae5e751cce0fe13f339a5b9be858

Files changed:

tmp-codegen-diff/codegen-server-test/ebs-http0x/rust-server-codegen/src/service.rs

@@ -969,969 +1037,1037 @@
  989    989   
                );
  990    990   
            }
  991    991   
            if !missing_operation_names.is_empty() {
  992    992   
                return Err(MissingOperationsError {
  993    993   
                    operation_names2setter_methods: missing_operation_names,
  994    994   
                });
  995    995   
            }
  996    996   
            let unexpected_error_msg = "this should never panic since we are supposed to check beforehand that a handler has been registered for this operation; please file a bug report under https://github.com/smithy-lang/smithy-rs/issues";
  997    997   
  998    998   
            crate::model::SnapshotId::compile_regex();
  999         -
            crate::model::Description::compile_regex();
 1000         -
            crate::model::OwnerId::compile_regex();
 1001         -
            crate::model::KmsKeyArn::compile_regex();
 1002         -
            crate::model::TagValue::compile_regex();
 1003         -
            crate::model::TagKey::compile_regex();
 1004         -
            crate::model::IdempotencyToken::compile_regex();
 1005    999   
            crate::model::Checksum::compile_regex();
 1006   1000   
            crate::model::BlockToken::compile_regex();
 1007   1001   
            crate::model::PageToken::compile_regex();
        1002  +
            crate::model::IdempotencyToken::compile_regex();
        1003  +
            crate::model::KmsKeyArn::compile_regex();
        1004  +
            crate::model::Description::compile_regex();
        1005  +
            crate::model::OwnerId::compile_regex();
        1006  +
            crate::model::TagKey::compile_regex();
        1007  +
            crate::model::TagValue::compile_regex();
 1008   1008   
 1009   1009   
            ::aws_smithy_legacy_http_server::protocol::rest::router::RestRouter::from_iter([
 1010   1010   
                (
 1011   1011   
                    request_specs::complete_snapshot(),
 1012   1012   
                    self.complete_snapshot.expect(unexpected_error_msg),
 1013   1013   
                ),
 1014   1014   
                (
 1015   1015   
                    request_specs::get_snapshot_block(),
 1016   1016   
                    self.get_snapshot_block.expect(unexpected_error_msg),
 1017   1017   
                ),

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

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