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

Contains information about an attached permissions boundary.

An * attached permissions boundary is a managed policy that has been attached to a * user or role to set the permissions boundary.

For more information about * permissions boundaries, see Permissions * boundaries for IAM identities in the IAM User Guide.

See * Also:

AWS * API Reference

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

The permissions boundary usage type that indicates what type of IAM resource * is used as the permissions boundary for an entity. This data type can only have * a value of Policy.

*/ inline const PermissionsBoundaryAttachmentType& GetPermissionsBoundaryType() const{ return m_permissionsBoundaryType; } /** *

The permissions boundary usage type that indicates what type of IAM resource * is used as the permissions boundary for an entity. This data type can only have * a value of Policy.

*/ inline bool PermissionsBoundaryTypeHasBeenSet() const { return m_permissionsBoundaryTypeHasBeenSet; } /** *

The permissions boundary usage type that indicates what type of IAM resource * is used as the permissions boundary for an entity. This data type can only have * a value of Policy.

*/ inline void SetPermissionsBoundaryType(const PermissionsBoundaryAttachmentType& value) { m_permissionsBoundaryTypeHasBeenSet = true; m_permissionsBoundaryType = value; } /** *

The permissions boundary usage type that indicates what type of IAM resource * is used as the permissions boundary for an entity. This data type can only have * a value of Policy.

*/ inline void SetPermissionsBoundaryType(PermissionsBoundaryAttachmentType&& value) { m_permissionsBoundaryTypeHasBeenSet = true; m_permissionsBoundaryType = std::move(value); } /** *

The permissions boundary usage type that indicates what type of IAM resource * is used as the permissions boundary for an entity. This data type can only have * a value of Policy.

*/ inline AttachedPermissionsBoundary& WithPermissionsBoundaryType(const PermissionsBoundaryAttachmentType& value) { SetPermissionsBoundaryType(value); return *this;} /** *

The permissions boundary usage type that indicates what type of IAM resource * is used as the permissions boundary for an entity. This data type can only have * a value of Policy.

*/ inline AttachedPermissionsBoundary& WithPermissionsBoundaryType(PermissionsBoundaryAttachmentType&& value) { SetPermissionsBoundaryType(std::move(value)); return *this;} /** *

The ARN of the policy used to set the permissions boundary for the user or * role.

*/ inline const Aws::String& GetPermissionsBoundaryArn() const{ return m_permissionsBoundaryArn; } /** *

The ARN of the policy used to set the permissions boundary for the user or * role.

*/ inline bool PermissionsBoundaryArnHasBeenSet() const { return m_permissionsBoundaryArnHasBeenSet; } /** *

The ARN of the policy used to set the permissions boundary for the user or * role.

*/ inline void SetPermissionsBoundaryArn(const Aws::String& value) { m_permissionsBoundaryArnHasBeenSet = true; m_permissionsBoundaryArn = value; } /** *

The ARN of the policy used to set the permissions boundary for the user or * role.

*/ inline void SetPermissionsBoundaryArn(Aws::String&& value) { m_permissionsBoundaryArnHasBeenSet = true; m_permissionsBoundaryArn = std::move(value); } /** *

The ARN of the policy used to set the permissions boundary for the user or * role.

*/ inline void SetPermissionsBoundaryArn(const char* value) { m_permissionsBoundaryArnHasBeenSet = true; m_permissionsBoundaryArn.assign(value); } /** *

The ARN of the policy used to set the permissions boundary for the user or * role.

*/ inline AttachedPermissionsBoundary& WithPermissionsBoundaryArn(const Aws::String& value) { SetPermissionsBoundaryArn(value); return *this;} /** *

The ARN of the policy used to set the permissions boundary for the user or * role.

*/ inline AttachedPermissionsBoundary& WithPermissionsBoundaryArn(Aws::String&& value) { SetPermissionsBoundaryArn(std::move(value)); return *this;} /** *

The ARN of the policy used to set the permissions boundary for the user or * role.

*/ inline AttachedPermissionsBoundary& WithPermissionsBoundaryArn(const char* value) { SetPermissionsBoundaryArn(value); return *this;} private: PermissionsBoundaryAttachmentType m_permissionsBoundaryType; bool m_permissionsBoundaryTypeHasBeenSet = false; Aws::String m_permissionsBoundaryArn; bool m_permissionsBoundaryArnHasBeenSet = false; }; } // namespace Model } // namespace IAM } // namespace Aws