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

Contains details about an organization. An organization is a collection of * accounts that are centrally managed together using consolidated billing, * organized hierarchically with organizational units (OUs), and controlled with * policies .

See Also:

AWS * API Reference

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

The unique identifier (ID) of an organization.

The regex pattern for an organization ID * string requires "o-" followed by from 10 to 32 lowercase letters or digits.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

The unique identifier (ID) of an organization.

The regex pattern for an organization ID * string requires "o-" followed by from 10 to 32 lowercase letters or digits.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

The unique identifier (ID) of an organization.

The regex pattern for an organization ID * string requires "o-" followed by from 10 to 32 lowercase letters or digits.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

The unique identifier (ID) of an organization.

The regex pattern for an organization ID * string requires "o-" followed by from 10 to 32 lowercase letters or digits.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

The unique identifier (ID) of an organization.

The regex pattern for an organization ID * string requires "o-" followed by from 10 to 32 lowercase letters or digits.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

The unique identifier (ID) of an organization.

The regex pattern for an organization ID * string requires "o-" followed by from 10 to 32 lowercase letters or digits.

*/ inline Organization& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

The unique identifier (ID) of an organization.

The regex pattern for an organization ID * string requires "o-" followed by from 10 to 32 lowercase letters or digits.

*/ inline Organization& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

The unique identifier (ID) of an organization.

The regex pattern for an organization ID * string requires "o-" followed by from 10 to 32 lowercase letters or digits.

*/ inline Organization& WithId(const char* value) { SetId(value); return *this;} /** *

The Amazon Resource Name (ARN) of an organization.

For more * information about ARNs in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The Amazon Resource Name (ARN) of an organization.

For more * information about ARNs in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of an organization.

For more * information about ARNs in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The Amazon Resource Name (ARN) of an organization.

For more * information about ARNs in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The Amazon Resource Name (ARN) of an organization.

For more * information about ARNs in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The Amazon Resource Name (ARN) of an organization.

For more * information about ARNs in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline Organization& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of an organization.

For more * information about ARNs in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline Organization& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an organization.

For more * information about ARNs in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline Organization& WithArn(const char* value) { SetArn(value); return *this;} /** *

Specifies the functionality that currently is available to the organization. * If set to "ALL", then all features are enabled and policies can be applied to * accounts in the organization. If set to "CONSOLIDATED_BILLING", then only * consolidated billing functionality is available. For more information, see Enabling * All Features in Your Organization in the Organizations User * Guide.

*/ inline const OrganizationFeatureSet& GetFeatureSet() const{ return m_featureSet; } /** *

Specifies the functionality that currently is available to the organization. * If set to "ALL", then all features are enabled and policies can be applied to * accounts in the organization. If set to "CONSOLIDATED_BILLING", then only * consolidated billing functionality is available. For more information, see Enabling * All Features in Your Organization in the Organizations User * Guide.

*/ inline bool FeatureSetHasBeenSet() const { return m_featureSetHasBeenSet; } /** *

Specifies the functionality that currently is available to the organization. * If set to "ALL", then all features are enabled and policies can be applied to * accounts in the organization. If set to "CONSOLIDATED_BILLING", then only * consolidated billing functionality is available. For more information, see Enabling * All Features in Your Organization in the Organizations User * Guide.

*/ inline void SetFeatureSet(const OrganizationFeatureSet& value) { m_featureSetHasBeenSet = true; m_featureSet = value; } /** *

Specifies the functionality that currently is available to the organization. * If set to "ALL", then all features are enabled and policies can be applied to * accounts in the organization. If set to "CONSOLIDATED_BILLING", then only * consolidated billing functionality is available. For more information, see Enabling * All Features in Your Organization in the Organizations User * Guide.

*/ inline void SetFeatureSet(OrganizationFeatureSet&& value) { m_featureSetHasBeenSet = true; m_featureSet = std::move(value); } /** *

Specifies the functionality that currently is available to the organization. * If set to "ALL", then all features are enabled and policies can be applied to * accounts in the organization. If set to "CONSOLIDATED_BILLING", then only * consolidated billing functionality is available. For more information, see Enabling * All Features in Your Organization in the Organizations User * Guide.

*/ inline Organization& WithFeatureSet(const OrganizationFeatureSet& value) { SetFeatureSet(value); return *this;} /** *

Specifies the functionality that currently is available to the organization. * If set to "ALL", then all features are enabled and policies can be applied to * accounts in the organization. If set to "CONSOLIDATED_BILLING", then only * consolidated billing functionality is available. For more information, see Enabling * All Features in Your Organization in the Organizations User * Guide.

*/ inline Organization& WithFeatureSet(OrganizationFeatureSet&& value) { SetFeatureSet(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the account that is designated as the * management account for the organization.

For more information about ARNs * in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline const Aws::String& GetMasterAccountArn() const{ return m_masterAccountArn; } /** *

The Amazon Resource Name (ARN) of the account that is designated as the * management account for the organization.

For more information about ARNs * in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline bool MasterAccountArnHasBeenSet() const { return m_masterAccountArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the account that is designated as the * management account for the organization.

For more information about ARNs * in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline void SetMasterAccountArn(const Aws::String& value) { m_masterAccountArnHasBeenSet = true; m_masterAccountArn = value; } /** *

The Amazon Resource Name (ARN) of the account that is designated as the * management account for the organization.

For more information about ARNs * in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline void SetMasterAccountArn(Aws::String&& value) { m_masterAccountArnHasBeenSet = true; m_masterAccountArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the account that is designated as the * management account for the organization.

For more information about ARNs * in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline void SetMasterAccountArn(const char* value) { m_masterAccountArnHasBeenSet = true; m_masterAccountArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the account that is designated as the * management account for the organization.

For more information about ARNs * in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline Organization& WithMasterAccountArn(const Aws::String& value) { SetMasterAccountArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the account that is designated as the * management account for the organization.

For more information about ARNs * in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline Organization& WithMasterAccountArn(Aws::String&& value) { SetMasterAccountArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the account that is designated as the * management account for the organization.

For more information about ARNs * in Organizations, see ARN * Formats Supported by Organizations in the Amazon Web Services Service * Authorization Reference.

*/ inline Organization& WithMasterAccountArn(const char* value) { SetMasterAccountArn(value); return *this;} /** *

The unique identifier (ID) of the management account of an organization.

*

The regex pattern for an * account ID string requires exactly 12 digits.

*/ inline const Aws::String& GetMasterAccountId() const{ return m_masterAccountId; } /** *

The unique identifier (ID) of the management account of an organization.

*

The regex pattern for an * account ID string requires exactly 12 digits.

*/ inline bool MasterAccountIdHasBeenSet() const { return m_masterAccountIdHasBeenSet; } /** *

The unique identifier (ID) of the management account of an organization.

*

The regex pattern for an * account ID string requires exactly 12 digits.

*/ inline void SetMasterAccountId(const Aws::String& value) { m_masterAccountIdHasBeenSet = true; m_masterAccountId = value; } /** *

The unique identifier (ID) of the management account of an organization.

*

The regex pattern for an * account ID string requires exactly 12 digits.

*/ inline void SetMasterAccountId(Aws::String&& value) { m_masterAccountIdHasBeenSet = true; m_masterAccountId = std::move(value); } /** *

The unique identifier (ID) of the management account of an organization.

*

The regex pattern for an * account ID string requires exactly 12 digits.

*/ inline void SetMasterAccountId(const char* value) { m_masterAccountIdHasBeenSet = true; m_masterAccountId.assign(value); } /** *

The unique identifier (ID) of the management account of an organization.

*

The regex pattern for an * account ID string requires exactly 12 digits.

*/ inline Organization& WithMasterAccountId(const Aws::String& value) { SetMasterAccountId(value); return *this;} /** *

The unique identifier (ID) of the management account of an organization.

*

The regex pattern for an * account ID string requires exactly 12 digits.

*/ inline Organization& WithMasterAccountId(Aws::String&& value) { SetMasterAccountId(std::move(value)); return *this;} /** *

The unique identifier (ID) of the management account of an organization.

*

The regex pattern for an * account ID string requires exactly 12 digits.

*/ inline Organization& WithMasterAccountId(const char* value) { SetMasterAccountId(value); return *this;} /** *

The email address that is associated with the Amazon Web Services account * that is designated as the management account for the organization.

*/ inline const Aws::String& GetMasterAccountEmail() const{ return m_masterAccountEmail; } /** *

The email address that is associated with the Amazon Web Services account * that is designated as the management account for the organization.

*/ inline bool MasterAccountEmailHasBeenSet() const { return m_masterAccountEmailHasBeenSet; } /** *

The email address that is associated with the Amazon Web Services account * that is designated as the management account for the organization.

*/ inline void SetMasterAccountEmail(const Aws::String& value) { m_masterAccountEmailHasBeenSet = true; m_masterAccountEmail = value; } /** *

The email address that is associated with the Amazon Web Services account * that is designated as the management account for the organization.

*/ inline void SetMasterAccountEmail(Aws::String&& value) { m_masterAccountEmailHasBeenSet = true; m_masterAccountEmail = std::move(value); } /** *

The email address that is associated with the Amazon Web Services account * that is designated as the management account for the organization.

*/ inline void SetMasterAccountEmail(const char* value) { m_masterAccountEmailHasBeenSet = true; m_masterAccountEmail.assign(value); } /** *

The email address that is associated with the Amazon Web Services account * that is designated as the management account for the organization.

*/ inline Organization& WithMasterAccountEmail(const Aws::String& value) { SetMasterAccountEmail(value); return *this;} /** *

The email address that is associated with the Amazon Web Services account * that is designated as the management account for the organization.

*/ inline Organization& WithMasterAccountEmail(Aws::String&& value) { SetMasterAccountEmail(std::move(value)); return *this;} /** *

The email address that is associated with the Amazon Web Services account * that is designated as the management account for the organization.

*/ inline Organization& WithMasterAccountEmail(const char* value) { SetMasterAccountEmail(value); return *this;} /** *

Do not use. This field is deprecated and doesn't provide complete * information about the policies in your organization.

To * determine the policies that are enabled and available for use in your * organization, use the ListRoots operation instead.

*/ inline const Aws::Vector& GetAvailablePolicyTypes() const{ return m_availablePolicyTypes; } /** *

Do not use. This field is deprecated and doesn't provide complete * information about the policies in your organization.

To * determine the policies that are enabled and available for use in your * organization, use the ListRoots operation instead.

*/ inline bool AvailablePolicyTypesHasBeenSet() const { return m_availablePolicyTypesHasBeenSet; } /** *

Do not use. This field is deprecated and doesn't provide complete * information about the policies in your organization.

To * determine the policies that are enabled and available for use in your * organization, use the ListRoots operation instead.

*/ inline void SetAvailablePolicyTypes(const Aws::Vector& value) { m_availablePolicyTypesHasBeenSet = true; m_availablePolicyTypes = value; } /** *

Do not use. This field is deprecated and doesn't provide complete * information about the policies in your organization.

To * determine the policies that are enabled and available for use in your * organization, use the ListRoots operation instead.

*/ inline void SetAvailablePolicyTypes(Aws::Vector&& value) { m_availablePolicyTypesHasBeenSet = true; m_availablePolicyTypes = std::move(value); } /** *

Do not use. This field is deprecated and doesn't provide complete * information about the policies in your organization.

To * determine the policies that are enabled and available for use in your * organization, use the ListRoots operation instead.

*/ inline Organization& WithAvailablePolicyTypes(const Aws::Vector& value) { SetAvailablePolicyTypes(value); return *this;} /** *

Do not use. This field is deprecated and doesn't provide complete * information about the policies in your organization.

To * determine the policies that are enabled and available for use in your * organization, use the ListRoots operation instead.

*/ inline Organization& WithAvailablePolicyTypes(Aws::Vector&& value) { SetAvailablePolicyTypes(std::move(value)); return *this;} /** *

Do not use. This field is deprecated and doesn't provide complete * information about the policies in your organization.

To * determine the policies that are enabled and available for use in your * organization, use the ListRoots operation instead.

*/ inline Organization& AddAvailablePolicyTypes(const PolicyTypeSummary& value) { m_availablePolicyTypesHasBeenSet = true; m_availablePolicyTypes.push_back(value); return *this; } /** *

Do not use. This field is deprecated and doesn't provide complete * information about the policies in your organization.

To * determine the policies that are enabled and available for use in your * organization, use the ListRoots operation instead.

*/ inline Organization& AddAvailablePolicyTypes(PolicyTypeSummary&& value) { m_availablePolicyTypesHasBeenSet = true; m_availablePolicyTypes.push_back(std::move(value)); return *this; } private: Aws::String m_id; bool m_idHasBeenSet = false; Aws::String m_arn; bool m_arnHasBeenSet = false; OrganizationFeatureSet m_featureSet; bool m_featureSetHasBeenSet = false; Aws::String m_masterAccountArn; bool m_masterAccountArnHasBeenSet = false; Aws::String m_masterAccountId; bool m_masterAccountIdHasBeenSet = false; Aws::String m_masterAccountEmail; bool m_masterAccountEmailHasBeenSet = false; Aws::Vector m_availablePolicyTypes; bool m_availablePolicyTypesHasBeenSet = false; }; } // namespace Model } // namespace Organizations } // namespace Aws