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

The thing group search index document.

See Also:

AWS * API Reference

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

The thing group name.

*/ inline const Aws::String& GetThingGroupName() const{ return m_thingGroupName; } /** *

The thing group name.

*/ inline bool ThingGroupNameHasBeenSet() const { return m_thingGroupNameHasBeenSet; } /** *

The thing group name.

*/ inline void SetThingGroupName(const Aws::String& value) { m_thingGroupNameHasBeenSet = true; m_thingGroupName = value; } /** *

The thing group name.

*/ inline void SetThingGroupName(Aws::String&& value) { m_thingGroupNameHasBeenSet = true; m_thingGroupName = std::move(value); } /** *

The thing group name.

*/ inline void SetThingGroupName(const char* value) { m_thingGroupNameHasBeenSet = true; m_thingGroupName.assign(value); } /** *

The thing group name.

*/ inline ThingGroupDocument& WithThingGroupName(const Aws::String& value) { SetThingGroupName(value); return *this;} /** *

The thing group name.

*/ inline ThingGroupDocument& WithThingGroupName(Aws::String&& value) { SetThingGroupName(std::move(value)); return *this;} /** *

The thing group name.

*/ inline ThingGroupDocument& WithThingGroupName(const char* value) { SetThingGroupName(value); return *this;} /** *

The thing group ID.

*/ inline const Aws::String& GetThingGroupId() const{ return m_thingGroupId; } /** *

The thing group ID.

*/ inline bool ThingGroupIdHasBeenSet() const { return m_thingGroupIdHasBeenSet; } /** *

The thing group ID.

*/ inline void SetThingGroupId(const Aws::String& value) { m_thingGroupIdHasBeenSet = true; m_thingGroupId = value; } /** *

The thing group ID.

*/ inline void SetThingGroupId(Aws::String&& value) { m_thingGroupIdHasBeenSet = true; m_thingGroupId = std::move(value); } /** *

The thing group ID.

*/ inline void SetThingGroupId(const char* value) { m_thingGroupIdHasBeenSet = true; m_thingGroupId.assign(value); } /** *

The thing group ID.

*/ inline ThingGroupDocument& WithThingGroupId(const Aws::String& value) { SetThingGroupId(value); return *this;} /** *

The thing group ID.

*/ inline ThingGroupDocument& WithThingGroupId(Aws::String&& value) { SetThingGroupId(std::move(value)); return *this;} /** *

The thing group ID.

*/ inline ThingGroupDocument& WithThingGroupId(const char* value) { SetThingGroupId(value); return *this;} /** *

The thing group description.

*/ inline const Aws::String& GetThingGroupDescription() const{ return m_thingGroupDescription; } /** *

The thing group description.

*/ inline bool ThingGroupDescriptionHasBeenSet() const { return m_thingGroupDescriptionHasBeenSet; } /** *

The thing group description.

*/ inline void SetThingGroupDescription(const Aws::String& value) { m_thingGroupDescriptionHasBeenSet = true; m_thingGroupDescription = value; } /** *

The thing group description.

*/ inline void SetThingGroupDescription(Aws::String&& value) { m_thingGroupDescriptionHasBeenSet = true; m_thingGroupDescription = std::move(value); } /** *

The thing group description.

*/ inline void SetThingGroupDescription(const char* value) { m_thingGroupDescriptionHasBeenSet = true; m_thingGroupDescription.assign(value); } /** *

The thing group description.

*/ inline ThingGroupDocument& WithThingGroupDescription(const Aws::String& value) { SetThingGroupDescription(value); return *this;} /** *

The thing group description.

*/ inline ThingGroupDocument& WithThingGroupDescription(Aws::String&& value) { SetThingGroupDescription(std::move(value)); return *this;} /** *

The thing group description.

*/ inline ThingGroupDocument& WithThingGroupDescription(const char* value) { SetThingGroupDescription(value); return *this;} /** *

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

The thing group attributes.

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

Parent group names.

*/ inline const Aws::Vector& GetParentGroupNames() const{ return m_parentGroupNames; } /** *

Parent group names.

*/ inline bool ParentGroupNamesHasBeenSet() const { return m_parentGroupNamesHasBeenSet; } /** *

Parent group names.

*/ inline void SetParentGroupNames(const Aws::Vector& value) { m_parentGroupNamesHasBeenSet = true; m_parentGroupNames = value; } /** *

Parent group names.

*/ inline void SetParentGroupNames(Aws::Vector&& value) { m_parentGroupNamesHasBeenSet = true; m_parentGroupNames = std::move(value); } /** *

Parent group names.

*/ inline ThingGroupDocument& WithParentGroupNames(const Aws::Vector& value) { SetParentGroupNames(value); return *this;} /** *

Parent group names.

*/ inline ThingGroupDocument& WithParentGroupNames(Aws::Vector&& value) { SetParentGroupNames(std::move(value)); return *this;} /** *

Parent group names.

*/ inline ThingGroupDocument& AddParentGroupNames(const Aws::String& value) { m_parentGroupNamesHasBeenSet = true; m_parentGroupNames.push_back(value); return *this; } /** *

Parent group names.

*/ inline ThingGroupDocument& AddParentGroupNames(Aws::String&& value) { m_parentGroupNamesHasBeenSet = true; m_parentGroupNames.push_back(std::move(value)); return *this; } /** *

Parent group names.

*/ inline ThingGroupDocument& AddParentGroupNames(const char* value) { m_parentGroupNamesHasBeenSet = true; m_parentGroupNames.push_back(value); return *this; } private: Aws::String m_thingGroupName; bool m_thingGroupNameHasBeenSet = false; Aws::String m_thingGroupId; bool m_thingGroupIdHasBeenSet = false; Aws::String m_thingGroupDescription; bool m_thingGroupDescriptionHasBeenSet = false; Aws::Map m_attributes; bool m_attributesHasBeenSet = false; Aws::Vector m_parentGroupNames; bool m_parentGroupNamesHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws