Skip to main content

aws_sdk_observabilityadmin/operation/
update_telemetry_rule.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `UpdateTelemetryRule`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct UpdateTelemetryRule;
6impl UpdateTelemetryRule {
7    /// Creates a new `UpdateTelemetryRule`
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_telemetry_rule::UpdateTelemetryRuleInput,
14    ) -> ::std::result::Result<
15        crate::operation::update_telemetry_rule::UpdateTelemetryRuleOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::update_telemetry_rule::UpdateTelemetryRuleError,
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_telemetry_rule::UpdateTelemetryRuleError>()
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_telemetry_rule::UpdateTelemetryRuleOutput>()
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_telemetry_rule::UpdateTelemetryRuleInput,
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(
55            "ObservabilityAdmin",
56            "UpdateTelemetryRule",
57            input,
58            runtime_plugins,
59            stop_point,
60        )
61        // Create a parent span for the entire operation. Includes a random, internal-only,
62        // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
63        .instrument(::tracing::debug_span!(
64            "ObservabilityAdmin.UpdateTelemetryRule",
65            "rpc.service" = "ObservabilityAdmin",
66            "rpc.method" = "UpdateTelemetryRule",
67            "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
68            "rpc.system" = "aws-api",
69        ))
70        .await
71    }
72
73    pub(crate) fn operation_runtime_plugins(
74        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
75        client_config: &crate::config::Config,
76        config_override: ::std::option::Option<crate::config::Builder>,
77    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
78        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
79
80        if let ::std::option::Option::Some(config_override) = config_override {
81            for plugin in config_override.runtime_plugins.iter().cloned() {
82                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
83            }
84            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
85                config_override,
86                client_config.config.clone(),
87                &client_config.runtime_components,
88            ));
89        }
90        runtime_plugins
91    }
92}
93impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for UpdateTelemetryRule {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("UpdateTelemetryRule");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            UpdateTelemetryRuleRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            UpdateTelemetryRuleResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("UpdateTelemetryRule")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "UpdateTelemetryRule",
113            "ObservabilityAdmin",
114        ));
115        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
116        signing_options.double_uri_encode = true;
117        signing_options.content_sha256_header = false;
118        signing_options.normalize_uri_path = true;
119        signing_options.payload_override = None;
120
121        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
122            signing_options,
123            ..::std::default::Default::default()
124        });
125
126        ::std::option::Option::Some(cfg.freeze())
127    }
128
129    fn runtime_components(
130        &self,
131        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
132    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
133        #[allow(unused_mut)]
134        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("UpdateTelemetryRule")
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                UpdateTelemetryRuleTelemetryInputCaptureInterceptor,
137            ))
138            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
139                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
140            ))
141            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
142                UpdateTelemetryRuleEndpointParamsInterceptor,
143            ))
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
145                crate::operation::update_telemetry_rule::UpdateTelemetryRuleError,
146            >::new())
147            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
148                crate::operation::update_telemetry_rule::UpdateTelemetryRuleError,
149            >::new())
150            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
151                crate::operation::update_telemetry_rule::UpdateTelemetryRuleError,
152            >::new())
153            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
154                crate::operation::update_telemetry_rule::UpdateTelemetryRuleError,
155            >::new());
156
157        ::std::borrow::Cow::Owned(rcb)
158    }
159}
160
161#[derive(Debug)]
162struct UpdateTelemetryRuleTelemetryInputCaptureInterceptor;
163
164#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
165impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateTelemetryRuleTelemetryInputCaptureInterceptor {
166    fn name(&self) -> &'static str {
167        "UpdateTelemetryRuleTelemetryInputCaptureInterceptor"
168    }
169
170    fn read_before_execution(
171        &self,
172        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
173            '_,
174            ::aws_smithy_runtime_api::client::interceptors::context::Input,
175            ::aws_smithy_runtime_api::client::interceptors::context::Output,
176            ::aws_smithy_runtime_api::client::interceptors::context::Error,
177        >,
178        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
179    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
180        // Nothing to do unless the customer opted in by naming members to record.
181        let ::std::option::Option::Some(requested) = cfg
182            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
183            .filter(|r| !r.is_empty())
184        else {
185            return ::std::result::Result::Ok(());
186        };
187
188        let ::std::option::Option::Some(input) = context.input().downcast_ref::<UpdateTelemetryRuleInput>() else {
189            // A mismatched input is not this interceptor's concern; skip quietly.
190            return ::std::result::Result::Ok(());
191        };
192
193        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
194        if requested.should_capture("RuleIdentifier") {
195            if let ::std::option::Option::Some(value) = input.rule_identifier.as_deref() {
196                captured.insert("RuleIdentifier", value);
197            }
198        }
199
200        cfg.interceptor_state().store_put(captured);
201        ::std::result::Result::Ok(())
202    }
203}
204#[derive(Debug)]
205struct UpdateTelemetryRuleResponseDeserializer;
206impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UpdateTelemetryRuleResponseDeserializer {
207    fn deserialize_nonstreaming_with_config(
208        &self,
209        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
210        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
211    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
212        let (success, status) = (response.status().is_success(), response.status().as_u16());
213        let headers = response.headers();
214        let body = response.body().bytes().expect("body loaded");
215        #[allow(unused_mut)]
216        let mut force_error = false;
217        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
218        let parse_result = if !success && status != 200 || force_error {
219            crate::protocol_serde::shape_update_telemetry_rule::de_update_telemetry_rule_http_error(status, headers, body)
220        } else {
221            crate::protocol_serde::shape_update_telemetry_rule::de_update_telemetry_rule_http_response(status, headers, body)
222        };
223        crate::protocol_serde::type_erase_result(parse_result)
224    }
225}
226#[derive(Debug)]
227struct UpdateTelemetryRuleRequestSerializer;
228impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UpdateTelemetryRuleRequestSerializer {
229    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
230    fn serialize_input(
231        &self,
232        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
233        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
234    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
235        let input = input
236            .downcast::<crate::operation::update_telemetry_rule::UpdateTelemetryRuleInput>()
237            .expect("correct type");
238        let _header_serialization_settings = _cfg
239            .load::<crate::serialization_settings::HeaderSerializationSettings>()
240            .cloned()
241            .unwrap_or_default();
242        let mut request_builder = {
243            #[allow(clippy::uninlined_format_args)]
244            fn uri_base(
245                _input: &crate::operation::update_telemetry_rule::UpdateTelemetryRuleInput,
246                output: &mut ::std::string::String,
247            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
248                use ::std::fmt::Write as _;
249                ::std::write!(output, "/UpdateTelemetryRule").expect("formatting should succeed");
250                ::std::result::Result::Ok(())
251            }
252            #[allow(clippy::unnecessary_wraps)]
253            fn update_http_builder(
254                input: &crate::operation::update_telemetry_rule::UpdateTelemetryRuleInput,
255                builder: ::http_1x::request::Builder,
256            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
257                let mut uri = ::std::string::String::new();
258                uri_base(input, &mut uri)?;
259                ::std::result::Result::Ok(builder.method("POST").uri(uri))
260            }
261            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
262            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/json");
263            builder
264        };
265        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_update_telemetry_rule::ser_update_telemetry_rule_input(
266            &input,
267        )?);
268        if let Some(content_length) = body.content_length() {
269            let content_length = content_length.to_string();
270            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
271        }
272        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
273    }
274}
275#[derive(Debug)]
276struct UpdateTelemetryRuleEndpointParamsInterceptor;
277
278#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
279impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateTelemetryRuleEndpointParamsInterceptor {
280    fn name(&self) -> &'static str {
281        "UpdateTelemetryRuleEndpointParamsInterceptor"
282    }
283
284    fn read_before_execution(
285        &self,
286        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
287            '_,
288            ::aws_smithy_runtime_api::client::interceptors::context::Input,
289            ::aws_smithy_runtime_api::client::interceptors::context::Output,
290            ::aws_smithy_runtime_api::client::interceptors::context::Error,
291        >,
292        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
293    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
294        let _input = context
295            .input()
296            .downcast_ref::<UpdateTelemetryRuleInput>()
297            .ok_or("failed to downcast to UpdateTelemetryRuleInput")?;
298
299        let params = crate::config::endpoint::Params::builder()
300            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
301            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
302            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
303            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
304            .build()
305            .map_err(|err| {
306                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
307            })?;
308        cfg.interceptor_state()
309            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
310        ::std::result::Result::Ok(())
311    }
312}
313
314// The get_* functions below are generated from JMESPath expressions in the
315// operationContextParams trait. They target the operation's input shape.
316
317/// Error type for the `UpdateTelemetryRuleError` operation.
318#[non_exhaustive]
319#[derive(::std::fmt::Debug)]
320pub enum UpdateTelemetryRuleError {
321    /// <p>Indicates you don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html">Access management for Amazon Web Services resources</a> in the IAM user guide.</p>
322    AccessDeniedException(crate::types::error::AccessDeniedException),
323    /// <p>The requested operation conflicts with the current state of the specified resource or with another request.</p>
324    ConflictException(crate::types::error::ConflictException),
325    /// <p>Indicates the request has failed to process because of an unknown server error, exception, or failure.</p>
326    InternalServerException(crate::types::error::InternalServerException),
327    /// <p>The specified resource (such as a telemetry rule) could not be found.</p>
328    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
329    /// <p>The requested operation would exceed the allowed quota for the specified resource type.</p>
330    ServiceQuotaExceededException(crate::types::error::ServiceQuotaExceededException),
331    /// <p>The request throughput limit was exceeded.</p>
332    TooManyRequestsException(crate::types::error::TooManyRequestsException),
333    /// <p>Indicates input validation failed. Check your request parameters and retry the request.</p>
334    ValidationException(crate::types::error::ValidationException),
335    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
336    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
337    variable wildcard pattern and check `.code()`:
338     \
339    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
340     \
341    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-UpdateTelemetryRuleError) for what information is available for the error.")]
342    Unhandled(crate::error::sealed_unhandled::Unhandled),
343}
344impl UpdateTelemetryRuleError {
345    /// Creates the `UpdateTelemetryRuleError::Unhandled` variant from any error type.
346    pub fn unhandled(
347        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
348    ) -> Self {
349        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
350            source: err.into(),
351            meta: ::std::default::Default::default(),
352        })
353    }
354
355    /// Creates the `UpdateTelemetryRuleError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
356    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
357        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
358            source: err.clone().into(),
359            meta: err,
360        })
361    }
362    ///
363    /// Returns error metadata, which includes the error code, message,
364    /// request ID, and potentially additional information.
365    ///
366    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
367        match self {
368            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
369            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
370            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
371            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
372            Self::ServiceQuotaExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
373            Self::TooManyRequestsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
374            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
375            Self::Unhandled(e) => &e.meta,
376        }
377    }
378    /// Returns `true` if the error kind is `UpdateTelemetryRuleError::AccessDeniedException`.
379    pub fn is_access_denied_exception(&self) -> bool {
380        matches!(self, Self::AccessDeniedException(_))
381    }
382    /// Returns `true` if the error kind is `UpdateTelemetryRuleError::ConflictException`.
383    pub fn is_conflict_exception(&self) -> bool {
384        matches!(self, Self::ConflictException(_))
385    }
386    /// Returns `true` if the error kind is `UpdateTelemetryRuleError::InternalServerException`.
387    pub fn is_internal_server_exception(&self) -> bool {
388        matches!(self, Self::InternalServerException(_))
389    }
390    /// Returns `true` if the error kind is `UpdateTelemetryRuleError::ResourceNotFoundException`.
391    pub fn is_resource_not_found_exception(&self) -> bool {
392        matches!(self, Self::ResourceNotFoundException(_))
393    }
394    /// Returns `true` if the error kind is `UpdateTelemetryRuleError::ServiceQuotaExceededException`.
395    pub fn is_service_quota_exceeded_exception(&self) -> bool {
396        matches!(self, Self::ServiceQuotaExceededException(_))
397    }
398    /// Returns `true` if the error kind is `UpdateTelemetryRuleError::TooManyRequestsException`.
399    pub fn is_too_many_requests_exception(&self) -> bool {
400        matches!(self, Self::TooManyRequestsException(_))
401    }
402    /// Returns `true` if the error kind is `UpdateTelemetryRuleError::ValidationException`.
403    pub fn is_validation_exception(&self) -> bool {
404        matches!(self, Self::ValidationException(_))
405    }
406}
407impl ::std::error::Error for UpdateTelemetryRuleError {
408    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
409        match self {
410            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
411            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
412            Self::InternalServerException(_inner) => ::std::option::Option::Some(_inner),
413            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
414            Self::ServiceQuotaExceededException(_inner) => ::std::option::Option::Some(_inner),
415            Self::TooManyRequestsException(_inner) => ::std::option::Option::Some(_inner),
416            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
417            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
418        }
419    }
420}
421impl ::std::fmt::Display for UpdateTelemetryRuleError {
422    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
423        match self {
424            Self::AccessDeniedException(_inner) => _inner.fmt(f),
425            Self::ConflictException(_inner) => _inner.fmt(f),
426            Self::InternalServerException(_inner) => _inner.fmt(f),
427            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
428            Self::ServiceQuotaExceededException(_inner) => _inner.fmt(f),
429            Self::TooManyRequestsException(_inner) => _inner.fmt(f),
430            Self::ValidationException(_inner) => _inner.fmt(f),
431            Self::Unhandled(_inner) => {
432                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
433                    write!(f, "unhandled error ({code})")
434                } else {
435                    f.write_str("unhandled error")
436                }
437            }
438        }
439    }
440}
441impl ::aws_smithy_types::retry::ProvideErrorKind for UpdateTelemetryRuleError {
442    fn code(&self) -> ::std::option::Option<&str> {
443        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
444    }
445    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
446        ::std::option::Option::None
447    }
448}
449impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UpdateTelemetryRuleError {
450    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
451        match self {
452            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
453            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
454            Self::InternalServerException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
455            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
456            Self::ServiceQuotaExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
457            Self::TooManyRequestsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
458            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
459            Self::Unhandled(_inner) => &_inner.meta,
460        }
461    }
462}
463impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UpdateTelemetryRuleError {
464    fn create_unhandled_error(
465        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
466        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
467    ) -> Self {
468        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
469            source,
470            meta: meta.unwrap_or_default(),
471        })
472    }
473}
474impl ::aws_types::request_id::RequestId for crate::operation::update_telemetry_rule::UpdateTelemetryRuleError {
475    fn request_id(&self) -> Option<&str> {
476        self.meta().request_id()
477    }
478}
479
480pub use crate::operation::update_telemetry_rule::_update_telemetry_rule_input::UpdateTelemetryRuleInput;
481
482pub use crate::operation::update_telemetry_rule::_update_telemetry_rule_output::UpdateTelemetryRuleOutput;
483
484mod _update_telemetry_rule_input;
485
486mod _update_telemetry_rule_output;
487
488/// Builders
489pub mod builders;