aws_sdk_cloudtrail/operation/
stop_logging.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `StopLogging`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct StopLogging;
6impl StopLogging {
7    /// Creates a new `StopLogging`
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::stop_logging::StopLoggingInput,
14    ) -> ::std::result::Result<
15        crate::operation::stop_logging::StopLoggingOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::stop_logging::StopLoggingError,
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::stop_logging::StopLoggingError>()
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::stop_logging::StopLoggingOutput>()
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::stop_logging::StopLoggingInput,
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("CloudTrail", "StopLogging", 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                "CloudTrail.StopLogging",
59                "rpc.service" = "CloudTrail",
60                "rpc.method" = "StopLogging",
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
74        if let ::std::option::Option::Some(config_override) = config_override {
75            for plugin in config_override.runtime_plugins.iter().cloned() {
76                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
77            }
78            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
79                config_override,
80                client_config.config.clone(),
81                &client_config.runtime_components,
82            ));
83        }
84        runtime_plugins
85    }
86}
87impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for StopLogging {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("StopLogging");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            StopLoggingRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            StopLoggingResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("StopLogging")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("StopLogging", "CloudTrail"));
106        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
107        signing_options.double_uri_encode = true;
108        signing_options.content_sha256_header = false;
109        signing_options.normalize_uri_path = true;
110        signing_options.payload_override = None;
111
112        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
113            signing_options,
114            ..::std::default::Default::default()
115        });
116
117        ::std::option::Option::Some(cfg.freeze())
118    }
119
120    fn runtime_components(
121        &self,
122        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
123    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
124        #[allow(unused_mut)]
125        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("StopLogging")
126            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
127            .with_interceptor(StopLoggingEndpointParamsInterceptor)
128            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
129                crate::operation::stop_logging::StopLoggingError,
130            >::new())
131            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
132                crate::operation::stop_logging::StopLoggingError,
133            >::new())
134            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
135                crate::operation::stop_logging::StopLoggingError,
136            >::new());
137
138        ::std::borrow::Cow::Owned(rcb)
139    }
140}
141
142#[derive(Debug)]
143struct StopLoggingResponseDeserializer;
144impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for StopLoggingResponseDeserializer {
145    fn deserialize_nonstreaming(
146        &self,
147        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
148    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
149        let (success, status) = (response.status().is_success(), response.status().as_u16());
150        let headers = response.headers();
151        let body = response.body().bytes().expect("body loaded");
152        #[allow(unused_mut)]
153        let mut force_error = false;
154        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
155        let parse_result = if !success && status != 200 || force_error {
156            crate::protocol_serde::shape_stop_logging::de_stop_logging_http_error(status, headers, body)
157        } else {
158            crate::protocol_serde::shape_stop_logging::de_stop_logging_http_response(status, headers, body)
159        };
160        crate::protocol_serde::type_erase_result(parse_result)
161    }
162}
163#[derive(Debug)]
164struct StopLoggingRequestSerializer;
165impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for StopLoggingRequestSerializer {
166    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
167    fn serialize_input(
168        &self,
169        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
170        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
171    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
172        let input = input
173            .downcast::<crate::operation::stop_logging::StopLoggingInput>()
174            .expect("correct type");
175        let _header_serialization_settings = _cfg
176            .load::<crate::serialization_settings::HeaderSerializationSettings>()
177            .cloned()
178            .unwrap_or_default();
179        let mut request_builder = {
180            #[allow(clippy::uninlined_format_args)]
181            fn uri_base(
182                _input: &crate::operation::stop_logging::StopLoggingInput,
183                output: &mut ::std::string::String,
184            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
185                use ::std::fmt::Write as _;
186                ::std::write!(output, "/").expect("formatting should succeed");
187                ::std::result::Result::Ok(())
188            }
189            #[allow(clippy::unnecessary_wraps)]
190            fn update_http_builder(
191                input: &crate::operation::stop_logging::StopLoggingInput,
192                builder: ::http::request::Builder,
193            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
194                let mut uri = ::std::string::String::new();
195                uri_base(input, &mut uri)?;
196                ::std::result::Result::Ok(builder.method("POST").uri(uri))
197            }
198            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
199            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.1");
200            builder = _header_serialization_settings.set_default_header(
201                builder,
202                ::http::header::HeaderName::from_static("x-amz-target"),
203                "CloudTrail_20131101.StopLogging",
204            );
205            builder
206        };
207        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_stop_logging::ser_stop_logging_input(&input)?);
208        if let Some(content_length) = body.content_length() {
209            let content_length = content_length.to_string();
210            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
211        }
212        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
213    }
214}
215#[derive(Debug)]
216struct StopLoggingEndpointParamsInterceptor;
217
218impl ::aws_smithy_runtime_api::client::interceptors::Intercept for StopLoggingEndpointParamsInterceptor {
219    fn name(&self) -> &'static str {
220        "StopLoggingEndpointParamsInterceptor"
221    }
222
223    fn read_before_execution(
224        &self,
225        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
226            '_,
227            ::aws_smithy_runtime_api::client::interceptors::context::Input,
228            ::aws_smithy_runtime_api::client::interceptors::context::Output,
229            ::aws_smithy_runtime_api::client::interceptors::context::Error,
230        >,
231        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
232    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
233        let _input = context
234            .input()
235            .downcast_ref::<StopLoggingInput>()
236            .ok_or("failed to downcast to StopLoggingInput")?;
237
238        let params = crate::config::endpoint::Params::builder()
239            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
240            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
241            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
242            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
243            .build()
244            .map_err(|err| {
245                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
246            })?;
247        cfg.interceptor_state()
248            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
249        ::std::result::Result::Ok(())
250    }
251}
252
253// The get_* functions below are generated from JMESPath expressions in the
254// operationContextParams trait. They target the operation's input shape.
255
256/// Error type for the `StopLoggingError` operation.
257#[non_exhaustive]
258#[derive(::std::fmt::Debug)]
259pub enum StopLoggingError {
260    /// <p>This exception is thrown when an operation is called with an ARN that is not valid.</p>
261    /// <p>The following is the format of a trail ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code></p>
262    /// <p>The following is the format of an event data store ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE</code></p>
263    /// <p>The following is the format of a dashboard ARN: <code>arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash</code></p>
264    /// <p>The following is the format of a channel ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890</code></p>
265    CloudTrailArnInvalidException(crate::types::error::CloudTrailArnInvalidException),
266    /// <p>This exception is thrown when the specified resource is not ready for an operation. This can occur when you try to run an operation on a resource before CloudTrail has time to fully load the resource, or because another operation is modifying the resource. If this exception occurs, wait a few minutes, and then try the operation again.</p>
267    ConflictException(crate::types::error::ConflictException),
268    /// <p>This exception is thrown when the IAM identity that is used to create the organization resource lacks one or more required permissions for creating an organization resource in a required service.</p>
269    InsufficientDependencyServiceAccessPermissionException(crate::types::error::InsufficientDependencyServiceAccessPermissionException),
270    /// <p>This exception is thrown when an operation is called on a trail from a Region other than the Region in which the trail was created.</p>
271    InvalidHomeRegionException(crate::types::error::InvalidHomeRegionException),
272    /// <p>This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements:</p>
273    /// <ul>
274    /// <li>
275    /// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-)</p></li>
276    /// <li>
277    /// <p>Start with a letter or number, and end with a letter or number</p></li>
278    /// <li>
279    /// <p>Be between 3 and 128 characters</p></li>
280    /// <li>
281    /// <p>Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are not valid.</p></li>
282    /// <li>
283    /// <p>Not be in IP address format (for example, 192.168.5.4)</p></li>
284    /// </ul>
285    InvalidTrailNameException(crate::types::error::InvalidTrailNameException),
286    /// <p>This exception is thrown when the management account does not have a service-linked role.</p>
287    NoManagementAccountSlrExistsException(crate::types::error::NoManagementAccountSlrExistsException),
288    /// <p>This exception is thrown when the Amazon Web Services account making the request to create or update an organization trail or event data store is not the management account for an organization in Organizations. For more information, see <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-an-organizational-trail-prepare.html">Prepare For Creating a Trail For Your Organization</a> or <a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-organizations.html">Organization event data stores</a>.</p>
289    NotOrganizationMasterAccountException(crate::types::error::NotOrganizationMasterAccountException),
290    /// <p>This exception is thrown when the requested operation is not permitted.</p>
291    OperationNotPermittedException(crate::types::error::OperationNotPermittedException),
292    /// <p>This exception is thrown when the request rate exceeds the limit.</p>
293    ThrottlingException(crate::types::error::ThrottlingException),
294    /// <p>This exception is thrown when the trail with the given name is not found.</p>
295    TrailNotFoundException(crate::types::error::TrailNotFoundException),
296    /// <p>This exception is thrown when the requested operation is not supported.</p>
297    UnsupportedOperationException(crate::types::error::UnsupportedOperationException),
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-StopLoggingError) for what information is available for the error.")]
305    Unhandled(crate::error::sealed_unhandled::Unhandled),
306}
307impl StopLoggingError {
308    /// Creates the `StopLoggingError::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 `StopLoggingError::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::CloudTrailArnInvalidException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
332            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
333            Self::InsufficientDependencyServiceAccessPermissionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
334            Self::InvalidHomeRegionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
335            Self::InvalidTrailNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
336            Self::NoManagementAccountSlrExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
337            Self::NotOrganizationMasterAccountException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
338            Self::OperationNotPermittedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
339            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
340            Self::TrailNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
341            Self::UnsupportedOperationException(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 `StopLoggingError::CloudTrailArnInvalidException`.
346    pub fn is_cloud_trail_arn_invalid_exception(&self) -> bool {
347        matches!(self, Self::CloudTrailArnInvalidException(_))
348    }
349    /// Returns `true` if the error kind is `StopLoggingError::ConflictException`.
350    pub fn is_conflict_exception(&self) -> bool {
351        matches!(self, Self::ConflictException(_))
352    }
353    /// Returns `true` if the error kind is `StopLoggingError::InsufficientDependencyServiceAccessPermissionException`.
354    pub fn is_insufficient_dependency_service_access_permission_exception(&self) -> bool {
355        matches!(self, Self::InsufficientDependencyServiceAccessPermissionException(_))
356    }
357    /// Returns `true` if the error kind is `StopLoggingError::InvalidHomeRegionException`.
358    pub fn is_invalid_home_region_exception(&self) -> bool {
359        matches!(self, Self::InvalidHomeRegionException(_))
360    }
361    /// Returns `true` if the error kind is `StopLoggingError::InvalidTrailNameException`.
362    pub fn is_invalid_trail_name_exception(&self) -> bool {
363        matches!(self, Self::InvalidTrailNameException(_))
364    }
365    /// Returns `true` if the error kind is `StopLoggingError::NoManagementAccountSlrExistsException`.
366    pub fn is_no_management_account_slr_exists_exception(&self) -> bool {
367        matches!(self, Self::NoManagementAccountSlrExistsException(_))
368    }
369    /// Returns `true` if the error kind is `StopLoggingError::NotOrganizationMasterAccountException`.
370    pub fn is_not_organization_master_account_exception(&self) -> bool {
371        matches!(self, Self::NotOrganizationMasterAccountException(_))
372    }
373    /// Returns `true` if the error kind is `StopLoggingError::OperationNotPermittedException`.
374    pub fn is_operation_not_permitted_exception(&self) -> bool {
375        matches!(self, Self::OperationNotPermittedException(_))
376    }
377    /// Returns `true` if the error kind is `StopLoggingError::ThrottlingException`.
378    pub fn is_throttling_exception(&self) -> bool {
379        matches!(self, Self::ThrottlingException(_))
380    }
381    /// Returns `true` if the error kind is `StopLoggingError::TrailNotFoundException`.
382    pub fn is_trail_not_found_exception(&self) -> bool {
383        matches!(self, Self::TrailNotFoundException(_))
384    }
385    /// Returns `true` if the error kind is `StopLoggingError::UnsupportedOperationException`.
386    pub fn is_unsupported_operation_exception(&self) -> bool {
387        matches!(self, Self::UnsupportedOperationException(_))
388    }
389}
390impl ::std::error::Error for StopLoggingError {
391    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
392        match self {
393            Self::CloudTrailArnInvalidException(_inner) => ::std::option::Option::Some(_inner),
394            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
395            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => ::std::option::Option::Some(_inner),
396            Self::InvalidHomeRegionException(_inner) => ::std::option::Option::Some(_inner),
397            Self::InvalidTrailNameException(_inner) => ::std::option::Option::Some(_inner),
398            Self::NoManagementAccountSlrExistsException(_inner) => ::std::option::Option::Some(_inner),
399            Self::NotOrganizationMasterAccountException(_inner) => ::std::option::Option::Some(_inner),
400            Self::OperationNotPermittedException(_inner) => ::std::option::Option::Some(_inner),
401            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
402            Self::TrailNotFoundException(_inner) => ::std::option::Option::Some(_inner),
403            Self::UnsupportedOperationException(_inner) => ::std::option::Option::Some(_inner),
404            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
405        }
406    }
407}
408impl ::std::fmt::Display for StopLoggingError {
409    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
410        match self {
411            Self::CloudTrailArnInvalidException(_inner) => _inner.fmt(f),
412            Self::ConflictException(_inner) => _inner.fmt(f),
413            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => _inner.fmt(f),
414            Self::InvalidHomeRegionException(_inner) => _inner.fmt(f),
415            Self::InvalidTrailNameException(_inner) => _inner.fmt(f),
416            Self::NoManagementAccountSlrExistsException(_inner) => _inner.fmt(f),
417            Self::NotOrganizationMasterAccountException(_inner) => _inner.fmt(f),
418            Self::OperationNotPermittedException(_inner) => _inner.fmt(f),
419            Self::ThrottlingException(_inner) => _inner.fmt(f),
420            Self::TrailNotFoundException(_inner) => _inner.fmt(f),
421            Self::UnsupportedOperationException(_inner) => _inner.fmt(f),
422            Self::Unhandled(_inner) => {
423                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
424                    write!(f, "unhandled error ({code})")
425                } else {
426                    f.write_str("unhandled error")
427                }
428            }
429        }
430    }
431}
432impl ::aws_smithy_types::retry::ProvideErrorKind for StopLoggingError {
433    fn code(&self) -> ::std::option::Option<&str> {
434        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
435    }
436    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
437        ::std::option::Option::None
438    }
439}
440impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for StopLoggingError {
441    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
442        match self {
443            Self::CloudTrailArnInvalidException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
444            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
445            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => {
446                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
447            }
448            Self::InvalidHomeRegionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
449            Self::InvalidTrailNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
450            Self::NoManagementAccountSlrExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
451            Self::NotOrganizationMasterAccountException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
452            Self::OperationNotPermittedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
453            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
454            Self::TrailNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
455            Self::UnsupportedOperationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
456            Self::Unhandled(_inner) => &_inner.meta,
457        }
458    }
459}
460impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for StopLoggingError {
461    fn create_unhandled_error(
462        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
463        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
464    ) -> Self {
465        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
466            source,
467            meta: meta.unwrap_or_default(),
468        })
469    }
470}
471impl ::aws_types::request_id::RequestId for crate::operation::stop_logging::StopLoggingError {
472    fn request_id(&self) -> Option<&str> {
473        self.meta().request_id()
474    }
475}
476
477pub use crate::operation::stop_logging::_stop_logging_output::StopLoggingOutput;
478
479pub use crate::operation::stop_logging::_stop_logging_input::StopLoggingInput;
480
481mod _stop_logging_input;
482
483mod _stop_logging_output;
484
485/// Builders
486pub mod builders;