aws_sdk_quicksight/operation/
get_dashboard_embed_url.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `GetDashboardEmbedUrl`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct GetDashboardEmbedUrl;
6impl GetDashboardEmbedUrl {
7    /// Creates a new `GetDashboardEmbedUrl`
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::get_dashboard_embed_url::GetDashboardEmbedUrlInput,
14    ) -> ::std::result::Result<
15        crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlError,
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::get_dashboard_embed_url::GetDashboardEmbedUrlError>()
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::get_dashboard_embed_url::GetDashboardEmbedUrlOutput>()
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::get_dashboard_embed_url::GetDashboardEmbedUrlInput,
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("QuickSight", "GetDashboardEmbedUrl", input, runtime_plugins, stop_point)
55            // Create a parent span for the entire operation. Includes a random, internal-only,
56            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
57            .instrument(::tracing::debug_span!(
58                "QuickSight.GetDashboardEmbedUrl",
59                "rpc.service" = "QuickSight",
60                "rpc.method" = "GetDashboardEmbedUrl",
61                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
62                "rpc.system" = "aws-api",
63            ))
64            .await
65    }
66
67    pub(crate) fn operation_runtime_plugins(
68        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
69        client_config: &crate::config::Config,
70        config_override: ::std::option::Option<crate::config::Builder>,
71    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
72        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
73
74        if let ::std::option::Option::Some(config_override) = config_override {
75            for plugin in config_override.runtime_plugins.iter().cloned() {
76                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
77            }
78            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
79                config_override,
80                client_config.config.clone(),
81                &client_config.runtime_components,
82            ));
83        }
84        runtime_plugins
85    }
86}
87impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for GetDashboardEmbedUrl {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("GetDashboardEmbedUrl");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            GetDashboardEmbedUrlRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            GetDashboardEmbedUrlResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("GetDashboardEmbedUrl")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::SensitiveOutput);
106        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
107            "GetDashboardEmbedUrl",
108            "QuickSight",
109        ));
110        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
111        signing_options.double_uri_encode = true;
112        signing_options.content_sha256_header = false;
113        signing_options.normalize_uri_path = true;
114        signing_options.payload_override = None;
115
116        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
117            signing_options,
118            ..::std::default::Default::default()
119        });
120
121        ::std::option::Option::Some(cfg.freeze())
122    }
123
124    fn runtime_components(
125        &self,
126        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
127    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
128        #[allow(unused_mut)]
129        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("GetDashboardEmbedUrl")
130            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
131            .with_interceptor(GetDashboardEmbedUrlEndpointParamsInterceptor)
132            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
133                crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlError,
134            >::new())
135            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
136                crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlError,
137            >::new())
138            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
139                crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlError,
140            >::new());
141
142        ::std::borrow::Cow::Owned(rcb)
143    }
144}
145
146#[derive(Debug)]
147struct GetDashboardEmbedUrlResponseDeserializer;
148impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for GetDashboardEmbedUrlResponseDeserializer {
149    fn deserialize_nonstreaming(
150        &self,
151        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
152    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
153        let (success, status) = (response.status().is_success(), response.status().as_u16());
154        let headers = response.headers();
155        let body = response.body().bytes().expect("body loaded");
156        #[allow(unused_mut)]
157        let mut force_error = false;
158        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
159        let parse_result = if !success && status != 200 || force_error {
160            crate::protocol_serde::shape_get_dashboard_embed_url::de_get_dashboard_embed_url_http_error(status, headers, body)
161        } else {
162            crate::protocol_serde::shape_get_dashboard_embed_url::de_get_dashboard_embed_url_http_response(status, headers, body)
163        };
164        crate::protocol_serde::type_erase_result(parse_result)
165    }
166}
167#[derive(Debug)]
168struct GetDashboardEmbedUrlRequestSerializer;
169impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for GetDashboardEmbedUrlRequestSerializer {
170    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
171    fn serialize_input(
172        &self,
173        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
174        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
175    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
176        let input = input
177            .downcast::<crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlInput>()
178            .expect("correct type");
179        let _header_serialization_settings = _cfg
180            .load::<crate::serialization_settings::HeaderSerializationSettings>()
181            .cloned()
182            .unwrap_or_default();
183        let mut request_builder = {
184            fn uri_base(
185                _input: &crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlInput,
186                output: &mut ::std::string::String,
187            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
188                use ::std::fmt::Write as _;
189                let input_1 = &_input.aws_account_id;
190                let input_1 = input_1
191                    .as_ref()
192                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("aws_account_id", "cannot be empty or unset"))?;
193                let aws_account_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
194                if aws_account_id.is_empty() {
195                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
196                        "aws_account_id",
197                        "cannot be empty or unset",
198                    ));
199                }
200                let input_2 = &_input.dashboard_id;
201                let input_2 = input_2
202                    .as_ref()
203                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("dashboard_id", "cannot be empty or unset"))?;
204                let dashboard_id = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
205                if dashboard_id.is_empty() {
206                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
207                        "dashboard_id",
208                        "cannot be empty or unset",
209                    ));
210                }
211                ::std::write!(
212                    output,
213                    "/accounts/{AwsAccountId}/dashboards/{DashboardId}/embed-url",
214                    AwsAccountId = aws_account_id,
215                    DashboardId = dashboard_id
216                )
217                .expect("formatting should succeed");
218                ::std::result::Result::Ok(())
219            }
220            fn uri_query(
221                _input: &crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlInput,
222                mut output: &mut ::std::string::String,
223            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
224                let mut query = ::aws_smithy_http::query::Writer::new(output);
225                let inner_3 = &_input.identity_type;
226                let inner_3 = inner_3
227                    .as_ref()
228                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("identity_type", "cannot be empty or unset"))?;
229                query.push_kv("creds-type", &::aws_smithy_http::query::fmt_string(inner_3));
230                if let ::std::option::Option::Some(inner_4) = &_input.session_lifetime_in_minutes {
231                    {
232                        query.push_kv("session-lifetime", ::aws_smithy_types::primitive::Encoder::from(*inner_4).encode());
233                    }
234                }
235                if let ::std::option::Option::Some(inner_5) = &_input.undo_redo_disabled {
236                    {
237                        query.push_kv("undo-redo-disabled", ::aws_smithy_types::primitive::Encoder::from(*inner_5).encode());
238                    }
239                }
240                if let ::std::option::Option::Some(inner_6) = &_input.reset_disabled {
241                    {
242                        query.push_kv("reset-disabled", ::aws_smithy_types::primitive::Encoder::from(*inner_6).encode());
243                    }
244                }
245                if let ::std::option::Option::Some(inner_7) = &_input.state_persistence_enabled {
246                    {
247                        query.push_kv(
248                            "state-persistence-enabled",
249                            ::aws_smithy_types::primitive::Encoder::from(*inner_7).encode(),
250                        );
251                    }
252                }
253                if let ::std::option::Option::Some(inner_8) = &_input.user_arn {
254                    {
255                        query.push_kv("user-arn", &::aws_smithy_http::query::fmt_string(inner_8));
256                    }
257                }
258                if let ::std::option::Option::Some(inner_9) = &_input.namespace {
259                    {
260                        query.push_kv("namespace", &::aws_smithy_http::query::fmt_string(inner_9));
261                    }
262                }
263                if let ::std::option::Option::Some(inner_10) = &_input.additional_dashboard_ids {
264                    {
265                        for inner_11 in inner_10 {
266                            query.push_kv("additional-dashboard-ids", &::aws_smithy_http::query::fmt_string(inner_11));
267                        }
268                    }
269                }
270                ::std::result::Result::Ok(())
271            }
272            #[allow(clippy::unnecessary_wraps)]
273            fn update_http_builder(
274                input: &crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlInput,
275                builder: ::http::request::Builder,
276            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
277                let mut uri = ::std::string::String::new();
278                uri_base(input, &mut uri)?;
279                uri_query(input, &mut uri)?;
280                ::std::result::Result::Ok(builder.method("GET").uri(uri))
281            }
282            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
283            builder
284        };
285        let body = ::aws_smithy_types::body::SdkBody::from("");
286
287        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
288    }
289}
290#[derive(Debug)]
291struct GetDashboardEmbedUrlEndpointParamsInterceptor;
292
293impl ::aws_smithy_runtime_api::client::interceptors::Intercept for GetDashboardEmbedUrlEndpointParamsInterceptor {
294    fn name(&self) -> &'static str {
295        "GetDashboardEmbedUrlEndpointParamsInterceptor"
296    }
297
298    fn read_before_execution(
299        &self,
300        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
301            '_,
302            ::aws_smithy_runtime_api::client::interceptors::context::Input,
303            ::aws_smithy_runtime_api::client::interceptors::context::Output,
304            ::aws_smithy_runtime_api::client::interceptors::context::Error,
305        >,
306        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
307    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
308        let _input = context
309            .input()
310            .downcast_ref::<GetDashboardEmbedUrlInput>()
311            .ok_or("failed to downcast to GetDashboardEmbedUrlInput")?;
312
313        let params = crate::config::endpoint::Params::builder()
314            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
315            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
316            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
317            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
318            .build()
319            .map_err(|err| {
320                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
321            })?;
322        cfg.interceptor_state()
323            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
324        ::std::result::Result::Ok(())
325    }
326}
327
328// The get_* functions below are generated from JMESPath expressions in the
329// operationContextParams trait. They target the operation's input shape.
330
331/// Error type for the `GetDashboardEmbedUrlError` operation.
332#[non_exhaustive]
333#[derive(::std::fmt::Debug)]
334pub enum GetDashboardEmbedUrlError {
335    /// <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 QuickSight service, that your policies have the correct permissions, and that you are using the correct credentials.</p>
336    AccessDeniedException(crate::types::error::AccessDeniedException),
337    /// <p>The domain specified isn't on the allow list. All domains for embedded dashboards must be added to the approved list by an Amazon QuickSight admin.</p>
338    DomainNotWhitelistedException(crate::types::error::DomainNotWhitelistedException),
339    /// <p>The identity type specified isn't supported. Supported identity types include <code>IAM</code> and <code>QUICKSIGHT</code>.</p>
340    IdentityTypeNotSupportedException(crate::types::error::IdentityTypeNotSupportedException),
341    /// <p>An internal failure occurred.</p>
342    InternalFailureException(crate::types::error::InternalFailureException),
343    /// <p>One or more parameters has a value that isn't valid.</p>
344    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
345    /// <p>The user with the provided name isn't found. This error can happen in any operation that requires finding a user based on a provided user name, such as <code>DeleteUser</code>, <code>DescribeUser</code>, and so on.</p>
346    QuickSightUserNotFoundException(crate::types::error::QuickSightUserNotFoundException),
347    /// <p>The resource specified already exists.</p>
348    ResourceExistsException(crate::types::error::ResourceExistsException),
349    /// <p>One or more resources can't be found.</p>
350    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
351    /// <p>The number of minutes specified for the lifetime of a session isn't valid. The session lifetime must be 15-600 minutes.</p>
352    SessionLifetimeInMinutesInvalidException(crate::types::error::SessionLifetimeInMinutesInvalidException),
353    /// <p>Access is throttled.</p>
354    ThrottlingException(crate::types::error::ThrottlingException),
355    /// <p>This error indicates that you are calling an embedding operation in Amazon QuickSight without the required pricing plan on your Amazon Web Services account. Before you can use embedding for anonymous users, a QuickSight administrator needs to add capacity pricing to QuickSight. You can do this on the <b>Manage QuickSight</b> page.</p>
356    /// <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>
357    UnsupportedPricingPlanException(crate::types::error::UnsupportedPricingPlanException),
358    /// <p>This error indicates that you are calling an operation on an Amazon QuickSight subscription where the edition doesn't include support for that operation. Amazon QuickSight currently has Standard Edition and Enterprise Edition. Not every operation and capability is available in every edition.</p>
359    UnsupportedUserEditionException(crate::types::error::UnsupportedUserEditionException),
360    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
361    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
362    variable wildcard pattern and check `.code()`:
363     \
364    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
365     \
366    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-GetDashboardEmbedUrlError) for what information is available for the error.")]
367    Unhandled(crate::error::sealed_unhandled::Unhandled),
368}
369impl GetDashboardEmbedUrlError {
370    /// Creates the `GetDashboardEmbedUrlError::Unhandled` variant from any error type.
371    pub fn unhandled(
372        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
373    ) -> Self {
374        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
375            source: err.into(),
376            meta: ::std::default::Default::default(),
377        })
378    }
379
380    /// Creates the `GetDashboardEmbedUrlError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
381    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
382        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
383            source: err.clone().into(),
384            meta: err,
385        })
386    }
387    ///
388    /// Returns error metadata, which includes the error code, message,
389    /// request ID, and potentially additional information.
390    ///
391    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
392        match self {
393            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
394            Self::DomainNotWhitelistedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
395            Self::IdentityTypeNotSupportedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
396            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
397            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
398            Self::QuickSightUserNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
399            Self::ResourceExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
400            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
401            Self::SessionLifetimeInMinutesInvalidException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
402            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
403            Self::UnsupportedPricingPlanException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
404            Self::UnsupportedUserEditionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
405            Self::Unhandled(e) => &e.meta,
406        }
407    }
408    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::AccessDeniedException`.
409    pub fn is_access_denied_exception(&self) -> bool {
410        matches!(self, Self::AccessDeniedException(_))
411    }
412    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::DomainNotWhitelistedException`.
413    pub fn is_domain_not_whitelisted_exception(&self) -> bool {
414        matches!(self, Self::DomainNotWhitelistedException(_))
415    }
416    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::IdentityTypeNotSupportedException`.
417    pub fn is_identity_type_not_supported_exception(&self) -> bool {
418        matches!(self, Self::IdentityTypeNotSupportedException(_))
419    }
420    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::InternalFailureException`.
421    pub fn is_internal_failure_exception(&self) -> bool {
422        matches!(self, Self::InternalFailureException(_))
423    }
424    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::InvalidParameterValueException`.
425    pub fn is_invalid_parameter_value_exception(&self) -> bool {
426        matches!(self, Self::InvalidParameterValueException(_))
427    }
428    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::QuickSightUserNotFoundException`.
429    pub fn is_quick_sight_user_not_found_exception(&self) -> bool {
430        matches!(self, Self::QuickSightUserNotFoundException(_))
431    }
432    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::ResourceExistsException`.
433    pub fn is_resource_exists_exception(&self) -> bool {
434        matches!(self, Self::ResourceExistsException(_))
435    }
436    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::ResourceNotFoundException`.
437    pub fn is_resource_not_found_exception(&self) -> bool {
438        matches!(self, Self::ResourceNotFoundException(_))
439    }
440    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::SessionLifetimeInMinutesInvalidException`.
441    pub fn is_session_lifetime_in_minutes_invalid_exception(&self) -> bool {
442        matches!(self, Self::SessionLifetimeInMinutesInvalidException(_))
443    }
444    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::ThrottlingException`.
445    pub fn is_throttling_exception(&self) -> bool {
446        matches!(self, Self::ThrottlingException(_))
447    }
448    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::UnsupportedPricingPlanException`.
449    pub fn is_unsupported_pricing_plan_exception(&self) -> bool {
450        matches!(self, Self::UnsupportedPricingPlanException(_))
451    }
452    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::UnsupportedUserEditionException`.
453    pub fn is_unsupported_user_edition_exception(&self) -> bool {
454        matches!(self, Self::UnsupportedUserEditionException(_))
455    }
456}
457impl ::std::error::Error for GetDashboardEmbedUrlError {
458    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
459        match self {
460            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
461            Self::DomainNotWhitelistedException(_inner) => ::std::option::Option::Some(_inner),
462            Self::IdentityTypeNotSupportedException(_inner) => ::std::option::Option::Some(_inner),
463            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
464            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
465            Self::QuickSightUserNotFoundException(_inner) => ::std::option::Option::Some(_inner),
466            Self::ResourceExistsException(_inner) => ::std::option::Option::Some(_inner),
467            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
468            Self::SessionLifetimeInMinutesInvalidException(_inner) => ::std::option::Option::Some(_inner),
469            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
470            Self::UnsupportedPricingPlanException(_inner) => ::std::option::Option::Some(_inner),
471            Self::UnsupportedUserEditionException(_inner) => ::std::option::Option::Some(_inner),
472            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
473        }
474    }
475}
476impl ::std::fmt::Display for GetDashboardEmbedUrlError {
477    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
478        match self {
479            Self::AccessDeniedException(_inner) => _inner.fmt(f),
480            Self::DomainNotWhitelistedException(_inner) => _inner.fmt(f),
481            Self::IdentityTypeNotSupportedException(_inner) => _inner.fmt(f),
482            Self::InternalFailureException(_inner) => _inner.fmt(f),
483            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
484            Self::QuickSightUserNotFoundException(_inner) => _inner.fmt(f),
485            Self::ResourceExistsException(_inner) => _inner.fmt(f),
486            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
487            Self::SessionLifetimeInMinutesInvalidException(_inner) => _inner.fmt(f),
488            Self::ThrottlingException(_inner) => _inner.fmt(f),
489            Self::UnsupportedPricingPlanException(_inner) => _inner.fmt(f),
490            Self::UnsupportedUserEditionException(_inner) => _inner.fmt(f),
491            Self::Unhandled(_inner) => {
492                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
493                    write!(f, "unhandled error ({code})")
494                } else {
495                    f.write_str("unhandled error")
496                }
497            }
498        }
499    }
500}
501impl ::aws_smithy_types::retry::ProvideErrorKind for GetDashboardEmbedUrlError {
502    fn code(&self) -> ::std::option::Option<&str> {
503        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
504    }
505    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
506        ::std::option::Option::None
507    }
508}
509impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for GetDashboardEmbedUrlError {
510    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
511        match self {
512            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
513            Self::DomainNotWhitelistedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
514            Self::IdentityTypeNotSupportedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
515            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
516            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
517            Self::QuickSightUserNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
518            Self::ResourceExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
519            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
520            Self::SessionLifetimeInMinutesInvalidException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
521            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
522            Self::UnsupportedPricingPlanException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
523            Self::UnsupportedUserEditionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
524            Self::Unhandled(_inner) => &_inner.meta,
525        }
526    }
527}
528impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for GetDashboardEmbedUrlError {
529    fn create_unhandled_error(
530        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
531        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
532    ) -> Self {
533        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
534            source,
535            meta: meta.unwrap_or_default(),
536        })
537    }
538}
539impl ::aws_types::request_id::RequestId for crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlError {
540    fn request_id(&self) -> Option<&str> {
541        self.meta().request_id()
542    }
543}
544
545pub use crate::operation::get_dashboard_embed_url::_get_dashboard_embed_url_output::GetDashboardEmbedUrlOutput;
546
547pub use crate::operation::get_dashboard_embed_url::_get_dashboard_embed_url_input::GetDashboardEmbedUrlInput;
548
549mod _get_dashboard_embed_url_input;
550
551mod _get_dashboard_embed_url_output;
552
553/// Builders
554pub mod builders;