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

The proposed access control configuration for an IAM role. You can propose a * configuration for a new IAM role or an existing IAM role that you own by * specifying the trust policy. If the configuration is for a new IAM role, you * must specify the trust policy. If the configuration is for an existing IAM role * that you own and you do not propose the trust policy, the access preview uses * the existing trust policy for the role. The proposed trust policy cannot be an * empty string. For more information about role trust policy limits, see IAM * and STS quotas.

See Also:

AWS * API Reference

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

The proposed trust policy for the IAM role.

*/ inline const Aws::String& GetTrustPolicy() const{ return m_trustPolicy; } /** *

The proposed trust policy for the IAM role.

*/ inline bool TrustPolicyHasBeenSet() const { return m_trustPolicyHasBeenSet; } /** *

The proposed trust policy for the IAM role.

*/ inline void SetTrustPolicy(const Aws::String& value) { m_trustPolicyHasBeenSet = true; m_trustPolicy = value; } /** *

The proposed trust policy for the IAM role.

*/ inline void SetTrustPolicy(Aws::String&& value) { m_trustPolicyHasBeenSet = true; m_trustPolicy = std::move(value); } /** *

The proposed trust policy for the IAM role.

*/ inline void SetTrustPolicy(const char* value) { m_trustPolicyHasBeenSet = true; m_trustPolicy.assign(value); } /** *

The proposed trust policy for the IAM role.

*/ inline IamRoleConfiguration& WithTrustPolicy(const Aws::String& value) { SetTrustPolicy(value); return *this;} /** *

The proposed trust policy for the IAM role.

*/ inline IamRoleConfiguration& WithTrustPolicy(Aws::String&& value) { SetTrustPolicy(std::move(value)); return *this;} /** *

The proposed trust policy for the IAM role.

*/ inline IamRoleConfiguration& WithTrustPolicy(const char* value) { SetTrustPolicy(value); return *this;} private: Aws::String m_trustPolicy; bool m_trustPolicyHasBeenSet = false; }; } // namespace Model } // namespace AccessAnalyzer } // namespace Aws