aws_sdk_datapipeline/operation/
describe_objects.rs

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