/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace SSM { namespace Model { /** */ class SendCommandRequest : public SSMRequest { public: AWS_SSM_API SendCommandRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "SendCommand"; } AWS_SSM_API Aws::String SerializePayload() const override; AWS_SSM_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline const Aws::Vector& GetInstanceIds() const{ return m_instanceIds; } /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline bool InstanceIdsHasBeenSet() const { return m_instanceIdsHasBeenSet; } /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline void SetInstanceIds(const Aws::Vector& value) { m_instanceIdsHasBeenSet = true; m_instanceIds = value; } /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline void SetInstanceIds(Aws::Vector&& value) { m_instanceIdsHasBeenSet = true; m_instanceIds = std::move(value); } /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline SendCommandRequest& WithInstanceIds(const Aws::Vector& value) { SetInstanceIds(value); return *this;} /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline SendCommandRequest& WithInstanceIds(Aws::Vector&& value) { SetInstanceIds(std::move(value)); return *this;} /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline SendCommandRequest& AddInstanceIds(const Aws::String& value) { m_instanceIdsHasBeenSet = true; m_instanceIds.push_back(value); return *this; } /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline SendCommandRequest& AddInstanceIds(Aws::String&& value) { m_instanceIdsHasBeenSet = true; m_instanceIds.push_back(std::move(value)); return *this; } /** *

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.

To target a larger number of * managed nodes, or if you prefer not to list individual node IDs, we recommend * using the Targets option instead. Using Targets, 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.

*

For more information about how to use targets, see Using * targets and rate controls to send commands to a fleet in the Amazon Web * Services Systems Manager User Guide.

*/ inline SendCommandRequest& AddInstanceIds(const char* value) { m_instanceIdsHasBeenSet = true; m_instanceIds.push_back(value); return *this; } /** *

An array of search criteria that targets managed nodes using a * Key,Value 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 Targets, which accepts tag key-value pairs to identify * managed nodes, you can send a command to tens, hundreds, or thousands of nodes * at once.

To send a command to a smaller number of managed nodes, you can * use the InstanceIds option instead.

For more information * about how to use targets, see Sending * commands to a fleet in the Amazon Web Services Systems Manager User * Guide.

*/ inline const Aws::Vector& GetTargets() const{ return m_targets; } /** *

An array of search criteria that targets managed nodes using a * Key,Value 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 Targets, which accepts tag key-value pairs to identify * managed nodes, you can send a command to tens, hundreds, or thousands of nodes * at once.

To send a command to a smaller number of managed nodes, you can * use the InstanceIds option instead.

For more information * about how to use targets, see Sending * commands to a fleet in the Amazon Web Services Systems Manager User * Guide.

*/ inline bool TargetsHasBeenSet() const { return m_targetsHasBeenSet; } /** *

An array of search criteria that targets managed nodes using a * Key,Value 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 Targets, which accepts tag key-value pairs to identify * managed nodes, you can send a command to tens, hundreds, or thousands of nodes * at once.

To send a command to a smaller number of managed nodes, you can * use the InstanceIds option instead.

For more information * about how to use targets, see Sending * commands to a fleet in the Amazon Web Services Systems Manager User * Guide.

*/ inline void SetTargets(const Aws::Vector& value) { m_targetsHasBeenSet = true; m_targets = value; } /** *

An array of search criteria that targets managed nodes using a * Key,Value 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 Targets, which accepts tag key-value pairs to identify * managed nodes, you can send a command to tens, hundreds, or thousands of nodes * at once.

To send a command to a smaller number of managed nodes, you can * use the InstanceIds option instead.

For more information * about how to use targets, see Sending * commands to a fleet in the Amazon Web Services Systems Manager User * Guide.

*/ inline void SetTargets(Aws::Vector&& value) { m_targetsHasBeenSet = true; m_targets = std::move(value); } /** *

An array of search criteria that targets managed nodes using a * Key,Value 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 Targets, which accepts tag key-value pairs to identify * managed nodes, you can send a command to tens, hundreds, or thousands of nodes * at once.

To send a command to a smaller number of managed nodes, you can * use the InstanceIds option instead.

For more information * about how to use targets, see Sending * commands to a fleet in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& WithTargets(const Aws::Vector& value) { SetTargets(value); return *this;} /** *

An array of search criteria that targets managed nodes using a * Key,Value 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 Targets, which accepts tag key-value pairs to identify * managed nodes, you can send a command to tens, hundreds, or thousands of nodes * at once.

To send a command to a smaller number of managed nodes, you can * use the InstanceIds option instead.

For more information * about how to use targets, see Sending * commands to a fleet in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& WithTargets(Aws::Vector&& value) { SetTargets(std::move(value)); return *this;} /** *

An array of search criteria that targets managed nodes using a * Key,Value 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 Targets, which accepts tag key-value pairs to identify * managed nodes, you can send a command to tens, hundreds, or thousands of nodes * at once.

To send a command to a smaller number of managed nodes, you can * use the InstanceIds option instead.

For more information * about how to use targets, see Sending * commands to a fleet in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& AddTargets(const Target& value) { m_targetsHasBeenSet = true; m_targets.push_back(value); return *this; } /** *

An array of search criteria that targets managed nodes using a * Key,Value 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 Targets, which accepts tag key-value pairs to identify * managed nodes, you can send a command to tens, hundreds, or thousands of nodes * at once.

To send a command to a smaller number of managed nodes, you can * use the InstanceIds option instead.

For more information * about how to use targets, see Sending * commands to a fleet in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& AddTargets(Target&& value) { m_targetsHasBeenSet = true; m_targets.push_back(std::move(value)); return *this; } /** *

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 Using * shared SSM documents in the Amazon Web Services Systems Manager User * Guide.

If you specify a document name or ARN that hasn't been * shared with your account, you receive an InvalidDocument error. *

*/ inline const Aws::String& GetDocumentName() const{ return m_documentName; } /** *

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 Using * shared SSM documents in the Amazon Web Services Systems Manager User * Guide.

If you specify a document name or ARN that hasn't been * shared with your account, you receive an InvalidDocument error. *

*/ inline bool DocumentNameHasBeenSet() const { return m_documentNameHasBeenSet; } /** *

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 Using * shared SSM documents in the Amazon Web Services Systems Manager User * Guide.

If you specify a document name or ARN that hasn't been * shared with your account, you receive an InvalidDocument error. *

*/ inline void SetDocumentName(const Aws::String& value) { m_documentNameHasBeenSet = true; m_documentName = value; } /** *

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 Using * shared SSM documents in the Amazon Web Services Systems Manager User * Guide.

If you specify a document name or ARN that hasn't been * shared with your account, you receive an InvalidDocument error. *

*/ inline void SetDocumentName(Aws::String&& value) { m_documentNameHasBeenSet = true; m_documentName = std::move(value); } /** *

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 Using * shared SSM documents in the Amazon Web Services Systems Manager User * Guide.

If you specify a document name or ARN that hasn't been * shared with your account, you receive an InvalidDocument error. *

*/ inline void SetDocumentName(const char* value) { m_documentNameHasBeenSet = true; m_documentName.assign(value); } /** *

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 Using * shared SSM documents in the Amazon Web Services Systems Manager User * Guide.

If you specify a document name or ARN that hasn't been * shared with your account, you receive an InvalidDocument error. *

*/ inline SendCommandRequest& WithDocumentName(const Aws::String& value) { SetDocumentName(value); return *this;} /** *

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 Using * shared SSM documents in the Amazon Web Services Systems Manager User * Guide.

If you specify a document name or ARN that hasn't been * shared with your account, you receive an InvalidDocument error. *

*/ inline SendCommandRequest& WithDocumentName(Aws::String&& value) { SetDocumentName(std::move(value)); return *this;} /** *

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 Using * shared SSM documents in the Amazon Web Services Systems Manager User * Guide.

If you specify a document name or ARN that hasn't been * shared with your account, you receive an InvalidDocument error. *

*/ inline SendCommandRequest& WithDocumentName(const char* value) { SetDocumentName(value); return *this;} /** *

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:

--document-version * "\$DEFAULT"

--document-version "\$LATEST"

--document-version * "3"

*/ inline const Aws::String& GetDocumentVersion() const{ return m_documentVersion; } /** *

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:

--document-version * "\$DEFAULT"

--document-version "\$LATEST"

--document-version * "3"

*/ inline bool DocumentVersionHasBeenSet() const { return m_documentVersionHasBeenSet; } /** *

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:

--document-version * "\$DEFAULT"

--document-version "\$LATEST"

--document-version * "3"

*/ inline void SetDocumentVersion(const Aws::String& value) { m_documentVersionHasBeenSet = true; m_documentVersion = value; } /** *

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:

--document-version * "\$DEFAULT"

--document-version "\$LATEST"

--document-version * "3"

*/ inline void SetDocumentVersion(Aws::String&& value) { m_documentVersionHasBeenSet = true; m_documentVersion = std::move(value); } /** *

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:

--document-version * "\$DEFAULT"

--document-version "\$LATEST"

--document-version * "3"

*/ inline void SetDocumentVersion(const char* value) { m_documentVersionHasBeenSet = true; m_documentVersion.assign(value); } /** *

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:

--document-version * "\$DEFAULT"

--document-version "\$LATEST"

--document-version * "3"

*/ inline SendCommandRequest& WithDocumentVersion(const Aws::String& value) { SetDocumentVersion(value); return *this;} /** *

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:

--document-version * "\$DEFAULT"

--document-version "\$LATEST"

--document-version * "3"

*/ inline SendCommandRequest& WithDocumentVersion(Aws::String&& value) { SetDocumentVersion(std::move(value)); return *this;} /** *

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:

--document-version * "\$DEFAULT"

--document-version "\$LATEST"

--document-version * "3"

*/ inline SendCommandRequest& WithDocumentVersion(const char* value) { SetDocumentVersion(value); return *this;} /** *

The Sha256 or Sha1 hash created by the system when the document was created. *

Sha1 hashes have been deprecated.

*/ inline const Aws::String& GetDocumentHash() const{ return m_documentHash; } /** *

The Sha256 or Sha1 hash created by the system when the document was created. *

Sha1 hashes have been deprecated.

*/ inline bool DocumentHashHasBeenSet() const { return m_documentHashHasBeenSet; } /** *

The Sha256 or Sha1 hash created by the system when the document was created. *

Sha1 hashes have been deprecated.

*/ inline void SetDocumentHash(const Aws::String& value) { m_documentHashHasBeenSet = true; m_documentHash = value; } /** *

The Sha256 or Sha1 hash created by the system when the document was created. *

Sha1 hashes have been deprecated.

*/ inline void SetDocumentHash(Aws::String&& value) { m_documentHashHasBeenSet = true; m_documentHash = std::move(value); } /** *

The Sha256 or Sha1 hash created by the system when the document was created. *

Sha1 hashes have been deprecated.

*/ inline void SetDocumentHash(const char* value) { m_documentHashHasBeenSet = true; m_documentHash.assign(value); } /** *

The Sha256 or Sha1 hash created by the system when the document was created. *

Sha1 hashes have been deprecated.

*/ inline SendCommandRequest& WithDocumentHash(const Aws::String& value) { SetDocumentHash(value); return *this;} /** *

The Sha256 or Sha1 hash created by the system when the document was created. *

Sha1 hashes have been deprecated.

*/ inline SendCommandRequest& WithDocumentHash(Aws::String&& value) { SetDocumentHash(std::move(value)); return *this;} /** *

The Sha256 or Sha1 hash created by the system when the document was created. *

Sha1 hashes have been deprecated.

*/ inline SendCommandRequest& WithDocumentHash(const char* value) { SetDocumentHash(value); return *this;} /** *

Sha256 or Sha1.

Sha1 hashes have been deprecated.

*/ inline const DocumentHashType& GetDocumentHashType() const{ return m_documentHashType; } /** *

Sha256 or Sha1.

Sha1 hashes have been deprecated.

*/ inline bool DocumentHashTypeHasBeenSet() const { return m_documentHashTypeHasBeenSet; } /** *

Sha256 or Sha1.

Sha1 hashes have been deprecated.

*/ inline void SetDocumentHashType(const DocumentHashType& value) { m_documentHashTypeHasBeenSet = true; m_documentHashType = value; } /** *

Sha256 or Sha1.

Sha1 hashes have been deprecated.

*/ inline void SetDocumentHashType(DocumentHashType&& value) { m_documentHashTypeHasBeenSet = true; m_documentHashType = std::move(value); } /** *

Sha256 or Sha1.

Sha1 hashes have been deprecated.

*/ inline SendCommandRequest& WithDocumentHashType(const DocumentHashType& value) { SetDocumentHashType(value); return *this;} /** *

Sha256 or Sha1.

Sha1 hashes have been deprecated.

*/ inline SendCommandRequest& WithDocumentHashType(DocumentHashType&& value) { SetDocumentHashType(std::move(value)); return *this;} /** *

If this time is reached and the command hasn't already started running, it * won't run.

*/ inline int GetTimeoutSeconds() const{ return m_timeoutSeconds; } /** *

If this time is reached and the command hasn't already started running, it * won't run.

*/ inline bool TimeoutSecondsHasBeenSet() const { return m_timeoutSecondsHasBeenSet; } /** *

If this time is reached and the command hasn't already started running, it * won't run.

*/ inline void SetTimeoutSeconds(int value) { m_timeoutSecondsHasBeenSet = true; m_timeoutSeconds = value; } /** *

If this time is reached and the command hasn't already started running, it * won't run.

*/ inline SendCommandRequest& WithTimeoutSeconds(int value) { SetTimeoutSeconds(value); return *this;} /** *

User-specified information about the command, such as a brief description of * what the command should do.

*/ inline const Aws::String& GetComment() const{ return m_comment; } /** *

User-specified information about the command, such as a brief description of * what the command should do.

*/ inline bool CommentHasBeenSet() const { return m_commentHasBeenSet; } /** *

User-specified information about the command, such as a brief description of * what the command should do.

*/ inline void SetComment(const Aws::String& value) { m_commentHasBeenSet = true; m_comment = value; } /** *

User-specified information about the command, such as a brief description of * what the command should do.

*/ inline void SetComment(Aws::String&& value) { m_commentHasBeenSet = true; m_comment = std::move(value); } /** *

User-specified information about the command, such as a brief description of * what the command should do.

*/ inline void SetComment(const char* value) { m_commentHasBeenSet = true; m_comment.assign(value); } /** *

User-specified information about the command, such as a brief description of * what the command should do.

*/ inline SendCommandRequest& WithComment(const Aws::String& value) { SetComment(value); return *this;} /** *

User-specified information about the command, such as a brief description of * what the command should do.

*/ inline SendCommandRequest& WithComment(Aws::String&& value) { SetComment(std::move(value)); return *this;} /** *

User-specified information about the command, such as a brief description of * what the command should do.

*/ inline SendCommandRequest& WithComment(const char* value) { SetComment(value); return *this;} /** *

The required and optional parameters specified in the document being run.

*/ inline const Aws::Map>& GetParameters() const{ return m_parameters; } /** *

The required and optional parameters specified in the document being run.

*/ inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; } /** *

The required and optional parameters specified in the document being run.

*/ inline void SetParameters(const Aws::Map>& value) { m_parametersHasBeenSet = true; m_parameters = value; } /** *

The required and optional parameters specified in the document being run.

*/ inline void SetParameters(Aws::Map>&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); } /** *

The required and optional parameters specified in the document being run.

*/ inline SendCommandRequest& WithParameters(const Aws::Map>& value) { SetParameters(value); return *this;} /** *

The required and optional parameters specified in the document being run.

*/ inline SendCommandRequest& WithParameters(Aws::Map>&& value) { SetParameters(std::move(value)); return *this;} /** *

The required and optional parameters specified in the document being run.

*/ inline SendCommandRequest& AddParameters(const Aws::String& key, const Aws::Vector& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

The required and optional parameters specified in the document being run.

*/ inline SendCommandRequest& AddParameters(Aws::String&& key, const Aws::Vector& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), value); return *this; } /** *

The required and optional parameters specified in the document being run.

*/ inline SendCommandRequest& AddParameters(const Aws::String& key, Aws::Vector&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

The required and optional parameters specified in the document being run.

*/ inline SendCommandRequest& AddParameters(Aws::String&& key, Aws::Vector&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(std::move(key), std::move(value)); return *this; } /** *

The required and optional parameters specified in the document being run.

*/ inline SendCommandRequest& AddParameters(const char* key, Aws::Vector&& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, std::move(value)); return *this; } /** *

The required and optional parameters specified in the document being run.

*/ inline SendCommandRequest& AddParameters(const char* key, const Aws::Vector& value) { m_parametersHasBeenSet = true; m_parameters.emplace(key, value); return *this; } /** *

(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.

*/ inline const Aws::String& GetOutputS3Region() const{ return m_outputS3Region; } /** *

(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.

*/ inline bool OutputS3RegionHasBeenSet() const { return m_outputS3RegionHasBeenSet; } /** *

(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.

*/ inline void SetOutputS3Region(const Aws::String& value) { m_outputS3RegionHasBeenSet = true; m_outputS3Region = value; } /** *

(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.

*/ inline void SetOutputS3Region(Aws::String&& value) { m_outputS3RegionHasBeenSet = true; m_outputS3Region = std::move(value); } /** *

(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.

*/ inline void SetOutputS3Region(const char* value) { m_outputS3RegionHasBeenSet = true; m_outputS3Region.assign(value); } /** *

(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.

*/ inline SendCommandRequest& WithOutputS3Region(const Aws::String& value) { SetOutputS3Region(value); return *this;} /** *

(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.

*/ inline SendCommandRequest& WithOutputS3Region(Aws::String&& value) { SetOutputS3Region(std::move(value)); return *this;} /** *

(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.

*/ inline SendCommandRequest& WithOutputS3Region(const char* value) { SetOutputS3Region(value); return *this;} /** *

The name of the S3 bucket where command execution responses should be * stored.

*/ inline const Aws::String& GetOutputS3BucketName() const{ return m_outputS3BucketName; } /** *

The name of the S3 bucket where command execution responses should be * stored.

*/ inline bool OutputS3BucketNameHasBeenSet() const { return m_outputS3BucketNameHasBeenSet; } /** *

The name of the S3 bucket where command execution responses should be * stored.

*/ inline void SetOutputS3BucketName(const Aws::String& value) { m_outputS3BucketNameHasBeenSet = true; m_outputS3BucketName = value; } /** *

The name of the S3 bucket where command execution responses should be * stored.

*/ inline void SetOutputS3BucketName(Aws::String&& value) { m_outputS3BucketNameHasBeenSet = true; m_outputS3BucketName = std::move(value); } /** *

The name of the S3 bucket where command execution responses should be * stored.

*/ inline void SetOutputS3BucketName(const char* value) { m_outputS3BucketNameHasBeenSet = true; m_outputS3BucketName.assign(value); } /** *

The name of the S3 bucket where command execution responses should be * stored.

*/ inline SendCommandRequest& WithOutputS3BucketName(const Aws::String& value) { SetOutputS3BucketName(value); return *this;} /** *

The name of the S3 bucket where command execution responses should be * stored.

*/ inline SendCommandRequest& WithOutputS3BucketName(Aws::String&& value) { SetOutputS3BucketName(std::move(value)); return *this;} /** *

The name of the S3 bucket where command execution responses should be * stored.

*/ inline SendCommandRequest& WithOutputS3BucketName(const char* value) { SetOutputS3BucketName(value); return *this;} /** *

The directory structure within the S3 bucket where the responses should be * stored.

*/ inline const Aws::String& GetOutputS3KeyPrefix() const{ return m_outputS3KeyPrefix; } /** *

The directory structure within the S3 bucket where the responses should be * stored.

*/ inline bool OutputS3KeyPrefixHasBeenSet() const { return m_outputS3KeyPrefixHasBeenSet; } /** *

The directory structure within the S3 bucket where the responses should be * stored.

*/ inline void SetOutputS3KeyPrefix(const Aws::String& value) { m_outputS3KeyPrefixHasBeenSet = true; m_outputS3KeyPrefix = value; } /** *

The directory structure within the S3 bucket where the responses should be * stored.

*/ inline void SetOutputS3KeyPrefix(Aws::String&& value) { m_outputS3KeyPrefixHasBeenSet = true; m_outputS3KeyPrefix = std::move(value); } /** *

The directory structure within the S3 bucket where the responses should be * stored.

*/ inline void SetOutputS3KeyPrefix(const char* value) { m_outputS3KeyPrefixHasBeenSet = true; m_outputS3KeyPrefix.assign(value); } /** *

The directory structure within the S3 bucket where the responses should be * stored.

*/ inline SendCommandRequest& WithOutputS3KeyPrefix(const Aws::String& value) { SetOutputS3KeyPrefix(value); return *this;} /** *

The directory structure within the S3 bucket where the responses should be * stored.

*/ inline SendCommandRequest& WithOutputS3KeyPrefix(Aws::String&& value) { SetOutputS3KeyPrefix(std::move(value)); return *this;} /** *

The directory structure within the S3 bucket where the responses should be * stored.

*/ inline SendCommandRequest& WithOutputS3KeyPrefix(const char* value) { SetOutputS3KeyPrefix(value); return *this;} /** *

(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 50. For more information about * how to use MaxConcurrency, see Using * concurrency controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline const Aws::String& GetMaxConcurrency() const{ return m_maxConcurrency; } /** *

(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 50. For more information about * how to use MaxConcurrency, see Using * concurrency controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline bool MaxConcurrencyHasBeenSet() const { return m_maxConcurrencyHasBeenSet; } /** *

(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 50. For more information about * how to use MaxConcurrency, see Using * concurrency controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline void SetMaxConcurrency(const Aws::String& value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency = value; } /** *

(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 50. For more information about * how to use MaxConcurrency, see Using * concurrency controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline void SetMaxConcurrency(Aws::String&& value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency = std::move(value); } /** *

(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 50. For more information about * how to use MaxConcurrency, see Using * concurrency controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline void SetMaxConcurrency(const char* value) { m_maxConcurrencyHasBeenSet = true; m_maxConcurrency.assign(value); } /** *

(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 50. For more information about * how to use MaxConcurrency, see Using * concurrency controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& WithMaxConcurrency(const Aws::String& value) { SetMaxConcurrency(value); return *this;} /** *

(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 50. For more information about * how to use MaxConcurrency, see Using * concurrency controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& WithMaxConcurrency(Aws::String&& value) { SetMaxConcurrency(std::move(value)); return *this;} /** *

(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 50. For more information about * how to use MaxConcurrency, see Using * concurrency controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& WithMaxConcurrency(const char* value) { SetMaxConcurrency(value); return *this;} /** *

The maximum number of errors allowed without the command failing. When the * command fails one more time beyond the value of MaxErrors, 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 0. * For more information about how to use MaxErrors, see Using * error controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline const Aws::String& GetMaxErrors() const{ return m_maxErrors; } /** *

The maximum number of errors allowed without the command failing. When the * command fails one more time beyond the value of MaxErrors, 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 0. * For more information about how to use MaxErrors, see Using * error controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline bool MaxErrorsHasBeenSet() const { return m_maxErrorsHasBeenSet; } /** *

The maximum number of errors allowed without the command failing. When the * command fails one more time beyond the value of MaxErrors, 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 0. * For more information about how to use MaxErrors, see Using * error controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline void SetMaxErrors(const Aws::String& value) { m_maxErrorsHasBeenSet = true; m_maxErrors = value; } /** *

The maximum number of errors allowed without the command failing. When the * command fails one more time beyond the value of MaxErrors, 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 0. * For more information about how to use MaxErrors, see Using * error controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline void SetMaxErrors(Aws::String&& value) { m_maxErrorsHasBeenSet = true; m_maxErrors = std::move(value); } /** *

The maximum number of errors allowed without the command failing. When the * command fails one more time beyond the value of MaxErrors, 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 0. * For more information about how to use MaxErrors, see Using * error controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline void SetMaxErrors(const char* value) { m_maxErrorsHasBeenSet = true; m_maxErrors.assign(value); } /** *

The maximum number of errors allowed without the command failing. When the * command fails one more time beyond the value of MaxErrors, 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 0. * For more information about how to use MaxErrors, see Using * error controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& WithMaxErrors(const Aws::String& value) { SetMaxErrors(value); return *this;} /** *

The maximum number of errors allowed without the command failing. When the * command fails one more time beyond the value of MaxErrors, 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 0. * For more information about how to use MaxErrors, see Using * error controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& WithMaxErrors(Aws::String&& value) { SetMaxErrors(std::move(value)); return *this;} /** *

The maximum number of errors allowed without the command failing. When the * command fails one more time beyond the value of MaxErrors, 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 0. * For more information about how to use MaxErrors, see Using * error controls in the Amazon Web Services Systems Manager User * Guide.

*/ inline SendCommandRequest& WithMaxErrors(const char* value) { SetMaxErrors(value); return *this;} /** *

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.

This role must provide the sns:Publish * permission for your notification topic. For information about creating and using * this service role, see Monitoring * Systems Manager status changes using Amazon SNS notifications in the * Amazon Web Services Systems Manager User Guide.

*/ inline const Aws::String& GetServiceRoleArn() const{ return m_serviceRoleArn; } /** *

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.

This role must provide the sns:Publish * permission for your notification topic. For information about creating and using * this service role, see Monitoring * Systems Manager status changes using Amazon SNS notifications in the * Amazon Web Services Systems Manager User Guide.

*/ inline bool ServiceRoleArnHasBeenSet() const { return m_serviceRoleArnHasBeenSet; } /** *

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.

This role must provide the sns:Publish * permission for your notification topic. For information about creating and using * this service role, see Monitoring * Systems Manager status changes using Amazon SNS notifications in the * Amazon Web Services Systems Manager User Guide.

*/ inline void SetServiceRoleArn(const Aws::String& value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn = value; } /** *

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.

This role must provide the sns:Publish * permission for your notification topic. For information about creating and using * this service role, see Monitoring * Systems Manager status changes using Amazon SNS notifications in the * Amazon Web Services Systems Manager User Guide.

*/ inline void SetServiceRoleArn(Aws::String&& value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn = std::move(value); } /** *

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.

This role must provide the sns:Publish * permission for your notification topic. For information about creating and using * this service role, see Monitoring * Systems Manager status changes using Amazon SNS notifications in the * Amazon Web Services Systems Manager User Guide.

*/ inline void SetServiceRoleArn(const char* value) { m_serviceRoleArnHasBeenSet = true; m_serviceRoleArn.assign(value); } /** *

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.

This role must provide the sns:Publish * permission for your notification topic. For information about creating and using * this service role, see Monitoring * Systems Manager status changes using Amazon SNS notifications in the * Amazon Web Services Systems Manager User Guide.

*/ inline SendCommandRequest& WithServiceRoleArn(const Aws::String& value) { SetServiceRoleArn(value); return *this;} /** *

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.

This role must provide the sns:Publish * permission for your notification topic. For information about creating and using * this service role, see Monitoring * Systems Manager status changes using Amazon SNS notifications in the * Amazon Web Services Systems Manager User Guide.

*/ inline SendCommandRequest& WithServiceRoleArn(Aws::String&& value) { SetServiceRoleArn(std::move(value)); return *this;} /** *

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.

This role must provide the sns:Publish * permission for your notification topic. For information about creating and using * this service role, see Monitoring * Systems Manager status changes using Amazon SNS notifications in the * Amazon Web Services Systems Manager User Guide.

*/ inline SendCommandRequest& WithServiceRoleArn(const char* value) { SetServiceRoleArn(value); return *this;} /** *

Configurations for sending notifications.

*/ inline const NotificationConfig& GetNotificationConfig() const{ return m_notificationConfig; } /** *

Configurations for sending notifications.

*/ inline bool NotificationConfigHasBeenSet() const { return m_notificationConfigHasBeenSet; } /** *

Configurations for sending notifications.

*/ inline void SetNotificationConfig(const NotificationConfig& value) { m_notificationConfigHasBeenSet = true; m_notificationConfig = value; } /** *

Configurations for sending notifications.

*/ inline void SetNotificationConfig(NotificationConfig&& value) { m_notificationConfigHasBeenSet = true; m_notificationConfig = std::move(value); } /** *

Configurations for sending notifications.

*/ inline SendCommandRequest& WithNotificationConfig(const NotificationConfig& value) { SetNotificationConfig(value); return *this;} /** *

Configurations for sending notifications.

*/ inline SendCommandRequest& WithNotificationConfig(NotificationConfig&& value) { SetNotificationConfig(std::move(value)); return *this;} /** *

Enables Amazon Web Services Systems Manager to send Run Command output to * Amazon CloudWatch Logs. Run Command is a capability of Amazon Web Services * Systems Manager.

*/ inline const CloudWatchOutputConfig& GetCloudWatchOutputConfig() const{ return m_cloudWatchOutputConfig; } /** *

Enables Amazon Web Services Systems Manager to send Run Command output to * Amazon CloudWatch Logs. Run Command is a capability of Amazon Web Services * Systems Manager.

*/ inline bool CloudWatchOutputConfigHasBeenSet() const { return m_cloudWatchOutputConfigHasBeenSet; } /** *

Enables Amazon Web Services Systems Manager to send Run Command output to * Amazon CloudWatch Logs. Run Command is a capability of Amazon Web Services * Systems Manager.

*/ inline void SetCloudWatchOutputConfig(const CloudWatchOutputConfig& value) { m_cloudWatchOutputConfigHasBeenSet = true; m_cloudWatchOutputConfig = value; } /** *

Enables Amazon Web Services Systems Manager to send Run Command output to * Amazon CloudWatch Logs. Run Command is a capability of Amazon Web Services * Systems Manager.

*/ inline void SetCloudWatchOutputConfig(CloudWatchOutputConfig&& value) { m_cloudWatchOutputConfigHasBeenSet = true; m_cloudWatchOutputConfig = std::move(value); } /** *

Enables Amazon Web Services Systems Manager to send Run Command output to * Amazon CloudWatch Logs. Run Command is a capability of Amazon Web Services * Systems Manager.

*/ inline SendCommandRequest& WithCloudWatchOutputConfig(const CloudWatchOutputConfig& value) { SetCloudWatchOutputConfig(value); return *this;} /** *

Enables Amazon Web Services Systems Manager to send Run Command output to * Amazon CloudWatch Logs. Run Command is a capability of Amazon Web Services * Systems Manager.

*/ inline SendCommandRequest& WithCloudWatchOutputConfig(CloudWatchOutputConfig&& value) { SetCloudWatchOutputConfig(std::move(value)); return *this;} /** *

The CloudWatch alarm you want to apply to your command.

*/ inline const AlarmConfiguration& GetAlarmConfiguration() const{ return m_alarmConfiguration; } /** *

The CloudWatch alarm you want to apply to your command.

*/ inline bool AlarmConfigurationHasBeenSet() const { return m_alarmConfigurationHasBeenSet; } /** *

The CloudWatch alarm you want to apply to your command.

*/ inline void SetAlarmConfiguration(const AlarmConfiguration& value) { m_alarmConfigurationHasBeenSet = true; m_alarmConfiguration = value; } /** *

The CloudWatch alarm you want to apply to your command.

*/ inline void SetAlarmConfiguration(AlarmConfiguration&& value) { m_alarmConfigurationHasBeenSet = true; m_alarmConfiguration = std::move(value); } /** *

The CloudWatch alarm you want to apply to your command.

*/ inline SendCommandRequest& WithAlarmConfiguration(const AlarmConfiguration& value) { SetAlarmConfiguration(value); return *this;} /** *

The CloudWatch alarm you want to apply to your command.

*/ inline SendCommandRequest& WithAlarmConfiguration(AlarmConfiguration&& value) { SetAlarmConfiguration(std::move(value)); return *this;} private: Aws::Vector m_instanceIds; bool m_instanceIdsHasBeenSet = false; Aws::Vector m_targets; bool m_targetsHasBeenSet = false; Aws::String m_documentName; bool m_documentNameHasBeenSet = false; Aws::String m_documentVersion; bool m_documentVersionHasBeenSet = false; Aws::String m_documentHash; bool m_documentHashHasBeenSet = false; DocumentHashType m_documentHashType; bool m_documentHashTypeHasBeenSet = false; int m_timeoutSeconds; bool m_timeoutSecondsHasBeenSet = false; Aws::String m_comment; bool m_commentHasBeenSet = false; Aws::Map> m_parameters; bool m_parametersHasBeenSet = false; Aws::String m_outputS3Region; bool m_outputS3RegionHasBeenSet = false; Aws::String m_outputS3BucketName; bool m_outputS3BucketNameHasBeenSet = false; Aws::String m_outputS3KeyPrefix; bool m_outputS3KeyPrefixHasBeenSet = false; Aws::String m_maxConcurrency; bool m_maxConcurrencyHasBeenSet = false; Aws::String m_maxErrors; bool m_maxErrorsHasBeenSet = false; Aws::String m_serviceRoleArn; bool m_serviceRoleArnHasBeenSet = false; NotificationConfig m_notificationConfig; bool m_notificationConfigHasBeenSet = false; CloudWatchOutputConfig m_cloudWatchOutputConfig; bool m_cloudWatchOutputConfigHasBeenSet = false; AlarmConfiguration m_alarmConfiguration; bool m_alarmConfigurationHasBeenSet = false; }; } // namespace Model } // namespace SSM } // namespace Aws