// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
pub struct SendCommandInput {
/// <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>
/// <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>
/// <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>
pub instance_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
/// <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>
/// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
/// <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>
pub targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
/// <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>
/// <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>
/// </note>
pub document_name: ::std::option::Option<::std::string::String>,
/// <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>
/// <p>--document-version "\$DEFAULT"</p>
/// <p>--document-version "\$LATEST"</p>
/// <p>--document-version "3"</p>
pub document_version: ::std::option::Option<::std::string::String>,
/// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub document_hash: ::std::option::Option<::std::string::String>,
/// <p>Sha256 or Sha1.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub document_hash_type: ::std::option::Option<crate::types::DocumentHashType>,
/// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
pub timeout_seconds: ::std::option::Option<i32>,
/// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
pub comment: ::std::option::Option<::std::string::String>,
/// <p>The required and optional parameters specified in the document being run.</p>
pub parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
/// <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>
pub output_s3_region: ::std::option::Option<::std::string::String>,
/// <p>The name of the S3 bucket where command execution responses should be stored.</p>
pub output_s3_bucket_name: ::std::option::Option<::std::string::String>,
/// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
pub output_s3_key_prefix: ::std::option::Option<::std::string::String>,
/// <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>
pub max_concurrency: ::std::option::Option<::std::string::String>,
/// <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>
pub max_errors: ::std::option::Option<::std::string::String>,
/// <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>
/// <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>
pub service_role_arn: ::std::option::Option<::std::string::String>,
/// <p>Configurations for sending notifications.</p>
pub notification_config: ::std::option::Option<crate::types::NotificationConfig>,
/// <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>
pub cloud_watch_output_config: ::std::option::Option<crate::types::CloudWatchOutputConfig>,
/// <p>The CloudWatch alarm you want to apply to your command.</p>
pub alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
}
impl SendCommandInput {
/// <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>
/// <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>
/// <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>
///
/// 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()`.
pub fn instance_ids(&self) -> &[::std::string::String] {
self.instance_ids.as_deref().unwrap_or_default()
}
/// <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>
/// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
/// <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>
///
/// 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()`.
pub fn targets(&self) -> &[crate::types::Target] {
self.targets.as_deref().unwrap_or_default()
}
/// <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>
/// <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>
/// </note>
pub fn document_name(&self) -> ::std::option::Option<&str> {
self.document_name.as_deref()
}
/// <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>
/// <p>--document-version "\$DEFAULT"</p>
/// <p>--document-version "\$LATEST"</p>
/// <p>--document-version "3"</p>
pub fn document_version(&self) -> ::std::option::Option<&str> {
self.document_version.as_deref()
}
/// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub fn document_hash(&self) -> ::std::option::Option<&str> {
self.document_hash.as_deref()
}
/// <p>Sha256 or Sha1.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub fn document_hash_type(&self) -> ::std::option::Option<&crate::types::DocumentHashType> {
self.document_hash_type.as_ref()
}
/// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
pub fn timeout_seconds(&self) -> ::std::option::Option<i32> {
self.timeout_seconds
}
/// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
pub fn comment(&self) -> ::std::option::Option<&str> {
self.comment.as_deref()
}
/// <p>The required and optional parameters specified in the document being run.</p>
pub fn parameters(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
self.parameters.as_ref()
}
/// <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>
pub fn output_s3_region(&self) -> ::std::option::Option<&str> {
self.output_s3_region.as_deref()
}
/// <p>The name of the S3 bucket where command execution responses should be stored.</p>
pub fn output_s3_bucket_name(&self) -> ::std::option::Option<&str> {
self.output_s3_bucket_name.as_deref()
}
/// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
pub fn output_s3_key_prefix(&self) -> ::std::option::Option<&str> {
self.output_s3_key_prefix.as_deref()
}
/// <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>
pub fn max_concurrency(&self) -> ::std::option::Option<&str> {
self.max_concurrency.as_deref()
}
/// <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>
pub fn max_errors(&self) -> ::std::option::Option<&str> {
self.max_errors.as_deref()
}
/// <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>
/// <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>
pub fn service_role_arn(&self) -> ::std::option::Option<&str> {
self.service_role_arn.as_deref()
}
/// <p>Configurations for sending notifications.</p>
pub fn notification_config(&self) -> ::std::option::Option<&crate::types::NotificationConfig> {
self.notification_config.as_ref()
}
/// <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>
pub fn cloud_watch_output_config(&self) -> ::std::option::Option<&crate::types::CloudWatchOutputConfig> {
self.cloud_watch_output_config.as_ref()
}
/// <p>The CloudWatch alarm you want to apply to your command.</p>
pub fn alarm_configuration(&self) -> ::std::option::Option<&crate::types::AlarmConfiguration> {
self.alarm_configuration.as_ref()
}
}
impl ::std::fmt::Debug for SendCommandInput {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
let mut formatter = f.debug_struct("SendCommandInput");
formatter.field("instance_ids", &self.instance_ids);
formatter.field("targets", &self.targets);
formatter.field("document_name", &self.document_name);
formatter.field("document_version", &self.document_version);
formatter.field("document_hash", &self.document_hash);
formatter.field("document_hash_type", &self.document_hash_type);
formatter.field("timeout_seconds", &self.timeout_seconds);
formatter.field("comment", &self.comment);
formatter.field("parameters", &"*** Sensitive Data Redacted ***");
formatter.field("output_s3_region", &self.output_s3_region);
formatter.field("output_s3_bucket_name", &self.output_s3_bucket_name);
formatter.field("output_s3_key_prefix", &self.output_s3_key_prefix);
formatter.field("max_concurrency", &self.max_concurrency);
formatter.field("max_errors", &self.max_errors);
formatter.field("service_role_arn", &self.service_role_arn);
formatter.field("notification_config", &self.notification_config);
formatter.field("cloud_watch_output_config", &self.cloud_watch_output_config);
formatter.field("alarm_configuration", &self.alarm_configuration);
formatter.finish()
}
}
static SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#InstanceIdList$member", "com.amazonaws.ssm", "InstanceIdList"),
::aws_smithy_schema::ShapeType::String,
"member",
0,
);
static SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$InstanceIds",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::List,
"InstanceIds",
0,
)
.with_list_member(&SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS_MEMBER);
static SENDCOMMANDINPUT_MEMBER_TARGETS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Targets$member", "com.amazonaws.ssm", "Targets"),
::aws_smithy_schema::ShapeType::Structure,
"member",
0,
);
static SENDCOMMANDINPUT_MEMBER_TARGETS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$Targets",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::List,
"Targets",
1,
)
.with_list_member(&SENDCOMMANDINPUT_MEMBER_TARGETS_MEMBER);
static SENDCOMMANDINPUT_MEMBER_DOCUMENT_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$DocumentName",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"DocumentName",
2,
);
static SENDCOMMANDINPUT_MEMBER_DOCUMENT_VERSION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$DocumentVersion",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"DocumentVersion",
3,
);
static SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$DocumentHash",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"DocumentHash",
4,
);
static SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH_TYPE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$DocumentHashType",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"DocumentHashType",
5,
);
static SENDCOMMANDINPUT_MEMBER_TIMEOUT_SECONDS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$TimeoutSeconds",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::Integer,
"TimeoutSeconds",
6,
);
static SENDCOMMANDINPUT_MEMBER_COMMENT: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$Comment",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"Comment",
7,
);
static SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#ParameterValueList$member", "com.amazonaws.ssm", "ParameterValueList"),
::aws_smithy_schema::ShapeType::String,
"member",
0,
);
static SENDCOMMANDINPUT_MEMBER_PARAMETERS_KEY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$key", "com.amazonaws.ssm", "Parameters"),
::aws_smithy_schema::ShapeType::String,
"key",
0,
);
static SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.ssm#Parameters$value", "com.amazonaws.ssm", "Parameters"),
::aws_smithy_schema::ShapeType::List,
"value",
1,
)
.with_list_member(&SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE_MEMBER);
static SENDCOMMANDINPUT_MEMBER_PARAMETERS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$Parameters",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::Map,
"Parameters",
8,
)
.with_map_members(&SENDCOMMANDINPUT_MEMBER_PARAMETERS_KEY, &SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE);
static SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_REGION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$OutputS3Region",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"OutputS3Region",
9,
);
static SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_BUCKET_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$OutputS3BucketName",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"OutputS3BucketName",
10,
);
static SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_KEY_PREFIX: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$OutputS3KeyPrefix",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"OutputS3KeyPrefix",
11,
);
static SENDCOMMANDINPUT_MEMBER_MAX_CONCURRENCY: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$MaxConcurrency",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"MaxConcurrency",
12,
);
static SENDCOMMANDINPUT_MEMBER_MAX_ERRORS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$MaxErrors",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"MaxErrors",
13,
);
static SENDCOMMANDINPUT_MEMBER_SERVICE_ROLE_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$ServiceRoleArn",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::String,
"ServiceRoleArn",
14,
);
static SENDCOMMANDINPUT_MEMBER_NOTIFICATION_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$NotificationConfig",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::Structure,
"NotificationConfig",
15,
);
static SENDCOMMANDINPUT_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$CloudWatchOutputConfig",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::Structure,
"CloudWatchOutputConfig",
16,
);
static SENDCOMMANDINPUT_MEMBER_ALARM_CONFIGURATION: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput$AlarmConfiguration",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::Structure,
"AlarmConfiguration",
17,
);
static SENDCOMMANDINPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
::aws_smithy_schema::ShapeId::from_parts(
"com.amazonaws.ssm.synthetic#SendCommandInput",
"com.amazonaws.ssm.synthetic",
"SendCommandInput",
),
::aws_smithy_schema::ShapeType::Structure,
&[
&SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS,
&SENDCOMMANDINPUT_MEMBER_TARGETS,
&SENDCOMMANDINPUT_MEMBER_DOCUMENT_NAME,
&SENDCOMMANDINPUT_MEMBER_DOCUMENT_VERSION,
&SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH,
&SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH_TYPE,
&SENDCOMMANDINPUT_MEMBER_TIMEOUT_SECONDS,
&SENDCOMMANDINPUT_MEMBER_COMMENT,
&SENDCOMMANDINPUT_MEMBER_PARAMETERS,
&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_REGION,
&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_BUCKET_NAME,
&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_KEY_PREFIX,
&SENDCOMMANDINPUT_MEMBER_MAX_CONCURRENCY,
&SENDCOMMANDINPUT_MEMBER_MAX_ERRORS,
&SENDCOMMANDINPUT_MEMBER_SERVICE_ROLE_ARN,
&SENDCOMMANDINPUT_MEMBER_NOTIFICATION_CONFIG,
&SENDCOMMANDINPUT_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG,
&SENDCOMMANDINPUT_MEMBER_ALARM_CONFIGURATION,
],
)
.with_payload_hint(::aws_smithy_schema::PayloadHint::NoStructPayload)
.with_original_name("SendCommandRequest");
impl SendCommandInput {
/// The schema for this shape.
pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &SENDCOMMANDINPUT_SCHEMA;
}
impl ::aws_smithy_schema::serde::SerializableStruct for SendCommandInput {
fn schema(&self) -> &::aws_smithy_schema::Schema<'_> {
Self::SCHEMA
}
#[allow(unused_variables, clippy::diverging_sub_expression)]
fn serialize_members(
&self,
ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
if let Some(ref val) = self.instance_ids {
ser.write_list(
&SENDCOMMANDINPUT_MEMBER_INSTANCE_IDS,
&|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
for item in val {
ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
}
Ok(())
},
)?;
}
if let Some(ref val) = self.targets {
ser.write_list(
&SENDCOMMANDINPUT_MEMBER_TARGETS,
&|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
for item in val {
ser.write_struct(crate::types::Target::SCHEMA, item)?;
}
Ok(())
},
)?;
}
if let Some(ref val) = self.document_name {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_DOCUMENT_NAME, val)?;
}
if let Some(ref val) = self.document_version {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_DOCUMENT_VERSION, val)?;
}
if let Some(ref val) = self.document_hash {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH, val)?;
}
if let Some(ref val) = self.document_hash_type {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_DOCUMENT_HASH_TYPE, val.as_str())?;
}
if let Some(ref val) = self.timeout_seconds {
ser.write_integer(&SENDCOMMANDINPUT_MEMBER_TIMEOUT_SECONDS, *val)?;
}
if let Some(ref val) = self.comment {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_COMMENT, val)?;
}
if let Some(ref val) = self.parameters {
ser.write_map(
&SENDCOMMANDINPUT_MEMBER_PARAMETERS,
&|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
for (key, value) in val {
ser.write_string(&::aws_smithy_schema::prelude::STRING, key)?;
ser.write_list(
&SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE,
&|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
for item in value {
ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
}
Ok(())
},
)?;
}
Ok(())
},
)?;
}
if let Some(ref val) = self.output_s3_region {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_REGION, val)?;
}
if let Some(ref val) = self.output_s3_bucket_name {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_BUCKET_NAME, val)?;
}
if let Some(ref val) = self.output_s3_key_prefix {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_OUTPUT_S3_KEY_PREFIX, val)?;
}
if let Some(ref val) = self.max_concurrency {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_MAX_CONCURRENCY, val)?;
}
if let Some(ref val) = self.max_errors {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_MAX_ERRORS, val)?;
}
if let Some(ref val) = self.service_role_arn {
ser.write_string(&SENDCOMMANDINPUT_MEMBER_SERVICE_ROLE_ARN, val)?;
}
if let Some(ref val) = self.notification_config {
ser.write_struct(&SENDCOMMANDINPUT_MEMBER_NOTIFICATION_CONFIG, val)?;
}
if let Some(ref val) = self.cloud_watch_output_config {
ser.write_struct(&SENDCOMMANDINPUT_MEMBER_CLOUD_WATCH_OUTPUT_CONFIG, val)?;
}
if let Some(ref val) = self.alarm_configuration {
ser.write_struct(&SENDCOMMANDINPUT_MEMBER_ALARM_CONFIGURATION, val)?;
}
Ok(())
}
}
impl crate::operation::send_command::builders::SendCommandInputBuilder {
#[allow(
unused_variables,
unreachable_code,
clippy::single_match,
clippy::match_single_binding,
clippy::diverging_sub_expression
)]
pub(crate) fn deserialize_members(
&mut self,
deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
deserializer.read_struct(&SENDCOMMANDINPUT_SCHEMA, &mut |member, deser| {
match member.member_index() {
Some(0) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.instance_ids = Some(deser.read_string_list(member)?);
}
}
Some(1) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.targets = Some({
let mut container = Vec::new();
deser.read_list(member, &mut |deser| {
container.push(crate::types::Target::deserialize(deser)?);
Ok(())
})?;
container
});
}
}
Some(2) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.document_name = Some(deser.read_string(member)?);
}
}
Some(3) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.document_version = Some(deser.read_string(member)?);
}
}
Some(4) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.document_hash = Some(deser.read_string(member)?);
}
}
Some(5) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.document_hash_type = Some(crate::types::DocumentHashType::from(deser.read_string(member)?.as_str()));
}
}
Some(6) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.timeout_seconds = Some(deser.read_integer(member)?);
}
}
Some(7) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.comment = Some(deser.read_string(member)?);
}
}
Some(8) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.parameters = Some({
let mut container = std::collections::HashMap::new();
deser.read_map(member, &mut |key, deser| {
container.insert(key, {
let mut list = Vec::new();
deser.read_list(&SENDCOMMANDINPUT_MEMBER_PARAMETERS_VALUE, &mut |deser| {
list.push(deser.read_string(&::aws_smithy_schema::prelude::STRING)?);
Ok(())
})?;
list
});
Ok(())
})?;
container
});
}
}
Some(9) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.output_s3_region = Some(deser.read_string(member)?);
}
}
Some(10) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.output_s3_bucket_name = Some(deser.read_string(member)?);
}
}
Some(11) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.output_s3_key_prefix = Some(deser.read_string(member)?);
}
}
Some(12) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.max_concurrency = Some(deser.read_string(member)?);
}
}
Some(13) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.max_errors = Some(deser.read_string(member)?);
}
}
Some(14) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.service_role_arn = Some(deser.read_string(member)?);
}
}
Some(15) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.notification_config = Some(crate::types::NotificationConfig::deserialize(deser)?);
}
}
Some(16) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.cloud_watch_output_config = Some(crate::types::CloudWatchOutputConfig::deserialize(deser)?);
}
}
Some(17) => {
if deser.is_null() {
deser.read_null()?;
} else {
self.alarm_configuration = Some(crate::types::AlarmConfiguration::deserialize(deser)?);
}
}
_ => {}
}
Ok(())
})
}
}
impl SendCommandInput {
/// Deserializes this structure from a [`ShapeDeserializer`].
pub fn deserialize(
deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
let mut builder = Self::builder();
builder.deserialize_members(deserializer)?;
builder.document_name = builder.document_name.or(Some(String::new()));
builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
}
}
impl SendCommandInput {
/// Creates a new builder-style object to manufacture [`SendCommandInput`](crate::operation::send_command::SendCommandInput).
pub fn builder() -> crate::operation::send_command::builders::SendCommandInputBuilder {
crate::operation::send_command::builders::SendCommandInputBuilder::default()
}
}
/// A builder for [`SendCommandInput`](crate::operation::send_command::SendCommandInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
#[non_exhaustive]
pub struct SendCommandInputBuilder {
pub(crate) instance_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
pub(crate) targets: ::std::option::Option<::std::vec::Vec<crate::types::Target>>,
pub(crate) document_name: ::std::option::Option<::std::string::String>,
pub(crate) document_version: ::std::option::Option<::std::string::String>,
pub(crate) document_hash: ::std::option::Option<::std::string::String>,
pub(crate) document_hash_type: ::std::option::Option<crate::types::DocumentHashType>,
pub(crate) timeout_seconds: ::std::option::Option<i32>,
pub(crate) comment: ::std::option::Option<::std::string::String>,
pub(crate) parameters: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
pub(crate) output_s3_region: ::std::option::Option<::std::string::String>,
pub(crate) output_s3_bucket_name: ::std::option::Option<::std::string::String>,
pub(crate) output_s3_key_prefix: ::std::option::Option<::std::string::String>,
pub(crate) max_concurrency: ::std::option::Option<::std::string::String>,
pub(crate) max_errors: ::std::option::Option<::std::string::String>,
pub(crate) service_role_arn: ::std::option::Option<::std::string::String>,
pub(crate) notification_config: ::std::option::Option<crate::types::NotificationConfig>,
pub(crate) cloud_watch_output_config: ::std::option::Option<crate::types::CloudWatchOutputConfig>,
pub(crate) alarm_configuration: ::std::option::Option<crate::types::AlarmConfiguration>,
}
impl SendCommandInputBuilder {
/// Appends an item to `instance_ids`.
///
/// To override the contents of this collection use [`set_instance_ids`](Self::set_instance_ids).
///
/// <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>
/// <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>
/// <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>
pub fn instance_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut v = self.instance_ids.unwrap_or_default();
v.push(input.into());
self.instance_ids = ::std::option::Option::Some(v);
self
}
/// <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>
/// <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>
/// <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>
pub fn set_instance_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.instance_ids = input;
self
}
/// <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>
/// <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>
/// <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>
pub fn get_instance_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
&self.instance_ids
}
/// Appends an item to `targets`.
///
/// To override the contents of this collection use [`set_targets`](Self::set_targets).
///
/// <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>
/// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
/// <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>
pub fn targets(mut self, input: crate::types::Target) -> Self {
let mut v = self.targets.unwrap_or_default();
v.push(input);
self.targets = ::std::option::Option::Some(v);
self
}
/// <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>
/// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
/// <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>
pub fn set_targets(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Target>>) -> Self {
self.targets = input;
self
}
/// <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>
/// <p>To send a command to a smaller number of managed nodes, you can use the <code>InstanceIds</code> option instead.</p>
/// <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>
pub fn get_targets(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Target>> {
&self.targets
}
/// <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>
/// <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>
/// </note>
/// This field is required.
pub fn document_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.document_name = ::std::option::Option::Some(input.into());
self
}
/// <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>
/// <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>
/// </note>
pub fn set_document_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.document_name = input;
self
}
/// <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>
/// <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>
/// </note>
pub fn get_document_name(&self) -> &::std::option::Option<::std::string::String> {
&self.document_name
}
/// <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>
/// <p>--document-version "\$DEFAULT"</p>
/// <p>--document-version "\$LATEST"</p>
/// <p>--document-version "3"</p>
pub fn document_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.document_version = ::std::option::Option::Some(input.into());
self
}
/// <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>
/// <p>--document-version "\$DEFAULT"</p>
/// <p>--document-version "\$LATEST"</p>
/// <p>--document-version "3"</p>
pub fn set_document_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.document_version = input;
self
}
/// <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>
/// <p>--document-version "\$DEFAULT"</p>
/// <p>--document-version "\$LATEST"</p>
/// <p>--document-version "3"</p>
pub fn get_document_version(&self) -> &::std::option::Option<::std::string::String> {
&self.document_version
}
/// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub fn document_hash(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.document_hash = ::std::option::Option::Some(input.into());
self
}
/// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub fn set_document_hash(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.document_hash = input;
self
}
/// <p>The Sha256 or Sha1 hash created by the system when the document was created.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub fn get_document_hash(&self) -> &::std::option::Option<::std::string::String> {
&self.document_hash
}
/// <p>Sha256 or Sha1.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub fn document_hash_type(mut self, input: crate::types::DocumentHashType) -> Self {
self.document_hash_type = ::std::option::Option::Some(input);
self
}
/// <p>Sha256 or Sha1.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub fn set_document_hash_type(mut self, input: ::std::option::Option<crate::types::DocumentHashType>) -> Self {
self.document_hash_type = input;
self
}
/// <p>Sha256 or Sha1.</p><note>
/// <p>Sha1 hashes have been deprecated.</p>
/// </note>
pub fn get_document_hash_type(&self) -> &::std::option::Option<crate::types::DocumentHashType> {
&self.document_hash_type
}
/// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
pub fn timeout_seconds(mut self, input: i32) -> Self {
self.timeout_seconds = ::std::option::Option::Some(input);
self
}
/// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
pub fn set_timeout_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
self.timeout_seconds = input;
self
}
/// <p>If this time is reached and the command hasn't already started running, it won't run.</p>
pub fn get_timeout_seconds(&self) -> &::std::option::Option<i32> {
&self.timeout_seconds
}
/// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
pub fn comment(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.comment = ::std::option::Option::Some(input.into());
self
}
/// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
pub fn set_comment(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.comment = input;
self
}
/// <p>User-specified information about the command, such as a brief description of what the command should do.</p>
pub fn get_comment(&self) -> &::std::option::Option<::std::string::String> {
&self.comment
}
/// Adds a key-value pair to `parameters`.
///
/// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
///
/// <p>The required and optional parameters specified in the document being run.</p>
pub fn parameters(mut self, k: impl ::std::convert::Into<::std::string::String>, v: ::std::vec::Vec<::std::string::String>) -> Self {
let mut hash_map = self.parameters.unwrap_or_default();
hash_map.insert(k.into(), v);
self.parameters = ::std::option::Option::Some(hash_map);
self
}
/// <p>The required and optional parameters specified in the document being run.</p>
pub fn set_parameters(
mut self,
input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>>,
) -> Self {
self.parameters = input;
self
}
/// <p>The required and optional parameters specified in the document being run.</p>
pub fn get_parameters(
&self,
) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::vec::Vec<::std::string::String>>> {
&self.parameters
}
/// <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>
pub fn output_s3_region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.output_s3_region = ::std::option::Option::Some(input.into());
self
}
/// <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>
pub fn set_output_s3_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.output_s3_region = input;
self
}
/// <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>
pub fn get_output_s3_region(&self) -> &::std::option::Option<::std::string::String> {
&self.output_s3_region
}
/// <p>The name of the S3 bucket where command execution responses should be stored.</p>
pub fn output_s3_bucket_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.output_s3_bucket_name = ::std::option::Option::Some(input.into());
self
}
/// <p>The name of the S3 bucket where command execution responses should be stored.</p>
pub fn set_output_s3_bucket_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.output_s3_bucket_name = input;
self
}
/// <p>The name of the S3 bucket where command execution responses should be stored.</p>
pub fn get_output_s3_bucket_name(&self) -> &::std::option::Option<::std::string::String> {
&self.output_s3_bucket_name
}
/// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
pub fn output_s3_key_prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.output_s3_key_prefix = ::std::option::Option::Some(input.into());
self
}
/// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
pub fn set_output_s3_key_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.output_s3_key_prefix = input;
self
}
/// <p>The directory structure within the S3 bucket where the responses should be stored.</p>
pub fn get_output_s3_key_prefix(&self) -> &::std::option::Option<::std::string::String> {
&self.output_s3_key_prefix
}
/// <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>
pub fn max_concurrency(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.max_concurrency = ::std::option::Option::Some(input.into());
self
}
/// <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>
pub fn set_max_concurrency(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.max_concurrency = input;
self
}
/// <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>
pub fn get_max_concurrency(&self) -> &::std::option::Option<::std::string::String> {
&self.max_concurrency
}
/// <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>
pub fn max_errors(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.max_errors = ::std::option::Option::Some(input.into());
self
}
/// <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>
pub fn set_max_errors(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.max_errors = input;
self
}
/// <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>
pub fn get_max_errors(&self) -> &::std::option::Option<::std::string::String> {
&self.max_errors
}
/// <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>
/// <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>
pub fn service_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.service_role_arn = ::std::option::Option::Some(input.into());
self
}
/// <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>
/// <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>
pub fn set_service_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.service_role_arn = input;
self
}
/// <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>
/// <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>
pub fn get_service_role_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.service_role_arn
}
/// <p>Configurations for sending notifications.</p>
pub fn notification_config(mut self, input: crate::types::NotificationConfig) -> Self {
self.notification_config = ::std::option::Option::Some(input);
self
}
/// <p>Configurations for sending notifications.</p>
pub fn set_notification_config(mut self, input: ::std::option::Option<crate::types::NotificationConfig>) -> Self {
self.notification_config = input;
self
}
/// <p>Configurations for sending notifications.</p>
pub fn get_notification_config(&self) -> &::std::option::Option<crate::types::NotificationConfig> {
&self.notification_config
}
/// <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>
pub fn cloud_watch_output_config(mut self, input: crate::types::CloudWatchOutputConfig) -> Self {
self.cloud_watch_output_config = ::std::option::Option::Some(input);
self
}
/// <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>
pub fn set_cloud_watch_output_config(mut self, input: ::std::option::Option<crate::types::CloudWatchOutputConfig>) -> Self {
self.cloud_watch_output_config = input;
self
}
/// <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>
pub fn get_cloud_watch_output_config(&self) -> &::std::option::Option<crate::types::CloudWatchOutputConfig> {
&self.cloud_watch_output_config
}
/// <p>The CloudWatch alarm you want to apply to your command.</p>
pub fn alarm_configuration(mut self, input: crate::types::AlarmConfiguration) -> Self {
self.alarm_configuration = ::std::option::Option::Some(input);
self
}
/// <p>The CloudWatch alarm you want to apply to your command.</p>
pub fn set_alarm_configuration(mut self, input: ::std::option::Option<crate::types::AlarmConfiguration>) -> Self {
self.alarm_configuration = input;
self
}
/// <p>The CloudWatch alarm you want to apply to your command.</p>
pub fn get_alarm_configuration(&self) -> &::std::option::Option<crate::types::AlarmConfiguration> {
&self.alarm_configuration
}
/// Consumes the builder and constructs a [`SendCommandInput`](crate::operation::send_command::SendCommandInput).
pub fn build(self) -> ::std::result::Result<crate::operation::send_command::SendCommandInput, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::operation::send_command::SendCommandInput {
instance_ids: self.instance_ids,
targets: self.targets,
document_name: self.document_name,
document_version: self.document_version,
document_hash: self.document_hash,
document_hash_type: self.document_hash_type,
timeout_seconds: self.timeout_seconds,
comment: self.comment,
parameters: self.parameters,
output_s3_region: self.output_s3_region,
output_s3_bucket_name: self.output_s3_bucket_name,
output_s3_key_prefix: self.output_s3_key_prefix,
max_concurrency: self.max_concurrency,
max_errors: self.max_errors,
service_role_arn: self.service_role_arn,
notification_config: self.notification_config,
cloud_watch_output_config: self.cloud_watch_output_config,
alarm_configuration: self.alarm_configuration,
})
}
}
impl ::std::fmt::Debug for SendCommandInputBuilder {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
let mut formatter = f.debug_struct("SendCommandInputBuilder");
formatter.field("instance_ids", &self.instance_ids);
formatter.field("targets", &self.targets);
formatter.field("document_name", &self.document_name);
formatter.field("document_version", &self.document_version);
formatter.field("document_hash", &self.document_hash);
formatter.field("document_hash_type", &self.document_hash_type);
formatter.field("timeout_seconds", &self.timeout_seconds);
formatter.field("comment", &self.comment);
formatter.field("parameters", &"*** Sensitive Data Redacted ***");
formatter.field("output_s3_region", &self.output_s3_region);
formatter.field("output_s3_bucket_name", &self.output_s3_bucket_name);
formatter.field("output_s3_key_prefix", &self.output_s3_key_prefix);
formatter.field("max_concurrency", &self.max_concurrency);
formatter.field("max_errors", &self.max_errors);
formatter.field("service_role_arn", &self.service_role_arn);
formatter.field("notification_config", &self.notification_config);
formatter.field("cloud_watch_output_config", &self.cloud_watch_output_config);
formatter.field("alarm_configuration", &self.alarm_configuration);
formatter.finish()
}
}