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,
})
}
}