/** * 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 Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace CloudDirectory { namespace Model { /** *

A structure that contains Name, ARN, * Attributes, Rules, and * ObjectTypes. See Facets * for more information.

See Also:

AWS * API Reference

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

The name of the Facet.

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

The name of the Facet.

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

The name of the Facet.

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

The name of the Facet.

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

The name of the Facet.

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

The name of the Facet.

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

The name of the Facet.

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

The name of the Facet.

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

The object type that is associated with the facet. See * CreateFacetRequest$ObjectType for more details.

*/ inline const ObjectType& GetObjectType() const{ return m_objectType; } /** *

The object type that is associated with the facet. See * CreateFacetRequest$ObjectType for more details.

*/ inline bool ObjectTypeHasBeenSet() const { return m_objectTypeHasBeenSet; } /** *

The object type that is associated with the facet. See * CreateFacetRequest$ObjectType for more details.

*/ inline void SetObjectType(const ObjectType& value) { m_objectTypeHasBeenSet = true; m_objectType = value; } /** *

The object type that is associated with the facet. See * CreateFacetRequest$ObjectType for more details.

*/ inline void SetObjectType(ObjectType&& value) { m_objectTypeHasBeenSet = true; m_objectType = std::move(value); } /** *

The object type that is associated with the facet. See * CreateFacetRequest$ObjectType for more details.

*/ inline Facet& WithObjectType(const ObjectType& value) { SetObjectType(value); return *this;} /** *

The object type that is associated with the facet. See * CreateFacetRequest$ObjectType for more details.

*/ inline Facet& WithObjectType(ObjectType&& value) { SetObjectType(std::move(value)); return *this;} /** *

There are two different styles that you can define on any given facet, * Static and Dynamic. For static facets, all attributes * must be defined in the schema. For dynamic facets, attributes can be defined * during data plane operations.

*/ inline const FacetStyle& GetFacetStyle() const{ return m_facetStyle; } /** *

There are two different styles that you can define on any given facet, * Static and Dynamic. For static facets, all attributes * must be defined in the schema. For dynamic facets, attributes can be defined * during data plane operations.

*/ inline bool FacetStyleHasBeenSet() const { return m_facetStyleHasBeenSet; } /** *

There are two different styles that you can define on any given facet, * Static and Dynamic. For static facets, all attributes * must be defined in the schema. For dynamic facets, attributes can be defined * during data plane operations.

*/ inline void SetFacetStyle(const FacetStyle& value) { m_facetStyleHasBeenSet = true; m_facetStyle = value; } /** *

There are two different styles that you can define on any given facet, * Static and Dynamic. For static facets, all attributes * must be defined in the schema. For dynamic facets, attributes can be defined * during data plane operations.

*/ inline void SetFacetStyle(FacetStyle&& value) { m_facetStyleHasBeenSet = true; m_facetStyle = std::move(value); } /** *

There are two different styles that you can define on any given facet, * Static and Dynamic. For static facets, all attributes * must be defined in the schema. For dynamic facets, attributes can be defined * during data plane operations.

*/ inline Facet& WithFacetStyle(const FacetStyle& value) { SetFacetStyle(value); return *this;} /** *

There are two different styles that you can define on any given facet, * Static and Dynamic. For static facets, all attributes * must be defined in the schema. For dynamic facets, attributes can be defined * during data plane operations.

*/ inline Facet& WithFacetStyle(FacetStyle&& value) { SetFacetStyle(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; ObjectType m_objectType; bool m_objectTypeHasBeenSet = false; FacetStyle m_facetStyle; bool m_facetStyleHasBeenSet = false; }; } // namespace Model } // namespace CloudDirectory } // namespace Aws