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
// 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 StartBulkDeploymentInput {
/// A client token used to correlate requests and responses.
#[doc(hidden)]
pub amzn_client_token: std::option::Option<std::string::String>,
/// The ARN of the execution role to associate with the bulk deployment operation. This IAM role must allow the ''greengrass:CreateDeployment'' action for all group versions that are listed in the input file. This IAM role must have access to the S3 bucket containing the input file.
#[doc(hidden)]
pub execution_role_arn: std::option::Option<std::string::String>,
/// The URI of the input file contained in the S3 bucket. The execution role must have ''getObject'' permissions on this bucket to access the input file. The input file is a JSON-serialized, line delimited file with UTF-8 encoding that provides a list of group and version IDs and the deployment type. This file must be less than 100 MB. Currently, AWS IoT Greengrass supports only ''NewDeployment'' deployment types.
#[doc(hidden)]
pub input_file_uri: std::option::Option<std::string::String>,
/// Tag(s) to add to the new resource.
#[doc(hidden)]
pub tags:
std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
}
impl StartBulkDeploymentInput {
/// A client token used to correlate requests and responses.
pub fn amzn_client_token(&self) -> std::option::Option<&str> {
self.amzn_client_token.as_deref()
}
/// The ARN of the execution role to associate with the bulk deployment operation. This IAM role must allow the ''greengrass:CreateDeployment'' action for all group versions that are listed in the input file. This IAM role must have access to the S3 bucket containing the input file.
pub fn execution_role_arn(&self) -> std::option::Option<&str> {
self.execution_role_arn.as_deref()
}
/// The URI of the input file contained in the S3 bucket. The execution role must have ''getObject'' permissions on this bucket to access the input file. The input file is a JSON-serialized, line delimited file with UTF-8 encoding that provides a list of group and version IDs and the deployment type. This file must be less than 100 MB. Currently, AWS IoT Greengrass supports only ''NewDeployment'' deployment types.
pub fn input_file_uri(&self) -> std::option::Option<&str> {
self.input_file_uri.as_deref()
}
/// Tag(s) to add to the new resource.
pub fn tags(
&self,
) -> std::option::Option<&std::collections::HashMap<std::string::String, std::string::String>>
{
self.tags.as_ref()
}
}
impl StartBulkDeploymentInput {
/// Creates a new builder-style object to manufacture [`StartBulkDeploymentInput`](crate::operation::start_bulk_deployment::StartBulkDeploymentInput).
pub fn builder(
) -> crate::operation::start_bulk_deployment::builders::StartBulkDeploymentInputBuilder {
crate::operation::start_bulk_deployment::builders::StartBulkDeploymentInputBuilder::default(
)
}
}
/// A builder for [`StartBulkDeploymentInput`](crate::operation::start_bulk_deployment::StartBulkDeploymentInput).
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq, std::default::Default, std::fmt::Debug)]
pub struct StartBulkDeploymentInputBuilder {
pub(crate) amzn_client_token: std::option::Option<std::string::String>,
pub(crate) execution_role_arn: std::option::Option<std::string::String>,
pub(crate) input_file_uri: std::option::Option<std::string::String>,
pub(crate) tags:
std::option::Option<std::collections::HashMap<std::string::String, std::string::String>>,
}
impl StartBulkDeploymentInputBuilder {
/// A client token used to correlate requests and responses.
pub fn amzn_client_token(mut self, input: impl Into<std::string::String>) -> Self {
self.amzn_client_token = Some(input.into());
self
}
/// A client token used to correlate requests and responses.
pub fn set_amzn_client_token(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.amzn_client_token = input;
self
}
/// The ARN of the execution role to associate with the bulk deployment operation. This IAM role must allow the ''greengrass:CreateDeployment'' action for all group versions that are listed in the input file. This IAM role must have access to the S3 bucket containing the input file.
pub fn execution_role_arn(mut self, input: impl Into<std::string::String>) -> Self {
self.execution_role_arn = Some(input.into());
self
}
/// The ARN of the execution role to associate with the bulk deployment operation. This IAM role must allow the ''greengrass:CreateDeployment'' action for all group versions that are listed in the input file. This IAM role must have access to the S3 bucket containing the input file.
pub fn set_execution_role_arn(
mut self,
input: std::option::Option<std::string::String>,
) -> Self {
self.execution_role_arn = input;
self
}
/// The URI of the input file contained in the S3 bucket. The execution role must have ''getObject'' permissions on this bucket to access the input file. The input file is a JSON-serialized, line delimited file with UTF-8 encoding that provides a list of group and version IDs and the deployment type. This file must be less than 100 MB. Currently, AWS IoT Greengrass supports only ''NewDeployment'' deployment types.
pub fn input_file_uri(mut self, input: impl Into<std::string::String>) -> Self {
self.input_file_uri = Some(input.into());
self
}
/// The URI of the input file contained in the S3 bucket. The execution role must have ''getObject'' permissions on this bucket to access the input file. The input file is a JSON-serialized, line delimited file with UTF-8 encoding that provides a list of group and version IDs and the deployment type. This file must be less than 100 MB. Currently, AWS IoT Greengrass supports only ''NewDeployment'' deployment types.
pub fn set_input_file_uri(mut self, input: std::option::Option<std::string::String>) -> Self {
self.input_file_uri = input;
self
}
/// Adds a key-value pair to `tags`.
///
/// To override the contents of this collection use [`set_tags`](Self::set_tags).
///
/// Tag(s) to add to the new resource.
pub fn tags(
mut self,
k: impl Into<std::string::String>,
v: impl Into<std::string::String>,
) -> Self {
let mut hash_map = self.tags.unwrap_or_default();
hash_map.insert(k.into(), v.into());
self.tags = Some(hash_map);
self
}
/// Tag(s) to add to the new resource.
pub fn set_tags(
mut self,
input: std::option::Option<
std::collections::HashMap<std::string::String, std::string::String>,
>,
) -> Self {
self.tags = input;
self
}
/// Consumes the builder and constructs a [`StartBulkDeploymentInput`](crate::operation::start_bulk_deployment::StartBulkDeploymentInput).
pub fn build(
self,
) -> Result<
crate::operation::start_bulk_deployment::StartBulkDeploymentInput,
aws_smithy_http::operation::error::BuildError,
> {
Ok(
crate::operation::start_bulk_deployment::StartBulkDeploymentInput {
amzn_client_token: self.amzn_client_token,
execution_role_arn: self.execution_role_arn,
input_file_uri: self.input_file_uri,
tags: self.tags,
},
)
}
}