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

Thing group indexing configuration.

See Also:

AWS * API Reference

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

Thing group indexing mode.

*/ inline const ThingGroupIndexingMode& GetThingGroupIndexingMode() const{ return m_thingGroupIndexingMode; } /** *

Thing group indexing mode.

*/ inline bool ThingGroupIndexingModeHasBeenSet() const { return m_thingGroupIndexingModeHasBeenSet; } /** *

Thing group indexing mode.

*/ inline void SetThingGroupIndexingMode(const ThingGroupIndexingMode& value) { m_thingGroupIndexingModeHasBeenSet = true; m_thingGroupIndexingMode = value; } /** *

Thing group indexing mode.

*/ inline void SetThingGroupIndexingMode(ThingGroupIndexingMode&& value) { m_thingGroupIndexingModeHasBeenSet = true; m_thingGroupIndexingMode = std::move(value); } /** *

Thing group indexing mode.

*/ inline ThingGroupIndexingConfiguration& WithThingGroupIndexingMode(const ThingGroupIndexingMode& value) { SetThingGroupIndexingMode(value); return *this;} /** *

Thing group indexing mode.

*/ inline ThingGroupIndexingConfiguration& WithThingGroupIndexingMode(ThingGroupIndexingMode&& value) { SetThingGroupIndexingMode(std::move(value)); return *this;} /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service. This is an optional field. For more information, see Managed * fields in the Amazon Web Services IoT Core Developer Guide.

*/ inline const Aws::Vector& GetManagedFields() const{ return m_managedFields; } /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service. This is an optional field. For more information, see Managed * fields in the Amazon Web Services IoT Core Developer Guide.

*/ inline bool ManagedFieldsHasBeenSet() const { return m_managedFieldsHasBeenSet; } /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service. This is an optional field. For more information, see Managed * fields in the Amazon Web Services IoT Core Developer Guide.

*/ inline void SetManagedFields(const Aws::Vector& value) { m_managedFieldsHasBeenSet = true; m_managedFields = value; } /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service. This is an optional field. For more information, see Managed * fields in the Amazon Web Services IoT Core Developer Guide.

*/ inline void SetManagedFields(Aws::Vector&& value) { m_managedFieldsHasBeenSet = true; m_managedFields = std::move(value); } /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service. This is an optional field. For more information, see Managed * fields in the Amazon Web Services IoT Core Developer Guide.

*/ inline ThingGroupIndexingConfiguration& WithManagedFields(const Aws::Vector& value) { SetManagedFields(value); return *this;} /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service. This is an optional field. For more information, see Managed * fields in the Amazon Web Services IoT Core Developer Guide.

*/ inline ThingGroupIndexingConfiguration& WithManagedFields(Aws::Vector&& value) { SetManagedFields(std::move(value)); return *this;} /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service. This is an optional field. For more information, see Managed * fields in the Amazon Web Services IoT Core Developer Guide.

*/ inline ThingGroupIndexingConfiguration& AddManagedFields(const Field& value) { m_managedFieldsHasBeenSet = true; m_managedFields.push_back(value); return *this; } /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service. This is an optional field. For more information, see Managed * fields in the Amazon Web Services IoT Core Developer Guide.

*/ inline ThingGroupIndexingConfiguration& AddManagedFields(Field&& value) { m_managedFieldsHasBeenSet = true; m_managedFields.push_back(std::move(value)); return *this; } /** *

A list of thing group fields to index. This list cannot contain any managed * fields. Use the GetIndexingConfiguration API to get a list of managed * fields.

Contains custom field names and their data type.

*/ inline const Aws::Vector& GetCustomFields() const{ return m_customFields; } /** *

A list of thing group fields to index. This list cannot contain any managed * fields. Use the GetIndexingConfiguration API to get a list of managed * fields.

Contains custom field names and their data type.

*/ inline bool CustomFieldsHasBeenSet() const { return m_customFieldsHasBeenSet; } /** *

A list of thing group fields to index. This list cannot contain any managed * fields. Use the GetIndexingConfiguration API to get a list of managed * fields.

Contains custom field names and their data type.

*/ inline void SetCustomFields(const Aws::Vector& value) { m_customFieldsHasBeenSet = true; m_customFields = value; } /** *

A list of thing group fields to index. This list cannot contain any managed * fields. Use the GetIndexingConfiguration API to get a list of managed * fields.

Contains custom field names and their data type.

*/ inline void SetCustomFields(Aws::Vector&& value) { m_customFieldsHasBeenSet = true; m_customFields = std::move(value); } /** *

A list of thing group fields to index. This list cannot contain any managed * fields. Use the GetIndexingConfiguration API to get a list of managed * fields.

Contains custom field names and their data type.

*/ inline ThingGroupIndexingConfiguration& WithCustomFields(const Aws::Vector& value) { SetCustomFields(value); return *this;} /** *

A list of thing group fields to index. This list cannot contain any managed * fields. Use the GetIndexingConfiguration API to get a list of managed * fields.

Contains custom field names and their data type.

*/ inline ThingGroupIndexingConfiguration& WithCustomFields(Aws::Vector&& value) { SetCustomFields(std::move(value)); return *this;} /** *

A list of thing group fields to index. This list cannot contain any managed * fields. Use the GetIndexingConfiguration API to get a list of managed * fields.

Contains custom field names and their data type.

*/ inline ThingGroupIndexingConfiguration& AddCustomFields(const Field& value) { m_customFieldsHasBeenSet = true; m_customFields.push_back(value); return *this; } /** *

A list of thing group fields to index. This list cannot contain any managed * fields. Use the GetIndexingConfiguration API to get a list of managed * fields.

Contains custom field names and their data type.

*/ inline ThingGroupIndexingConfiguration& AddCustomFields(Field&& value) { m_customFieldsHasBeenSet = true; m_customFields.push_back(std::move(value)); return *this; } private: ThingGroupIndexingMode m_thingGroupIndexingMode; bool m_thingGroupIndexingModeHasBeenSet = false; Aws::Vector m_managedFields; bool m_managedFieldsHasBeenSet = false; Aws::Vector m_customFields; bool m_customFieldsHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws