AWS SDK

AWS SDK

rev. aa190e630077955f0bc8f58dee6a16530c1e0578 (ignoring whitespace)

Files changed:

tmp-codegen-diff/aws-sdk/sdk/ssm/src/operation/send_command/_send_command_input.rs

@@ -0,1 +0,1096 @@
           1  +
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
           2  +
#[allow(missing_docs)] // documentation missing in model
           3  +
#[non_exhaustive]
           4  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
           5  +
pub struct SendCommandInput {
           6  +
    /// <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>
           7  +
    /// <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>
           8  +
    /// <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>
           9  +
    pub instance_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
          10  +
    /// <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>
          11  +
    /// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
          12  +
    /// <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>
          13  +
    pub targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
          14  +
    /// <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>
          15  +
    /// <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>
          16  +
    /// </note>
          17  +
    pub document_name: ::std::option::Option<::std::string::String>,
          18  +
    /// <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>
          19  +
    /// <p>--document-version "\$DEFAULT"</p>
          20  +
    /// <p>--document-version "\$LATEST"</p>
          21  +
    /// <p>--document-version "3"</p>
          22  +
    pub document_version: ::std::option::Option<::std::string::String>,
          23  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
          24  +
    /// <p>Sha1 hashes have been deprecated.</p>
          25  +
    /// </note>
          26  +
    pub document_hash: ::std::option::Option<::std::string::String>,
          27  +
    /// <p>Sha256 or Sha1.</p><note>
          28  +
    /// <p>Sha1 hashes have been deprecated.</p>
          29  +
    /// </note>
          30  +
    pub document_hash_type: ::std::option::Option<crate::types::DocumentHashType>,
          31  +
    /// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
          32  +
    pub timeout_seconds: ::std::option::Option<i32>,
          33  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
          34  +
    pub comment: ::std::option::Option<::std::string::String>,
          35  +
    /// <p>The required and optional parameters specified in the document being run.</p>
          36  +
    pub parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
          37  +
    /// <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>
          38  +
    pub output_s3_region: ::std::option::Option<::std::string::String>,
          39  +
    /// <p>The name of the S3 bucket where command execution responses should be stored.</p>
          40  +
    pub output_s3_bucket_name: ::std::option::Option<::std::string::String>,
          41  +
    /// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
          42  +
    pub output_s3_key_prefix: ::std::option::Option<::std::string::String>,
          43  +
    /// <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>
          44  +
    pub max_concurrency: ::std::option::Option<::std::string::String>,
          45  +
    /// <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>
          46  +
    pub max_errors: ::std::option::Option<::std::string::String>,
          47  +
    /// <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>
          48  +
    /// <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>
          49  +
    pub service_role_arn: ::std::option::Option<::std::string::String>,
          50  +
    /// <p>Configurations for sending notifications.</p>
          51  +
    pub notification_config: ::std::option::Option<crate::types::NotificationConfig>,
          52  +
    /// <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>
          53  +
    pub cloud_watch_output_config: ::std::option::Option<crate::types::CloudWatchOutputConfig>,
          54  +
    /// <p>The CloudWatch alarm you want to apply to your command.</p>
          55  +
    pub alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
          56  +
}
          57  +
impl SendCommandInput {
          58  +
    /// <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>
          59  +
    /// <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>
          60  +
    /// <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>
          61  +
    ///
          62  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.instance_ids.is_none()`.
          63  +
    pub fn instance_ids(&self) -> &[::std::string::String] {
          64  +
        self.instance_ids.as_deref().unwrap_or_default()
          65  +
    }
          66  +
    /// <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>
          67  +
    /// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
          68  +
    /// <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>
          69  +
    ///
          70  +
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.targets.is_none()`.
          71  +
    pub fn targets(&self) -> &[crate::types::Target] {
          72  +
        self.targets.as_deref().unwrap_or_default()
          73  +
    }
          74  +
    /// <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>
          75  +
    /// <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>
          76  +
    /// </note>
          77  +
    pub fn document_name(&self) -> ::std::option::Option<&str> {
          78  +
        self.document_name.as_deref()
          79  +
    }
          80  +
    /// <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>
          81  +
    /// <p>--document-version "\$DEFAULT"</p>
          82  +
    /// <p>--document-version "\$LATEST"</p>
          83  +
    /// <p>--document-version "3"</p>
          84  +
    pub fn document_version(&self) -> ::std::option::Option<&str> {
          85  +
        self.document_version.as_deref()
          86  +
    }
          87  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
          88  +
    /// <p>Sha1 hashes have been deprecated.</p>
          89  +
    /// </note>
          90  +
    pub fn document_hash(&self) -> ::std::option::Option<&str> {
          91  +
        self.document_hash.as_deref()
          92  +
    }
          93  +
    /// <p>Sha256 or Sha1.</p><note>
          94  +
    /// <p>Sha1 hashes have been deprecated.</p>
          95  +
    /// </note>
          96  +
    pub fn document_hash_type(&self) -> ::std::option::Option<&crate::types::DocumentHashType> {
          97  +
        self.document_hash_type.as_ref()
          98  +
    }
          99  +
    /// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
         100  +
    pub fn timeout_seconds(&self) -> ::std::option::Option<i32> {
         101  +
        self.timeout_seconds
         102  +
    }
         103  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
         104  +
    pub fn comment(&self) -> ::std::option::Option<&str> {
         105  +
        self.comment.as_deref()
         106  +
    }
         107  +
    /// <p>The required and optional parameters specified in the document being run.</p>
         108  +
    pub fn parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         109  +
        self.parameters.as_ref()
         110  +
    }
         111  +
    /// <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>
         112  +
    pub fn output_s3_region(&self) -> ::std::option::Option<&str> {
         113  +
        self.output_s3_region.as_deref()
         114  +
    }
         115  +
    /// <p>The name of the S3 bucket where command execution responses should be stored.</p>
         116  +
    pub fn output_s3_bucket_name(&self) -> ::std::option::Option<&str> {
         117  +
        self.output_s3_bucket_name.as_deref()
         118  +
    }
         119  +
    /// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
         120  +
    pub fn output_s3_key_prefix(&self) -> ::std::option::Option<&str> {
         121  +
        self.output_s3_key_prefix.as_deref()
         122  +
    }
         123  +
    /// <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>
         124  +
    pub fn max_concurrency(&self) -> ::std::option::Option<&str> {
         125  +
        self.max_concurrency.as_deref()
         126  +
    }
         127  +
    /// <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>
         128  +
    pub fn max_errors(&self) -> ::std::option::Option<&str> {
         129  +
        self.max_errors.as_deref()
         130  +
    }
         131  +
    /// <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>
         132  +
    /// <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>
         133  +
    pub fn service_role_arn(&self) -> ::std::option::Option<&str> {
         134  +
        self.service_role_arn.as_deref()
         135  +
    }
         136  +
    /// <p>Configurations for sending notifications.</p>
         137  +
    pub fn notification_config(&self) -> ::std::option::Option<&crate::types::NotificationConfig> {
         138  +
        self.notification_config.as_ref()
         139  +
    }
         140  +
    /// <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>
         141  +
    pub fn cloud_watch_output_config(&self) -> ::std::option::Option<&crate::types::CloudWatchOutputConfig> {
         142  +
        self.cloud_watch_output_config.as_ref()
         143  +
    }
         144  +
    /// <p>The CloudWatch alarm you want to apply to your command.</p>
         145  +
    pub fn alarm_configuration(&self) -> ::std::option::Option<&crate::types::AlarmConfiguration> {
         146  +
        self.alarm_configuration.as_ref()
         147  +
    }
         148  +
}
         149  +
impl ::std::fmt::Debug for SendCommandInput {
         150  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
         151  +
        let mut formatter = f.debug_struct("SendCommandInput");
         152  +
        formatter.field("instance_ids", &self.instance_ids);
         153  +
        formatter.field("targets", &self.targets);
         154  +
        formatter.field("document_name", &self.document_name);
         155  +
        formatter.field("document_version", &self.document_version);
         156  +
        formatter.field("document_hash", &self.document_hash);
         157  +
        formatter.field("document_hash_type", &self.document_hash_type);
         158  +
        formatter.field("timeout_seconds", &self.timeout_seconds);
         159  +
        formatter.field("comment", &self.comment);
         160  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
         161  +
        formatter.field("output_s3_region", &self.output_s3_region);
         162  +
        formatter.field("output_s3_bucket_name", &self.output_s3_bucket_name);
         163  +
        formatter.field("output_s3_key_prefix", &self.output_s3_key_prefix);
         164  +
        formatter.field("max_concurrency", &self.max_concurrency);
         165  +
        formatter.field("max_errors", &self.max_errors);
         166  +
        formatter.field("service_role_arn", &self.service_role_arn);
         167  +
        formatter.field("notification_config", &self.notification_config);
         168  +
        formatter.field("cloud_watch_output_config", &self.cloud_watch_output_config);
         169  +
        formatter.field("alarm_configuration", &self.alarm_configuration);
         170  +
        formatter.finish()
         171  +
    }
         172  +
}
         173  +
static SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         174  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceIdList$member", "com.amazonaws.ssm", "InstanceIdList"),
         175  +
    ::aws_smithy_schema::ShapeType::String,
         176  +
    "member",
         177  +
    0,
         178  +
);
         179  +
static SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         180  +
    ::aws_smithy_schema::ShapeId::from_parts(
         181  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$InstanceIds",
         182  +
        "com.amazonaws.ssm.synthetic",
         183  +
        "SendCommandInput",
         184  +
    ),
         185  +
    ::aws_smithy_schema::ShapeType::List,
         186  +
    "InstanceIds",
         187  +
    0,
         188  +
)
         189  +
.with_list_member(&SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS_MEMBER);
         190  +
static SENDCOMMANDINPUT_MEMBER_TARGETS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         191  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Targets$member", "com.amazonaws.ssm", "Targets"),
         192  +
    ::aws_smithy_schema::ShapeType::Structure,
         193  +
    "member",
         194  +
    0,
         195  +
);
         196  +
static SENDCOMMANDINPUT_MEMBER_TARGETS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         197  +
    ::aws_smithy_schema::ShapeId::from_parts(
         198  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$Targets",
         199  +
        "com.amazonaws.ssm.synthetic",
         200  +
        "SendCommandInput",
         201  +
    ),
         202  +
    ::aws_smithy_schema::ShapeType::List,
         203  +
    "Targets",
         204  +
    1,
         205  +
)
         206  +
.with_list_member(&SENDCOMMANDINPUT_MEMBER_TARGETS_MEMBER);
         207  +
static SENDCOMMANDINPUT_MEMBER_DOCUMENT_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         208  +
    ::aws_smithy_schema::ShapeId::from_parts(
         209  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$DocumentName",
         210  +
        "com.amazonaws.ssm.synthetic",
         211  +
        "SendCommandInput",
         212  +
    ),
         213  +
    ::aws_smithy_schema::ShapeType::String,
         214  +
    "DocumentName",
         215  +
    2,
         216  +
);
         217  +
static SENDCOMMANDINPUT_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         218  +
    ::aws_smithy_schema::ShapeId::from_parts(
         219  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$DocumentVersion",
         220  +
        "com.amazonaws.ssm.synthetic",
         221  +
        "SendCommandInput",
         222  +
    ),
         223  +
    ::aws_smithy_schema::ShapeType::String,
         224  +
    "DocumentVersion",
         225  +
    3,
         226  +
);
         227  +
static SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         228  +
    ::aws_smithy_schema::ShapeId::from_parts(
         229  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$DocumentHash",
         230  +
        "com.amazonaws.ssm.synthetic",
         231  +
        "SendCommandInput",
         232  +
    ),
         233  +
    ::aws_smithy_schema::ShapeType::String,
         234  +
    "DocumentHash",
         235  +
    4,
         236  +
);
         237  +
static SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         238  +
    ::aws_smithy_schema::ShapeId::from_parts(
         239  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$DocumentHashType",
         240  +
        "com.amazonaws.ssm.synthetic",
         241  +
        "SendCommandInput",
         242  +
    ),
         243  +
    ::aws_smithy_schema::ShapeType::String,
         244  +
    "DocumentHashType",
         245  +
    5,
         246  +
);
         247  +
static SENDCOMMANDINPUT_MEMBER_TIMEOUT_SECONDS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         248  +
    ::aws_smithy_schema::ShapeId::from_parts(
         249  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$TimeoutSeconds",
         250  +
        "com.amazonaws.ssm.synthetic",
         251  +
        "SendCommandInput",
         252  +
    ),
         253  +
    ::aws_smithy_schema::ShapeType::Integer,
         254  +
    "TimeoutSeconds",
         255  +
    6,
         256  +
);
         257  +
static SENDCOMMANDINPUT_MEMBER_COMMENT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         258  +
    ::aws_smithy_schema::ShapeId::from_parts(
         259  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$Comment",
         260  +
        "com.amazonaws.ssm.synthetic",
         261  +
        "SendCommandInput",
         262  +
    ),
         263  +
    ::aws_smithy_schema::ShapeType::String,
         264  +
    "Comment",
         265  +
    7,
         266  +
);
         267  +
static SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         268  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#ParameterValueList$member", "com.amazonaws.ssm", "ParameterValueList"),
         269  +
    ::aws_smithy_schema::ShapeType::String,
         270  +
    "member",
         271  +
    0,
         272  +
);
         273  +
static SENDCOMMANDINPUT_MEMBER_PARAMETERS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         274  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$key", "com.amazonaws.ssm", "Parameters"),
         275  +
    ::aws_smithy_schema::ShapeType::String,
         276  +
    "key",
         277  +
    0,
         278  +
);
         279  +
static SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         280  +
    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$value", "com.amazonaws.ssm", "Parameters"),
         281  +
    ::aws_smithy_schema::ShapeType::List,
         282  +
    "value",
         283  +
    1,
         284  +
)
         285  +
.with_list_member(&SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE_MEMBER);
         286  +
static SENDCOMMANDINPUT_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         287  +
    ::aws_smithy_schema::ShapeId::from_parts(
         288  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$Parameters",
         289  +
        "com.amazonaws.ssm.synthetic",
         290  +
        "SendCommandInput",
         291  +
    ),
         292  +
    ::aws_smithy_schema::ShapeType::Map,
         293  +
    "Parameters",
         294  +
    8,
         295  +
)
         296  +
.with_map_members(&SENDCOMMANDINPUT_MEMBER_PARAMETERS_KEY, &SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE);
         297  +
static SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_REGION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         298  +
    ::aws_smithy_schema::ShapeId::from_parts(
         299  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$OutputS3Region",
         300  +
        "com.amazonaws.ssm.synthetic",
         301  +
        "SendCommandInput",
         302  +
    ),
         303  +
    ::aws_smithy_schema::ShapeType::String,
         304  +
    "OutputS3Region",
         305  +
    9,
         306  +
);
         307  +
static SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_BUCKET_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         308  +
    ::aws_smithy_schema::ShapeId::from_parts(
         309  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$OutputS3BucketName",
         310  +
        "com.amazonaws.ssm.synthetic",
         311  +
        "SendCommandInput",
         312  +
    ),
         313  +
    ::aws_smithy_schema::ShapeType::String,
         314  +
    "OutputS3BucketName",
         315  +
    10,
         316  +
);
         317  +
static SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_KEY_PREFIX: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         318  +
    ::aws_smithy_schema::ShapeId::from_parts(
         319  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$OutputS3KeyPrefix",
         320  +
        "com.amazonaws.ssm.synthetic",
         321  +
        "SendCommandInput",
         322  +
    ),
         323  +
    ::aws_smithy_schema::ShapeType::String,
         324  +
    "OutputS3KeyPrefix",
         325  +
    11,
         326  +
);
         327  +
static SENDCOMMANDINPUT_MEMBER_MAX_CONCURRENCY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         328  +
    ::aws_smithy_schema::ShapeId::from_parts(
         329  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$MaxConcurrency",
         330  +
        "com.amazonaws.ssm.synthetic",
         331  +
        "SendCommandInput",
         332  +
    ),
         333  +
    ::aws_smithy_schema::ShapeType::String,
         334  +
    "MaxConcurrency",
         335  +
    12,
         336  +
);
         337  +
static SENDCOMMANDINPUT_MEMBER_MAX_ERRORS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         338  +
    ::aws_smithy_schema::ShapeId::from_parts(
         339  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$MaxErrors",
         340  +
        "com.amazonaws.ssm.synthetic",
         341  +
        "SendCommandInput",
         342  +
    ),
         343  +
    ::aws_smithy_schema::ShapeType::String,
         344  +
    "MaxErrors",
         345  +
    13,
         346  +
);
         347  +
static SENDCOMMANDINPUT_MEMBER_SERVICE_ROLE_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         348  +
    ::aws_smithy_schema::ShapeId::from_parts(
         349  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$ServiceRoleArn",
         350  +
        "com.amazonaws.ssm.synthetic",
         351  +
        "SendCommandInput",
         352  +
    ),
         353  +
    ::aws_smithy_schema::ShapeType::String,
         354  +
    "ServiceRoleArn",
         355  +
    14,
         356  +
);
         357  +
static SENDCOMMANDINPUT_MEMBER_NOTIFICATION_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         358  +
    ::aws_smithy_schema::ShapeId::from_parts(
         359  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$NotificationConfig",
         360  +
        "com.amazonaws.ssm.synthetic",
         361  +
        "SendCommandInput",
         362  +
    ),
         363  +
    ::aws_smithy_schema::ShapeType::Structure,
         364  +
    "NotificationConfig",
         365  +
    15,
         366  +
);
         367  +
static SENDCOMMANDINPUT_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         368  +
    ::aws_smithy_schema::ShapeId::from_parts(
         369  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$CloudWatchOutputConfig",
         370  +
        "com.amazonaws.ssm.synthetic",
         371  +
        "SendCommandInput",
         372  +
    ),
         373  +
    ::aws_smithy_schema::ShapeType::Structure,
         374  +
    "CloudWatchOutputConfig",
         375  +
    16,
         376  +
);
         377  +
static SENDCOMMANDINPUT_MEMBER_ALARM_CONFIGURATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
         378  +
    ::aws_smithy_schema::ShapeId::from_parts(
         379  +
        "com.amazonaws.ssm.synthetic#SendCommandInput$AlarmConfiguration",
         380  +
        "com.amazonaws.ssm.synthetic",
         381  +
        "SendCommandInput",
         382  +
    ),
         383  +
    ::aws_smithy_schema::ShapeType::Structure,
         384  +
    "AlarmConfiguration",
         385  +
    17,
         386  +
);
         387  +
static SENDCOMMANDINPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
         388  +
    ::aws_smithy_schema::ShapeId::from_parts(
         389  +
        "com.amazonaws.ssm.synthetic#SendCommandInput",
         390  +
        "com.amazonaws.ssm.synthetic",
         391  +
        "SendCommandInput",
         392  +
    ),
         393  +
    ::aws_smithy_schema::ShapeType::Structure,
         394  +
    &[
         395  +
        &SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS,
         396  +
        &SENDCOMMANDINPUT_MEMBER_TARGETS,
         397  +
        &SENDCOMMANDINPUT_MEMBER_DOCUMENT_NAME,
         398  +
        &SENDCOMMANDINPUT_MEMBER_DOCUMENT_VERSION,
         399  +
        &SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH,
         400  +
        &SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH_TYPE,
         401  +
        &SENDCOMMANDINPUT_MEMBER_TIMEOUT_SECONDS,
         402  +
        &SENDCOMMANDINPUT_MEMBER_COMMENT,
         403  +
        &SENDCOMMANDINPUT_MEMBER_PARAMETERS,
         404  +
        &SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_REGION,
         405  +
        &SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_BUCKET_NAME,
         406  +
        &SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_KEY_PREFIX,
         407  +
        &SENDCOMMANDINPUT_MEMBER_MAX_CONCURRENCY,
         408  +
        &SENDCOMMANDINPUT_MEMBER_MAX_ERRORS,
         409  +
        &SENDCOMMANDINPUT_MEMBER_SERVICE_ROLE_ARN,
         410  +
        &SENDCOMMANDINPUT_MEMBER_NOTIFICATION_CONFIG,
         411  +
        &SENDCOMMANDINPUT_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG,
         412  +
        &SENDCOMMANDINPUT_MEMBER_ALARM_CONFIGURATION,
         413  +
    ],
         414  +
)
         415  +
.with_payload_hint(::aws_smithy_schema::PayloadHint::NoStructPayload)
         416  +
.with_original_name("SendCommandRequest");
         417  +
impl SendCommandInput {
         418  +
    /// The schema for this shape.
         419  +
    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &SENDCOMMANDINPUT_SCHEMA;
         420  +
}
         421  +
impl ::aws_smithy_schema::serde::SerializableStruct for SendCommandInput {
         422  +
    #[allow(unused_variables, clippy::diverging_sub_expression)]
         423  +
    fn serialize_members(
         424  +
        &self,
         425  +
        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
         426  +
    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
         427  +
        if let Some(ref val) = self.instance_ids {
         428  +
            ser.write_list(
         429  +
                &SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS,
         430  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         431  +
                    for item in val {
         432  +
                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         433  +
                    }
         434  +
                    Ok(())
         435  +
                },
         436  +
            )?;
         437  +
        }
         438  +
        if let Some(ref val) = self.targets {
         439  +
            ser.write_list(
         440  +
                &SENDCOMMANDINPUT_MEMBER_TARGETS,
         441  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         442  +
                    for item in val {
         443  +
                        ser.write_struct(crate::types::Target::SCHEMA, item)?;
         444  +
                    }
         445  +
                    Ok(())
         446  +
                },
         447  +
            )?;
         448  +
        }
         449  +
        if let Some(ref val) = self.document_name {
         450  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_DOCUMENT_NAME, val)?;
         451  +
        }
         452  +
        if let Some(ref val) = self.document_version {
         453  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_DOCUMENT_VERSION, val)?;
         454  +
        }
         455  +
        if let Some(ref val) = self.document_hash {
         456  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH, val)?;
         457  +
        }
         458  +
        if let Some(ref val) = self.document_hash_type {
         459  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH_TYPE, val.as_str())?;
         460  +
        }
         461  +
        if let Some(ref val) = self.timeout_seconds {
         462  +
            ser.write_integer(&SENDCOMMANDINPUT_MEMBER_TIMEOUT_SECONDS, *val)?;
         463  +
        }
         464  +
        if let Some(ref val) = self.comment {
         465  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_COMMENT, val)?;
         466  +
        }
         467  +
        if let Some(ref val) = self.parameters {
         468  +
            ser.write_map(
         469  +
                &SENDCOMMANDINPUT_MEMBER_PARAMETERS,
         470  +
                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         471  +
                    for (key, value) in val {
         472  +
                        ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
         473  +
         474  +
                        ser.write_list(
         475  +
                            &SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE,
         476  +
                            &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
         477  +
                                for item in value {
         478  +
                                    ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
         479  +
                                }
         480  +
                                Ok(())
         481  +
                            },
         482  +
                        )?;
         483  +
                    }
         484  +
                    Ok(())
         485  +
                },
         486  +
            )?;
         487  +
        }
         488  +
        if let Some(ref val) = self.output_s3_region {
         489  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_REGION, val)?;
         490  +
        }
         491  +
        if let Some(ref val) = self.output_s3_bucket_name {
         492  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_BUCKET_NAME, val)?;
         493  +
        }
         494  +
        if let Some(ref val) = self.output_s3_key_prefix {
         495  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_KEY_PREFIX, val)?;
         496  +
        }
         497  +
        if let Some(ref val) = self.max_concurrency {
         498  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_MAX_CONCURRENCY, val)?;
         499  +
        }
         500  +
        if let Some(ref val) = self.max_errors {
         501  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_MAX_ERRORS, val)?;
         502  +
        }
         503  +
        if let Some(ref val) = self.service_role_arn {
         504  +
            ser.write_string(&SENDCOMMANDINPUT_MEMBER_SERVICE_ROLE_ARN, val)?;
         505  +
        }
         506  +
        if let Some(ref val) = self.notification_config {
         507  +
            ser.write_struct(&SENDCOMMANDINPUT_MEMBER_NOTIFICATION_CONFIG, val)?;
         508  +
        }
         509  +
        if let Some(ref val) = self.cloud_watch_output_config {
         510  +
            ser.write_struct(&SENDCOMMANDINPUT_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG, val)?;
         511  +
        }
         512  +
        if let Some(ref val) = self.alarm_configuration {
         513  +
            ser.write_struct(&SENDCOMMANDINPUT_MEMBER_ALARM_CONFIGURATION, val)?;
         514  +
        }
         515  +
        Ok(())
         516  +
    }
         517  +
}
         518  +
impl SendCommandInput {
         519  +
    /// Deserializes this structure from a [`ShapeDeserializer`].
         520  +
    pub fn deserialize(
         521  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         522  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         523  +
        #[allow(unused_variables, unused_mut)]
         524  +
        let mut builder = Self::builder();
         525  +
        #[allow(
         526  +
            unused_variables,
         527  +
            unreachable_code,
         528  +
            clippy::single_match,
         529  +
            clippy::match_single_binding,
         530  +
            clippy::diverging_sub_expression
         531  +
        )]
         532  +
        deserializer.read_struct(&SENDCOMMANDINPUT_SCHEMA, &mut |member, deser| {
         533  +
            match member.member_index() {
         534  +
                Some(0) => {
         535  +
                    if deser.is_null() {
         536  +
                        deser.read_null()?;
         537  +
                    } else {
         538  +
                        builder.instance_ids = Some(deser.read_string_list(member)?);
         539  +
                    }
         540  +
                }
         541  +
                Some(1) => {
         542  +
                    if deser.is_null() {
         543  +
                        deser.read_null()?;
         544  +
                    } else {
         545  +
                        builder.targets = Some({
         546  +
                            let mut container = Vec::new();
         547  +
                            deser.read_list(member, &mut |deser| {
         548  +
                                container.push(crate::types::Target::deserialize(deser)?);
         549  +
                                Ok(())
         550  +
                            })?;
         551  +
                            container
         552  +
                        });
         553  +
                    }
         554  +
                }
         555  +
                Some(2) => {
         556  +
                    if deser.is_null() {
         557  +
                        deser.read_null()?;
         558  +
                    } else {
         559  +
                        builder.document_name = Some(deser.read_string(member)?);
         560  +
                    }
         561  +
                }
         562  +
                Some(3) => {
         563  +
                    if deser.is_null() {
         564  +
                        deser.read_null()?;
         565  +
                    } else {
         566  +
                        builder.document_version = Some(deser.read_string(member)?);
         567  +
                    }
         568  +
                }
         569  +
                Some(4) => {
         570  +
                    if deser.is_null() {
         571  +
                        deser.read_null()?;
         572  +
                    } else {
         573  +
                        builder.document_hash = Some(deser.read_string(member)?);
         574  +
                    }
         575  +
                }
         576  +
                Some(5) => {
         577  +
                    if deser.is_null() {
         578  +
                        deser.read_null()?;
         579  +
                    } else {
         580  +
                        builder.document_hash_type = Some(crate::types::DocumentHashType::from(deser.read_string(member)?.as_str()));
         581  +
                    }
         582  +
                }
         583  +
                Some(6) => {
         584  +
                    if deser.is_null() {
         585  +
                        deser.read_null()?;
         586  +
                    } else {
         587  +
                        builder.timeout_seconds = Some(deser.read_integer(member)?);
         588  +
                    }
         589  +
                }
         590  +
                Some(7) => {
         591  +
                    if deser.is_null() {
         592  +
                        deser.read_null()?;
         593  +
                    } else {
         594  +
                        builder.comment = Some(deser.read_string(member)?);
         595  +
                    }
         596  +
                }
         597  +
                Some(8) => {
         598  +
                    if deser.is_null() {
         599  +
                        deser.read_null()?;
         600  +
                    } else {
         601  +
                        builder.parameters = Some({
         602  +
                            let mut container = std::collections::HashMap::new();
         603  +
                            deser.read_map(member, &mut |key, deser| {
         604  +
                                container.insert(key, {
         605  +
                                    let mut list = Vec::new();
         606  +
                                    deser.read_list(&SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE, &mut |deser| {
         607  +
                                        list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
         608  +
                                        Ok(())
         609  +
                                    })?;
         610  +
                                    list
         611  +
                                });
         612  +
                                Ok(())
         613  +
                            })?;
         614  +
                            container
         615  +
                        });
         616  +
                    }
         617  +
                }
         618  +
                Some(9) => {
         619  +
                    if deser.is_null() {
         620  +
                        deser.read_null()?;
         621  +
                    } else {
         622  +
                        builder.output_s3_region = Some(deser.read_string(member)?);
         623  +
                    }
         624  +
                }
         625  +
                Some(10) => {
         626  +
                    if deser.is_null() {
         627  +
                        deser.read_null()?;
         628  +
                    } else {
         629  +
                        builder.output_s3_bucket_name = Some(deser.read_string(member)?);
         630  +
                    }
         631  +
                }
         632  +
                Some(11) => {
         633  +
                    if deser.is_null() {
         634  +
                        deser.read_null()?;
         635  +
                    } else {
         636  +
                        builder.output_s3_key_prefix = Some(deser.read_string(member)?);
         637  +
                    }
         638  +
                }
         639  +
                Some(12) => {
         640  +
                    if deser.is_null() {
         641  +
                        deser.read_null()?;
         642  +
                    } else {
         643  +
                        builder.max_concurrency = Some(deser.read_string(member)?);
         644  +
                    }
         645  +
                }
         646  +
                Some(13) => {
         647  +
                    if deser.is_null() {
         648  +
                        deser.read_null()?;
         649  +
                    } else {
         650  +
                        builder.max_errors = Some(deser.read_string(member)?);
         651  +
                    }
         652  +
                }
         653  +
                Some(14) => {
         654  +
                    if deser.is_null() {
         655  +
                        deser.read_null()?;
         656  +
                    } else {
         657  +
                        builder.service_role_arn = Some(deser.read_string(member)?);
         658  +
                    }
         659  +
                }
         660  +
                Some(15) => {
         661  +
                    if deser.is_null() {
         662  +
                        deser.read_null()?;
         663  +
                    } else {
         664  +
                        builder.notification_config = Some(crate::types::NotificationConfig::deserialize(deser)?);
         665  +
                    }
         666  +
                }
         667  +
                Some(16) => {
         668  +
                    if deser.is_null() {
         669  +
                        deser.read_null()?;
         670  +
                    } else {
         671  +
                        builder.cloud_watch_output_config = Some(crate::types::CloudWatchOutputConfig::deserialize(deser)?);
         672  +
                    }
         673  +
                }
         674  +
                Some(17) => {
         675  +
                    if deser.is_null() {
         676  +
                        deser.read_null()?;
         677  +
                    } else {
         678  +
                        builder.alarm_configuration = Some(crate::types::AlarmConfiguration::deserialize(deser)?);
         679  +
                    }
         680  +
                }
         681  +
                _ => {}
         682  +
            }
         683  +
            Ok(())
         684  +
        })?;
         685  +
        builder.document_name = builder.document_name.or(Some(String::new()));
         686  +
        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
         687  +
    }
         688  +
}
         689  +
impl SendCommandInput {
         690  +
    /// Deserializes this structure from a body deserializer and HTTP response.
         691  +
    pub fn deserialize_with_response(
         692  +
        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
         693  +
        _headers: &::aws_smithy_runtime_api::http::Headers,
         694  +
        _status: u16,
         695  +
        _body: &[u8],
         696  +
    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
         697  +
        Self::deserialize(deserializer)
         698  +
    }
         699  +
}
         700  +
impl SendCommandInput {
         701  +
    /// Creates a new builder-style object to manufacture [`SendCommandInput`](crate::operation::send_command::SendCommandInput).
         702  +
    pub fn builder() -> crate::operation::send_command::builders::SendCommandInputBuilder {
         703  +
        crate::operation::send_command::builders::SendCommandInputBuilder::default()
         704  +
    }
         705  +
}
         706  +
         707  +
/// A builder for [`SendCommandInput`](crate::operation::send_command::SendCommandInput).
         708  +
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
         709  +
#[non_exhaustive]
         710  +
pub struct SendCommandInputBuilder {
         711  +
    pub(crate) instance_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
         712  +
    pub(crate) targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
         713  +
    pub(crate) document_name: ::std::option::Option<::std::string::String>,
         714  +
    pub(crate) document_version: ::std::option::Option<::std::string::String>,
         715  +
    pub(crate) document_hash: ::std::option::Option<::std::string::String>,
         716  +
    pub(crate) document_hash_type: ::std::option::Option<crate::types::DocumentHashType>,
         717  +
    pub(crate) timeout_seconds: ::std::option::Option<i32>,
         718  +
    pub(crate) comment: ::std::option::Option<::std::string::String>,
         719  +
    pub(crate) parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         720  +
    pub(crate) output_s3_region: ::std::option::Option<::std::string::String>,
         721  +
    pub(crate) output_s3_bucket_name: ::std::option::Option<::std::string::String>,
         722  +
    pub(crate) output_s3_key_prefix: ::std::option::Option<::std::string::String>,
         723  +
    pub(crate) max_concurrency: ::std::option::Option<::std::string::String>,
         724  +
    pub(crate) max_errors: ::std::option::Option<::std::string::String>,
         725  +
    pub(crate) service_role_arn: ::std::option::Option<::std::string::String>,
         726  +
    pub(crate) notification_config: ::std::option::Option<crate::types::NotificationConfig>,
         727  +
    pub(crate) cloud_watch_output_config: ::std::option::Option<crate::types::CloudWatchOutputConfig>,
         728  +
    pub(crate) alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
         729  +
}
         730  +
impl SendCommandInputBuilder {
         731  +
    /// Appends an item to `instance_ids`.
         732  +
    ///
         733  +
    /// To override the contents of this collection use [`set_instance_ids`](Self::set_instance_ids).
         734  +
    ///
         735  +
    /// <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>
         736  +
    /// <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>
         737  +
    /// <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>
         738  +
    pub fn instance_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         739  +
        let mut v = self.instance_ids.unwrap_or_default();
         740  +
        v.push(input.into());
         741  +
        self.instance_ids = ::std::option::Option::Some(v);
         742  +
        self
         743  +
    }
         744  +
    /// <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>
         745  +
    /// <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>
         746  +
    /// <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>
         747  +
    pub fn set_instance_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
         748  +
        self.instance_ids = input;
         749  +
        self
         750  +
    }
         751  +
    /// <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>
         752  +
    /// <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>
         753  +
    /// <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>
         754  +
    pub fn get_instance_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
         755  +
        &self.instance_ids
         756  +
    }
         757  +
    /// Appends an item to `targets`.
         758  +
    ///
         759  +
    /// To override the contents of this collection use [`set_targets`](Self::set_targets).
         760  +
    ///
         761  +
    /// <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>
         762  +
    /// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
         763  +
    /// <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>
         764  +
    pub fn targets(mut self, input: crate::types::Target) -> Self {
         765  +
        let mut v = self.targets.unwrap_or_default();
         766  +
        v.push(input);
         767  +
        self.targets = ::std::option::Option::Some(v);
         768  +
        self
         769  +
    }
         770  +
    /// <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>
         771  +
    /// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
         772  +
    /// <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>
         773  +
    pub fn set_targets(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Target>>) -> Self {
         774  +
        self.targets = input;
         775  +
        self
         776  +
    }
         777  +
    /// <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>
         778  +
    /// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
         779  +
    /// <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>
         780  +
    pub fn get_targets(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Target>> {
         781  +
        &self.targets
         782  +
    }
         783  +
    /// <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>
         784  +
    /// <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>
         785  +
    /// </note>
         786  +
    /// This field is required.
         787  +
    pub fn document_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         788  +
        self.document_name = ::std::option::Option::Some(input.into());
         789  +
        self
         790  +
    }
         791  +
    /// <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>
         792  +
    /// <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>
         793  +
    /// </note>
         794  +
    pub fn set_document_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         795  +
        self.document_name = input;
         796  +
        self
         797  +
    }
         798  +
    /// <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>
         799  +
    /// <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>
         800  +
    /// </note>
         801  +
    pub fn get_document_name(&self) -> &::std::option::Option<::std::string::String> {
         802  +
        &self.document_name
         803  +
    }
         804  +
    /// <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>
         805  +
    /// <p>--document-version "\$DEFAULT"</p>
         806  +
    /// <p>--document-version "\$LATEST"</p>
         807  +
    /// <p>--document-version "3"</p>
         808  +
    pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         809  +
        self.document_version = ::std::option::Option::Some(input.into());
         810  +
        self
         811  +
    }
         812  +
    /// <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>
         813  +
    /// <p>--document-version "\$DEFAULT"</p>
         814  +
    /// <p>--document-version "\$LATEST"</p>
         815  +
    /// <p>--document-version "3"</p>
         816  +
    pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         817  +
        self.document_version = input;
         818  +
        self
         819  +
    }
         820  +
    /// <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>
         821  +
    /// <p>--document-version "\$DEFAULT"</p>
         822  +
    /// <p>--document-version "\$LATEST"</p>
         823  +
    /// <p>--document-version "3"</p>
         824  +
    pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
         825  +
        &self.document_version
         826  +
    }
         827  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
         828  +
    /// <p>Sha1 hashes have been deprecated.</p>
         829  +
    /// </note>
         830  +
    pub fn document_hash(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         831  +
        self.document_hash = ::std::option::Option::Some(input.into());
         832  +
        self
         833  +
    }
         834  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
         835  +
    /// <p>Sha1 hashes have been deprecated.</p>
         836  +
    /// </note>
         837  +
    pub fn set_document_hash(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         838  +
        self.document_hash = input;
         839  +
        self
         840  +
    }
         841  +
    /// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
         842  +
    /// <p>Sha1 hashes have been deprecated.</p>
         843  +
    /// </note>
         844  +
    pub fn get_document_hash(&self) -> &::std::option::Option<::std::string::String> {
         845  +
        &self.document_hash
         846  +
    }
         847  +
    /// <p>Sha256 or Sha1.</p><note>
         848  +
    /// <p>Sha1 hashes have been deprecated.</p>
         849  +
    /// </note>
         850  +
    pub fn document_hash_type(mut self, input: crate::types::DocumentHashType) -> Self {
         851  +
        self.document_hash_type = ::std::option::Option::Some(input);
         852  +
        self
         853  +
    }
         854  +
    /// <p>Sha256 or Sha1.</p><note>
         855  +
    /// <p>Sha1 hashes have been deprecated.</p>
         856  +
    /// </note>
         857  +
    pub fn set_document_hash_type(mut self, input: ::std::option::Option<crate::types::DocumentHashType>) -> Self {
         858  +
        self.document_hash_type = input;
         859  +
        self
         860  +
    }
         861  +
    /// <p>Sha256 or Sha1.</p><note>
         862  +
    /// <p>Sha1 hashes have been deprecated.</p>
         863  +
    /// </note>
         864  +
    pub fn get_document_hash_type(&self) -> &::std::option::Option<crate::types::DocumentHashType> {
         865  +
        &self.document_hash_type
         866  +
    }
         867  +
    /// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
         868  +
    pub fn timeout_seconds(mut self, input: i32) -> Self {
         869  +
        self.timeout_seconds = ::std::option::Option::Some(input);
         870  +
        self
         871  +
    }
         872  +
    /// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
         873  +
    pub fn set_timeout_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
         874  +
        self.timeout_seconds = input;
         875  +
        self
         876  +
    }
         877  +
    /// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
         878  +
    pub fn get_timeout_seconds(&self) -> &::std::option::Option<i32> {
         879  +
        &self.timeout_seconds
         880  +
    }
         881  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
         882  +
    pub fn comment(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         883  +
        self.comment = ::std::option::Option::Some(input.into());
         884  +
        self
         885  +
    }
         886  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
         887  +
    pub fn set_comment(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         888  +
        self.comment = input;
         889  +
        self
         890  +
    }
         891  +
    /// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
         892  +
    pub fn get_comment(&self) -> &::std::option::Option<::std::string::String> {
         893  +
        &self.comment
         894  +
    }
         895  +
    /// Adds a key-value pair to `parameters`.
         896  +
    ///
         897  +
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
         898  +
    ///
         899  +
    /// <p>The required and optional parameters specified in the document being run.</p>
         900  +
    pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
         901  +
        let mut hash_map = self.parameters.unwrap_or_default();
         902  +
        hash_map.insert(k.into(), v);
         903  +
        self.parameters = ::std::option::Option::Some(hash_map);
         904  +
        self
         905  +
    }
         906  +
    /// <p>The required and optional parameters specified in the document being run.</p>
         907  +
    pub fn set_parameters(
         908  +
        mut self,
         909  +
        input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
         910  +
    ) -> Self {
         911  +
        self.parameters = input;
         912  +
        self
         913  +
    }
         914  +
    /// <p>The required and optional parameters specified in the document being run.</p>
         915  +
    pub fn get_parameters(
         916  +
        &self,
         917  +
    ) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
         918  +
        &self.parameters
         919  +
    }
         920  +
    /// <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>
         921  +
    pub fn output_s3_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         922  +
        self.output_s3_region = ::std::option::Option::Some(input.into());
         923  +
        self
         924  +
    }
         925  +
    /// <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>
         926  +
    pub fn set_output_s3_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         927  +
        self.output_s3_region = input;
         928  +
        self
         929  +
    }
         930  +
    /// <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>
         931  +
    pub fn get_output_s3_region(&self) -> &::std::option::Option<::std::string::String> {
         932  +
        &self.output_s3_region
         933  +
    }
         934  +
    /// <p>The name of the S3 bucket where command execution responses should be stored.</p>
         935  +
    pub fn output_s3_bucket_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         936  +
        self.output_s3_bucket_name = ::std::option::Option::Some(input.into());
         937  +
        self
         938  +
    }
         939  +
    /// <p>The name of the S3 bucket where command execution responses should be stored.</p>
         940  +
    pub fn set_output_s3_bucket_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         941  +
        self.output_s3_bucket_name = input;
         942  +
        self
         943  +
    }
         944  +
    /// <p>The name of the S3 bucket where command execution responses should be stored.</p>
         945  +
    pub fn get_output_s3_bucket_name(&self) -> &::std::option::Option<::std::string::String> {
         946  +
        &self.output_s3_bucket_name
         947  +
    }
         948  +
    /// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
         949  +
    pub fn output_s3_key_prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         950  +
        self.output_s3_key_prefix = ::std::option::Option::Some(input.into());
         951  +
        self
         952  +
    }
         953  +
    /// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
         954  +
    pub fn set_output_s3_key_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         955  +
        self.output_s3_key_prefix = input;
         956  +
        self
         957  +
    }
         958  +
    /// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
         959  +
    pub fn get_output_s3_key_prefix(&self) -> &::std::option::Option<::std::string::String> {
         960  +
        &self.output_s3_key_prefix
         961  +
    }
         962  +
    /// <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>
         963  +
    pub fn max_concurrency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         964  +
        self.max_concurrency = ::std::option::Option::Some(input.into());
         965  +
        self
         966  +
    }
         967  +
    /// <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>
         968  +
    pub fn set_max_concurrency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         969  +
        self.max_concurrency = input;
         970  +
        self
         971  +
    }
         972  +
    /// <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>
         973  +
    pub fn get_max_concurrency(&self) -> &::std::option::Option<::std::string::String> {
         974  +
        &self.max_concurrency
         975  +
    }
         976  +
    /// <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>
         977  +
    pub fn max_errors(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         978  +
        self.max_errors = ::std::option::Option::Some(input.into());
         979  +
        self
         980  +
    }
         981  +
    /// <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>
         982  +
    pub fn set_max_errors(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         983  +
        self.max_errors = input;
         984  +
        self
         985  +
    }
         986  +
    /// <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>
         987  +
    pub fn get_max_errors(&self) -> &::std::option::Option<::std::string::String> {
         988  +
        &self.max_errors
         989  +
    }
         990  +
    /// <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>
         991  +
    /// <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>
         992  +
    pub fn service_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
         993  +
        self.service_role_arn = ::std::option::Option::Some(input.into());
         994  +
        self
         995  +
    }
         996  +
    /// <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>
         997  +
    /// <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>
         998  +
    pub fn set_service_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
         999  +
        self.service_role_arn = input;
        1000  +
        self
        1001  +
    }
        1002  +
    /// <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>
        1003  +
    /// <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>
        1004  +
    pub fn get_service_role_arn(&self) -> &::std::option::Option<::std::string::String> {
        1005  +
        &self.service_role_arn
        1006  +
    }
        1007  +
    /// <p>Configurations for sending notifications.</p>
        1008  +
    pub fn notification_config(mut self, input: crate::types::NotificationConfig) -> Self {
        1009  +
        self.notification_config = ::std::option::Option::Some(input);
        1010  +
        self
        1011  +
    }
        1012  +
    /// <p>Configurations for sending notifications.</p>
        1013  +
    pub fn set_notification_config(mut self, input: ::std::option::Option<crate::types::NotificationConfig>) -> Self {
        1014  +
        self.notification_config = input;
        1015  +
        self
        1016  +
    }
        1017  +
    /// <p>Configurations for sending notifications.</p>
        1018  +
    pub fn get_notification_config(&self) -> &::std::option::Option<crate::types::NotificationConfig> {
        1019  +
        &self.notification_config
        1020  +
    }
        1021  +
    /// <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>
        1022  +
    pub fn cloud_watch_output_config(mut self, input: crate::types::CloudWatchOutputConfig) -> Self {
        1023  +
        self.cloud_watch_output_config = ::std::option::Option::Some(input);
        1024  +
        self
        1025  +
    }
        1026  +
    /// <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>
        1027  +
    pub fn set_cloud_watch_output_config(mut self, input: ::std::option::Option<crate::types::CloudWatchOutputConfig>) -> Self {
        1028  +
        self.cloud_watch_output_config = input;
        1029  +
        self
        1030  +
    }
        1031  +
    /// <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>
        1032  +
    pub fn get_cloud_watch_output_config(&self) -> &::std::option::Option<crate::types::CloudWatchOutputConfig> {
        1033  +
        &self.cloud_watch_output_config
        1034  +
    }
        1035  +
    /// <p>The CloudWatch alarm you want to apply to your command.</p>
        1036  +
    pub fn alarm_configuration(mut self, input: crate::types::AlarmConfiguration) -> Self {
        1037  +
        self.alarm_configuration = ::std::option::Option::Some(input);
        1038  +
        self
        1039  +
    }
        1040  +
    /// <p>The CloudWatch alarm you want to apply to your command.</p>
        1041  +
    pub fn set_alarm_configuration(mut self, input: ::std::option::Option<crate::types::AlarmConfiguration>) -> Self {
        1042  +
        self.alarm_configuration = input;
        1043  +
        self
        1044  +
    }
        1045  +
    /// <p>The CloudWatch alarm you want to apply to your command.</p>
        1046  +
    pub fn get_alarm_configuration(&self) -> &::std::option::Option<crate::types::AlarmConfiguration> {
        1047  +
        &self.alarm_configuration
        1048  +
    }
        1049  +
    /// Consumes the builder and constructs a [`SendCommandInput`](crate::operation::send_command::SendCommandInput).
        1050  +
    pub fn build(self) -> ::std::result::Result<crate::operation::send_command::SendCommandInput, ::aws_smithy_types::error::operation::BuildError> {
        1051  +
        ::std::result::Result::Ok(crate::operation::send_command::SendCommandInput {
        1052  +
            instance_ids: self.instance_ids,
        1053  +
            targets: self.targets,
        1054  +
            document_name: self.document_name,
        1055  +
            document_version: self.document_version,
        1056  +
            document_hash: self.document_hash,
        1057  +
            document_hash_type: self.document_hash_type,
        1058  +
            timeout_seconds: self.timeout_seconds,
        1059  +
            comment: self.comment,
        1060  +
            parameters: self.parameters,
        1061  +
            output_s3_region: self.output_s3_region,
        1062  +
            output_s3_bucket_name: self.output_s3_bucket_name,
        1063  +
            output_s3_key_prefix: self.output_s3_key_prefix,
        1064  +
            max_concurrency: self.max_concurrency,
        1065  +
            max_errors: self.max_errors,
        1066  +
            service_role_arn: self.service_role_arn,
        1067  +
            notification_config: self.notification_config,
        1068  +
            cloud_watch_output_config: self.cloud_watch_output_config,
        1069  +
            alarm_configuration: self.alarm_configuration,
        1070  +
        })
        1071  +
    }
        1072  +
}
        1073  +
impl ::std::fmt::Debug for SendCommandInputBuilder {
        1074  +
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        1075  +
        let mut formatter = f.debug_struct("SendCommandInputBuilder");
        1076  +
        formatter.field("instance_ids", &self.instance_ids);
        1077  +
        formatter.field("targets", &self.targets);
        1078  +
        formatter.field("document_name", &self.document_name);
        1079  +
        formatter.field("document_version", &self.document_version);
        1080  +
        formatter.field("document_hash", &self.document_hash);
        1081  +
        formatter.field("document_hash_type", &self.document_hash_type);
        1082  +
        formatter.field("timeout_seconds", &self.timeout_seconds);
        1083  +
        formatter.field("comment", &self.comment);
        1084  +
        formatter.field("parameters", &"*** Sensitive Data Redacted ***");
        1085  +
        formatter.field("output_s3_region", &self.output_s3_region);
        1086  +
        formatter.field("output_s3_bucket_name", &self.output_s3_bucket_name);
        1087  +
        formatter.field("output_s3_key_prefix", &self.output_s3_key_prefix);
        1088  +
        formatter.field("max_concurrency", &self.max_concurrency);
        1089  +
        formatter.field("max_errors", &self.max_errors);
        1090  +
        formatter.field("service_role_arn", &self.service_role_arn);
        1091  +
        formatter.field("notification_config", &self.notification_config);
        1092  +
        formatter.field("cloud_watch_output_config", &self.cloud_watch_output_config);
        1093  +
        formatter.field("alarm_configuration", &self.alarm_configuration);
        1094  +
        formatter.finish()
        1095  +
    }
        1096  +
}