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        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point(
54            "observabilityadmin",
55            "StopTelemetryEvaluationForOrganization",
56            input,
57            runtime_plugins,
58            stop_point,
59        )
60        .await
61    }
62
63    pub(crate) fn operation_runtime_plugins(
64        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
65        client_config: &crate::config::Config,
66        config_override: ::std::option::Option<crate::config::Builder>,
67    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
68        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
69        runtime_plugins = runtime_plugins.with_client_plugin(crate::auth_plugin::DefaultAuthOptionsPlugin::new(vec![
70            ::aws_runtime::auth::sigv4::SCHEME_ID,
71        ]));
72        if let ::std::option::Option::Some(config_override) = config_override {
73            for plugin in config_override.runtime_plugins.iter().cloned() {
74                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
75            }
76            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
77                config_override,
78                client_config.config.clone(),
79                &client_config.runtime_components,
80            ));
81        }
82        runtime_plugins
83    }
84}
85impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for StopTelemetryEvaluationForOrganization {
86    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
87        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("StopTelemetryEvaluationForOrganization");
88
89        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
90            StopTelemetryEvaluationForOrganizationRequestSerializer,
91        ));
92        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
93            StopTelemetryEvaluationForOrganizationResponseDeserializer,
94        ));
95
96        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
97            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
98        ));
99
100        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
101            "StopTelemetryEvaluationForOrganization",
102            "observabilityadmin",
103        ));
104        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
105        signing_options.double_uri_encode = true;
106        signing_options.content_sha256_header = false;
107        signing_options.normalize_uri_path = true;
108        signing_options.payload_override = None;
109
110        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
111            signing_options,
112            ..::std::default::Default::default()
113        });
114
115        ::std::option::Option::Some(cfg.freeze())
116    }
117
118    fn runtime_components(
119        &self,
120        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
121    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
122        #[allow(unused_mut)]
123        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("StopTelemetryEvaluationForOrganization")
124            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
125            .with_interceptor(StopTelemetryEvaluationForOrganizationEndpointParamsInterceptor)
126            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
127                crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError,
128            >::new())
129            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
130                crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError,
131            >::new())
132            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
133                crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError,
134            >::new());
135
136        ::std::borrow::Cow::Owned(rcb)
137    }
138}
139
140#[derive(Debug)]
141struct StopTelemetryEvaluationForOrganizationResponseDeserializer;
142impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for StopTelemetryEvaluationForOrganizationResponseDeserializer {
143    fn deserialize_nonstreaming(
144        &self,
145        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
146    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
147        let (success, status) = (response.status().is_success(), response.status().as_u16());
148        let headers = response.headers();
149        let body = response.body().bytes().expect("body loaded");
150        #[allow(unused_mut)]
151        let mut force_error = false;
152        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
153        let parse_result = if !success && status != 200 || force_error {
154            crate::protocol_serde::shape_stop_telemetry_evaluation_for_organization::de_stop_telemetry_evaluation_for_organization_http_error(
155                status, headers, body,
156            )
157        } else {
158            crate::protocol_serde::shape_stop_telemetry_evaluation_for_organization::de_stop_telemetry_evaluation_for_organization_http_response(
159                status, headers, body,
160            )
161        };
162        crate::protocol_serde::type_erase_result(parse_result)
163    }
164}
165#[derive(Debug)]
166struct StopTelemetryEvaluationForOrganizationRequestSerializer;
167impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for StopTelemetryEvaluationForOrganizationRequestSerializer {
168    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
169    fn serialize_input(
170        &self,
171        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
172        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
173    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
174        let input = input
175            .downcast::<crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationInput>()
176            .expect("correct type");
177        let _header_serialization_settings = _cfg
178            .load::<crate::serialization_settings::HeaderSerializationSettings>()
179            .cloned()
180            .unwrap_or_default();
181        let mut request_builder = {
182            fn uri_base(
183                _input: &crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationInput,
184                output: &mut ::std::string::String,
185            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
186                use ::std::fmt::Write as _;
187                ::std::write!(output, "/StopTelemetryEvaluationForOrganization").expect("formatting should succeed");
188                ::std::result::Result::Ok(())
189            }
190            #[allow(clippy::unnecessary_wraps)]
191            fn update_http_builder(
192                input: &crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationInput,
193                builder: ::http::request::Builder,
194            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
195                let mut uri = ::std::string::String::new();
196                uri_base(input, &mut uri)?;
197                ::std::result::Result::Ok(builder.method("POST").uri(uri))
198            }
199            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
200            builder
201        };
202        let body = ::aws_smithy_types::body::SdkBody::from("");
203
204        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
205    }
206}
207#[derive(Debug)]
208struct StopTelemetryEvaluationForOrganizationEndpointParamsInterceptor;
209
210impl ::aws_smithy_runtime_api::client::interceptors::Intercept for StopTelemetryEvaluationForOrganizationEndpointParamsInterceptor {
211    fn name(&self) -> &'static str {
212        "StopTelemetryEvaluationForOrganizationEndpointParamsInterceptor"
213    }
214
215    fn read_before_execution(
216        &self,
217        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
218            '_,
219            ::aws_smithy_runtime_api::client::interceptors::context::Input,
220            ::aws_smithy_runtime_api::client::interceptors::context::Output,
221            ::aws_smithy_runtime_api::client::interceptors::context::Error,
222        >,
223        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
224    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
225        let _input = context
226            .input()
227            .downcast_ref::<StopTelemetryEvaluationForOrganizationInput>()
228            .ok_or("failed to downcast to StopTelemetryEvaluationForOrganizationInput")?;
229
230        let params = crate::config::endpoint::Params::builder()
231            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
232            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
233            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
234            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
235            .build()
236            .map_err(|err| {
237                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
238            })?;
239        cfg.interceptor_state()
240            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
241        ::std::result::Result::Ok(())
242    }
243}
244
245// The get_* functions below are generated from JMESPath expressions in the
246// operationContextParams trait. They target the operation's input shape.
247
248/// Error type for the `StopTelemetryEvaluationForOrganizationError` operation.
249#[non_exhaustive]
250#[derive(::std::fmt::Debug)]
251pub enum StopTelemetryEvaluationForOrganizationError {
252    /// <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 AWS resources</a> in the IAM user guide.</p>
253    AccessDeniedException(crate::types::error::AccessDeniedException),
254    /// <p>Indicates the request has failed to process because of an unknown server error, exception, or failure.</p>
255    InternalServerException(crate::types::error::InternalServerException),
256    /// <p>Indicates input validation failed. Check your request parameters and retry the request.</p>
257    ValidationException(crate::types::error::ValidationException),
258    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
259    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
260    variable wildcard pattern and check `.code()`:
261     \
262    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
263     \
264    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-StopTelemetryEvaluationForOrganizationError) for what information is available for the error.")]
265    Unhandled(crate::error::sealed_unhandled::Unhandled),
266}
267impl StopTelemetryEvaluationForOrganizationError {
268    /// Creates the `StopTelemetryEvaluationForOrganizationError::Unhandled` variant from any error type.
269    pub fn unhandled(
270        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
271    ) -> Self {
272        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
273            source: err.into(),
274            meta: ::std::default::Default::default(),
275        })
276    }
277
278    /// Creates the `StopTelemetryEvaluationForOrganizationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
279    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
280        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
281            source: err.clone().into(),
282            meta: err,
283        })
284    }
285    ///
286    /// Returns error metadata, which includes the error code, message,
287    /// request ID, and potentially additional information.
288    ///
289    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
290        match self {
291            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
292            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
293            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
294            Self::Unhandled(e) => &e.meta,
295        }
296    }
297    /// Returns `true` if the error kind is `StopTelemetryEvaluationForOrganizationError::AccessDeniedException`.
298    pub fn is_access_denied_exception(&self) -> bool {
299        matches!(self, Self::AccessDeniedException(_))
300    }
301    /// Returns `true` if the error kind is `StopTelemetryEvaluationForOrganizationError::InternalServerException`.
302    pub fn is_internal_server_exception(&self) -> bool {
303        matches!(self, Self::InternalServerException(_))
304    }
305    /// Returns `true` if the error kind is `StopTelemetryEvaluationForOrganizationError::ValidationException`.
306    pub fn is_validation_exception(&self) -> bool {
307        matches!(self, Self::ValidationException(_))
308    }
309}
310impl ::std::error::Error for StopTelemetryEvaluationForOrganizationError {
311    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
312        match self {
313            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
314            Self::InternalServerException(_inner) => ::std::option::Option::Some(_inner),
315            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
316            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
317        }
318    }
319}
320impl ::std::fmt::Display for StopTelemetryEvaluationForOrganizationError {
321    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
322        match self {
323            Self::AccessDeniedException(_inner) => _inner.fmt(f),
324            Self::InternalServerException(_inner) => _inner.fmt(f),
325            Self::ValidationException(_inner) => _inner.fmt(f),
326            Self::Unhandled(_inner) => {
327                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
328                    write!(f, "unhandled error ({code})")
329                } else {
330                    f.write_str("unhandled error")
331                }
332            }
333        }
334    }
335}
336impl ::aws_smithy_types::retry::ProvideErrorKind for StopTelemetryEvaluationForOrganizationError {
337    fn code(&self) -> ::std::option::Option<&str> {
338        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
339    }
340    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
341        ::std::option::Option::None
342    }
343}
344impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for StopTelemetryEvaluationForOrganizationError {
345    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
346        match self {
347            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
348            Self::InternalServerException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
349            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
350            Self::Unhandled(_inner) => &_inner.meta,
351        }
352    }
353}
354impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for StopTelemetryEvaluationForOrganizationError {
355    fn create_unhandled_error(
356        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
357        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
358    ) -> Self {
359        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
360            source,
361            meta: meta.unwrap_or_default(),
362        })
363    }
364}
365impl ::aws_types::request_id::RequestId
366    for crate::operation::stop_telemetry_evaluation_for_organization::StopTelemetryEvaluationForOrganizationError
367{
368    fn request_id(&self) -> Option<&str> {
369        self.meta().request_id()
370    }
371}
372
373pub use crate::operation::stop_telemetry_evaluation_for_organization::_stop_telemetry_evaluation_for_organization_output::StopTelemetryEvaluationForOrganizationOutput;
374
375pub use crate::operation::stop_telemetry_evaluation_for_organization::_stop_telemetry_evaluation_for_organization_input::StopTelemetryEvaluationForOrganizationInput;
376
377mod _stop_telemetry_evaluation_for_organization_input;
378
379mod _stop_telemetry_evaluation_for_organization_output;
380
381/// Builders
382pub mod builders;