Skip to main content

aws_sdk_eks/operation/
create_fargate_profile.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateFargateProfile`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateFargateProfile;
6impl CreateFargateProfile {
7    /// Creates a new `CreateFargateProfile`
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::create_fargate_profile::CreateFargateProfileInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_fargate_profile::CreateFargateProfileOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_fargate_profile::CreateFargateProfileError,
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::create_fargate_profile::CreateFargateProfileError>()
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::create_fargate_profile::CreateFargateProfileOutput>()
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::create_fargate_profile::CreateFargateProfileInput,
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("EKS", "CreateFargateProfile", 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                "EKS.CreateFargateProfile",
59                "rpc.service" = "EKS",
60                "rpc.method" = "CreateFargateProfile",
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_operation_plugin(crate::client_idempotency_token::IdempotencyTokenRuntimePlugin::new(
74            |token_provider, input| {
75                let input: &mut crate::operation::create_fargate_profile::CreateFargateProfileInput = input.downcast_mut().expect("correct type");
76                if input.client_request_token.is_none() {
77                    input.client_request_token = ::std::option::Option::Some(token_provider.make_idempotency_token());
78                }
79            },
80        ));
81        if let ::std::option::Option::Some(config_override) = config_override {
82            for plugin in config_override.runtime_plugins.iter().cloned() {
83                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
84            }
85            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
86                config_override,
87                client_config.config.clone(),
88                &client_config.runtime_components,
89            ));
90        }
91        runtime_plugins
92    }
93}
94impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateFargateProfile {
95    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
96        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateFargateProfile");
97
98        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
99            CreateFargateProfileRequestSerializer,
100        ));
101        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
102            CreateFargateProfileResponseDeserializer,
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
106            crate::config::auth::Params::builder()
107                .operation_name("CreateFargateProfile")
108                .build()
109                .expect("required fields set"),
110        ));
111
112        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
113            "CreateFargateProfile",
114            "EKS",
115        ));
116        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
117        signing_options.double_uri_encode = true;
118        signing_options.content_sha256_header = false;
119        signing_options.normalize_uri_path = true;
120        signing_options.payload_override = None;
121
122        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
123            signing_options,
124            ..::std::default::Default::default()
125        });
126
127        ::std::option::Option::Some(cfg.freeze())
128    }
129
130    fn runtime_components(
131        &self,
132        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
133    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
134        #[allow(unused_mut)]
135        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateFargateProfile")
136            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
137                CreateFargateProfileTelemetryInputCaptureInterceptor,
138            ))
139            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
140                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
141            ))
142            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
143                CreateFargateProfileEndpointParamsInterceptor,
144            ))
145            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
146                crate::operation::create_fargate_profile::CreateFargateProfileError,
147            >::new())
148            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
149                crate::operation::create_fargate_profile::CreateFargateProfileError,
150            >::new())
151            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
152                crate::operation::create_fargate_profile::CreateFargateProfileError,
153            >::new())
154            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
155                crate::operation::create_fargate_profile::CreateFargateProfileError,
156            >::new());
157
158        ::std::borrow::Cow::Owned(rcb)
159    }
160}
161
162#[derive(Debug)]
163struct CreateFargateProfileTelemetryInputCaptureInterceptor;
164
165#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
166impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateFargateProfileTelemetryInputCaptureInterceptor {
167    fn name(&self) -> &'static str {
168        "CreateFargateProfileTelemetryInputCaptureInterceptor"
169    }
170
171    fn read_before_execution(
172        &self,
173        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
174            '_,
175            ::aws_smithy_runtime_api::client::interceptors::context::Input,
176            ::aws_smithy_runtime_api::client::interceptors::context::Output,
177            ::aws_smithy_runtime_api::client::interceptors::context::Error,
178        >,
179        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
180    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
181        // Nothing to do unless the customer opted in by naming members to record.
182        let ::std::option::Option::Some(requested) = cfg
183            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
184            .filter(|r| !r.is_empty())
185        else {
186            return ::std::result::Result::Ok(());
187        };
188
189        let ::std::option::Option::Some(input) = context.input().downcast_ref::<CreateFargateProfileInput>() else {
190            // A mismatched input is not this interceptor's concern; skip quietly.
191            return ::std::result::Result::Ok(());
192        };
193
194        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
195        if requested.should_capture("fargateProfileName") {
196            if let ::std::option::Option::Some(value) = input.fargate_profile_name.as_deref() {
197                captured.insert("fargateProfileName", value);
198            }
199        }
200        if requested.should_capture("clusterName") {
201            if let ::std::option::Option::Some(value) = input.cluster_name.as_deref() {
202                captured.insert("clusterName", value);
203            }
204        }
205        if requested.should_capture("podExecutionRoleArn") {
206            if let ::std::option::Option::Some(value) = input.pod_execution_role_arn.as_deref() {
207                captured.insert("podExecutionRoleArn", value);
208            }
209        }
210        if requested.should_capture("clientRequestToken") {
211            if let ::std::option::Option::Some(value) = input.client_request_token.as_deref() {
212                captured.insert("clientRequestToken", value);
213            }
214        }
215
216        cfg.interceptor_state().store_put(captured);
217        ::std::result::Result::Ok(())
218    }
219}
220#[derive(Debug)]
221struct CreateFargateProfileResponseDeserializer;
222impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateFargateProfileResponseDeserializer {
223    fn deserialize_nonstreaming_with_config(
224        &self,
225        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
226        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
227    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
228        let (success, status) = (response.status().is_success(), response.status().as_u16());
229        let headers = response.headers();
230        let body = response.body().bytes().expect("body loaded");
231        #[allow(unused_mut)]
232        let mut force_error = false;
233        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
234        let parse_result = if !success && status != 200 || force_error {
235            crate::protocol_serde::shape_create_fargate_profile::de_create_fargate_profile_http_error(status, headers, body)
236        } else {
237            crate::protocol_serde::shape_create_fargate_profile::de_create_fargate_profile_http_response(status, headers, body)
238        };
239        crate::protocol_serde::type_erase_result(parse_result)
240    }
241}
242#[derive(Debug)]
243struct CreateFargateProfileRequestSerializer;
244impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateFargateProfileRequestSerializer {
245    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
246    fn serialize_input(
247        &self,
248        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
249        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
250    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
251        let input = input
252            .downcast::<crate::operation::create_fargate_profile::CreateFargateProfileInput>()
253            .expect("correct type");
254        let _header_serialization_settings = _cfg
255            .load::<crate::serialization_settings::HeaderSerializationSettings>()
256            .cloned()
257            .unwrap_or_default();
258        let mut request_builder = {
259            #[allow(clippy::uninlined_format_args)]
260            fn uri_base(
261                _input: &crate::operation::create_fargate_profile::CreateFargateProfileInput,
262                output: &mut ::std::string::String,
263            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
264                use ::std::fmt::Write as _;
265                let input_1 = &_input.cluster_name;
266                let input_1 = input_1
267                    .as_ref()
268                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("cluster_name", "cannot be empty or unset"))?;
269                let cluster_name = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
270                if cluster_name.is_empty() {
271                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
272                        "cluster_name",
273                        "cannot be empty or unset",
274                    ));
275                }
276                ::std::write!(output, "/clusters/{clusterName}/fargate-profiles", clusterName = cluster_name).expect("formatting should succeed");
277                ::std::result::Result::Ok(())
278            }
279            #[allow(clippy::unnecessary_wraps)]
280            fn update_http_builder(
281                input: &crate::operation::create_fargate_profile::CreateFargateProfileInput,
282                builder: ::http_1x::request::Builder,
283            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
284                let mut uri = ::std::string::String::new();
285                uri_base(input, &mut uri)?;
286                ::std::result::Result::Ok(builder.method("POST").uri(uri))
287            }
288            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
289            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/json");
290            builder
291        };
292        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_fargate_profile::ser_create_fargate_profile_input(
293            &input,
294        )?);
295        if let Some(content_length) = body.content_length() {
296            let content_length = content_length.to_string();
297            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
298        }
299        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
300    }
301}
302#[derive(Debug)]
303struct CreateFargateProfileEndpointParamsInterceptor;
304
305#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
306impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateFargateProfileEndpointParamsInterceptor {
307    fn name(&self) -> &'static str {
308        "CreateFargateProfileEndpointParamsInterceptor"
309    }
310
311    fn read_before_execution(
312        &self,
313        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
314            '_,
315            ::aws_smithy_runtime_api::client::interceptors::context::Input,
316            ::aws_smithy_runtime_api::client::interceptors::context::Output,
317            ::aws_smithy_runtime_api::client::interceptors::context::Error,
318        >,
319        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
320    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
321        let _input = context
322            .input()
323            .downcast_ref::<CreateFargateProfileInput>()
324            .ok_or("failed to downcast to CreateFargateProfileInput")?;
325
326        let params = crate::config::endpoint::Params::builder()
327            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
328            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
329            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
330            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
331            .build()
332            .map_err(|err| {
333                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
334            })?;
335        cfg.interceptor_state()
336            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
337        ::std::result::Result::Ok(())
338    }
339}
340
341// The get_* functions below are generated from JMESPath expressions in the
342// operationContextParams trait. They target the operation's input shape.
343
344/// Error type for the `CreateFargateProfileError` operation.
345#[non_exhaustive]
346#[derive(::std::fmt::Debug)]
347pub enum CreateFargateProfileError {
348    /// <p>These errors are usually caused by a client action. Actions can include using an action or resource on behalf of an <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html">IAM principal</a> that doesn't have permissions to use the action or resource or specifying an identifier that is not valid.</p>
349    ClientException(crate::types::error::ClientException),
350    /// <p>The specified parameter is invalid. Review the available parameters for the API request.</p>
351    InvalidParameterException(crate::types::error::InvalidParameterException),
352    /// <p>The request is invalid given the state of the cluster. Check the state of the cluster and the associated operations.</p>
353    InvalidRequestException(crate::types::error::InvalidRequestException),
354    /// <p>You have encountered a service limit on the specified resource.</p>
355    ResourceLimitExceededException(crate::types::error::ResourceLimitExceededException),
356    /// <p>These errors are usually caused by a server-side issue.</p>
357    ServerException(crate::types::error::ServerException),
358    /// <p>At least one of your specified cluster subnets is in an Availability Zone that does not support Amazon EKS. The exception output specifies the supported Availability Zones for your account, from which you can choose subnets for your cluster.</p>
359    UnsupportedAvailabilityZoneException(crate::types::error::UnsupportedAvailabilityZoneException),
360    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
361    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
362    variable wildcard pattern and check `.code()`:
363     \
364    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
365     \
366    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateFargateProfileError) for what information is available for the error.")]
367    Unhandled(crate::error::sealed_unhandled::Unhandled),
368}
369impl CreateFargateProfileError {
370    /// Creates the `CreateFargateProfileError::Unhandled` variant from any error type.
371    pub fn unhandled(
372        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
373    ) -> Self {
374        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
375            source: err.into(),
376            meta: ::std::default::Default::default(),
377        })
378    }
379
380    /// Creates the `CreateFargateProfileError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
381    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
382        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
383            source: err.clone().into(),
384            meta: err,
385        })
386    }
387    ///
388    /// Returns error metadata, which includes the error code, message,
389    /// request ID, and potentially additional information.
390    ///
391    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
392        match self {
393            Self::ClientException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
394            Self::InvalidParameterException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
395            Self::InvalidRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
396            Self::ResourceLimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
397            Self::ServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
398            Self::UnsupportedAvailabilityZoneException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
399            Self::Unhandled(e) => &e.meta,
400        }
401    }
402    /// Returns `true` if the error kind is `CreateFargateProfileError::ClientException`.
403    pub fn is_client_exception(&self) -> bool {
404        matches!(self, Self::ClientException(_))
405    }
406    /// Returns `true` if the error kind is `CreateFargateProfileError::InvalidParameterException`.
407    pub fn is_invalid_parameter_exception(&self) -> bool {
408        matches!(self, Self::InvalidParameterException(_))
409    }
410    /// Returns `true` if the error kind is `CreateFargateProfileError::InvalidRequestException`.
411    pub fn is_invalid_request_exception(&self) -> bool {
412        matches!(self, Self::InvalidRequestException(_))
413    }
414    /// Returns `true` if the error kind is `CreateFargateProfileError::ResourceLimitExceededException`.
415    pub fn is_resource_limit_exceeded_exception(&self) -> bool {
416        matches!(self, Self::ResourceLimitExceededException(_))
417    }
418    /// Returns `true` if the error kind is `CreateFargateProfileError::ServerException`.
419    pub fn is_server_exception(&self) -> bool {
420        matches!(self, Self::ServerException(_))
421    }
422    /// Returns `true` if the error kind is `CreateFargateProfileError::UnsupportedAvailabilityZoneException`.
423    pub fn is_unsupported_availability_zone_exception(&self) -> bool {
424        matches!(self, Self::UnsupportedAvailabilityZoneException(_))
425    }
426}
427impl ::std::error::Error for CreateFargateProfileError {
428    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
429        match self {
430            Self::ClientException(_inner) => ::std::option::Option::Some(_inner),
431            Self::InvalidParameterException(_inner) => ::std::option::Option::Some(_inner),
432            Self::InvalidRequestException(_inner) => ::std::option::Option::Some(_inner),
433            Self::ResourceLimitExceededException(_inner) => ::std::option::Option::Some(_inner),
434            Self::ServerException(_inner) => ::std::option::Option::Some(_inner),
435            Self::UnsupportedAvailabilityZoneException(_inner) => ::std::option::Option::Some(_inner),
436            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
437        }
438    }
439}
440impl ::std::fmt::Display for CreateFargateProfileError {
441    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
442        match self {
443            Self::ClientException(_inner) => _inner.fmt(f),
444            Self::InvalidParameterException(_inner) => _inner.fmt(f),
445            Self::InvalidRequestException(_inner) => _inner.fmt(f),
446            Self::ResourceLimitExceededException(_inner) => _inner.fmt(f),
447            Self::ServerException(_inner) => _inner.fmt(f),
448            Self::UnsupportedAvailabilityZoneException(_inner) => _inner.fmt(f),
449            Self::Unhandled(_inner) => {
450                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
451                    write!(f, "unhandled error ({code})")
452                } else {
453                    f.write_str("unhandled error")
454                }
455            }
456        }
457    }
458}
459impl ::aws_smithy_types::retry::ProvideErrorKind for CreateFargateProfileError {
460    fn code(&self) -> ::std::option::Option<&str> {
461        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
462    }
463    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
464        ::std::option::Option::None
465    }
466}
467impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateFargateProfileError {
468    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
469        match self {
470            Self::ClientException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
471            Self::InvalidParameterException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
472            Self::InvalidRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
473            Self::ResourceLimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
474            Self::ServerException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
475            Self::UnsupportedAvailabilityZoneException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
476            Self::Unhandled(_inner) => &_inner.meta,
477        }
478    }
479}
480impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateFargateProfileError {
481    fn create_unhandled_error(
482        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
483        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
484    ) -> Self {
485        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
486            source,
487            meta: meta.unwrap_or_default(),
488        })
489    }
490}
491impl ::aws_types::request_id::RequestId for crate::operation::create_fargate_profile::CreateFargateProfileError {
492    fn request_id(&self) -> Option<&str> {
493        self.meta().request_id()
494    }
495}
496
497pub use crate::operation::create_fargate_profile::_create_fargate_profile_input::CreateFargateProfileInput;
498
499pub use crate::operation::create_fargate_profile::_create_fargate_profile_output::CreateFargateProfileOutput;
500
501mod _create_fargate_profile_input;
502
503mod _create_fargate_profile_output;
504
505/// Builders
506pub mod builders;