Skip to main content

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_api::client::interceptors::SharedInterceptor::permanent(
137                CreateSecretTelemetryInputCaptureInterceptor,
138            ))
139            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
140                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
141            ))
142            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
143                CreateSecretEndpointParamsInterceptor,
144            ))
145            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
146                crate::operation::create_secret::CreateSecretError,
147            >::new())
148            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
149                crate::operation::create_secret::CreateSecretError,
150            >::new())
151            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
152                crate::operation::create_secret::CreateSecretError,
153            >::new());
154
155        ::std::borrow::Cow::Owned(rcb)
156    }
157}
158
159#[derive(Debug)]
160struct CreateSecretTelemetryInputCaptureInterceptor;
161
162#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
163impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateSecretTelemetryInputCaptureInterceptor {
164    fn name(&self) -> &'static str {
165        "CreateSecretTelemetryInputCaptureInterceptor"
166    }
167
168    fn read_before_execution(
169        &self,
170        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
171            '_,
172            ::aws_smithy_runtime_api::client::interceptors::context::Input,
173            ::aws_smithy_runtime_api::client::interceptors::context::Output,
174            ::aws_smithy_runtime_api::client::interceptors::context::Error,
175        >,
176        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
177    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
178        // Nothing to do unless the customer opted in by naming members to record.
179        let ::std::option::Option::Some(requested) = cfg
180            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
181            .filter(|r| !r.is_empty())
182        else {
183            return ::std::result::Result::Ok(());
184        };
185
186        let ::std::option::Option::Some(input) = context.input().downcast_ref::<CreateSecretInput>() else {
187            // A mismatched input is not this interceptor's concern; skip quietly.
188            return ::std::result::Result::Ok(());
189        };
190
191        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
192        if requested.should_capture("Name") {
193            if let ::std::option::Option::Some(value) = input.name.as_deref() {
194                captured.insert("Name", value);
195            }
196        }
197        if requested.should_capture("ClientRequestToken") {
198            if let ::std::option::Option::Some(value) = input.client_request_token.as_deref() {
199                captured.insert("ClientRequestToken", value);
200            }
201        }
202        if requested.should_capture("Description") {
203            if let ::std::option::Option::Some(value) = input.description.as_deref() {
204                captured.insert("Description", value);
205            }
206        }
207        if requested.should_capture("KmsKeyId") {
208            if let ::std::option::Option::Some(value) = input.kms_key_id.as_deref() {
209                captured.insert("KmsKeyId", value);
210            }
211        }
212        if requested.should_capture("Type") {
213            if let ::std::option::Option::Some(value) = input.r#type.as_deref() {
214                captured.insert("Type", value);
215            }
216        }
217
218        cfg.interceptor_state().store_put(captured);
219        ::std::result::Result::Ok(())
220    }
221}
222#[derive(Debug)]
223struct CreateSecretResponseDeserializer;
224impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateSecretResponseDeserializer {
225    fn deserialize_nonstreaming_with_config(
226        &self,
227        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
228        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
229    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
230        let (success, status) = (response.status().is_success(), response.status().as_u16());
231        let headers = response.headers();
232        let body = response.body().bytes().expect("body loaded");
233        #[allow(unused_mut)]
234        let mut force_error = false;
235        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
236        let parse_result = if !success && status != 200 || force_error {
237            crate::protocol_serde::shape_create_secret::de_create_secret_http_error(status, headers, body)
238        } else {
239            crate::protocol_serde::shape_create_secret::de_create_secret_http_response(status, headers, body)
240        };
241        crate::protocol_serde::type_erase_result(parse_result)
242    }
243}
244#[derive(Debug)]
245struct CreateSecretRequestSerializer;
246impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateSecretRequestSerializer {
247    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
248    fn serialize_input(
249        &self,
250        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
251        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
252    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
253        let input = input
254            .downcast::<crate::operation::create_secret::CreateSecretInput>()
255            .expect("correct type");
256        let _header_serialization_settings = _cfg
257            .load::<crate::serialization_settings::HeaderSerializationSettings>()
258            .cloned()
259            .unwrap_or_default();
260        let mut request_builder = {
261            #[allow(clippy::uninlined_format_args)]
262            fn uri_base(
263                _input: &crate::operation::create_secret::CreateSecretInput,
264                output: &mut ::std::string::String,
265            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
266                use ::std::fmt::Write as _;
267                ::std::write!(output, "/").expect("formatting should succeed");
268                ::std::result::Result::Ok(())
269            }
270            #[allow(clippy::unnecessary_wraps)]
271            fn update_http_builder(
272                input: &crate::operation::create_secret::CreateSecretInput,
273                builder: ::http_1x::request::Builder,
274            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
275                let mut uri = ::std::string::String::new();
276                uri_base(input, &mut uri)?;
277                ::std::result::Result::Ok(builder.method("POST").uri(uri))
278            }
279            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
280            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
281            builder = _header_serialization_settings.set_default_header(
282                builder,
283                ::http_1x::header::HeaderName::from_static("x-amz-target"),
284                "secretsmanager.CreateSecret",
285            );
286            builder
287        };
288        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_secret::ser_create_secret_input(&input)?);
289        if let Some(content_length) = body.content_length() {
290            let content_length = content_length.to_string();
291            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
292        }
293        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
294    }
295}
296#[derive(Debug)]
297struct CreateSecretEndpointParamsInterceptor;
298
299#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
300impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateSecretEndpointParamsInterceptor {
301    fn name(&self) -> &'static str {
302        "CreateSecretEndpointParamsInterceptor"
303    }
304
305    fn read_before_execution(
306        &self,
307        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
308            '_,
309            ::aws_smithy_runtime_api::client::interceptors::context::Input,
310            ::aws_smithy_runtime_api::client::interceptors::context::Output,
311            ::aws_smithy_runtime_api::client::interceptors::context::Error,
312        >,
313        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
314    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
315        let _input = context
316            .input()
317            .downcast_ref::<CreateSecretInput>()
318            .ok_or("failed to downcast to CreateSecretInput")?;
319
320        let params = crate::config::endpoint::Params::builder()
321            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
322            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
323            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
324            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
325            .build()
326            .map_err(|err| {
327                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
328            })?;
329        cfg.interceptor_state()
330            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
331        ::std::result::Result::Ok(())
332    }
333}
334
335// The get_* functions below are generated from JMESPath expressions in the
336// operationContextParams trait. They target the operation's input shape.
337
338/// Error type for the `CreateSecretError` operation.
339#[non_exhaustive]
340#[derive(::std::fmt::Debug)]
341pub enum CreateSecretError {
342    /// <p>Secrets Manager can't decrypt the protected secret text using the provided KMS key.</p>
343    DecryptionFailure(crate::types::error::DecryptionFailure),
344    /// <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>
345    EncryptionFailure(crate::types::error::EncryptionFailure),
346    /// <p>An error occurred on the server side.</p>
347    InternalServiceError(crate::types::error::InternalServiceError),
348    /// <p>The parameter name or value is invalid.</p>
349    InvalidParameterException(crate::types::error::InvalidParameterException),
350    /// <p>A parameter value is not valid for the current state of the resource.</p>
351    /// <p>Possible causes:</p>
352    /// <ul>
353    /// <li>
354    /// <p>The secret is scheduled for deletion.</p></li>
355    /// <li>
356    /// <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>
357    /// <li>
358    /// <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>
359    /// </ul>
360    InvalidRequestException(crate::types::error::InvalidRequestException),
361    /// <p>The request failed because it would exceed one of the Secrets Manager quotas.</p>
362    LimitExceededException(crate::types::error::LimitExceededException),
363    /// <p>The resource policy has syntax errors.</p>
364    MalformedPolicyDocumentException(crate::types::error::MalformedPolicyDocumentException),
365    /// <p>The request failed because you did not complete all the prerequisite steps.</p>
366    PreconditionNotMetException(crate::types::error::PreconditionNotMetException),
367    /// <p>A resource with the ID you requested already exists.</p>
368    ResourceExistsException(crate::types::error::ResourceExistsException),
369    /// <p>Secrets Manager can't find the resource that you asked for.</p>
370    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
371    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
372    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
373    variable wildcard pattern and check `.code()`:
374     \
375    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
376     \
377    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateSecretError) for what information is available for the error.")]
378    Unhandled(crate::error::sealed_unhandled::Unhandled),
379}
380impl CreateSecretError {
381    /// Creates the `CreateSecretError::Unhandled` variant from any error type.
382    pub fn unhandled(
383        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
384    ) -> Self {
385        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
386            source: err.into(),
387            meta: ::std::default::Default::default(),
388        })
389    }
390
391    /// Creates the `CreateSecretError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
392    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
393        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
394            source: err.clone().into(),
395            meta: err,
396        })
397    }
398    ///
399    /// Returns error metadata, which includes the error code, message,
400    /// request ID, and potentially additional information.
401    ///
402    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
403        match self {
404            Self::DecryptionFailure(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
405            Self::EncryptionFailure(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
406            Self::InternalServiceError(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
407            Self::InvalidParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
408            Self::InvalidRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
409            Self::LimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
410            Self::MalformedPolicyDocumentException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
411            Self::PreconditionNotMetException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
412            Self::ResourceExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
413            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
414            Self::Unhandled(e) => &e.meta,
415        }
416    }
417    /// Returns `true` if the error kind is `CreateSecretError::DecryptionFailure`.
418    pub fn is_decryption_failure(&self) -> bool {
419        matches!(self, Self::DecryptionFailure(_))
420    }
421    /// Returns `true` if the error kind is `CreateSecretError::EncryptionFailure`.
422    pub fn is_encryption_failure(&self) -> bool {
423        matches!(self, Self::EncryptionFailure(_))
424    }
425    /// Returns `true` if the error kind is `CreateSecretError::InternalServiceError`.
426    pub fn is_internal_service_error(&self) -> bool {
427        matches!(self, Self::InternalServiceError(_))
428    }
429    /// Returns `true` if the error kind is `CreateSecretError::InvalidParameterException`.
430    pub fn is_invalid_parameter_exception(&self) -> bool {
431        matches!(self, Self::InvalidParameterException(_))
432    }
433    /// Returns `true` if the error kind is `CreateSecretError::InvalidRequestException`.
434    pub fn is_invalid_request_exception(&self) -> bool {
435        matches!(self, Self::InvalidRequestException(_))
436    }
437    /// Returns `true` if the error kind is `CreateSecretError::LimitExceededException`.
438    pub fn is_limit_exceeded_exception(&self) -> bool {
439        matches!(self, Self::LimitExceededException(_))
440    }
441    /// Returns `true` if the error kind is `CreateSecretError::MalformedPolicyDocumentException`.
442    pub fn is_malformed_policy_document_exception(&self) -> bool {
443        matches!(self, Self::MalformedPolicyDocumentException(_))
444    }
445    /// Returns `true` if the error kind is `CreateSecretError::PreconditionNotMetException`.
446    pub fn is_precondition_not_met_exception(&self) -> bool {
447        matches!(self, Self::PreconditionNotMetException(_))
448    }
449    /// Returns `true` if the error kind is `CreateSecretError::ResourceExistsException`.
450    pub fn is_resource_exists_exception(&self) -> bool {
451        matches!(self, Self::ResourceExistsException(_))
452    }
453    /// Returns `true` if the error kind is `CreateSecretError::ResourceNotFoundException`.
454    pub fn is_resource_not_found_exception(&self) -> bool {
455        matches!(self, Self::ResourceNotFoundException(_))
456    }
457}
458impl ::std::error::Error for CreateSecretError {
459    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
460        match self {
461            Self::DecryptionFailure(_inner) => ::std::option::Option::Some(_inner),
462            Self::EncryptionFailure(_inner) => ::std::option::Option::Some(_inner),
463            Self::InternalServiceError(_inner) => ::std::option::Option::Some(_inner),
464            Self::InvalidParameterException(_inner) => ::std::option::Option::Some(_inner),
465            Self::InvalidRequestException(_inner) => ::std::option::Option::Some(_inner),
466            Self::LimitExceededException(_inner) => ::std::option::Option::Some(_inner),
467            Self::MalformedPolicyDocumentException(_inner) => ::std::option::Option::Some(_inner),
468            Self::PreconditionNotMetException(_inner) => ::std::option::Option::Some(_inner),
469            Self::ResourceExistsException(_inner) => ::std::option::Option::Some(_inner),
470            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
471            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
472        }
473    }
474}
475impl ::std::fmt::Display for CreateSecretError {
476    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
477        match self {
478            Self::DecryptionFailure(_inner) => _inner.fmt(f),
479            Self::EncryptionFailure(_inner) => _inner.fmt(f),
480            Self::InternalServiceError(_inner) => _inner.fmt(f),
481            Self::InvalidParameterException(_inner) => _inner.fmt(f),
482            Self::InvalidRequestException(_inner) => _inner.fmt(f),
483            Self::LimitExceededException(_inner) => _inner.fmt(f),
484            Self::MalformedPolicyDocumentException(_inner) => _inner.fmt(f),
485            Self::PreconditionNotMetException(_inner) => _inner.fmt(f),
486            Self::ResourceExistsException(_inner) => _inner.fmt(f),
487            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
488            Self::Unhandled(_inner) => {
489                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
490                    write!(f, "unhandled error ({code})")
491                } else {
492                    f.write_str("unhandled error")
493                }
494            }
495        }
496    }
497}
498impl ::aws_smithy_types::retry::ProvideErrorKind for CreateSecretError {
499    fn code(&self) -> ::std::option::Option<&str> {
500        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
501    }
502    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
503        ::std::option::Option::None
504    }
505}
506impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateSecretError {
507    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
508        match self {
509            Self::DecryptionFailure(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
510            Self::EncryptionFailure(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
511            Self::InternalServiceError(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
512            Self::InvalidParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
513            Self::InvalidRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
514            Self::LimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
515            Self::MalformedPolicyDocumentException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
516            Self::PreconditionNotMetException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
517            Self::ResourceExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
518            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
519            Self::Unhandled(_inner) => &_inner.meta,
520        }
521    }
522}
523impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateSecretError {
524    fn create_unhandled_error(
525        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
526        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
527    ) -> Self {
528        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
529            source,
530            meta: meta.unwrap_or_default(),
531        })
532    }
533}
534impl ::aws_types::request_id::RequestId for crate::operation::create_secret::CreateSecretError {
535    fn request_id(&self) -> Option<&str> {
536        self.meta().request_id()
537    }
538}
539
540pub use crate::operation::create_secret::_create_secret_input::CreateSecretInput;
541
542pub use crate::operation::create_secret::_create_secret_output::CreateSecretOutput;
543
544mod _create_secret_input;
545
546mod _create_secret_output;
547
548/// Builders
549pub mod builders;