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