/** * 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 AWS_IOT_API ThingDocument { public: ThingDocument(); ThingDocument(Aws::Utils::Json::JsonView jsonValue); ThingDocument& operator=(Aws::Utils::Json::JsonView jsonValue); 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 shadow.

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

The shadow.

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

The shadow.

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

The shadow.

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

The shadow.

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

The shadow.

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

The shadow.

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

The shadow.

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

Indicates whether the thing is connected to the AWS IoT service.

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

Indicates whether the thing is connected to the AWS IoT service.

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

Indicates whether the thing is connected to the AWS IoT service.

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

Indicates whether the thing is connected to the AWS IoT service.

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

Indicates whether the thing is connected to the AWS IoT service.

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

Indicates whether the thing is connected to the AWS IoT service.

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