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

An attribute that is associated with the Facet.

See * Also:

AWS * API Reference

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

The name of the facet attribute.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the facet attribute.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the facet attribute.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the facet attribute.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the facet attribute.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the facet attribute.

*/ inline FacetAttribute& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the facet attribute.

*/ inline FacetAttribute& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the facet attribute.

*/ inline FacetAttribute& WithName(const char* value) { SetName(value); return *this;} /** *

A facet attribute consists of either a definition or a reference. This * structure contains the attribute definition. See Attribute * References for more information.

*/ inline const FacetAttributeDefinition& GetAttributeDefinition() const{ return m_attributeDefinition; } /** *

A facet attribute consists of either a definition or a reference. This * structure contains the attribute definition. See Attribute * References for more information.

*/ inline bool AttributeDefinitionHasBeenSet() const { return m_attributeDefinitionHasBeenSet; } /** *

A facet attribute consists of either a definition or a reference. This * structure contains the attribute definition. See Attribute * References for more information.

*/ inline void SetAttributeDefinition(const FacetAttributeDefinition& value) { m_attributeDefinitionHasBeenSet = true; m_attributeDefinition = value; } /** *

A facet attribute consists of either a definition or a reference. This * structure contains the attribute definition. See Attribute * References for more information.

*/ inline void SetAttributeDefinition(FacetAttributeDefinition&& value) { m_attributeDefinitionHasBeenSet = true; m_attributeDefinition = std::move(value); } /** *

A facet attribute consists of either a definition or a reference. This * structure contains the attribute definition. See Attribute * References for more information.

*/ inline FacetAttribute& WithAttributeDefinition(const FacetAttributeDefinition& value) { SetAttributeDefinition(value); return *this;} /** *

A facet attribute consists of either a definition or a reference. This * structure contains the attribute definition. See Attribute * References for more information.

*/ inline FacetAttribute& WithAttributeDefinition(FacetAttributeDefinition&& value) { SetAttributeDefinition(std::move(value)); return *this;} /** *

An attribute reference that is associated with the attribute. See Attribute * References for more information.

*/ inline const FacetAttributeReference& GetAttributeReference() const{ return m_attributeReference; } /** *

An attribute reference that is associated with the attribute. See Attribute * References for more information.

*/ inline bool AttributeReferenceHasBeenSet() const { return m_attributeReferenceHasBeenSet; } /** *

An attribute reference that is associated with the attribute. See Attribute * References for more information.

*/ inline void SetAttributeReference(const FacetAttributeReference& value) { m_attributeReferenceHasBeenSet = true; m_attributeReference = value; } /** *

An attribute reference that is associated with the attribute. See Attribute * References for more information.

*/ inline void SetAttributeReference(FacetAttributeReference&& value) { m_attributeReferenceHasBeenSet = true; m_attributeReference = std::move(value); } /** *

An attribute reference that is associated with the attribute. See Attribute * References for more information.

*/ inline FacetAttribute& WithAttributeReference(const FacetAttributeReference& value) { SetAttributeReference(value); return *this;} /** *

An attribute reference that is associated with the attribute. See Attribute * References for more information.

*/ inline FacetAttribute& WithAttributeReference(FacetAttributeReference&& value) { SetAttributeReference(std::move(value)); return *this;} /** *

The required behavior of the FacetAttribute.

*/ inline const RequiredAttributeBehavior& GetRequiredBehavior() const{ return m_requiredBehavior; } /** *

The required behavior of the FacetAttribute.

*/ inline bool RequiredBehaviorHasBeenSet() const { return m_requiredBehaviorHasBeenSet; } /** *

The required behavior of the FacetAttribute.

*/ inline void SetRequiredBehavior(const RequiredAttributeBehavior& value) { m_requiredBehaviorHasBeenSet = true; m_requiredBehavior = value; } /** *

The required behavior of the FacetAttribute.

*/ inline void SetRequiredBehavior(RequiredAttributeBehavior&& value) { m_requiredBehaviorHasBeenSet = true; m_requiredBehavior = std::move(value); } /** *

The required behavior of the FacetAttribute.

*/ inline FacetAttribute& WithRequiredBehavior(const RequiredAttributeBehavior& value) { SetRequiredBehavior(value); return *this;} /** *

The required behavior of the FacetAttribute.

*/ inline FacetAttribute& WithRequiredBehavior(RequiredAttributeBehavior&& value) { SetRequiredBehavior(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; FacetAttributeDefinition m_attributeDefinition; bool m_attributeDefinitionHasBeenSet = false; FacetAttributeReference m_attributeReference; bool m_attributeReferenceHasBeenSet = false; RequiredAttributeBehavior m_requiredBehavior; bool m_requiredBehaviorHasBeenSet = false; }; } // namespace Model } // namespace CloudDirectory } // namespace Aws