aws_sdk_cloudhsmv2/operation/create_hsm/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_hsm::_create_hsm_output::CreateHsmOutputBuilder;
3
4pub use crate::operation::create_hsm::_create_hsm_input::CreateHsmInputBuilder;
5
6impl crate::operation::create_hsm::builders::CreateHsmInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_hsm::CreateHsmOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_hsm::CreateHsmError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_hsm();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateHsm`.
24///
25/// <p>Creates a new hardware security module (HSM) in the specified CloudHSM cluster.</p>
26/// <p><b>Cross-account use:</b> No. You cannot perform this operation on an CloudHSM cluster in a different Amazon Web Service account.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct CreateHsmFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::create_hsm::builders::CreateHsmInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl crate::client::customize::internal::CustomizableSend<crate::operation::create_hsm::CreateHsmOutput, crate::operation::create_hsm::CreateHsmError>
34    for CreateHsmFluentBuilder
35{
36    fn send(
37        self,
38        config_override: crate::config::Builder,
39    ) -> crate::client::customize::internal::BoxFuture<
40        crate::client::customize::internal::SendResult<crate::operation::create_hsm::CreateHsmOutput, crate::operation::create_hsm::CreateHsmError>,
41    > {
42        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
43    }
44}
45impl CreateHsmFluentBuilder {
46    /// Creates a new `CreateHsmFluentBuilder`.
47    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
48        Self {
49            handle,
50            inner: ::std::default::Default::default(),
51            config_override: ::std::option::Option::None,
52        }
53    }
54    /// Access the CreateHsm as a reference.
55    pub fn as_input(&self) -> &crate::operation::create_hsm::builders::CreateHsmInputBuilder {
56        &self.inner
57    }
58    /// Sends the request and returns the response.
59    ///
60    /// If an error occurs, an `SdkError` will be returned with additional details that
61    /// can be matched against.
62    ///
63    /// By default, any retryable failures will be retried twice. Retry behavior
64    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
65    /// set when configuring the client.
66    pub async fn send(
67        self,
68    ) -> ::std::result::Result<
69        crate::operation::create_hsm::CreateHsmOutput,
70        ::aws_smithy_runtime_api::client::result::SdkError<
71            crate::operation::create_hsm::CreateHsmError,
72            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
73        >,
74    > {
75        let input = self
76            .inner
77            .build()
78            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
79        let runtime_plugins = crate::operation::create_hsm::CreateHsm::operation_runtime_plugins(
80            self.handle.runtime_plugins.clone(),
81            &self.handle.conf,
82            self.config_override,
83        );
84        crate::operation::create_hsm::CreateHsm::orchestrate(&runtime_plugins, input).await
85    }
86
87    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
88    pub fn customize(
89        self,
90    ) -> crate::client::customize::CustomizableOperation<
91        crate::operation::create_hsm::CreateHsmOutput,
92        crate::operation::create_hsm::CreateHsmError,
93        Self,
94    > {
95        crate::client::customize::CustomizableOperation::new(self)
96    }
97    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
98        self.set_config_override(::std::option::Option::Some(config_override.into()));
99        self
100    }
101
102    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
103        self.config_override = config_override;
104        self
105    }
106    /// <p>The identifier (ID) of the HSM's cluster. To find the cluster ID, use <code>DescribeClusters</code>.</p>
107    pub fn cluster_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
108        self.inner = self.inner.cluster_id(input.into());
109        self
110    }
111    /// <p>The identifier (ID) of the HSM's cluster. To find the cluster ID, use <code>DescribeClusters</code>.</p>
112    pub fn set_cluster_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
113        self.inner = self.inner.set_cluster_id(input);
114        self
115    }
116    /// <p>The identifier (ID) of the HSM's cluster. To find the cluster ID, use <code>DescribeClusters</code>.</p>
117    pub fn get_cluster_id(&self) -> &::std::option::Option<::std::string::String> {
118        self.inner.get_cluster_id()
119    }
120    /// <p>The Availability Zone where you are creating the HSM. To find the cluster's Availability Zones, use <code>DescribeClusters</code>.</p>
121    pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
122        self.inner = self.inner.availability_zone(input.into());
123        self
124    }
125    /// <p>The Availability Zone where you are creating the HSM. To find the cluster's Availability Zones, use <code>DescribeClusters</code>.</p>
126    pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
127        self.inner = self.inner.set_availability_zone(input);
128        self
129    }
130    /// <p>The Availability Zone where you are creating the HSM. To find the cluster's Availability Zones, use <code>DescribeClusters</code>.</p>
131    pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
132        self.inner.get_availability_zone()
133    }
134    /// <p>The HSM's IP address. If you specify an IP address, use an available address from the subnet that maps to the Availability Zone where you are creating the HSM. If you don't specify an IP address, one is chosen for you from that subnet.</p>
135    pub fn ip_address(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
136        self.inner = self.inner.ip_address(input.into());
137        self
138    }
139    /// <p>The HSM's IP address. If you specify an IP address, use an available address from the subnet that maps to the Availability Zone where you are creating the HSM. If you don't specify an IP address, one is chosen for you from that subnet.</p>
140    pub fn set_ip_address(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
141        self.inner = self.inner.set_ip_address(input);
142        self
143    }
144    /// <p>The HSM's IP address. If you specify an IP address, use an available address from the subnet that maps to the Availability Zone where you are creating the HSM. If you don't specify an IP address, one is chosen for you from that subnet.</p>
145    pub fn get_ip_address(&self) -> &::std::option::Option<::std::string::String> {
146        self.inner.get_ip_address()
147    }
148}