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