Skip to main content

aws_sdk_s3/operation/
rename_object.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `RenameObject`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct RenameObject;
6impl RenameObject {
7    /// Creates a new `RenameObject`
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::rename_object::RenameObjectInput,
14    ) -> ::std::result::Result<
15        crate::operation::rename_object::RenameObjectOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::rename_object::RenameObjectError,
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::rename_object::RenameObjectError>()
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::rename_object::RenameObjectOutput>()
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::rename_object::RenameObjectInput,
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("S3", "RenameObject", 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                "S3.RenameObject",
59                "rpc.service" = "S3",
60                "rpc.method" = "RenameObject",
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_operation_plugin(crate::client_idempotency_token::IdempotencyTokenRuntimePlugin::new(
74            |token_provider, input| {
75                let input: &mut crate::operation::rename_object::RenameObjectInput = input.downcast_mut().expect("correct type");
76                if input.client_token.is_none() {
77                    input.client_token = ::std::option::Option::Some(token_provider.make_idempotency_token());
78                }
79            },
80        ));
81        if let ::std::option::Option::Some(config_override) = config_override {
82            for plugin in config_override.runtime_plugins.iter().cloned() {
83                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
84            }
85            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
86                config_override,
87                client_config.config.clone(),
88                &client_config.runtime_components,
89            ));
90        }
91        runtime_plugins
92    }
93}
94impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for RenameObject {
95    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
96        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("RenameObject");
97
98        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
99            RenameObjectRequestSerializer,
100        ));
101        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
102            RenameObjectResponseDeserializer,
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
106            crate::config::auth::Params::builder()
107                .operation_name("RenameObject")
108                .build()
109                .expect("required fields set"),
110        ));
111
112        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("RenameObject", "S3"));
113        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
114        signing_options.double_uri_encode = false;
115        signing_options.content_sha256_header = true;
116        signing_options.normalize_uri_path = false;
117        signing_options.payload_override = None;
118
119        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
120            signing_options,
121            ..::std::default::Default::default()
122        });
123
124        ::std::option::Option::Some(cfg.freeze())
125    }
126
127    fn runtime_components(
128        &self,
129        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
130    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
131        #[allow(unused_mut)]
132        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("RenameObject")
133            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
134                RenameObjectTelemetryInputCaptureInterceptor,
135            ))
136            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
137                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
138            ))
139            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
140                RenameObjectEndpointParamsInterceptor,
141            ))
142            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
143                crate::operation::rename_object::RenameObjectError,
144            >::new())
145            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
146                crate::operation::rename_object::RenameObjectError,
147            >::new())
148            .with_retry_classifier(
149                ::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<crate::operation::rename_object::RenameObjectError>::builder()
150                    .transient_errors({
151                        let mut transient_errors: Vec<&'static str> = ::aws_runtime::retries::classifiers::TRANSIENT_ERRORS.into();
152                        transient_errors.push("InternalError");
153                        ::std::borrow::Cow::Owned(transient_errors)
154                    })
155                    .build(),
156            )
157            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
158                crate::operation::rename_object::RenameObjectError,
159            >::new());
160
161        ::std::borrow::Cow::Owned(rcb)
162    }
163}
164
165#[derive(Debug)]
166struct RenameObjectTelemetryInputCaptureInterceptor;
167
168#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
169impl ::aws_smithy_runtime_api::client::interceptors::Intercept for RenameObjectTelemetryInputCaptureInterceptor {
170    fn name(&self) -> &'static str {
171        "RenameObjectTelemetryInputCaptureInterceptor"
172    }
173
174    fn read_before_execution(
175        &self,
176        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
177            '_,
178            ::aws_smithy_runtime_api::client::interceptors::context::Input,
179            ::aws_smithy_runtime_api::client::interceptors::context::Output,
180            ::aws_smithy_runtime_api::client::interceptors::context::Error,
181        >,
182        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
183    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
184        // Nothing to do unless the customer opted in by naming members to record.
185        let ::std::option::Option::Some(requested) = cfg
186            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
187            .filter(|r| !r.is_empty())
188        else {
189            return ::std::result::Result::Ok(());
190        };
191
192        let ::std::option::Option::Some(input) = context.input().downcast_ref::<RenameObjectInput>() else {
193            // A mismatched input is not this interceptor's concern; skip quietly.
194            return ::std::result::Result::Ok(());
195        };
196
197        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
198        if requested.should_capture("Bucket") {
199            if let ::std::option::Option::Some(value) = input.bucket.as_deref() {
200                captured.insert("Bucket", value);
201            }
202        }
203        if requested.should_capture("Key") {
204            if let ::std::option::Option::Some(value) = input.key.as_deref() {
205                captured.insert("Key", value);
206            }
207        }
208        if requested.should_capture("RenameSource") {
209            if let ::std::option::Option::Some(value) = input.rename_source.as_deref() {
210                captured.insert("RenameSource", value);
211            }
212        }
213        if requested.should_capture("DestinationIfMatch") {
214            if let ::std::option::Option::Some(value) = input.destination_if_match.as_deref() {
215                captured.insert("DestinationIfMatch", value);
216            }
217        }
218        if requested.should_capture("DestinationIfNoneMatch") {
219            if let ::std::option::Option::Some(value) = input.destination_if_none_match.as_deref() {
220                captured.insert("DestinationIfNoneMatch", value);
221            }
222        }
223        if requested.should_capture("SourceIfMatch") {
224            if let ::std::option::Option::Some(value) = input.source_if_match.as_deref() {
225                captured.insert("SourceIfMatch", value);
226            }
227        }
228        if requested.should_capture("SourceIfNoneMatch") {
229            if let ::std::option::Option::Some(value) = input.source_if_none_match.as_deref() {
230                captured.insert("SourceIfNoneMatch", value);
231            }
232        }
233        if requested.should_capture("ClientToken") {
234            if let ::std::option::Option::Some(value) = input.client_token.as_deref() {
235                captured.insert("ClientToken", value);
236            }
237        }
238
239        cfg.interceptor_state().store_put(captured);
240        ::std::result::Result::Ok(())
241    }
242}
243#[derive(Debug)]
244struct RenameObjectResponseDeserializer;
245impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for RenameObjectResponseDeserializer {
246    fn deserialize_nonstreaming_with_config(
247        &self,
248        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
249        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
250    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
251        let (success, status) = (response.status().is_success(), response.status().as_u16());
252        let headers = response.headers();
253        let body = response.body().bytes().expect("body loaded");
254        #[allow(unused_mut)]
255        let mut force_error = false;
256        ::tracing::debug!(extended_request_id = ?crate::s3_request_id::RequestIdExt::extended_request_id(response));
257        if matches!(crate::rest_xml_unwrapped_errors::body_is_error(body), Ok(true)) {
258            force_error = true;
259        }
260        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
261        let parse_result = if !success && status != 200 || force_error {
262            crate::protocol_serde::shape_rename_object::de_rename_object_http_error(status, headers, body, _cfg)
263        } else {
264            crate::protocol_serde::shape_rename_object::de_rename_object_http_response(status, headers, body, _cfg)
265        };
266        crate::protocol_serde::type_erase_result(parse_result)
267    }
268}
269#[derive(Debug)]
270struct RenameObjectRequestSerializer;
271impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for RenameObjectRequestSerializer {
272    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
273    fn serialize_input(
274        &self,
275        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
276        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
277    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
278        let input = input
279            .downcast::<crate::operation::rename_object::RenameObjectInput>()
280            .expect("correct type");
281        let _header_serialization_settings = _cfg
282            .load::<crate::serialization_settings::HeaderSerializationSettings>()
283            .cloned()
284            .unwrap_or_default();
285        let mut request_builder = {
286            #[allow(clippy::uninlined_format_args)]
287            fn uri_base(
288                _input: &crate::operation::rename_object::RenameObjectInput,
289                output: &mut ::std::string::String,
290            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
291                use ::std::fmt::Write as _;
292                let input_1 = &_input.key;
293                let input_1 = input_1
294                    .as_ref()
295                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("key", "cannot be empty or unset"))?;
296                let key = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Greedy);
297                if key.is_empty() {
298                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
299                        "key",
300                        "cannot be empty or unset",
301                    ));
302                }
303                ::std::write!(output, "/{Key}", Key = key).expect("formatting should succeed");
304                ::std::result::Result::Ok(())
305            }
306            fn uri_query(
307                _input: &crate::operation::rename_object::RenameObjectInput,
308                mut output: &mut ::std::string::String,
309            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
310                let mut query = ::aws_smithy_http::query::Writer::new(output);
311                query.push_v("renameObject");
312                ::std::result::Result::Ok(())
313            }
314            #[allow(clippy::unnecessary_wraps)]
315            fn update_http_builder(
316                input: &crate::operation::rename_object::RenameObjectInput,
317                builder: ::http_1x::request::Builder,
318            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
319                let mut uri = ::std::string::String::new();
320                uri_base(input, &mut uri)?;
321                uri_query(input, &mut uri)?;
322                let builder = crate::protocol_serde::shape_rename_object::ser_rename_object_headers(input, builder)?;
323                ::std::result::Result::Ok(builder.method("PUT").uri(uri))
324            }
325            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
326            builder
327        };
328        let body = ::aws_smithy_types::body::SdkBody::from("");
329
330        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
331    }
332}
333#[derive(Debug)]
334struct RenameObjectEndpointParamsInterceptor;
335
336#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
337impl ::aws_smithy_runtime_api::client::interceptors::Intercept for RenameObjectEndpointParamsInterceptor {
338    fn name(&self) -> &'static str {
339        "RenameObjectEndpointParamsInterceptor"
340    }
341
342    fn read_before_execution(
343        &self,
344        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
345            '_,
346            ::aws_smithy_runtime_api::client::interceptors::context::Input,
347            ::aws_smithy_runtime_api::client::interceptors::context::Output,
348            ::aws_smithy_runtime_api::client::interceptors::context::Error,
349        >,
350        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
351    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
352        let _input = context
353            .input()
354            .downcast_ref::<RenameObjectInput>()
355            .ok_or("failed to downcast to RenameObjectInput")?;
356
357        let params = crate::config::endpoint::Params::builder()
358            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
359            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
360            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
361            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
362            .set_force_path_style(cfg.load::<crate::config::ForcePathStyle>().map(|ty| ty.0))
363            .set_use_arn_region(cfg.load::<crate::config::UseArnRegion>().map(|ty| ty.0))
364            .set_disable_multi_region_access_points(cfg.load::<crate::config::DisableMultiRegionAccessPoints>().map(|ty| ty.0))
365            .set_accelerate(cfg.load::<crate::config::Accelerate>().map(|ty| ty.0))
366            .set_disable_s3_express_session_auth(cfg.load::<crate::config::DisableS3ExpressSessionAuth>().map(|ty| ty.0))
367            .set_bucket(Some(
368                _input
369                    .bucket
370                    .clone()
371                    .filter(|f| !AsRef::<str>::as_ref(f).trim().is_empty())
372                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("bucket", "A required field was not set"))?,
373            ))
374            .set_key(Some(
375                _input
376                    .key
377                    .clone()
378                    .filter(|f| !AsRef::<str>::as_ref(f).trim().is_empty())
379                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("key", "A required field was not set"))?,
380            ))
381            .build()
382            .map_err(|err| {
383                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
384            })?;
385        cfg.interceptor_state()
386            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
387        ::std::result::Result::Ok(())
388    }
389}
390
391// The get_* functions below are generated from JMESPath expressions in the
392// operationContextParams trait. They target the operation's input shape.
393
394/// Error type for the `RenameObjectError` operation.
395#[non_exhaustive]
396#[derive(::std::fmt::Debug)]
397pub enum RenameObjectError {
398    /// <p>Parameters on this idempotent request are inconsistent with parameters used in previous request(s).</p>
399    /// <p>For a list of error codes and more information on Amazon S3 errors, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">Error codes</a>.</p><note>
400    /// <p>Idempotency ensures that an API request completes no more than one time. With an idempotent request, if the original request completes successfully, any subsequent retries complete successfully without performing any further actions.</p>
401    /// </note>
402    IdempotencyParameterMismatch(crate::types::error::IdempotencyParameterMismatch),
403    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
404    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
405    variable wildcard pattern and check `.code()`:
406     \
407    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
408     \
409    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-RenameObjectError) for what information is available for the error.")]
410    Unhandled(crate::error::sealed_unhandled::Unhandled),
411}
412impl RenameObjectError {
413    /// Creates the `RenameObjectError::Unhandled` variant from any error type.
414    pub fn unhandled(
415        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
416    ) -> Self {
417        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
418            source: err.into(),
419            meta: ::std::default::Default::default(),
420        })
421    }
422
423    /// Creates the `RenameObjectError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
424    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
425        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
426            source: err.clone().into(),
427            meta: err,
428        })
429    }
430    ///
431    /// Returns error metadata, which includes the error code, message,
432    /// request ID, and potentially additional information.
433    ///
434    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
435        match self {
436            Self::IdempotencyParameterMismatch(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
437            Self::Unhandled(e) => &e.meta,
438        }
439    }
440    /// Returns `true` if the error kind is `RenameObjectError::IdempotencyParameterMismatch`.
441    pub fn is_idempotency_parameter_mismatch(&self) -> bool {
442        matches!(self, Self::IdempotencyParameterMismatch(_))
443    }
444}
445impl ::std::error::Error for RenameObjectError {
446    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
447        match self {
448            Self::IdempotencyParameterMismatch(_inner) => ::std::option::Option::Some(_inner),
449            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
450        }
451    }
452}
453impl ::std::fmt::Display for RenameObjectError {
454    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
455        match self {
456            Self::IdempotencyParameterMismatch(_inner) => _inner.fmt(f),
457            Self::Unhandled(_inner) => {
458                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
459                    write!(f, "unhandled error ({code})")
460                } else {
461                    f.write_str("unhandled error")
462                }
463            }
464        }
465    }
466}
467impl ::aws_smithy_types::retry::ProvideErrorKind for RenameObjectError {
468    fn code(&self) -> ::std::option::Option<&str> {
469        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
470    }
471    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
472        ::std::option::Option::None
473    }
474}
475impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for RenameObjectError {
476    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
477        match self {
478            Self::IdempotencyParameterMismatch(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
479            Self::Unhandled(_inner) => &_inner.meta,
480        }
481    }
482}
483impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for RenameObjectError {
484    fn create_unhandled_error(
485        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
486        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
487    ) -> Self {
488        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
489            source,
490            meta: meta.unwrap_or_default(),
491        })
492    }
493}
494impl crate::s3_request_id::RequestIdExt for crate::operation::rename_object::RenameObjectError {
495    fn extended_request_id(&self) -> Option<&str> {
496        self.meta().extended_request_id()
497    }
498}
499impl ::aws_types::request_id::RequestId for crate::operation::rename_object::RenameObjectError {
500    fn request_id(&self) -> Option<&str> {
501        self.meta().request_id()
502    }
503}
504
505pub use crate::operation::rename_object::_rename_object_input::RenameObjectInput;
506
507pub use crate::operation::rename_object::_rename_object_output::RenameObjectOutput;
508
509mod _rename_object_input;
510
511mod _rename_object_output;
512
513/// Builders
514pub mod builders;