aws_sdk_iot/operation/update_domain_configuration/
_update_domain_configuration_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct UpdateDomainConfigurationInput {
6    /// <p>The name of the domain configuration to be updated.</p>
7    pub domain_configuration_name: ::std::option::Option<::std::string::String>,
8    /// <p>An object that specifies the authorization service for a domain.</p>
9    pub authorizer_config: ::std::option::Option<crate::types::AuthorizerConfig>,
10    /// <p>The status to which the domain configuration should be updated.</p>
11    pub domain_configuration_status: ::std::option::Option<crate::types::DomainConfigurationStatus>,
12    /// <p>Removes the authorization configuration from a domain.</p>
13    pub remove_authorizer_config: ::std::option::Option<bool>,
14    /// <p>An object that specifies the TLS configuration for a domain.</p>
15    pub tls_config: ::std::option::Option<crate::types::TlsConfig>,
16    /// <p>The server certificate configuration.</p>
17    pub server_certificate_config: ::std::option::Option<crate::types::ServerCertificateConfig>,
18    /// <p>An enumerated string that specifies the authentication type.</p>
19    /// <ul>
20    /// <li>
21    /// <p><code>CUSTOM_AUTH_X509</code> - Use custom authentication and authorization with additional details from the X.509 client certificate.</p></li>
22    /// </ul>
23    /// <ul>
24    /// <li>
25    /// <p><code>CUSTOM_AUTH</code> - Use custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">Custom authentication and authorization</a>.</p></li>
26    /// </ul>
27    /// <ul>
28    /// <li>
29    /// <p><code>AWS_X509</code> - Use X.509 client certificates without custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/x509-client-certs.html">X.509 client certificates</a>.</p></li>
30    /// </ul>
31    /// <ul>
32    /// <li>
33    /// <p><code>AWS_SIGV4</code> - Use Amazon Web Services Signature Version 4. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">IAM users, groups, and roles</a>.</p></li>
34    /// </ul>
35    /// <ul>
36    /// <li>
37    /// <p><code>DEFAULT </code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify authentication type. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
38    /// </ul>
39    pub authentication_type: ::std::option::Option<crate::types::AuthenticationType>,
40    /// <p>An enumerated string that specifies the application-layer protocol.</p>
41    /// <ul>
42    /// <li>
43    /// <p><code>SECURE_MQTT</code> - MQTT over TLS.</p></li>
44    /// </ul>
45    /// <ul>
46    /// <li>
47    /// <p><code>MQTT_WSS</code> - MQTT over WebSocket.</p></li>
48    /// </ul>
49    /// <ul>
50    /// <li>
51    /// <p><code>HTTPS</code> - HTTP over TLS.</p></li>
52    /// </ul>
53    /// <ul>
54    /// <li>
55    /// <p><code>DEFAULT</code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify application_layer protocol. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
56    /// </ul>
57    pub application_protocol: ::std::option::Option<crate::types::ApplicationProtocol>,
58    /// <p>An object that specifies the client certificate configuration for a domain.</p>
59    pub client_certificate_config: ::std::option::Option<crate::types::ClientCertificateConfig>,
60}
61impl UpdateDomainConfigurationInput {
62    /// <p>The name of the domain configuration to be updated.</p>
63    pub fn domain_configuration_name(&self) -> ::std::option::Option<&str> {
64        self.domain_configuration_name.as_deref()
65    }
66    /// <p>An object that specifies the authorization service for a domain.</p>
67    pub fn authorizer_config(&self) -> ::std::option::Option<&crate::types::AuthorizerConfig> {
68        self.authorizer_config.as_ref()
69    }
70    /// <p>The status to which the domain configuration should be updated.</p>
71    pub fn domain_configuration_status(&self) -> ::std::option::Option<&crate::types::DomainConfigurationStatus> {
72        self.domain_configuration_status.as_ref()
73    }
74    /// <p>Removes the authorization configuration from a domain.</p>
75    pub fn remove_authorizer_config(&self) -> ::std::option::Option<bool> {
76        self.remove_authorizer_config
77    }
78    /// <p>An object that specifies the TLS configuration for a domain.</p>
79    pub fn tls_config(&self) -> ::std::option::Option<&crate::types::TlsConfig> {
80        self.tls_config.as_ref()
81    }
82    /// <p>The server certificate configuration.</p>
83    pub fn server_certificate_config(&self) -> ::std::option::Option<&crate::types::ServerCertificateConfig> {
84        self.server_certificate_config.as_ref()
85    }
86    /// <p>An enumerated string that specifies the authentication type.</p>
87    /// <ul>
88    /// <li>
89    /// <p><code>CUSTOM_AUTH_X509</code> - Use custom authentication and authorization with additional details from the X.509 client certificate.</p></li>
90    /// </ul>
91    /// <ul>
92    /// <li>
93    /// <p><code>CUSTOM_AUTH</code> - Use custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">Custom authentication and authorization</a>.</p></li>
94    /// </ul>
95    /// <ul>
96    /// <li>
97    /// <p><code>AWS_X509</code> - Use X.509 client certificates without custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/x509-client-certs.html">X.509 client certificates</a>.</p></li>
98    /// </ul>
99    /// <ul>
100    /// <li>
101    /// <p><code>AWS_SIGV4</code> - Use Amazon Web Services Signature Version 4. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">IAM users, groups, and roles</a>.</p></li>
102    /// </ul>
103    /// <ul>
104    /// <li>
105    /// <p><code>DEFAULT </code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify authentication type. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
106    /// </ul>
107    pub fn authentication_type(&self) -> ::std::option::Option<&crate::types::AuthenticationType> {
108        self.authentication_type.as_ref()
109    }
110    /// <p>An enumerated string that specifies the application-layer protocol.</p>
111    /// <ul>
112    /// <li>
113    /// <p><code>SECURE_MQTT</code> - MQTT over TLS.</p></li>
114    /// </ul>
115    /// <ul>
116    /// <li>
117    /// <p><code>MQTT_WSS</code> - MQTT over WebSocket.</p></li>
118    /// </ul>
119    /// <ul>
120    /// <li>
121    /// <p><code>HTTPS</code> - HTTP over TLS.</p></li>
122    /// </ul>
123    /// <ul>
124    /// <li>
125    /// <p><code>DEFAULT</code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify application_layer protocol. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
126    /// </ul>
127    pub fn application_protocol(&self) -> ::std::option::Option<&crate::types::ApplicationProtocol> {
128        self.application_protocol.as_ref()
129    }
130    /// <p>An object that specifies the client certificate configuration for a domain.</p>
131    pub fn client_certificate_config(&self) -> ::std::option::Option<&crate::types::ClientCertificateConfig> {
132        self.client_certificate_config.as_ref()
133    }
134}
135impl UpdateDomainConfigurationInput {
136    /// Creates a new builder-style object to manufacture [`UpdateDomainConfigurationInput`](crate::operation::update_domain_configuration::UpdateDomainConfigurationInput).
137    pub fn builder() -> crate::operation::update_domain_configuration::builders::UpdateDomainConfigurationInputBuilder {
138        crate::operation::update_domain_configuration::builders::UpdateDomainConfigurationInputBuilder::default()
139    }
140}
141
142/// A builder for [`UpdateDomainConfigurationInput`](crate::operation::update_domain_configuration::UpdateDomainConfigurationInput).
143#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
144#[non_exhaustive]
145pub struct UpdateDomainConfigurationInputBuilder {
146    pub(crate) domain_configuration_name: ::std::option::Option<::std::string::String>,
147    pub(crate) authorizer_config: ::std::option::Option<crate::types::AuthorizerConfig>,
148    pub(crate) domain_configuration_status: ::std::option::Option<crate::types::DomainConfigurationStatus>,
149    pub(crate) remove_authorizer_config: ::std::option::Option<bool>,
150    pub(crate) tls_config: ::std::option::Option<crate::types::TlsConfig>,
151    pub(crate) server_certificate_config: ::std::option::Option<crate::types::ServerCertificateConfig>,
152    pub(crate) authentication_type: ::std::option::Option<crate::types::AuthenticationType>,
153    pub(crate) application_protocol: ::std::option::Option<crate::types::ApplicationProtocol>,
154    pub(crate) client_certificate_config: ::std::option::Option<crate::types::ClientCertificateConfig>,
155}
156impl UpdateDomainConfigurationInputBuilder {
157    /// <p>The name of the domain configuration to be updated.</p>
158    /// This field is required.
159    pub fn domain_configuration_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
160        self.domain_configuration_name = ::std::option::Option::Some(input.into());
161        self
162    }
163    /// <p>The name of the domain configuration to be updated.</p>
164    pub fn set_domain_configuration_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
165        self.domain_configuration_name = input;
166        self
167    }
168    /// <p>The name of the domain configuration to be updated.</p>
169    pub fn get_domain_configuration_name(&self) -> &::std::option::Option<::std::string::String> {
170        &self.domain_configuration_name
171    }
172    /// <p>An object that specifies the authorization service for a domain.</p>
173    pub fn authorizer_config(mut self, input: crate::types::AuthorizerConfig) -> Self {
174        self.authorizer_config = ::std::option::Option::Some(input);
175        self
176    }
177    /// <p>An object that specifies the authorization service for a domain.</p>
178    pub fn set_authorizer_config(mut self, input: ::std::option::Option<crate::types::AuthorizerConfig>) -> Self {
179        self.authorizer_config = input;
180        self
181    }
182    /// <p>An object that specifies the authorization service for a domain.</p>
183    pub fn get_authorizer_config(&self) -> &::std::option::Option<crate::types::AuthorizerConfig> {
184        &self.authorizer_config
185    }
186    /// <p>The status to which the domain configuration should be updated.</p>
187    pub fn domain_configuration_status(mut self, input: crate::types::DomainConfigurationStatus) -> Self {
188        self.domain_configuration_status = ::std::option::Option::Some(input);
189        self
190    }
191    /// <p>The status to which the domain configuration should be updated.</p>
192    pub fn set_domain_configuration_status(mut self, input: ::std::option::Option<crate::types::DomainConfigurationStatus>) -> Self {
193        self.domain_configuration_status = input;
194        self
195    }
196    /// <p>The status to which the domain configuration should be updated.</p>
197    pub fn get_domain_configuration_status(&self) -> &::std::option::Option<crate::types::DomainConfigurationStatus> {
198        &self.domain_configuration_status
199    }
200    /// <p>Removes the authorization configuration from a domain.</p>
201    pub fn remove_authorizer_config(mut self, input: bool) -> Self {
202        self.remove_authorizer_config = ::std::option::Option::Some(input);
203        self
204    }
205    /// <p>Removes the authorization configuration from a domain.</p>
206    pub fn set_remove_authorizer_config(mut self, input: ::std::option::Option<bool>) -> Self {
207        self.remove_authorizer_config = input;
208        self
209    }
210    /// <p>Removes the authorization configuration from a domain.</p>
211    pub fn get_remove_authorizer_config(&self) -> &::std::option::Option<bool> {
212        &self.remove_authorizer_config
213    }
214    /// <p>An object that specifies the TLS configuration for a domain.</p>
215    pub fn tls_config(mut self, input: crate::types::TlsConfig) -> Self {
216        self.tls_config = ::std::option::Option::Some(input);
217        self
218    }
219    /// <p>An object that specifies the TLS configuration for a domain.</p>
220    pub fn set_tls_config(mut self, input: ::std::option::Option<crate::types::TlsConfig>) -> Self {
221        self.tls_config = input;
222        self
223    }
224    /// <p>An object that specifies the TLS configuration for a domain.</p>
225    pub fn get_tls_config(&self) -> &::std::option::Option<crate::types::TlsConfig> {
226        &self.tls_config
227    }
228    /// <p>The server certificate configuration.</p>
229    pub fn server_certificate_config(mut self, input: crate::types::ServerCertificateConfig) -> Self {
230        self.server_certificate_config = ::std::option::Option::Some(input);
231        self
232    }
233    /// <p>The server certificate configuration.</p>
234    pub fn set_server_certificate_config(mut self, input: ::std::option::Option<crate::types::ServerCertificateConfig>) -> Self {
235        self.server_certificate_config = input;
236        self
237    }
238    /// <p>The server certificate configuration.</p>
239    pub fn get_server_certificate_config(&self) -> &::std::option::Option<crate::types::ServerCertificateConfig> {
240        &self.server_certificate_config
241    }
242    /// <p>An enumerated string that specifies the authentication type.</p>
243    /// <ul>
244    /// <li>
245    /// <p><code>CUSTOM_AUTH_X509</code> - Use custom authentication and authorization with additional details from the X.509 client certificate.</p></li>
246    /// </ul>
247    /// <ul>
248    /// <li>
249    /// <p><code>CUSTOM_AUTH</code> - Use custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">Custom authentication and authorization</a>.</p></li>
250    /// </ul>
251    /// <ul>
252    /// <li>
253    /// <p><code>AWS_X509</code> - Use X.509 client certificates without custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/x509-client-certs.html">X.509 client certificates</a>.</p></li>
254    /// </ul>
255    /// <ul>
256    /// <li>
257    /// <p><code>AWS_SIGV4</code> - Use Amazon Web Services Signature Version 4. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">IAM users, groups, and roles</a>.</p></li>
258    /// </ul>
259    /// <ul>
260    /// <li>
261    /// <p><code>DEFAULT </code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify authentication type. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
262    /// </ul>
263    pub fn authentication_type(mut self, input: crate::types::AuthenticationType) -> Self {
264        self.authentication_type = ::std::option::Option::Some(input);
265        self
266    }
267    /// <p>An enumerated string that specifies the authentication type.</p>
268    /// <ul>
269    /// <li>
270    /// <p><code>CUSTOM_AUTH_X509</code> - Use custom authentication and authorization with additional details from the X.509 client certificate.</p></li>
271    /// </ul>
272    /// <ul>
273    /// <li>
274    /// <p><code>CUSTOM_AUTH</code> - Use custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">Custom authentication and authorization</a>.</p></li>
275    /// </ul>
276    /// <ul>
277    /// <li>
278    /// <p><code>AWS_X509</code> - Use X.509 client certificates without custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/x509-client-certs.html">X.509 client certificates</a>.</p></li>
279    /// </ul>
280    /// <ul>
281    /// <li>
282    /// <p><code>AWS_SIGV4</code> - Use Amazon Web Services Signature Version 4. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">IAM users, groups, and roles</a>.</p></li>
283    /// </ul>
284    /// <ul>
285    /// <li>
286    /// <p><code>DEFAULT </code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify authentication type. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
287    /// </ul>
288    pub fn set_authentication_type(mut self, input: ::std::option::Option<crate::types::AuthenticationType>) -> Self {
289        self.authentication_type = input;
290        self
291    }
292    /// <p>An enumerated string that specifies the authentication type.</p>
293    /// <ul>
294    /// <li>
295    /// <p><code>CUSTOM_AUTH_X509</code> - Use custom authentication and authorization with additional details from the X.509 client certificate.</p></li>
296    /// </ul>
297    /// <ul>
298    /// <li>
299    /// <p><code>CUSTOM_AUTH</code> - Use custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">Custom authentication and authorization</a>.</p></li>
300    /// </ul>
301    /// <ul>
302    /// <li>
303    /// <p><code>AWS_X509</code> - Use X.509 client certificates without custom authentication and authorization. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/x509-client-certs.html">X.509 client certificates</a>.</p></li>
304    /// </ul>
305    /// <ul>
306    /// <li>
307    /// <p><code>AWS_SIGV4</code> - Use Amazon Web Services Signature Version 4. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/custom-authentication.html">IAM users, groups, and roles</a>.</p></li>
308    /// </ul>
309    /// <ul>
310    /// <li>
311    /// <p><code>DEFAULT </code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify authentication type. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
312    /// </ul>
313    pub fn get_authentication_type(&self) -> &::std::option::Option<crate::types::AuthenticationType> {
314        &self.authentication_type
315    }
316    /// <p>An enumerated string that specifies the application-layer protocol.</p>
317    /// <ul>
318    /// <li>
319    /// <p><code>SECURE_MQTT</code> - MQTT over TLS.</p></li>
320    /// </ul>
321    /// <ul>
322    /// <li>
323    /// <p><code>MQTT_WSS</code> - MQTT over WebSocket.</p></li>
324    /// </ul>
325    /// <ul>
326    /// <li>
327    /// <p><code>HTTPS</code> - HTTP over TLS.</p></li>
328    /// </ul>
329    /// <ul>
330    /// <li>
331    /// <p><code>DEFAULT</code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify application_layer protocol. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
332    /// </ul>
333    pub fn application_protocol(mut self, input: crate::types::ApplicationProtocol) -> Self {
334        self.application_protocol = ::std::option::Option::Some(input);
335        self
336    }
337    /// <p>An enumerated string that specifies the application-layer protocol.</p>
338    /// <ul>
339    /// <li>
340    /// <p><code>SECURE_MQTT</code> - MQTT over TLS.</p></li>
341    /// </ul>
342    /// <ul>
343    /// <li>
344    /// <p><code>MQTT_WSS</code> - MQTT over WebSocket.</p></li>
345    /// </ul>
346    /// <ul>
347    /// <li>
348    /// <p><code>HTTPS</code> - HTTP over TLS.</p></li>
349    /// </ul>
350    /// <ul>
351    /// <li>
352    /// <p><code>DEFAULT</code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify application_layer protocol. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
353    /// </ul>
354    pub fn set_application_protocol(mut self, input: ::std::option::Option<crate::types::ApplicationProtocol>) -> Self {
355        self.application_protocol = input;
356        self
357    }
358    /// <p>An enumerated string that specifies the application-layer protocol.</p>
359    /// <ul>
360    /// <li>
361    /// <p><code>SECURE_MQTT</code> - MQTT over TLS.</p></li>
362    /// </ul>
363    /// <ul>
364    /// <li>
365    /// <p><code>MQTT_WSS</code> - MQTT over WebSocket.</p></li>
366    /// </ul>
367    /// <ul>
368    /// <li>
369    /// <p><code>HTTPS</code> - HTTP over TLS.</p></li>
370    /// </ul>
371    /// <ul>
372    /// <li>
373    /// <p><code>DEFAULT</code> - Use a combination of port and Application Layer Protocol Negotiation (ALPN) to specify application_layer protocol. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html">Device communication protocols</a>.</p></li>
374    /// </ul>
375    pub fn get_application_protocol(&self) -> &::std::option::Option<crate::types::ApplicationProtocol> {
376        &self.application_protocol
377    }
378    /// <p>An object that specifies the client certificate configuration for a domain.</p>
379    pub fn client_certificate_config(mut self, input: crate::types::ClientCertificateConfig) -> Self {
380        self.client_certificate_config = ::std::option::Option::Some(input);
381        self
382    }
383    /// <p>An object that specifies the client certificate configuration for a domain.</p>
384    pub fn set_client_certificate_config(mut self, input: ::std::option::Option<crate::types::ClientCertificateConfig>) -> Self {
385        self.client_certificate_config = input;
386        self
387    }
388    /// <p>An object that specifies the client certificate configuration for a domain.</p>
389    pub fn get_client_certificate_config(&self) -> &::std::option::Option<crate::types::ClientCertificateConfig> {
390        &self.client_certificate_config
391    }
392    /// Consumes the builder and constructs a [`UpdateDomainConfigurationInput`](crate::operation::update_domain_configuration::UpdateDomainConfigurationInput).
393    pub fn build(
394        self,
395    ) -> ::std::result::Result<
396        crate::operation::update_domain_configuration::UpdateDomainConfigurationInput,
397        ::aws_smithy_types::error::operation::BuildError,
398    > {
399        ::std::result::Result::Ok(crate::operation::update_domain_configuration::UpdateDomainConfigurationInput {
400            domain_configuration_name: self.domain_configuration_name,
401            authorizer_config: self.authorizer_config,
402            domain_configuration_status: self.domain_configuration_status,
403            remove_authorizer_config: self.remove_authorizer_config,
404            tls_config: self.tls_config,
405            server_certificate_config: self.server_certificate_config,
406            authentication_type: self.authentication_type,
407            application_protocol: self.application_protocol,
408            client_certificate_config: self.client_certificate_config,
409        })
410    }
411}