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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
// 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 CreateArchiveInput {
/// <p>The name for the archive to create.</p>
pub archive_name: ::std::option::Option<::std::string::String>,
/// <p>The ARN of the event bus that sends events to the archive.</p>
pub event_source_arn: ::std::option::Option<::std::string::String>,
/// <p>A description for the archive.</p>
pub description: ::std::option::Option<::std::string::String>,
/// <p>An event pattern to use to filter events sent to the archive.</p>
pub event_pattern: ::std::option::Option<::std::string::String>,
/// <p>The number of days to retain events for. Default value is 0. If set to 0, events are retained indefinitely</p>
pub retention_days: ::std::option::Option<i32>,
/// <p>The identifier of the KMS customer managed key for EventBridge to use, if you choose to use a customer managed key to encrypt this archive. The identifier can be the key Amazon Resource Name (ARN), KeyId, key alias, or key alias ARN.</p>
/// <p>If you do not specify a customer managed key identifier, EventBridge uses an Amazon Web Services owned key to encrypt the archive.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html">Identify and view keys</a> in the <i>Key Management Service Developer Guide</i>.</p><important>
/// <p>If you have specified that EventBridge use a customer managed key for encrypting the source event bus, we strongly recommend you also specify a customer managed key for any archives for the event bus as well.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/encryption-archives.html">Encrypting archives</a> in the <i>Amazon EventBridge User Guide</i>.</p>
/// </important>
pub kms_key_identifier: ::std::option::Option<::std::string::String>,
}
impl CreateArchiveInput {
/// <p>The name for the archive to create.</p>
pub fn archive_name(&self) -> ::std::option::Option<&str> {
self.archive_name.as_deref()
}
/// <p>The ARN of the event bus that sends events to the archive.</p>
pub fn event_source_arn(&self) -> ::std::option::Option<&str> {
self.event_source_arn.as_deref()
}
/// <p>A description for the archive.</p>
pub fn description(&self) -> ::std::option::Option<&str> {
self.description.as_deref()
}
/// <p>An event pattern to use to filter events sent to the archive.</p>
pub fn event_pattern(&self) -> ::std::option::Option<&str> {
self.event_pattern.as_deref()
}
/// <p>The number of days to retain events for. Default value is 0. If set to 0, events are retained indefinitely</p>
pub fn retention_days(&self) -> ::std::option::Option<i32> {
self.retention_days
}
/// <p>The identifier of the KMS customer managed key for EventBridge to use, if you choose to use a customer managed key to encrypt this archive. The identifier can be the key Amazon Resource Name (ARN), KeyId, key alias, or key alias ARN.</p>
/// <p>If you do not specify a customer managed key identifier, EventBridge uses an Amazon Web Services owned key to encrypt the archive.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html">Identify and view keys</a> in the <i>Key Management Service Developer Guide</i>.</p><important>
/// <p>If you have specified that EventBridge use a customer managed key for encrypting the source event bus, we strongly recommend you also specify a customer managed key for any archives for the event bus as well.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/encryption-archives.html">Encrypting archives</a> in the <i>Amazon EventBridge User Guide</i>.</p>
/// </important>
pub fn kms_key_identifier(&self) -> ::std::option::Option<&str> {
self.kms_key_identifier.as_deref()
}
}
impl CreateArchiveInput {
/// Creates a new builder-style object to manufacture [`CreateArchiveInput`](crate::operation::create_archive::CreateArchiveInput).
pub fn builder() -> crate::operation::create_archive::builders::CreateArchiveInputBuilder {
crate::operation::create_archive::builders::CreateArchiveInputBuilder::default()
}
}
/// A builder for [`CreateArchiveInput`](crate::operation::create_archive::CreateArchiveInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CreateArchiveInputBuilder {
pub(crate) archive_name: ::std::option::Option<::std::string::String>,
pub(crate) event_source_arn: ::std::option::Option<::std::string::String>,
pub(crate) description: ::std::option::Option<::std::string::String>,
pub(crate) event_pattern: ::std::option::Option<::std::string::String>,
pub(crate) retention_days: ::std::option::Option<i32>,
pub(crate) kms_key_identifier: ::std::option::Option<::std::string::String>,
}
impl CreateArchiveInputBuilder {
/// <p>The name for the archive to create.</p>
/// This field is required.
pub fn archive_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.archive_name = ::std::option::Option::Some(input.into());
self
}
/// <p>The name for the archive to create.</p>
pub fn set_archive_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.archive_name = input;
self
}
/// <p>The name for the archive to create.</p>
pub fn get_archive_name(&self) -> &::std::option::Option<::std::string::String> {
&self.archive_name
}
/// <p>The ARN of the event bus that sends events to the archive.</p>
/// This field is required.
pub fn event_source_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.event_source_arn = ::std::option::Option::Some(input.into());
self
}
/// <p>The ARN of the event bus that sends events to the archive.</p>
pub fn set_event_source_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.event_source_arn = input;
self
}
/// <p>The ARN of the event bus that sends events to the archive.</p>
pub fn get_event_source_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.event_source_arn
}
/// <p>A description for the archive.</p>
pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.description = ::std::option::Option::Some(input.into());
self
}
/// <p>A description for the archive.</p>
pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.description = input;
self
}
/// <p>A description for the archive.</p>
pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
&self.description
}
/// <p>An event pattern to use to filter events sent to the archive.</p>
pub fn event_pattern(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.event_pattern = ::std::option::Option::Some(input.into());
self
}
/// <p>An event pattern to use to filter events sent to the archive.</p>
pub fn set_event_pattern(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.event_pattern = input;
self
}
/// <p>An event pattern to use to filter events sent to the archive.</p>
pub fn get_event_pattern(&self) -> &::std::option::Option<::std::string::String> {
&self.event_pattern
}
/// <p>The number of days to retain events for. Default value is 0. If set to 0, events are retained indefinitely</p>
pub fn retention_days(mut self, input: i32) -> Self {
self.retention_days = ::std::option::Option::Some(input);
self
}
/// <p>The number of days to retain events for. Default value is 0. If set to 0, events are retained indefinitely</p>
pub fn set_retention_days(mut self, input: ::std::option::Option<i32>) -> Self {
self.retention_days = input;
self
}
/// <p>The number of days to retain events for. Default value is 0. If set to 0, events are retained indefinitely</p>
pub fn get_retention_days(&self) -> &::std::option::Option<i32> {
&self.retention_days
}
/// <p>The identifier of the KMS customer managed key for EventBridge to use, if you choose to use a customer managed key to encrypt this archive. The identifier can be the key Amazon Resource Name (ARN), KeyId, key alias, or key alias ARN.</p>
/// <p>If you do not specify a customer managed key identifier, EventBridge uses an Amazon Web Services owned key to encrypt the archive.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html">Identify and view keys</a> in the <i>Key Management Service Developer Guide</i>.</p><important>
/// <p>If you have specified that EventBridge use a customer managed key for encrypting the source event bus, we strongly recommend you also specify a customer managed key for any archives for the event bus as well.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/encryption-archives.html">Encrypting archives</a> in the <i>Amazon EventBridge User Guide</i>.</p>
/// </important>
pub fn kms_key_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.kms_key_identifier = ::std::option::Option::Some(input.into());
self
}
/// <p>The identifier of the KMS customer managed key for EventBridge to use, if you choose to use a customer managed key to encrypt this archive. The identifier can be the key Amazon Resource Name (ARN), KeyId, key alias, or key alias ARN.</p>
/// <p>If you do not specify a customer managed key identifier, EventBridge uses an Amazon Web Services owned key to encrypt the archive.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html">Identify and view keys</a> in the <i>Key Management Service Developer Guide</i>.</p><important>
/// <p>If you have specified that EventBridge use a customer managed key for encrypting the source event bus, we strongly recommend you also specify a customer managed key for any archives for the event bus as well.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/encryption-archives.html">Encrypting archives</a> in the <i>Amazon EventBridge User Guide</i>.</p>
/// </important>
pub fn set_kms_key_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.kms_key_identifier = input;
self
}
/// <p>The identifier of the KMS customer managed key for EventBridge to use, if you choose to use a customer managed key to encrypt this archive. The identifier can be the key Amazon Resource Name (ARN), KeyId, key alias, or key alias ARN.</p>
/// <p>If you do not specify a customer managed key identifier, EventBridge uses an Amazon Web Services owned key to encrypt the archive.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html">Identify and view keys</a> in the <i>Key Management Service Developer Guide</i>.</p><important>
/// <p>If you have specified that EventBridge use a customer managed key for encrypting the source event bus, we strongly recommend you also specify a customer managed key for any archives for the event bus as well.</p>
/// <p>For more information, see <a href="https://docs.aws.amazon.com/eventbridge/latest/userguide/encryption-archives.html">Encrypting archives</a> in the <i>Amazon EventBridge User Guide</i>.</p>
/// </important>
pub fn get_kms_key_identifier(&self) -> &::std::option::Option<::std::string::String> {
&self.kms_key_identifier
}
/// Consumes the builder and constructs a [`CreateArchiveInput`](crate::operation::create_archive::CreateArchiveInput).
pub fn build(
self,
) -> ::std::result::Result<crate::operation::create_archive::CreateArchiveInput, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::operation::create_archive::CreateArchiveInput {
archive_name: self.archive_name,
event_source_arn: self.event_source_arn,
description: self.description,
event_pattern: self.event_pattern,
retention_days: self.retention_days,
kms_key_identifier: self.kms_key_identifier,
})
}
}