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

An object providing detailed information for a particular project associated * with an AWS account and region.

See Also:

AWS * API Reference

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

The ARN of the project.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The ARN of the project.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The ARN of the project.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The ARN of the project.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The ARN of the project.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The ARN of the project.

*/ inline ProjectDescription& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The ARN of the project.

*/ inline ProjectDescription& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The ARN of the project.

*/ inline ProjectDescription& WithArn(const char* value) { SetArn(value); return *this;} /** *

The name of the project for which to obtain information from.

*/ inline const Aws::String& GetProjectName() const{ return m_projectName; } /** *

The name of the project for which to obtain information from.

*/ inline bool ProjectNameHasBeenSet() const { return m_projectNameHasBeenSet; } /** *

The name of the project for which to obtain information from.

*/ inline void SetProjectName(const Aws::String& value) { m_projectNameHasBeenSet = true; m_projectName = value; } /** *

The name of the project for which to obtain information from.

*/ inline void SetProjectName(Aws::String&& value) { m_projectNameHasBeenSet = true; m_projectName = std::move(value); } /** *

The name of the project for which to obtain information from.

*/ inline void SetProjectName(const char* value) { m_projectNameHasBeenSet = true; m_projectName.assign(value); } /** *

The name of the project for which to obtain information from.

*/ inline ProjectDescription& WithProjectName(const Aws::String& value) { SetProjectName(value); return *this;} /** *

The name of the project for which to obtain information from.

*/ inline ProjectDescription& WithProjectName(Aws::String&& value) { SetProjectName(std::move(value)); return *this;} /** *

The name of the project for which to obtain information from.

*/ inline ProjectDescription& WithProjectName(const char* value) { SetProjectName(value); return *this;} /** *

The description of the project.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the project.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the project.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the project.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the project.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the project.

*/ inline ProjectDescription& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the project.

*/ inline ProjectDescription& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the project.

*/ inline ProjectDescription& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The date when the project was originally created, in UNIX epoch time * format.

*/ inline const Aws::Utils::DateTime& GetCreatedDate() const{ return m_createdDate; } /** *

The date when the project was originally created, in UNIX epoch time * format.

*/ inline bool CreatedDateHasBeenSet() const { return m_createdDateHasBeenSet; } /** *

The date when the project was originally created, in UNIX epoch time * format.

*/ inline void SetCreatedDate(const Aws::Utils::DateTime& value) { m_createdDateHasBeenSet = true; m_createdDate = value; } /** *

The date when the project was originally created, in UNIX epoch time * format.

*/ inline void SetCreatedDate(Aws::Utils::DateTime&& value) { m_createdDateHasBeenSet = true; m_createdDate = std::move(value); } /** *

The date when the project was originally created, in UNIX epoch time * format.

*/ inline ProjectDescription& WithCreatedDate(const Aws::Utils::DateTime& value) { SetCreatedDate(value); return *this;} /** *

The date when the project was originally created, in UNIX epoch time * format.

*/ inline ProjectDescription& WithCreatedDate(Aws::Utils::DateTime&& value) { SetCreatedDate(std::move(value)); return *this;} /** *

The date when the project was last updated, in UNIX epoch time format. If the * project was not updated, then createdDate and * updatedDate are the same.

*/ inline const Aws::Utils::DateTime& GetUpdatedDate() const{ return m_updatedDate; } /** *

The date when the project was last updated, in UNIX epoch time format. If the * project was not updated, then createdDate and * updatedDate are the same.

*/ inline bool UpdatedDateHasBeenSet() const { return m_updatedDateHasBeenSet; } /** *

The date when the project was last updated, in UNIX epoch time format. If the * project was not updated, then createdDate and * updatedDate are the same.

*/ inline void SetUpdatedDate(const Aws::Utils::DateTime& value) { m_updatedDateHasBeenSet = true; m_updatedDate = value; } /** *

The date when the project was last updated, in UNIX epoch time format. If the * project was not updated, then createdDate and * updatedDate are the same.

*/ inline void SetUpdatedDate(Aws::Utils::DateTime&& value) { m_updatedDateHasBeenSet = true; m_updatedDate = std::move(value); } /** *

The date when the project was last updated, in UNIX epoch time format. If the * project was not updated, then createdDate and * updatedDate are the same.

*/ inline ProjectDescription& WithUpdatedDate(const Aws::Utils::DateTime& value) { SetUpdatedDate(value); return *this;} /** *

The date when the project was last updated, in UNIX epoch time format. If the * project was not updated, then createdDate and * updatedDate are the same.

*/ inline ProjectDescription& WithUpdatedDate(Aws::Utils::DateTime&& value) { SetUpdatedDate(std::move(value)); return *this;} /** *

An object describing the project's placement specifications.

*/ inline const PlacementTemplate& GetPlacementTemplate() const{ return m_placementTemplate; } /** *

An object describing the project's placement specifications.

*/ inline bool PlacementTemplateHasBeenSet() const { return m_placementTemplateHasBeenSet; } /** *

An object describing the project's placement specifications.

*/ inline void SetPlacementTemplate(const PlacementTemplate& value) { m_placementTemplateHasBeenSet = true; m_placementTemplate = value; } /** *

An object describing the project's placement specifications.

*/ inline void SetPlacementTemplate(PlacementTemplate&& value) { m_placementTemplateHasBeenSet = true; m_placementTemplate = std::move(value); } /** *

An object describing the project's placement specifications.

*/ inline ProjectDescription& WithPlacementTemplate(const PlacementTemplate& value) { SetPlacementTemplate(value); return *this;} /** *

An object describing the project's placement specifications.

*/ inline ProjectDescription& WithPlacementTemplate(PlacementTemplate&& value) { SetPlacementTemplate(std::move(value)); return *this;} /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The tags (metadata key/value pairs) associated with the project.

*/ inline ProjectDescription& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_projectName; bool m_projectNameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Utils::DateTime m_createdDate; bool m_createdDateHasBeenSet = false; Aws::Utils::DateTime m_updatedDate; bool m_updatedDateHasBeenSet = false; PlacementTemplate m_placementTemplate; bool m_placementTemplateHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace IoT1ClickProjects } // namespace Aws