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

An CloudFormation stack, in a specific account and Region, that's part of a * stack set operation. A stack instance is a reference to an attempted or actual * stack in a given account within a given Region. A stack instance can exist * without a stack—for example, if the stack couldn't be created for some reason. A * stack instance is associated with only one stack set. Each stack instance * contains the ID of its associated stack set, as well as the ID of the actual * stack and the stack status.

See Also:

AWS * API Reference

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

The name of the Amazon Web Services account that the stack instance is * associated with.

*/ inline const Aws::String& GetAccount() const{ return m_account; } /** *

The name of the Amazon Web Services account that the stack instance is * associated with.

*/ inline bool AccountHasBeenSet() const { return m_accountHasBeenSet; } /** *

The name of the Amazon Web Services account that the stack instance is * associated with.

*/ inline void SetAccount(const Aws::String& value) { m_accountHasBeenSet = true; m_account = value; } /** *

The name of the Amazon Web Services account that the stack instance is * associated with.

*/ inline void SetAccount(Aws::String&& value) { m_accountHasBeenSet = true; m_account = std::move(value); } /** *

The name of the Amazon Web Services account that the stack instance is * associated with.

*/ inline void SetAccount(const char* value) { m_accountHasBeenSet = true; m_account.assign(value); } /** *

The name of the Amazon Web Services account that the stack instance is * associated with.

*/ inline StackInstance& WithAccount(const Aws::String& value) { SetAccount(value); return *this;} /** *

The name of the Amazon Web Services account that the stack instance is * associated with.

*/ inline StackInstance& WithAccount(Aws::String&& value) { SetAccount(std::move(value)); return *this;} /** *

The name of the Amazon Web Services account that the stack instance is * associated with.

*/ inline StackInstance& WithAccount(const char* value) { SetAccount(value); return *this;} /** *

The name of the Amazon Web Services Region that the stack instance is * associated with.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

The name of the Amazon Web Services Region that the stack instance is * associated with.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

The name of the Amazon Web Services Region that the stack instance is * associated with.

*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *

The name of the Amazon Web Services Region that the stack instance is * associated with.

*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *

The name of the Amazon Web Services Region that the stack instance is * associated with.

*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *

The name of the Amazon Web Services Region that the stack instance is * associated with.

*/ inline StackInstance& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

The name of the Amazon Web Services Region that the stack instance is * associated with.

*/ inline StackInstance& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

The name of the Amazon Web Services Region that the stack instance is * associated with.

*/ inline StackInstance& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

The status of the stack instance, in terms of its synchronization with its * associated stack set.

  • INOPERABLE: A * DeleteStackInstances operation has failed and left the stack in an * unstable state. Stacks in this state are excluded from further * UpdateStackSet operations. You might need to perform a * DeleteStackInstances operation, with RetainStacks set * to true, to delete the stack instance, and then delete the stack manually.

    *
  • OUTDATED: The stack isn't currently up to date with * the stack set because either the associated stack failed during a * CreateStackSet or UpdateStackSet operation, or the * stack was part of a CreateStackSet or UpdateStackSet * operation that failed or was stopped before the stack was created or * updated.

  • CURRENT: The stack is currently up to * date with the stack set.

*/ inline const StackInstanceStatus& GetStackInstanceStatus() const{ return m_stackInstanceStatus; } /** *

The status of the stack instance, in terms of its synchronization with its * associated stack set.

  • INOPERABLE: A * DeleteStackInstances operation has failed and left the stack in an * unstable state. Stacks in this state are excluded from further * UpdateStackSet operations. You might need to perform a * DeleteStackInstances operation, with RetainStacks set * to true, to delete the stack instance, and then delete the stack manually.

    *
  • OUTDATED: The stack isn't currently up to date with * the stack set because either the associated stack failed during a * CreateStackSet or UpdateStackSet operation, or the * stack was part of a CreateStackSet or UpdateStackSet * operation that failed or was stopped before the stack was created or * updated.

  • CURRENT: The stack is currently up to * date with the stack set.

*/ inline bool StackInstanceStatusHasBeenSet() const { return m_stackInstanceStatusHasBeenSet; } /** *

The status of the stack instance, in terms of its synchronization with its * associated stack set.

  • INOPERABLE: A * DeleteStackInstances operation has failed and left the stack in an * unstable state. Stacks in this state are excluded from further * UpdateStackSet operations. You might need to perform a * DeleteStackInstances operation, with RetainStacks set * to true, to delete the stack instance, and then delete the stack manually.

    *
  • OUTDATED: The stack isn't currently up to date with * the stack set because either the associated stack failed during a * CreateStackSet or UpdateStackSet operation, or the * stack was part of a CreateStackSet or UpdateStackSet * operation that failed or was stopped before the stack was created or * updated.

  • CURRENT: The stack is currently up to * date with the stack set.

*/ inline void SetStackInstanceStatus(const StackInstanceStatus& value) { m_stackInstanceStatusHasBeenSet = true; m_stackInstanceStatus = value; } /** *

The status of the stack instance, in terms of its synchronization with its * associated stack set.

  • INOPERABLE: A * DeleteStackInstances operation has failed and left the stack in an * unstable state. Stacks in this state are excluded from further * UpdateStackSet operations. You might need to perform a * DeleteStackInstances operation, with RetainStacks set * to true, to delete the stack instance, and then delete the stack manually.

    *
  • OUTDATED: The stack isn't currently up to date with * the stack set because either the associated stack failed during a * CreateStackSet or UpdateStackSet operation, or the * stack was part of a CreateStackSet or UpdateStackSet * operation that failed or was stopped before the stack was created or * updated.

  • CURRENT: The stack is currently up to * date with the stack set.

*/ inline void SetStackInstanceStatus(StackInstanceStatus&& value) { m_stackInstanceStatusHasBeenSet = true; m_stackInstanceStatus = std::move(value); } /** *

The status of the stack instance, in terms of its synchronization with its * associated stack set.

  • INOPERABLE: A * DeleteStackInstances operation has failed and left the stack in an * unstable state. Stacks in this state are excluded from further * UpdateStackSet operations. You might need to perform a * DeleteStackInstances operation, with RetainStacks set * to true, to delete the stack instance, and then delete the stack manually.

    *
  • OUTDATED: The stack isn't currently up to date with * the stack set because either the associated stack failed during a * CreateStackSet or UpdateStackSet operation, or the * stack was part of a CreateStackSet or UpdateStackSet * operation that failed or was stopped before the stack was created or * updated.

  • CURRENT: The stack is currently up to * date with the stack set.

*/ inline StackInstance& WithStackInstanceStatus(const StackInstanceStatus& value) { SetStackInstanceStatus(value); return *this;} /** *

The status of the stack instance, in terms of its synchronization with its * associated stack set.

  • INOPERABLE: A * DeleteStackInstances operation has failed and left the stack in an * unstable state. Stacks in this state are excluded from further * UpdateStackSet operations. You might need to perform a * DeleteStackInstances operation, with RetainStacks set * to true, to delete the stack instance, and then delete the stack manually.

    *
  • OUTDATED: The stack isn't currently up to date with * the stack set because either the associated stack failed during a * CreateStackSet or UpdateStackSet operation, or the * stack was part of a CreateStackSet or UpdateStackSet * operation that failed or was stopped before the stack was created or * updated.

  • CURRENT: The stack is currently up to * date with the stack set.

*/ inline StackInstance& WithStackInstanceStatus(StackInstanceStatus&& value) { SetStackInstanceStatus(std::move(value)); return *this;} private: Aws::String m_account; bool m_accountHasBeenSet = false; Aws::String m_region; bool m_regionHasBeenSet = false; StackInstanceStatus m_stackInstanceStatus; bool m_stackInstanceStatusHasBeenSet = false; }; } // namespace Model } // namespace ServiceCatalog } // namespace Aws