aws_sdk_swf/operation/
undeprecate_domain.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `UndeprecateDomain`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct UndeprecateDomain;
6impl UndeprecateDomain {
7    /// Creates a new `UndeprecateDomain`
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::undeprecate_domain::UndeprecateDomainInput,
14    ) -> ::std::result::Result<
15        crate::operation::undeprecate_domain::UndeprecateDomainOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::undeprecate_domain::UndeprecateDomainError,
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::undeprecate_domain::UndeprecateDomainError>()
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::undeprecate_domain::UndeprecateDomainOutput>()
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::undeprecate_domain::UndeprecateDomainInput,
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("SWF", "UndeprecateDomain", 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                "SWF.UndeprecateDomain",
59                "rpc.service" = "SWF",
60                "rpc.method" = "UndeprecateDomain",
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 UndeprecateDomain {
90    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
91        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("UndeprecateDomain");
92
93        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
94            UndeprecateDomainRequestSerializer,
95        ));
96        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
97            UndeprecateDomainResponseDeserializer,
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::Metadata::new("UndeprecateDomain", "SWF"));
105        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
106        signing_options.double_uri_encode = true;
107        signing_options.content_sha256_header = false;
108        signing_options.normalize_uri_path = true;
109        signing_options.payload_override = None;
110
111        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
112            signing_options,
113            ..::std::default::Default::default()
114        });
115
116        ::std::option::Option::Some(cfg.freeze())
117    }
118
119    fn runtime_components(
120        &self,
121        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
122    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
123        #[allow(unused_mut)]
124        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("UndeprecateDomain")
125            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
126            .with_interceptor(UndeprecateDomainEndpointParamsInterceptor)
127            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
128                crate::operation::undeprecate_domain::UndeprecateDomainError,
129            >::new())
130            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
131                crate::operation::undeprecate_domain::UndeprecateDomainError,
132            >::new())
133            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
134                crate::operation::undeprecate_domain::UndeprecateDomainError,
135            >::new());
136
137        ::std::borrow::Cow::Owned(rcb)
138    }
139}
140
141#[derive(Debug)]
142struct UndeprecateDomainResponseDeserializer;
143impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UndeprecateDomainResponseDeserializer {
144    fn deserialize_nonstreaming(
145        &self,
146        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
147    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
148        let (success, status) = (response.status().is_success(), response.status().as_u16());
149        let headers = response.headers();
150        let body = response.body().bytes().expect("body loaded");
151        #[allow(unused_mut)]
152        let mut force_error = false;
153        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
154        let parse_result = if !success && status != 200 || force_error {
155            crate::protocol_serde::shape_undeprecate_domain::de_undeprecate_domain_http_error(status, headers, body)
156        } else {
157            crate::protocol_serde::shape_undeprecate_domain::de_undeprecate_domain_http_response(status, headers, body)
158        };
159        crate::protocol_serde::type_erase_result(parse_result)
160    }
161}
162#[derive(Debug)]
163struct UndeprecateDomainRequestSerializer;
164impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UndeprecateDomainRequestSerializer {
165    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
166    fn serialize_input(
167        &self,
168        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
169        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
170    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
171        let input = input
172            .downcast::<crate::operation::undeprecate_domain::UndeprecateDomainInput>()
173            .expect("correct type");
174        let _header_serialization_settings = _cfg
175            .load::<crate::serialization_settings::HeaderSerializationSettings>()
176            .cloned()
177            .unwrap_or_default();
178        let mut request_builder = {
179            fn uri_base(
180                _input: &crate::operation::undeprecate_domain::UndeprecateDomainInput,
181                output: &mut ::std::string::String,
182            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
183                use ::std::fmt::Write as _;
184                ::std::write!(output, "/").expect("formatting should succeed");
185                ::std::result::Result::Ok(())
186            }
187            #[allow(clippy::unnecessary_wraps)]
188            fn update_http_builder(
189                input: &crate::operation::undeprecate_domain::UndeprecateDomainInput,
190                builder: ::http::request::Builder,
191            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
192                let mut uri = ::std::string::String::new();
193                uri_base(input, &mut uri)?;
194                ::std::result::Result::Ok(builder.method("POST").uri(uri))
195            }
196            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
197            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
198            builder = _header_serialization_settings.set_default_header(
199                builder,
200                ::http::header::HeaderName::from_static("x-amz-target"),
201                "SimpleWorkflowService.UndeprecateDomain",
202            );
203            builder
204        };
205        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_undeprecate_domain::ser_undeprecate_domain_input(&input)?);
206        if let Some(content_length) = body.content_length() {
207            let content_length = content_length.to_string();
208            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
209        }
210        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
211    }
212}
213#[derive(Debug)]
214struct UndeprecateDomainEndpointParamsInterceptor;
215
216impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UndeprecateDomainEndpointParamsInterceptor {
217    fn name(&self) -> &'static str {
218        "UndeprecateDomainEndpointParamsInterceptor"
219    }
220
221    fn read_before_execution(
222        &self,
223        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
224            '_,
225            ::aws_smithy_runtime_api::client::interceptors::context::Input,
226            ::aws_smithy_runtime_api::client::interceptors::context::Output,
227            ::aws_smithy_runtime_api::client::interceptors::context::Error,
228        >,
229        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
230    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
231        let _input = context
232            .input()
233            .downcast_ref::<UndeprecateDomainInput>()
234            .ok_or("failed to downcast to UndeprecateDomainInput")?;
235
236        let params = crate::config::endpoint::Params::builder()
237            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
238            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
239            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
240            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
241            .build()
242            .map_err(|err| {
243                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
244            })?;
245        cfg.interceptor_state()
246            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
247        ::std::result::Result::Ok(())
248    }
249}
250
251// The get_* functions below are generated from JMESPath expressions in the
252// operationContextParams trait. They target the operation's input shape.
253
254/// Error type for the `UndeprecateDomainError` operation.
255#[non_exhaustive]
256#[derive(::std::fmt::Debug)]
257pub enum UndeprecateDomainError {
258    /// <p>Returned if the domain already exists. You may get this fault if you are registering a domain that is either already registered or deprecated, or if you undeprecate a domain that is currently registered.</p>
259    DomainAlreadyExistsFault(crate::types::error::DomainAlreadyExistsFault),
260    /// <p>Returned when the caller doesn't have sufficient permissions to invoke the action.</p>
261    OperationNotPermittedFault(crate::types::error::OperationNotPermittedFault),
262    /// <p>Returned when the named resource cannot be found with in the scope of this operation (region or domain). This could happen if the named resource was never created or is no longer available for this operation.</p>
263    UnknownResourceFault(crate::types::error::UnknownResourceFault),
264    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
265    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
266    variable wildcard pattern and check `.code()`:
267     \
268    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
269     \
270    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-UndeprecateDomainError) for what information is available for the error.")]
271    Unhandled(crate::error::sealed_unhandled::Unhandled),
272}
273impl UndeprecateDomainError {
274    /// Creates the `UndeprecateDomainError::Unhandled` variant from any error type.
275    pub fn unhandled(
276        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
277    ) -> Self {
278        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
279            source: err.into(),
280            meta: ::std::default::Default::default(),
281        })
282    }
283
284    /// Creates the `UndeprecateDomainError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
285    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
286        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
287            source: err.clone().into(),
288            meta: err,
289        })
290    }
291    ///
292    /// Returns error metadata, which includes the error code, message,
293    /// request ID, and potentially additional information.
294    ///
295    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
296        match self {
297            Self::DomainAlreadyExistsFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
298            Self::OperationNotPermittedFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
299            Self::UnknownResourceFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
300            Self::Unhandled(e) => &e.meta,
301        }
302    }
303    /// Returns `true` if the error kind is `UndeprecateDomainError::DomainAlreadyExistsFault`.
304    pub fn is_domain_already_exists_fault(&self) -> bool {
305        matches!(self, Self::DomainAlreadyExistsFault(_))
306    }
307    /// Returns `true` if the error kind is `UndeprecateDomainError::OperationNotPermittedFault`.
308    pub fn is_operation_not_permitted_fault(&self) -> bool {
309        matches!(self, Self::OperationNotPermittedFault(_))
310    }
311    /// Returns `true` if the error kind is `UndeprecateDomainError::UnknownResourceFault`.
312    pub fn is_unknown_resource_fault(&self) -> bool {
313        matches!(self, Self::UnknownResourceFault(_))
314    }
315}
316impl ::std::error::Error for UndeprecateDomainError {
317    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
318        match self {
319            Self::DomainAlreadyExistsFault(_inner) => ::std::option::Option::Some(_inner),
320            Self::OperationNotPermittedFault(_inner) => ::std::option::Option::Some(_inner),
321            Self::UnknownResourceFault(_inner) => ::std::option::Option::Some(_inner),
322            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
323        }
324    }
325}
326impl ::std::fmt::Display for UndeprecateDomainError {
327    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
328        match self {
329            Self::DomainAlreadyExistsFault(_inner) => _inner.fmt(f),
330            Self::OperationNotPermittedFault(_inner) => _inner.fmt(f),
331            Self::UnknownResourceFault(_inner) => _inner.fmt(f),
332            Self::Unhandled(_inner) => {
333                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
334                    write!(f, "unhandled error ({code})")
335                } else {
336                    f.write_str("unhandled error")
337                }
338            }
339        }
340    }
341}
342impl ::aws_smithy_types::retry::ProvideErrorKind for UndeprecateDomainError {
343    fn code(&self) -> ::std::option::Option<&str> {
344        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
345    }
346    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
347        ::std::option::Option::None
348    }
349}
350impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UndeprecateDomainError {
351    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
352        match self {
353            Self::DomainAlreadyExistsFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
354            Self::OperationNotPermittedFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
355            Self::UnknownResourceFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
356            Self::Unhandled(_inner) => &_inner.meta,
357        }
358    }
359}
360impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UndeprecateDomainError {
361    fn create_unhandled_error(
362        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
363        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
364    ) -> Self {
365        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
366            source,
367            meta: meta.unwrap_or_default(),
368        })
369    }
370}
371impl ::aws_types::request_id::RequestId for crate::operation::undeprecate_domain::UndeprecateDomainError {
372    fn request_id(&self) -> Option<&str> {
373        self.meta().request_id()
374    }
375}
376
377pub use crate::operation::undeprecate_domain::_undeprecate_domain_output::UndeprecateDomainOutput;
378
379pub use crate::operation::undeprecate_domain::_undeprecate_domain_input::UndeprecateDomainInput;
380
381mod _undeprecate_domain_input;
382
383mod _undeprecate_domain_output;
384
385/// Builders
386pub mod builders;