/** * 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 VerifiedPermissions { namespace Model { /** *

Contains information about a principal or resource that can be referenced in * a Cedar policy.

This data type is used as part of the PolicyFilter * structure that is used as a request parameter for the ListPolicies * operation..

See Also:

AWS * API Reference

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

Used to indicate that a principal or resource is not specified. This can be * used to search for policies that are not associated with a specific principal or * resource.

*/ inline bool GetUnspecified() const{ return m_unspecified; } /** *

Used to indicate that a principal or resource is not specified. This can be * used to search for policies that are not associated with a specific principal or * resource.

*/ inline bool UnspecifiedHasBeenSet() const { return m_unspecifiedHasBeenSet; } /** *

Used to indicate that a principal or resource is not specified. This can be * used to search for policies that are not associated with a specific principal or * resource.

*/ inline void SetUnspecified(bool value) { m_unspecifiedHasBeenSet = true; m_unspecified = value; } /** *

Used to indicate that a principal or resource is not specified. This can be * used to search for policies that are not associated with a specific principal or * resource.

*/ inline EntityReference& WithUnspecified(bool value) { SetUnspecified(value); return *this;} /** *

The identifier of the entity. It can consist of either an EntityType and * EntityId, a principal, or a resource.

*/ inline const EntityIdentifier& GetIdentifier() const{ return m_identifier; } /** *

The identifier of the entity. It can consist of either an EntityType and * EntityId, a principal, or a resource.

*/ inline bool IdentifierHasBeenSet() const { return m_identifierHasBeenSet; } /** *

The identifier of the entity. It can consist of either an EntityType and * EntityId, a principal, or a resource.

*/ inline void SetIdentifier(const EntityIdentifier& value) { m_identifierHasBeenSet = true; m_identifier = value; } /** *

The identifier of the entity. It can consist of either an EntityType and * EntityId, a principal, or a resource.

*/ inline void SetIdentifier(EntityIdentifier&& value) { m_identifierHasBeenSet = true; m_identifier = std::move(value); } /** *

The identifier of the entity. It can consist of either an EntityType and * EntityId, a principal, or a resource.

*/ inline EntityReference& WithIdentifier(const EntityIdentifier& value) { SetIdentifier(value); return *this;} /** *

The identifier of the entity. It can consist of either an EntityType and * EntityId, a principal, or a resource.

*/ inline EntityReference& WithIdentifier(EntityIdentifier&& value) { SetIdentifier(std::move(value)); return *this;} private: bool m_unspecified; bool m_unspecifiedHasBeenSet = false; EntityIdentifier m_identifier; bool m_identifierHasBeenSet = false; }; } // namespace Model } // namespace VerifiedPermissions } // namespace Aws