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 command. You must specify this information when using the <code>AWS-IoT</code> namespace.</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 command. You must specify this information when using the <code>AWS-IoT</code> namespace.</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 command. You must specify this information when using the <code>AWS-IoT</code> namespace.</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    ///
185    /// Appends an item to `mandatoryParameters`.
186    ///
187    /// To override the contents of this collection use [`set_mandatory_parameters`](Self::set_mandatory_parameters).
188    ///
189    /// <p>A list of parameters that are required by the <code>StartCommandExecution</code> API. These parameters need to be specified only when using the <code>AWS-IoT-FleetWise</code> namespace. You can either specify them here or when running the command using the <code>StartCommandExecution</code> API.</p>
190    pub fn mandatory_parameters(mut self, input: crate::types::CommandParameter) -> Self {
191        self.inner = self.inner.mandatory_parameters(input);
192        self
193    }
194    /// <p>A list of parameters that are required by the <code>StartCommandExecution</code> API. These parameters need to be specified only when using the <code>AWS-IoT-FleetWise</code> namespace. You can either specify them here or when running the command using the <code>StartCommandExecution</code> API.</p>
195    pub fn set_mandatory_parameters(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::CommandParameter>>) -> Self {
196        self.inner = self.inner.set_mandatory_parameters(input);
197        self
198    }
199    /// <p>A list of parameters that are required by the <code>StartCommandExecution</code> API. These parameters need to be specified only when using the <code>AWS-IoT-FleetWise</code> namespace. You can either specify them here or when running the command using the <code>StartCommandExecution</code> API.</p>
200    pub fn get_mandatory_parameters(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::CommandParameter>> {
201        self.inner.get_mandatory_parameters()
202    }
203    /// <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 required when you use the <code>AWS-IoT</code> namespace.</p>
204    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
205        self.inner = self.inner.role_arn(input.into());
206        self
207    }
208    /// <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 required when you use the <code>AWS-IoT</code> namespace.</p>
209    pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
210        self.inner = self.inner.set_role_arn(input);
211        self
212    }
213    /// <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 required when you use the <code>AWS-IoT</code> namespace.</p>
214    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
215        self.inner.get_role_arn()
216    }
217    ///
218    /// Appends an item to `tags`.
219    ///
220    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
221    ///
222    /// <p>Name-value pairs that are used as metadata to manage a command.</p>
223    pub fn tags(mut self, input: crate::types::Tag) -> Self {
224        self.inner = self.inner.tags(input);
225        self
226    }
227    /// <p>Name-value pairs that are used as metadata to manage a command.</p>
228    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
229        self.inner = self.inner.set_tags(input);
230        self
231    }
232    /// <p>Name-value pairs that are used as metadata to manage a command.</p>
233    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
234        self.inner.get_tags()
235    }
236}