Skip to main content

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_api::client::interceptors::SharedInterceptor::permanent(
127                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
128            ))
129            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
130                UpdateTrailEndpointParamsInterceptor,
131            ))
132            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
133                crate::operation::update_trail::UpdateTrailError,
134            >::new())
135            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
136                crate::operation::update_trail::UpdateTrailError,
137            >::new())
138            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
139                crate::operation::update_trail::UpdateTrailError,
140            >::new());
141
142        ::std::borrow::Cow::Owned(rcb)
143    }
144}
145
146#[derive(Debug)]
147struct UpdateTrailResponseDeserializer;
148impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UpdateTrailResponseDeserializer {
149    fn deserialize_nonstreaming_with_config(
150        &self,
151        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
152        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
153    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
154        let (success, status) = (response.status().is_success(), response.status().as_u16());
155        let headers = response.headers();
156        let body = response.body().bytes().expect("body loaded");
157        #[allow(unused_mut)]
158        let mut force_error = false;
159        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
160        let parse_result = if !success && status != 200 || force_error {
161            crate::protocol_serde::shape_update_trail::de_update_trail_http_error(status, headers, body)
162        } else {
163            crate::protocol_serde::shape_update_trail::de_update_trail_http_response(status, headers, body)
164        };
165        crate::protocol_serde::type_erase_result(parse_result)
166    }
167}
168#[derive(Debug)]
169struct UpdateTrailRequestSerializer;
170impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UpdateTrailRequestSerializer {
171    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
172    fn serialize_input(
173        &self,
174        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
175        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
176    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
177        let input = input
178            .downcast::<crate::operation::update_trail::UpdateTrailInput>()
179            .expect("correct type");
180        let _header_serialization_settings = _cfg
181            .load::<crate::serialization_settings::HeaderSerializationSettings>()
182            .cloned()
183            .unwrap_or_default();
184        let mut request_builder = {
185            #[allow(clippy::uninlined_format_args)]
186            fn uri_base(
187                _input: &crate::operation::update_trail::UpdateTrailInput,
188                output: &mut ::std::string::String,
189            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
190                use ::std::fmt::Write as _;
191                ::std::write!(output, "/").expect("formatting should succeed");
192                ::std::result::Result::Ok(())
193            }
194            #[allow(clippy::unnecessary_wraps)]
195            fn update_http_builder(
196                input: &crate::operation::update_trail::UpdateTrailInput,
197                builder: ::http_1x::request::Builder,
198            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
199                let mut uri = ::std::string::String::new();
200                uri_base(input, &mut uri)?;
201                ::std::result::Result::Ok(builder.method("POST").uri(uri))
202            }
203            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
204            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
205            builder = _header_serialization_settings.set_default_header(
206                builder,
207                ::http_1x::header::HeaderName::from_static("x-amz-target"),
208                "CloudTrail_20131101.UpdateTrail",
209            );
210            builder
211        };
212        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_update_trail::ser_update_trail_input(&input)?);
213        if let Some(content_length) = body.content_length() {
214            let content_length = content_length.to_string();
215            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
216        }
217        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
218    }
219}
220#[derive(Debug)]
221struct UpdateTrailEndpointParamsInterceptor;
222
223#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
224impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateTrailEndpointParamsInterceptor {
225    fn name(&self) -> &'static str {
226        "UpdateTrailEndpointParamsInterceptor"
227    }
228
229    fn read_before_execution(
230        &self,
231        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
232            '_,
233            ::aws_smithy_runtime_api::client::interceptors::context::Input,
234            ::aws_smithy_runtime_api::client::interceptors::context::Output,
235            ::aws_smithy_runtime_api::client::interceptors::context::Error,
236        >,
237        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
238    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
239        let _input = context
240            .input()
241            .downcast_ref::<UpdateTrailInput>()
242            .ok_or("failed to downcast to UpdateTrailInput")?;
243
244        let params = crate::config::endpoint::Params::builder()
245            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
246            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
247            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
248            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
249            .build()
250            .map_err(|err| {
251                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
252            })?;
253        cfg.interceptor_state()
254            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
255        ::std::result::Result::Ok(())
256    }
257}
258
259// The get_* functions below are generated from JMESPath expressions in the
260// operationContextParams trait. They target the operation's input shape.
261
262/// Error type for the `UpdateTrailError` operation.
263#[non_exhaustive]
264#[derive(::std::fmt::Debug)]
265pub enum UpdateTrailError {
266    /// <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>
267    CloudTrailAccessNotEnabledException(crate::types::error::CloudTrailAccessNotEnabledException),
268    /// <p>This exception is thrown when an operation is called with an ARN that is not valid.</p>
269    /// <p>The following is the format of a trail ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code></p>
270    /// <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>
271    /// <p>The following is the format of a dashboard ARN: <code>arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash</code></p>
272    /// <p>The following is the format of a channel ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890</code></p>
273    CloudTrailArnInvalidException(crate::types::error::CloudTrailArnInvalidException),
274    /// <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>
275    CloudTrailInvalidClientTokenIdException(crate::types::error::CloudTrailInvalidClientTokenIdException),
276    /// <p>Cannot set a CloudWatch Logs delivery for this Region.</p>
277    CloudWatchLogsDeliveryUnavailableException(crate::types::error::CloudWatchLogsDeliveryUnavailableException),
278    /// <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>
279    ConflictException(crate::types::error::ConflictException),
280    /// <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>
281    InsufficientDependencyServiceAccessPermissionException(crate::types::error::InsufficientDependencyServiceAccessPermissionException),
282    /// <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>
283    /// <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>
284    InsufficientEncryptionPolicyException(crate::types::error::InsufficientEncryptionPolicyException),
285    /// <p>This exception is thrown when the policy on the S3 bucket is not sufficient.</p>
286    InsufficientS3BucketPolicyException(crate::types::error::InsufficientS3BucketPolicyException),
287    /// <p>This exception is thrown when the policy on the Amazon SNS topic is not sufficient.</p>
288    InsufficientSnsTopicPolicyException(crate::types::error::InsufficientSnsTopicPolicyException),
289    /// <p>This exception is thrown when the provided CloudWatch Logs log group is not valid.</p>
290    InvalidCloudWatchLogsLogGroupArnException(crate::types::error::InvalidCloudWatchLogsLogGroupArnException),
291    /// <p>This exception is thrown when the provided role is not valid.</p>
292    InvalidCloudWatchLogsRoleArnException(crate::types::error::InvalidCloudWatchLogsRoleArnException),
293    /// <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>
294    /// <p>You can:</p>
295    /// <ul>
296    /// <li>
297    /// <p>Specify a valid number of event selectors (1 to 5) for a trail.</p></li>
298    /// <li>
299    /// <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>
300    /// <li>
301    /// <p>Specify up to 500 values for all conditions in all advanced event selectors for a trail.</p></li>
302    /// <li>
303    /// <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>
304    /// </ul>
305    InvalidEventSelectorsException(crate::types::error::InvalidEventSelectorsException),
306    /// <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>
307    InvalidHomeRegionException(crate::types::error::InvalidHomeRegionException),
308    /// <p>This exception is thrown when the KMS key ARN is not valid.</p>
309    InvalidKmsKeyIdException(crate::types::error::InvalidKmsKeyIdException),
310    /// <p>This exception is thrown when the combination of parameters provided is not valid.</p>
311    InvalidParameterCombinationException(crate::types::error::InvalidParameterCombinationException),
312    /// <p>The request includes a parameter that is not valid.</p>
313    InvalidParameterException(crate::types::error::InvalidParameterException),
314    /// <p>This exception is thrown when the provided S3 bucket name is not valid.</p>
315    InvalidS3BucketNameException(crate::types::error::InvalidS3BucketNameException),
316    /// <p>This exception is thrown when the provided S3 prefix is not valid.</p>
317    InvalidS3PrefixException(crate::types::error::InvalidS3PrefixException),
318    /// <p>This exception is thrown when the provided SNS topic name is not valid.</p>
319    InvalidSnsTopicNameException(crate::types::error::InvalidSnsTopicNameException),
320    /// <p>This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements:</p>
321    /// <ul>
322    /// <li>
323    /// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-)</p></li>
324    /// <li>
325    /// <p>Start with a letter or number, and end with a letter or number</p></li>
326    /// <li>
327    /// <p>Be between 3 and 128 characters</p></li>
328    /// <li>
329    /// <p>Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are not valid.</p></li>
330    /// <li>
331    /// <p>Not be in IP address format (for example, 192.168.5.4)</p></li>
332    /// </ul>
333    InvalidTrailNameException(crate::types::error::InvalidTrailNameException),
334    /// <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>
335    KmsException(crate::types::error::KmsException),
336    /// <p>This exception is no longer in use.</p>
337    #[deprecated]
338    KmsKeyDisabledException(crate::types::error::KmsKeyDisabledException),
339    /// <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>
340    KmsKeyNotFoundException(crate::types::error::KmsKeyNotFoundException),
341    /// <p>This exception is thrown when the management account does not have a service-linked role.</p>
342    NoManagementAccountSlrExistsException(crate::types::error::NoManagementAccountSlrExistsException),
343    /// <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>
344    NotOrganizationMasterAccountException(crate::types::error::NotOrganizationMasterAccountException),
345    /// <p>This exception is thrown when the requested operation is not permitted.</p>
346    OperationNotPermittedException(crate::types::error::OperationNotPermittedException),
347    /// <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>
348    OrganizationNotInAllFeaturesModeException(crate::types::error::OrganizationNotInAllFeaturesModeException),
349    /// <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>
350    OrganizationsNotInUseException(crate::types::error::OrganizationsNotInUseException),
351    /// <p>This exception is thrown when the specified S3 bucket does not exist.</p>
352    S3BucketDoesNotExistException(crate::types::error::S3BucketDoesNotExistException),
353    /// <p>This exception is thrown when the request rate exceeds the limit.</p>
354    ThrottlingException(crate::types::error::ThrottlingException),
355    /// <p>This exception is thrown when the trail with the given name is not found.</p>
356    TrailNotFoundException(crate::types::error::TrailNotFoundException),
357    /// <p>This exception is no longer in use.</p>
358    TrailNotProvidedException(crate::types::error::TrailNotProvidedException),
359    /// <p>This exception is thrown when the requested operation is not supported.</p>
360    UnsupportedOperationException(crate::types::error::UnsupportedOperationException),
361    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
362    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
363    variable wildcard pattern and check `.code()`:
364     \
365    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
366     \
367    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-UpdateTrailError) for what information is available for the error.")]
368    Unhandled(crate::error::sealed_unhandled::Unhandled),
369}
370impl UpdateTrailError {
371    /// Creates the `UpdateTrailError::Unhandled` variant from any error type.
372    pub fn unhandled(
373        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
374    ) -> Self {
375        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
376            source: err.into(),
377            meta: ::std::default::Default::default(),
378        })
379    }
380
381    /// Creates the `UpdateTrailError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
382    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
383        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
384            source: err.clone().into(),
385            meta: err,
386        })
387    }
388    ///
389    /// Returns error metadata, which includes the error code, message,
390    /// request ID, and potentially additional information.
391    ///
392    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
393        match self {
394            Self::CloudTrailAccessNotEnabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
395            Self::CloudTrailArnInvalidException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
396            Self::CloudTrailInvalidClientTokenIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
397            Self::CloudWatchLogsDeliveryUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
398            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
399            Self::InsufficientDependencyServiceAccessPermissionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
400            Self::InsufficientEncryptionPolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
401            Self::InsufficientS3BucketPolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
402            Self::InsufficientSnsTopicPolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
403            Self::InvalidCloudWatchLogsLogGroupArnException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
404            Self::InvalidCloudWatchLogsRoleArnException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
405            Self::InvalidEventSelectorsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
406            Self::InvalidHomeRegionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
407            Self::InvalidKmsKeyIdException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
408            Self::InvalidParameterCombinationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
409            Self::InvalidParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
410            Self::InvalidS3BucketNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
411            Self::InvalidS3PrefixException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
412            Self::InvalidSnsTopicNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
413            Self::InvalidTrailNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
414            Self::KmsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
415            Self::KmsKeyDisabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
416            Self::KmsKeyNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
417            Self::NoManagementAccountSlrExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
418            Self::NotOrganizationMasterAccountException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
419            Self::OperationNotPermittedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
420            Self::OrganizationNotInAllFeaturesModeException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
421            Self::OrganizationsNotInUseException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
422            Self::S3BucketDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
423            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
424            Self::TrailNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
425            Self::TrailNotProvidedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
426            Self::UnsupportedOperationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
427            Self::Unhandled(e) => &e.meta,
428        }
429    }
430    /// Returns `true` if the error kind is `UpdateTrailError::CloudTrailAccessNotEnabledException`.
431    pub fn is_cloud_trail_access_not_enabled_exception(&self) -> bool {
432        matches!(self, Self::CloudTrailAccessNotEnabledException(_))
433    }
434    /// Returns `true` if the error kind is `UpdateTrailError::CloudTrailArnInvalidException`.
435    pub fn is_cloud_trail_arn_invalid_exception(&self) -> bool {
436        matches!(self, Self::CloudTrailArnInvalidException(_))
437    }
438    /// Returns `true` if the error kind is `UpdateTrailError::CloudTrailInvalidClientTokenIdException`.
439    pub fn is_cloud_trail_invalid_client_token_id_exception(&self) -> bool {
440        matches!(self, Self::CloudTrailInvalidClientTokenIdException(_))
441    }
442    /// Returns `true` if the error kind is `UpdateTrailError::CloudWatchLogsDeliveryUnavailableException`.
443    pub fn is_cloud_watch_logs_delivery_unavailable_exception(&self) -> bool {
444        matches!(self, Self::CloudWatchLogsDeliveryUnavailableException(_))
445    }
446    /// Returns `true` if the error kind is `UpdateTrailError::ConflictException`.
447    pub fn is_conflict_exception(&self) -> bool {
448        matches!(self, Self::ConflictException(_))
449    }
450    /// Returns `true` if the error kind is `UpdateTrailError::InsufficientDependencyServiceAccessPermissionException`.
451    pub fn is_insufficient_dependency_service_access_permission_exception(&self) -> bool {
452        matches!(self, Self::InsufficientDependencyServiceAccessPermissionException(_))
453    }
454    /// Returns `true` if the error kind is `UpdateTrailError::InsufficientEncryptionPolicyException`.
455    pub fn is_insufficient_encryption_policy_exception(&self) -> bool {
456        matches!(self, Self::InsufficientEncryptionPolicyException(_))
457    }
458    /// Returns `true` if the error kind is `UpdateTrailError::InsufficientS3BucketPolicyException`.
459    pub fn is_insufficient_s3_bucket_policy_exception(&self) -> bool {
460        matches!(self, Self::InsufficientS3BucketPolicyException(_))
461    }
462    /// Returns `true` if the error kind is `UpdateTrailError::InsufficientSnsTopicPolicyException`.
463    pub fn is_insufficient_sns_topic_policy_exception(&self) -> bool {
464        matches!(self, Self::InsufficientSnsTopicPolicyException(_))
465    }
466    /// Returns `true` if the error kind is `UpdateTrailError::InvalidCloudWatchLogsLogGroupArnException`.
467    pub fn is_invalid_cloud_watch_logs_log_group_arn_exception(&self) -> bool {
468        matches!(self, Self::InvalidCloudWatchLogsLogGroupArnException(_))
469    }
470    /// Returns `true` if the error kind is `UpdateTrailError::InvalidCloudWatchLogsRoleArnException`.
471    pub fn is_invalid_cloud_watch_logs_role_arn_exception(&self) -> bool {
472        matches!(self, Self::InvalidCloudWatchLogsRoleArnException(_))
473    }
474    /// Returns `true` if the error kind is `UpdateTrailError::InvalidEventSelectorsException`.
475    pub fn is_invalid_event_selectors_exception(&self) -> bool {
476        matches!(self, Self::InvalidEventSelectorsException(_))
477    }
478    /// Returns `true` if the error kind is `UpdateTrailError::InvalidHomeRegionException`.
479    pub fn is_invalid_home_region_exception(&self) -> bool {
480        matches!(self, Self::InvalidHomeRegionException(_))
481    }
482    /// Returns `true` if the error kind is `UpdateTrailError::InvalidKmsKeyIdException`.
483    pub fn is_invalid_kms_key_id_exception(&self) -> bool {
484        matches!(self, Self::InvalidKmsKeyIdException(_))
485    }
486    /// Returns `true` if the error kind is `UpdateTrailError::InvalidParameterCombinationException`.
487    pub fn is_invalid_parameter_combination_exception(&self) -> bool {
488        matches!(self, Self::InvalidParameterCombinationException(_))
489    }
490    /// Returns `true` if the error kind is `UpdateTrailError::InvalidParameterException`.
491    pub fn is_invalid_parameter_exception(&self) -> bool {
492        matches!(self, Self::InvalidParameterException(_))
493    }
494    /// Returns `true` if the error kind is `UpdateTrailError::InvalidS3BucketNameException`.
495    pub fn is_invalid_s3_bucket_name_exception(&self) -> bool {
496        matches!(self, Self::InvalidS3BucketNameException(_))
497    }
498    /// Returns `true` if the error kind is `UpdateTrailError::InvalidS3PrefixException`.
499    pub fn is_invalid_s3_prefix_exception(&self) -> bool {
500        matches!(self, Self::InvalidS3PrefixException(_))
501    }
502    /// Returns `true` if the error kind is `UpdateTrailError::InvalidSnsTopicNameException`.
503    pub fn is_invalid_sns_topic_name_exception(&self) -> bool {
504        matches!(self, Self::InvalidSnsTopicNameException(_))
505    }
506    /// Returns `true` if the error kind is `UpdateTrailError::InvalidTrailNameException`.
507    pub fn is_invalid_trail_name_exception(&self) -> bool {
508        matches!(self, Self::InvalidTrailNameException(_))
509    }
510    /// Returns `true` if the error kind is `UpdateTrailError::KmsException`.
511    pub fn is_kms_exception(&self) -> bool {
512        matches!(self, Self::KmsException(_))
513    }
514    /// Returns `true` if the error kind is `UpdateTrailError::KmsKeyDisabledException`.
515    pub fn is_kms_key_disabled_exception(&self) -> bool {
516        matches!(self, Self::KmsKeyDisabledException(_))
517    }
518    /// Returns `true` if the error kind is `UpdateTrailError::KmsKeyNotFoundException`.
519    pub fn is_kms_key_not_found_exception(&self) -> bool {
520        matches!(self, Self::KmsKeyNotFoundException(_))
521    }
522    /// Returns `true` if the error kind is `UpdateTrailError::NoManagementAccountSlrExistsException`.
523    pub fn is_no_management_account_slr_exists_exception(&self) -> bool {
524        matches!(self, Self::NoManagementAccountSlrExistsException(_))
525    }
526    /// Returns `true` if the error kind is `UpdateTrailError::NotOrganizationMasterAccountException`.
527    pub fn is_not_organization_master_account_exception(&self) -> bool {
528        matches!(self, Self::NotOrganizationMasterAccountException(_))
529    }
530    /// Returns `true` if the error kind is `UpdateTrailError::OperationNotPermittedException`.
531    pub fn is_operation_not_permitted_exception(&self) -> bool {
532        matches!(self, Self::OperationNotPermittedException(_))
533    }
534    /// Returns `true` if the error kind is `UpdateTrailError::OrganizationNotInAllFeaturesModeException`.
535    pub fn is_organization_not_in_all_features_mode_exception(&self) -> bool {
536        matches!(self, Self::OrganizationNotInAllFeaturesModeException(_))
537    }
538    /// Returns `true` if the error kind is `UpdateTrailError::OrganizationsNotInUseException`.
539    pub fn is_organizations_not_in_use_exception(&self) -> bool {
540        matches!(self, Self::OrganizationsNotInUseException(_))
541    }
542    /// Returns `true` if the error kind is `UpdateTrailError::S3BucketDoesNotExistException`.
543    pub fn is_s3_bucket_does_not_exist_exception(&self) -> bool {
544        matches!(self, Self::S3BucketDoesNotExistException(_))
545    }
546    /// Returns `true` if the error kind is `UpdateTrailError::ThrottlingException`.
547    pub fn is_throttling_exception(&self) -> bool {
548        matches!(self, Self::ThrottlingException(_))
549    }
550    /// Returns `true` if the error kind is `UpdateTrailError::TrailNotFoundException`.
551    pub fn is_trail_not_found_exception(&self) -> bool {
552        matches!(self, Self::TrailNotFoundException(_))
553    }
554    /// Returns `true` if the error kind is `UpdateTrailError::TrailNotProvidedException`.
555    pub fn is_trail_not_provided_exception(&self) -> bool {
556        matches!(self, Self::TrailNotProvidedException(_))
557    }
558    /// Returns `true` if the error kind is `UpdateTrailError::UnsupportedOperationException`.
559    pub fn is_unsupported_operation_exception(&self) -> bool {
560        matches!(self, Self::UnsupportedOperationException(_))
561    }
562}
563impl ::std::error::Error for UpdateTrailError {
564    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
565        match self {
566            Self::CloudTrailAccessNotEnabledException(_inner) => ::std::option::Option::Some(_inner),
567            Self::CloudTrailArnInvalidException(_inner) => ::std::option::Option::Some(_inner),
568            Self::CloudTrailInvalidClientTokenIdException(_inner) => ::std::option::Option::Some(_inner),
569            Self::CloudWatchLogsDeliveryUnavailableException(_inner) => ::std::option::Option::Some(_inner),
570            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
571            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => ::std::option::Option::Some(_inner),
572            Self::InsufficientEncryptionPolicyException(_inner) => ::std::option::Option::Some(_inner),
573            Self::InsufficientS3BucketPolicyException(_inner) => ::std::option::Option::Some(_inner),
574            Self::InsufficientSnsTopicPolicyException(_inner) => ::std::option::Option::Some(_inner),
575            Self::InvalidCloudWatchLogsLogGroupArnException(_inner) => ::std::option::Option::Some(_inner),
576            Self::InvalidCloudWatchLogsRoleArnException(_inner) => ::std::option::Option::Some(_inner),
577            Self::InvalidEventSelectorsException(_inner) => ::std::option::Option::Some(_inner),
578            Self::InvalidHomeRegionException(_inner) => ::std::option::Option::Some(_inner),
579            Self::InvalidKmsKeyIdException(_inner) => ::std::option::Option::Some(_inner),
580            Self::InvalidParameterCombinationException(_inner) => ::std::option::Option::Some(_inner),
581            Self::InvalidParameterException(_inner) => ::std::option::Option::Some(_inner),
582            Self::InvalidS3BucketNameException(_inner) => ::std::option::Option::Some(_inner),
583            Self::InvalidS3PrefixException(_inner) => ::std::option::Option::Some(_inner),
584            Self::InvalidSnsTopicNameException(_inner) => ::std::option::Option::Some(_inner),
585            Self::InvalidTrailNameException(_inner) => ::std::option::Option::Some(_inner),
586            Self::KmsException(_inner) => ::std::option::Option::Some(_inner),
587            Self::KmsKeyDisabledException(_inner) => ::std::option::Option::Some(_inner),
588            Self::KmsKeyNotFoundException(_inner) => ::std::option::Option::Some(_inner),
589            Self::NoManagementAccountSlrExistsException(_inner) => ::std::option::Option::Some(_inner),
590            Self::NotOrganizationMasterAccountException(_inner) => ::std::option::Option::Some(_inner),
591            Self::OperationNotPermittedException(_inner) => ::std::option::Option::Some(_inner),
592            Self::OrganizationNotInAllFeaturesModeException(_inner) => ::std::option::Option::Some(_inner),
593            Self::OrganizationsNotInUseException(_inner) => ::std::option::Option::Some(_inner),
594            Self::S3BucketDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
595            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
596            Self::TrailNotFoundException(_inner) => ::std::option::Option::Some(_inner),
597            Self::TrailNotProvidedException(_inner) => ::std::option::Option::Some(_inner),
598            Self::UnsupportedOperationException(_inner) => ::std::option::Option::Some(_inner),
599            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
600        }
601    }
602}
603impl ::std::fmt::Display for UpdateTrailError {
604    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
605        match self {
606            Self::CloudTrailAccessNotEnabledException(_inner) => _inner.fmt(f),
607            Self::CloudTrailArnInvalidException(_inner) => _inner.fmt(f),
608            Self::CloudTrailInvalidClientTokenIdException(_inner) => _inner.fmt(f),
609            Self::CloudWatchLogsDeliveryUnavailableException(_inner) => _inner.fmt(f),
610            Self::ConflictException(_inner) => _inner.fmt(f),
611            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => _inner.fmt(f),
612            Self::InsufficientEncryptionPolicyException(_inner) => _inner.fmt(f),
613            Self::InsufficientS3BucketPolicyException(_inner) => _inner.fmt(f),
614            Self::InsufficientSnsTopicPolicyException(_inner) => _inner.fmt(f),
615            Self::InvalidCloudWatchLogsLogGroupArnException(_inner) => _inner.fmt(f),
616            Self::InvalidCloudWatchLogsRoleArnException(_inner) => _inner.fmt(f),
617            Self::InvalidEventSelectorsException(_inner) => _inner.fmt(f),
618            Self::InvalidHomeRegionException(_inner) => _inner.fmt(f),
619            Self::InvalidKmsKeyIdException(_inner) => _inner.fmt(f),
620            Self::InvalidParameterCombinationException(_inner) => _inner.fmt(f),
621            Self::InvalidParameterException(_inner) => _inner.fmt(f),
622            Self::InvalidS3BucketNameException(_inner) => _inner.fmt(f),
623            Self::InvalidS3PrefixException(_inner) => _inner.fmt(f),
624            Self::InvalidSnsTopicNameException(_inner) => _inner.fmt(f),
625            Self::InvalidTrailNameException(_inner) => _inner.fmt(f),
626            Self::KmsException(_inner) => _inner.fmt(f),
627            Self::KmsKeyDisabledException(_inner) => _inner.fmt(f),
628            Self::KmsKeyNotFoundException(_inner) => _inner.fmt(f),
629            Self::NoManagementAccountSlrExistsException(_inner) => _inner.fmt(f),
630            Self::NotOrganizationMasterAccountException(_inner) => _inner.fmt(f),
631            Self::OperationNotPermittedException(_inner) => _inner.fmt(f),
632            Self::OrganizationNotInAllFeaturesModeException(_inner) => _inner.fmt(f),
633            Self::OrganizationsNotInUseException(_inner) => _inner.fmt(f),
634            Self::S3BucketDoesNotExistException(_inner) => _inner.fmt(f),
635            Self::ThrottlingException(_inner) => _inner.fmt(f),
636            Self::TrailNotFoundException(_inner) => _inner.fmt(f),
637            Self::TrailNotProvidedException(_inner) => _inner.fmt(f),
638            Self::UnsupportedOperationException(_inner) => _inner.fmt(f),
639            Self::Unhandled(_inner) => {
640                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
641                    write!(f, "unhandled error ({code})")
642                } else {
643                    f.write_str("unhandled error")
644                }
645            }
646        }
647    }
648}
649impl ::aws_smithy_types::retry::ProvideErrorKind for UpdateTrailError {
650    fn code(&self) -> ::std::option::Option<&str> {
651        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
652    }
653    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
654        ::std::option::Option::None
655    }
656}
657impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UpdateTrailError {
658    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
659        match self {
660            Self::CloudTrailAccessNotEnabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
661            Self::CloudTrailArnInvalidException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
662            Self::CloudTrailInvalidClientTokenIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
663            Self::CloudWatchLogsDeliveryUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
664            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
665            Self::InsufficientDependencyServiceAccessPermissionException(_inner) => {
666                ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner)
667            }
668            Self::InsufficientEncryptionPolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
669            Self::InsufficientS3BucketPolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
670            Self::InsufficientSnsTopicPolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
671            Self::InvalidCloudWatchLogsLogGroupArnException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
672            Self::InvalidCloudWatchLogsRoleArnException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
673            Self::InvalidEventSelectorsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
674            Self::InvalidHomeRegionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
675            Self::InvalidKmsKeyIdException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
676            Self::InvalidParameterCombinationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
677            Self::InvalidParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
678            Self::InvalidS3BucketNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
679            Self::InvalidS3PrefixException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
680            Self::InvalidSnsTopicNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
681            Self::InvalidTrailNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
682            Self::KmsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
683            Self::KmsKeyDisabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
684            Self::KmsKeyNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
685            Self::NoManagementAccountSlrExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
686            Self::NotOrganizationMasterAccountException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
687            Self::OperationNotPermittedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
688            Self::OrganizationNotInAllFeaturesModeException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
689            Self::OrganizationsNotInUseException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
690            Self::S3BucketDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
691            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
692            Self::TrailNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
693            Self::TrailNotProvidedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
694            Self::UnsupportedOperationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
695            Self::Unhandled(_inner) => &_inner.meta,
696        }
697    }
698}
699impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UpdateTrailError {
700    fn create_unhandled_error(
701        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
702        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
703    ) -> Self {
704        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
705            source,
706            meta: meta.unwrap_or_default(),
707        })
708    }
709}
710impl ::aws_types::request_id::RequestId for crate::operation::update_trail::UpdateTrailError {
711    fn request_id(&self) -> Option<&str> {
712        self.meta().request_id()
713    }
714}
715
716pub use crate::operation::update_trail::_update_trail_input::UpdateTrailInput;
717
718pub use crate::operation::update_trail::_update_trail_output::UpdateTrailOutput;
719
720mod _update_trail_input;
721
722mod _update_trail_output;
723
724/// Builders
725pub mod builders;