aws_sdk_secretsmanager/operation/
create_secret.rs

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