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

Information about a document attribute. You can use document attributes as * facets.

For example, the document attribute or facet "Department" * includes the values "HR", "Engineering", and "Accounting". You can display these * values in the search results so that documents can be searched by * department.

You can display up to 10 facet values per facet for a query. * If you want to increase this limit, contact Support.

See Also:

* AWS API * Reference

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

The unique key for the document attribute.

*/ inline const Aws::String& GetDocumentAttributeKey() const{ return m_documentAttributeKey; } /** *

The unique key for the document attribute.

*/ inline bool DocumentAttributeKeyHasBeenSet() const { return m_documentAttributeKeyHasBeenSet; } /** *

The unique key for the document attribute.

*/ inline void SetDocumentAttributeKey(const Aws::String& value) { m_documentAttributeKeyHasBeenSet = true; m_documentAttributeKey = value; } /** *

The unique key for the document attribute.

*/ inline void SetDocumentAttributeKey(Aws::String&& value) { m_documentAttributeKeyHasBeenSet = true; m_documentAttributeKey = std::move(value); } /** *

The unique key for the document attribute.

*/ inline void SetDocumentAttributeKey(const char* value) { m_documentAttributeKeyHasBeenSet = true; m_documentAttributeKey.assign(value); } /** *

The unique key for the document attribute.

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

The unique key for the document attribute.

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

The unique key for the document attribute.

*/ inline Facet& WithDocumentAttributeKey(const char* value) { SetDocumentAttributeKey(value); return *this;} /** *

An array of document attributes that are nested facets within a facet.

*

For example, the document attribute or facet "Department" includes a value * called "Engineering". In addition, the document attribute or facet * "SubDepartment" includes the values "Frontend" and "Backend" for documents * assigned to "Engineering". You can display nested facets in the search results * so that documents can be searched not only by department but also by a sub * department within a department. This helps your users further narrow their * search.

You can only have one nested facet within a facet. If you want to * increase this limit, contact Support.

*/ inline const Aws::Vector& GetFacets() const{ return m_facets; } /** *

An array of document attributes that are nested facets within a facet.

*

For example, the document attribute or facet "Department" includes a value * called "Engineering". In addition, the document attribute or facet * "SubDepartment" includes the values "Frontend" and "Backend" for documents * assigned to "Engineering". You can display nested facets in the search results * so that documents can be searched not only by department but also by a sub * department within a department. This helps your users further narrow their * search.

You can only have one nested facet within a facet. If you want to * increase this limit, contact Support.

*/ inline bool FacetsHasBeenSet() const { return m_facetsHasBeenSet; } /** *

An array of document attributes that are nested facets within a facet.

*

For example, the document attribute or facet "Department" includes a value * called "Engineering". In addition, the document attribute or facet * "SubDepartment" includes the values "Frontend" and "Backend" for documents * assigned to "Engineering". You can display nested facets in the search results * so that documents can be searched not only by department but also by a sub * department within a department. This helps your users further narrow their * search.

You can only have one nested facet within a facet. If you want to * increase this limit, contact Support.

*/ inline void SetFacets(const Aws::Vector& value) { m_facetsHasBeenSet = true; m_facets = value; } /** *

An array of document attributes that are nested facets within a facet.

*

For example, the document attribute or facet "Department" includes a value * called "Engineering". In addition, the document attribute or facet * "SubDepartment" includes the values "Frontend" and "Backend" for documents * assigned to "Engineering". You can display nested facets in the search results * so that documents can be searched not only by department but also by a sub * department within a department. This helps your users further narrow their * search.

You can only have one nested facet within a facet. If you want to * increase this limit, contact Support.

*/ inline void SetFacets(Aws::Vector&& value) { m_facetsHasBeenSet = true; m_facets = std::move(value); } /** *

An array of document attributes that are nested facets within a facet.

*

For example, the document attribute or facet "Department" includes a value * called "Engineering". In addition, the document attribute or facet * "SubDepartment" includes the values "Frontend" and "Backend" for documents * assigned to "Engineering". You can display nested facets in the search results * so that documents can be searched not only by department but also by a sub * department within a department. This helps your users further narrow their * search.

You can only have one nested facet within a facet. If you want to * increase this limit, contact Support.

*/ inline Facet& WithFacets(const Aws::Vector& value) { SetFacets(value); return *this;} /** *

An array of document attributes that are nested facets within a facet.

*

For example, the document attribute or facet "Department" includes a value * called "Engineering". In addition, the document attribute or facet * "SubDepartment" includes the values "Frontend" and "Backend" for documents * assigned to "Engineering". You can display nested facets in the search results * so that documents can be searched not only by department but also by a sub * department within a department. This helps your users further narrow their * search.

You can only have one nested facet within a facet. If you want to * increase this limit, contact Support.

*/ inline Facet& WithFacets(Aws::Vector&& value) { SetFacets(std::move(value)); return *this;} /** *

An array of document attributes that are nested facets within a facet.

*

For example, the document attribute or facet "Department" includes a value * called "Engineering". In addition, the document attribute or facet * "SubDepartment" includes the values "Frontend" and "Backend" for documents * assigned to "Engineering". You can display nested facets in the search results * so that documents can be searched not only by department but also by a sub * department within a department. This helps your users further narrow their * search.

You can only have one nested facet within a facet. If you want to * increase this limit, contact Support.

*/ inline Facet& AddFacets(const Facet& value) { m_facetsHasBeenSet = true; m_facets.push_back(value); return *this; } /** *

An array of document attributes that are nested facets within a facet.

*

For example, the document attribute or facet "Department" includes a value * called "Engineering". In addition, the document attribute or facet * "SubDepartment" includes the values "Frontend" and "Backend" for documents * assigned to "Engineering". You can display nested facets in the search results * so that documents can be searched not only by department but also by a sub * department within a department. This helps your users further narrow their * search.

You can only have one nested facet within a facet. If you want to * increase this limit, contact Support.

*/ inline Facet& AddFacets(Facet&& value) { m_facetsHasBeenSet = true; m_facets.push_back(std::move(value)); return *this; } /** *

Maximum number of facet values per facet. The default is 10. You can use this * to limit the number of facet values to less than 10. If you want to increase the * default, contact Support.

*/ inline int GetMaxResults() const{ return m_maxResults; } /** *

Maximum number of facet values per facet. The default is 10. You can use this * to limit the number of facet values to less than 10. If you want to increase the * default, contact Support.

*/ inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; } /** *

Maximum number of facet values per facet. The default is 10. You can use this * to limit the number of facet values to less than 10. If you want to increase the * default, contact Support.

*/ inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; } /** *

Maximum number of facet values per facet. The default is 10. You can use this * to limit the number of facet values to less than 10. If you want to increase the * default, contact Support.

*/ inline Facet& WithMaxResults(int value) { SetMaxResults(value); return *this;} private: Aws::String m_documentAttributeKey; bool m_documentAttributeKeyHasBeenSet = false; Aws::Vector m_facets; bool m_facetsHasBeenSet = false; int m_maxResults; bool m_maxResultsHasBeenSet = false; }; } // namespace Model } // namespace kendra } // namespace Aws