Skip to main content

aws_sdk_cloudtrail/operation/
put_insight_selectors.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `PutInsightSelectors`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct PutInsightSelectors;
6impl PutInsightSelectors {
7    /// Creates a new `PutInsightSelectors`
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::put_insight_selectors::PutInsightSelectorsInput,
14    ) -> ::std::result::Result<
15        crate::operation::put_insight_selectors::PutInsightSelectorsOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::put_insight_selectors::PutInsightSelectorsError,
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::put_insight_selectors::PutInsightSelectorsError>()
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::put_insight_selectors::PutInsightSelectorsOutput>()
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::put_insight_selectors::PutInsightSelectorsInput,
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", "PutInsightSelectors", 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.PutInsightSelectors",
59                "rpc.service" = "CloudTrail",
60                "rpc.method" = "PutInsightSelectors",
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 PutInsightSelectors {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("PutInsightSelectors");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            PutInsightSelectorsRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            PutInsightSelectorsResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("PutInsightSelectors")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
106            "PutInsightSelectors",
107            "CloudTrail",
108        ));
109        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
110        signing_options.double_uri_encode = true;
111        signing_options.content_sha256_header = false;
112        signing_options.normalize_uri_path = true;
113        signing_options.payload_override = None;
114
115        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
116            signing_options,
117            ..::std::default::Default::default()
118        });
119
120        ::std::option::Option::Some(cfg.freeze())
121    }
122
123    fn runtime_components(
124        &self,
125        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
126    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
127        #[allow(unused_mut)]
128        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("PutInsightSelectors")
129            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
130                PutInsightSelectorsTelemetryInputCaptureInterceptor,
131            ))
132            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
133                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
134            ))
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                PutInsightSelectorsEndpointParamsInterceptor,
137            ))
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
139                crate::operation::put_insight_selectors::PutInsightSelectorsError,
140            >::new())
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
142                crate::operation::put_insight_selectors::PutInsightSelectorsError,
143            >::new())
144            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
145                crate::operation::put_insight_selectors::PutInsightSelectorsError,
146            >::new());
147
148        ::std::borrow::Cow::Owned(rcb)
149    }
150}
151
152#[derive(Debug)]
153struct PutInsightSelectorsTelemetryInputCaptureInterceptor;
154
155#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
156impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutInsightSelectorsTelemetryInputCaptureInterceptor {
157    fn name(&self) -> &'static str {
158        "PutInsightSelectorsTelemetryInputCaptureInterceptor"
159    }
160
161    fn read_before_execution(
162        &self,
163        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
164            '_,
165            ::aws_smithy_runtime_api::client::interceptors::context::Input,
166            ::aws_smithy_runtime_api::client::interceptors::context::Output,
167            ::aws_smithy_runtime_api::client::interceptors::context::Error,
168        >,
169        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
170    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
171        // Nothing to do unless the customer opted in by naming members to record.
172        let ::std::option::Option::Some(requested) = cfg
173            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
174            .filter(|r| !r.is_empty())
175        else {
176            return ::std::result::Result::Ok(());
177        };
178
179        let ::std::option::Option::Some(input) = context.input().downcast_ref::<PutInsightSelectorsInput>() else {
180            // A mismatched input is not this interceptor's concern; skip quietly.
181            return ::std::result::Result::Ok(());
182        };
183
184        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
185        if requested.should_capture("TrailName") {
186            if let ::std::option::Option::Some(value) = input.trail_name.as_deref() {
187                captured.insert("TrailName", value);
188            }
189        }
190        if requested.should_capture("EventDataStore") {
191            if let ::std::option::Option::Some(value) = input.event_data_store.as_deref() {
192                captured.insert("EventDataStore", value);
193            }
194        }
195        if requested.should_capture("InsightsDestination") {
196            if let ::std::option::Option::Some(value) = input.insights_destination.as_deref() {
197                captured.insert("InsightsDestination", value);
198            }
199        }
200
201        cfg.interceptor_state().store_put(captured);
202        ::std::result::Result::Ok(())
203    }
204}
205#[derive(Debug)]
206struct PutInsightSelectorsResponseDeserializer;
207impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for PutInsightSelectorsResponseDeserializer {
208    fn deserialize_nonstreaming_with_config(
209        &self,
210        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
211        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
212    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
213        let (success, status) = (response.status().is_success(), response.status().as_u16());
214        let headers = response.headers();
215        let body = response.body().bytes().expect("body loaded");
216        #[allow(unused_mut)]
217        let mut force_error = false;
218        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
219        let parse_result = if !success && status != 200 || force_error {
220            crate::protocol_serde::shape_put_insight_selectors::de_put_insight_selectors_http_error(status, headers, body)
221        } else {
222            crate::protocol_serde::shape_put_insight_selectors::de_put_insight_selectors_http_response(status, headers, body)
223        };
224        crate::protocol_serde::type_erase_result(parse_result)
225    }
226}
227#[derive(Debug)]
228struct PutInsightSelectorsRequestSerializer;
229impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for PutInsightSelectorsRequestSerializer {
230    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
231    fn serialize_input(
232        &self,
233        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
234        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
235    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
236        let input = input
237            .downcast::<crate::operation::put_insight_selectors::PutInsightSelectorsInput>()
238            .expect("correct type");
239        let _header_serialization_settings = _cfg
240            .load::<crate::serialization_settings::HeaderSerializationSettings>()
241            .cloned()
242            .unwrap_or_default();
243        let mut request_builder = {
244            #[allow(clippy::uninlined_format_args)]
245            fn uri_base(
246                _input: &crate::operation::put_insight_selectors::PutInsightSelectorsInput,
247                output: &mut ::std::string::String,
248            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
249                use ::std::fmt::Write as _;
250                ::std::write!(output, "/").expect("formatting should succeed");
251                ::std::result::Result::Ok(())
252            }
253            #[allow(clippy::unnecessary_wraps)]
254            fn update_http_builder(
255                input: &crate::operation::put_insight_selectors::PutInsightSelectorsInput,
256                builder: ::http_1x::request::Builder,
257            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
258                let mut uri = ::std::string::String::new();
259                uri_base(input, &mut uri)?;
260                ::std::result::Result::Ok(builder.method("POST").uri(uri))
261            }
262            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
263            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
264            builder = _header_serialization_settings.set_default_header(
265                builder,
266                ::http_1x::header::HeaderName::from_static("x-amz-target"),
267                "CloudTrail_20131101.PutInsightSelectors",
268            );
269            builder
270        };
271        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_put_insight_selectors::ser_put_insight_selectors_input(
272            &input,
273        )?);
274        if let Some(content_length) = body.content_length() {
275            let content_length = content_length.to_string();
276            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
277        }
278        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
279    }
280}
281#[derive(Debug)]
282struct PutInsightSelectorsEndpointParamsInterceptor;
283
284#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
285impl ::aws_smithy_runtime_api::client::interceptors::Intercept for PutInsightSelectorsEndpointParamsInterceptor {
286    fn name(&self) -> &'static str {
287        "PutInsightSelectorsEndpointParamsInterceptor"
288    }
289
290    fn read_before_execution(
291        &self,
292        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
293            '_,
294            ::aws_smithy_runtime_api::client::interceptors::context::Input,
295            ::aws_smithy_runtime_api::client::interceptors::context::Output,
296            ::aws_smithy_runtime_api::client::interceptors::context::Error,
297        >,
298        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
299    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
300        let _input = context
301            .input()
302            .downcast_ref::<PutInsightSelectorsInput>()
303            .ok_or("failed to downcast to PutInsightSelectorsInput")?;
304
305        let params = crate::config::endpoint::Params::builder()
306            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
307            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
308            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
309            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
310            .build()
311            .map_err(|err| {
312                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
313            })?;
314        cfg.interceptor_state()
315            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
316        ::std::result::Result::Ok(())
317    }
318}
319
320// The get_* functions below are generated from JMESPath expressions in the
321// operationContextParams trait. They target the operation's input shape.
322
323/// Error type for the `PutInsightSelectorsError` operation.
324#[non_exhaustive]
325#[derive(::std::fmt::Debug)]
326pub enum PutInsightSelectorsError {
327    /// <p>This exception is thrown when an operation is called with an ARN that is not valid.</p>
328    /// <p>The following is the format of a trail ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail</code></p>
329    /// <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>
330    /// <p>The following is the format of a dashboard ARN: <code>arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash</code></p>
331    /// <p>The following is the format of a channel ARN: <code>arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890</code></p>
332    CloudTrailArnInvalidException(crate::types::error::CloudTrailArnInvalidException),
333    /// <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>
334    /// <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>
335    InsufficientEncryptionPolicyException(crate::types::error::InsufficientEncryptionPolicyException),
336    /// <p>This exception is thrown when the policy on the S3 bucket is not sufficient.</p>
337    InsufficientS3BucketPolicyException(crate::types::error::InsufficientS3BucketPolicyException),
338    /// <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>
339    InvalidHomeRegionException(crate::types::error::InvalidHomeRegionException),
340    /// <p>For <code>PutInsightSelectors</code>, this exception is thrown when the formatting or syntax of the <code>InsightSelectors</code> JSON statement is not valid, or the specified <code>InsightType</code> in the <code>InsightSelectors</code> statement is not valid. Valid values for <code>InsightType</code> are <code>ApiCallRateInsight</code> and <code>ApiErrorRateInsight</code>. To enable Insights on an event data store, the destination event data store specified by the <code>InsightsDestination</code> parameter must log Insights events and the source event data store specified by the <code>EventDataStore</code> parameter must log management events.</p>
341    /// <p>For <code>UpdateEventDataStore</code>, this exception is thrown if Insights are enabled on the event data store and the updated advanced event selectors are not compatible with the configured <code>InsightSelectors</code>. If the <code>InsightSelectors</code> includes an <code>InsightType</code> of <code>ApiCallRateInsight</code>, the source event data store must log <code>write</code> management events. If the <code>InsightSelectors</code> includes an <code>InsightType</code> of <code>ApiErrorRateInsight</code>, the source event data store must log management events.</p>
342    InvalidInsightSelectorsException(crate::types::error::InvalidInsightSelectorsException),
343    /// <p>This exception is thrown when the combination of parameters provided is not valid.</p>
344    InvalidParameterCombinationException(crate::types::error::InvalidParameterCombinationException),
345    /// <p>The request includes a parameter that is not valid.</p>
346    InvalidParameterException(crate::types::error::InvalidParameterException),
347    /// <p>This exception is thrown when the provided trail name is not valid. Trail names must meet the following requirements:</p>
348    /// <ul>
349    /// <li>
350    /// <p>Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores (_), or dashes (-)</p></li>
351    /// <li>
352    /// <p>Start with a letter or number, and end with a letter or number</p></li>
353    /// <li>
354    /// <p>Be between 3 and 128 characters</p></li>
355    /// <li>
356    /// <p>Have no adjacent periods, underscores or dashes. Names like <code>my-_namespace</code> and <code>my--namespace</code> are not valid.</p></li>
357    /// <li>
358    /// <p>Not be in IP address format (for example, 192.168.5.4)</p></li>
359    /// </ul>
360    InvalidTrailNameException(crate::types::error::InvalidTrailNameException),
361    /// <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>
362    KmsException(crate::types::error::KmsException),
363    /// <p>This exception is thrown when the management account does not have a service-linked role.</p>
364    NoManagementAccountSlrExistsException(crate::types::error::NoManagementAccountSlrExistsException),
365    /// <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>
366    NotOrganizationMasterAccountException(crate::types::error::NotOrganizationMasterAccountException),
367    /// <p>This exception is thrown when the requested operation is not permitted.</p>
368    OperationNotPermittedException(crate::types::error::OperationNotPermittedException),
369    /// <p>This exception is thrown when the specified S3 bucket does not exist.</p>
370    S3BucketDoesNotExistException(crate::types::error::S3BucketDoesNotExistException),
371    /// <p>This exception is thrown when the request rate exceeds the limit.</p>
372    ThrottlingException(crate::types::error::ThrottlingException),
373    /// <p>This exception is thrown when the trail with the given name is not found.</p>
374    TrailNotFoundException(crate::types::error::TrailNotFoundException),
375    /// <p>This exception is thrown when the requested operation is not supported.</p>
376    UnsupportedOperationException(crate::types::error::UnsupportedOperationException),
377    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
378    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
379    variable wildcard pattern and check `.code()`:
380     \
381    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
382     \
383    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-PutInsightSelectorsError) for what information is available for the error.")]
384    Unhandled(crate::error::sealed_unhandled::Unhandled),
385}
386impl PutInsightSelectorsError {
387    /// Creates the `PutInsightSelectorsError::Unhandled` variant from any error type.
388    pub fn unhandled(
389        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
390    ) -> Self {
391        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
392            source: err.into(),
393            meta: ::std::default::Default::default(),
394        })
395    }
396
397    /// Creates the `PutInsightSelectorsError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
398    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
399        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
400            source: err.clone().into(),
401            meta: err,
402        })
403    }
404    ///
405    /// Returns error metadata, which includes the error code, message,
406    /// request ID, and potentially additional information.
407    ///
408    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
409        match self {
410            Self::CloudTrailArnInvalidException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
411            Self::InsufficientEncryptionPolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
412            Self::InsufficientS3BucketPolicyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
413            Self::InvalidHomeRegionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
414            Self::InvalidInsightSelectorsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
415            Self::InvalidParameterCombinationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
416            Self::InvalidParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
417            Self::InvalidTrailNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
418            Self::KmsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
419            Self::NoManagementAccountSlrExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
420            Self::NotOrganizationMasterAccountException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
421            Self::OperationNotPermittedException(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::UnsupportedOperationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
426            Self::Unhandled(e) => &e.meta,
427        }
428    }
429    /// Returns `true` if the error kind is `PutInsightSelectorsError::CloudTrailArnInvalidException`.
430    pub fn is_cloud_trail_arn_invalid_exception(&self) -> bool {
431        matches!(self, Self::CloudTrailArnInvalidException(_))
432    }
433    /// Returns `true` if the error kind is `PutInsightSelectorsError::InsufficientEncryptionPolicyException`.
434    pub fn is_insufficient_encryption_policy_exception(&self) -> bool {
435        matches!(self, Self::InsufficientEncryptionPolicyException(_))
436    }
437    /// Returns `true` if the error kind is `PutInsightSelectorsError::InsufficientS3BucketPolicyException`.
438    pub fn is_insufficient_s3_bucket_policy_exception(&self) -> bool {
439        matches!(self, Self::InsufficientS3BucketPolicyException(_))
440    }
441    /// Returns `true` if the error kind is `PutInsightSelectorsError::InvalidHomeRegionException`.
442    pub fn is_invalid_home_region_exception(&self) -> bool {
443        matches!(self, Self::InvalidHomeRegionException(_))
444    }
445    /// Returns `true` if the error kind is `PutInsightSelectorsError::InvalidInsightSelectorsException`.
446    pub fn is_invalid_insight_selectors_exception(&self) -> bool {
447        matches!(self, Self::InvalidInsightSelectorsException(_))
448    }
449    /// Returns `true` if the error kind is `PutInsightSelectorsError::InvalidParameterCombinationException`.
450    pub fn is_invalid_parameter_combination_exception(&self) -> bool {
451        matches!(self, Self::InvalidParameterCombinationException(_))
452    }
453    /// Returns `true` if the error kind is `PutInsightSelectorsError::InvalidParameterException`.
454    pub fn is_invalid_parameter_exception(&self) -> bool {
455        matches!(self, Self::InvalidParameterException(_))
456    }
457    /// Returns `true` if the error kind is `PutInsightSelectorsError::InvalidTrailNameException`.
458    pub fn is_invalid_trail_name_exception(&self) -> bool {
459        matches!(self, Self::InvalidTrailNameException(_))
460    }
461    /// Returns `true` if the error kind is `PutInsightSelectorsError::KmsException`.
462    pub fn is_kms_exception(&self) -> bool {
463        matches!(self, Self::KmsException(_))
464    }
465    /// Returns `true` if the error kind is `PutInsightSelectorsError::NoManagementAccountSlrExistsException`.
466    pub fn is_no_management_account_slr_exists_exception(&self) -> bool {
467        matches!(self, Self::NoManagementAccountSlrExistsException(_))
468    }
469    /// Returns `true` if the error kind is `PutInsightSelectorsError::NotOrganizationMasterAccountException`.
470    pub fn is_not_organization_master_account_exception(&self) -> bool {
471        matches!(self, Self::NotOrganizationMasterAccountException(_))
472    }
473    /// Returns `true` if the error kind is `PutInsightSelectorsError::OperationNotPermittedException`.
474    pub fn is_operation_not_permitted_exception(&self) -> bool {
475        matches!(self, Self::OperationNotPermittedException(_))
476    }
477    /// Returns `true` if the error kind is `PutInsightSelectorsError::S3BucketDoesNotExistException`.
478    pub fn is_s3_bucket_does_not_exist_exception(&self) -> bool {
479        matches!(self, Self::S3BucketDoesNotExistException(_))
480    }
481    /// Returns `true` if the error kind is `PutInsightSelectorsError::ThrottlingException`.
482    pub fn is_throttling_exception(&self) -> bool {
483        matches!(self, Self::ThrottlingException(_))
484    }
485    /// Returns `true` if the error kind is `PutInsightSelectorsError::TrailNotFoundException`.
486    pub fn is_trail_not_found_exception(&self) -> bool {
487        matches!(self, Self::TrailNotFoundException(_))
488    }
489    /// Returns `true` if the error kind is `PutInsightSelectorsError::UnsupportedOperationException`.
490    pub fn is_unsupported_operation_exception(&self) -> bool {
491        matches!(self, Self::UnsupportedOperationException(_))
492    }
493}
494impl ::std::error::Error for PutInsightSelectorsError {
495    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
496        match self {
497            Self::CloudTrailArnInvalidException(_inner) => ::std::option::Option::Some(_inner),
498            Self::InsufficientEncryptionPolicyException(_inner) => ::std::option::Option::Some(_inner),
499            Self::InsufficientS3BucketPolicyException(_inner) => ::std::option::Option::Some(_inner),
500            Self::InvalidHomeRegionException(_inner) => ::std::option::Option::Some(_inner),
501            Self::InvalidInsightSelectorsException(_inner) => ::std::option::Option::Some(_inner),
502            Self::InvalidParameterCombinationException(_inner) => ::std::option::Option::Some(_inner),
503            Self::InvalidParameterException(_inner) => ::std::option::Option::Some(_inner),
504            Self::InvalidTrailNameException(_inner) => ::std::option::Option::Some(_inner),
505            Self::KmsException(_inner) => ::std::option::Option::Some(_inner),
506            Self::NoManagementAccountSlrExistsException(_inner) => ::std::option::Option::Some(_inner),
507            Self::NotOrganizationMasterAccountException(_inner) => ::std::option::Option::Some(_inner),
508            Self::OperationNotPermittedException(_inner) => ::std::option::Option::Some(_inner),
509            Self::S3BucketDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
510            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
511            Self::TrailNotFoundException(_inner) => ::std::option::Option::Some(_inner),
512            Self::UnsupportedOperationException(_inner) => ::std::option::Option::Some(_inner),
513            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
514        }
515    }
516}
517impl ::std::fmt::Display for PutInsightSelectorsError {
518    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
519        match self {
520            Self::CloudTrailArnInvalidException(_inner) => _inner.fmt(f),
521            Self::InsufficientEncryptionPolicyException(_inner) => _inner.fmt(f),
522            Self::InsufficientS3BucketPolicyException(_inner) => _inner.fmt(f),
523            Self::InvalidHomeRegionException(_inner) => _inner.fmt(f),
524            Self::InvalidInsightSelectorsException(_inner) => _inner.fmt(f),
525            Self::InvalidParameterCombinationException(_inner) => _inner.fmt(f),
526            Self::InvalidParameterException(_inner) => _inner.fmt(f),
527            Self::InvalidTrailNameException(_inner) => _inner.fmt(f),
528            Self::KmsException(_inner) => _inner.fmt(f),
529            Self::NoManagementAccountSlrExistsException(_inner) => _inner.fmt(f),
530            Self::NotOrganizationMasterAccountException(_inner) => _inner.fmt(f),
531            Self::OperationNotPermittedException(_inner) => _inner.fmt(f),
532            Self::S3BucketDoesNotExistException(_inner) => _inner.fmt(f),
533            Self::ThrottlingException(_inner) => _inner.fmt(f),
534            Self::TrailNotFoundException(_inner) => _inner.fmt(f),
535            Self::UnsupportedOperationException(_inner) => _inner.fmt(f),
536            Self::Unhandled(_inner) => {
537                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
538                    write!(f, "unhandled error ({code})")
539                } else {
540                    f.write_str("unhandled error")
541                }
542            }
543        }
544    }
545}
546impl ::aws_smithy_types::retry::ProvideErrorKind for PutInsightSelectorsError {
547    fn code(&self) -> ::std::option::Option<&str> {
548        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
549    }
550    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
551        ::std::option::Option::None
552    }
553}
554impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for PutInsightSelectorsError {
555    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
556        match self {
557            Self::CloudTrailArnInvalidException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
558            Self::InsufficientEncryptionPolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
559            Self::InsufficientS3BucketPolicyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
560            Self::InvalidHomeRegionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
561            Self::InvalidInsightSelectorsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
562            Self::InvalidParameterCombinationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
563            Self::InvalidParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
564            Self::InvalidTrailNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
565            Self::KmsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
566            Self::NoManagementAccountSlrExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
567            Self::NotOrganizationMasterAccountException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
568            Self::OperationNotPermittedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
569            Self::S3BucketDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
570            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
571            Self::TrailNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
572            Self::UnsupportedOperationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
573            Self::Unhandled(_inner) => &_inner.meta,
574        }
575    }
576}
577impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for PutInsightSelectorsError {
578    fn create_unhandled_error(
579        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
580        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
581    ) -> Self {
582        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
583            source,
584            meta: meta.unwrap_or_default(),
585        })
586    }
587}
588impl ::aws_types::request_id::RequestId for crate::operation::put_insight_selectors::PutInsightSelectorsError {
589    fn request_id(&self) -> Option<&str> {
590        self.meta().request_id()
591    }
592}
593
594pub use crate::operation::put_insight_selectors::_put_insight_selectors_input::PutInsightSelectorsInput;
595
596pub use crate::operation::put_insight_selectors::_put_insight_selectors_output::PutInsightSelectorsOutput;
597
598mod _put_insight_selectors_input;
599
600mod _put_insight_selectors_output;
601
602/// Builders
603pub mod builders;