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

Contains rules to be applied to the affected accounts. The effective policy * is the aggregation of any policies the account inherits, plus any policy * directly attached to the account.

See Also:

AWS * API Reference

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

The text content of the policy.

*/ inline const Aws::String& GetPolicyContent() const{ return m_policyContent; } /** *

The text content of the policy.

*/ inline bool PolicyContentHasBeenSet() const { return m_policyContentHasBeenSet; } /** *

The text content of the policy.

*/ inline void SetPolicyContent(const Aws::String& value) { m_policyContentHasBeenSet = true; m_policyContent = value; } /** *

The text content of the policy.

*/ inline void SetPolicyContent(Aws::String&& value) { m_policyContentHasBeenSet = true; m_policyContent = std::move(value); } /** *

The text content of the policy.

*/ inline void SetPolicyContent(const char* value) { m_policyContentHasBeenSet = true; m_policyContent.assign(value); } /** *

The text content of the policy.

*/ inline EffectivePolicy& WithPolicyContent(const Aws::String& value) { SetPolicyContent(value); return *this;} /** *

The text content of the policy.

*/ inline EffectivePolicy& WithPolicyContent(Aws::String&& value) { SetPolicyContent(std::move(value)); return *this;} /** *

The text content of the policy.

*/ inline EffectivePolicy& WithPolicyContent(const char* value) { SetPolicyContent(value); return *this;} /** *

The time of the last update to this policy.

*/ inline const Aws::Utils::DateTime& GetLastUpdatedTimestamp() const{ return m_lastUpdatedTimestamp; } /** *

The time of the last update to this policy.

*/ inline bool LastUpdatedTimestampHasBeenSet() const { return m_lastUpdatedTimestampHasBeenSet; } /** *

The time of the last update to this policy.

*/ inline void SetLastUpdatedTimestamp(const Aws::Utils::DateTime& value) { m_lastUpdatedTimestampHasBeenSet = true; m_lastUpdatedTimestamp = value; } /** *

The time of the last update to this policy.

*/ inline void SetLastUpdatedTimestamp(Aws::Utils::DateTime&& value) { m_lastUpdatedTimestampHasBeenSet = true; m_lastUpdatedTimestamp = std::move(value); } /** *

The time of the last update to this policy.

*/ inline EffectivePolicy& WithLastUpdatedTimestamp(const Aws::Utils::DateTime& value) { SetLastUpdatedTimestamp(value); return *this;} /** *

The time of the last update to this policy.

*/ inline EffectivePolicy& WithLastUpdatedTimestamp(Aws::Utils::DateTime&& value) { SetLastUpdatedTimestamp(std::move(value)); return *this;} /** *

The account ID of the policy target.

*/ inline const Aws::String& GetTargetId() const{ return m_targetId; } /** *

The account ID of the policy target.

*/ inline bool TargetIdHasBeenSet() const { return m_targetIdHasBeenSet; } /** *

The account ID of the policy target.

*/ inline void SetTargetId(const Aws::String& value) { m_targetIdHasBeenSet = true; m_targetId = value; } /** *

The account ID of the policy target.

*/ inline void SetTargetId(Aws::String&& value) { m_targetIdHasBeenSet = true; m_targetId = std::move(value); } /** *

The account ID of the policy target.

*/ inline void SetTargetId(const char* value) { m_targetIdHasBeenSet = true; m_targetId.assign(value); } /** *

The account ID of the policy target.

*/ inline EffectivePolicy& WithTargetId(const Aws::String& value) { SetTargetId(value); return *this;} /** *

The account ID of the policy target.

*/ inline EffectivePolicy& WithTargetId(Aws::String&& value) { SetTargetId(std::move(value)); return *this;} /** *

The account ID of the policy target.

*/ inline EffectivePolicy& WithTargetId(const char* value) { SetTargetId(value); return *this;} /** *

The policy type.

*/ inline const EffectivePolicyType& GetPolicyType() const{ return m_policyType; } /** *

The policy type.

*/ inline bool PolicyTypeHasBeenSet() const { return m_policyTypeHasBeenSet; } /** *

The policy type.

*/ inline void SetPolicyType(const EffectivePolicyType& value) { m_policyTypeHasBeenSet = true; m_policyType = value; } /** *

The policy type.

*/ inline void SetPolicyType(EffectivePolicyType&& value) { m_policyTypeHasBeenSet = true; m_policyType = std::move(value); } /** *

The policy type.

*/ inline EffectivePolicy& WithPolicyType(const EffectivePolicyType& value) { SetPolicyType(value); return *this;} /** *

The policy type.

*/ inline EffectivePolicy& WithPolicyType(EffectivePolicyType&& value) { SetPolicyType(std::move(value)); return *this;} private: Aws::String m_policyContent; bool m_policyContentHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTimestamp; bool m_lastUpdatedTimestampHasBeenSet = false; Aws::String m_targetId; bool m_targetIdHasBeenSet = false; EffectivePolicyType m_policyType; bool m_policyTypeHasBeenSet = false; }; } // namespace Model } // namespace Organizations } // namespace Aws