Skip to main content

aws_sdk_signin/operation/
put_console_authorization_configuration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `PutConsoleAuthorizationConfiguration`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct PutConsoleAuthorizationConfiguration;
6impl PutConsoleAuthorizationConfiguration {
7    /// Creates a new `PutConsoleAuthorizationConfiguration`
8    pub fn new() -> Self {
9        Self
10    }
11    pub(crate) async fn orchestrate(
12                        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
13                        input: crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationInput,
14                    ) -> ::std::result::Result<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationOutput, ::aws_smithy_runtime_api::client::result::SdkError<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationError, ::aws_smithy_runtime_api::client::orchestrator::HttpResponse>> {
15                        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<::aws_smithy_runtime_api::client::interceptors::context::Error, ::aws_smithy_runtime_api::client::orchestrator::HttpResponse>| {
16                            err.map_service_error(|err| {
17                                err.downcast::<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationError>().expect("correct error type")
18                            })
19                        };
20                        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
21                            .await
22                            .map_err(map_err)?;
23                        let output = context.finalize().map_err(map_err)?;
24                        ::std::result::Result::Ok(output.downcast::<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationOutput>().expect("correct output type"))
25                    }
26
27                    pub(crate) async fn orchestrate_with_stop_point(
28                        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
29                        input: crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationInput,
30                        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
31                    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext, ::aws_smithy_runtime_api::client::result::SdkError<::aws_smithy_runtime_api::client::interceptors::context::Error, ::aws_smithy_runtime_api::client::orchestrator::HttpResponse>> {
32                        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
33                        use ::tracing::Instrument;
34                        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point(
35                            "Signin",
36                            "PutConsoleAuthorizationConfiguration",
37                            input,
38                            runtime_plugins,
39                            stop_point
40                        )
41                        // Create a parent span for the entire operation. Includes a random, internal-only,
42                        // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
43                        .instrument(::tracing::debug_span!(
44                                "Signin.PutConsoleAuthorizationConfiguration",
45                                "rpc.service" = "Signin",
46                                "rpc.method" = "PutConsoleAuthorizationConfiguration",
47                                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
48                                "rpc.system" = "aws-api",
49                            ))
50                        .await
51                    }
52
53                    pub(crate) fn operation_runtime_plugins(
54                        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
55                        client_config: &crate::config::Config,
56                        config_override: ::std::option::Option<crate::config::Builder>,
57                    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
58                        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
59
60                        if let ::std::option::Option::Some(config_override) = config_override {
61                            for plugin in config_override.runtime_plugins.iter().cloned() {
62                                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
63                            }
64                            runtime_plugins = runtime_plugins.with_operation_plugin(
65                                crate::config::ConfigOverrideRuntimePlugin::new(config_override, client_config.config.clone(), &client_config.runtime_components)
66                            );
67                        }
68                        runtime_plugins
69                    }
70}
71impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for PutConsoleAuthorizationConfiguration {
72                fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
73                    let mut cfg = ::aws_smithy_types::config_bag::Layer::new("PutConsoleAuthorizationConfiguration");
74
75                    cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(PutConsoleAuthorizationConfigurationRequestSerializer));
76                    cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(PutConsoleAuthorizationConfigurationResponseDeserializer));
77
78                    cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
79                        crate::config::auth::Params::builder()
80                            .operation_name("PutConsoleAuthorizationConfiguration")
81                            .build()
82                            .expect("required fields set")
83                    ));
84
85                    cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
86                            "PutConsoleAuthorizationConfiguration",
87                            "Signin",
88                        ));
89let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
90                            signing_options.double_uri_encode = true;
91                            signing_options.content_sha256_header = false;
92                            signing_options.normalize_uri_path = true;
93                            signing_options.payload_override = None;
94
95                            cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
96                                signing_options,
97                                ..::std::default::Default::default()
98                            });
99
100                    ::std::option::Option::Some(cfg.freeze())
101                }
102
103                fn runtime_components(&self, _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
104                    #[allow(unused_mut)]
105                    let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("PutConsoleAuthorizationConfiguration")
106                            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(PutConsoleAuthorizationConfigurationTelemetryInputCaptureInterceptor))
107.with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default()))
108.with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(PutConsoleAuthorizationConfigurationEndpointParamsInterceptor))
109                            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationError>::new())
110.with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationError>::new())
111.with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationError>::new())
112.with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationError>::new());
113
114                    ::std::borrow::Cow::Owned(rcb)
115                }
116            }
117
118            #[derive(Debug)]
119            struct PutConsoleAuthorizationConfigurationTelemetryInputCaptureInterceptor;
120
121            #[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
122            impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutConsoleAuthorizationConfigurationTelemetryInputCaptureInterceptor {
123                fn name(&self) -> &'static str {
124                    "PutConsoleAuthorizationConfigurationTelemetryInputCaptureInterceptor"
125                }
126
127                fn read_before_execution(
128                    &self,
129                    context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<'_, ::aws_smithy_runtime_api::client::interceptors::context::Input, ::aws_smithy_runtime_api::client::interceptors::context::Output, ::aws_smithy_runtime_api::client::interceptors::context::Error>,
130                    cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
131                ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
132                    // Nothing to do unless the customer opted in by naming members to record.
133                    let ::std::option::Option::Some(requested) = cfg.load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>().filter(|r| !r.is_empty()) else {
134                        return ::std::result::Result::Ok(());
135                    };
136
137                    let ::std::option::Option::Some(input) = context.input().downcast_ref::<PutConsoleAuthorizationConfigurationInput>() else {
138                        // A mismatched input is not this interceptor's concern; skip quietly.
139                        return ::std::result::Result::Ok(());
140                    };
141
142                    let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
143                    if requested.should_capture("targetId") {
144                            if let ::std::option::Option::Some(value) = input.target_id.as_deref() {
145                                captured.insert("targetId", value);
146                            }
147                        }
148
149                    cfg.interceptor_state().store_put(captured);
150                    ::std::result::Result::Ok(())
151                }
152            }
153#[derive(Debug)]
154            struct PutConsoleAuthorizationConfigurationResponseDeserializer;
155            impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutConsoleAuthorizationConfigurationResponseDeserializer {
156
157
158                fn deserialize_nonstreaming_with_config(&self, response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse, _cfg: &::aws_smithy_types::config_bag::ConfigBag) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
159                    let (success, status) = (response.status().is_success(), response.status().as_u16());
160            let headers = response.headers();
161            let body = response.body().bytes().expect("body loaded");
162            #[allow(unused_mut)]
163            let mut force_error = false;
164            ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
165            let parse_result = if !success && status != 200 || force_error {
166                crate::protocol_serde::shape_put_console_authorization_configuration::de_put_console_authorization_configuration_http_error(status, headers, body, _cfg)
167            } else {
168                crate::protocol_serde::shape_put_console_authorization_configuration::de_put_console_authorization_configuration_http_response(status, headers, body, _cfg)
169            };
170            crate::protocol_serde::type_erase_result(parse_result)
171                }
172            }
173#[derive(Debug)]
174            struct PutConsoleAuthorizationConfigurationRequestSerializer;
175            impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for PutConsoleAuthorizationConfigurationRequestSerializer {
176                #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
177                fn serialize_input(&self, input: ::aws_smithy_runtime_api::client::interceptors::context::Input, _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
178                    let input = input.downcast::<crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationInput>().expect("correct type");
179                    let _header_serialization_settings = _cfg.load::<crate::serialization_settings::HeaderSerializationSettings>().cloned().unwrap_or_default();
180                    let mut request_builder = {
181                        #[allow(clippy::uninlined_format_args)]
182fn uri_base(_input: &crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationInput, output: &mut ::std::string::String) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
183    use ::std::fmt::Write as _;
184    ::std::write!(output, "/put-console-authorization-configuration").expect("formatting should succeed");
185    ::std::result::Result::Ok(())
186}
187#[allow(clippy::unnecessary_wraps)]
188fn update_http_builder(
189                input: &crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationInput,
190                builder: ::http_1x::request::Builder
191            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
192    let mut uri = ::std::string::String::new();
193    uri_base(input, &mut uri)?;
194    ::std::result::Result::Ok(builder.method("POST").uri(uri))
195}
196let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
197builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/json");
198builder
199                    };
200                    let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_put_console_authorization_configuration::ser_put_console_authorization_configuration_input(&input)?);
201                    if let Some(content_length) = body.content_length() {
202                                let content_length = content_length.to_string();
203                                request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
204                            }
205                    ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
206                }
207            }
208#[derive(Debug)]
209            struct PutConsoleAuthorizationConfigurationEndpointParamsInterceptor;
210
211            #[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
212            impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutConsoleAuthorizationConfigurationEndpointParamsInterceptor {
213                fn name(&self) -> &'static str {
214                    "PutConsoleAuthorizationConfigurationEndpointParamsInterceptor"
215                }
216
217                fn read_before_execution(
218                    &self,
219                    context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<'_, ::aws_smithy_runtime_api::client::interceptors::context::Input, ::aws_smithy_runtime_api::client::interceptors::context::Output, ::aws_smithy_runtime_api::client::interceptors::context::Error>,
220                    cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
221                ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
222                    let _input = context.input()
223                        .downcast_ref::<PutConsoleAuthorizationConfigurationInput>()
224                        .ok_or("failed to downcast to PutConsoleAuthorizationConfigurationInput")?;
225
226
227
228                    let params = crate::config::endpoint::Params::builder()
229                        .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
230.set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
231.set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
232.set_region(cfg.load::<::aws_types::region::Region>().map(|r|r.as_ref().to_owned()))
233.set_is_control_plane(Some(true))
234                        .build()
235                        .map_err(|err| ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err))?;
236                    cfg.interceptor_state().store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
237                    ::std::result::Result::Ok(())
238                }
239            }
240
241            // The get_* functions below are generated from JMESPath expressions in the
242            // operationContextParams trait. They target the operation's input shape.
243
244
245
246/// Error type for the `PutConsoleAuthorizationConfigurationError` operation.
247#[non_exhaustive]
248#[derive(::std::fmt::Debug)]
249pub enum PutConsoleAuthorizationConfigurationError {
250    /// Error thrown for access denied scenarios with flexible HTTP status mapping Runtime HTTP Status Code Mapping: - HTTP 401 (Unauthorized): TOKEN_EXPIRED, AUTHCODE_EXPIRED - HTTP 403 (Forbidden): USER_CREDENTIALS_CHANGED, INSUFFICIENT_PERMISSIONS The specific HTTP status code is determined at runtime based on the error enum value. Consumers should use the error field to determine the specific access denial reason.
251    AccessDeniedException(crate::types::error::AccessDeniedException),
252    /// Error thrown when request conflicts with current state HTTP Status Code: 409 Conflict Used when the request conflicts with the current state of the resource
253    ConflictException(crate::types::error::ConflictException),
254    /// Error thrown when an internal server error occurs HTTP Status Code: 500 Internal Server Error Used for unexpected server-side errors that prevent request processing.
255    InternalServerException(crate::types::error::InternalServerException),
256    /// Error thrown when requested resource is not found HTTP Status Code: 404 Not Found Used when the specified resource does not exist
257    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
258    /// Error thrown when rate limit is exceeded HTTP Status Code: 429 Too Many Requests Possible OAuth2ErrorCode values: - INVALID_REQUEST: Rate limiting, too many requests, abuse prevention Possible causes: - Too many token requests from the same client - Rate limiting based on client_id or IP address - Abuse prevention mechanisms triggered - Service protection against excessive token generation
259    TooManyRequestsError(crate::types::error::TooManyRequestsError),
260    /// Error thrown when request validation fails HTTP Status Code: 400 Bad Request Used for request validation errors such as malformed parameters, missing required fields, or invalid parameter values.
261    ValidationException(crate::types::error::ValidationException),
262    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
263                    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
264    variable wildcard pattern and check `.code()`:
265     \
266    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
267     \
268    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-PutConsoleAuthorizationConfigurationError) for what information is available for the error.")]
269                    Unhandled(crate::error::sealed_unhandled::Unhandled),
270}
271impl PutConsoleAuthorizationConfigurationError {
272    /// Creates the `PutConsoleAuthorizationConfigurationError::Unhandled` variant from any error type.
273                    pub fn unhandled(err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>) -> Self {
274                        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source: err.into(), meta: ::std::default::Default::default() })
275                    }
276
277                    /// Creates the `PutConsoleAuthorizationConfigurationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
278                    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
279                        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source: err.clone().into(), meta: err })
280                    }
281    ///
282    /// Returns error metadata, which includes the error code, message,
283    /// request ID, and potentially additional information.
284    ///
285    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
286        match self {
287            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
288            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
289            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
290            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
291            Self::TooManyRequestsError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
292            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
293            Self::Unhandled(e) => &e.meta,
294        }
295    }
296    /// Returns `true` if the error kind is `PutConsoleAuthorizationConfigurationError::AccessDeniedException`.
297    pub fn is_access_denied_exception(&self) -> bool {
298        matches!(self, Self::AccessDeniedException(_))
299    }
300    /// Returns `true` if the error kind is `PutConsoleAuthorizationConfigurationError::ConflictException`.
301    pub fn is_conflict_exception(&self) -> bool {
302        matches!(self, Self::ConflictException(_))
303    }
304    /// Returns `true` if the error kind is `PutConsoleAuthorizationConfigurationError::InternalServerException`.
305    pub fn is_internal_server_exception(&self) -> bool {
306        matches!(self, Self::InternalServerException(_))
307    }
308    /// Returns `true` if the error kind is `PutConsoleAuthorizationConfigurationError::ResourceNotFoundException`.
309    pub fn is_resource_not_found_exception(&self) -> bool {
310        matches!(self, Self::ResourceNotFoundException(_))
311    }
312    /// Returns `true` if the error kind is `PutConsoleAuthorizationConfigurationError::TooManyRequestsError`.
313    pub fn is_too_many_requests_error(&self) -> bool {
314        matches!(self, Self::TooManyRequestsError(_))
315    }
316    /// Returns `true` if the error kind is `PutConsoleAuthorizationConfigurationError::ValidationException`.
317    pub fn is_validation_exception(&self) -> bool {
318        matches!(self, Self::ValidationException(_))
319    }
320}
321impl ::std::error::Error for PutConsoleAuthorizationConfigurationError {
322    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
323        match self {
324            Self::AccessDeniedException(_inner) =>
325            ::std::option::Option::Some(_inner)
326            ,
327            Self::ConflictException(_inner) =>
328            ::std::option::Option::Some(_inner)
329            ,
330            Self::InternalServerException(_inner) =>
331            ::std::option::Option::Some(_inner)
332            ,
333            Self::ResourceNotFoundException(_inner) =>
334            ::std::option::Option::Some(_inner)
335            ,
336            Self::TooManyRequestsError(_inner) =>
337            ::std::option::Option::Some(_inner)
338            ,
339            Self::ValidationException(_inner) =>
340            ::std::option::Option::Some(_inner)
341            ,
342            Self::Unhandled(_inner) => {
343                ::std::option::Option::Some(&*_inner.source)
344            }
345        }
346    }
347}
348impl ::std::fmt::Display for PutConsoleAuthorizationConfigurationError {
349    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
350        match self {
351            Self::AccessDeniedException(_inner) =>
352            _inner.fmt(f)
353            ,
354            Self::ConflictException(_inner) =>
355            _inner.fmt(f)
356            ,
357            Self::InternalServerException(_inner) =>
358            _inner.fmt(f)
359            ,
360            Self::ResourceNotFoundException(_inner) =>
361            _inner.fmt(f)
362            ,
363            Self::TooManyRequestsError(_inner) =>
364            _inner.fmt(f)
365            ,
366            Self::ValidationException(_inner) =>
367            _inner.fmt(f)
368            ,
369            Self::Unhandled(_inner) => {
370                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
371                                                        write!(f, "unhandled error ({code})")
372                                                    } else {
373                                                        f.write_str("unhandled error")
374                                                    }
375            }
376        }
377    }
378}
379impl ::aws_smithy_types::retry::ProvideErrorKind for PutConsoleAuthorizationConfigurationError {
380    fn code(&self) -> ::std::option::Option<&str> {
381        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
382    }
383    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
384        ::std::option::Option::None
385    }
386}
387impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for PutConsoleAuthorizationConfigurationError {
388    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
389        match self {
390            Self::AccessDeniedException(_inner) =>
391            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
392            ,
393            Self::ConflictException(_inner) =>
394            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
395            ,
396            Self::InternalServerException(_inner) =>
397            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
398            ,
399            Self::ResourceNotFoundException(_inner) =>
400            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
401            ,
402            Self::TooManyRequestsError(_inner) =>
403            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
404            ,
405            Self::ValidationException(_inner) =>
406            ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
407            ,
408            Self::Unhandled(_inner) => {
409                &_inner.meta
410            }
411        }
412    }
413}
414impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for PutConsoleAuthorizationConfigurationError {
415    fn create_unhandled_error(
416                        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
417                        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>
418                    ) -> Self {
419        Self::Unhandled(crate::error::sealed_unhandled::Unhandled { source, meta: meta.unwrap_or_default() })
420    }
421}
422impl ::aws_types::request_id::RequestId for crate::operation::put_console_authorization_configuration::PutConsoleAuthorizationConfigurationError {
423                                fn request_id(&self) -> Option<&str> {
424                                    self.meta().request_id()
425                                }
426                            }
427
428pub use crate::operation::put_console_authorization_configuration::_put_console_authorization_configuration_input::PutConsoleAuthorizationConfigurationInput;
429
430pub use crate::operation::put_console_authorization_configuration::_put_console_authorization_configuration_output::PutConsoleAuthorizationConfigurationOutput;
431
432mod _put_console_authorization_configuration_input;
433
434mod _put_console_authorization_configuration_output;
435
436/// Builders
437pub mod builders;
438