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.with_operation_plugin(crate::client_idempotency_token::IdempotencyTokenRuntimePlugin::new(
74            |token_provider, input| {
75                let input: &mut crate::operation::create_secret::CreateSecretInput = 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 CreateSecret {
95    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
96        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateSecret");
97
98        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
99            CreateSecretRequestSerializer,
100        ));
101        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
102            CreateSecretResponseDeserializer,
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
106            crate::config::auth::Params::builder()
107                .operation_name("CreateSecret")
108                .build()
109                .expect("required fields set"),
110        ));
111
112        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
113            "CreateSecret",
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("CreateSecret")
136            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
137            .with_interceptor(CreateSecretEndpointParamsInterceptor)
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
139                crate::operation::create_secret::CreateSecretError,
140            >::new())
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
142                crate::operation::create_secret::CreateSecretError,
143            >::new())
144            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
145                crate::operation::create_secret::CreateSecretError,
146            >::new());
147
148        ::std::borrow::Cow::Owned(rcb)
149    }
150}
151
152#[derive(Debug)]
153struct CreateSecretResponseDeserializer;
154impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateSecretResponseDeserializer {
155    fn deserialize_nonstreaming(
156        &self,
157        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
158    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
159        let (success, status) = (response.status().is_success(), response.status().as_u16());
160        let headers = response.headers();
161        let body = response.body().bytes().expect("body loaded");
162        #[allow(unused_mut)]
163        let mut force_error = false;
164        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
165        let parse_result = if !success && status != 200 || force_error {
166            crate::protocol_serde::shape_create_secret::de_create_secret_http_error(status, headers, body)
167        } else {
168            crate::protocol_serde::shape_create_secret::de_create_secret_http_response(status, headers, body)
169        };
170        crate::protocol_serde::type_erase_result(parse_result)
171    }
172}
173#[derive(Debug)]
174struct CreateSecretRequestSerializer;
175impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateSecretRequestSerializer {
176    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
177    fn serialize_input(
178        &self,
179        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
180        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
181    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
182        let input = input
183            .downcast::<crate::operation::create_secret::CreateSecretInput>()
184            .expect("correct type");
185        let _header_serialization_settings = _cfg
186            .load::<crate::serialization_settings::HeaderSerializationSettings>()
187            .cloned()
188            .unwrap_or_default();
189        let mut request_builder = {
190            #[allow(clippy::uninlined_format_args)]
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;