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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p>Contains information about a Security Hub CSPM insight.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Insight {
/// <p>The ARN of a Security Hub CSPM insight.</p>
pub insight_arn: ::std::option::Option<::std::string::String>,
/// <p>The name of a Security Hub CSPM insight.</p>
pub name: ::std::option::Option<::std::string::String>,
/// <p>One or more attributes used to filter the findings included in the insight. You can filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter values. The insight only includes findings that match the criteria defined in the filters.</p>
pub filters: ::std::option::Option<crate::types::AwsSecurityFindingFilters>,
/// <p>The grouping attribute for the insight's findings. Indicates how to group the matching findings, and identifies the type of item that the insight applies to. For example, if an insight is grouped by resource identifier, then the insight produces a list of resource identifiers.</p>
pub group_by_attribute: ::std::option::Option<::std::string::String>,
}
impl Insight {
/// <p>The ARN of a Security Hub CSPM insight.</p>
pub fn insight_arn(&self) -> ::std::option::Option<&str> {
self.insight_arn.as_deref()
}
/// <p>The name of a Security Hub CSPM insight.</p>
pub fn name(&self) -> ::std::option::Option<&str> {
self.name.as_deref()
}
/// <p>One or more attributes used to filter the findings included in the insight. You can filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter values. The insight only includes findings that match the criteria defined in the filters.</p>
pub fn filters(&self) -> ::std::option::Option<&crate::types::AwsSecurityFindingFilters> {
self.filters.as_ref()
}
/// <p>The grouping attribute for the insight's findings. Indicates how to group the matching findings, and identifies the type of item that the insight applies to. For example, if an insight is grouped by resource identifier, then the insight produces a list of resource identifiers.</p>
pub fn group_by_attribute(&self) -> ::std::option::Option<&str> {
self.group_by_attribute.as_deref()
}
}
impl Insight {
/// Creates a new builder-style object to manufacture [`Insight`](crate::types::Insight).
pub fn builder() -> crate::types::builders::InsightBuilder {
crate::types::builders::InsightBuilder::default()
}
}
/// A builder for [`Insight`](crate::types::Insight).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct InsightBuilder {
pub(crate) insight_arn: ::std::option::Option<::std::string::String>,
pub(crate) name: ::std::option::Option<::std::string::String>,
pub(crate) filters: ::std::option::Option<crate::types::AwsSecurityFindingFilters>,
pub(crate) group_by_attribute: ::std::option::Option<::std::string::String>,
}
impl InsightBuilder {
/// <p>The ARN of a Security Hub CSPM insight.</p>
/// This field is required.
pub fn insight_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.insight_arn = ::std::option::Option::Some(input.into());
self
}
/// <p>The ARN of a Security Hub CSPM insight.</p>
pub fn set_insight_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.insight_arn = input;
self
}
/// <p>The ARN of a Security Hub CSPM insight.</p>
pub fn get_insight_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.insight_arn
}
/// <p>The name of a Security Hub CSPM insight.</p>
/// This field is required.
pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.name = ::std::option::Option::Some(input.into());
self
}
/// <p>The name of a Security Hub CSPM insight.</p>
pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.name = input;
self
}
/// <p>The name of a Security Hub CSPM insight.</p>
pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
&self.name
}
/// <p>One or more attributes used to filter the findings included in the insight. You can filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter values. The insight only includes findings that match the criteria defined in the filters.</p>
/// This field is required.
pub fn filters(mut self, input: crate::types::AwsSecurityFindingFilters) -> Self {
self.filters = ::std::option::Option::Some(input);
self
}
/// <p>One or more attributes used to filter the findings included in the insight. You can filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter values. The insight only includes findings that match the criteria defined in the filters.</p>
pub fn set_filters(mut self, input: ::std::option::Option<crate::types::AwsSecurityFindingFilters>) -> Self {
self.filters = input;
self
}
/// <p>One or more attributes used to filter the findings included in the insight. You can filter by up to ten finding attributes. For each attribute, you can provide up to 20 filter values. The insight only includes findings that match the criteria defined in the filters.</p>
pub fn get_filters(&self) -> &::std::option::Option<crate::types::AwsSecurityFindingFilters> {
&self.filters
}
/// <p>The grouping attribute for the insight's findings. Indicates how to group the matching findings, and identifies the type of item that the insight applies to. For example, if an insight is grouped by resource identifier, then the insight produces a list of resource identifiers.</p>
/// This field is required.
pub fn group_by_attribute(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.group_by_attribute = ::std::option::Option::Some(input.into());
self
}
/// <p>The grouping attribute for the insight's findings. Indicates how to group the matching findings, and identifies the type of item that the insight applies to. For example, if an insight is grouped by resource identifier, then the insight produces a list of resource identifiers.</p>
pub fn set_group_by_attribute(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.group_by_attribute = input;
self
}
/// <p>The grouping attribute for the insight's findings. Indicates how to group the matching findings, and identifies the type of item that the insight applies to. For example, if an insight is grouped by resource identifier, then the insight produces a list of resource identifiers.</p>
pub fn get_group_by_attribute(&self) -> &::std::option::Option<::std::string::String> {
&self.group_by_attribute
}
/// Consumes the builder and constructs a [`Insight`](crate::types::Insight).
pub fn build(self) -> crate::types::Insight {
crate::types::Insight {
insight_arn: self.insight_arn,
name: self.name,
filters: self.filters,
group_by_attribute: self.group_by_attribute,
}
}
}