aws_sdk_ssm/operation/send_command/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::send_command::_send_command_output::SendCommandOutputBuilder;
3
4pub use crate::operation::send_command::_send_command_input::SendCommandInputBuilder;
5
6impl crate::operation::send_command::builders::SendCommandInputBuilder {
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::send_command::SendCommandOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::send_command::SendCommandError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.send_command();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `SendCommand`.
24///
25/// <p>Runs commands on one or more managed nodes.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct SendCommandFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::send_command::builders::SendCommandInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::send_command::SendCommandOutput,
35        crate::operation::send_command::SendCommandError,
36    > for SendCommandFluentBuilder
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::send_command::SendCommandOutput,
44            crate::operation::send_command::SendCommandError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl SendCommandFluentBuilder {
51    /// Creates a new `SendCommandFluentBuilder`.
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 SendCommand as a reference.
60    pub fn as_input(&self) -> &crate::operation::send_command::builders::SendCommandInputBuilder {
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::send_command::SendCommandOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::send_command::SendCommandError,
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::send_command::SendCommand::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::send_command::SendCommand::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::send_command::SendCommandOutput,
97        crate::operation::send_command::SendCommandError,
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    ///
112    /// Appends an item to `InstanceIds`.
113    ///
114    /// To override the contents of this collection use [`set_instance_ids`](Self::set_instance_ids).
115    ///
116    /// <p>The IDs of the managed nodes where the command should run. Specifying managed node IDs is most useful when you are targeting a limited number of managed nodes, though you can specify up to 50 IDs.</p>
117    /// <p>To target a larger number of managed nodes, or if you prefer not to list individual node IDs, we recommend using the <code>Targets</code> option instead. Using <code>Targets</code>, which accepts tag key-value pairs to identify the managed nodes to send commands to, you can a send command to tens, hundreds, or thousands of nodes at once.</p>
118    /// <p>For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Run commands at scale</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
119    pub fn instance_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
120        self.inner = self.inner.instance_ids(input.into());
121        self
122    }
123    /// <p>The IDs of the managed nodes where the command should run. Specifying managed node IDs is most useful when you are targeting a limited number of managed nodes, though you can specify up to 50 IDs.</p>
124    /// <p>To target a larger number of managed nodes, or if you prefer not to list individual node IDs, we recommend using the <code>Targets</code> option instead. Using <code>Targets</code>, which accepts tag key-value pairs to identify the managed nodes to send commands to, you can a send command to tens, hundreds, or thousands of nodes at once.</p>
125    /// <p>For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Run commands at scale</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
126    pub fn set_instance_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
127        self.inner = self.inner.set_instance_ids(input);
128        self
129    }
130    /// <p>The IDs of the managed nodes where the command should run. Specifying managed node IDs is most useful when you are targeting a limited number of managed nodes, though you can specify up to 50 IDs.</p>
131    /// <p>To target a larger number of managed nodes, or if you prefer not to list individual node IDs, we recommend using the <code>Targets</code> option instead. Using <code>Targets</code>, which accepts tag key-value pairs to identify the managed nodes to send commands to, you can a send command to tens, hundreds, or thousands of nodes at once.</p>
132    /// <p>For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Run commands at scale</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
133    pub fn get_instance_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
134        self.inner.get_instance_ids()
135    }
136    ///
137    /// Appends an item to `Targets`.
138    ///
139    /// To override the contents of this collection use [`set_targets`](Self::set_targets).
140    ///
141    /// <p>An array of search criteria that targets managed nodes using a <code>Key,Value</code> combination that you specify. Specifying targets is most useful when you want to send a command to a large number of managed nodes at once. Using <code>Targets</code>, which accepts tag key-value pairs to identify managed nodes, you can send a command to tens, hundreds, or thousands of nodes at once.</p>
142    /// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
143    /// <p>For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Run commands at scale</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
144    pub fn targets(mut self, input: crate::types::Target) -> Self {
145        self.inner = self.inner.targets(input);
146        self
147    }
148    /// <p>An array of search criteria that targets managed nodes using a <code>Key,Value</code> combination that you specify. Specifying targets is most useful when you want to send a command to a large number of managed nodes at once. Using <code>Targets</code>, which accepts tag key-value pairs to identify managed nodes, you can send a command to tens, hundreds, or thousands of nodes at once.</p>
149    /// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
150    /// <p>For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Run commands at scale</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
151    pub fn set_targets(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Target>>) -> Self {
152        self.inner = self.inner.set_targets(input);
153        self
154    }
155    /// <p>An array of search criteria that targets managed nodes using a <code>Key,Value</code> combination that you specify. Specifying targets is most useful when you want to send a command to a large number of managed nodes at once. Using <code>Targets</code>, which accepts tag key-value pairs to identify managed nodes, you can send a command to tens, hundreds, or thousands of nodes at once.</p>
156    /// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
157    /// <p>For more information about how to use targets, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html">Run commands at scale</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
158    pub fn get_targets(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Target>> {
159        self.inner.get_targets()
160    }
161    /// <p>The name of the Amazon Web Services Systems Manager document (SSM document) to run. This can be a public document or a custom document. To run a shared document belonging to another account, specify the document Amazon Resource Name (ARN). For more information about how to use shared documents, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html">Sharing SSM documents</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p><note>
162    /// <p>If you specify a document name or ARN that hasn't been shared with your account, you receive an <code>InvalidDocument</code> error.</p>
163    /// </note>
164    pub fn document_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
165        self.inner = self.inner.document_name(input.into());
166        self
167    }
168    /// <p>The name of the Amazon Web Services Systems Manager document (SSM document) to run. This can be a public document or a custom document. To run a shared document belonging to another account, specify the document Amazon Resource Name (ARN). For more information about how to use shared documents, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html">Sharing SSM documents</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p><note>
169    /// <p>If you specify a document name or ARN that hasn't been shared with your account, you receive an <code>InvalidDocument</code> error.</p>
170    /// </note>
171    pub fn set_document_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
172        self.inner = self.inner.set_document_name(input);
173        self
174    }
175    /// <p>The name of the Amazon Web Services Systems Manager document (SSM document) to run. This can be a public document or a custom document. To run a shared document belonging to another account, specify the document Amazon Resource Name (ARN). For more information about how to use shared documents, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-using-shared.html">Sharing SSM documents</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p><note>
176    /// <p>If you specify a document name or ARN that hasn't been shared with your account, you receive an <code>InvalidDocument</code> error.</p>
177    /// </note>
178    pub fn get_document_name(&self) -> &::std::option::Option<::std::string::String> {
179        self.inner.get_document_name()
180    }
181    /// <p>The SSM document version to use in the request. You can specify $DEFAULT, $LATEST, or a specific version number. If you run commands by using the Command Line Interface (Amazon Web Services CLI), then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p>
182    /// <p>--document-version "\$DEFAULT"</p>
183    /// <p>--document-version "\$LATEST"</p>
184    /// <p>--document-version "3"</p>
185    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
186        self.inner = self.inner.document_version(input.into());
187        self
188    }
189    /// <p>The SSM document version to use in the request. You can specify $DEFAULT, $LATEST, or a specific version number. If you run commands by using the Command Line Interface (Amazon Web Services CLI), then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p>
190    /// <p>--document-version "\$DEFAULT"</p>
191    /// <p>--document-version "\$LATEST"</p>
192    /// <p>--document-version "3"</p>
193    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
194        self.inner = self.inner.set_document_version(input);
195        self
196    }
197    /// <p>The SSM document version to use in the request. You can specify $DEFAULT, $LATEST, or a specific version number. If you run commands by using the Command Line Interface (Amazon Web Services CLI), then you must escape the first two options by using a backslash. If you specify a version number, then you don't need to use the backslash. For example:</p>
198    /// <p>--document-version "\$DEFAULT"</p>
199    /// <p>--document-version "\$LATEST"</p>
200    /// <p>--document-version "3"</p>
201    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
202        self.inner.get_document_version()
203    }
204    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
205    /// <p>Sha1 hashes have been deprecated.</p>
206    /// </note>
207    pub fn document_hash(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
208        self.inner = self.inner.document_hash(input.into());
209        self
210    }
211    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
212    /// <p>Sha1 hashes have been deprecated.</p>
213    /// </note>
214    pub fn set_document_hash(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
215        self.inner = self.inner.set_document_hash(input);
216        self
217    }
218    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
219    /// <p>Sha1 hashes have been deprecated.</p>
220    /// </note>
221    pub fn get_document_hash(&self) -> &::std::option::Option<::std::string::String> {
222        self.inner.get_document_hash()
223    }
224    /// <p>Sha256 or Sha1.</p><note>
225    /// <p>Sha1 hashes have been deprecated.</p>
226    /// </note>
227    pub fn document_hash_type(mut self, input: crate::types::DocumentHashType) -> Self {
228        self.inner = self.inner.document_hash_type(input);
229        self
230    }
231    /// <p>Sha256 or Sha1.</p><note>
232    /// <p>Sha1 hashes have been deprecated.</p>
233    /// </note>
234    pub fn set_document_hash_type(mut self, input: ::std::option::Option<crate::types::DocumentHashType>) -> Self {
235        self.inner = self.inner.set_document_hash_type(input);
236        self
237    }
238    /// <p>Sha256 or Sha1.</p><note>
239    /// <p>Sha1 hashes have been deprecated.</p>
240    /// </note>
241    pub fn get_document_hash_type(&self) -> &::std::option::Option<crate::types::DocumentHashType> {
242        self.inner.get_document_hash_type()
243    }
244    /// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
245    pub fn timeout_seconds(mut self, input: i32) -> Self {
246        self.inner = self.inner.timeout_seconds(input);
247        self
248    }
249    /// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
250    pub fn set_timeout_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
251        self.inner = self.inner.set_timeout_seconds(input);
252        self
253    }
254    /// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
255    pub fn get_timeout_seconds(&self) -> &::std::option::Option<i32> {
256        self.inner.get_timeout_seconds()
257    }
258    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
259    pub fn comment(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
260        self.inner = self.inner.comment(input.into());
261        self
262    }
263    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
264    pub fn set_comment(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
265        self.inner = self.inner.set_comment(input);
266        self
267    }
268    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
269    pub fn get_comment(&self) -> &::std::option::Option<::std::string::String> {
270        self.inner.get_comment()
271    }
272    ///
273    /// Adds a key-value pair to `Parameters`.
274    ///
275    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
276    ///
277    /// <p>The required and optional parameters specified in the document being run.</p>
278    pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
279        self.inner = self.inner.parameters(k.into(), v);
280        self
281    }
282    /// <p>The required and optional parameters specified in the document being run.</p>
283    pub fn set_parameters(
284        mut self,
285        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
286    ) -> Self {
287        self.inner = self.inner.set_parameters(input);
288        self
289    }
290    /// <p>The required and optional parameters specified in the document being run.</p>
291    pub fn get_parameters(
292        &self,
293    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
294        self.inner.get_parameters()
295    }
296    /// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon Web Services Region of the S3 bucket.</p>
297    pub fn output_s3_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
298        self.inner = self.inner.output_s3_region(input.into());
299        self
300    }
301    /// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon Web Services Region of the S3 bucket.</p>
302    pub fn set_output_s3_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
303        self.inner = self.inner.set_output_s3_region(input);
304        self
305    }
306    /// <p>(Deprecated) You can no longer specify this parameter. The system ignores it. Instead, Systems Manager automatically determines the Amazon Web Services Region of the S3 bucket.</p>
307    pub fn get_output_s3_region(&self) -> &::std::option::Option<::std::string::String> {
308        self.inner.get_output_s3_region()
309    }
310    /// <p>The name of the S3 bucket where command execution responses should be stored.</p>
311    pub fn output_s3_bucket_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
312        self.inner = self.inner.output_s3_bucket_name(input.into());
313        self
314    }
315    /// <p>The name of the S3 bucket where command execution responses should be stored.</p>
316    pub fn set_output_s3_bucket_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
317        self.inner = self.inner.set_output_s3_bucket_name(input);
318        self
319    }
320    /// <p>The name of the S3 bucket where command execution responses should be stored.</p>
321    pub fn get_output_s3_bucket_name(&self) -> &::std::option::Option<::std::string::String> {
322        self.inner.get_output_s3_bucket_name()
323    }
324    /// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
325    pub fn output_s3_key_prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
326        self.inner = self.inner.output_s3_key_prefix(input.into());
327        self
328    }
329    /// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
330    pub fn set_output_s3_key_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
331        self.inner = self.inner.set_output_s3_key_prefix(input);
332        self
333    }
334    /// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
335    pub fn get_output_s3_key_prefix(&self) -> &::std::option::Option<::std::string::String> {
336        self.inner.get_output_s3_key_prefix()
337    }
338    /// <p>(Optional) The maximum number of managed nodes that are allowed to run the command at the same time. You can specify a number such as 10 or a percentage such as 10%. The default value is <code>50</code>. For more information about how to use <code>MaxConcurrency</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-velocity">Using concurrency controls</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
339    pub fn max_concurrency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
340        self.inner = self.inner.max_concurrency(input.into());
341        self
342    }
343    /// <p>(Optional) The maximum number of managed nodes that are allowed to run the command at the same time. You can specify a number such as 10 or a percentage such as 10%. The default value is <code>50</code>. For more information about how to use <code>MaxConcurrency</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-velocity">Using concurrency controls</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
344    pub fn set_max_concurrency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
345        self.inner = self.inner.set_max_concurrency(input);
346        self
347    }
348    /// <p>(Optional) The maximum number of managed nodes that are allowed to run the command at the same time. You can specify a number such as 10 or a percentage such as 10%. The default value is <code>50</code>. For more information about how to use <code>MaxConcurrency</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-velocity">Using concurrency controls</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
349    pub fn get_max_concurrency(&self) -> &::std::option::Option<::std::string::String> {
350        self.inner.get_max_concurrency()
351    }
352    /// <p>The maximum number of errors allowed without the command failing. When the command fails one more time beyond the value of <code>MaxErrors</code>, the systems stops sending the command to additional targets. You can specify a number like 10 or a percentage like 10%. The default value is <code>0</code>. For more information about how to use <code>MaxErrors</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-maxerrors">Using error controls</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
353    pub fn max_errors(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
354        self.inner = self.inner.max_errors(input.into());
355        self
356    }
357    /// <p>The maximum number of errors allowed without the command failing. When the command fails one more time beyond the value of <code>MaxErrors</code>, the systems stops sending the command to additional targets. You can specify a number like 10 or a percentage like 10%. The default value is <code>0</code>. For more information about how to use <code>MaxErrors</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-maxerrors">Using error controls</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
358    pub fn set_max_errors(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
359        self.inner = self.inner.set_max_errors(input);
360        self
361    }
362    /// <p>The maximum number of errors allowed without the command failing. When the command fails one more time beyond the value of <code>MaxErrors</code>, the systems stops sending the command to additional targets. You can specify a number like 10 or a percentage like 10%. The default value is <code>0</code>. For more information about how to use <code>MaxErrors</code>, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-maxerrors">Using error controls</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
363    pub fn get_max_errors(&self) -> &::std::option::Option<::std::string::String> {
364        self.inner.get_max_errors()
365    }
366    /// <p>The ARN of the Identity and Access Management (IAM) service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for Run Command commands.</p>
367    /// <p>This role must provide the <code>sns:Publish</code> permission for your notification topic. For information about creating and using this service role, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html">Monitoring Systems Manager status changes using Amazon SNS notifications</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
368    pub fn service_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
369        self.inner = self.inner.service_role_arn(input.into());
370        self
371    }
372    /// <p>The ARN of the Identity and Access Management (IAM) service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for Run Command commands.</p>
373    /// <p>This role must provide the <code>sns:Publish</code> permission for your notification topic. For information about creating and using this service role, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html">Monitoring Systems Manager status changes using Amazon SNS notifications</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
374    pub fn set_service_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
375        self.inner = self.inner.set_service_role_arn(input);
376        self
377    }
378    /// <p>The ARN of the Identity and Access Management (IAM) service role to use to publish Amazon Simple Notification Service (Amazon SNS) notifications for Run Command commands.</p>
379    /// <p>This role must provide the <code>sns:Publish</code> permission for your notification topic. For information about creating and using this service role, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring-sns-notifications.html">Monitoring Systems Manager status changes using Amazon SNS notifications</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p>
380    pub fn get_service_role_arn(&self) -> &::std::option::Option<::std::string::String> {
381        self.inner.get_service_role_arn()
382    }
383    /// <p>Configurations for sending notifications.</p>
384    pub fn notification_config(mut self, input: crate::types::NotificationConfig) -> Self {
385        self.inner = self.inner.notification_config(input);
386        self
387    }
388    /// <p>Configurations for sending notifications.</p>
389    pub fn set_notification_config(mut self, input: ::std::option::Option<crate::types::NotificationConfig>) -> Self {
390        self.inner = self.inner.set_notification_config(input);
391        self
392    }
393    /// <p>Configurations for sending notifications.</p>
394    pub fn get_notification_config(&self) -> &::std::option::Option<crate::types::NotificationConfig> {
395        self.inner.get_notification_config()
396    }
397    /// <p>Enables Amazon Web Services Systems Manager to send Run Command output to Amazon CloudWatch Logs. Run Command is a tool in Amazon Web Services Systems Manager.</p>
398    pub fn cloud_watch_output_config(mut self, input: crate::types::CloudWatchOutputConfig) -> Self {
399        self.inner = self.inner.cloud_watch_output_config(input);
400        self
401    }
402    /// <p>Enables Amazon Web Services Systems Manager to send Run Command output to Amazon CloudWatch Logs. Run Command is a tool in Amazon Web Services Systems Manager.</p>
403    pub fn set_cloud_watch_output_config(mut self, input: ::std::option::Option<crate::types::CloudWatchOutputConfig>) -> Self {
404        self.inner = self.inner.set_cloud_watch_output_config(input);
405        self
406    }
407    /// <p>Enables Amazon Web Services Systems Manager to send Run Command output to Amazon CloudWatch Logs. Run Command is a tool in Amazon Web Services Systems Manager.</p>
408    pub fn get_cloud_watch_output_config(&self) -> &::std::option::Option<crate::types::CloudWatchOutputConfig> {
409        self.inner.get_cloud_watch_output_config()
410    }
411    /// <p>The CloudWatch alarm you want to apply to your command.</p>
412    pub fn alarm_configuration(mut self, input: crate::types::AlarmConfiguration) -> Self {
413        self.inner = self.inner.alarm_configuration(input);
414        self
415    }
416    /// <p>The CloudWatch alarm you want to apply to your command.</p>
417    pub fn set_alarm_configuration(mut self, input: ::std::option::Option<crate::types::AlarmConfiguration>) -> Self {
418        self.inner = self.inner.set_alarm_configuration(input);
419        self
420    }
421    /// <p>The CloudWatch alarm you want to apply to your command.</p>
422    pub fn get_alarm_configuration(&self) -> &::std::option::Option<crate::types::AlarmConfiguration> {
423        self.inner.get_alarm_configuration()
424    }
425}