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}