aws_sdk_cloudtrail/operation/
update_trail.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `UpdateTrail`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct UpdateTrail;
6impl UpdateTrail {
7    /// Creates a new `UpdateTrail`
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::update_trail::UpdateTrailInput,
14    ) -> ::std::result::Result<
15        crate::operation::update_trail::UpdateTrailOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::update_trail::UpdateTrailError,
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::update_trail::UpdateTrailError>()
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::update_trail::UpdateTrailOutput>()
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::update_trail::UpdateTrailInput,
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", "UpdateTrail", 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.UpdateTrail",
59                "rpc.service" = "CloudTrail",
60                "rpc.method" = "UpdateTrail",
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 UpdateTrail {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("UpdateTrail");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            UpdateTrailRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            UpdateTrailResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("UpdateTrail")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("UpdateTrail", "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("UpdateTrail")
126            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
127            .with_interceptor(UpdateTrailEndpointParamsInterceptor)
128            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
129                crate::operation::update_trail::UpdateTrailError,
130            >::new())
131            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
132                crate::operation::update_trail::UpdateTrailError,
133            >::new())
134            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
135                crate::operation::update_trail::UpdateTrailError,
136            >::new());
137
138        ::std::borrow::Cow::Owned(rcb)
139    }
140}
141
142#[derive(Debug)]
143struct UpdateTrailResponseDeserializer;
144impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UpdateTrailResponseDeserializer {
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_update_trail::de_update_trail_http_error(status, headers, body)
157        } else {
158            crate::protocol_serde::shape_update_trail::de_update_trail_http_response(status, headers, body)
159        };
160        crate::protocol_serde::type_erase_result(parse_result)
161    }
162}
163#[derive(Debug)]
164struct UpdateTrailRequestSerializer;
165impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UpdateTrailRequestSerializer {
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::update_trail::UpdateTrailInput>()
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::update_trail::UpdateTrailInput,
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::update_trail::UpdateTrailInput,
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.UpdateTrail",
204            );
205            builder
206        };
207        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_update_trail::ser_update_trail_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 UpdateTrailEndpointParamsInterceptor;
217
218impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateTrailEndpointParamsInterceptor {
219    fn name(&self) -> &'static str {
220        "UpdateTrailEndpointParamsInterceptor"
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::<UpdateTrailInput>()
236            .ok_or("failed to downcast to UpdateTrailInput")?;
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 `UpdateTrailError` operation.
257#[non_exhaustive]
258#[derive(::std::fmt::Debug)]
259pub enum UpdateTrailError {
260    /// <p>This exception is thrown when trusted access has not been enabled between CloudTrail and Organizations. For more information, see <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html#orgs_how-to-enable-disable-trusted-access">How to enable or disable trusted access</a> in the <i>Organizations User Guide</i> and <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> in the <i>CloudTrail User Guide</i>.</p>
261    CloudTrailAccessNotEnabledException(crate::types::error::CloudTrailAccessNotEnabledException),
262    /// <p>This exception is thrown when an operation is called with an ARN that is not valid.</p>
263    /// <p>The following is the format of a trail ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code></p>
264    /// <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>
265    /// <p>The following is the format of a dashboard ARN: <code>arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash</code></p>
266    /// <p>The following is the format of a channel ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890</code></p>
267    CloudTrailArnInvalidException(crate::types::error::CloudTrailArnInvalidException),
268    /// <p>This exception is thrown when a call results in the <code>InvalidClientTokenId</code> error code. This can occur when you are creating or updating a trail to send notifications to an Amazon SNS topic that is in a suspended Amazon Web Services account.</p>
269    CloudTrailInvalidClientTokenIdException(crate::types::error::CloudTrailInvalidClientTokenIdException),
270    /// <p>Cannot set a CloudWatch Logs delivery for this Region.</p>
271    CloudWatchLogsDeliveryUnavailableException(crate::types::error::CloudWatchLogsDeliveryUnavailableException),
272    /// <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>
273    ConflictException(crate::types::error::ConflictException),
274    /// <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>
275    InsufficientDependencyServiceAccessPermissionException(crate::types::error::InsufficientDependencyServiceAccessPermissionException),
276    /// <p>For the <code>CreateTrail</code> <code>PutInsightSelectors</code>, <code>UpdateTrail</code>, <code>StartQuery</code>, and <code>StartImport</code> operations, this exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation.</p>
277    /// <p>For all other operations, this exception is thrown when the policy for the KMS key does not have sufficient permissions for the operation.</p>
278    InsufficientEncryptionPolicyException(crate::types::error::InsufficientEncryptionPolicyException),
279    /// <p>This exception is thrown when the policy on the S3 bucket is not sufficient.</p>
280    InsufficientS3BucketPolicyException(crate::types::error::InsufficientS3BucketPolicyException),
281    /// <p>This exception is thrown when the policy on the Amazon SNS topic is not sufficient.</p>
282    InsufficientSnsTopicPolicyException(crate::types::error::InsufficientSnsTopicPolicyException),
283    /// <p>This exception is thrown when the provided CloudWatch Logs log group is not valid.</p>
284    InvalidCloudWatchLogsLogGroupArnException(crate::types::error::InvalidCloudWatchLogsLogGroupArnException),
285    /// <p>This exception is thrown when the provided role is not valid.</p>
286    InvalidCloudWatchLogsRoleArnException(crate::types::error::InvalidCloudWatchLogsRoleArnException),
287    /// <p>This exception is thrown when the <code>PutEventSelectors</code> operation is called with a number of event selectors, advanced event selectors, or data resources that is not valid. The combination of event selectors or advanced event selectors and data resources is not valid. A trail can have up to 5 event selectors. If a trail uses advanced event selectors, a maximum of 500 total values for all conditions in all advanced event selectors is allowed. A trail is limited to 250 data resources. These data resources can be distributed across event selectors, but the overall total cannot exceed 250.</p>
288    /// <p>You can:</p>
289    /// <ul>
290    /// <li>
291    /// <p>Specify a valid number of event selectors (1 to 5) for a trail.</p></li>
292    /// <li>
293    /// <p>Specify a valid number of data resources (1 to 250) for an event selector. The limit of number of resources on an individual event selector is configurable up to 250. However, this upper limit is allowed only if the total number of data resources does not exceed 250 across all event selectors for a trail.</p></li>
294    /// <li>
295    /// <p>Specify up to 500 values for all conditions in all advanced event selectors for a trail.</p></li>
296    /// <li>
297    /// <p>Specify a valid value for a parameter. For example, specifying the <code>ReadWriteType</code> parameter with a value of <code>read-only</code> is not valid.</p></li>
298    /// </ul>
299    InvalidEventSelectorsException(crate::types::error::InvalidEventSelectorsException),
300    /// <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>
301    InvalidHomeRegionException(crate::types::error::InvalidHomeRegionException),
302    /// <p>This exception is thrown when the KMS key ARN is not valid.</p>
303    InvalidKmsKeyIdException(crate::types::error::InvalidKmsKeyIdException),
304    /// <p>This exception is thrown when the combination of parameters provided is not valid.</p>
305    InvalidParameterCombinationException(crate::types::error::InvalidParameterCombinationException),
306    /// <p>The request includes a parameter that is not valid.</p>
307    InvalidParameterException(crate::types::error::InvalidParameterException),
308    /// <p>This exception is thrown when the provided S3 bucket name is not valid.</p>
309    InvalidS3BucketNameException(crate::types::error::InvalidS3BucketNameException),
310    /// <p>This exception is thrown when the provided S3 prefix is not valid.</p>
311    InvalidS3PrefixException(crate::types::error::InvalidS3PrefixException),
312    /// <p>This exception is thrown when the provided SNS topic name is not valid.</p>
313    InvalidSnsTopicNameException(crate::types::error::InvalidSnsTopicNameException),
314    /// <p>This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements:</p>
315    /// <ul>
316    /// <li>
317    /// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-)</p></li>
318    /// <li>
319    /// <p>Start with a letter or number, and end with a letter or number</p></li>
320    /// <li>
321    /// <p>Be between 3 and 128 characters</p></li>
322    /// <li>
323    /// <p>Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are not valid.</p></li>
324    /// <li>
325    /// <p>Not be in IP address format (for example, 192.168.5.4)</p></li>
326    /// </ul>
327    InvalidTrailNameException(crate::types::error::InvalidTrailNameException),
328    /// <p>This exception is thrown when there is an issue with the specified KMS key and the trail or event data store can't be updated.</p>
329    KmsException(crate::types::error::KmsException),
330    /// <p>This exception is no longer in use.</p>
331    #[deprecated]
332    KmsKeyDisabledException(crate::types::error::KmsKeyDisabledException),
333    /// <p>This exception is thrown when the KMS key does not exist, when the S3 bucket and the KMS key are not in the same Region, or when the KMS key associated with the Amazon SNS topic either does not exist or is not in the same Region.</p>
334    KmsKeyNotFoundException(crate::types::error::KmsKeyNotFoundException),
335    /// <p>This exception is thrown when the management account does not have a service-linked role.</p>
336    NoManagementAccountSlrExistsException(crate::types::error::NoManagementAccountSlrExistsException),
337    /// <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>
338    NotOrganizationMasterAccountException(crate::types::error::NotOrganizationMasterAccountException),
339    /// <p>This exception is thrown when the requested operation is not permitted.</p>
340    OperationNotPermittedException(crate::types::error::OperationNotPermittedException),
341    /// <p>This exception is thrown when Organizations is not configured to support all features. All features must be enabled in Organizations to support creating an organization trail or event data store.</p>
342    OrganizationNotInAllFeaturesModeException(crate::types::error::OrganizationNotInAllFeaturesModeException),
343    /// <p>This exception is thrown when the request is made from an Amazon Web Services account that is not a member of an organization. To make this request, sign in using the credentials of an account that belongs to an organization.</p>
344    OrganizationsNotInUseException(crate::types::error::OrganizationsNotInUseException),
345    /// <p>This exception is thrown when the specified S3 bucket does not exist.</p>
346    S3BucketDoesNotExistException(crate::types::error::S3BucketDoesNotExistException),
347    /// <p>This exception is thrown when the request rate exceeds the limit.</p>
348    ThrottlingException(crate::types::error::ThrottlingException),
349    /// <p>This exception is thrown when the trail with the given name is not found.</p>
350    TrailNotFoundException(crate::types::error::TrailNotFoundException),
351    /// <p>This exception is no longer in use.</p>
352    TrailNotProvidedException(crate::types::error::TrailNotProvidedException),
353    /// <p>This exception is thrown when the requested operation is not supported.</p>
354    UnsupportedOperationException(crate::types::error::UnsupportedOperationException),
355    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
356    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
357    variable wildcard pattern and check `.code()`:
358     \
359    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
360     \
361    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-UpdateTrailError) for what information is available for the error.")]
362    Unhandled(crate::error::sealed_unhandled::Unhandled),
363}
364impl UpdateTrailError {
365    /// Creates the `UpdateTrailError::Unhandled` variant from any error type.
366    pub fn unhandled(
367        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
368    ) -> Self {
369        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
370            source: err.into(),
371            meta: ::std::default::Default::default(),
372        })
373    }
374
375    /// Creates the `UpdateTrailError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
376    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
377        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
378            source: err.clone().into(),
379            meta: err,
380        })
381    }
382    ///
383    /// Returns error metadata, which includes the error code, message,
384    /// request ID, and potentially additional information.
385    ///
386    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
387        match self {
388            Self::CloudTrailAccessNotEnabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
389            Self::CloudTrailArnInvalidException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
390            Self::CloudTrailInvalidClientTokenIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
391            Self::CloudWatchLogsDeliveryUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
392            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
393            Self::InsufficientDependencyServiceAccessPermissionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
394            Self::InsufficientEncryptionPolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
395            Self::InsufficientS3BucketPolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
396            Self::InsufficientSnsTopicPolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
397            Self::InvalidCloudWatchLogsLogGroupArnException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
398            Self::InvalidCloudWatchLogsRoleArnException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
399            Self::InvalidEventSelectorsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
400            Self::InvalidHomeRegionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
401            Self::InvalidKmsKeyIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
402            Self::InvalidParameterCombinationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
403            Self::InvalidParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
404            Self::InvalidS3BucketNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
405            Self::InvalidS3PrefixException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
406            Self::InvalidSnsTopicNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
407            Self::InvalidTrailNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
408            Self::KmsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
409            Self::KmsKeyDisabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
410            Self::KmsKeyNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
411            Self::NoManagementAccountSlrExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
412            Self::NotOrganizationMasterAccountException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
413            Self::OperationNotPermittedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
414            Self::OrganizationNotInAllFeaturesModeException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
415            Self::OrganizationsNotInUseException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
416            Self::S3BucketDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
417            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
418            Self::TrailNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
419            Self::TrailNotProvidedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
420            Self::UnsupportedOperationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
421            Self::Unhandled(e) => &e.meta,
422        }
423    }
424    /// Returns `true` if the error kind is `UpdateTrailError::CloudTrailAccessNotEnabledException`.
425    pub fn is_cloud_trail_access_not_enabled_exception(&self) -> bool {
426        matches!(self, Self::CloudTrailAccessNotEnabledException(_))
427    }
428    /// Returns `true` if the error kind is `UpdateTrailError::CloudTrailArnInvalidException`.
429    pub fn is_cloud_trail_arn_invalid_exception(&self) -> bool {
430        matches!(self, Self::CloudTrailArnInvalidException(_))
431    }
432    /// Returns `true` if the error kind is `UpdateTrailError::CloudTrailInvalidClientTokenIdException`.
433    pub fn is_cloud_trail_invalid_client_token_id_exception(&self) -> bool {
434        matches!(self, Self::CloudTrailInvalidClientTokenIdException(_))
435    }
436    /// Returns `true` if the error kind is `UpdateTrailError::CloudWatchLogsDeliveryUnavailableException`.
437    pub fn is_cloud_watch_logs_delivery_unavailable_exception(&self) -> bool {
438        matches!(self, Self::CloudWatchLogsDeliveryUnavailableException(_))
439    }
440    /// Returns `true` if the error kind is `UpdateTrailError::ConflictException`.
441    pub fn is_conflict_exception(&self) -> bool {
442        matches!(self, Self::ConflictException(_))
443    }
444    /// Returns `true` if the error kind is `UpdateTrailError::InsufficientDependencyServiceAccessPermissionException`.
445    pub fn is_insufficient_dependency_service_access_permission_exception(&self) -> bool {
446        matches!(self, Self::InsufficientDependencyServiceAccessPermissionException(_))
447    }
448    /// Returns `true` if the error kind is `UpdateTrailError::InsufficientEncryptionPolicyException`.
449    pub fn is_insufficient_encryption_policy_exception(&self) -> bool {
450        matches!(self, Self::InsufficientEncryptionPolicyException(_))
451    }
452    /// Returns `true` if the error kind is `UpdateTrailError::InsufficientS3BucketPolicyException`.
453    pub fn is_insufficient_s3_bucket_policy_exception(&self) -> bool {
454        matches!(self, Self::InsufficientS3BucketPolicyException(_))
455    }
456    /// Returns `true` if the error kind is `UpdateTrailError::InsufficientSnsTopicPolicyException`.
457    pub fn is_insufficient_sns_topic_policy_exception(&self) -> bool {
458        matches!(self, Self::InsufficientSnsTopicPolicyException(_))
459    }
460    /// Returns `true` if the error kind is `UpdateTrailError::InvalidCloudWatchLogsLogGroupArnException`.
461    pub fn is_invalid_cloud_watch_logs_log_group_arn_exception(&self) -> bool {
462        matches!(self, Self::InvalidCloudWatchLogsLogGroupArnException(_))
463    }
464    /// Returns `true` if the error kind is `UpdateTrailError::InvalidCloudWatchLogsRoleArnException`.
465    pub fn is_invalid_cloud_watch_logs_role_arn_exception(&self) -> bool {
466        matches!(self, Self::InvalidCloudWatchLogsRoleArnException(_))
467    }
468    /// Returns `true` if the error kind is `UpdateTrailError::InvalidEventSelectorsException`.
469    pub fn is_invalid_event_selectors_exception(&self) -> bool {
470        matches!(self, Self::InvalidEventSelectorsException(_))
471    }
472    /// Returns `true` if the error kind is `UpdateTrailError::InvalidHomeRegionException`.
473    pub fn is_invalid_home_region_exception(&self) -> bool {
474        matches!(self, Self::InvalidHomeRegionException(_))
475    }
476    /// Returns `true` if the error kind is `UpdateTrailError::InvalidKmsKeyIdException`.
477    pub fn is_invalid_kms_key_id_exception(&self) -> bool {
478        matches!(self, Self::InvalidKmsKeyIdException(_))
479    }
480    /// Returns `true` if the error kind is `UpdateTrailError::InvalidParameterCombinationException`.
481    pub fn is_invalid_parameter_combination_exception(&self) -> bool {
482        matches!(self, Self::InvalidParameterCombinationException(_))
483    }
484    /// Returns `true` if the error kind is `UpdateTrailError::InvalidParameterException`.
485    pub fn is_invalid_parameter_exception(&self) -> bool {
486        matches!(self, Self::InvalidParameterException(_))
487    }
488    /// Returns `true` if the error kind is `UpdateTrailError::InvalidS3BucketNameException`.
489    pub fn is_invalid_s3_bucket_name_exception(&self) -> bool {
490        matches!(self, Self::InvalidS3BucketNameException(_))
491    }
492    /// Returns `true` if the error kind is `UpdateTrailError::InvalidS3PrefixException`.
493    pub fn is_invalid_s3_prefix_exception(&self) -> bool {
494        matches!(self, Self::InvalidS3PrefixException(_))
495    }
496    /// Returns `true` if the error kind is `UpdateTrailError::InvalidSnsTopicNameException`.
497    pub fn is_invalid_sns_topic_name_exception(&self) -> bool {
498        matches!(self, Self::InvalidSnsTopicNameException(_))
499    }
500    /// Returns `true` if the error kind is `UpdateTrailError::InvalidTrailNameException`.
501    pub fn is_invalid_trail_name_exception(&self) -> bool {
502        matches!(self, Self::InvalidTrailNameException(_))
503    }
504    /// Returns `true` if the error kind is `UpdateTrailError::KmsException`.
505    pub fn is_kms_exception(&self) -> bool {
506        matches!(self, Self::KmsException(_))
507    }
508    /// Returns `true` if the error kind is `UpdateTrailError::KmsKeyDisabledException`.
509    pub fn is_kms_key_disabled_exception(&self) -> bool {
510        matches!(self, Self::KmsKeyDisabledException(_))
511    }
512    /// Returns `true` if the error kind is `UpdateTrailError::KmsKeyNotFoundException`.
513    pub fn is_kms_key_not_found_exception(&self) -> bool {
514        matches!(self, Self::KmsKeyNotFoundException(_))
515    }
516    /// Returns `true` if the error kind is `UpdateTrailError::NoManagementAccountSlrExistsException`.
517    pub fn is_no_management_account_slr_exists_exception(&self) -> bool {
518        matches!(self, Self::NoManagementAccountSlrExistsException(_))
519    }
520    /// Returns `true` if the error kind is `UpdateTrailError::NotOrganizationMasterAccountException`.
521    pub fn is_not_organization_master_account_exception(&self) -> bool {
522        matches!(self, Self::NotOrganizationMasterAccountException(_))
523    }
524    /// Returns `true` if the error kind is `UpdateTrailError::OperationNotPermittedException`.
525    pub fn is_operation_not_permitted_exception(&self) -> bool {
526        matches!(self, Self::OperationNotPermittedException(_))
527    }
528    /// Returns `true` if the error kind is `UpdateTrailError::OrganizationNotInAllFeaturesModeException`.
529    pub fn is_organization_not_in_all_features_mode_exception(&self) -> bool {
530        matches!(self, Self::OrganizationNotInAllFeaturesModeException(_))
531    }
532    /// Returns `true` if the error kind is `UpdateTrailError::OrganizationsNotInUseException`.
533    pub fn is_organizations_not_in_use_exception(&self) -> bool {
534        matches!(self, Self::OrganizationsNotInUseException(_))
535    }
536    /// Returns `true` if the error kind is `UpdateTrailError::S3BucketDoesNotExistException`.
537    pub fn is_s3_bucket_does_not_exist_exception(&self) -> bool {
538        matches!(self, Self::S3BucketDoesNotExistException(_))
539    }
540    /// Returns `true` if the error kind is `UpdateTrailError::ThrottlingException`.
541    pub fn is_throttling_exception(&self) -> bool {
542        matches!(self, Self::ThrottlingException(_))
543    }
544    /// Returns `true` if the error kind is `UpdateTrailError::TrailNotFoundException`.
545    pub fn is_trail_not_found_exception(&self) -> bool {
546        matches!(self, Self::TrailNotFoundException(_))
547    }
548    /// Returns `true` if the error kind is `UpdateTrailError::TrailNotProvidedException`.
549    pub fn is_trail_not_provided_exception(&self) -> bool {
550        matches!(self, Self::TrailNotProvidedException(_))
551    }
552    /// Returns `true` if the error kind is `UpdateTrailError::UnsupportedOperationException`.
553    pub fn is_unsupported_operation_exception(&self) -> bool {
554        matches!(self, Self::UnsupportedOperationException(_))
555    }
556}
557impl ::std::error::Error for UpdateTrailError {
558    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
559        match self {
560            Self::CloudTrailAccessNotEnabledException(_inner) => ::std::option::Option::Some(_inner),
561            Self::CloudTrailArnInvalidException(_inner) => ::std::option::Option::Some(_inner),
562            Self::CloudTrailInvalidClientTokenIdException(_inner) => ::std::option::Option::Some(_inner),
563            Self::CloudWatchLogsDeliveryUnavailableException(_inner) => ::std::option::Option::Some(_inner),
564            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
565            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => ::std::option::Option::Some(_inner),
566            Self::InsufficientEncryptionPolicyException(_inner) => ::std::option::Option::Some(_inner),
567            Self::InsufficientS3BucketPolicyException(_inner) => ::std::option::Option::Some(_inner),
568            Self::InsufficientSnsTopicPolicyException(_inner) => ::std::option::Option::Some(_inner),
569            Self::InvalidCloudWatchLogsLogGroupArnException(_inner) => ::std::option::Option::Some(_inner),
570            Self::InvalidCloudWatchLogsRoleArnException(_inner) => ::std::option::Option::Some(_inner),
571            Self::InvalidEventSelectorsException(_inner) => ::std::option::Option::Some(_inner),
572            Self::InvalidHomeRegionException(_inner) => ::std::option::Option::Some(_inner),
573            Self::InvalidKmsKeyIdException(_inner) => ::std::option::Option::Some(_inner),
574            Self::InvalidParameterCombinationException(_inner) => ::std::option::Option::Some(_inner),
575            Self::InvalidParameterException(_inner) => ::std::option::Option::Some(_inner),
576            Self::InvalidS3BucketNameException(_inner) => ::std::option::Option::Some(_inner),
577            Self::InvalidS3PrefixException(_inner) => ::std::option::Option::Some(_inner),
578            Self::InvalidSnsTopicNameException(_inner) => ::std::option::Option::Some(_inner),
579            Self::InvalidTrailNameException(_inner) => ::std::option::Option::Some(_inner),
580            Self::KmsException(_inner) => ::std::option::Option::Some(_inner),
581            Self::KmsKeyDisabledException(_inner) => ::std::option::Option::Some(_inner),
582            Self::KmsKeyNotFoundException(_inner) => ::std::option::Option::Some(_inner),
583            Self::NoManagementAccountSlrExistsException(_inner) => ::std::option::Option::Some(_inner),
584            Self::NotOrganizationMasterAccountException(_inner) => ::std::option::Option::Some(_inner),
585            Self::OperationNotPermittedException(_inner) => ::std::option::Option::Some(_inner),
586            Self::OrganizationNotInAllFeaturesModeException(_inner) => ::std::option::Option::Some(_inner),
587            Self::OrganizationsNotInUseException(_inner) => ::std::option::Option::Some(_inner),
588            Self::S3BucketDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
589            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
590            Self::TrailNotFoundException(_inner) => ::std::option::Option::Some(_inner),
591            Self::TrailNotProvidedException(_inner) => ::std::option::Option::Some(_inner),
592            Self::UnsupportedOperationException(_inner) => ::std::option::Option::Some(_inner),
593            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
594        }
595    }
596}
597impl ::std::fmt::Display for UpdateTrailError {
598    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
599        match self {
600            Self::CloudTrailAccessNotEnabledException(_inner) => _inner.fmt(f),
601            Self::CloudTrailArnInvalidException(_inner) => _inner.fmt(f),
602            Self::CloudTrailInvalidClientTokenIdException(_inner) => _inner.fmt(f),
603            Self::CloudWatchLogsDeliveryUnavailableException(_inner) => _inner.fmt(f),
604            Self::ConflictException(_inner) => _inner.fmt(f),
605            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => _inner.fmt(f),
606            Self::InsufficientEncryptionPolicyException(_inner) => _inner.fmt(f),
607            Self::InsufficientS3BucketPolicyException(_inner) => _inner.fmt(f),
608            Self::InsufficientSnsTopicPolicyException(_inner) => _inner.fmt(f),
609            Self::InvalidCloudWatchLogsLogGroupArnException(_inner) => _inner.fmt(f),
610            Self::InvalidCloudWatchLogsRoleArnException(_inner) => _inner.fmt(f),
611            Self::InvalidEventSelectorsException(_inner) => _inner.fmt(f),
612            Self::InvalidHomeRegionException(_inner) => _inner.fmt(f),
613            Self::InvalidKmsKeyIdException(_inner) => _inner.fmt(f),
614            Self::InvalidParameterCombinationException(_inner) => _inner.fmt(f),
615            Self::InvalidParameterException(_inner) => _inner.fmt(f),
616            Self::InvalidS3BucketNameException(_inner) => _inner.fmt(f),
617            Self::InvalidS3PrefixException(_inner) => _inner.fmt(f),
618            Self::InvalidSnsTopicNameException(_inner) => _inner.fmt(f),
619            Self::InvalidTrailNameException(_inner) => _inner.fmt(f),
620            Self::KmsException(_inner) => _inner.fmt(f),
621            Self::KmsKeyDisabledException(_inner) => _inner.fmt(f),
622            Self::KmsKeyNotFoundException(_inner) => _inner.fmt(f),
623            Self::NoManagementAccountSlrExistsException(_inner) => _inner.fmt(f),
624            Self::NotOrganizationMasterAccountException(_inner) => _inner.fmt(f),
625            Self::OperationNotPermittedException(_inner) => _inner.fmt(f),
626            Self::OrganizationNotInAllFeaturesModeException(_inner) => _inner.fmt(f),
627            Self::OrganizationsNotInUseException(_inner) => _inner.fmt(f),
628            Self::S3BucketDoesNotExistException(_inner) => _inner.fmt(f),
629            Self::ThrottlingException(_inner) => _inner.fmt(f),
630            Self::TrailNotFoundException(_inner) => _inner.fmt(f),
631            Self::TrailNotProvidedException(_inner) => _inner.fmt(f),
632            Self::UnsupportedOperationException(_inner) => _inner.fmt(f),
633            Self::Unhandled(_inner) => {
634                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
635                    write!(f, "unhandled error ({code})")
636                } else {
637                    f.write_str("unhandled error")
638                }
639            }
640        }
641    }
642}
643impl ::aws_smithy_types::retry::ProvideErrorKind for UpdateTrailError {
644    fn code(&self) -> ::std::option::Option<&str> {
645        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
646    }
647    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
648        ::std::option::Option::None
649    }
650}
651impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UpdateTrailError {
652    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
653        match self {
654            Self::CloudTrailAccessNotEnabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
655            Self::CloudTrailArnInvalidException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
656            Self::CloudTrailInvalidClientTokenIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
657            Self::CloudWatchLogsDeliveryUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
658            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
659            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => {
660                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
661            }
662            Self::InsufficientEncryptionPolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
663            Self::InsufficientS3BucketPolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
664            Self::InsufficientSnsTopicPolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
665            Self::InvalidCloudWatchLogsLogGroupArnException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
666            Self::InvalidCloudWatchLogsRoleArnException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
667            Self::InvalidEventSelectorsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
668            Self::InvalidHomeRegionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
669            Self::InvalidKmsKeyIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
670            Self::InvalidParameterCombinationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
671            Self::InvalidParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
672            Self::InvalidS3BucketNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
673            Self::InvalidS3PrefixException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
674            Self::InvalidSnsTopicNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
675            Self::InvalidTrailNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
676            Self::KmsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
677            Self::KmsKeyDisabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
678            Self::KmsKeyNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
679            Self::NoManagementAccountSlrExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
680            Self::NotOrganizationMasterAccountException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
681            Self::OperationNotPermittedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
682            Self::OrganizationNotInAllFeaturesModeException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
683            Self::OrganizationsNotInUseException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
684            Self::S3BucketDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
685            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
686            Self::TrailNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
687            Self::TrailNotProvidedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
688            Self::UnsupportedOperationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
689            Self::Unhandled(_inner) => &_inner.meta,
690        }
691    }
692}
693impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UpdateTrailError {
694    fn create_unhandled_error(
695        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
696        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
697    ) -> Self {
698        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
699            source,
700            meta: meta.unwrap_or_default(),
701        })
702    }
703}
704impl ::aws_types::request_id::RequestId for crate::operation::update_trail::UpdateTrailError {
705    fn request_id(&self) -> Option<&str> {
706        self.meta().request_id()
707    }
708}
709
710pub use crate::operation::update_trail::_update_trail_output::UpdateTrailOutput;
711
712pub use crate::operation::update_trail::_update_trail_input::UpdateTrailInput;
713
714mod _update_trail_input;
715
716mod _update_trail_output;
717
718/// Builders
719pub mod builders;