1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Replaces the current set of name servers for the domain with the specified set of name servers. If you use Amazon Route 53 as your DNS service, specify the four name servers in the delegation set for the hosted zone for the domain.</p>
/// <p>If successful, this operation returns an operation ID that you can use to track the progress and completion of the action. If the request is not completed successfully, the domain registrant will be notified by email.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
pub struct UpdateDomainNameserversInput {
    /// <p>The name of the domain that you want to change name servers for.</p>
    pub domain_name: ::std::option::Option<::std::string::String>,
    /// <p>The authorization key for .fi domains</p>
    #[deprecated]
    pub fi_auth_key: ::std::option::Option<::std::string::String>,
    /// <p>A list of new name servers for the domain.</p>
    pub nameservers: ::std::option::Option<::std::vec::Vec<crate::types::Nameserver>>,
}
impl UpdateDomainNameserversInput {
    /// <p>The name of the domain that you want to change name servers for.</p>
    pub fn domain_name(&self) -> ::std::option::Option<&str> {
        self.domain_name.as_deref()
    }
    /// <p>The authorization key for .fi domains</p>
    #[deprecated]
    pub fn fi_auth_key(&self) -> ::std::option::Option<&str> {
        self.fi_auth_key.as_deref()
    }
    /// <p>A list of new name servers for the domain.</p>
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.nameservers.is_none()`.
    pub fn nameservers(&self) -> &[crate::types::Nameserver] {
        self.nameservers.as_deref().unwrap_or_default()
    }
}
impl ::std::fmt::Debug for UpdateDomainNameserversInput {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        let mut formatter = f.debug_struct("UpdateDomainNameserversInput");
        formatter.field("domain_name", &self.domain_name);
        formatter.field("fi_auth_key", &"*** Sensitive Data Redacted ***");
        formatter.field("nameservers", &self.nameservers);
        formatter.finish()
    }
}
impl UpdateDomainNameserversInput {
    /// Creates a new builder-style object to manufacture [`UpdateDomainNameserversInput`](crate::operation::update_domain_nameservers::UpdateDomainNameserversInput).
    pub fn builder() -> crate::operation::update_domain_nameservers::builders::UpdateDomainNameserversInputBuilder {
        crate::operation::update_domain_nameservers::builders::UpdateDomainNameserversInputBuilder::default()
    }
}

/// A builder for [`UpdateDomainNameserversInput`](crate::operation::update_domain_nameservers::UpdateDomainNameserversInput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
pub struct UpdateDomainNameserversInputBuilder {
    pub(crate) domain_name: ::std::option::Option<::std::string::String>,
    pub(crate) fi_auth_key: ::std::option::Option<::std::string::String>,
    pub(crate) nameservers: ::std::option::Option<::std::vec::Vec<crate::types::Nameserver>>,
}
impl UpdateDomainNameserversInputBuilder {
    /// <p>The name of the domain that you want to change name servers for.</p>
    /// This field is required.
    pub fn domain_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.domain_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the domain that you want to change name servers for.</p>
    pub fn set_domain_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.domain_name = input;
        self
    }
    /// <p>The name of the domain that you want to change name servers for.</p>
    pub fn get_domain_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.domain_name
    }
    /// <p>The authorization key for .fi domains</p>
    #[deprecated]
    pub fn fi_auth_key(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.fi_auth_key = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The authorization key for .fi domains</p>
    #[deprecated]
    pub fn set_fi_auth_key(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.fi_auth_key = input;
        self
    }
    /// <p>The authorization key for .fi domains</p>
    #[deprecated]
    pub fn get_fi_auth_key(&self) -> &::std::option::Option<::std::string::String> {
        &self.fi_auth_key
    }
    /// Appends an item to `nameservers`.
    ///
    /// To override the contents of this collection use [`set_nameservers`](Self::set_nameservers).
    ///
    /// <p>A list of new name servers for the domain.</p>
    pub fn nameservers(mut self, input: crate::types::Nameserver) -> Self {
        let mut v = self.nameservers.unwrap_or_default();
        v.push(input);
        self.nameservers = ::std::option::Option::Some(v);
        self
    }
    /// <p>A list of new name servers for the domain.</p>
    pub fn set_nameservers(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Nameserver>>) -> Self {
        self.nameservers = input;
        self
    }
    /// <p>A list of new name servers for the domain.</p>
    pub fn get_nameservers(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Nameserver>> {
        &self.nameservers
    }
    /// Consumes the builder and constructs a [`UpdateDomainNameserversInput`](crate::operation::update_domain_nameservers::UpdateDomainNameserversInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<
        crate::operation::update_domain_nameservers::UpdateDomainNameserversInput,
        ::aws_smithy_types::error::operation::BuildError,
    > {
        ::std::result::Result::Ok(crate::operation::update_domain_nameservers::UpdateDomainNameserversInput {
            domain_name: self.domain_name,
            fi_auth_key: self.fi_auth_key,
            nameservers: self.nameservers,
        })
    }
}
impl ::std::fmt::Debug for UpdateDomainNameserversInputBuilder {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        let mut formatter = f.debug_struct("UpdateDomainNameserversInputBuilder");
        formatter.field("domain_name", &self.domain_name);
        formatter.field("fi_auth_key", &"*** Sensitive Data Redacted ***");
        formatter.field("nameservers", &self.nameservers);
        formatter.finish()
    }
}