/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace Redshift { namespace Model { /** *

An Identity and Access Management (IAM) role that can be used by the * associated Amazon Redshift cluster to access other Amazon Web Services * services.

See Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) of the IAM role, for example, * arn:aws:iam::123456789012:role/RedshiftCopyUnload.

*/ inline const Aws::String& GetIamRoleArn() const{ return m_iamRoleArn; } /** *

The Amazon Resource Name (ARN) of the IAM role, for example, * arn:aws:iam::123456789012:role/RedshiftCopyUnload.

*/ inline bool IamRoleArnHasBeenSet() const { return m_iamRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the IAM role, for example, * arn:aws:iam::123456789012:role/RedshiftCopyUnload.

*/ inline void SetIamRoleArn(const Aws::String& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = value; } /** *

The Amazon Resource Name (ARN) of the IAM role, for example, * arn:aws:iam::123456789012:role/RedshiftCopyUnload.

*/ inline void SetIamRoleArn(Aws::String&& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the IAM role, for example, * arn:aws:iam::123456789012:role/RedshiftCopyUnload.

*/ inline void SetIamRoleArn(const char* value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the IAM role, for example, * arn:aws:iam::123456789012:role/RedshiftCopyUnload.

*/ inline ClusterIamRole& WithIamRoleArn(const Aws::String& value) { SetIamRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role, for example, * arn:aws:iam::123456789012:role/RedshiftCopyUnload.

*/ inline ClusterIamRole& WithIamRoleArn(Aws::String&& value) { SetIamRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role, for example, * arn:aws:iam::123456789012:role/RedshiftCopyUnload.

*/ inline ClusterIamRole& WithIamRoleArn(const char* value) { SetIamRoleArn(value); return *this;} /** *

A value that describes the status of the IAM role's association with an * Amazon Redshift cluster.

The following are possible statuses and * descriptions.

  • in-sync: The role is available for * use by the cluster.

  • adding: The role is in the * process of being associated with the cluster.

  • * removing: The role is in the process of being disassociated with * the cluster.

*/ inline const Aws::String& GetApplyStatus() const{ return m_applyStatus; } /** *

A value that describes the status of the IAM role's association with an * Amazon Redshift cluster.

The following are possible statuses and * descriptions.

  • in-sync: The role is available for * use by the cluster.

  • adding: The role is in the * process of being associated with the cluster.

  • * removing: The role is in the process of being disassociated with * the cluster.

*/ inline bool ApplyStatusHasBeenSet() const { return m_applyStatusHasBeenSet; } /** *

A value that describes the status of the IAM role's association with an * Amazon Redshift cluster.

The following are possible statuses and * descriptions.

  • in-sync: The role is available for * use by the cluster.

  • adding: The role is in the * process of being associated with the cluster.

  • * removing: The role is in the process of being disassociated with * the cluster.

*/ inline void SetApplyStatus(const Aws::String& value) { m_applyStatusHasBeenSet = true; m_applyStatus = value; } /** *

A value that describes the status of the IAM role's association with an * Amazon Redshift cluster.

The following are possible statuses and * descriptions.

  • in-sync: The role is available for * use by the cluster.

  • adding: The role is in the * process of being associated with the cluster.

  • * removing: The role is in the process of being disassociated with * the cluster.

*/ inline void SetApplyStatus(Aws::String&& value) { m_applyStatusHasBeenSet = true; m_applyStatus = std::move(value); } /** *

A value that describes the status of the IAM role's association with an * Amazon Redshift cluster.

The following are possible statuses and * descriptions.

  • in-sync: The role is available for * use by the cluster.

  • adding: The role is in the * process of being associated with the cluster.

  • * removing: The role is in the process of being disassociated with * the cluster.

*/ inline void SetApplyStatus(const char* value) { m_applyStatusHasBeenSet = true; m_applyStatus.assign(value); } /** *

A value that describes the status of the IAM role's association with an * Amazon Redshift cluster.

The following are possible statuses and * descriptions.

  • in-sync: The role is available for * use by the cluster.

  • adding: The role is in the * process of being associated with the cluster.

  • * removing: The role is in the process of being disassociated with * the cluster.

*/ inline ClusterIamRole& WithApplyStatus(const Aws::String& value) { SetApplyStatus(value); return *this;} /** *

A value that describes the status of the IAM role's association with an * Amazon Redshift cluster.

The following are possible statuses and * descriptions.

  • in-sync: The role is available for * use by the cluster.

  • adding: The role is in the * process of being associated with the cluster.

  • * removing: The role is in the process of being disassociated with * the cluster.

*/ inline ClusterIamRole& WithApplyStatus(Aws::String&& value) { SetApplyStatus(std::move(value)); return *this;} /** *

A value that describes the status of the IAM role's association with an * Amazon Redshift cluster.

The following are possible statuses and * descriptions.

  • in-sync: The role is available for * use by the cluster.

  • adding: The role is in the * process of being associated with the cluster.

  • * removing: The role is in the process of being disassociated with * the cluster.

*/ inline ClusterIamRole& WithApplyStatus(const char* value) { SetApplyStatus(value); return *this;} private: Aws::String m_iamRoleArn; bool m_iamRoleArnHasBeenSet = false; Aws::String m_applyStatus; bool m_applyStatusHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws