1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>The request has exceeded the quotas imposed by the service.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct ServiceLimitExceededException {
    /// <p>The name of the limit that was reached.</p>
    pub limit_name: ::std::option::Option<crate::types::LimitName>,
    /// <p>The value of the exceeded limit.</p>
    pub limit_value: f64,
    /// <p>The request has exceeded the quotas imposed by the service.</p>
    pub message: ::std::string::String,
    pub(crate) meta: ::aws_smithy_types::error::ErrorMetadata,
}
impl ServiceLimitExceededException {
    /// <p>The name of the limit that was reached.</p>
    pub fn limit_name(&self) -> ::std::option::Option<&crate::types::LimitName> {
        self.limit_name.as_ref()
    }
    /// <p>The value of the exceeded limit.</p>
    pub fn limit_value(&self) -> f64 {
        self.limit_value
    }
}
impl ServiceLimitExceededException {
    /// Returns the error message.
    pub fn message(&self) -> &str {
        &self.message
    }
}
impl ::std::fmt::Display for ServiceLimitExceededException {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        ::std::write!(f, "ServiceLimitExceededException")?;
        {
            ::std::write!(f, ": {}", &self.message)?;
        }
        Ok(())
    }
}
impl ::std::error::Error for ServiceLimitExceededException {}
impl ::aws_types::request_id::RequestId for crate::types::error::ServiceLimitExceededException {
    fn request_id(&self) -> Option<&str> {
        use ::aws_smithy_types::error::metadata::ProvideErrorMetadata;
        self.meta().request_id()
    }
}
impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for ServiceLimitExceededException {
    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
        &self.meta
    }
}
impl ServiceLimitExceededException {
    /// Creates a new builder-style object to manufacture [`ServiceLimitExceededException`](crate::types::error::ServiceLimitExceededException).
    pub fn builder() -> crate::types::error::builders::ServiceLimitExceededExceptionBuilder {
        crate::types::error::builders::ServiceLimitExceededExceptionBuilder::default()
    }
}

/// A builder for [`ServiceLimitExceededException`](crate::types::error::ServiceLimitExceededException).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct ServiceLimitExceededExceptionBuilder {
    pub(crate) limit_name: ::std::option::Option<crate::types::LimitName>,
    pub(crate) limit_value: ::std::option::Option<f64>,
    pub(crate) message: ::std::option::Option<::std::string::String>,
    meta: std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
}
impl ServiceLimitExceededExceptionBuilder {
    /// <p>The name of the limit that was reached.</p>
    pub fn limit_name(mut self, input: crate::types::LimitName) -> Self {
        self.limit_name = ::std::option::Option::Some(input);
        self
    }
    /// <p>The name of the limit that was reached.</p>
    pub fn set_limit_name(mut self, input: ::std::option::Option<crate::types::LimitName>) -> Self {
        self.limit_name = input;
        self
    }
    /// <p>The name of the limit that was reached.</p>
    pub fn get_limit_name(&self) -> &::std::option::Option<crate::types::LimitName> {
        &self.limit_name
    }
    /// <p>The value of the exceeded limit.</p>
    pub fn limit_value(mut self, input: f64) -> Self {
        self.limit_value = ::std::option::Option::Some(input);
        self
    }
    /// <p>The value of the exceeded limit.</p>
    pub fn set_limit_value(mut self, input: ::std::option::Option<f64>) -> Self {
        self.limit_value = input;
        self
    }
    /// <p>The value of the exceeded limit.</p>
    pub fn get_limit_value(&self) -> &::std::option::Option<f64> {
        &self.limit_value
    }
    /// <p>The request has exceeded the quotas imposed by the service.</p>
    /// This field is required.
    pub fn message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.message = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The request has exceeded the quotas imposed by the service.</p>
    pub fn set_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.message = input;
        self
    }
    /// <p>The request has exceeded the quotas imposed by the service.</p>
    pub fn get_message(&self) -> &::std::option::Option<::std::string::String> {
        &self.message
    }
    /// Sets error metadata
    pub fn meta(mut self, meta: ::aws_smithy_types::error::ErrorMetadata) -> Self {
        self.meta = Some(meta);
        self
    }

    /// Sets error metadata
    pub fn set_meta(&mut self, meta: std::option::Option<::aws_smithy_types::error::ErrorMetadata>) -> &mut Self {
        self.meta = meta;
        self
    }
    /// Consumes the builder and constructs a [`ServiceLimitExceededException`](crate::types::error::ServiceLimitExceededException).
    /// This method will fail if any of the following fields are not set:
    /// - [`message`](crate::types::error::builders::ServiceLimitExceededExceptionBuilder::message)
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::types::error::ServiceLimitExceededException, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::error::ServiceLimitExceededException {
            limit_name: self.limit_name,
            limit_value: self.limit_value.unwrap_or_default(),
            message: self.message.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "message",
                    "message was not specified but it is required when building ServiceLimitExceededException",
                )
            })?,
            meta: self.meta.unwrap_or_default(),
        })
    }
}