aws_sdk_iot/operation/create_command/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_command::_create_command_output::CreateCommandOutputBuilder;
3
4pub use crate::operation::create_command::_create_command_input::CreateCommandInputBuilder;
5
6impl crate::operation::create_command::builders::CreateCommandInputBuilder {
7 /// Sends a request with this input using the given client.
8 pub async fn send_with(
9 self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12 crate::operation::create_command::CreateCommandOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_command::CreateCommandError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_command();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateCommand`.
24///
25/// <p>Creates a command. A command contains reusable configurations that can be applied before they are sent to the devices.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateCommandFluentBuilder {
28 handle: ::std::sync::Arc<crate::client::Handle>,
29 inner: crate::operation::create_command::builders::CreateCommandInputBuilder,
30 config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33 crate::client::customize::internal::CustomizableSend<
34 crate::operation::create_command::CreateCommandOutput,
35 crate::operation::create_command::CreateCommandError,
36 > for CreateCommandFluentBuilder
37{
38 fn send(
39 self,
40 config_override: crate::config::Builder,
41 ) -> crate::client::customize::internal::BoxFuture<
42 crate::client::customize::internal::SendResult<
43 crate::operation::create_command::CreateCommandOutput,
44 crate::operation::create_command::CreateCommandError,
45 >,
46 > {
47 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48 }
49}
50impl CreateCommandFluentBuilder {
51 /// Creates a new `CreateCommandFluentBuilder`.
52 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53 Self {
54 handle,
55 inner: ::std::default::Default::default(),
56 config_override: ::std::option::Option::None,
57 }
58 }
59 /// Access the CreateCommand as a reference.
60 pub fn as_input(&self) -> &crate::operation::create_command::builders::CreateCommandInputBuilder {
61 &self.inner
62 }
63 /// Sends the request and returns the response.
64 ///
65 /// If an error occurs, an `SdkError` will be returned with additional details that
66 /// can be matched against.
67 ///
68 /// By default, any retryable failures will be retried twice. Retry behavior
69 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70 /// set when configuring the client.
71 pub async fn send(
72 self,
73 ) -> ::std::result::Result<
74 crate::operation::create_command::CreateCommandOutput,
75 ::aws_smithy_runtime_api::client::result::SdkError<
76 crate::operation::create_command::CreateCommandError,
77 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78 >,
79 > {
80 let input = self
81 .inner
82 .build()
83 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84 let runtime_plugins = crate::operation::create_command::CreateCommand::operation_runtime_plugins(
85 self.handle.runtime_plugins.clone(),
86 &self.handle.conf,
87 self.config_override,
88 );
89 crate::operation::create_command::CreateCommand::orchestrate(&runtime_plugins, input).await
90 }
91
92 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93 pub fn customize(
94 self,
95 ) -> crate::client::customize::CustomizableOperation<
96 crate::operation::create_command::CreateCommandOutput,
97 crate::operation::create_command::CreateCommandError,
98 Self,
99 > {
100 crate::client::customize::CustomizableOperation::new(self)
101 }
102 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103 self.set_config_override(::std::option::Option::Some(config_override.into()));
104 self
105 }
106
107 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108 self.config_override = config_override;
109 self
110 }
111 /// <p>A unique identifier for the command. We recommend using UUID. Alpha-numeric characters, hyphens, and underscores are valid for use here.</p>
112 pub fn command_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113 self.inner = self.inner.command_id(input.into());
114 self
115 }
116 /// <p>A unique identifier for the command. We recommend using UUID. Alpha-numeric characters, hyphens, and underscores are valid for use here.</p>
117 pub fn set_command_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118 self.inner = self.inner.set_command_id(input);
119 self
120 }
121 /// <p>A unique identifier for the command. We recommend using UUID. Alpha-numeric characters, hyphens, and underscores are valid for use here.</p>
122 pub fn get_command_id(&self) -> &::std::option::Option<::std::string::String> {
123 self.inner.get_command_id()
124 }
125 /// <p>The namespace of the command. The MQTT reserved topics and validations will be used for command executions according to the namespace setting.</p>
126 pub fn namespace(mut self, input: crate::types::CommandNamespace) -> Self {
127 self.inner = self.inner.namespace(input);
128 self
129 }
130 /// <p>The namespace of the command. The MQTT reserved topics and validations will be used for command executions according to the namespace setting.</p>
131 pub fn set_namespace(mut self, input: ::std::option::Option<crate::types::CommandNamespace>) -> Self {
132 self.inner = self.inner.set_namespace(input);
133 self
134 }
135 /// <p>The namespace of the command. The MQTT reserved topics and validations will be used for command executions according to the namespace setting.</p>
136 pub fn get_namespace(&self) -> &::std::option::Option<crate::types::CommandNamespace> {
137 self.inner.get_namespace()
138 }
139 /// <p>The user-friendly name in the console for the command. This name doesn't have to be unique. You can update the user-friendly name after you define it.</p>
140 pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141 self.inner = self.inner.display_name(input.into());
142 self
143 }
144 /// <p>The user-friendly name in the console for the command. This name doesn't have to be unique. You can update the user-friendly name after you define it.</p>
145 pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146 self.inner = self.inner.set_display_name(input);
147 self
148 }
149 /// <p>The user-friendly name in the console for the command. This name doesn't have to be unique. You can update the user-friendly name after you define it.</p>
150 pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
151 self.inner.get_display_name()
152 }
153 /// <p>A short text decription of the command.</p>
154 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
155 self.inner = self.inner.description(input.into());
156 self
157 }
158 /// <p>A short text decription of the command.</p>
159 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
160 self.inner = self.inner.set_description(input);
161 self
162 }
163 /// <p>A short text decription of the command.</p>
164 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
165 self.inner.get_description()
166 }
167 /// <p>The payload object for the static command.</p>
168 /// <p>You can upload a static payload file from your local storage that contains the instructions for the device to process. The payload file can use any format. To make sure that the device correctly interprets the payload, we recommend you to specify the payload content type.</p>
169 pub fn payload(mut self, input: crate::types::CommandPayload) -> Self {
170 self.inner = self.inner.payload(input);
171 self
172 }
173 /// <p>The payload object for the static command.</p>
174 /// <p>You can upload a static payload file from your local storage that contains the instructions for the device to process. The payload file can use any format. To make sure that the device correctly interprets the payload, we recommend you to specify the payload content type.</p>
175 pub fn set_payload(mut self, input: ::std::option::Option<crate::types::CommandPayload>) -> Self {
176 self.inner = self.inner.set_payload(input);
177 self
178 }
179 /// <p>The payload object for the static command.</p>
180 /// <p>You can upload a static payload file from your local storage that contains the instructions for the device to process. The payload file can use any format. To make sure that the device correctly interprets the payload, we recommend you to specify the payload content type.</p>
181 pub fn get_payload(&self) -> &::std::option::Option<crate::types::CommandPayload> {
182 self.inner.get_payload()
183 }
184 /// <p>The payload template for the dynamic command.</p><note>
185 /// <p>This parameter is required for dynamic commands where the command execution placeholders are supplied either from <code>mandatoryParameters</code> or when <code>StartCommandExecution</code> is invoked.</p>
186 /// </note>
187 pub fn payload_template(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
188 self.inner = self.inner.payload_template(input.into());
189 self
190 }
191 /// <p>The payload template for the dynamic command.</p><note>
192 /// <p>This parameter is required for dynamic commands where the command execution placeholders are supplied either from <code>mandatoryParameters</code> or when <code>StartCommandExecution</code> is invoked.</p>
193 /// </note>
194 pub fn set_payload_template(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
195 self.inner = self.inner.set_payload_template(input);
196 self
197 }
198 /// <p>The payload template for the dynamic command.</p><note>
199 /// <p>This parameter is required for dynamic commands where the command execution placeholders are supplied either from <code>mandatoryParameters</code> or when <code>StartCommandExecution</code> is invoked.</p>
200 /// </note>
201 pub fn get_payload_template(&self) -> &::std::option::Option<::std::string::String> {
202 self.inner.get_payload_template()
203 }
204 /// <p>Configuration that determines how <code>payloadTemplate</code> is processed to generate command execution payload.</p><note>
205 /// <p>This parameter is required for dynamic commands, along with <code>payloadTemplate</code>, and <code>mandatoryParameters</code>.</p>
206 /// </note>
207 pub fn preprocessor(mut self, input: crate::types::CommandPreprocessor) -> Self {
208 self.inner = self.inner.preprocessor(input);
209 self
210 }
211 /// <p>Configuration that determines how <code>payloadTemplate</code> is processed to generate command execution payload.</p><note>
212 /// <p>This parameter is required for dynamic commands, along with <code>payloadTemplate</code>, and <code>mandatoryParameters</code>.</p>
213 /// </note>
214 pub fn set_preprocessor(mut self, input: ::std::option::Option<crate::types::CommandPreprocessor>) -> Self {
215 self.inner = self.inner.set_preprocessor(input);
216 self
217 }
218 /// <p>Configuration that determines how <code>payloadTemplate</code> is processed to generate command execution payload.</p><note>
219 /// <p>This parameter is required for dynamic commands, along with <code>payloadTemplate</code>, and <code>mandatoryParameters</code>.</p>
220 /// </note>
221 pub fn get_preprocessor(&self) -> &::std::option::Option<crate::types::CommandPreprocessor> {
222 self.inner.get_preprocessor()
223 }
224 ///
225 /// Appends an item to `mandatoryParameters`.
226 ///
227 /// To override the contents of this collection use [`set_mandatory_parameters`](Self::set_mandatory_parameters).
228 ///
229 /// <p>A list of parameters that are used by <code>StartCommandExecution</code> API for execution payload generation.</p>
230 pub fn mandatory_parameters(mut self, input: crate::types::CommandParameter) -> Self {
231 self.inner = self.inner.mandatory_parameters(input);
232 self
233 }
234 /// <p>A list of parameters that are used by <code>StartCommandExecution</code> API for execution payload generation.</p>
235 pub fn set_mandatory_parameters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::CommandParameter>>) -> Self {
236 self.inner = self.inner.set_mandatory_parameters(input);
237 self
238 }
239 /// <p>A list of parameters that are used by <code>StartCommandExecution</code> API for execution payload generation.</p>
240 pub fn get_mandatory_parameters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::CommandParameter>> {
241 self.inner.get_mandatory_parameters()
242 }
243 /// <p>The IAM role that you must provide when using the <code>AWS-IoT-FleetWise</code> namespace. The role grants IoT Device Management the permission to access IoT FleetWise resources for generating the payload for the command. This field is not supported when you use the <code>AWS-IoT</code> namespace.</p>
244 pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
245 self.inner = self.inner.role_arn(input.into());
246 self
247 }
248 /// <p>The IAM role that you must provide when using the <code>AWS-IoT-FleetWise</code> namespace. The role grants IoT Device Management the permission to access IoT FleetWise resources for generating the payload for the command. This field is not supported when you use the <code>AWS-IoT</code> namespace.</p>
249 pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
250 self.inner = self.inner.set_role_arn(input);
251 self
252 }
253 /// <p>The IAM role that you must provide when using the <code>AWS-IoT-FleetWise</code> namespace. The role grants IoT Device Management the permission to access IoT FleetWise resources for generating the payload for the command. This field is not supported when you use the <code>AWS-IoT</code> namespace.</p>
254 pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
255 self.inner.get_role_arn()
256 }
257 ///
258 /// Appends an item to `tags`.
259 ///
260 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
261 ///
262 /// <p>Name-value pairs that are used as metadata to manage a command.</p>
263 pub fn tags(mut self, input: crate::types::Tag) -> Self {
264 self.inner = self.inner.tags(input);
265 self
266 }
267 /// <p>Name-value pairs that are used as metadata to manage a command.</p>
268 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
269 self.inner = self.inner.set_tags(input);
270 self
271 }
272 /// <p>Name-value pairs that are used as metadata to manage a command.</p>
273 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
274 self.inner.get_tags()
275 }
276}