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            fn uri_base(
191                _input: &crate::operation::create_secret::CreateSecretInput,
192                output: &mut ::std::string::String,
193            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
194                use ::std::fmt::Write as _;
195                ::std::write!(output, "/").expect("formatting should succeed");
196                ::std::result::Result::Ok(())
197            }
198            #[allow(clippy::unnecessary_wraps)]
199            fn update_http_builder(
200                input: &crate::operation::create_secret::CreateSecretInput,
201                builder: ::http::request::Builder,
202            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
203                let mut uri = ::std::string::String::new();
204                uri_base(input, &mut uri)?;
205                ::std::result::Result::Ok(builder.method("POST").uri(uri))
206            }
207            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
208            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.1");
209            builder = _header_serialization_settings.set_default_header(
210                builder,
211                ::http::header::HeaderName::from_static("x-amz-target"),
212                "secretsmanager.CreateSecret",
213            );
214            builder
215        };
216        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_secret::ser_create_secret_input(&input)?);
217        if let Some(content_length) = body.content_length() {
218            let content_length = content_length.to_string();
219            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
220        }
221        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
222    }
223}
224#[derive(Debug)]
225struct CreateSecretEndpointParamsInterceptor;
226
227impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateSecretEndpointParamsInterceptor {
228    fn name(&self) -> &'static str {
229        "CreateSecretEndpointParamsInterceptor"
230    }
231
232    fn read_before_execution(
233        &self,
234        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
235            '_,
236            ::aws_smithy_runtime_api::client::interceptors::context::Input,
237            ::aws_smithy_runtime_api::client::interceptors::context::Output,
238            ::aws_smithy_runtime_api::client::interceptors::context::Error,
239        >,
240        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
241    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
242        let _input = context
243            .input()
244            .downcast_ref::<CreateSecretInput>()
245            .ok_or("failed to downcast to CreateSecretInput")?;
246
247        let params = crate::config::endpoint::Params::builder()
248            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
249            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
250            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
251            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
252            .build()
253            .map_err(|err| {
254                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
255            })?;
256        cfg.interceptor_state()
257            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
258        ::std::result::Result::Ok(())
259    }
260}
261
262// The get_* functions below are generated from JMESPath expressions in the
263// operationContextParams trait. They target the operation's input shape.
264
265/// Error type for the `CreateSecretError` operation.
266#[non_exhaustive]
267#[derive(::std::fmt::Debug)]
268pub enum CreateSecretError {
269    /// <p>Secrets Manager can't decrypt the protected secret text using the provided KMS key.</p>
270    DecryptionFailure(crate::types::error::DecryptionFailure),
271    /// <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>
272    EncryptionFailure(crate::types::error::EncryptionFailure),
273    /// <p>An error occurred on the server side.</p>
274    InternalServiceError(crate::types::error::InternalServiceError),
275    /// <p>The parameter name or value is invalid.</p>
276    InvalidParameterException(crate::types::error::InvalidParameterException),
277    /// <p>A parameter value is not valid for the current state of the resource.</p>
278    /// <p>Possible causes:</p>
279    /// <ul>
280    /// <li>
281    /// <p>The secret is scheduled for deletion.</p></li>
282    /// <li>
283    /// <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>
284    /// <li>
285    /// <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>
286    /// </ul>
287    InvalidRequestException(crate::types::error::InvalidRequestException),
288    /// <p>The request failed because it would exceed one of the Secrets Manager quotas.</p>
289    LimitExceededException(crate::types::error::LimitExceededException),
290    /// <p>The resource policy has syntax errors.</p>
291    MalformedPolicyDocumentException(crate::types::error::MalformedPolicyDocumentException),
292    /// <p>The request failed because you did not complete all the prerequisite steps.</p>
293    PreconditionNotMetException(crate::types::error::PreconditionNotMetException),
294    /// <p>A resource with the ID you requested already exists.</p>
295    ResourceExistsException(crate::types::error::ResourceExistsException),
296    /// <p>Secrets Manager can't find the resource that you asked for.</p>
297    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
298    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
299    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
300    variable wildcard pattern and check `.code()`:
301     \
302    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
303     \
304    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateSecretError) for what information is available for the error.")]
305    Unhandled(crate::error::sealed_unhandled::Unhandled),
306}
307impl CreateSecretError {
308    /// Creates the `CreateSecretError::Unhandled` variant from any error type.
309    pub fn unhandled(
310        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
311    ) -> Self {
312        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
313            source: err.into(),
314            meta: ::std::default::Default::default(),
315        })
316    }
317
318    /// Creates the `CreateSecretError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
319    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
320        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
321            source: err.clone().into(),
322            meta: err,
323        })
324    }
325    ///
326    /// Returns error metadata, which includes the error code, message,
327    /// request ID, and potentially additional information.
328    ///
329    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
330        match self {
331            Self::DecryptionFailure(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
332            Self::EncryptionFailure(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
333            Self::InternalServiceError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
334            Self::InvalidParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
335            Self::InvalidRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
336            Self::LimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
337            Self::MalformedPolicyDocumentException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
338            Self::PreconditionNotMetException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
339            Self::ResourceExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
340            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
341            Self::Unhandled(e) => &e.meta,
342        }
343    }
344    /// Returns `true` if the error kind is `CreateSecretError::DecryptionFailure`.
345    pub fn is_decryption_failure(&self) -> bool {
346        matches!(self, Self::DecryptionFailure(_))
347    }
348    /// Returns `true` if the error kind is `CreateSecretError::EncryptionFailure`.
349    pub fn is_encryption_failure(&self) -> bool {
350        matches!(self, Self::EncryptionFailure(_))
351    }
352    /// Returns `true` if the error kind is `CreateSecretError::InternalServiceError`.
353    pub fn is_internal_service_error(&self) -> bool {
354        matches!(self, Self::InternalServiceError(_))
355    }
356    /// Returns `true` if the error kind is `CreateSecretError::InvalidParameterException`.
357    pub fn is_invalid_parameter_exception(&self) -> bool {
358        matches!(self, Self::InvalidParameterException(_))
359    }
360    /// Returns `true` if the error kind is `CreateSecretError::InvalidRequestException`.
361    pub fn is_invalid_request_exception(&self) -> bool {
362        matches!(self, Self::InvalidRequestException(_))
363    }
364    /// Returns `true` if the error kind is `CreateSecretError::LimitExceededException`.
365    pub fn is_limit_exceeded_exception(&self) -> bool {
366        matches!(self, Self::LimitExceededException(_))
367    }
368    /// Returns `true` if the error kind is `CreateSecretError::MalformedPolicyDocumentException`.
369    pub fn is_malformed_policy_document_exception(&self) -> bool {
370        matches!(self, Self::MalformedPolicyDocumentException(_))
371    }
372    /// Returns `true` if the error kind is `CreateSecretError::PreconditionNotMetException`.
373    pub fn is_precondition_not_met_exception(&self) -> bool {
374        matches!(self, Self::PreconditionNotMetException(_))
375    }
376    /// Returns `true` if the error kind is `CreateSecretError::ResourceExistsException`.
377    pub fn is_resource_exists_exception(&self) -> bool {
378        matches!(self, Self::ResourceExistsException(_))
379    }
380    /// Returns `true` if the error kind is `CreateSecretError::ResourceNotFoundException`.
381    pub fn is_resource_not_found_exception(&self) -> bool {
382        matches!(self, Self::ResourceNotFoundException(_))
383    }
384}
385impl ::std::error::Error for CreateSecretError {
386    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
387        match self {
388            Self::DecryptionFailure(_inner) => ::std::option::Option::Some(_inner),
389            Self::EncryptionFailure(_inner) => ::std::option::Option::Some(_inner),
390            Self::InternalServiceError(_inner) => ::std::option::Option::Some(_inner),
391            Self::InvalidParameterException(_inner) => ::std::option::Option::Some(_inner),
392            Self::InvalidRequestException(_inner) => ::std::option::Option::Some(_inner),
393            Self::LimitExceededException(_inner) => ::std::option::Option::Some(_inner),
394            Self::MalformedPolicyDocumentException(_inner) => ::std::option::Option::Some(_inner),
395            Self::PreconditionNotMetException(_inner) => ::std::option::Option::Some(_inner),
396            Self::ResourceExistsException(_inner) => ::std::option::Option::Some(_inner),
397            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
398            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
399        }
400    }
401}
402impl ::std::fmt::Display for CreateSecretError {
403    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
404        match self {
405            Self::DecryptionFailure(_inner) => _inner.fmt(f),
406            Self::EncryptionFailure(_inner) => _inner.fmt(f),
407            Self::InternalServiceError(_inner) => _inner.fmt(f),
408            Self::InvalidParameterException(_inner) => _inner.fmt(f),
409            Self::InvalidRequestException(_inner) => _inner.fmt(f),
410            Self::LimitExceededException(_inner) => _inner.fmt(f),
411            Self::MalformedPolicyDocumentException(_inner) => _inner.fmt(f),
412            Self::PreconditionNotMetException(_inner) => _inner.fmt(f),
413            Self::ResourceExistsException(_inner) => _inner.fmt(f),
414            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
415            Self::Unhandled(_inner) => {
416                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
417                    write!(f, "unhandled error ({code})")
418                } else {
419                    f.write_str("unhandled error")
420                }
421            }
422        }
423    }
424}
425impl ::aws_smithy_types::retry::ProvideErrorKind for CreateSecretError {
426    fn code(&self) -> ::std::option::Option<&str> {
427        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
428    }
429    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
430        ::std::option::Option::None
431    }
432}
433impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateSecretError {
434    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
435        match self {
436            Self::DecryptionFailure(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
437            Self::EncryptionFailure(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
438            Self::InternalServiceError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
439            Self::InvalidParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
440            Self::InvalidRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
441            Self::LimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
442            Self::MalformedPolicyDocumentException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
443            Self::PreconditionNotMetException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
444            Self::ResourceExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
445            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
446            Self::Unhandled(_inner) => &_inner.meta,
447        }
448    }
449}
450impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateSecretError {
451    fn create_unhandled_error(
452        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
453        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
454    ) -> Self {
455        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
456            source,
457            meta: meta.unwrap_or_default(),
458        })
459    }
460}
461impl ::aws_types::request_id::RequestId for crate::operation::create_secret::CreateSecretError {
462    fn request_id(&self) -> Option<&str> {
463        self.meta().request_id()
464    }
465}
466
467pub use crate::operation::create_secret::_create_secret_output::CreateSecretOutput;
468
469pub use crate::operation::create_secret::_create_secret_input::CreateSecretInput;
470
471mod _create_secret_input;
472
473mod _create_secret_output;
474
475/// Builders
476pub mod builders;