Skip to main content

aws_sdk_observabilityadmin/operation/
stop_telemetry_evaluation_for_organization.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `StopTelemetryEvaluationForOrganization`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct StopTelemetryEvaluationForOrganization;
6impl StopTelemetryEvaluationForOrganization {
7    /// Creates a new `StopTelemetryEvaluationForOrganization`
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::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationInput,
14    ) -> ::std::result::Result<
15        crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError,
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::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError>()
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::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationOutput>()
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::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationInput,
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            "StopTelemetryEvaluationForOrganization",
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.StopTelemetryEvaluationForOrganization",
65            "rpc.service" = "ObservabilityAdmin",
66            "rpc.method" = "StopTelemetryEvaluationForOrganization",
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 StopTelemetryEvaluationForOrganization {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("StopTelemetryEvaluationForOrganization");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            StopTelemetryEvaluationForOrganizationRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            StopTelemetryEvaluationForOrganizationResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("StopTelemetryEvaluationForOrganization")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "StopTelemetryEvaluationForOrganization",
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("StopTelemetryEvaluationForOrganization")
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
137            ))
138            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
139                StopTelemetryEvaluationForOrganizationEndpointParamsInterceptor,
140            ))
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
142                crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError,
143            >::new())
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
145                crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError,
146            >::new())
147            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
148                crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError,
149            >::new());
150
151        ::std::borrow::Cow::Owned(rcb)
152    }
153}
154
155#[derive(Debug)]
156struct StopTelemetryEvaluationForOrganizationResponseDeserializer;
157impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for StopTelemetryEvaluationForOrganizationResponseDeserializer {
158    fn deserialize_nonstreaming(
159        &self,
160        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
161    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
162        let (success, status) = (response.status().is_success(), response.status().as_u16());
163        let headers = response.headers();
164        let body = response.body().bytes().expect("body loaded");
165        #[allow(unused_mut)]
166        let mut force_error = false;
167        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
168        let parse_result = if !success && status != 200 || force_error {
169            crate::protocol_serde::shape_stop_telemetry_evaluation_for_organization::de_stop_telemetry_evaluation_for_organization_http_error(
170                status, headers, body,
171            )
172        } else {
173            crate::protocol_serde::shape_stop_telemetry_evaluation_for_organization::de_stop_telemetry_evaluation_for_organization_http_response(
174                status, headers, body,
175            )
176        };
177        crate::protocol_serde::type_erase_result(parse_result)
178    }
179}
180#[derive(Debug)]
181struct StopTelemetryEvaluationForOrganizationRequestSerializer;
182impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for StopTelemetryEvaluationForOrganizationRequestSerializer {
183    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
184    fn serialize_input(
185        &self,
186        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
187        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
188    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
189        let input = input
190            .downcast::<crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationInput>()
191            .expect("correct type");
192        let _header_serialization_settings = _cfg
193            .load::<crate::serialization_settings::HeaderSerializationSettings>()
194            .cloned()
195            .unwrap_or_default();
196        let mut request_builder = {
197            #[allow(clippy::uninlined_format_args)]
198            fn uri_base(
199                _input: &crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationInput,
200                output: &mut ::std::string::String,
201            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
202                use ::std::fmt::Write as _;
203                ::std::write!(output, "/StopTelemetryEvaluationForOrganization").expect("formatting should succeed");
204                ::std::result::Result::Ok(())
205            }
206            #[allow(clippy::unnecessary_wraps)]
207            fn update_http_builder(
208                input: &crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationInput,
209                builder: ::http_1x::request::Builder,
210            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
211                let mut uri = ::std::string::String::new();
212                uri_base(input, &mut uri)?;
213                ::std::result::Result::Ok(builder.method("POST").uri(uri))
214            }
215            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
216            builder
217        };
218        let body = ::aws_smithy_types::body::SdkBody::from("");
219
220        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
221    }
222}
223#[derive(Debug)]
224struct StopTelemetryEvaluationForOrganizationEndpointParamsInterceptor;
225
226#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
227impl ::aws_smithy_runtime_api::client::interceptors::Intercept for StopTelemetryEvaluationForOrganizationEndpointParamsInterceptor {
228    fn name(&self) -> &'static str {
229        "StopTelemetryEvaluationForOrganizationEndpointParamsInterceptor"
230    }
231
232    fn read_before_execution(
233        &self,
234        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
235            '_,
236            ::aws_smithy_runtime_api::client::interceptors::context::Input,
237            ::aws_smithy_runtime_api::client::interceptors::context::Output,
238            ::aws_smithy_runtime_api::client::interceptors::context::Error,
239        >,
240        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
241    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
242        let _input = context
243            .input()
244            .downcast_ref::<StopTelemetryEvaluationForOrganizationInput>()
245            .ok_or("failed to downcast to StopTelemetryEvaluationForOrganizationInput")?;
246
247        let params = crate::config::endpoint::Params::builder()
248            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
249            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
250            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
251            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
252            .build()
253            .map_err(|err| {
254                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
255            })?;
256        cfg.interceptor_state()
257            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
258        ::std::result::Result::Ok(())
259    }
260}
261
262// The get_* functions below are generated from JMESPath expressions in the
263// operationContextParams trait. They target the operation's input shape.
264
265/// Error type for the `StopTelemetryEvaluationForOrganizationError` operation.
266#[non_exhaustive]
267#[derive(::std::fmt::Debug)]
268pub enum StopTelemetryEvaluationForOrganizationError {
269    /// <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>
270    AccessDeniedException(crate::types::error::AccessDeniedException),
271    /// <p>Indicates the request has failed to process because of an unknown server error, exception, or failure.</p>
272    InternalServerException(crate::types::error::InternalServerException),
273    /// <p>The request throughput limit was exceeded.</p>
274    TooManyRequestsException(crate::types::error::TooManyRequestsException),
275    /// <p>Indicates input validation failed. Check your request parameters and retry the request.</p>
276    ValidationException(crate::types::error::ValidationException),
277    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
278    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
279    variable wildcard pattern and check `.code()`:
280     \
281    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
282     \
283    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-StopTelemetryEvaluationForOrganizationError) for what information is available for the error.")]
284    Unhandled(crate::error::sealed_unhandled::Unhandled),
285}
286impl StopTelemetryEvaluationForOrganizationError {
287    /// Creates the `StopTelemetryEvaluationForOrganizationError::Unhandled` variant from any error type.
288    pub fn unhandled(
289        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
290    ) -> Self {
291        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
292            source: err.into(),
293            meta: ::std::default::Default::default(),
294        })
295    }
296
297    /// Creates the `StopTelemetryEvaluationForOrganizationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
298    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
299        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
300            source: err.clone().into(),
301            meta: err,
302        })
303    }
304    ///
305    /// Returns error metadata, which includes the error code, message,
306    /// request ID, and potentially additional information.
307    ///
308    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
309        match self {
310            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
311            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
312            Self::TooManyRequestsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
313            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
314            Self::Unhandled(e) => &e.meta,
315        }
316    }
317    /// Returns `true` if the error kind is `StopTelemetryEvaluationForOrganizationError::AccessDeniedException`.
318    pub fn is_access_denied_exception(&self) -> bool {
319        matches!(self, Self::AccessDeniedException(_))
320    }
321    /// Returns `true` if the error kind is `StopTelemetryEvaluationForOrganizationError::InternalServerException`.
322    pub fn is_internal_server_exception(&self) -> bool {
323        matches!(self, Self::InternalServerException(_))
324    }
325    /// Returns `true` if the error kind is `StopTelemetryEvaluationForOrganizationError::TooManyRequestsException`.
326    pub fn is_too_many_requests_exception(&self) -> bool {
327        matches!(self, Self::TooManyRequestsException(_))
328    }
329    /// Returns `true` if the error kind is `StopTelemetryEvaluationForOrganizationError::ValidationException`.
330    pub fn is_validation_exception(&self) -> bool {
331        matches!(self, Self::ValidationException(_))
332    }
333}
334impl ::std::error::Error for StopTelemetryEvaluationForOrganizationError {
335    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
336        match self {
337            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
338            Self::InternalServerException(_inner) => ::std::option::Option::Some(_inner),
339            Self::TooManyRequestsException(_inner) => ::std::option::Option::Some(_inner),
340            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
341            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
342        }
343    }
344}
345impl ::std::fmt::Display for StopTelemetryEvaluationForOrganizationError {
346    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
347        match self {
348            Self::AccessDeniedException(_inner) => _inner.fmt(f),
349            Self::InternalServerException(_inner) => _inner.fmt(f),
350            Self::TooManyRequestsException(_inner) => _inner.fmt(f),
351            Self::ValidationException(_inner) => _inner.fmt(f),
352            Self::Unhandled(_inner) => {
353                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
354                    write!(f, "unhandled error ({code})")
355                } else {
356                    f.write_str("unhandled error")
357                }
358            }
359        }
360    }
361}
362impl ::aws_smithy_types::retry::ProvideErrorKind for StopTelemetryEvaluationForOrganizationError {
363    fn code(&self) -> ::std::option::Option<&str> {
364        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
365    }
366    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
367        ::std::option::Option::None
368    }
369}
370impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for StopTelemetryEvaluationForOrganizationError {
371    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
372        match self {
373            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
374            Self::InternalServerException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
375            Self::TooManyRequestsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
376            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
377            Self::Unhandled(_inner) => &_inner.meta,
378        }
379    }
380}
381impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for StopTelemetryEvaluationForOrganizationError {
382    fn create_unhandled_error(
383        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
384        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
385    ) -> Self {
386        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
387            source,
388            meta: meta.unwrap_or_default(),
389        })
390    }
391}
392impl ::aws_types::request_id::RequestId
393    for crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError
394{
395    fn request_id(&self) -> Option<&str> {
396        self.meta().request_id()
397    }
398}
399
400pub use crate::operation::stop_telemetry_evaluation_for_organization::_stop_telemetry_evaluation_for_organization_input::StopTelemetryEvaluationForOrganizationInput;
401
402pub use crate::operation::stop_telemetry_evaluation_for_organization::_stop_telemetry_evaluation_for_organization_output::StopTelemetryEvaluationForOrganizationOutput;
403
404mod _stop_telemetry_evaluation_for_organization_input;
405
406mod _stop_telemetry_evaluation_for_organization_output;
407
408/// Builders
409pub mod builders;