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