aws_sdk_codecatalyst/operation/
delete_access_token.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `DeleteAccessToken`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct DeleteAccessToken;
6impl DeleteAccessToken {
7    /// Creates a new `DeleteAccessToken`
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::delete_access_token::DeleteAccessTokenInput,
14    ) -> ::std::result::Result<
15        crate::operation::delete_access_token::DeleteAccessTokenOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::delete_access_token::DeleteAccessTokenError,
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::delete_access_token::DeleteAccessTokenError>()
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::delete_access_token::DeleteAccessTokenOutput>()
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::delete_access_token::DeleteAccessTokenInput,
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("CodeCatalyst", "DeleteAccessToken", 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                "CodeCatalyst.DeleteAccessToken",
59                "rpc.service" = "CodeCatalyst",
60                "rpc.method" = "DeleteAccessToken",
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        runtime_plugins = runtime_plugins.with_client_plugin(crate::auth_plugin::DefaultAuthOptionsPlugin::new(vec![
74            ::aws_smithy_runtime_api::client::auth::http::HTTP_BEARER_AUTH_SCHEME_ID,
75        ]));
76        if let ::std::option::Option::Some(config_override) = config_override {
77            for plugin in config_override.runtime_plugins.iter().cloned() {
78                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
79            }
80            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
81                config_override,
82                client_config.config.clone(),
83                &client_config.runtime_components,
84            ));
85        }
86        runtime_plugins
87    }
88}
89impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for DeleteAccessToken {
90    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
91        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteAccessToken");
92
93        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
94            DeleteAccessTokenRequestSerializer,
95        ));
96        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
97            DeleteAccessTokenResponseDeserializer,
98        ));
99
100        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
101            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
105            "DeleteAccessToken",
106            "CodeCatalyst",
107        ));
108
109        ::std::option::Option::Some(cfg.freeze())
110    }
111
112    fn runtime_components(
113        &self,
114        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
115    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
116        #[allow(unused_mut)]
117        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("DeleteAccessToken")
118            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
119            .with_interceptor(DeleteAccessTokenEndpointParamsInterceptor)
120            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
121                crate::operation::delete_access_token::DeleteAccessTokenError,
122            >::new())
123            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
124                crate::operation::delete_access_token::DeleteAccessTokenError,
125            >::new())
126            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
127                crate::operation::delete_access_token::DeleteAccessTokenError,
128            >::new());
129
130        ::std::borrow::Cow::Owned(rcb)
131    }
132}
133
134#[derive(Debug)]
135struct DeleteAccessTokenResponseDeserializer;
136impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteAccessTokenResponseDeserializer {
137    fn deserialize_nonstreaming(
138        &self,
139        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
140    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
141        let (success, status) = (response.status().is_success(), response.status().as_u16());
142        let headers = response.headers();
143        let body = response.body().bytes().expect("body loaded");
144        #[allow(unused_mut)]
145        let mut force_error = false;
146        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
147        let parse_result = if !success && status != 200 || force_error {
148            crate::protocol_serde::shape_delete_access_token::de_delete_access_token_http_error(status, headers, body)
149        } else {
150            crate::protocol_serde::shape_delete_access_token::de_delete_access_token_http_response(status, headers, body)
151        };
152        crate::protocol_serde::type_erase_result(parse_result)
153    }
154}
155#[derive(Debug)]
156struct DeleteAccessTokenRequestSerializer;
157impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteAccessTokenRequestSerializer {
158    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
159    fn serialize_input(
160        &self,
161        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
162        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
163    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
164        let input = input
165            .downcast::<crate::operation::delete_access_token::DeleteAccessTokenInput>()
166            .expect("correct type");
167        let _header_serialization_settings = _cfg
168            .load::<crate::serialization_settings::HeaderSerializationSettings>()
169            .cloned()
170            .unwrap_or_default();
171        let mut request_builder = {
172            fn uri_base(
173                _input: &crate::operation::delete_access_token::DeleteAccessTokenInput,
174                output: &mut ::std::string::String,
175            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
176                use ::std::fmt::Write as _;
177                let input_1 = &_input.id;
178                let input_1 = input_1
179                    .as_ref()
180                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("id", "cannot be empty or unset"))?;
181                let id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
182                if id.is_empty() {
183                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
184                        "id",
185                        "cannot be empty or unset",
186                    ));
187                }
188                ::std::write!(output, "/v1/accessTokens/{id}", id = id).expect("formatting should succeed");
189                ::std::result::Result::Ok(())
190            }
191            #[allow(clippy::unnecessary_wraps)]
192            fn update_http_builder(
193                input: &crate::operation::delete_access_token::DeleteAccessTokenInput,
194                builder: ::http::request::Builder,
195            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
196                let mut uri = ::std::string::String::new();
197                uri_base(input, &mut uri)?;
198                ::std::result::Result::Ok(builder.method("DELETE").uri(uri))
199            }
200            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
201            builder
202        };
203        let body = ::aws_smithy_types::body::SdkBody::from("");
204
205        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
206    }
207}
208#[derive(Debug)]
209struct DeleteAccessTokenEndpointParamsInterceptor;
210
211impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteAccessTokenEndpointParamsInterceptor {
212    fn name(&self) -> &'static str {
213        "DeleteAccessTokenEndpointParamsInterceptor"
214    }
215
216    fn read_before_execution(
217        &self,
218        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
219            '_,
220            ::aws_smithy_runtime_api::client::interceptors::context::Input,
221            ::aws_smithy_runtime_api::client::interceptors::context::Output,
222            ::aws_smithy_runtime_api::client::interceptors::context::Error,
223        >,
224        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
225    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
226        let _input = context
227            .input()
228            .downcast_ref::<DeleteAccessTokenInput>()
229            .ok_or("failed to downcast to DeleteAccessTokenInput")?;
230
231        let params = crate::config::endpoint::Params::builder()
232            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
233            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
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 `DeleteAccessTokenError` operation.
249#[non_exhaustive]
250#[derive(::std::fmt::Debug)]
251pub enum DeleteAccessTokenError {
252    /// <p>The request was denied because you don't have sufficient access to perform this action. Verify that you are a member of a role that allows this action.</p>
253    AccessDeniedException(crate::types::error::AccessDeniedException),
254    /// <p>The request was denied because the requested operation would cause a conflict with the current state of a service resource associated with the request. Another user might have updated the resource. Reload, make sure you have the latest data, and then try again.</p>
255    ConflictException(crate::types::error::ConflictException),
256    /// <p>The request was denied because the specified resource was not found. Verify that the spelling is correct and that you have access to the resource.</p>
257    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
258    /// <p>The request was denied because one or more resources has reached its limits for the tier the space belongs to. Either reduce the number of resources, or change the tier if applicable.</p>
259    ServiceQuotaExceededException(crate::types::error::ServiceQuotaExceededException),
260    /// <p>The request was denied due to request throttling.</p>
261    ThrottlingException(crate::types::error::ThrottlingException),
262    /// <p>The request was denied because an input failed to satisfy the constraints specified by the service. Check the spelling and input requirements, and then try again.</p>
263    ValidationException(crate::types::error::ValidationException),
264    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
265    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
266    variable wildcard pattern and check `.code()`:
267     \
268    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
269     \
270    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteAccessTokenError) for what information is available for the error.")]
271    Unhandled(crate::error::sealed_unhandled::Unhandled),
272}
273impl DeleteAccessTokenError {
274    /// Creates the `DeleteAccessTokenError::Unhandled` variant from any error type.
275    pub fn unhandled(
276        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
277    ) -> Self {
278        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
279            source: err.into(),
280            meta: ::std::default::Default::default(),
281        })
282    }
283
284    /// Creates the `DeleteAccessTokenError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
285    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
286        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
287            source: err.clone().into(),
288            meta: err,
289        })
290    }
291    ///
292    /// Returns error metadata, which includes the error code, message,
293    /// request ID, and potentially additional information.
294    ///
295    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
296        match self {
297            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
298            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
299            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
300            Self::ServiceQuotaExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
301            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
302            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
303            Self::Unhandled(e) => &e.meta,
304        }
305    }
306    /// Returns `true` if the error kind is `DeleteAccessTokenError::AccessDeniedException`.
307    pub fn is_access_denied_exception(&self) -> bool {
308        matches!(self, Self::AccessDeniedException(_))
309    }
310    /// Returns `true` if the error kind is `DeleteAccessTokenError::ConflictException`.
311    pub fn is_conflict_exception(&self) -> bool {
312        matches!(self, Self::ConflictException(_))
313    }
314    /// Returns `true` if the error kind is `DeleteAccessTokenError::ResourceNotFoundException`.
315    pub fn is_resource_not_found_exception(&self) -> bool {
316        matches!(self, Self::ResourceNotFoundException(_))
317    }
318    /// Returns `true` if the error kind is `DeleteAccessTokenError::ServiceQuotaExceededException`.
319    pub fn is_service_quota_exceeded_exception(&self) -> bool {
320        matches!(self, Self::ServiceQuotaExceededException(_))
321    }
322    /// Returns `true` if the error kind is `DeleteAccessTokenError::ThrottlingException`.
323    pub fn is_throttling_exception(&self) -> bool {
324        matches!(self, Self::ThrottlingException(_))
325    }
326    /// Returns `true` if the error kind is `DeleteAccessTokenError::ValidationException`.
327    pub fn is_validation_exception(&self) -> bool {
328        matches!(self, Self::ValidationException(_))
329    }
330}
331impl ::std::error::Error for DeleteAccessTokenError {
332    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
333        match self {
334            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
335            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
336            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
337            Self::ServiceQuotaExceededException(_inner) => ::std::option::Option::Some(_inner),
338            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
339            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
340            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
341        }
342    }
343}
344impl ::std::fmt::Display for DeleteAccessTokenError {
345    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
346        match self {
347            Self::AccessDeniedException(_inner) => _inner.fmt(f),
348            Self::ConflictException(_inner) => _inner.fmt(f),
349            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
350            Self::ServiceQuotaExceededException(_inner) => _inner.fmt(f),
351            Self::ThrottlingException(_inner) => _inner.fmt(f),
352            Self::ValidationException(_inner) => _inner.fmt(f),
353            Self::Unhandled(_inner) => {
354                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
355                    write!(f, "unhandled error ({code})")
356                } else {
357                    f.write_str("unhandled error")
358                }
359            }
360        }
361    }
362}
363impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteAccessTokenError {
364    fn code(&self) -> ::std::option::Option<&str> {
365        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
366    }
367    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
368        match self {
369            Self::ThrottlingException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
370            _ => ::std::option::Option::None,
371        }
372    }
373}
374impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteAccessTokenError {
375    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
376        match self {
377            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
378            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
379            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
380            Self::ServiceQuotaExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
381            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
382            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
383            Self::Unhandled(_inner) => &_inner.meta,
384        }
385    }
386}
387impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteAccessTokenError {
388    fn create_unhandled_error(
389        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
390        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
391    ) -> Self {
392        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
393            source,
394            meta: meta.unwrap_or_default(),
395        })
396    }
397}
398impl ::aws_types::request_id::RequestId for crate::operation::delete_access_token::DeleteAccessTokenError {
399    fn request_id(&self) -> Option<&str> {
400        self.meta().request_id()
401    }
402}
403
404pub use crate::operation::delete_access_token::_delete_access_token_output::DeleteAccessTokenOutput;
405
406pub use crate::operation::delete_access_token::_delete_access_token_input::DeleteAccessTokenInput;
407
408mod _delete_access_token_input;
409
410mod _delete_access_token_output;
411
412/// Builders
413pub mod builders;