aws_sdk_acm/operation/request_certificate/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::request_certificate::_request_certificate_output::RequestCertificateOutputBuilder;
3
4pub use crate::operation::request_certificate::_request_certificate_input::RequestCertificateInputBuilder;
5
6impl crate::operation::request_certificate::builders::RequestCertificateInputBuilder {
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::request_certificate::RequestCertificateOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::request_certificate::RequestCertificateError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.request_certificate();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `RequestCertificate`.
24///
25/// <p>Requests an ACM certificate for use with other Amazon Web Services services. To request an ACM certificate, you must specify a fully qualified domain name (FQDN) in the <code>DomainName</code> parameter. You can also specify additional FQDNs in the <code>SubjectAlternativeNames</code> parameter.</p>
26/// <p>If you are requesting a private certificate, domain validation is not required. If you are requesting a public certificate, each domain name that you specify must be validated to verify that you own or control the domain. You can use <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">DNS validation</a> or <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">email validation</a>. We recommend that you use DNS validation.</p><note>
27/// <p>ACM behavior differs from the <a href="https://datatracker.ietf.org/doc/html/rfc6125#appendix-B.2">RFC 6125</a> specification of the certificate validation process. ACM first checks for a Subject Alternative Name, and, if it finds one, ignores the common name (CN).</p>
28/// </note>
29/// <p>After successful completion of the <code>RequestCertificate</code> action, there is a delay of several seconds before you can retrieve information about the new certificate.</p>
30#[derive(::std::clone::Clone, ::std::fmt::Debug)]
31pub struct RequestCertificateFluentBuilder {
32 handle: ::std::sync::Arc<crate::client::Handle>,
33 inner: crate::operation::request_certificate::builders::RequestCertificateInputBuilder,
34 config_override: ::std::option::Option<crate::config::Builder>,
35}
36impl
37 crate::client::customize::internal::CustomizableSend<
38 crate::operation::request_certificate::RequestCertificateOutput,
39 crate::operation::request_certificate::RequestCertificateError,
40 > for RequestCertificateFluentBuilder
41{
42 fn send(
43 self,
44 config_override: crate::config::Builder,
45 ) -> crate::client::customize::internal::BoxFuture<
46 crate::client::customize::internal::SendResult<
47 crate::operation::request_certificate::RequestCertificateOutput,
48 crate::operation::request_certificate::RequestCertificateError,
49 >,
50 > {
51 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
52 }
53}
54impl RequestCertificateFluentBuilder {
55 /// Creates a new `RequestCertificateFluentBuilder`.
56 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
57 Self {
58 handle,
59 inner: ::std::default::Default::default(),
60 config_override: ::std::option::Option::None,
61 }
62 }
63 /// Access the RequestCertificate as a reference.
64 pub fn as_input(&self) -> &crate::operation::request_certificate::builders::RequestCertificateInputBuilder {
65 &self.inner
66 }
67 /// Sends the request and returns the response.
68 ///
69 /// If an error occurs, an `SdkError` will be returned with additional details that
70 /// can be matched against.
71 ///
72 /// By default, any retryable failures will be retried twice. Retry behavior
73 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
74 /// set when configuring the client.
75 pub async fn send(
76 self,
77 ) -> ::std::result::Result<
78 crate::operation::request_certificate::RequestCertificateOutput,
79 ::aws_smithy_runtime_api::client::result::SdkError<
80 crate::operation::request_certificate::RequestCertificateError,
81 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
82 >,
83 > {
84 let input = self
85 .inner
86 .build()
87 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
88 let runtime_plugins = crate::operation::request_certificate::RequestCertificate::operation_runtime_plugins(
89 self.handle.runtime_plugins.clone(),
90 &self.handle.conf,
91 self.config_override,
92 );
93 crate::operation::request_certificate::RequestCertificate::orchestrate(&runtime_plugins, input).await
94 }
95
96 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
97 pub fn customize(
98 self,
99 ) -> crate::client::customize::CustomizableOperation<
100 crate::operation::request_certificate::RequestCertificateOutput,
101 crate::operation::request_certificate::RequestCertificateError,
102 Self,
103 > {
104 crate::client::customize::CustomizableOperation::new(self)
105 }
106 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
107 self.set_config_override(::std::option::Option::Some(config_override.into()));
108 self
109 }
110
111 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
112 self.config_override = config_override;
113 self
114 }
115 /// <p>Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.</p>
116 /// <p>In compliance with <a href="https://datatracker.ietf.org/doc/html/rfc5280">RFC 5280</a>, the length of the domain name (technically, the Common Name) that you provide cannot exceed 64 octets (characters), including periods. To add a longer domain name, specify it in the Subject Alternative Name field, which supports names up to 253 octets in length.</p>
117 pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
118 self.inner = self.inner.domain_name(input.into());
119 self
120 }
121 /// <p>Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.</p>
122 /// <p>In compliance with <a href="https://datatracker.ietf.org/doc/html/rfc5280">RFC 5280</a>, the length of the domain name (technically, the Common Name) that you provide cannot exceed 64 octets (characters), including periods. To add a longer domain name, specify it in the Subject Alternative Name field, which supports names up to 253 octets in length.</p>
123 pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
124 self.inner = self.inner.set_domain_name(input);
125 self
126 }
127 /// <p>Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.</p>
128 /// <p>In compliance with <a href="https://datatracker.ietf.org/doc/html/rfc5280">RFC 5280</a>, the length of the domain name (technically, the Common Name) that you provide cannot exceed 64 octets (characters), including periods. To add a longer domain name, specify it in the Subject Alternative Name field, which supports names up to 253 octets in length.</p>
129 pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
130 self.inner.get_domain_name()
131 }
132 /// <p>The method you want to use if you are requesting a public certificate to validate that you own or control domain. You can <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">validate with DNS</a> or <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">validate with email</a>. We recommend that you use DNS validation.</p>
133 pub fn validation_method(mut self, input: crate::types::ValidationMethod) -> Self {
134 self.inner = self.inner.validation_method(input);
135 self
136 }
137 /// <p>The method you want to use if you are requesting a public certificate to validate that you own or control domain. You can <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">validate with DNS</a> or <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">validate with email</a>. We recommend that you use DNS validation.</p>
138 pub fn set_validation_method(mut self, input: ::std::option::Option<crate::types::ValidationMethod>) -> Self {
139 self.inner = self.inner.set_validation_method(input);
140 self
141 }
142 /// <p>The method you want to use if you are requesting a public certificate to validate that you own or control domain. You can <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html">validate with DNS</a> or <a href="https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html">validate with email</a>. We recommend that you use DNS validation.</p>
143 pub fn get_validation_method(&self) -> &::std::option::Option<crate::types::ValidationMethod> {
144 self.inner.get_validation_method()
145 }
146 ///
147 /// Appends an item to `SubjectAlternativeNames`.
148 ///
149 /// To override the contents of this collection use [`set_subject_alternative_names`](Self::set_subject_alternative_names).
150 ///
151 /// <p>Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the <code>DomainName</code> field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial quota is 10 domain names. If you need more than 10 names, you must request a quota increase. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html">Quotas</a>.</p>
152 /// <p>The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:</p>
153 /// <ul>
154 /// <li>
155 /// <p><code>(63 octets).(63 octets).(63 octets).(61 octets)</code> is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.</p></li>
156 /// <li>
157 /// <p><code>(64 octets).(63 octets).(63 octets).(61 octets)</code> is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets.</p></li>
158 /// <li>
159 /// <p><code>(63 octets).(63 octets).(63 octets).(62 octets)</code> is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets.</p></li>
160 /// </ul>
161 pub fn subject_alternative_names(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
162 self.inner = self.inner.subject_alternative_names(input.into());
163 self
164 }
165 /// <p>Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the <code>DomainName</code> field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial quota is 10 domain names. If you need more than 10 names, you must request a quota increase. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html">Quotas</a>.</p>
166 /// <p>The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:</p>
167 /// <ul>
168 /// <li>
169 /// <p><code>(63 octets).(63 octets).(63 octets).(61 octets)</code> is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.</p></li>
170 /// <li>
171 /// <p><code>(64 octets).(63 octets).(63 octets).(61 octets)</code> is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets.</p></li>
172 /// <li>
173 /// <p><code>(63 octets).(63 octets).(63 octets).(62 octets)</code> is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets.</p></li>
174 /// </ul>
175 pub fn set_subject_alternative_names(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
176 self.inner = self.inner.set_subject_alternative_names(input);
177 self
178 }
179 /// <p>Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the <code>DomainName</code> field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial quota is 10 domain names. If you need more than 10 names, you must request a quota increase. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html">Quotas</a>.</p>
180 /// <p>The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:</p>
181 /// <ul>
182 /// <li>
183 /// <p><code>(63 octets).(63 octets).(63 octets).(61 octets)</code> is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.</p></li>
184 /// <li>
185 /// <p><code>(64 octets).(63 octets).(63 octets).(61 octets)</code> is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets.</p></li>
186 /// <li>
187 /// <p><code>(63 octets).(63 octets).(63 octets).(62 octets)</code> is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets.</p></li>
188 /// </ul>
189 pub fn get_subject_alternative_names(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
190 self.inner.get_subject_alternative_names()
191 }
192 /// <p>Customer chosen string that can be used to distinguish between calls to <code>RequestCertificate</code>. Idempotency tokens time out after one hour. Therefore, if you call <code>RequestCertificate</code> multiple times with the same idempotency token within one hour, ACM recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, ACM recognizes that you are requesting multiple certificates.</p>
193 pub fn idempotency_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
194 self.inner = self.inner.idempotency_token(input.into());
195 self
196 }
197 /// <p>Customer chosen string that can be used to distinguish between calls to <code>RequestCertificate</code>. Idempotency tokens time out after one hour. Therefore, if you call <code>RequestCertificate</code> multiple times with the same idempotency token within one hour, ACM recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, ACM recognizes that you are requesting multiple certificates.</p>
198 pub fn set_idempotency_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
199 self.inner = self.inner.set_idempotency_token(input);
200 self
201 }
202 /// <p>Customer chosen string that can be used to distinguish between calls to <code>RequestCertificate</code>. Idempotency tokens time out after one hour. Therefore, if you call <code>RequestCertificate</code> multiple times with the same idempotency token within one hour, ACM recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, ACM recognizes that you are requesting multiple certificates.</p>
203 pub fn get_idempotency_token(&self) -> &::std::option::Option<::std::string::String> {
204 self.inner.get_idempotency_token()
205 }
206 ///
207 /// Appends an item to `DomainValidationOptions`.
208 ///
209 /// To override the contents of this collection use [`set_domain_validation_options`](Self::set_domain_validation_options).
210 ///
211 /// <p>The domain name that you want ACM to use to send you emails so that you can validate domain ownership.</p>
212 pub fn domain_validation_options(mut self, input: crate::types::DomainValidationOption) -> Self {
213 self.inner = self.inner.domain_validation_options(input);
214 self
215 }
216 /// <p>The domain name that you want ACM to use to send you emails so that you can validate domain ownership.</p>
217 pub fn set_domain_validation_options(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DomainValidationOption>>) -> Self {
218 self.inner = self.inner.set_domain_validation_options(input);
219 self
220 }
221 /// <p>The domain name that you want ACM to use to send you emails so that you can validate domain ownership.</p>
222 pub fn get_domain_validation_options(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DomainValidationOption>> {
223 self.inner.get_domain_validation_options()
224 }
225 /// <p>You can use this parameter to specify whether to add the certificate to a certificate transparency log and export your certificate.</p>
226 /// <p>Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency">Opting Out of Certificate Transparency Logging</a>.</p>
227 /// <p>You can export public ACM certificates to use with Amazon Web Services services as well as outside the Amazon Web Services Cloud. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-exportable-certificates.html">Certificate Manager exportable public certificate</a>.</p>
228 pub fn options(mut self, input: crate::types::CertificateOptions) -> Self {
229 self.inner = self.inner.options(input);
230 self
231 }
232 /// <p>You can use this parameter to specify whether to add the certificate to a certificate transparency log and export your certificate.</p>
233 /// <p>Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency">Opting Out of Certificate Transparency Logging</a>.</p>
234 /// <p>You can export public ACM certificates to use with Amazon Web Services services as well as outside the Amazon Web Services Cloud. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-exportable-certificates.html">Certificate Manager exportable public certificate</a>.</p>
235 pub fn set_options(mut self, input: ::std::option::Option<crate::types::CertificateOptions>) -> Self {
236 self.inner = self.inner.set_options(input);
237 self
238 }
239 /// <p>You can use this parameter to specify whether to add the certificate to a certificate transparency log and export your certificate.</p>
240 /// <p>Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-bestpractices.html#best-practices-transparency">Opting Out of Certificate Transparency Logging</a>.</p>
241 /// <p>You can export public ACM certificates to use with Amazon Web Services services as well as outside the Amazon Web Services Cloud. For more information, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-exportable-certificates.html">Certificate Manager exportable public certificate</a>.</p>
242 pub fn get_options(&self) -> &::std::option::Option<crate::types::CertificateOptions> {
243 self.inner.get_options()
244 }
245 /// <p>The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the <a href="https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html">Amazon Web Services Private Certificate Authority</a> user guide. The ARN must have the following form:</p>
246 /// <p><code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code></p>
247 pub fn certificate_authority_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
248 self.inner = self.inner.certificate_authority_arn(input.into());
249 self
250 }
251 /// <p>The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the <a href="https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html">Amazon Web Services Private Certificate Authority</a> user guide. The ARN must have the following form:</p>
252 /// <p><code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code></p>
253 pub fn set_certificate_authority_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
254 self.inner = self.inner.set_certificate_authority_arn(input);
255 self
256 }
257 /// <p>The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the <a href="https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html">Amazon Web Services Private Certificate Authority</a> user guide. The ARN must have the following form:</p>
258 /// <p><code>arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012</code></p>
259 pub fn get_certificate_authority_arn(&self) -> &::std::option::Option<::std::string::String> {
260 self.inner.get_certificate_authority_arn()
261 }
262 ///
263 /// Appends an item to `Tags`.
264 ///
265 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
266 ///
267 /// <p>One or more resource tags to associate with the certificate.</p>
268 pub fn tags(mut self, input: crate::types::Tag) -> Self {
269 self.inner = self.inner.tags(input);
270 self
271 }
272 /// <p>One or more resource tags to associate with the certificate.</p>
273 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
274 self.inner = self.inner.set_tags(input);
275 self
276 }
277 /// <p>One or more resource tags to associate with the certificate.</p>
278 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
279 self.inner.get_tags()
280 }
281 /// <p>Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are smaller, offering security comparable to RSA keys but with greater computing efficiency. However, ECDSA is not supported by all network clients. Some Amazon Web Services services may require RSA keys, or only support ECDSA keys of a particular size, while others allow the use of either RSA and ECDSA keys to ensure that compatibility is not broken. Check the requirements for the Amazon Web Services service where you plan to deploy your certificate. For more information about selecting an algorithm, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms">Key algorithms</a>.</p><note>
282 /// <p>Algorithms supported for an ACM certificate request include:</p>
283 /// <ul>
284 /// <li>
285 /// <p><code>RSA_2048</code></p></li>
286 /// <li>
287 /// <p><code>EC_prime256v1</code></p></li>
288 /// <li>
289 /// <p><code>EC_secp384r1</code></p></li>
290 /// </ul>
291 /// <p>Other listed algorithms are for imported certificates only.</p>
292 /// </note> <note>
293 /// <p>When you request a private PKI certificate signed by a CA from Amazon Web Services Private CA, the specified signing algorithm family (RSA or ECDSA) must match the algorithm family of the CA's secret key.</p>
294 /// </note>
295 /// <p>Default: RSA_2048</p>
296 pub fn key_algorithm(mut self, input: crate::types::KeyAlgorithm) -> Self {
297 self.inner = self.inner.key_algorithm(input);
298 self
299 }
300 /// <p>Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are smaller, offering security comparable to RSA keys but with greater computing efficiency. However, ECDSA is not supported by all network clients. Some Amazon Web Services services may require RSA keys, or only support ECDSA keys of a particular size, while others allow the use of either RSA and ECDSA keys to ensure that compatibility is not broken. Check the requirements for the Amazon Web Services service where you plan to deploy your certificate. For more information about selecting an algorithm, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms">Key algorithms</a>.</p><note>
301 /// <p>Algorithms supported for an ACM certificate request include:</p>
302 /// <ul>
303 /// <li>
304 /// <p><code>RSA_2048</code></p></li>
305 /// <li>
306 /// <p><code>EC_prime256v1</code></p></li>
307 /// <li>
308 /// <p><code>EC_secp384r1</code></p></li>
309 /// </ul>
310 /// <p>Other listed algorithms are for imported certificates only.</p>
311 /// </note> <note>
312 /// <p>When you request a private PKI certificate signed by a CA from Amazon Web Services Private CA, the specified signing algorithm family (RSA or ECDSA) must match the algorithm family of the CA's secret key.</p>
313 /// </note>
314 /// <p>Default: RSA_2048</p>
315 pub fn set_key_algorithm(mut self, input: ::std::option::Option<crate::types::KeyAlgorithm>) -> Self {
316 self.inner = self.inner.set_key_algorithm(input);
317 self
318 }
319 /// <p>Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are smaller, offering security comparable to RSA keys but with greater computing efficiency. However, ECDSA is not supported by all network clients. Some Amazon Web Services services may require RSA keys, or only support ECDSA keys of a particular size, while others allow the use of either RSA and ECDSA keys to ensure that compatibility is not broken. Check the requirements for the Amazon Web Services service where you plan to deploy your certificate. For more information about selecting an algorithm, see <a href="https://docs.aws.amazon.com/acm/latest/userguide/acm-certificate.html#algorithms">Key algorithms</a>.</p><note>
320 /// <p>Algorithms supported for an ACM certificate request include:</p>
321 /// <ul>
322 /// <li>
323 /// <p><code>RSA_2048</code></p></li>
324 /// <li>
325 /// <p><code>EC_prime256v1</code></p></li>
326 /// <li>
327 /// <p><code>EC_secp384r1</code></p></li>
328 /// </ul>
329 /// <p>Other listed algorithms are for imported certificates only.</p>
330 /// </note> <note>
331 /// <p>When you request a private PKI certificate signed by a CA from Amazon Web Services Private CA, the specified signing algorithm family (RSA or ECDSA) must match the algorithm family of the CA's secret key.</p>
332 /// </note>
333 /// <p>Default: RSA_2048</p>
334 pub fn get_key_algorithm(&self) -> &::std::option::Option<crate::types::KeyAlgorithm> {
335 self.inner.get_key_algorithm()
336 }
337 /// <p>Identifies the Amazon Web Services service that manages the certificate issued by ACM.</p>
338 pub fn managed_by(mut self, input: crate::types::CertificateManagedBy) -> Self {
339 self.inner = self.inner.managed_by(input);
340 self
341 }
342 /// <p>Identifies the Amazon Web Services service that manages the certificate issued by ACM.</p>
343 pub fn set_managed_by(mut self, input: ::std::option::Option<crate::types::CertificateManagedBy>) -> Self {
344 self.inner = self.inner.set_managed_by(input);
345 self
346 }
347 /// <p>Identifies the Amazon Web Services service that manages the certificate issued by ACM.</p>
348 pub fn get_managed_by(&self) -> &::std::option::Option<crate::types::CertificateManagedBy> {
349 self.inner.get_managed_by()
350 }
351}