Skip to main content

aws_sdk_secretsmanager/operation/
update_secret.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `UpdateSecret`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct UpdateSecret;
6impl UpdateSecret {
7    /// Creates a new `UpdateSecret`
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::update_secret::UpdateSecretInput,
14    ) -> ::std::result::Result<
15        crate::operation::update_secret::UpdateSecretOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::update_secret::UpdateSecretError,
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::update_secret::UpdateSecretError>()
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::update_secret::UpdateSecretOutput>()
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::update_secret::UpdateSecretInput,
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("Secrets Manager", "UpdateSecret", 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                "Secrets Manager.UpdateSecret",
59                "rpc.service" = "Secrets Manager",
60                "rpc.method" = "UpdateSecret",
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::update_secret::UpdateSecretInput = input.downcast_mut().expect("correct type");
76                if input.client_request_token.is_none() {
77                    input.client_request_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 UpdateSecret {
95    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
96        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("UpdateSecret");
97
98        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
99            UpdateSecretRequestSerializer,
100        ));
101        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
102            UpdateSecretResponseDeserializer,
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
106            crate::config::auth::Params::builder()
107                .operation_name("UpdateSecret")
108                .build()
109                .expect("required fields set"),
110        ));
111
112        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
113            "UpdateSecret",
114            "Secrets Manager",
115        ));
116        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
117        signing_options.double_uri_encode = true;
118        signing_options.content_sha256_header = false;
119        signing_options.normalize_uri_path = true;
120        signing_options.payload_override = None;
121
122        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
123            signing_options,
124            ..::std::default::Default::default()
125        });
126
127        ::std::option::Option::Some(cfg.freeze())
128    }
129
130    fn runtime_components(
131        &self,
132        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
133    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
134        #[allow(unused_mut)]
135        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("UpdateSecret")
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                UpdateSecretEndpointParamsInterceptor,
141            ))
142            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
143                crate::operation::update_secret::UpdateSecretError,
144            >::new())
145            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
146                crate::operation::update_secret::UpdateSecretError,
147            >::new())
148            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
149                crate::operation::update_secret::UpdateSecretError,
150            >::new());
151
152        ::std::borrow::Cow::Owned(rcb)
153    }
154}
155
156#[derive(Debug)]
157struct UpdateSecretResponseDeserializer;
158impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UpdateSecretResponseDeserializer {
159    fn deserialize_nonstreaming(
160        &self,
161        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
162    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
163        let (success, status) = (response.status().is_success(), response.status().as_u16());
164        let headers = response.headers();
165        let body = response.body().bytes().expect("body loaded");
166        #[allow(unused_mut)]
167        let mut force_error = false;
168        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
169        let parse_result = if !success && status != 200 || force_error {
170            crate::protocol_serde::shape_update_secret::de_update_secret_http_error(status, headers, body)
171        } else {
172            crate::protocol_serde::shape_update_secret::de_update_secret_http_response(status, headers, body)
173        };
174        crate::protocol_serde::type_erase_result(parse_result)
175    }
176}
177#[derive(Debug)]
178struct UpdateSecretRequestSerializer;
179impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UpdateSecretRequestSerializer {
180    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
181    fn serialize_input(
182        &self,
183        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
184        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
185    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
186        let input = input
187            .downcast::<crate::operation::update_secret::UpdateSecretInput>()
188            .expect("correct type");
189        let _header_serialization_settings = _cfg
190            .load::<crate::serialization_settings::HeaderSerializationSettings>()
191            .cloned()
192            .unwrap_or_default();
193        let mut request_builder = {
194            #[allow(clippy::uninlined_format_args)]
195            fn uri_base(
196                _input: &crate::operation::update_secret::UpdateSecretInput,
197                output: &mut ::std::string::String,
198            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
199                use ::std::fmt::Write as _;
200                ::std::write!(output, "/").expect("formatting should succeed");
201                ::std::result::Result::Ok(())
202            }
203            #[allow(clippy::unnecessary_wraps)]
204            fn update_http_builder(
205                input: &crate::operation::update_secret::UpdateSecretInput,
206                builder: ::http_1x::request::Builder,
207            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
208                let mut uri = ::std::string::String::new();
209                uri_base(input, &mut uri)?;
210                ::std::result::Result::Ok(builder.method("POST").uri(uri))
211            }
212            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
213            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
214            builder = _header_serialization_settings.set_default_header(
215                builder,
216                ::http_1x::header::HeaderName::from_static("x-amz-target"),
217                "secretsmanager.UpdateSecret",
218            );
219            builder
220        };
221        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_update_secret::ser_update_secret_input(&input)?);
222        if let Some(content_length) = body.content_length() {
223            let content_length = content_length.to_string();
224            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
225        }
226        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
227    }
228}
229#[derive(Debug)]
230struct UpdateSecretEndpointParamsInterceptor;
231
232#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
233impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateSecretEndpointParamsInterceptor {
234    fn name(&self) -> &'static str {
235        "UpdateSecretEndpointParamsInterceptor"
236    }
237
238    fn read_before_execution(
239        &self,
240        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
241            '_,
242            ::aws_smithy_runtime_api::client::interceptors::context::Input,
243            ::aws_smithy_runtime_api::client::interceptors::context::Output,
244            ::aws_smithy_runtime_api::client::interceptors::context::Error,
245        >,
246        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
247    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
248        let _input = context
249            .input()
250            .downcast_ref::<UpdateSecretInput>()
251            .ok_or("failed to downcast to UpdateSecretInput")?;
252
253        let params = crate::config::endpoint::Params::builder()
254            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
255            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
256            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
257            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
258            .build()
259            .map_err(|err| {
260                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
261            })?;
262        cfg.interceptor_state()
263            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
264        ::std::result::Result::Ok(())
265    }
266}
267
268// The get_* functions below are generated from JMESPath expressions in the
269// operationContextParams trait. They target the operation's input shape.
270
271/// Error type for the `UpdateSecretError` operation.
272#[non_exhaustive]
273#[derive(::std::fmt::Debug)]
274pub enum UpdateSecretError {
275    /// <p>Secrets Manager can't decrypt the protected secret text using the provided KMS key.</p>
276    DecryptionFailure(crate::types::error::DecryptionFailure),
277    /// <p>Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the KMS key is available, enabled, and not in an invalid state. For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key state: Effect on your KMS key</a>.</p>
278    EncryptionFailure(crate::types::error::EncryptionFailure),
279    /// <p>An error occurred on the server side.</p>
280    InternalServiceError(crate::types::error::InternalServiceError),
281    /// <p>The parameter name or value is invalid.</p>
282    InvalidParameterException(crate::types::error::InvalidParameterException),
283    /// <p>A parameter value is not valid for the current state of the resource.</p>
284    /// <p>Possible causes:</p>
285    /// <ul>
286    /// <li>
287    /// <p>The secret is scheduled for deletion.</p></li>
288    /// <li>
289    /// <p>You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and you didn't include such an ARN as a parameter in this call.</p></li>
290    /// <li>
291    /// <p>The secret is managed by another service, and you must use that service to update it. For more information, see <a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/service-linked-secrets.html">Secrets managed by other Amazon Web Services services</a>.</p></li>
292    /// </ul>
293    InvalidRequestException(crate::types::error::InvalidRequestException),
294    /// <p>The request failed because it would exceed one of the Secrets Manager quotas.</p>
295    LimitExceededException(crate::types::error::LimitExceededException),
296    /// <p>The resource policy has syntax errors.</p>
297    MalformedPolicyDocumentException(crate::types::error::MalformedPolicyDocumentException),
298    /// <p>The request failed because you did not complete all the prerequisite steps.</p>
299    PreconditionNotMetException(crate::types::error::PreconditionNotMetException),
300    /// <p>A resource with the ID you requested already exists.</p>
301    ResourceExistsException(crate::types::error::ResourceExistsException),
302    /// <p>Secrets Manager can't find the resource that you asked for.</p>
303    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
304    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
305    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
306    variable wildcard pattern and check `.code()`:
307     \
308    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
309     \
310    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-UpdateSecretError) for what information is available for the error.")]
311    Unhandled(crate::error::sealed_unhandled::Unhandled),
312}
313impl UpdateSecretError {
314    /// Creates the `UpdateSecretError::Unhandled` variant from any error type.
315    pub fn unhandled(
316        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
317    ) -> Self {
318        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
319            source: err.into(),
320            meta: ::std::default::Default::default(),
321        })
322    }
323
324    /// Creates the `UpdateSecretError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
325    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
326        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
327            source: err.clone().into(),
328            meta: err,
329        })
330    }
331    ///
332    /// Returns error metadata, which includes the error code, message,
333    /// request ID, and potentially additional information.
334    ///
335    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
336        match self {
337            Self::DecryptionFailure(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
338            Self::EncryptionFailure(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
339            Self::InternalServiceError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
340            Self::InvalidParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
341            Self::InvalidRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
342            Self::LimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
343            Self::MalformedPolicyDocumentException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
344            Self::PreconditionNotMetException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
345            Self::ResourceExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
346            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
347            Self::Unhandled(e) => &e.meta,
348        }
349    }
350    /// Returns `true` if the error kind is `UpdateSecretError::DecryptionFailure`.
351    pub fn is_decryption_failure(&self) -> bool {
352        matches!(self, Self::DecryptionFailure(_))
353    }
354    /// Returns `true` if the error kind is `UpdateSecretError::EncryptionFailure`.
355    pub fn is_encryption_failure(&self) -> bool {
356        matches!(self, Self::EncryptionFailure(_))
357    }
358    /// Returns `true` if the error kind is `UpdateSecretError::InternalServiceError`.
359    pub fn is_internal_service_error(&self) -> bool {
360        matches!(self, Self::InternalServiceError(_))
361    }
362    /// Returns `true` if the error kind is `UpdateSecretError::InvalidParameterException`.
363    pub fn is_invalid_parameter_exception(&self) -> bool {
364        matches!(self, Self::InvalidParameterException(_))
365    }
366    /// Returns `true` if the error kind is `UpdateSecretError::InvalidRequestException`.
367    pub fn is_invalid_request_exception(&self) -> bool {
368        matches!(self, Self::InvalidRequestException(_))
369    }
370    /// Returns `true` if the error kind is `UpdateSecretError::LimitExceededException`.
371    pub fn is_limit_exceeded_exception(&self) -> bool {
372        matches!(self, Self::LimitExceededException(_))
373    }
374    /// Returns `true` if the error kind is `UpdateSecretError::MalformedPolicyDocumentException`.
375    pub fn is_malformed_policy_document_exception(&self) -> bool {
376        matches!(self, Self::MalformedPolicyDocumentException(_))
377    }
378    /// Returns `true` if the error kind is `UpdateSecretError::PreconditionNotMetException`.
379    pub fn is_precondition_not_met_exception(&self) -> bool {
380        matches!(self, Self::PreconditionNotMetException(_))
381    }
382    /// Returns `true` if the error kind is `UpdateSecretError::ResourceExistsException`.
383    pub fn is_resource_exists_exception(&self) -> bool {
384        matches!(self, Self::ResourceExistsException(_))
385    }
386    /// Returns `true` if the error kind is `UpdateSecretError::ResourceNotFoundException`.
387    pub fn is_resource_not_found_exception(&self) -> bool {
388        matches!(self, Self::ResourceNotFoundException(_))
389    }
390}
391impl ::std::error::Error for UpdateSecretError {
392    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
393        match self {
394            Self::DecryptionFailure(_inner) => ::std::option::Option::Some(_inner),
395            Self::EncryptionFailure(_inner) => ::std::option::Option::Some(_inner),
396            Self::InternalServiceError(_inner) => ::std::option::Option::Some(_inner),
397            Self::InvalidParameterException(_inner) => ::std::option::Option::Some(_inner),
398            Self::InvalidRequestException(_inner) => ::std::option::Option::Some(_inner),
399            Self::LimitExceededException(_inner) => ::std::option::Option::Some(_inner),
400            Self::MalformedPolicyDocumentException(_inner) => ::std::option::Option::Some(_inner),
401            Self::PreconditionNotMetException(_inner) => ::std::option::Option::Some(_inner),
402            Self::ResourceExistsException(_inner) => ::std::option::Option::Some(_inner),
403            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
404            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
405        }
406    }
407}
408impl ::std::fmt::Display for UpdateSecretError {
409    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
410        match self {
411            Self::DecryptionFailure(_inner) => _inner.fmt(f),
412            Self::EncryptionFailure(_inner) => _inner.fmt(f),
413            Self::InternalServiceError(_inner) => _inner.fmt(f),
414            Self::InvalidParameterException(_inner) => _inner.fmt(f),
415            Self::InvalidRequestException(_inner) => _inner.fmt(f),
416            Self::LimitExceededException(_inner) => _inner.fmt(f),
417            Self::MalformedPolicyDocumentException(_inner) => _inner.fmt(f),
418            Self::PreconditionNotMetException(_inner) => _inner.fmt(f),
419            Self::ResourceExistsException(_inner) => _inner.fmt(f),
420            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
421            Self::Unhandled(_inner) => {
422                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
423                    write!(f, "unhandled error ({code})")
424                } else {
425                    f.write_str("unhandled error")
426                }
427            }
428        }
429    }
430}
431impl ::aws_smithy_types::retry::ProvideErrorKind for UpdateSecretError {
432    fn code(&self) -> ::std::option::Option<&str> {
433        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
434    }
435    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
436        ::std::option::Option::None
437    }
438}
439impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UpdateSecretError {
440    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
441        match self {
442            Self::DecryptionFailure(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
443            Self::EncryptionFailure(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
444            Self::InternalServiceError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
445            Self::InvalidParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
446            Self::InvalidRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
447            Self::LimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
448            Self::MalformedPolicyDocumentException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
449            Self::PreconditionNotMetException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
450            Self::ResourceExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
451            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
452            Self::Unhandled(_inner) => &_inner.meta,
453        }
454    }
455}
456impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UpdateSecretError {
457    fn create_unhandled_error(
458        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
459        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
460    ) -> Self {
461        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
462            source,
463            meta: meta.unwrap_or_default(),
464        })
465    }
466}
467impl ::aws_types::request_id::RequestId for crate::operation::update_secret::UpdateSecretError {
468    fn request_id(&self) -> Option<&str> {
469        self.meta().request_id()
470    }
471}
472
473pub use crate::operation::update_secret::_update_secret_input::UpdateSecretInput;
474
475pub use crate::operation::update_secret::_update_secret_output::UpdateSecretOutput;
476
477mod _update_secret_input;
478
479mod _update_secret_output;
480
481/// Builders
482pub mod builders;