/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SSM { namespace Model { /** *

An invocation is a copy of a command sent to a specific managed node. A * command can apply to one or more managed nodes. A command invocation applies to * one managed node. For example, if a user runs SendCommand against * three managed nodes, then a command invocation is created for each requested * managed node ID. A command invocation returns status and detail information * about a command you ran.

See Also:

AWS * API Reference

*/ class CommandInvocation { public: AWS_SSM_API CommandInvocation(); AWS_SSM_API CommandInvocation(Aws::Utils::Json::JsonView jsonValue); AWS_SSM_API CommandInvocation& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SSM_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The command against which this invocation was requested.

*/ inline const Aws::String& GetCommandId() const{ return m_commandId; } /** *

The command against which this invocation was requested.

*/ inline bool CommandIdHasBeenSet() const { return m_commandIdHasBeenSet; } /** *

The command against which this invocation was requested.

*/ inline void SetCommandId(const Aws::String& value) { m_commandIdHasBeenSet = true; m_commandId = value; } /** *

The command against which this invocation was requested.

*/ inline void SetCommandId(Aws::String&& value) { m_commandIdHasBeenSet = true; m_commandId = std::move(value); } /** *

The command against which this invocation was requested.

*/ inline void SetCommandId(const char* value) { m_commandIdHasBeenSet = true; m_commandId.assign(value); } /** *

The command against which this invocation was requested.

*/ inline CommandInvocation& WithCommandId(const Aws::String& value) { SetCommandId(value); return *this;} /** *

The command against which this invocation was requested.

*/ inline CommandInvocation& WithCommandId(Aws::String&& value) { SetCommandId(std::move(value)); return *this;} /** *

The command against which this invocation was requested.

*/ inline CommandInvocation& WithCommandId(const char* value) { SetCommandId(value); return *this;} /** *

The managed node ID in which this invocation was requested.

*/ inline const Aws::String& GetInstanceId() const{ return m_instanceId; } /** *

The managed node ID in which this invocation was requested.

*/ inline bool InstanceIdHasBeenSet() const { return m_instanceIdHasBeenSet; } /** *

The managed node ID in which this invocation was requested.

*/ inline void SetInstanceId(const Aws::String& value) { m_instanceIdHasBeenSet = true; m_instanceId = value; } /** *

The managed node ID in which this invocation was requested.

*/ inline void SetInstanceId(Aws::String&& value) { m_instanceIdHasBeenSet = true; m_instanceId = std::move(value); } /** *

The managed node ID in which this invocation was requested.

*/ inline void SetInstanceId(const char* value) { m_instanceIdHasBeenSet = true; m_instanceId.assign(value); } /** *

The managed node ID in which this invocation was requested.

*/ inline CommandInvocation& WithInstanceId(const Aws::String& value) { SetInstanceId(value); return *this;} /** *

The managed node ID in which this invocation was requested.

*/ inline CommandInvocation& WithInstanceId(Aws::String&& value) { SetInstanceId(std::move(value)); return *this;} /** *

The managed node ID in which this invocation was requested.

*/ inline CommandInvocation& WithInstanceId(const char* value) { SetInstanceId(value); return *this;} /** *

The fully qualified host name of the managed node.

*/ inline const Aws::String& GetInstanceName() const{ return m_instanceName; } /** *

The fully qualified host name of the managed node.

*/ inline bool InstanceNameHasBeenSet() const { return m_instanceNameHasBeenSet; } /** *

The fully qualified host name of the managed node.

*/ inline void SetInstanceName(const Aws::String& value) { m_instanceNameHasBeenSet = true; m_instanceName = value; } /** *

The fully qualified host name of the managed node.

*/ inline void SetInstanceName(Aws::String&& value) { m_instanceNameHasBeenSet = true; m_instanceName = std::move(value); } /** *

The fully qualified host name of the managed node.

*/ inline void SetInstanceName(const char* value) { m_instanceNameHasBeenSet = true; m_instanceName.assign(value); } /** *

The fully qualified host name of the managed node.

*/ inline CommandInvocation& WithInstanceName(const Aws::String& value) { SetInstanceName(value); return *this;} /** *

The fully qualified host name of the managed node.

*/ inline CommandInvocation& WithInstanceName(Aws::String&& value) { SetInstanceName(std::move(value)); return *this;} /** *

The fully qualified host name of the managed node.

*/ inline CommandInvocation& WithInstanceName(const char* value) { SetInstanceName(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 CommandInvocation& 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 CommandInvocation& 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 CommandInvocation& WithComment(const char* value) { SetComment(value); return *this;} /** *

The document name that was requested for execution.

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

The document name that was requested for execution.

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

The document name that was requested for execution.

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

The document name that was requested for execution.

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

The document name that was requested for execution.

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

The document name that was requested for execution.

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

The document name that was requested for execution.

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

The document name that was requested for execution.

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

The Systems Manager document (SSM document) version.

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

The Systems Manager document (SSM document) version.

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

The Systems Manager document (SSM document) version.

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

The Systems Manager document (SSM document) version.

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

The Systems Manager document (SSM document) version.

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

The Systems Manager document (SSM document) version.

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

The Systems Manager document (SSM document) version.

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

The Systems Manager document (SSM document) version.

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

The time and date the request was sent to this managed node.

*/ inline const Aws::Utils::DateTime& GetRequestedDateTime() const{ return m_requestedDateTime; } /** *

The time and date the request was sent to this managed node.

*/ inline bool RequestedDateTimeHasBeenSet() const { return m_requestedDateTimeHasBeenSet; } /** *

The time and date the request was sent to this managed node.

*/ inline void SetRequestedDateTime(const Aws::Utils::DateTime& value) { m_requestedDateTimeHasBeenSet = true; m_requestedDateTime = value; } /** *

The time and date the request was sent to this managed node.

*/ inline void SetRequestedDateTime(Aws::Utils::DateTime&& value) { m_requestedDateTimeHasBeenSet = true; m_requestedDateTime = std::move(value); } /** *

The time and date the request was sent to this managed node.

*/ inline CommandInvocation& WithRequestedDateTime(const Aws::Utils::DateTime& value) { SetRequestedDateTime(value); return *this;} /** *

The time and date the request was sent to this managed node.

*/ inline CommandInvocation& WithRequestedDateTime(Aws::Utils::DateTime&& value) { SetRequestedDateTime(std::move(value)); return *this;} /** *

Whether or not the invocation succeeded, failed, or is pending.

*/ inline const CommandInvocationStatus& GetStatus() const{ return m_status; } /** *

Whether or not the invocation succeeded, failed, or is pending.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

Whether or not the invocation succeeded, failed, or is pending.

*/ inline void SetStatus(const CommandInvocationStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

Whether or not the invocation succeeded, failed, or is pending.

*/ inline void SetStatus(CommandInvocationStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

Whether or not the invocation succeeded, failed, or is pending.

*/ inline CommandInvocation& WithStatus(const CommandInvocationStatus& value) { SetStatus(value); return *this;} /** *

Whether or not the invocation succeeded, failed, or is pending.

*/ inline CommandInvocation& WithStatus(CommandInvocationStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

A detailed status of the command execution for each invocation (each managed * node targeted by the command). StatusDetails includes more information than * Status because it includes states resulting from error and concurrency control * parameters. StatusDetails can show different results than Status. For more * information about these statuses, see Understanding * command statuses in the Amazon Web Services Systems Manager User * Guide. StatusDetails can be one of the following values:

  • *

    Pending: The command hasn't been sent to the managed node.

  • *

    In Progress: The command has been sent to the managed node but hasn't reached * a terminal state.

  • Success: The execution of the command or * plugin was successfully completed. This is a terminal state.

  • *

    Delivery Timed Out: The command wasn't delivered to the managed node before * the delivery timeout expired. Delivery timeouts don't count against the parent * command's MaxErrors limit, but they do contribute to whether the * parent command status is Success or Incomplete. This is a terminal state.

    *
  • Execution Timed Out: Command execution started on the managed * node, but the execution wasn't complete before the execution timeout expired. * Execution timeouts count against the MaxErrors limit of the parent * command. This is a terminal state.

  • Failed: The command wasn't * successful on the managed node. For a plugin, this indicates that the result * code wasn't zero. For a command invocation, this indicates that the result code * for one or more plugins wasn't zero. Invocation failures count against the * MaxErrors limit of the parent command. This is a terminal * state.

  • Cancelled: The command was terminated before it was * completed. This is a terminal state.

  • Undeliverable: The * command can't be delivered to the managed node. The managed node might not exist * or might not be responding. Undeliverable invocations don't count against the * parent command's MaxErrors limit and don't contribute to whether the parent * command status is Success or Incomplete. This is a terminal state.

  • *
  • Terminated: The parent command exceeded its MaxErrors limit and * subsequent command invocations were canceled by the system. This is a terminal * state.

  • Delayed: The system attempted to send the command to * the managed node but wasn't successful. The system retries again.

  • *
*/ inline const Aws::String& GetStatusDetails() const{ return m_statusDetails; } /** *

A detailed status of the command execution for each invocation (each managed * node targeted by the command). StatusDetails includes more information than * Status because it includes states resulting from error and concurrency control * parameters. StatusDetails can show different results than Status. For more * information about these statuses, see Understanding * command statuses in the Amazon Web Services Systems Manager User * Guide. StatusDetails can be one of the following values:

  • *

    Pending: The command hasn't been sent to the managed node.

  • *

    In Progress: The command has been sent to the managed node but hasn't reached * a terminal state.

  • Success: The execution of the command or * plugin was successfully completed. This is a terminal state.

  • *

    Delivery Timed Out: The command wasn't delivered to the managed node before * the delivery timeout expired. Delivery timeouts don't count against the parent * command's MaxErrors limit, but they do contribute to whether the * parent command status is Success or Incomplete. This is a terminal state.

    *
  • Execution Timed Out: Command execution started on the managed * node, but the execution wasn't complete before the execution timeout expired. * Execution timeouts count against the MaxErrors limit of the parent * command. This is a terminal state.

  • Failed: The command wasn't * successful on the managed node. For a plugin, this indicates that the result * code wasn't zero. For a command invocation, this indicates that the result code * for one or more plugins wasn't zero. Invocation failures count against the * MaxErrors limit of the parent command. This is a terminal * state.

  • Cancelled: The command was terminated before it was * completed. This is a terminal state.

  • Undeliverable: The * command can't be delivered to the managed node. The managed node might not exist * or might not be responding. Undeliverable invocations don't count against the * parent command's MaxErrors limit and don't contribute to whether the parent * command status is Success or Incomplete. This is a terminal state.

  • *
  • Terminated: The parent command exceeded its MaxErrors limit and * subsequent command invocations were canceled by the system. This is a terminal * state.

  • Delayed: The system attempted to send the command to * the managed node but wasn't successful. The system retries again.

  • *
*/ inline bool StatusDetailsHasBeenSet() const { return m_statusDetailsHasBeenSet; } /** *

A detailed status of the command execution for each invocation (each managed * node targeted by the command). StatusDetails includes more information than * Status because it includes states resulting from error and concurrency control * parameters. StatusDetails can show different results than Status. For more * information about these statuses, see Understanding * command statuses in the Amazon Web Services Systems Manager User * Guide. StatusDetails can be one of the following values:

  • *

    Pending: The command hasn't been sent to the managed node.

  • *

    In Progress: The command has been sent to the managed node but hasn't reached * a terminal state.

  • Success: The execution of the command or * plugin was successfully completed. This is a terminal state.

  • *

    Delivery Timed Out: The command wasn't delivered to the managed node before * the delivery timeout expired. Delivery timeouts don't count against the parent * command's MaxErrors limit, but they do contribute to whether the * parent command status is Success or Incomplete. This is a terminal state.

    *
  • Execution Timed Out: Command execution started on the managed * node, but the execution wasn't complete before the execution timeout expired. * Execution timeouts count against the MaxErrors limit of the parent * command. This is a terminal state.

  • Failed: The command wasn't * successful on the managed node. For a plugin, this indicates that the result * code wasn't zero. For a command invocation, this indicates that the result code * for one or more plugins wasn't zero. Invocation failures count against the * MaxErrors limit of the parent command. This is a terminal * state.

  • Cancelled: The command was terminated before it was * completed. This is a terminal state.

  • Undeliverable: The * command can't be delivered to the managed node. The managed node might not exist * or might not be responding. Undeliverable invocations don't count against the * parent command's MaxErrors limit and don't contribute to whether the parent * command status is Success or Incomplete. This is a terminal state.

  • *
  • Terminated: The parent command exceeded its MaxErrors limit and * subsequent command invocations were canceled by the system. This is a terminal * state.

  • Delayed: The system attempted to send the command to * the managed node but wasn't successful. The system retries again.

  • *
*/ inline void SetStatusDetails(const Aws::String& value) { m_statusDetailsHasBeenSet = true; m_statusDetails = value; } /** *

A detailed status of the command execution for each invocation (each managed * node targeted by the command). StatusDetails includes more information than * Status because it includes states resulting from error and concurrency control * parameters. StatusDetails can show different results than Status. For more * information about these statuses, see Understanding * command statuses in the Amazon Web Services Systems Manager User * Guide. StatusDetails can be one of the following values:

  • *

    Pending: The command hasn't been sent to the managed node.

  • *

    In Progress: The command has been sent to the managed node but hasn't reached * a terminal state.

  • Success: The execution of the command or * plugin was successfully completed. This is a terminal state.

  • *

    Delivery Timed Out: The command wasn't delivered to the managed node before * the delivery timeout expired. Delivery timeouts don't count against the parent * command's MaxErrors limit, but they do contribute to whether the * parent command status is Success or Incomplete. This is a terminal state.

    *
  • Execution Timed Out: Command execution started on the managed * node, but the execution wasn't complete before the execution timeout expired. * Execution timeouts count against the MaxErrors limit of the parent * command. This is a terminal state.

  • Failed: The command wasn't * successful on the managed node. For a plugin, this indicates that the result * code wasn't zero. For a command invocation, this indicates that the result code * for one or more plugins wasn't zero. Invocation failures count against the * MaxErrors limit of the parent command. This is a terminal * state.

  • Cancelled: The command was terminated before it was * completed. This is a terminal state.

  • Undeliverable: The * command can't be delivered to the managed node. The managed node might not exist * or might not be responding. Undeliverable invocations don't count against the * parent command's MaxErrors limit and don't contribute to whether the parent * command status is Success or Incomplete. This is a terminal state.

  • *
  • Terminated: The parent command exceeded its MaxErrors limit and * subsequent command invocations were canceled by the system. This is a terminal * state.

  • Delayed: The system attempted to send the command to * the managed node but wasn't successful. The system retries again.

  • *
*/ inline void SetStatusDetails(Aws::String&& value) { m_statusDetailsHasBeenSet = true; m_statusDetails = std::move(value); } /** *

A detailed status of the command execution for each invocation (each managed * node targeted by the command). StatusDetails includes more information than * Status because it includes states resulting from error and concurrency control * parameters. StatusDetails can show different results than Status. For more * information about these statuses, see Understanding * command statuses in the Amazon Web Services Systems Manager User * Guide. StatusDetails can be one of the following values:

  • *

    Pending: The command hasn't been sent to the managed node.

  • *

    In Progress: The command has been sent to the managed node but hasn't reached * a terminal state.

  • Success: The execution of the command or * plugin was successfully completed. This is a terminal state.

  • *

    Delivery Timed Out: The command wasn't delivered to the managed node before * the delivery timeout expired. Delivery timeouts don't count against the parent * command's MaxErrors limit, but they do contribute to whether the * parent command status is Success or Incomplete. This is a terminal state.

    *
  • Execution Timed Out: Command execution started on the managed * node, but the execution wasn't complete before the execution timeout expired. * Execution timeouts count against the MaxErrors limit of the parent * command. This is a terminal state.

  • Failed: The command wasn't * successful on the managed node. For a plugin, this indicates that the result * code wasn't zero. For a command invocation, this indicates that the result code * for one or more plugins wasn't zero. Invocation failures count against the * MaxErrors limit of the parent command. This is a terminal * state.

  • Cancelled: The command was terminated before it was * completed. This is a terminal state.

  • Undeliverable: The * command can't be delivered to the managed node. The managed node might not exist * or might not be responding. Undeliverable invocations don't count against the * parent command's MaxErrors limit and don't contribute to whether the parent * command status is Success or Incomplete. This is a terminal state.

  • *
  • Terminated: The parent command exceeded its MaxErrors limit and * subsequent command invocations were canceled by the system. This is a terminal * state.

  • Delayed: The system attempted to send the command to * the managed node but wasn't successful. The system retries again.

  • *
*/ inline void SetStatusDetails(const char* value) { m_statusDetailsHasBeenSet = true; m_statusDetails.assign(value); } /** *

A detailed status of the command execution for each invocation (each managed * node targeted by the command). StatusDetails includes more information than * Status because it includes states resulting from error and concurrency control * parameters. StatusDetails can show different results than Status. For more * information about these statuses, see Understanding * command statuses in the Amazon Web Services Systems Manager User * Guide. StatusDetails can be one of the following values:

  • *

    Pending: The command hasn't been sent to the managed node.

  • *

    In Progress: The command has been sent to the managed node but hasn't reached * a terminal state.

  • Success: The execution of the command or * plugin was successfully completed. This is a terminal state.

  • *

    Delivery Timed Out: The command wasn't delivered to the managed node before * the delivery timeout expired. Delivery timeouts don't count against the parent * command's MaxErrors limit, but they do contribute to whether the * parent command status is Success or Incomplete. This is a terminal state.

    *
  • Execution Timed Out: Command execution started on the managed * node, but the execution wasn't complete before the execution timeout expired. * Execution timeouts count against the MaxErrors limit of the parent * command. This is a terminal state.

  • Failed: The command wasn't * successful on the managed node. For a plugin, this indicates that the result * code wasn't zero. For a command invocation, this indicates that the result code * for one or more plugins wasn't zero. Invocation failures count against the * MaxErrors limit of the parent command. This is a terminal * state.

  • Cancelled: The command was terminated before it was * completed. This is a terminal state.

  • Undeliverable: The * command can't be delivered to the managed node. The managed node might not exist * or might not be responding. Undeliverable invocations don't count against the * parent command's MaxErrors limit and don't contribute to whether the parent * command status is Success or Incomplete. This is a terminal state.

  • *
  • Terminated: The parent command exceeded its MaxErrors limit and * subsequent command invocations were canceled by the system. This is a terminal * state.

  • Delayed: The system attempted to send the command to * the managed node but wasn't successful. The system retries again.

  • *
*/ inline CommandInvocation& WithStatusDetails(const Aws::String& value) { SetStatusDetails(value); return *this;} /** *

A detailed status of the command execution for each invocation (each managed * node targeted by the command). StatusDetails includes more information than * Status because it includes states resulting from error and concurrency control * parameters. StatusDetails can show different results than Status. For more * information about these statuses, see Understanding * command statuses in the Amazon Web Services Systems Manager User * Guide. StatusDetails can be one of the following values:

  • *

    Pending: The command hasn't been sent to the managed node.

  • *

    In Progress: The command has been sent to the managed node but hasn't reached * a terminal state.

  • Success: The execution of the command or * plugin was successfully completed. This is a terminal state.

  • *

    Delivery Timed Out: The command wasn't delivered to the managed node before * the delivery timeout expired. Delivery timeouts don't count against the parent * command's MaxErrors limit, but they do contribute to whether the * parent command status is Success or Incomplete. This is a terminal state.

    *
  • Execution Timed Out: Command execution started on the managed * node, but the execution wasn't complete before the execution timeout expired. * Execution timeouts count against the MaxErrors limit of the parent * command. This is a terminal state.

  • Failed: The command wasn't * successful on the managed node. For a plugin, this indicates that the result * code wasn't zero. For a command invocation, this indicates that the result code * for one or more plugins wasn't zero. Invocation failures count against the * MaxErrors limit of the parent command. This is a terminal * state.

  • Cancelled: The command was terminated before it was * completed. This is a terminal state.

  • Undeliverable: The * command can't be delivered to the managed node. The managed node might not exist * or might not be responding. Undeliverable invocations don't count against the * parent command's MaxErrors limit and don't contribute to whether the parent * command status is Success or Incomplete. This is a terminal state.

  • *
  • Terminated: The parent command exceeded its MaxErrors limit and * subsequent command invocations were canceled by the system. This is a terminal * state.

  • Delayed: The system attempted to send the command to * the managed node but wasn't successful. The system retries again.

  • *
*/ inline CommandInvocation& WithStatusDetails(Aws::String&& value) { SetStatusDetails(std::move(value)); return *this;} /** *

A detailed status of the command execution for each invocation (each managed * node targeted by the command). StatusDetails includes more information than * Status because it includes states resulting from error and concurrency control * parameters. StatusDetails can show different results than Status. For more * information about these statuses, see Understanding * command statuses in the Amazon Web Services Systems Manager User * Guide. StatusDetails can be one of the following values:

  • *

    Pending: The command hasn't been sent to the managed node.

  • *

    In Progress: The command has been sent to the managed node but hasn't reached * a terminal state.

  • Success: The execution of the command or * plugin was successfully completed. This is a terminal state.

  • *

    Delivery Timed Out: The command wasn't delivered to the managed node before * the delivery timeout expired. Delivery timeouts don't count against the parent * command's MaxErrors limit, but they do contribute to whether the * parent command status is Success or Incomplete. This is a terminal state.

    *
  • Execution Timed Out: Command execution started on the managed * node, but the execution wasn't complete before the execution timeout expired. * Execution timeouts count against the MaxErrors limit of the parent * command. This is a terminal state.

  • Failed: The command wasn't * successful on the managed node. For a plugin, this indicates that the result * code wasn't zero. For a command invocation, this indicates that the result code * for one or more plugins wasn't zero. Invocation failures count against the * MaxErrors limit of the parent command. This is a terminal * state.

  • Cancelled: The command was terminated before it was * completed. This is a terminal state.

  • Undeliverable: The * command can't be delivered to the managed node. The managed node might not exist * or might not be responding. Undeliverable invocations don't count against the * parent command's MaxErrors limit and don't contribute to whether the parent * command status is Success or Incomplete. This is a terminal state.

  • *
  • Terminated: The parent command exceeded its MaxErrors limit and * subsequent command invocations were canceled by the system. This is a terminal * state.

  • Delayed: The system attempted to send the command to * the managed node but wasn't successful. The system retries again.

  • *
*/ inline CommandInvocation& WithStatusDetails(const char* value) { SetStatusDetails(value); return *this;} /** *

Gets the trace output sent by the agent.

*/ inline const Aws::String& GetTraceOutput() const{ return m_traceOutput; } /** *

Gets the trace output sent by the agent.

*/ inline bool TraceOutputHasBeenSet() const { return m_traceOutputHasBeenSet; } /** *

Gets the trace output sent by the agent.

*/ inline void SetTraceOutput(const Aws::String& value) { m_traceOutputHasBeenSet = true; m_traceOutput = value; } /** *

Gets the trace output sent by the agent.

*/ inline void SetTraceOutput(Aws::String&& value) { m_traceOutputHasBeenSet = true; m_traceOutput = std::move(value); } /** *

Gets the trace output sent by the agent.

*/ inline void SetTraceOutput(const char* value) { m_traceOutputHasBeenSet = true; m_traceOutput.assign(value); } /** *

Gets the trace output sent by the agent.

*/ inline CommandInvocation& WithTraceOutput(const Aws::String& value) { SetTraceOutput(value); return *this;} /** *

Gets the trace output sent by the agent.

*/ inline CommandInvocation& WithTraceOutput(Aws::String&& value) { SetTraceOutput(std::move(value)); return *this;} /** *

Gets the trace output sent by the agent.

*/ inline CommandInvocation& WithTraceOutput(const char* value) { SetTraceOutput(value); return *this;} /** *

The URL to the plugin's StdOut file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardOutputUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline const Aws::String& GetStandardOutputUrl() const{ return m_standardOutputUrl; } /** *

The URL to the plugin's StdOut file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardOutputUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline bool StandardOutputUrlHasBeenSet() const { return m_standardOutputUrlHasBeenSet; } /** *

The URL to the plugin's StdOut file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardOutputUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline void SetStandardOutputUrl(const Aws::String& value) { m_standardOutputUrlHasBeenSet = true; m_standardOutputUrl = value; } /** *

The URL to the plugin's StdOut file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardOutputUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline void SetStandardOutputUrl(Aws::String&& value) { m_standardOutputUrlHasBeenSet = true; m_standardOutputUrl = std::move(value); } /** *

The URL to the plugin's StdOut file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardOutputUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline void SetStandardOutputUrl(const char* value) { m_standardOutputUrlHasBeenSet = true; m_standardOutputUrl.assign(value); } /** *

The URL to the plugin's StdOut file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardOutputUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline CommandInvocation& WithStandardOutputUrl(const Aws::String& value) { SetStandardOutputUrl(value); return *this;} /** *

The URL to the plugin's StdOut file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardOutputUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline CommandInvocation& WithStandardOutputUrl(Aws::String&& value) { SetStandardOutputUrl(std::move(value)); return *this;} /** *

The URL to the plugin's StdOut file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardOutputUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline CommandInvocation& WithStandardOutputUrl(const char* value) { SetStandardOutputUrl(value); return *this;} /** *

The URL to the plugin's StdErr file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardErrorUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline const Aws::String& GetStandardErrorUrl() const{ return m_standardErrorUrl; } /** *

The URL to the plugin's StdErr file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardErrorUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline bool StandardErrorUrlHasBeenSet() const { return m_standardErrorUrlHasBeenSet; } /** *

The URL to the plugin's StdErr file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardErrorUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline void SetStandardErrorUrl(const Aws::String& value) { m_standardErrorUrlHasBeenSet = true; m_standardErrorUrl = value; } /** *

The URL to the plugin's StdErr file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardErrorUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline void SetStandardErrorUrl(Aws::String&& value) { m_standardErrorUrlHasBeenSet = true; m_standardErrorUrl = std::move(value); } /** *

The URL to the plugin's StdErr file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardErrorUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline void SetStandardErrorUrl(const char* value) { m_standardErrorUrlHasBeenSet = true; m_standardErrorUrl.assign(value); } /** *

The URL to the plugin's StdErr file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardErrorUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline CommandInvocation& WithStandardErrorUrl(const Aws::String& value) { SetStandardErrorUrl(value); return *this;} /** *

The URL to the plugin's StdErr file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardErrorUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline CommandInvocation& WithStandardErrorUrl(Aws::String&& value) { SetStandardErrorUrl(std::move(value)); return *this;} /** *

The URL to the plugin's StdErr file in Amazon Simple Storage Service (Amazon * S3), if the S3 bucket was defined for the parent command. For an invocation, * StandardErrorUrl is populated if there is just one plugin defined * for the command, and the S3 bucket was defined for the command.

*/ inline CommandInvocation& WithStandardErrorUrl(const char* value) { SetStandardErrorUrl(value); return *this;} /** *

Plugins processed by the command.

*/ inline const Aws::Vector& GetCommandPlugins() const{ return m_commandPlugins; } /** *

Plugins processed by the command.

*/ inline bool CommandPluginsHasBeenSet() const { return m_commandPluginsHasBeenSet; } /** *

Plugins processed by the command.

*/ inline void SetCommandPlugins(const Aws::Vector& value) { m_commandPluginsHasBeenSet = true; m_commandPlugins = value; } /** *

Plugins processed by the command.

*/ inline void SetCommandPlugins(Aws::Vector&& value) { m_commandPluginsHasBeenSet = true; m_commandPlugins = std::move(value); } /** *

Plugins processed by the command.

*/ inline CommandInvocation& WithCommandPlugins(const Aws::Vector& value) { SetCommandPlugins(value); return *this;} /** *

Plugins processed by the command.

*/ inline CommandInvocation& WithCommandPlugins(Aws::Vector&& value) { SetCommandPlugins(std::move(value)); return *this;} /** *

Plugins processed by the command.

*/ inline CommandInvocation& AddCommandPlugins(const CommandPlugin& value) { m_commandPluginsHasBeenSet = true; m_commandPlugins.push_back(value); return *this; } /** *

Plugins processed by the command.

*/ inline CommandInvocation& AddCommandPlugins(CommandPlugin&& value) { m_commandPluginsHasBeenSet = true; m_commandPlugins.push_back(std::move(value)); return *this; } /** *

The Identity and Access Management (IAM) service role that Run Command, a * capability of Amazon Web Services Systems Manager, uses to act on your behalf * when sending notifications about command status changes on a per managed node * basis.

*/ inline const Aws::String& GetServiceRole() const{ return m_serviceRole; } /** *

The Identity and Access Management (IAM) service role that Run Command, a * capability of Amazon Web Services Systems Manager, uses to act on your behalf * when sending notifications about command status changes on a per managed node * basis.

*/ inline bool ServiceRoleHasBeenSet() const { return m_serviceRoleHasBeenSet; } /** *

The Identity and Access Management (IAM) service role that Run Command, a * capability of Amazon Web Services Systems Manager, uses to act on your behalf * when sending notifications about command status changes on a per managed node * basis.

*/ inline void SetServiceRole(const Aws::String& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = value; } /** *

The Identity and Access Management (IAM) service role that Run Command, a * capability of Amazon Web Services Systems Manager, uses to act on your behalf * when sending notifications about command status changes on a per managed node * basis.

*/ inline void SetServiceRole(Aws::String&& value) { m_serviceRoleHasBeenSet = true; m_serviceRole = std::move(value); } /** *

The Identity and Access Management (IAM) service role that Run Command, a * capability of Amazon Web Services Systems Manager, uses to act on your behalf * when sending notifications about command status changes on a per managed node * basis.

*/ inline void SetServiceRole(const char* value) { m_serviceRoleHasBeenSet = true; m_serviceRole.assign(value); } /** *

The Identity and Access Management (IAM) service role that Run Command, a * capability of Amazon Web Services Systems Manager, uses to act on your behalf * when sending notifications about command status changes on a per managed node * basis.

*/ inline CommandInvocation& WithServiceRole(const Aws::String& value) { SetServiceRole(value); return *this;} /** *

The Identity and Access Management (IAM) service role that Run Command, a * capability of Amazon Web Services Systems Manager, uses to act on your behalf * when sending notifications about command status changes on a per managed node * basis.

*/ inline CommandInvocation& WithServiceRole(Aws::String&& value) { SetServiceRole(std::move(value)); return *this;} /** *

The Identity and Access Management (IAM) service role that Run Command, a * capability of Amazon Web Services Systems Manager, uses to act on your behalf * when sending notifications about command status changes on a per managed node * basis.

*/ inline CommandInvocation& WithServiceRole(const char* value) { SetServiceRole(value); return *this;} /** *

Configurations for sending notifications about command status changes on a * per managed node basis.

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

Configurations for sending notifications about command status changes on a * per managed node basis.

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

Configurations for sending notifications about command status changes on a * per managed node basis.

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

Configurations for sending notifications about command status changes on a * per managed node basis.

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

Configurations for sending notifications about command status changes on a * per managed node basis.

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

Configurations for sending notifications about command status changes on a * per managed node basis.

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

Amazon CloudWatch Logs information where you want Amazon Web Services Systems * Manager to send the command output.

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

Amazon CloudWatch Logs information where you want Amazon Web Services Systems * Manager to send the command output.

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

Amazon CloudWatch Logs information where you want Amazon Web Services Systems * Manager to send the command output.

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

Amazon CloudWatch Logs information where you want Amazon Web Services Systems * Manager to send the command output.

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

Amazon CloudWatch Logs information where you want Amazon Web Services Systems * Manager to send the command output.

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

Amazon CloudWatch Logs information where you want Amazon Web Services Systems * Manager to send the command output.

*/ inline CommandInvocation& WithCloudWatchOutputConfig(CloudWatchOutputConfig&& value) { SetCloudWatchOutputConfig(std::move(value)); return *this;} private: Aws::String m_commandId; bool m_commandIdHasBeenSet = false; Aws::String m_instanceId; bool m_instanceIdHasBeenSet = false; Aws::String m_instanceName; bool m_instanceNameHasBeenSet = false; Aws::String m_comment; bool m_commentHasBeenSet = false; Aws::String m_documentName; bool m_documentNameHasBeenSet = false; Aws::String m_documentVersion; bool m_documentVersionHasBeenSet = false; Aws::Utils::DateTime m_requestedDateTime; bool m_requestedDateTimeHasBeenSet = false; CommandInvocationStatus m_status; bool m_statusHasBeenSet = false; Aws::String m_statusDetails; bool m_statusDetailsHasBeenSet = false; Aws::String m_traceOutput; bool m_traceOutputHasBeenSet = false; Aws::String m_standardOutputUrl; bool m_standardOutputUrlHasBeenSet = false; Aws::String m_standardErrorUrl; bool m_standardErrorUrlHasBeenSet = false; Aws::Vector m_commandPlugins; bool m_commandPluginsHasBeenSet = false; Aws::String m_serviceRole; bool m_serviceRoleHasBeenSet = false; NotificationConfig m_notificationConfig; bool m_notificationConfigHasBeenSet = false; CloudWatchOutputConfig m_cloudWatchOutputConfig; bool m_cloudWatchOutputConfigHasBeenSet = false; }; } // namespace Model } // namespace SSM } // namespace Aws