aws_sdk_controltower/operation/enable_control/
_enable_control_input.rs

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
133
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct EnableControlInput {
    /// <p>The ARN of the control. Only <b>Strongly recommended</b> and <b>Elective</b> controls are permitted, with the exception of the <b>Region deny</b> control. For information on how to find the <code>controlIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    pub control_identifier: ::std::option::Option<::std::string::String>,
    /// <p>The ARN of the organizational unit. For information on how to find the <code>targetIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    pub target_identifier: ::std::option::Option<::std::string::String>,
    /// <p>Tags to be applied to the <code>EnabledControl</code> resource.</p>
    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    /// <p>A list of input parameter values, which are specified to configure the control when you enable it.</p>
    pub parameters: ::std::option::Option<::std::vec::Vec<crate::types::EnabledControlParameter>>,
}
impl EnableControlInput {
    /// <p>The ARN of the control. Only <b>Strongly recommended</b> and <b>Elective</b> controls are permitted, with the exception of the <b>Region deny</b> control. For information on how to find the <code>controlIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    pub fn control_identifier(&self) -> ::std::option::Option<&str> {
        self.control_identifier.as_deref()
    }
    /// <p>The ARN of the organizational unit. For information on how to find the <code>targetIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    pub fn target_identifier(&self) -> ::std::option::Option<&str> {
        self.target_identifier.as_deref()
    }
    /// <p>Tags to be applied to the <code>EnabledControl</code> resource.</p>
    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        self.tags.as_ref()
    }
    /// <p>A list of input parameter values, which are specified to configure the control when you enable it.</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 `.parameters.is_none()`.
    pub fn parameters(&self) -> &[crate::types::EnabledControlParameter] {
        self.parameters.as_deref().unwrap_or_default()
    }
}
impl EnableControlInput {
    /// Creates a new builder-style object to manufacture [`EnableControlInput`](crate::operation::enable_control::EnableControlInput).
    pub fn builder() -> crate::operation::enable_control::builders::EnableControlInputBuilder {
        crate::operation::enable_control::builders::EnableControlInputBuilder::default()
    }
}

/// A builder for [`EnableControlInput`](crate::operation::enable_control::EnableControlInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct EnableControlInputBuilder {
    pub(crate) control_identifier: ::std::option::Option<::std::string::String>,
    pub(crate) target_identifier: ::std::option::Option<::std::string::String>,
    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    pub(crate) parameters: ::std::option::Option<::std::vec::Vec<crate::types::EnabledControlParameter>>,
}
impl EnableControlInputBuilder {
    /// <p>The ARN of the control. Only <b>Strongly recommended</b> and <b>Elective</b> controls are permitted, with the exception of the <b>Region deny</b> control. For information on how to find the <code>controlIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    /// This field is required.
    pub fn control_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.control_identifier = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ARN of the control. Only <b>Strongly recommended</b> and <b>Elective</b> controls are permitted, with the exception of the <b>Region deny</b> control. For information on how to find the <code>controlIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    pub fn set_control_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.control_identifier = input;
        self
    }
    /// <p>The ARN of the control. Only <b>Strongly recommended</b> and <b>Elective</b> controls are permitted, with the exception of the <b>Region deny</b> control. For information on how to find the <code>controlIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    pub fn get_control_identifier(&self) -> &::std::option::Option<::std::string::String> {
        &self.control_identifier
    }
    /// <p>The ARN of the organizational unit. For information on how to find the <code>targetIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    /// This field is required.
    pub fn target_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.target_identifier = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The ARN of the organizational unit. For information on how to find the <code>targetIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    pub fn set_target_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.target_identifier = input;
        self
    }
    /// <p>The ARN of the organizational unit. For information on how to find the <code>targetIdentifier</code>, see <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/Welcome.html">the overview page</a>.</p>
    pub fn get_target_identifier(&self) -> &::std::option::Option<::std::string::String> {
        &self.target_identifier
    }
    /// Adds a key-value pair to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>Tags to be applied to the <code>EnabledControl</code> resource.</p>
    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut hash_map = self.tags.unwrap_or_default();
        hash_map.insert(k.into(), v.into());
        self.tags = ::std::option::Option::Some(hash_map);
        self
    }
    /// <p>Tags to be applied to the <code>EnabledControl</code> resource.</p>
    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
        self.tags = input;
        self
    }
    /// <p>Tags to be applied to the <code>EnabledControl</code> resource.</p>
    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        &self.tags
    }
    /// Appends an item to `parameters`.
    ///
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
    ///
    /// <p>A list of input parameter values, which are specified to configure the control when you enable it.</p>
    pub fn parameters(mut self, input: crate::types::EnabledControlParameter) -> Self {
        let mut v = self.parameters.unwrap_or_default();
        v.push(input);
        self.parameters = ::std::option::Option::Some(v);
        self
    }
    /// <p>A list of input parameter values, which are specified to configure the control when you enable it.</p>
    pub fn set_parameters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::EnabledControlParameter>>) -> Self {
        self.parameters = input;
        self
    }
    /// <p>A list of input parameter values, which are specified to configure the control when you enable it.</p>
    pub fn get_parameters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::EnabledControlParameter>> {
        &self.parameters
    }
    /// Consumes the builder and constructs a [`EnableControlInput`](crate::operation::enable_control::EnableControlInput).
    pub fn build(
        self,
    ) -> ::std::result::Result<crate::operation::enable_control::EnableControlInput, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::operation::enable_control::EnableControlInput {
            control_identifier: self.control_identifier,
            target_identifier: self.target_identifier,
            tags: self.tags,
            parameters: self.parameters,
        })
    }
}