/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace AutoScaling { namespace Model { /** *

Describes an instance refresh for an Auto Scaling group.

See * Also:

AWS * API Reference

*/ class AWS_AUTOSCALING_API InstanceRefresh { public: InstanceRefresh(); InstanceRefresh(const Aws::Utils::Xml::XmlNode& xmlNode); InstanceRefresh& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The instance refresh ID.

*/ inline const Aws::String& GetInstanceRefreshId() const{ return m_instanceRefreshId; } /** *

The instance refresh ID.

*/ inline bool InstanceRefreshIdHasBeenSet() const { return m_instanceRefreshIdHasBeenSet; } /** *

The instance refresh ID.

*/ inline void SetInstanceRefreshId(const Aws::String& value) { m_instanceRefreshIdHasBeenSet = true; m_instanceRefreshId = value; } /** *

The instance refresh ID.

*/ inline void SetInstanceRefreshId(Aws::String&& value) { m_instanceRefreshIdHasBeenSet = true; m_instanceRefreshId = std::move(value); } /** *

The instance refresh ID.

*/ inline void SetInstanceRefreshId(const char* value) { m_instanceRefreshIdHasBeenSet = true; m_instanceRefreshId.assign(value); } /** *

The instance refresh ID.

*/ inline InstanceRefresh& WithInstanceRefreshId(const Aws::String& value) { SetInstanceRefreshId(value); return *this;} /** *

The instance refresh ID.

*/ inline InstanceRefresh& WithInstanceRefreshId(Aws::String&& value) { SetInstanceRefreshId(std::move(value)); return *this;} /** *

The instance refresh ID.

*/ inline InstanceRefresh& WithInstanceRefreshId(const char* value) { SetInstanceRefreshId(value); return *this;} /** *

The name of the Auto Scaling group.

*/ inline const Aws::String& GetAutoScalingGroupName() const{ return m_autoScalingGroupName; } /** *

The name of the Auto Scaling group.

*/ inline bool AutoScalingGroupNameHasBeenSet() const { return m_autoScalingGroupNameHasBeenSet; } /** *

The name of the Auto Scaling group.

*/ inline void SetAutoScalingGroupName(const Aws::String& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = value; } /** *

The name of the Auto Scaling group.

*/ inline void SetAutoScalingGroupName(Aws::String&& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = std::move(value); } /** *

The name of the Auto Scaling group.

*/ inline void SetAutoScalingGroupName(const char* value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName.assign(value); } /** *

The name of the Auto Scaling group.

*/ inline InstanceRefresh& WithAutoScalingGroupName(const Aws::String& value) { SetAutoScalingGroupName(value); return *this;} /** *

The name of the Auto Scaling group.

*/ inline InstanceRefresh& WithAutoScalingGroupName(Aws::String&& value) { SetAutoScalingGroupName(std::move(value)); return *this;} /** *

The name of the Auto Scaling group.

*/ inline InstanceRefresh& WithAutoScalingGroupName(const char* value) { SetAutoScalingGroupName(value); return *this;} /** *

The current status for the instance refresh operation:

  • * Pending - The request was created, but the operation has not * started.

  • InProgress - The operation is in * progress.

  • Successful - The operation completed * successfully.

  • Failed - The operation failed to * complete. You can troubleshoot using the status reason and the scaling * activities.

  • Cancelling - An ongoing operation * is being cancelled. Cancellation does not roll back any replacements that have * already been completed, but it prevents new replacements from being started. *

  • Cancelled - The operation is cancelled.

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

The current status for the instance refresh operation:

  • * Pending - The request was created, but the operation has not * started.

  • InProgress - The operation is in * progress.

  • Successful - The operation completed * successfully.

  • Failed - The operation failed to * complete. You can troubleshoot using the status reason and the scaling * activities.

  • Cancelling - An ongoing operation * is being cancelled. Cancellation does not roll back any replacements that have * already been completed, but it prevents new replacements from being started. *

  • Cancelled - The operation is cancelled.

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

The current status for the instance refresh operation:

  • * Pending - The request was created, but the operation has not * started.

  • InProgress - The operation is in * progress.

  • Successful - The operation completed * successfully.

  • Failed - The operation failed to * complete. You can troubleshoot using the status reason and the scaling * activities.

  • Cancelling - An ongoing operation * is being cancelled. Cancellation does not roll back any replacements that have * already been completed, but it prevents new replacements from being started. *

  • Cancelled - The operation is cancelled.

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

The current status for the instance refresh operation:

  • * Pending - The request was created, but the operation has not * started.

  • InProgress - The operation is in * progress.

  • Successful - The operation completed * successfully.

  • Failed - The operation failed to * complete. You can troubleshoot using the status reason and the scaling * activities.

  • Cancelling - An ongoing operation * is being cancelled. Cancellation does not roll back any replacements that have * already been completed, but it prevents new replacements from being started. *

  • Cancelled - The operation is cancelled.

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

The current status for the instance refresh operation:

  • * Pending - The request was created, but the operation has not * started.

  • InProgress - The operation is in * progress.

  • Successful - The operation completed * successfully.

  • Failed - The operation failed to * complete. You can troubleshoot using the status reason and the scaling * activities.

  • Cancelling - An ongoing operation * is being cancelled. Cancellation does not roll back any replacements that have * already been completed, but it prevents new replacements from being started. *

  • Cancelled - The operation is cancelled.

    *
*/ inline InstanceRefresh& WithStatus(const InstanceRefreshStatus& value) { SetStatus(value); return *this;} /** *

The current status for the instance refresh operation:

  • * Pending - The request was created, but the operation has not * started.

  • InProgress - The operation is in * progress.

  • Successful - The operation completed * successfully.

  • Failed - The operation failed to * complete. You can troubleshoot using the status reason and the scaling * activities.

  • Cancelling - An ongoing operation * is being cancelled. Cancellation does not roll back any replacements that have * already been completed, but it prevents new replacements from being started. *

  • Cancelled - The operation is cancelled.

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

Provides more details about the current status of the instance refresh.

*/ inline const Aws::String& GetStatusReason() const{ return m_statusReason; } /** *

Provides more details about the current status of the instance refresh.

*/ inline bool StatusReasonHasBeenSet() const { return m_statusReasonHasBeenSet; } /** *

Provides more details about the current status of the instance refresh.

*/ inline void SetStatusReason(const Aws::String& value) { m_statusReasonHasBeenSet = true; m_statusReason = value; } /** *

Provides more details about the current status of the instance refresh.

*/ inline void SetStatusReason(Aws::String&& value) { m_statusReasonHasBeenSet = true; m_statusReason = std::move(value); } /** *

Provides more details about the current status of the instance refresh.

*/ inline void SetStatusReason(const char* value) { m_statusReasonHasBeenSet = true; m_statusReason.assign(value); } /** *

Provides more details about the current status of the instance refresh.

*/ inline InstanceRefresh& WithStatusReason(const Aws::String& value) { SetStatusReason(value); return *this;} /** *

Provides more details about the current status of the instance refresh.

*/ inline InstanceRefresh& WithStatusReason(Aws::String&& value) { SetStatusReason(std::move(value)); return *this;} /** *

Provides more details about the current status of the instance refresh.

*/ inline InstanceRefresh& WithStatusReason(const char* value) { SetStatusReason(value); return *this;} /** *

The date and time at which the instance refresh began.

*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *

The date and time at which the instance refresh began.

*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

The date and time at which the instance refresh began.

*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

The date and time at which the instance refresh began.

*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

The date and time at which the instance refresh began.

*/ inline InstanceRefresh& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The date and time at which the instance refresh began.

*/ inline InstanceRefresh& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} /** *

The date and time at which the instance refresh ended.

*/ inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; } /** *

The date and time at which the instance refresh ended.

*/ inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; } /** *

The date and time at which the instance refresh ended.

*/ inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; } /** *

The date and time at which the instance refresh ended.

*/ inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); } /** *

The date and time at which the instance refresh ended.

*/ inline InstanceRefresh& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;} /** *

The date and time at which the instance refresh ended.

*/ inline InstanceRefresh& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;} /** *

The percentage of the instance refresh that is complete. For each instance * replacement, Amazon EC2 Auto Scaling tracks the instance's health status and * warm-up time. When the instance's health status changes to healthy and the * specified warm-up time passes, the instance is considered updated and added to * the percentage complete.

*/ inline int GetPercentageComplete() const{ return m_percentageComplete; } /** *

The percentage of the instance refresh that is complete. For each instance * replacement, Amazon EC2 Auto Scaling tracks the instance's health status and * warm-up time. When the instance's health status changes to healthy and the * specified warm-up time passes, the instance is considered updated and added to * the percentage complete.

*/ inline bool PercentageCompleteHasBeenSet() const { return m_percentageCompleteHasBeenSet; } /** *

The percentage of the instance refresh that is complete. For each instance * replacement, Amazon EC2 Auto Scaling tracks the instance's health status and * warm-up time. When the instance's health status changes to healthy and the * specified warm-up time passes, the instance is considered updated and added to * the percentage complete.

*/ inline void SetPercentageComplete(int value) { m_percentageCompleteHasBeenSet = true; m_percentageComplete = value; } /** *

The percentage of the instance refresh that is complete. For each instance * replacement, Amazon EC2 Auto Scaling tracks the instance's health status and * warm-up time. When the instance's health status changes to healthy and the * specified warm-up time passes, the instance is considered updated and added to * the percentage complete.

*/ inline InstanceRefresh& WithPercentageComplete(int value) { SetPercentageComplete(value); return *this;} /** *

The number of instances remaining to update before the instance refresh is * complete.

*/ inline int GetInstancesToUpdate() const{ return m_instancesToUpdate; } /** *

The number of instances remaining to update before the instance refresh is * complete.

*/ inline bool InstancesToUpdateHasBeenSet() const { return m_instancesToUpdateHasBeenSet; } /** *

The number of instances remaining to update before the instance refresh is * complete.

*/ inline void SetInstancesToUpdate(int value) { m_instancesToUpdateHasBeenSet = true; m_instancesToUpdate = value; } /** *

The number of instances remaining to update before the instance refresh is * complete.

*/ inline InstanceRefresh& WithInstancesToUpdate(int value) { SetInstancesToUpdate(value); return *this;} private: Aws::String m_instanceRefreshId; bool m_instanceRefreshIdHasBeenSet; Aws::String m_autoScalingGroupName; bool m_autoScalingGroupNameHasBeenSet; InstanceRefreshStatus m_status; bool m_statusHasBeenSet; Aws::String m_statusReason; bool m_statusReasonHasBeenSet; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet; Aws::Utils::DateTime m_endTime; bool m_endTimeHasBeenSet; int m_percentageComplete; bool m_percentageCompleteHasBeenSet; int m_instancesToUpdate; bool m_instancesToUpdateHasBeenSet; }; } // namespace Model } // namespace AutoScaling } // namespace Aws