/** * 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 CloudFormation { namespace Model { /** *

[Service-managed permissions] The Organizations accounts to which StackSets * deploys. StackSets doesn't deploy stack instances to the organization management * account, even if the organization management account is in your organization or * in an OU in your organization.

For update operations, you can specify * either Accounts or OrganizationalUnitIds. For create * and delete operations, specify OrganizationalUnitIds.

See * Also:

AWS * API Reference

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

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline const Aws::Vector& GetAccounts() const{ return m_accounts; } /** *

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline bool AccountsHasBeenSet() const { return m_accountsHasBeenSet; } /** *

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline void SetAccounts(const Aws::Vector& value) { m_accountsHasBeenSet = true; m_accounts = value; } /** *

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline void SetAccounts(Aws::Vector&& value) { m_accountsHasBeenSet = true; m_accounts = std::move(value); } /** *

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline DeploymentTargets& WithAccounts(const Aws::Vector& value) { SetAccounts(value); return *this;} /** *

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline DeploymentTargets& WithAccounts(Aws::Vector&& value) { SetAccounts(std::move(value)); return *this;} /** *

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline DeploymentTargets& AddAccounts(const Aws::String& value) { m_accountsHasBeenSet = true; m_accounts.push_back(value); return *this; } /** *

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline DeploymentTargets& AddAccounts(Aws::String&& value) { m_accountsHasBeenSet = true; m_accounts.push_back(std::move(value)); return *this; } /** *

The names of one or more Amazon Web Services accounts for which you want to * deploy stack set updates.

*/ inline DeploymentTargets& AddAccounts(const char* value) { m_accountsHasBeenSet = true; m_accounts.push_back(value); return *this; } /** *

Returns the value of the AccountsUrl property.

*/ inline const Aws::String& GetAccountsUrl() const{ return m_accountsUrl; } /** *

Returns the value of the AccountsUrl property.

*/ inline bool AccountsUrlHasBeenSet() const { return m_accountsUrlHasBeenSet; } /** *

Returns the value of the AccountsUrl property.

*/ inline void SetAccountsUrl(const Aws::String& value) { m_accountsUrlHasBeenSet = true; m_accountsUrl = value; } /** *

Returns the value of the AccountsUrl property.

*/ inline void SetAccountsUrl(Aws::String&& value) { m_accountsUrlHasBeenSet = true; m_accountsUrl = std::move(value); } /** *

Returns the value of the AccountsUrl property.

*/ inline void SetAccountsUrl(const char* value) { m_accountsUrlHasBeenSet = true; m_accountsUrl.assign(value); } /** *

Returns the value of the AccountsUrl property.

*/ inline DeploymentTargets& WithAccountsUrl(const Aws::String& value) { SetAccountsUrl(value); return *this;} /** *

Returns the value of the AccountsUrl property.

*/ inline DeploymentTargets& WithAccountsUrl(Aws::String&& value) { SetAccountsUrl(std::move(value)); return *this;} /** *

Returns the value of the AccountsUrl property.

*/ inline DeploymentTargets& WithAccountsUrl(const char* value) { SetAccountsUrl(value); return *this;} /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline const Aws::Vector& GetOrganizationalUnitIds() const{ return m_organizationalUnitIds; } /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline bool OrganizationalUnitIdsHasBeenSet() const { return m_organizationalUnitIdsHasBeenSet; } /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline void SetOrganizationalUnitIds(const Aws::Vector& value) { m_organizationalUnitIdsHasBeenSet = true; m_organizationalUnitIds = value; } /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline void SetOrganizationalUnitIds(Aws::Vector&& value) { m_organizationalUnitIdsHasBeenSet = true; m_organizationalUnitIds = std::move(value); } /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline DeploymentTargets& WithOrganizationalUnitIds(const Aws::Vector& value) { SetOrganizationalUnitIds(value); return *this;} /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline DeploymentTargets& WithOrganizationalUnitIds(Aws::Vector&& value) { SetOrganizationalUnitIds(std::move(value)); return *this;} /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline DeploymentTargets& AddOrganizationalUnitIds(const Aws::String& value) { m_organizationalUnitIdsHasBeenSet = true; m_organizationalUnitIds.push_back(value); return *this; } /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline DeploymentTargets& AddOrganizationalUnitIds(Aws::String&& value) { m_organizationalUnitIdsHasBeenSet = true; m_organizationalUnitIds.push_back(std::move(value)); return *this; } /** *

The organization root ID or organizational unit (OU) IDs to which StackSets * deploys.

*/ inline DeploymentTargets& AddOrganizationalUnitIds(const char* value) { m_organizationalUnitIdsHasBeenSet = true; m_organizationalUnitIds.push_back(value); return *this; } /** *

Limit deployment targets to individual accounts or include additional * accounts with provided OUs.

The following is a list of possible values * for the AccountFilterType operation.

  • * INTERSECTION: StackSets deploys to the accounts specified in * Accounts parameter.

  • DIFFERENCE: * StackSets excludes the accounts specified in Accounts parameter. * This enables user to avoid certain accounts within an OU such as suspended * accounts.

  • UNION: StackSets includes additional * accounts deployment targets.

    This is the default value if * AccountFilterType is not provided. This enables user to update an * entire OU and individual accounts from a different OU in one request, which used * to be two separate requests.

  • NONE: Deploys to * all the accounts in specified organizational units (OU).

*/ inline const AccountFilterType& GetAccountFilterType() const{ return m_accountFilterType; } /** *

Limit deployment targets to individual accounts or include additional * accounts with provided OUs.

The following is a list of possible values * for the AccountFilterType operation.

  • * INTERSECTION: StackSets deploys to the accounts specified in * Accounts parameter.

  • DIFFERENCE: * StackSets excludes the accounts specified in Accounts parameter. * This enables user to avoid certain accounts within an OU such as suspended * accounts.

  • UNION: StackSets includes additional * accounts deployment targets.

    This is the default value if * AccountFilterType is not provided. This enables user to update an * entire OU and individual accounts from a different OU in one request, which used * to be two separate requests.

  • NONE: Deploys to * all the accounts in specified organizational units (OU).

*/ inline bool AccountFilterTypeHasBeenSet() const { return m_accountFilterTypeHasBeenSet; } /** *

Limit deployment targets to individual accounts or include additional * accounts with provided OUs.

The following is a list of possible values * for the AccountFilterType operation.

  • * INTERSECTION: StackSets deploys to the accounts specified in * Accounts parameter.

  • DIFFERENCE: * StackSets excludes the accounts specified in Accounts parameter. * This enables user to avoid certain accounts within an OU such as suspended * accounts.

  • UNION: StackSets includes additional * accounts deployment targets.

    This is the default value if * AccountFilterType is not provided. This enables user to update an * entire OU and individual accounts from a different OU in one request, which used * to be two separate requests.

  • NONE: Deploys to * all the accounts in specified organizational units (OU).

*/ inline void SetAccountFilterType(const AccountFilterType& value) { m_accountFilterTypeHasBeenSet = true; m_accountFilterType = value; } /** *

Limit deployment targets to individual accounts or include additional * accounts with provided OUs.

The following is a list of possible values * for the AccountFilterType operation.

  • * INTERSECTION: StackSets deploys to the accounts specified in * Accounts parameter.

  • DIFFERENCE: * StackSets excludes the accounts specified in Accounts parameter. * This enables user to avoid certain accounts within an OU such as suspended * accounts.

  • UNION: StackSets includes additional * accounts deployment targets.

    This is the default value if * AccountFilterType is not provided. This enables user to update an * entire OU and individual accounts from a different OU in one request, which used * to be two separate requests.

  • NONE: Deploys to * all the accounts in specified organizational units (OU).

*/ inline void SetAccountFilterType(AccountFilterType&& value) { m_accountFilterTypeHasBeenSet = true; m_accountFilterType = std::move(value); } /** *

Limit deployment targets to individual accounts or include additional * accounts with provided OUs.

The following is a list of possible values * for the AccountFilterType operation.

  • * INTERSECTION: StackSets deploys to the accounts specified in * Accounts parameter.

  • DIFFERENCE: * StackSets excludes the accounts specified in Accounts parameter. * This enables user to avoid certain accounts within an OU such as suspended * accounts.

  • UNION: StackSets includes additional * accounts deployment targets.

    This is the default value if * AccountFilterType is not provided. This enables user to update an * entire OU and individual accounts from a different OU in one request, which used * to be two separate requests.

  • NONE: Deploys to * all the accounts in specified organizational units (OU).

*/ inline DeploymentTargets& WithAccountFilterType(const AccountFilterType& value) { SetAccountFilterType(value); return *this;} /** *

Limit deployment targets to individual accounts or include additional * accounts with provided OUs.

The following is a list of possible values * for the AccountFilterType operation.

  • * INTERSECTION: StackSets deploys to the accounts specified in * Accounts parameter.

  • DIFFERENCE: * StackSets excludes the accounts specified in Accounts parameter. * This enables user to avoid certain accounts within an OU such as suspended * accounts.

  • UNION: StackSets includes additional * accounts deployment targets.

    This is the default value if * AccountFilterType is not provided. This enables user to update an * entire OU and individual accounts from a different OU in one request, which used * to be two separate requests.

  • NONE: Deploys to * all the accounts in specified organizational units (OU).

*/ inline DeploymentTargets& WithAccountFilterType(AccountFilterType&& value) { SetAccountFilterType(std::move(value)); return *this;} private: Aws::Vector m_accounts; bool m_accountsHasBeenSet = false; Aws::String m_accountsUrl; bool m_accountsUrlHasBeenSet = false; Aws::Vector m_organizationalUnitIds; bool m_organizationalUnitIdsHasBeenSet = false; AccountFilterType m_accountFilterType; bool m_accountFilterTypeHasBeenSet = false; }; } // namespace Model } // namespace CloudFormation } // namespace Aws