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            #[allow(clippy::uninlined_format_args)]
185            fn uri_base(
186                _input: &crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlInput,
187                output: &mut ::std::string::String,
188            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
189                use ::std::fmt::Write as _;
190                let input_1 = &_input.aws_account_id;
191                let input_1 = input_1
192                    .as_ref()
193                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("aws_account_id", "cannot be empty or unset"))?;
194                let aws_account_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
195                if aws_account_id.is_empty() {
196                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
197                        "aws_account_id",
198                        "cannot be empty or unset",
199                    ));
200                }
201                let input_2 = &_input.dashboard_id;
202                let input_2 = input_2
203                    .as_ref()
204                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("dashboard_id", "cannot be empty or unset"))?;
205                let dashboard_id = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
206                if dashboard_id.is_empty() {
207                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
208                        "dashboard_id",
209                        "cannot be empty or unset",
210                    ));
211                }
212                ::std::write!(
213                    output,
214                    "/accounts/{AwsAccountId}/dashboards/{DashboardId}/embed-url",
215                    AwsAccountId = aws_account_id,
216                    DashboardId = dashboard_id
217                )
218                .expect("formatting should succeed");
219                ::std::result::Result::Ok(())
220            }
221            fn uri_query(
222                _input: &crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlInput,
223                mut output: &mut ::std::string::String,
224            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
225                let mut query = ::aws_smithy_http::query::Writer::new(output);
226                let inner_3 = &_input.identity_type;
227                let inner_3 = inner_3
228                    .as_ref()
229                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("identity_type", "cannot be empty or unset"))?;
230                query.push_kv("creds-type", &::aws_smithy_http::query::fmt_string(inner_3));
231                if let ::std::option::Option::Some(inner_4) = &_input.session_lifetime_in_minutes {
232                    {
233                        query.push_kv("session-lifetime", ::aws_smithy_types::primitive::Encoder::from(*inner_4).encode());
234                    }
235                }
236                if let ::std::option::Option::Some(inner_5) = &_input.undo_redo_disabled {
237                    {
238                        query.push_kv("undo-redo-disabled", ::aws_smithy_types::primitive::Encoder::from(*inner_5).encode());
239                    }
240                }
241                if let ::std::option::Option::Some(inner_6) = &_input.reset_disabled {
242                    {
243                        query.push_kv("reset-disabled", ::aws_smithy_types::primitive::Encoder::from(*inner_6).encode());
244                    }
245                }
246                if let ::std::option::Option::Some(inner_7) = &_input.state_persistence_enabled {
247                    {
248                        query.push_kv(
249                            "state-persistence-enabled",
250                            ::aws_smithy_types::primitive::Encoder::from(*inner_7).encode(),
251                        );
252                    }
253                }
254                if let ::std::option::Option::Some(inner_8) = &_input.user_arn {
255                    {
256                        query.push_kv("user-arn", &::aws_smithy_http::query::fmt_string(inner_8));
257                    }
258                }
259                if let ::std::option::Option::Some(inner_9) = &_input.namespace {
260                    {
261                        query.push_kv("namespace", &::aws_smithy_http::query::fmt_string(inner_9));
262                    }
263                }
264                if let ::std::option::Option::Some(inner_10) = &_input.additional_dashboard_ids {
265                    {
266                        for inner_11 in inner_10 {
267                            query.push_kv("additional-dashboard-ids", &::aws_smithy_http::query::fmt_string(inner_11));
268                        }
269                    }
270                }
271                ::std::result::Result::Ok(())
272            }
273            #[allow(clippy::unnecessary_wraps)]
274            fn update_http_builder(
275                input: &crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlInput,
276                builder: ::http::request::Builder,
277            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
278                let mut uri = ::std::string::String::new();
279                uri_base(input, &mut uri)?;
280                uri_query(input, &mut uri)?;
281                ::std::result::Result::Ok(builder.method("GET").uri(uri))
282            }
283            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
284            builder
285        };
286        let body = ::aws_smithy_types::body::SdkBody::from("");
287
288        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
289    }
290}
291#[derive(Debug)]
292struct GetDashboardEmbedUrlEndpointParamsInterceptor;
293
294impl ::aws_smithy_runtime_api::client::interceptors::Intercept for GetDashboardEmbedUrlEndpointParamsInterceptor {
295    fn name(&self) -> &'static str {
296        "GetDashboardEmbedUrlEndpointParamsInterceptor"
297    }
298
299    fn read_before_execution(
300        &self,
301        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
302            '_,
303            ::aws_smithy_runtime_api::client::interceptors::context::Input,
304            ::aws_smithy_runtime_api::client::interceptors::context::Output,
305            ::aws_smithy_runtime_api::client::interceptors::context::Error,
306        >,
307        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
308    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
309        let _input = context
310            .input()
311            .downcast_ref::<GetDashboardEmbedUrlInput>()
312            .ok_or("failed to downcast to GetDashboardEmbedUrlInput")?;
313
314        let params = crate::config::endpoint::Params::builder()
315            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
316            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
317            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
318            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
319            .build()
320            .map_err(|err| {
321                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
322            })?;
323        cfg.interceptor_state()
324            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
325        ::std::result::Result::Ok(())
326    }
327}
328
329// The get_* functions below are generated from JMESPath expressions in the
330// operationContextParams trait. They target the operation's input shape.
331
332/// Error type for the `GetDashboardEmbedUrlError` operation.
333#[non_exhaustive]
334#[derive(::std::fmt::Debug)]
335pub enum GetDashboardEmbedUrlError {
336    /// <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>
337    AccessDeniedException(crate::types::error::AccessDeniedException),
338    /// <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 Quick Suite admin.</p>
339    DomainNotWhitelistedException(crate::types::error::DomainNotWhitelistedException),
340    /// <p>The identity type specified isn't supported. Supported identity types include <code>IAM</code> and <code>QUICKSIGHT</code>.</p>
341    IdentityTypeNotSupportedException(crate::types::error::IdentityTypeNotSupportedException),
342    /// <p>An internal failure occurred.</p>
343    InternalFailureException(crate::types::error::InternalFailureException),
344    /// <p>One or more parameters has a value that isn't valid.</p>
345    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
346    /// <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>
347    QuickSightUserNotFoundException(crate::types::error::QuickSightUserNotFoundException),
348    /// <p>The resource specified already exists.</p>
349    ResourceExistsException(crate::types::error::ResourceExistsException),
350    /// <p>One or more resources can't be found.</p>
351    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
352    /// <p>The number of minutes specified for the lifetime of a session isn't valid. The session lifetime must be 15-600 minutes.</p>
353    SessionLifetimeInMinutesInvalidException(crate::types::error::SessionLifetimeInMinutesInvalidException),
354    /// <p>Access is throttled.</p>
355    ThrottlingException(crate::types::error::ThrottlingException),
356    /// <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>
357    /// <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>
358    UnsupportedPricingPlanException(crate::types::error::UnsupportedPricingPlanException),
359    /// <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>
360    UnsupportedUserEditionException(crate::types::error::UnsupportedUserEditionException),
361    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
362    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
363    variable wildcard pattern and check `.code()`:
364     \
365    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
366     \
367    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-GetDashboardEmbedUrlError) for what information is available for the error.")]
368    Unhandled(crate::error::sealed_unhandled::Unhandled),
369}
370impl GetDashboardEmbedUrlError {
371    /// Creates the `GetDashboardEmbedUrlError::Unhandled` variant from any error type.
372    pub fn unhandled(
373        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
374    ) -> Self {
375        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
376            source: err.into(),
377            meta: ::std::default::Default::default(),
378        })
379    }
380
381    /// Creates the `GetDashboardEmbedUrlError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
382    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
383        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
384            source: err.clone().into(),
385            meta: err,
386        })
387    }
388    ///
389    /// Returns error metadata, which includes the error code, message,
390    /// request ID, and potentially additional information.
391    ///
392    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
393        match self {
394            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
395            Self::DomainNotWhitelistedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
396            Self::IdentityTypeNotSupportedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
397            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
398            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
399            Self::QuickSightUserNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
400            Self::ResourceExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
401            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
402            Self::SessionLifetimeInMinutesInvalidException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
403            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
404            Self::UnsupportedPricingPlanException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
405            Self::UnsupportedUserEditionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
406            Self::Unhandled(e) => &e.meta,
407        }
408    }
409    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::AccessDeniedException`.
410    pub fn is_access_denied_exception(&self) -> bool {
411        matches!(self, Self::AccessDeniedException(_))
412    }
413    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::DomainNotWhitelistedException`.
414    pub fn is_domain_not_whitelisted_exception(&self) -> bool {
415        matches!(self, Self::DomainNotWhitelistedException(_))
416    }
417    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::IdentityTypeNotSupportedException`.
418    pub fn is_identity_type_not_supported_exception(&self) -> bool {
419        matches!(self, Self::IdentityTypeNotSupportedException(_))
420    }
421    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::InternalFailureException`.
422    pub fn is_internal_failure_exception(&self) -> bool {
423        matches!(self, Self::InternalFailureException(_))
424    }
425    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::InvalidParameterValueException`.
426    pub fn is_invalid_parameter_value_exception(&self) -> bool {
427        matches!(self, Self::InvalidParameterValueException(_))
428    }
429    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::QuickSightUserNotFoundException`.
430    pub fn is_quick_sight_user_not_found_exception(&self) -> bool {
431        matches!(self, Self::QuickSightUserNotFoundException(_))
432    }
433    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::ResourceExistsException`.
434    pub fn is_resource_exists_exception(&self) -> bool {
435        matches!(self, Self::ResourceExistsException(_))
436    }
437    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::ResourceNotFoundException`.
438    pub fn is_resource_not_found_exception(&self) -> bool {
439        matches!(self, Self::ResourceNotFoundException(_))
440    }
441    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::SessionLifetimeInMinutesInvalidException`.
442    pub fn is_session_lifetime_in_minutes_invalid_exception(&self) -> bool {
443        matches!(self, Self::SessionLifetimeInMinutesInvalidException(_))
444    }
445    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::ThrottlingException`.
446    pub fn is_throttling_exception(&self) -> bool {
447        matches!(self, Self::ThrottlingException(_))
448    }
449    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::UnsupportedPricingPlanException`.
450    pub fn is_unsupported_pricing_plan_exception(&self) -> bool {
451        matches!(self, Self::UnsupportedPricingPlanException(_))
452    }
453    /// Returns `true` if the error kind is `GetDashboardEmbedUrlError::UnsupportedUserEditionException`.
454    pub fn is_unsupported_user_edition_exception(&self) -> bool {
455        matches!(self, Self::UnsupportedUserEditionException(_))
456    }
457}
458impl ::std::error::Error for GetDashboardEmbedUrlError {
459    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
460        match self {
461            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
462            Self::DomainNotWhitelistedException(_inner) => ::std::option::Option::Some(_inner),
463            Self::IdentityTypeNotSupportedException(_inner) => ::std::option::Option::Some(_inner),
464            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
465            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
466            Self::QuickSightUserNotFoundException(_inner) => ::std::option::Option::Some(_inner),
467            Self::ResourceExistsException(_inner) => ::std::option::Option::Some(_inner),
468            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
469            Self::SessionLifetimeInMinutesInvalidException(_inner) => ::std::option::Option::Some(_inner),
470            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
471            Self::UnsupportedPricingPlanException(_inner) => ::std::option::Option::Some(_inner),
472            Self::UnsupportedUserEditionException(_inner) => ::std::option::Option::Some(_inner),
473            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
474        }
475    }
476}
477impl ::std::fmt::Display for GetDashboardEmbedUrlError {
478    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
479        match self {
480            Self::AccessDeniedException(_inner) => _inner.fmt(f),
481            Self::DomainNotWhitelistedException(_inner) => _inner.fmt(f),
482            Self::IdentityTypeNotSupportedException(_inner) => _inner.fmt(f),
483            Self::InternalFailureException(_inner) => _inner.fmt(f),
484            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
485            Self::QuickSightUserNotFoundException(_inner) => _inner.fmt(f),
486            Self::ResourceExistsException(_inner) => _inner.fmt(f),
487            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
488            Self::SessionLifetimeInMinutesInvalidException(_inner) => _inner.fmt(f),
489            Self::ThrottlingException(_inner) => _inner.fmt(f),
490            Self::UnsupportedPricingPlanException(_inner) => _inner.fmt(f),
491            Self::UnsupportedUserEditionException(_inner) => _inner.fmt(f),
492            Self::Unhandled(_inner) => {
493                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
494                    write!(f, "unhandled error ({code})")
495                } else {
496                    f.write_str("unhandled error")
497                }
498            }
499        }
500    }
501}
502impl ::aws_smithy_types::retry::ProvideErrorKind for GetDashboardEmbedUrlError {
503    fn code(&self) -> ::std::option::Option<&str> {
504        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
505    }
506    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
507        ::std::option::Option::None
508    }
509}
510impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for GetDashboardEmbedUrlError {
511    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
512        match self {
513            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
514            Self::DomainNotWhitelistedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
515            Self::IdentityTypeNotSupportedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
516            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
517            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
518            Self::QuickSightUserNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
519            Self::ResourceExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
520            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
521            Self::SessionLifetimeInMinutesInvalidException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
522            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
523            Self::UnsupportedPricingPlanException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
524            Self::UnsupportedUserEditionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
525            Self::Unhandled(_inner) => &_inner.meta,
526        }
527    }
528}
529impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for GetDashboardEmbedUrlError {
530    fn create_unhandled_error(
531        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
532        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
533    ) -> Self {
534        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
535            source,
536            meta: meta.unwrap_or_default(),
537        })
538    }
539}
540impl ::aws_types::request_id::RequestId for crate::operation::get_dashboard_embed_url::GetDashboardEmbedUrlError {
541    fn request_id(&self) -> Option<&str> {
542        self.meta().request_id()
543    }
544}
545
546pub use crate::operation::get_dashboard_embed_url::_get_dashboard_embed_url_output::GetDashboardEmbedUrlOutput;
547
548pub use crate::operation::get_dashboard_embed_url::_get_dashboard_embed_url_input::GetDashboardEmbedUrlInput;
549
550mod _get_dashboard_embed_url_input;
551
552mod _get_dashboard_embed_url_output;
553
554/// Builders
555pub mod builders;