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

The thing search index document.

See Also:

AWS * API Reference

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

The thing name.

*/ inline const Aws::String& GetThingName() const{ return m_thingName; } /** *

The thing name.

*/ inline bool ThingNameHasBeenSet() const { return m_thingNameHasBeenSet; } /** *

The thing name.

*/ inline void SetThingName(const Aws::String& value) { m_thingNameHasBeenSet = true; m_thingName = value; } /** *

The thing name.

*/ inline void SetThingName(Aws::String&& value) { m_thingNameHasBeenSet = true; m_thingName = std::move(value); } /** *

The thing name.

*/ inline void SetThingName(const char* value) { m_thingNameHasBeenSet = true; m_thingName.assign(value); } /** *

The thing name.

*/ inline ThingDocument& WithThingName(const Aws::String& value) { SetThingName(value); return *this;} /** *

The thing name.

*/ inline ThingDocument& WithThingName(Aws::String&& value) { SetThingName(std::move(value)); return *this;} /** *

The thing name.

*/ inline ThingDocument& WithThingName(const char* value) { SetThingName(value); return *this;} /** *

The thing ID.

*/ inline const Aws::String& GetThingId() const{ return m_thingId; } /** *

The thing ID.

*/ inline bool ThingIdHasBeenSet() const { return m_thingIdHasBeenSet; } /** *

The thing ID.

*/ inline void SetThingId(const Aws::String& value) { m_thingIdHasBeenSet = true; m_thingId = value; } /** *

The thing ID.

*/ inline void SetThingId(Aws::String&& value) { m_thingIdHasBeenSet = true; m_thingId = std::move(value); } /** *

The thing ID.

*/ inline void SetThingId(const char* value) { m_thingIdHasBeenSet = true; m_thingId.assign(value); } /** *

The thing ID.

*/ inline ThingDocument& WithThingId(const Aws::String& value) { SetThingId(value); return *this;} /** *

The thing ID.

*/ inline ThingDocument& WithThingId(Aws::String&& value) { SetThingId(std::move(value)); return *this;} /** *

The thing ID.

*/ inline ThingDocument& WithThingId(const char* value) { SetThingId(value); return *this;} /** *

The thing type name.

*/ inline const Aws::String& GetThingTypeName() const{ return m_thingTypeName; } /** *

The thing type name.

*/ inline bool ThingTypeNameHasBeenSet() const { return m_thingTypeNameHasBeenSet; } /** *

The thing type name.

*/ inline void SetThingTypeName(const Aws::String& value) { m_thingTypeNameHasBeenSet = true; m_thingTypeName = value; } /** *

The thing type name.

*/ inline void SetThingTypeName(Aws::String&& value) { m_thingTypeNameHasBeenSet = true; m_thingTypeName = std::move(value); } /** *

The thing type name.

*/ inline void SetThingTypeName(const char* value) { m_thingTypeNameHasBeenSet = true; m_thingTypeName.assign(value); } /** *

The thing type name.

*/ inline ThingDocument& WithThingTypeName(const Aws::String& value) { SetThingTypeName(value); return *this;} /** *

The thing type name.

*/ inline ThingDocument& WithThingTypeName(Aws::String&& value) { SetThingTypeName(std::move(value)); return *this;} /** *

The thing type name.

*/ inline ThingDocument& WithThingTypeName(const char* value) { SetThingTypeName(value); return *this;} /** *

Thing group names.

*/ inline const Aws::Vector& GetThingGroupNames() const{ return m_thingGroupNames; } /** *

Thing group names.

*/ inline bool ThingGroupNamesHasBeenSet() const { return m_thingGroupNamesHasBeenSet; } /** *

Thing group names.

*/ inline void SetThingGroupNames(const Aws::Vector& value) { m_thingGroupNamesHasBeenSet = true; m_thingGroupNames = value; } /** *

Thing group names.

*/ inline void SetThingGroupNames(Aws::Vector&& value) { m_thingGroupNamesHasBeenSet = true; m_thingGroupNames = std::move(value); } /** *

Thing group names.

*/ inline ThingDocument& WithThingGroupNames(const Aws::Vector& value) { SetThingGroupNames(value); return *this;} /** *

Thing group names.

*/ inline ThingDocument& WithThingGroupNames(Aws::Vector&& value) { SetThingGroupNames(std::move(value)); return *this;} /** *

Thing group names.

*/ inline ThingDocument& AddThingGroupNames(const Aws::String& value) { m_thingGroupNamesHasBeenSet = true; m_thingGroupNames.push_back(value); return *this; } /** *

Thing group names.

*/ inline ThingDocument& AddThingGroupNames(Aws::String&& value) { m_thingGroupNamesHasBeenSet = true; m_thingGroupNames.push_back(std::move(value)); return *this; } /** *

Thing group names.

*/ inline ThingDocument& AddThingGroupNames(const char* value) { m_thingGroupNamesHasBeenSet = true; m_thingGroupNames.push_back(value); return *this; } /** *

The attributes.

*/ inline const Aws::Map& GetAttributes() const{ return m_attributes; } /** *

The attributes.

*/ inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; } /** *

The attributes.

*/ inline void SetAttributes(const Aws::Map& value) { m_attributesHasBeenSet = true; m_attributes = value; } /** *

The attributes.

*/ inline void SetAttributes(Aws::Map&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); } /** *

The attributes.

*/ inline ThingDocument& WithAttributes(const Aws::Map& value) { SetAttributes(value); return *this;} /** *

The attributes.

*/ inline ThingDocument& WithAttributes(Aws::Map&& value) { SetAttributes(std::move(value)); return *this;} /** *

The attributes.

*/ inline ThingDocument& AddAttributes(const Aws::String& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

The attributes.

*/ inline ThingDocument& AddAttributes(Aws::String&& key, const Aws::String& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

The attributes.

*/ inline ThingDocument& AddAttributes(const Aws::String& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

The attributes.

*/ inline ThingDocument& AddAttributes(Aws::String&& key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), std::move(value)); return *this; } /** *

The attributes.

*/ inline ThingDocument& AddAttributes(const char* key, Aws::String&& value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, std::move(value)); return *this; } /** *

The attributes.

*/ inline ThingDocument& AddAttributes(Aws::String&& key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(std::move(key), value); return *this; } /** *

The attributes.

*/ inline ThingDocument& AddAttributes(const char* key, const char* value) { m_attributesHasBeenSet = true; m_attributes.emplace(key, value); return *this; } /** *

The unnamed shadow and named shadow.

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

*/ inline const Aws::String& GetShadow() const{ return m_shadow; } /** *

The unnamed shadow and named shadow.

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

*/ inline bool ShadowHasBeenSet() const { return m_shadowHasBeenSet; } /** *

The unnamed shadow and named shadow.

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

*/ inline void SetShadow(const Aws::String& value) { m_shadowHasBeenSet = true; m_shadow = value; } /** *

The unnamed shadow and named shadow.

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

*/ inline void SetShadow(Aws::String&& value) { m_shadowHasBeenSet = true; m_shadow = std::move(value); } /** *

The unnamed shadow and named shadow.

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

*/ inline void SetShadow(const char* value) { m_shadowHasBeenSet = true; m_shadow.assign(value); } /** *

The unnamed shadow and named shadow.

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

*/ inline ThingDocument& WithShadow(const Aws::String& value) { SetShadow(value); return *this;} /** *

The unnamed shadow and named shadow.

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

*/ inline ThingDocument& WithShadow(Aws::String&& value) { SetShadow(std::move(value)); return *this;} /** *

The unnamed shadow and named shadow.

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

*/ inline ThingDocument& WithShadow(const char* value) { SetShadow(value); return *this;} /** *

Contains Device Defender data.

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

*/ inline const Aws::String& GetDeviceDefender() const{ return m_deviceDefender; } /** *

Contains Device Defender data.

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

*/ inline bool DeviceDefenderHasBeenSet() const { return m_deviceDefenderHasBeenSet; } /** *

Contains Device Defender data.

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

*/ inline void SetDeviceDefender(const Aws::String& value) { m_deviceDefenderHasBeenSet = true; m_deviceDefender = value; } /** *

Contains Device Defender data.

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

*/ inline void SetDeviceDefender(Aws::String&& value) { m_deviceDefenderHasBeenSet = true; m_deviceDefender = std::move(value); } /** *

Contains Device Defender data.

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

*/ inline void SetDeviceDefender(const char* value) { m_deviceDefenderHasBeenSet = true; m_deviceDefender.assign(value); } /** *

Contains Device Defender data.

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

*/ inline ThingDocument& WithDeviceDefender(const Aws::String& value) { SetDeviceDefender(value); return *this;} /** *

Contains Device Defender data.

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

*/ inline ThingDocument& WithDeviceDefender(Aws::String&& value) { SetDeviceDefender(std::move(value)); return *this;} /** *

Contains Device Defender data.

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

*/ inline ThingDocument& WithDeviceDefender(const char* value) { SetDeviceDefender(value); return *this;} /** *

Indicates whether the thing is connected to the Amazon Web Services IoT Core * service.

*/ inline const ThingConnectivity& GetConnectivity() const{ return m_connectivity; } /** *

Indicates whether the thing is connected to the Amazon Web Services IoT Core * service.

*/ inline bool ConnectivityHasBeenSet() const { return m_connectivityHasBeenSet; } /** *

Indicates whether the thing is connected to the Amazon Web Services IoT Core * service.

*/ inline void SetConnectivity(const ThingConnectivity& value) { m_connectivityHasBeenSet = true; m_connectivity = value; } /** *

Indicates whether the thing is connected to the Amazon Web Services IoT Core * service.

*/ inline void SetConnectivity(ThingConnectivity&& value) { m_connectivityHasBeenSet = true; m_connectivity = std::move(value); } /** *

Indicates whether the thing is connected to the Amazon Web Services IoT Core * service.

*/ inline ThingDocument& WithConnectivity(const ThingConnectivity& value) { SetConnectivity(value); return *this;} /** *

Indicates whether the thing is connected to the Amazon Web Services IoT Core * service.

*/ inline ThingDocument& WithConnectivity(ThingConnectivity&& value) { SetConnectivity(std::move(value)); return *this;} private: Aws::String m_thingName; bool m_thingNameHasBeenSet = false; Aws::String m_thingId; bool m_thingIdHasBeenSet = false; Aws::String m_thingTypeName; bool m_thingTypeNameHasBeenSet = false; Aws::Vector m_thingGroupNames; bool m_thingGroupNamesHasBeenSet = false; Aws::Map m_attributes; bool m_attributesHasBeenSet = false; Aws::String m_shadow; bool m_shadowHasBeenSet = false; Aws::String m_deviceDefender; bool m_deviceDefenderHasBeenSet = false; ThingConnectivity m_connectivity; bool m_connectivityHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws