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

The thing indexing configuration. For more information, see Managing * Thing Indexing.

See Also:

AWS * API Reference

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

Thing indexing mode. Valid values are:

  • REGISTRY – Your thing * index contains registry data only.

  • REGISTRY_AND_SHADOW - Your * thing index contains registry and shadow data.

  • OFF - Thing * indexing is disabled.

*/ inline const ThingIndexingMode& GetThingIndexingMode() const{ return m_thingIndexingMode; } /** *

Thing indexing mode. Valid values are:

  • REGISTRY – Your thing * index contains registry data only.

  • REGISTRY_AND_SHADOW - Your * thing index contains registry and shadow data.

  • OFF - Thing * indexing is disabled.

*/ inline bool ThingIndexingModeHasBeenSet() const { return m_thingIndexingModeHasBeenSet; } /** *

Thing indexing mode. Valid values are:

  • REGISTRY – Your thing * index contains registry data only.

  • REGISTRY_AND_SHADOW - Your * thing index contains registry and shadow data.

  • OFF - Thing * indexing is disabled.

*/ inline void SetThingIndexingMode(const ThingIndexingMode& value) { m_thingIndexingModeHasBeenSet = true; m_thingIndexingMode = value; } /** *

Thing indexing mode. Valid values are:

  • REGISTRY – Your thing * index contains registry data only.

  • REGISTRY_AND_SHADOW - Your * thing index contains registry and shadow data.

  • OFF - Thing * indexing is disabled.

*/ inline void SetThingIndexingMode(ThingIndexingMode&& value) { m_thingIndexingModeHasBeenSet = true; m_thingIndexingMode = std::move(value); } /** *

Thing indexing mode. Valid values are:

  • REGISTRY – Your thing * index contains registry data only.

  • REGISTRY_AND_SHADOW - Your * thing index contains registry and shadow data.

  • OFF - Thing * indexing is disabled.

*/ inline ThingIndexingConfiguration& WithThingIndexingMode(const ThingIndexingMode& value) { SetThingIndexingMode(value); return *this;} /** *

Thing indexing mode. Valid values are:

  • REGISTRY – Your thing * index contains registry data only.

  • REGISTRY_AND_SHADOW - Your * thing index contains registry and shadow data.

  • OFF - Thing * indexing is disabled.

*/ inline ThingIndexingConfiguration& WithThingIndexingMode(ThingIndexingMode&& value) { SetThingIndexingMode(std::move(value)); return *this;} /** *

Thing connectivity indexing mode. Valid values are:

  • STATUS * – Your thing index contains connectivity status. To enable thing connectivity * indexing, thingIndexMode must not be set to OFF.

  • OFF - * Thing connectivity status indexing is disabled.

*/ inline const ThingConnectivityIndexingMode& GetThingConnectivityIndexingMode() const{ return m_thingConnectivityIndexingMode; } /** *

Thing connectivity indexing mode. Valid values are:

  • STATUS * – Your thing index contains connectivity status. To enable thing connectivity * indexing, thingIndexMode must not be set to OFF.

  • OFF - * Thing connectivity status indexing is disabled.

*/ inline bool ThingConnectivityIndexingModeHasBeenSet() const { return m_thingConnectivityIndexingModeHasBeenSet; } /** *

Thing connectivity indexing mode. Valid values are:

  • STATUS * – Your thing index contains connectivity status. To enable thing connectivity * indexing, thingIndexMode must not be set to OFF.

  • OFF - * Thing connectivity status indexing is disabled.

*/ inline void SetThingConnectivityIndexingMode(const ThingConnectivityIndexingMode& value) { m_thingConnectivityIndexingModeHasBeenSet = true; m_thingConnectivityIndexingMode = value; } /** *

Thing connectivity indexing mode. Valid values are:

  • STATUS * – Your thing index contains connectivity status. To enable thing connectivity * indexing, thingIndexMode must not be set to OFF.

  • OFF - * Thing connectivity status indexing is disabled.

*/ inline void SetThingConnectivityIndexingMode(ThingConnectivityIndexingMode&& value) { m_thingConnectivityIndexingModeHasBeenSet = true; m_thingConnectivityIndexingMode = std::move(value); } /** *

Thing connectivity indexing mode. Valid values are:

  • STATUS * – Your thing index contains connectivity status. To enable thing connectivity * indexing, thingIndexMode must not be set to OFF.

  • OFF - * Thing connectivity status indexing is disabled.

*/ inline ThingIndexingConfiguration& WithThingConnectivityIndexingMode(const ThingConnectivityIndexingMode& value) { SetThingConnectivityIndexingMode(value); return *this;} /** *

Thing connectivity indexing mode. Valid values are:

  • STATUS * – Your thing index contains connectivity status. To enable thing connectivity * indexing, thingIndexMode must not be set to OFF.

  • OFF - * Thing connectivity status indexing is disabled.

*/ inline ThingIndexingConfiguration& WithThingConnectivityIndexingMode(ThingConnectivityIndexingMode&& value) { SetThingConnectivityIndexingMode(std::move(value)); return *this;} /** *

Device Defender indexing mode. Valid values are:

  • VIOLATIONS * – Your thing index contains Device Defender violations. To enable Device * Defender indexing, deviceDefenderIndexingMode must not be set to OFF.

    *
  • OFF - Device Defender indexing is disabled.

For * more information about Device Defender violations, see Device * Defender Detect.

*/ inline const DeviceDefenderIndexingMode& GetDeviceDefenderIndexingMode() const{ return m_deviceDefenderIndexingMode; } /** *

Device Defender indexing mode. Valid values are:

  • VIOLATIONS * – Your thing index contains Device Defender violations. To enable Device * Defender indexing, deviceDefenderIndexingMode must not be set to OFF.

    *
  • OFF - Device Defender indexing is disabled.

For * more information about Device Defender violations, see Device * Defender Detect.

*/ inline bool DeviceDefenderIndexingModeHasBeenSet() const { return m_deviceDefenderIndexingModeHasBeenSet; } /** *

Device Defender indexing mode. Valid values are:

  • VIOLATIONS * – Your thing index contains Device Defender violations. To enable Device * Defender indexing, deviceDefenderIndexingMode must not be set to OFF.

    *
  • OFF - Device Defender indexing is disabled.

For * more information about Device Defender violations, see Device * Defender Detect.

*/ inline void SetDeviceDefenderIndexingMode(const DeviceDefenderIndexingMode& value) { m_deviceDefenderIndexingModeHasBeenSet = true; m_deviceDefenderIndexingMode = value; } /** *

Device Defender indexing mode. Valid values are:

  • VIOLATIONS * – Your thing index contains Device Defender violations. To enable Device * Defender indexing, deviceDefenderIndexingMode must not be set to OFF.

    *
  • OFF - Device Defender indexing is disabled.

For * more information about Device Defender violations, see Device * Defender Detect.

*/ inline void SetDeviceDefenderIndexingMode(DeviceDefenderIndexingMode&& value) { m_deviceDefenderIndexingModeHasBeenSet = true; m_deviceDefenderIndexingMode = std::move(value); } /** *

Device Defender indexing mode. Valid values are:

  • VIOLATIONS * – Your thing index contains Device Defender violations. To enable Device * Defender indexing, deviceDefenderIndexingMode must not be set to OFF.

    *
  • OFF - Device Defender indexing is disabled.

For * more information about Device Defender violations, see Device * Defender Detect.

*/ inline ThingIndexingConfiguration& WithDeviceDefenderIndexingMode(const DeviceDefenderIndexingMode& value) { SetDeviceDefenderIndexingMode(value); return *this;} /** *

Device Defender indexing mode. Valid values are:

  • VIOLATIONS * – Your thing index contains Device Defender violations. To enable Device * Defender indexing, deviceDefenderIndexingMode must not be set to OFF.

    *
  • OFF - Device Defender indexing is disabled.

For * more information about Device Defender violations, see Device * Defender Detect.

*/ inline ThingIndexingConfiguration& WithDeviceDefenderIndexingMode(DeviceDefenderIndexingMode&& value) { SetDeviceDefenderIndexingMode(std::move(value)); return *this;} /** *

Named shadow indexing mode. Valid values are:

  • ON – Your * thing index contains named shadow. To enable thing named shadow indexing, * namedShadowIndexingMode must not be set to OFF.

  • OFF - * Named shadow indexing is disabled.

For more information about * Shadows, see IoT * Device Shadow service.

*/ inline const NamedShadowIndexingMode& GetNamedShadowIndexingMode() const{ return m_namedShadowIndexingMode; } /** *

Named shadow indexing mode. Valid values are:

  • ON – Your * thing index contains named shadow. To enable thing named shadow indexing, * namedShadowIndexingMode must not be set to OFF.

  • OFF - * Named shadow indexing is disabled.

For more information about * Shadows, see IoT * Device Shadow service.

*/ inline bool NamedShadowIndexingModeHasBeenSet() const { return m_namedShadowIndexingModeHasBeenSet; } /** *

Named shadow indexing mode. Valid values are:

  • ON – Your * thing index contains named shadow. To enable thing named shadow indexing, * namedShadowIndexingMode must not be set to OFF.

  • OFF - * Named shadow indexing is disabled.

For more information about * Shadows, see IoT * Device Shadow service.

*/ inline void SetNamedShadowIndexingMode(const NamedShadowIndexingMode& value) { m_namedShadowIndexingModeHasBeenSet = true; m_namedShadowIndexingMode = value; } /** *

Named shadow indexing mode. Valid values are:

  • ON – Your * thing index contains named shadow. To enable thing named shadow indexing, * namedShadowIndexingMode must not be set to OFF.

  • OFF - * Named shadow indexing is disabled.

For more information about * Shadows, see IoT * Device Shadow service.

*/ inline void SetNamedShadowIndexingMode(NamedShadowIndexingMode&& value) { m_namedShadowIndexingModeHasBeenSet = true; m_namedShadowIndexingMode = std::move(value); } /** *

Named shadow indexing mode. Valid values are:

  • ON – Your * thing index contains named shadow. To enable thing named shadow indexing, * namedShadowIndexingMode must not be set to OFF.

  • OFF - * Named shadow indexing is disabled.

For more information about * Shadows, see IoT * Device Shadow service.

*/ inline ThingIndexingConfiguration& WithNamedShadowIndexingMode(const NamedShadowIndexingMode& value) { SetNamedShadowIndexingMode(value); return *this;} /** *

Named shadow indexing mode. Valid values are:

  • ON – Your * thing index contains named shadow. To enable thing named shadow indexing, * namedShadowIndexingMode must not be set to OFF.

  • OFF - * Named shadow indexing is disabled.

For more information about * Shadows, see IoT * Device Shadow service.

*/ inline ThingIndexingConfiguration& WithNamedShadowIndexingMode(NamedShadowIndexingMode&& value) { SetNamedShadowIndexingMode(std::move(value)); return *this;} /** *

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service.

*/ 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.

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

Contains fields that are indexed and whose types are already known by the * Fleet Indexing service.

*/ 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.

*/ 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.

*/ inline ThingIndexingConfiguration& 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.

*/ inline ThingIndexingConfiguration& 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.

*/ inline ThingIndexingConfiguration& 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.

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

Contains custom field names and their data type.

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

Contains custom field names and their data type.

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

Contains custom field names and their data type.

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

Contains custom field names and their data type.

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

Contains custom field names and their data type.

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

Contains custom field names and their data type.

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

Contains custom field names and their data type.

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

Contains custom field names and their data type.

*/ inline ThingIndexingConfiguration& AddCustomFields(Field&& value) { m_customFieldsHasBeenSet = true; m_customFields.push_back(std::move(value)); return *this; } /** *

Provides additional filters for specific data sources. Named shadow is the * only data source that currently supports and requires a filter. To add named * shadows to your fleet indexing configuration, set * namedShadowIndexingMode to be ON and specify your * shadow names in filter.

*/ inline const IndexingFilter& GetFilter() const{ return m_filter; } /** *

Provides additional filters for specific data sources. Named shadow is the * only data source that currently supports and requires a filter. To add named * shadows to your fleet indexing configuration, set * namedShadowIndexingMode to be ON and specify your * shadow names in filter.

*/ inline bool FilterHasBeenSet() const { return m_filterHasBeenSet; } /** *

Provides additional filters for specific data sources. Named shadow is the * only data source that currently supports and requires a filter. To add named * shadows to your fleet indexing configuration, set * namedShadowIndexingMode to be ON and specify your * shadow names in filter.

*/ inline void SetFilter(const IndexingFilter& value) { m_filterHasBeenSet = true; m_filter = value; } /** *

Provides additional filters for specific data sources. Named shadow is the * only data source that currently supports and requires a filter. To add named * shadows to your fleet indexing configuration, set * namedShadowIndexingMode to be ON and specify your * shadow names in filter.

*/ inline void SetFilter(IndexingFilter&& value) { m_filterHasBeenSet = true; m_filter = std::move(value); } /** *

Provides additional filters for specific data sources. Named shadow is the * only data source that currently supports and requires a filter. To add named * shadows to your fleet indexing configuration, set * namedShadowIndexingMode to be ON and specify your * shadow names in filter.

*/ inline ThingIndexingConfiguration& WithFilter(const IndexingFilter& value) { SetFilter(value); return *this;} /** *

Provides additional filters for specific data sources. Named shadow is the * only data source that currently supports and requires a filter. To add named * shadows to your fleet indexing configuration, set * namedShadowIndexingMode to be ON and specify your * shadow names in filter.

*/ inline ThingIndexingConfiguration& WithFilter(IndexingFilter&& value) { SetFilter(std::move(value)); return *this;} private: ThingIndexingMode m_thingIndexingMode; bool m_thingIndexingModeHasBeenSet = false; ThingConnectivityIndexingMode m_thingConnectivityIndexingMode; bool m_thingConnectivityIndexingModeHasBeenSet = false; DeviceDefenderIndexingMode m_deviceDefenderIndexingMode; bool m_deviceDefenderIndexingModeHasBeenSet = false; NamedShadowIndexingMode m_namedShadowIndexingMode; bool m_namedShadowIndexingModeHasBeenSet = false; Aws::Vector m_managedFields; bool m_managedFieldsHasBeenSet = false; Aws::Vector m_customFields; bool m_customFieldsHasBeenSet = false; IndexingFilter m_filter; bool m_filterHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws