aws_sdk_quicksight/operation/
generate_embed_url_for_anonymous_user.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `GenerateEmbedUrlForAnonymousUser`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct GenerateEmbedUrlForAnonymousUser;
6impl GenerateEmbedUrlForAnonymousUser {
7    /// Creates a new `GenerateEmbedUrlForAnonymousUser`
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::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserInput,
14    ) -> ::std::result::Result<
15        crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserError,
18            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
19        >,
20    > {
21        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<
22            ::aws_smithy_runtime_api::client::interceptors::context::Error,
23            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
24        >| {
25            err.map_service_error(|err| {
26                err.downcast::<crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserError>()
27                    .expect("correct error type")
28            })
29        };
30        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
31            .await
32            .map_err(map_err)?;
33        let output = context.finalize().map_err(map_err)?;
34        ::std::result::Result::Ok(
35            output
36                .downcast::<crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserOutput>()
37                .expect("correct output type"),
38        )
39    }
40
41    pub(crate) async fn orchestrate_with_stop_point(
42        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
43        input: crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserInput,
44        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
45    ) -> ::std::result::Result<
46        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
47        ::aws_smithy_runtime_api::client::result::SdkError<
48            ::aws_smithy_runtime_api::client::interceptors::context::Error,
49            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
50        >,
51    > {
52        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
53        use ::tracing::Instrument;
54        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point(
55            "QuickSight",
56            "GenerateEmbedUrlForAnonymousUser",
57            input,
58            runtime_plugins,
59            stop_point,
60        )
61        // Create a parent span for the entire operation. Includes a random, internal-only,
62        // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
63        .instrument(::tracing::debug_span!(
64            "QuickSight.GenerateEmbedUrlForAnonymousUser",
65            "rpc.service" = "QuickSight",
66            "rpc.method" = "GenerateEmbedUrlForAnonymousUser",
67            "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
68            "rpc.system" = "aws-api",
69        ))
70        .await
71    }
72
73    pub(crate) fn operation_runtime_plugins(
74        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
75        client_config: &crate::config::Config,
76        config_override: ::std::option::Option<crate::config::Builder>,
77    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
78        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
79
80        if let ::std::option::Option::Some(config_override) = config_override {
81            for plugin in config_override.runtime_plugins.iter().cloned() {
82                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
83            }
84            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
85                config_override,
86                client_config.config.clone(),
87                &client_config.runtime_components,
88            ));
89        }
90        runtime_plugins
91    }
92}
93impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for GenerateEmbedUrlForAnonymousUser {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("GenerateEmbedUrlForAnonymousUser");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            GenerateEmbedUrlForAnonymousUserRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            GenerateEmbedUrlForAnonymousUserResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("GenerateEmbedUrlForAnonymousUser")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::SensitiveOutput);
112        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
113            "GenerateEmbedUrlForAnonymousUser",
114            "QuickSight",
115        ));
116        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
117        signing_options.double_uri_encode = true;
118        signing_options.content_sha256_header = false;
119        signing_options.normalize_uri_path = true;
120        signing_options.payload_override = None;
121
122        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
123            signing_options,
124            ..::std::default::Default::default()
125        });
126
127        ::std::option::Option::Some(cfg.freeze())
128    }
129
130    fn runtime_components(
131        &self,
132        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
133    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
134        #[allow(unused_mut)]
135        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("GenerateEmbedUrlForAnonymousUser")
136            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
137            .with_interceptor(GenerateEmbedUrlForAnonymousUserEndpointParamsInterceptor)
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
139                crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserError,
140            >::new())
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
142                crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserError,
143            >::new())
144            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
145                crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserError,
146            >::new());
147
148        ::std::borrow::Cow::Owned(rcb)
149    }
150}
151
152#[derive(Debug)]
153struct GenerateEmbedUrlForAnonymousUserResponseDeserializer;
154impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for GenerateEmbedUrlForAnonymousUserResponseDeserializer {
155    fn deserialize_nonstreaming(
156        &self,
157        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
158    ) -> ::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_generate_embed_url_for_anonymous_user::de_generate_embed_url_for_anonymous_user_http_error(
167                status, headers, body,
168            )
169        } else {
170            crate::protocol_serde::shape_generate_embed_url_for_anonymous_user::de_generate_embed_url_for_anonymous_user_http_response(
171                status, headers, body,
172            )
173        };
174        crate::protocol_serde::type_erase_result(parse_result)
175    }
176}
177#[derive(Debug)]
178struct GenerateEmbedUrlForAnonymousUserRequestSerializer;
179impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for GenerateEmbedUrlForAnonymousUserRequestSerializer {
180    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
181    fn serialize_input(
182        &self,
183        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
184        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
185    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
186        let input = input
187            .downcast::<crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserInput>()
188            .expect("correct type");
189        let _header_serialization_settings = _cfg
190            .load::<crate::serialization_settings::HeaderSerializationSettings>()
191            .cloned()
192            .unwrap_or_default();
193        let mut request_builder = {
194            #[allow(clippy::uninlined_format_args)]
195            fn uri_base(
196                _input: &crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserInput,
197                output: &mut ::std::string::String,
198            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
199                use ::std::fmt::Write as _;
200                let input_1 = &_input.aws_account_id;
201                let input_1 = input_1
202                    .as_ref()
203                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("aws_account_id", "cannot be empty or unset"))?;
204                let aws_account_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
205                if aws_account_id.is_empty() {
206                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
207                        "aws_account_id",
208                        "cannot be empty or unset",
209                    ));
210                }
211                ::std::write!(output, "/accounts/{AwsAccountId}/embed-url/anonymous-user", AwsAccountId = aws_account_id)
212                    .expect("formatting should succeed");
213                ::std::result::Result::Ok(())
214            }
215            #[allow(clippy::unnecessary_wraps)]
216            fn update_http_builder(
217                input: &crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserInput,
218                builder: ::http::request::Builder,
219            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
220                let mut uri = ::std::string::String::new();
221                uri_base(input, &mut uri)?;
222                ::std::result::Result::Ok(builder.method("POST").uri(uri))
223            }
224            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
225            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/json");
226            builder
227        };
228        let body = ::aws_smithy_types::body::SdkBody::from(
229            crate::protocol_serde::shape_generate_embed_url_for_anonymous_user::ser_generate_embed_url_for_anonymous_user_input(&input)?,
230        );
231        if let Some(content_length) = body.content_length() {
232            let content_length = content_length.to_string();
233            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
234        }
235        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
236    }
237}
238#[derive(Debug)]
239struct GenerateEmbedUrlForAnonymousUserEndpointParamsInterceptor;
240
241impl ::aws_smithy_runtime_api::client::interceptors::Intercept for GenerateEmbedUrlForAnonymousUserEndpointParamsInterceptor {
242    fn name(&self) -> &'static str {
243        "GenerateEmbedUrlForAnonymousUserEndpointParamsInterceptor"
244    }
245
246    fn read_before_execution(
247        &self,
248        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
249            '_,
250            ::aws_smithy_runtime_api::client::interceptors::context::Input,
251            ::aws_smithy_runtime_api::client::interceptors::context::Output,
252            ::aws_smithy_runtime_api::client::interceptors::context::Error,
253        >,
254        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
255    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
256        let _input = context
257            .input()
258            .downcast_ref::<GenerateEmbedUrlForAnonymousUserInput>()
259            .ok_or("failed to downcast to GenerateEmbedUrlForAnonymousUserInput")?;
260
261        let params = crate::config::endpoint::Params::builder()
262            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
263            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
264            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
265            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
266            .build()
267            .map_err(|err| {
268                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
269            })?;
270        cfg.interceptor_state()
271            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
272        ::std::result::Result::Ok(())
273    }
274}
275
276// The get_* functions below are generated from JMESPath expressions in the
277// operationContextParams trait. They target the operation's input shape.
278
279/// Error type for the `GenerateEmbedUrlForAnonymousUserError` operation.
280#[non_exhaustive]
281#[derive(::std::fmt::Debug)]
282pub enum GenerateEmbedUrlForAnonymousUserError {
283    /// <p>You don't have access to this item. The provided credentials couldn't be validated. You might not be authorized to carry out the request. Make sure that your account is authorized to use the Amazon Quick Sight service, that your policies have the correct permissions, and that you are using the correct credentials.</p>
284    AccessDeniedException(crate::types::error::AccessDeniedException),
285    /// <p>An internal failure occurred.</p>
286    InternalFailureException(crate::types::error::InternalFailureException),
287    /// <p>One or more parameters has a value that isn't valid.</p>
288    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
289    /// <p>One or more resources can't be found.</p>
290    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
291    /// <p>The number of minutes specified for the lifetime of a session isn't valid. The session lifetime must be 15-600 minutes.</p>
292    SessionLifetimeInMinutesInvalidException(crate::types::error::SessionLifetimeInMinutesInvalidException),
293    /// <p>Access is throttled.</p>
294    ThrottlingException(crate::types::error::ThrottlingException),
295    /// <p>This error indicates that you are calling an embedding operation in Amazon Quick Sight without the required pricing plan on your Amazon Web Services account. Before you can use embedding for anonymous users, a Quick Suite administrator needs to add capacity pricing to Quick Sight. You can do this on the <b>Manage Quick Suite</b> page.</p>
296    /// <p>After capacity pricing is added, you can use the <code> <a href="https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GetDashboardEmbedUrl.html">GetDashboardEmbedUrl</a> </code> API operation with the <code>--identity-type ANONYMOUS</code> option.</p>
297    UnsupportedPricingPlanException(crate::types::error::UnsupportedPricingPlanException),
298    /// <p>This error indicates that you are calling an operation on an Amazon Quick Suite subscription where the edition doesn't include support for that operation. Amazon Quick Suite currently has Standard Edition and Enterprise Edition. Not every operation and capability is available in every edition.</p>
299    UnsupportedUserEditionException(crate::types::error::UnsupportedUserEditionException),
300    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
301    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
302    variable wildcard pattern and check `.code()`:
303     \
304    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
305     \
306    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-GenerateEmbedUrlForAnonymousUserError) for what information is available for the error.")]
307    Unhandled(crate::error::sealed_unhandled::Unhandled),
308}
309impl GenerateEmbedUrlForAnonymousUserError {
310    /// Creates the `GenerateEmbedUrlForAnonymousUserError::Unhandled` variant from any error type.
311    pub fn unhandled(
312        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
313    ) -> Self {
314        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
315            source: err.into(),
316            meta: ::std::default::Default::default(),
317        })
318    }
319
320    /// Creates the `GenerateEmbedUrlForAnonymousUserError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
321    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
322        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
323            source: err.clone().into(),
324            meta: err,
325        })
326    }
327    ///
328    /// Returns error metadata, which includes the error code, message,
329    /// request ID, and potentially additional information.
330    ///
331    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
332        match self {
333            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
334            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
335            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
336            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
337            Self::SessionLifetimeInMinutesInvalidException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
338            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
339            Self::UnsupportedPricingPlanException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
340            Self::UnsupportedUserEditionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
341            Self::Unhandled(e) => &e.meta,
342        }
343    }
344    /// Returns `true` if the error kind is `GenerateEmbedUrlForAnonymousUserError::AccessDeniedException`.
345    pub fn is_access_denied_exception(&self) -> bool {
346        matches!(self, Self::AccessDeniedException(_))
347    }
348    /// Returns `true` if the error kind is `GenerateEmbedUrlForAnonymousUserError::InternalFailureException`.
349    pub fn is_internal_failure_exception(&self) -> bool {
350        matches!(self, Self::InternalFailureException(_))
351    }
352    /// Returns `true` if the error kind is `GenerateEmbedUrlForAnonymousUserError::InvalidParameterValueException`.
353    pub fn is_invalid_parameter_value_exception(&self) -> bool {
354        matches!(self, Self::InvalidParameterValueException(_))
355    }
356    /// Returns `true` if the error kind is `GenerateEmbedUrlForAnonymousUserError::ResourceNotFoundException`.
357    pub fn is_resource_not_found_exception(&self) -> bool {
358        matches!(self, Self::ResourceNotFoundException(_))
359    }
360    /// Returns `true` if the error kind is `GenerateEmbedUrlForAnonymousUserError::SessionLifetimeInMinutesInvalidException`.
361    pub fn is_session_lifetime_in_minutes_invalid_exception(&self) -> bool {
362        matches!(self, Self::SessionLifetimeInMinutesInvalidException(_))
363    }
364    /// Returns `true` if the error kind is `GenerateEmbedUrlForAnonymousUserError::ThrottlingException`.
365    pub fn is_throttling_exception(&self) -> bool {
366        matches!(self, Self::ThrottlingException(_))
367    }
368    /// Returns `true` if the error kind is `GenerateEmbedUrlForAnonymousUserError::UnsupportedPricingPlanException`.
369    pub fn is_unsupported_pricing_plan_exception(&self) -> bool {
370        matches!(self, Self::UnsupportedPricingPlanException(_))
371    }
372    /// Returns `true` if the error kind is `GenerateEmbedUrlForAnonymousUserError::UnsupportedUserEditionException`.
373    pub fn is_unsupported_user_edition_exception(&self) -> bool {
374        matches!(self, Self::UnsupportedUserEditionException(_))
375    }
376}
377impl ::std::error::Error for GenerateEmbedUrlForAnonymousUserError {
378    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
379        match self {
380            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
381            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
382            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
383            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
384            Self::SessionLifetimeInMinutesInvalidException(_inner) => ::std::option::Option::Some(_inner),
385            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
386            Self::UnsupportedPricingPlanException(_inner) => ::std::option::Option::Some(_inner),
387            Self::UnsupportedUserEditionException(_inner) => ::std::option::Option::Some(_inner),
388            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
389        }
390    }
391}
392impl ::std::fmt::Display for GenerateEmbedUrlForAnonymousUserError {
393    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
394        match self {
395            Self::AccessDeniedException(_inner) => _inner.fmt(f),
396            Self::InternalFailureException(_inner) => _inner.fmt(f),
397            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
398            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
399            Self::SessionLifetimeInMinutesInvalidException(_inner) => _inner.fmt(f),
400            Self::ThrottlingException(_inner) => _inner.fmt(f),
401            Self::UnsupportedPricingPlanException(_inner) => _inner.fmt(f),
402            Self::UnsupportedUserEditionException(_inner) => _inner.fmt(f),
403            Self::Unhandled(_inner) => {
404                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
405                    write!(f, "unhandled error ({code})")
406                } else {
407                    f.write_str("unhandled error")
408                }
409            }
410        }
411    }
412}
413impl ::aws_smithy_types::retry::ProvideErrorKind for GenerateEmbedUrlForAnonymousUserError {
414    fn code(&self) -> ::std::option::Option<&str> {
415        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
416    }
417    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
418        ::std::option::Option::None
419    }
420}
421impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for GenerateEmbedUrlForAnonymousUserError {
422    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
423        match self {
424            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
425            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
426            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
427            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
428            Self::SessionLifetimeInMinutesInvalidException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
429            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
430            Self::UnsupportedPricingPlanException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
431            Self::UnsupportedUserEditionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
432            Self::Unhandled(_inner) => &_inner.meta,
433        }
434    }
435}
436impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for GenerateEmbedUrlForAnonymousUserError {
437    fn create_unhandled_error(
438        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
439        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
440    ) -> Self {
441        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
442            source,
443            meta: meta.unwrap_or_default(),
444        })
445    }
446}
447impl ::aws_types::request_id::RequestId for crate::operation::generate_embed_url_for_anonymous_user::GenerateEmbedUrlForAnonymousUserError {
448    fn request_id(&self) -> Option<&str> {
449        self.meta().request_id()
450    }
451}
452
453pub use crate::operation::generate_embed_url_for_anonymous_user::_generate_embed_url_for_anonymous_user_output::GenerateEmbedUrlForAnonymousUserOutput;
454
455pub use crate::operation::generate_embed_url_for_anonymous_user::_generate_embed_url_for_anonymous_user_input::GenerateEmbedUrlForAnonymousUserInput;
456
457mod _generate_embed_url_for_anonymous_user_input;
458
459mod _generate_embed_url_for_anonymous_user_output;
460
461/// Builders
462pub mod builders;