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}