Container for the parameters to the SendCommand operation. Executes commands on one or more remote instances.
Inheritance: AmazonSimpleSystemsManagementRequest
        /// <summary>
        /// Initiates the asynchronous execution of the SendCommand operation.
        /// </summary>
        /// 
        /// <param name="request">Container for the necessary parameters to execute the SendCommand operation on AmazonSimpleSystemsManagementClient.</param>
        /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param>
        /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        /// 
        /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndSendCommand
        ///         operation.</returns>
        public IAsyncResult BeginSendCommand(SendCommandRequest request, AsyncCallback callback, object state)
        {
            var marshaller = new SendCommandRequestMarshaller();
            var unmarshaller = SendCommandResponseUnmarshaller.Instance;

            return BeginInvoke<SendCommandRequest>(request, marshaller, unmarshaller,
                callback, state);
        }
        /// <summary>
        /// Executes commands on one or more remote instances.
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the SendCommand service method.</param>
        /// 
        /// <returns>The response from the SendCommand service method, as returned by SimpleSystemsManagement.</returns>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.DuplicateInstanceIdException">
        /// You cannot specify an instance ID in more than one association.
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.InternalServerErrorException">
        /// An error occurred on the server side.
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidDocumentException">
        /// The specified document does not exist.
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidInstanceIdException">
        /// The following problems can cause this exception:
        /// 
        ///  
        /// <para>
        /// You do not have permission to access the instance.
        /// </para>
        ///  
        /// <para>
        /// The SSM agent is not running. On managed instances and Linux instances, verify that
        /// the SSM agent is running. On EC2 Windows instances, verify that the EC2Config service
        /// is running.
        /// </para>
        ///  
        /// <para>
        /// The SSM agent or EC2Config service is not registered to the SSM endpoint. Try reinstalling
        /// the SSM agent or EC2Config service.
        /// </para>
        ///  
        /// <para>
        /// The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping.
        /// Invalid states are: Shutting-down and Terminated.
        /// </para>
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidNotificationConfigException">
        /// One or more configuration items is not valid. Verify that a valid Amazon Resource
        /// Name (ARN) was provided for an Amazon SNS topic.
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidOutputFolderException">
        /// The S3 bucket does not exist.
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidParametersException">
        /// You must specify values for all required parameters in the SSM document. You can only
        /// supply values to parameters defined in the SSM document.
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidRoleException">
        /// The role name can't contain invalid characters. Also verify that you specified an
        /// IAM role for notifications that includes the required trust policy. For information
        /// about configuring the IAM role for Run Command notifications, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/rc-sns.html">Getting
        /// Amazon SNS Notifications When a Command Changes Status</a> in the <i>Amazon Elastic
        /// Compute Cloud User Guide </i>.
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.MaxDocumentSizeExceededException">
        /// The size limit of an SSM document is 64 KB.
        /// </exception>
        /// <exception cref="Amazon.SimpleSystemsManagement.Model.UnsupportedPlatformTypeException">
        /// The document does not support the platform type of the given instance ID(s). For example,
        /// you sent an SSM document for a Windows instance to a Linux instance.
        /// </exception>
        public SendCommandResponse SendCommand(SendCommandRequest request)
        {
            var marshaller = new SendCommandRequestMarshaller();
            var unmarshaller = SendCommandResponseUnmarshaller.Instance;

            return Invoke<SendCommandRequest,SendCommandResponse>(request, marshaller, unmarshaller);
        }
        /// <summary>
        /// Initiates the asynchronous execution of the SendCommand operation.
        /// </summary>
        /// 
        /// <param name="request">Container for the necessary parameters to execute the SendCommand operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task<SendCommandResponse> SendCommandAsync(SendCommandRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller = new SendCommandRequestMarshaller();
            var unmarshaller = SendCommandResponseUnmarshaller.Instance;

            return InvokeAsync<SendCommandRequest,SendCommandResponse>(request, marshaller, 
                unmarshaller, cancellationToken);
        }
 /// <summary>
 /// Executes commands on one or more remote instances.
 /// </summary>
 /// <param name="documentName">Required. The name of the SSM document to execute. This can be an SSM public document or a custom document.</param>
 /// <param name="instanceIds">Required. The instance IDs where the command should execute. You can specify a maximum of 50 IDs.</param>
 /// 
 /// <returns>The response from the SendCommand service method, as returned by SimpleSystemsManagement.</returns>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.DuplicateInstanceIdException">
 /// You cannot specify an instance ID in more than one association.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InternalServerErrorException">
 /// An error occurred on the server side.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidDocumentException">
 /// The specified document does not exist.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidInstanceIdException">
 /// The following problems can cause this exception:
 /// 
 ///  
 /// <para>
 /// You do not have permission to access the instance.
 /// </para>
 ///  
 /// <para>
 /// The SSM agent is not running. On managed instances and Linux instances, verify that
 /// the SSM agent is running. On EC2 Windows instances, verify that the EC2Config service
 /// is running.
 /// </para>
 ///  
 /// <para>
 /// The SSM agent or EC2Config service is not registered to the SSM endpoint. Try reinstalling
 /// the SSM agent or EC2Config service.
 /// </para>
 ///  
 /// <para>
 /// The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping.
 /// Invalid states are: Shutting-down and Terminated.
 /// </para>
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidNotificationConfigException">
 /// One or more configuration items is not valid. Verify that a valid Amazon Resource
 /// Name (ARN) was provided for an Amazon SNS topic.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidOutputFolderException">
 /// The S3 bucket does not exist.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidParametersException">
 /// You must specify values for all required parameters in the SSM document. You can only
 /// supply values to parameters defined in the SSM document.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidRoleException">
 /// The role name can't contain invalid characters. Also verify that you specified an
 /// IAM role for notifications that includes the required trust policy. For information
 /// about configuring the IAM role for Run Command notifications, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/rc-sns.html">Getting
 /// Amazon SNS Notifications When a Command Changes Status</a> in the <i>Amazon Elastic
 /// Compute Cloud User Guide </i>.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.MaxDocumentSizeExceededException">
 /// The size limit of an SSM document is 64 KB.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.UnsupportedPlatformTypeException">
 /// The document does not support the platform type of the given instance ID(s). For example,
 /// you sent an SSM document for a Windows instance to a Linux instance.
 /// </exception>
 public SendCommandResponse SendCommand(string documentName, List<string> instanceIds)
 {
     var request = new SendCommandRequest();
     request.DocumentName = documentName;
     request.InstanceIds = instanceIds;
     return SendCommand(request);
 }
 /// <summary>
 /// Executes commands on one or more remote instances.
 /// </summary>
 /// <param name="documentName">Required. The name of the SSM document to execute. This can be an SSM public document or a custom document.</param>
 /// <param name="instanceIds">Required. The instance IDs where the command should execute. You can specify a maximum of 50 IDs.</param>
 /// <param name="cancellationToken">
 ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
 /// </param>
 /// 
 /// <returns>The response from the SendCommand service method, as returned by SimpleSystemsManagement.</returns>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.DuplicateInstanceIdException">
 /// You cannot specify an instance ID in more than one association.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InternalServerErrorException">
 /// An error occurred on the server side.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidDocumentException">
 /// The specified document does not exist.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidInstanceIdException">
 /// The following problems can cause this exception:
 /// 
 ///  
 /// <para>
 /// You do not have permission to access the instance.
 /// </para>
 ///  
 /// <para>
 /// The SSM agent is not running. On managed instances and Linux instances, verify that
 /// the SSM agent is running. On EC2 Windows instances, verify that the EC2Config service
 /// is running.
 /// </para>
 ///  
 /// <para>
 /// The SSM agent or EC2Config service is not registered to the SSM endpoint. Try reinstalling
 /// the SSM agent or EC2Config service.
 /// </para>
 ///  
 /// <para>
 /// The instance is not in valid state. Valid states are: Running, Pending, Stopped, Stopping.
 /// Invalid states are: Shutting-down and Terminated.
 /// </para>
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidNotificationConfigException">
 /// One or more configuration items is not valid. Verify that a valid Amazon Resource
 /// Name (ARN) was provided for an Amazon SNS topic.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidOutputFolderException">
 /// The S3 bucket does not exist.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidParametersException">
 /// You must specify values for all required parameters in the SSM document. You can only
 /// supply values to parameters defined in the SSM document.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.InvalidRoleException">
 /// The role name can't contain invalid characters. Also verify that you specified an
 /// IAM role for notifications that includes the required trust policy. For information
 /// about configuring the IAM role for Run Command notifications, see <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/rc-sns.html">Getting
 /// Amazon SNS Notifications When a Command Changes Status</a> in the <i>Amazon Elastic
 /// Compute Cloud User Guide </i>.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.MaxDocumentSizeExceededException">
 /// The size limit of an SSM document is 64 KB.
 /// </exception>
 /// <exception cref="Amazon.SimpleSystemsManagement.Model.UnsupportedPlatformTypeException">
 /// The document does not support the platform type of the given instance ID(s). For example,
 /// you sent an SSM document for a Windows instance to a Linux instance.
 /// </exception>
 public Task<SendCommandResponse> SendCommandAsync(string documentName, List<string> instanceIds, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
 {
     var request = new SendCommandRequest();
     request.DocumentName = documentName;
     request.InstanceIds = instanceIds;
     return SendCommandAsync(request, cancellationToken);
 }