aws_sdk_route53/operation/
create_hosted_zone.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateHostedZone`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateHostedZone;
6impl CreateHostedZone {
7    /// Creates a new `CreateHostedZone`
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_hosted_zone::CreateHostedZoneInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_hosted_zone::CreateHostedZoneOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_hosted_zone::CreateHostedZoneError,
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_hosted_zone::CreateHostedZoneError>()
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_hosted_zone::CreateHostedZoneOutput>()
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_hosted_zone::CreateHostedZoneInput,
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("Route 53", "CreateHostedZone", 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                "Route 53.CreateHostedZone",
59                "rpc.service" = "Route 53",
60                "rpc.method" = "CreateHostedZone",
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
74        if let ::std::option::Option::Some(config_override) = config_override {
75            for plugin in config_override.runtime_plugins.iter().cloned() {
76                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
77            }
78            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
79                config_override,
80                client_config.config.clone(),
81                &client_config.runtime_components,
82            ));
83        }
84        runtime_plugins
85    }
86}
87impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateHostedZone {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateHostedZone");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            CreateHostedZoneRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            CreateHostedZoneResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("CreateHostedZone")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
106            "CreateHostedZone",
107            "Route 53",
108        ));
109        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
110        signing_options.double_uri_encode = true;
111        signing_options.content_sha256_header = false;
112        signing_options.normalize_uri_path = true;
113        signing_options.payload_override = None;
114
115        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
116            signing_options,
117            ..::std::default::Default::default()
118        });
119
120        ::std::option::Option::Some(cfg.freeze())
121    }
122
123    fn runtime_components(
124        &self,
125        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
126    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
127        #[allow(unused_mut)]
128        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateHostedZone")
129            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
130            .with_interceptor(CreateHostedZoneEndpointParamsInterceptor)
131            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
132                crate::operation::create_hosted_zone::CreateHostedZoneError,
133            >::new())
134            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
135                crate::operation::create_hosted_zone::CreateHostedZoneError,
136            >::new())
137            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
138                crate::operation::create_hosted_zone::CreateHostedZoneError,
139            >::new());
140
141        ::std::borrow::Cow::Owned(rcb)
142    }
143}
144
145#[derive(Debug)]
146struct CreateHostedZoneResponseDeserializer;
147impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateHostedZoneResponseDeserializer {
148    fn deserialize_nonstreaming(
149        &self,
150        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
151    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
152        let (success, status) = (response.status().is_success(), response.status().as_u16());
153        let headers = response.headers();
154        let body = response.body().bytes().expect("body loaded");
155        #[allow(unused_mut)]
156        let mut force_error = false;
157        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
158        let parse_result = if !success && status != 201 || force_error {
159            crate::protocol_serde::shape_create_hosted_zone::de_create_hosted_zone_http_error(status, headers, body)
160        } else {
161            crate::protocol_serde::shape_create_hosted_zone::de_create_hosted_zone_http_response(status, headers, body)
162        };
163        crate::protocol_serde::type_erase_result(parse_result)
164    }
165}
166#[derive(Debug)]
167struct CreateHostedZoneRequestSerializer;
168impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateHostedZoneRequestSerializer {
169    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
170    fn serialize_input(
171        &self,
172        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
173        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
174    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
175        let input = input
176            .downcast::<crate::operation::create_hosted_zone::CreateHostedZoneInput>()
177            .expect("correct type");
178        let _header_serialization_settings = _cfg
179            .load::<crate::serialization_settings::HeaderSerializationSettings>()
180            .cloned()
181            .unwrap_or_default();
182        let mut request_builder = {
183            #[allow(clippy::uninlined_format_args)]
184            fn uri_base(
185                _input: &crate::operation::create_hosted_zone::CreateHostedZoneInput,
186                output: &mut ::std::string::String,
187            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
188                use ::std::fmt::Write as _;
189                ::std::write!(output, "/2013-04-01/hostedzone").expect("formatting should succeed");
190                ::std::result::Result::Ok(())
191            }
192            #[allow(clippy::unnecessary_wraps)]
193            fn update_http_builder(
194                input: &crate::operation::create_hosted_zone::CreateHostedZoneInput,
195                builder: ::http::request::Builder,
196            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
197                let mut uri = ::std::string::String::new();
198                uri_base(input, &mut uri)?;
199                ::std::result::Result::Ok(builder.method("POST").uri(uri))
200            }
201            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
202            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/xml");
203            builder
204        };
205        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_hosted_zone::ser_create_hosted_zone_op_input(&input)?);
206        if let Some(content_length) = body.content_length() {
207            let content_length = content_length.to_string();
208            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
209        }
210        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
211    }
212}
213#[derive(Debug)]
214struct CreateHostedZoneEndpointParamsInterceptor;
215
216impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateHostedZoneEndpointParamsInterceptor {
217    fn name(&self) -> &'static str {
218        "CreateHostedZoneEndpointParamsInterceptor"
219    }
220
221    fn read_before_execution(
222        &self,
223        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
224            '_,
225            ::aws_smithy_runtime_api::client::interceptors::context::Input,
226            ::aws_smithy_runtime_api::client::interceptors::context::Output,
227            ::aws_smithy_runtime_api::client::interceptors::context::Error,
228        >,
229        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
230    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
231        let _input = context
232            .input()
233            .downcast_ref::<CreateHostedZoneInput>()
234            .ok_or("failed to downcast to CreateHostedZoneInput")?;
235
236        let params = crate::config::endpoint::Params::builder()
237            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
238            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
239            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
240            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
241            .build()
242            .map_err(|err| {
243                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
244            })?;
245        cfg.interceptor_state()
246            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
247        ::std::result::Result::Ok(())
248    }
249}
250
251// The get_* functions below are generated from JMESPath expressions in the
252// operationContextParams trait. They target the operation's input shape.
253
254/// Error type for the `CreateHostedZoneError` operation.
255#[non_exhaustive]
256#[derive(::std::fmt::Debug)]
257pub enum CreateHostedZoneError {
258    /// <p>The cause of this error depends on the operation that you're performing:</p>
259    /// <ul>
260    /// <li>
261    /// <p><b>Create a public hosted zone:</b> Two hosted zones that have the same name or that have a parent/child relationship (example.com and test.example.com) can't have any common name servers. You tried to create a hosted zone that has the same name as an existing hosted zone or that's the parent or child of an existing hosted zone, and you specified a delegation set that shares one or more name servers with the existing hosted zone. For more information, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html">CreateReusableDelegationSet</a>.</p></li>
262    /// <li>
263    /// <p><b>Create a private hosted zone:</b> A hosted zone with the specified name already exists and is already associated with the Amazon VPC that you specified.</p></li>
264    /// <li>
265    /// <p><b>Associate VPCs with a private hosted zone:</b> The VPC that you specified is already associated with another hosted zone that has the same name.</p></li>
266    /// </ul>
267    ConflictingDomainExists(crate::types::error::ConflictingDomainExists),
268    /// <p>You can create a hosted zone that has the same name as an existing hosted zone (example.com is common), but there is a limit to the number of hosted zones that have the same name. If you get this error, Amazon Route 53 has reached that limit. If you own the domain name and Route 53 generates this error, contact Customer Support.</p>
269    DelegationSetNotAvailable(crate::types::error::DelegationSetNotAvailable),
270    /// <p>A reusable delegation set with the specified ID does not exist.</p>
271    DelegationSetNotReusable(crate::types::error::DelegationSetNotReusable),
272    /// <p>The hosted zone you're trying to create already exists. Amazon Route 53 returns this error when a hosted zone has already been created with the specified <code>CallerReference</code>.</p>
273    HostedZoneAlreadyExists(crate::types::error::HostedZoneAlreadyExists),
274    /// <p>The specified domain name is not valid.</p>
275    InvalidDomainName(crate::types::error::InvalidDomainName),
276    /// <p>The input is not valid.</p>
277    InvalidInput(crate::types::error::InvalidInput),
278    /// <p>The VPC ID that you specified either isn't a valid ID or the current account is not authorized to access this VPC.</p>
279    InvalidVpcId(crate::types::error::InvalidVpcId),
280    /// <p>A reusable delegation set with the specified ID does not exist.</p>
281    NoSuchDelegationSet(crate::types::error::NoSuchDelegationSet),
282    /// <p>This operation can't be completed either because the current account has reached the limit on the number of hosted zones or because you've reached the limit on the number of hosted zones that can be associated with a reusable delegation set.</p>
283    /// <p>For information about default limits, see <a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html">Limits</a> in the <i>Amazon Route 53 Developer Guide</i>.</p>
284    /// <p>To get the current limit on hosted zones that can be created by an account, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetAccountLimit.html">GetAccountLimit</a>.</p>
285    /// <p>To get the current limit on hosted zones that can be associated with a reusable delegation set, see <a href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetReusableDelegationSetLimit.html">GetReusableDelegationSetLimit</a>.</p>
286    /// <p>To request a higher limit, <a href="http://aws.amazon.com/route53-request">create a case</a> with the Amazon Web Services Support Center.</p>
287    TooManyHostedZones(crate::types::error::TooManyHostedZones),
288    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
289    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
290    variable wildcard pattern and check `.code()`:
291     \
292    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
293     \
294    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateHostedZoneError) for what information is available for the error.")]
295    Unhandled(crate::error::sealed_unhandled::Unhandled),
296}
297impl CreateHostedZoneError {
298    /// Creates the `CreateHostedZoneError::Unhandled` variant from any error type.
299    pub fn unhandled(
300        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
301    ) -> Self {
302        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
303            source: err.into(),
304            meta: ::std::default::Default::default(),
305        })
306    }
307
308    /// Creates the `CreateHostedZoneError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
309    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
310        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
311            source: err.clone().into(),
312            meta: err,
313        })
314    }
315    ///
316    /// Returns error metadata, which includes the error code, message,
317    /// request ID, and potentially additional information.
318    ///
319    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
320        match self {
321            Self::ConflictingDomainExists(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
322            Self::DelegationSetNotAvailable(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
323            Self::DelegationSetNotReusable(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
324            Self::HostedZoneAlreadyExists(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
325            Self::InvalidDomainName(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
326            Self::InvalidInput(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
327            Self::InvalidVpcId(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
328            Self::NoSuchDelegationSet(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
329            Self::TooManyHostedZones(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
330            Self::Unhandled(e) => &e.meta,
331        }
332    }
333    /// Returns `true` if the error kind is `CreateHostedZoneError::ConflictingDomainExists`.
334    pub fn is_conflicting_domain_exists(&self) -> bool {
335        matches!(self, Self::ConflictingDomainExists(_))
336    }
337    /// Returns `true` if the error kind is `CreateHostedZoneError::DelegationSetNotAvailable`.
338    pub fn is_delegation_set_not_available(&self) -> bool {
339        matches!(self, Self::DelegationSetNotAvailable(_))
340    }
341    /// Returns `true` if the error kind is `CreateHostedZoneError::DelegationSetNotReusable`.
342    pub fn is_delegation_set_not_reusable(&self) -> bool {
343        matches!(self, Self::DelegationSetNotReusable(_))
344    }
345    /// Returns `true` if the error kind is `CreateHostedZoneError::HostedZoneAlreadyExists`.
346    pub fn is_hosted_zone_already_exists(&self) -> bool {
347        matches!(self, Self::HostedZoneAlreadyExists(_))
348    }
349    /// Returns `true` if the error kind is `CreateHostedZoneError::InvalidDomainName`.
350    pub fn is_invalid_domain_name(&self) -> bool {
351        matches!(self, Self::InvalidDomainName(_))
352    }
353    /// Returns `true` if the error kind is `CreateHostedZoneError::InvalidInput`.
354    pub fn is_invalid_input(&self) -> bool {
355        matches!(self, Self::InvalidInput(_))
356    }
357    /// Returns `true` if the error kind is `CreateHostedZoneError::InvalidVpcId`.
358    pub fn is_invalid_vpc_id(&self) -> bool {
359        matches!(self, Self::InvalidVpcId(_))
360    }
361    /// Returns `true` if the error kind is `CreateHostedZoneError::NoSuchDelegationSet`.
362    pub fn is_no_such_delegation_set(&self) -> bool {
363        matches!(self, Self::NoSuchDelegationSet(_))
364    }
365    /// Returns `true` if the error kind is `CreateHostedZoneError::TooManyHostedZones`.
366    pub fn is_too_many_hosted_zones(&self) -> bool {
367        matches!(self, Self::TooManyHostedZones(_))
368    }
369}
370impl ::std::error::Error for CreateHostedZoneError {
371    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
372        match self {
373            Self::ConflictingDomainExists(_inner) => ::std::option::Option::Some(_inner),
374            Self::DelegationSetNotAvailable(_inner) => ::std::option::Option::Some(_inner),
375            Self::DelegationSetNotReusable(_inner) => ::std::option::Option::Some(_inner),
376            Self::HostedZoneAlreadyExists(_inner) => ::std::option::Option::Some(_inner),
377            Self::InvalidDomainName(_inner) => ::std::option::Option::Some(_inner),
378            Self::InvalidInput(_inner) => ::std::option::Option::Some(_inner),
379            Self::InvalidVpcId(_inner) => ::std::option::Option::Some(_inner),
380            Self::NoSuchDelegationSet(_inner) => ::std::option::Option::Some(_inner),
381            Self::TooManyHostedZones(_inner) => ::std::option::Option::Some(_inner),
382            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
383        }
384    }
385}
386impl ::std::fmt::Display for CreateHostedZoneError {
387    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
388        match self {
389            Self::ConflictingDomainExists(_inner) => _inner.fmt(f),
390            Self::DelegationSetNotAvailable(_inner) => _inner.fmt(f),
391            Self::DelegationSetNotReusable(_inner) => _inner.fmt(f),
392            Self::HostedZoneAlreadyExists(_inner) => _inner.fmt(f),
393            Self::InvalidDomainName(_inner) => _inner.fmt(f),
394            Self::InvalidInput(_inner) => _inner.fmt(f),
395            Self::InvalidVpcId(_inner) => _inner.fmt(f),
396            Self::NoSuchDelegationSet(_inner) => _inner.fmt(f),
397            Self::TooManyHostedZones(_inner) => _inner.fmt(f),
398            Self::Unhandled(_inner) => {
399                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
400                    write!(f, "unhandled error ({code})")
401                } else {
402                    f.write_str("unhandled error")
403                }
404            }
405        }
406    }
407}
408impl ::aws_smithy_types::retry::ProvideErrorKind for CreateHostedZoneError {
409    fn code(&self) -> ::std::option::Option<&str> {
410        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
411    }
412    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
413        ::std::option::Option::None
414    }
415}
416impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateHostedZoneError {
417    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
418        match self {
419            Self::ConflictingDomainExists(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
420            Self::DelegationSetNotAvailable(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
421            Self::DelegationSetNotReusable(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
422            Self::HostedZoneAlreadyExists(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
423            Self::InvalidDomainName(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
424            Self::InvalidInput(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
425            Self::InvalidVpcId(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
426            Self::NoSuchDelegationSet(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
427            Self::TooManyHostedZones(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
428            Self::Unhandled(_inner) => &_inner.meta,
429        }
430    }
431}
432impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateHostedZoneError {
433    fn create_unhandled_error(
434        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
435        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
436    ) -> Self {
437        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
438            source,
439            meta: meta.unwrap_or_default(),
440        })
441    }
442}
443impl ::aws_types::request_id::RequestId for crate::operation::create_hosted_zone::CreateHostedZoneError {
444    fn request_id(&self) -> Option<&str> {
445        self.meta().request_id()
446    }
447}
448
449pub use crate::operation::create_hosted_zone::_create_hosted_zone_output::CreateHostedZoneOutput;
450
451pub use crate::operation::create_hosted_zone::_create_hosted_zone_input::CreateHostedZoneInput;
452
453mod _create_hosted_zone_input;
454
455mod _create_hosted_zone_output;
456
457/// Builders
458pub mod builders;