aws_sdk_accessanalyzer/operation/create_analyzer/
_create_analyzer_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>Creates an analyzer.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct CreateAnalyzerInput {
7    /// <p>The name of the analyzer to create.</p>
8    pub analyzer_name: ::std::option::Option<::std::string::String>,
9    /// <p>The type of analyzer to create. Only <code>ACCOUNT</code>, <code>ORGANIZATION</code>, <code>ACCOUNT_UNUSED_ACCESS</code>, and <code>ORGANIZATION_UNUSED_ACCESS</code> analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>
10    pub r#type: ::std::option::Option<crate::types::Type>,
11    /// <p>Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.</p>
12    pub archive_rules: ::std::option::Option<::std::vec::Vec<crate::types::InlineArchiveRule>>,
13    /// <p>An array of key-value pairs to apply to the analyzer. You can use the set of Unicode letters, digits, whitespace, <code>_</code>, <code>.</code>, <code>/</code>, <code>=</code>, <code>+</code>, and <code>-</code>.</p>
14    /// <p>For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with <code>aws:</code>.</p>
15    /// <p>For the tag value, you can specify a value that is 0 to 256 characters in length.</p>
16    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
17    /// <p>A client token.</p>
18    pub client_token: ::std::option::Option<::std::string::String>,
19    /// <p>Specifies the configuration of the analyzer. If the analyzer is an unused access analyzer, the specified scope of unused access is used for the configuration.</p>
20    pub configuration: ::std::option::Option<crate::types::AnalyzerConfiguration>,
21}
22impl CreateAnalyzerInput {
23    /// <p>The name of the analyzer to create.</p>
24    pub fn analyzer_name(&self) -> ::std::option::Option<&str> {
25        self.analyzer_name.as_deref()
26    }
27    /// <p>The type of analyzer to create. Only <code>ACCOUNT</code>, <code>ORGANIZATION</code>, <code>ACCOUNT_UNUSED_ACCESS</code>, and <code>ORGANIZATION_UNUSED_ACCESS</code> analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>
28    pub fn r#type(&self) -> ::std::option::Option<&crate::types::Type> {
29        self.r#type.as_ref()
30    }
31    /// <p>Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.</p>
32    ///
33    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.archive_rules.is_none()`.
34    pub fn archive_rules(&self) -> &[crate::types::InlineArchiveRule] {
35        self.archive_rules.as_deref().unwrap_or_default()
36    }
37    /// <p>An array of key-value pairs to apply to the analyzer. You can use the set of Unicode letters, digits, whitespace, <code>_</code>, <code>.</code>, <code>/</code>, <code>=</code>, <code>+</code>, and <code>-</code>.</p>
38    /// <p>For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with <code>aws:</code>.</p>
39    /// <p>For the tag value, you can specify a value that is 0 to 256 characters in length.</p>
40    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
41        self.tags.as_ref()
42    }
43    /// <p>A client token.</p>
44    pub fn client_token(&self) -> ::std::option::Option<&str> {
45        self.client_token.as_deref()
46    }
47    /// <p>Specifies the configuration of the analyzer. If the analyzer is an unused access analyzer, the specified scope of unused access is used for the configuration.</p>
48    pub fn configuration(&self) -> ::std::option::Option<&crate::types::AnalyzerConfiguration> {
49        self.configuration.as_ref()
50    }
51}
52impl CreateAnalyzerInput {
53    /// Creates a new builder-style object to manufacture [`CreateAnalyzerInput`](crate::operation::create_analyzer::CreateAnalyzerInput).
54    pub fn builder() -> crate::operation::create_analyzer::builders::CreateAnalyzerInputBuilder {
55        crate::operation::create_analyzer::builders::CreateAnalyzerInputBuilder::default()
56    }
57}
58
59/// A builder for [`CreateAnalyzerInput`](crate::operation::create_analyzer::CreateAnalyzerInput).
60#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
61#[non_exhaustive]
62pub struct CreateAnalyzerInputBuilder {
63    pub(crate) analyzer_name: ::std::option::Option<::std::string::String>,
64    pub(crate) r#type: ::std::option::Option<crate::types::Type>,
65    pub(crate) archive_rules: ::std::option::Option<::std::vec::Vec<crate::types::InlineArchiveRule>>,
66    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
67    pub(crate) client_token: ::std::option::Option<::std::string::String>,
68    pub(crate) configuration: ::std::option::Option<crate::types::AnalyzerConfiguration>,
69}
70impl CreateAnalyzerInputBuilder {
71    /// <p>The name of the analyzer to create.</p>
72    /// This field is required.
73    pub fn analyzer_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
74        self.analyzer_name = ::std::option::Option::Some(input.into());
75        self
76    }
77    /// <p>The name of the analyzer to create.</p>
78    pub fn set_analyzer_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
79        self.analyzer_name = input;
80        self
81    }
82    /// <p>The name of the analyzer to create.</p>
83    pub fn get_analyzer_name(&self) -> &::std::option::Option<::std::string::String> {
84        &self.analyzer_name
85    }
86    /// <p>The type of analyzer to create. Only <code>ACCOUNT</code>, <code>ORGANIZATION</code>, <code>ACCOUNT_UNUSED_ACCESS</code>, and <code>ORGANIZATION_UNUSED_ACCESS</code> analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>
87    /// This field is required.
88    pub fn r#type(mut self, input: crate::types::Type) -> Self {
89        self.r#type = ::std::option::Option::Some(input);
90        self
91    }
92    /// <p>The type of analyzer to create. Only <code>ACCOUNT</code>, <code>ORGANIZATION</code>, <code>ACCOUNT_UNUSED_ACCESS</code>, and <code>ORGANIZATION_UNUSED_ACCESS</code> analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>
93    pub fn set_type(mut self, input: ::std::option::Option<crate::types::Type>) -> Self {
94        self.r#type = input;
95        self
96    }
97    /// <p>The type of analyzer to create. Only <code>ACCOUNT</code>, <code>ORGANIZATION</code>, <code>ACCOUNT_UNUSED_ACCESS</code>, and <code>ORGANIZATION_UNUSED_ACCESS</code> analyzers are supported. You can create only one analyzer per account per Region. You can create up to 5 analyzers per organization per Region.</p>
98    pub fn get_type(&self) -> &::std::option::Option<crate::types::Type> {
99        &self.r#type
100    }
101    /// Appends an item to `archive_rules`.
102    ///
103    /// To override the contents of this collection use [`set_archive_rules`](Self::set_archive_rules).
104    ///
105    /// <p>Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.</p>
106    pub fn archive_rules(mut self, input: crate::types::InlineArchiveRule) -> Self {
107        let mut v = self.archive_rules.unwrap_or_default();
108        v.push(input);
109        self.archive_rules = ::std::option::Option::Some(v);
110        self
111    }
112    /// <p>Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.</p>
113    pub fn set_archive_rules(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InlineArchiveRule>>) -> Self {
114        self.archive_rules = input;
115        self
116    }
117    /// <p>Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule.</p>
118    pub fn get_archive_rules(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InlineArchiveRule>> {
119        &self.archive_rules
120    }
121    /// Adds a key-value pair to `tags`.
122    ///
123    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
124    ///
125    /// <p>An array of key-value pairs to apply to the analyzer. You can use the set of Unicode letters, digits, whitespace, <code>_</code>, <code>.</code>, <code>/</code>, <code>=</code>, <code>+</code>, and <code>-</code>.</p>
126    /// <p>For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with <code>aws:</code>.</p>
127    /// <p>For the tag value, you can specify a value that is 0 to 256 characters in length.</p>
128    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
129        let mut hash_map = self.tags.unwrap_or_default();
130        hash_map.insert(k.into(), v.into());
131        self.tags = ::std::option::Option::Some(hash_map);
132        self
133    }
134    /// <p>An array of key-value pairs to apply to the analyzer. You can use the set of Unicode letters, digits, whitespace, <code>_</code>, <code>.</code>, <code>/</code>, <code>=</code>, <code>+</code>, and <code>-</code>.</p>
135    /// <p>For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with <code>aws:</code>.</p>
136    /// <p>For the tag value, you can specify a value that is 0 to 256 characters in length.</p>
137    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
138        self.tags = input;
139        self
140    }
141    /// <p>An array of key-value pairs to apply to the analyzer. You can use the set of Unicode letters, digits, whitespace, <code>_</code>, <code>.</code>, <code>/</code>, <code>=</code>, <code>+</code>, and <code>-</code>.</p>
142    /// <p>For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with <code>aws:</code>.</p>
143    /// <p>For the tag value, you can specify a value that is 0 to 256 characters in length.</p>
144    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
145        &self.tags
146    }
147    /// <p>A client token.</p>
148    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
149        self.client_token = ::std::option::Option::Some(input.into());
150        self
151    }
152    /// <p>A client token.</p>
153    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
154        self.client_token = input;
155        self
156    }
157    /// <p>A client token.</p>
158    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
159        &self.client_token
160    }
161    /// <p>Specifies the configuration of the analyzer. If the analyzer is an unused access analyzer, the specified scope of unused access is used for the configuration.</p>
162    pub fn configuration(mut self, input: crate::types::AnalyzerConfiguration) -> Self {
163        self.configuration = ::std::option::Option::Some(input);
164        self
165    }
166    /// <p>Specifies the configuration of the analyzer. If the analyzer is an unused access analyzer, the specified scope of unused access is used for the configuration.</p>
167    pub fn set_configuration(mut self, input: ::std::option::Option<crate::types::AnalyzerConfiguration>) -> Self {
168        self.configuration = input;
169        self
170    }
171    /// <p>Specifies the configuration of the analyzer. If the analyzer is an unused access analyzer, the specified scope of unused access is used for the configuration.</p>
172    pub fn get_configuration(&self) -> &::std::option::Option<crate::types::AnalyzerConfiguration> {
173        &self.configuration
174    }
175    /// Consumes the builder and constructs a [`CreateAnalyzerInput`](crate::operation::create_analyzer::CreateAnalyzerInput).
176    pub fn build(
177        self,
178    ) -> ::std::result::Result<crate::operation::create_analyzer::CreateAnalyzerInput, ::aws_smithy_types::error::operation::BuildError> {
179        ::std::result::Result::Ok(crate::operation::create_analyzer::CreateAnalyzerInput {
180            analyzer_name: self.analyzer_name,
181            r#type: self.r#type,
182            archive_rules: self.archive_rules,
183            tags: self.tags,
184            client_token: self.client_token,
185            configuration: self.configuration,
186        })
187    }
188}