/** * 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 #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace drs { namespace Model { /** *

A job is an asynchronous workflow.

See Also:

AWS API * Reference

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

The ARN of a Job.

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

The ARN of a Job.

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

The ARN of a Job.

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

The ARN of a Job.

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

The ARN of a Job.

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

The ARN of a Job.

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

The ARN of a Job.

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

The ARN of a Job.

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

The date and time of when the Job was created.

*/ inline const Aws::String& GetCreationDateTime() const{ return m_creationDateTime; } /** *

The date and time of when the Job was created.

*/ inline bool CreationDateTimeHasBeenSet() const { return m_creationDateTimeHasBeenSet; } /** *

The date and time of when the Job was created.

*/ inline void SetCreationDateTime(const Aws::String& value) { m_creationDateTimeHasBeenSet = true; m_creationDateTime = value; } /** *

The date and time of when the Job was created.

*/ inline void SetCreationDateTime(Aws::String&& value) { m_creationDateTimeHasBeenSet = true; m_creationDateTime = std::move(value); } /** *

The date and time of when the Job was created.

*/ inline void SetCreationDateTime(const char* value) { m_creationDateTimeHasBeenSet = true; m_creationDateTime.assign(value); } /** *

The date and time of when the Job was created.

*/ inline Job& WithCreationDateTime(const Aws::String& value) { SetCreationDateTime(value); return *this;} /** *

The date and time of when the Job was created.

*/ inline Job& WithCreationDateTime(Aws::String&& value) { SetCreationDateTime(std::move(value)); return *this;} /** *

The date and time of when the Job was created.

*/ inline Job& WithCreationDateTime(const char* value) { SetCreationDateTime(value); return *this;} /** *

The date and time of when the Job ended.

*/ inline const Aws::String& GetEndDateTime() const{ return m_endDateTime; } /** *

The date and time of when the Job ended.

*/ inline bool EndDateTimeHasBeenSet() const { return m_endDateTimeHasBeenSet; } /** *

The date and time of when the Job ended.

*/ inline void SetEndDateTime(const Aws::String& value) { m_endDateTimeHasBeenSet = true; m_endDateTime = value; } /** *

The date and time of when the Job ended.

*/ inline void SetEndDateTime(Aws::String&& value) { m_endDateTimeHasBeenSet = true; m_endDateTime = std::move(value); } /** *

The date and time of when the Job ended.

*/ inline void SetEndDateTime(const char* value) { m_endDateTimeHasBeenSet = true; m_endDateTime.assign(value); } /** *

The date and time of when the Job ended.

*/ inline Job& WithEndDateTime(const Aws::String& value) { SetEndDateTime(value); return *this;} /** *

The date and time of when the Job ended.

*/ inline Job& WithEndDateTime(Aws::String&& value) { SetEndDateTime(std::move(value)); return *this;} /** *

The date and time of when the Job ended.

*/ inline Job& WithEndDateTime(const char* value) { SetEndDateTime(value); return *this;} /** *

A string representing who initiated the Job.

*/ inline const InitiatedBy& GetInitiatedBy() const{ return m_initiatedBy; } /** *

A string representing who initiated the Job.

*/ inline bool InitiatedByHasBeenSet() const { return m_initiatedByHasBeenSet; } /** *

A string representing who initiated the Job.

*/ inline void SetInitiatedBy(const InitiatedBy& value) { m_initiatedByHasBeenSet = true; m_initiatedBy = value; } /** *

A string representing who initiated the Job.

*/ inline void SetInitiatedBy(InitiatedBy&& value) { m_initiatedByHasBeenSet = true; m_initiatedBy = std::move(value); } /** *

A string representing who initiated the Job.

*/ inline Job& WithInitiatedBy(const InitiatedBy& value) { SetInitiatedBy(value); return *this;} /** *

A string representing who initiated the Job.

*/ inline Job& WithInitiatedBy(InitiatedBy&& value) { SetInitiatedBy(std::move(value)); return *this;} /** *

The ID of the Job.

*/ inline const Aws::String& GetJobID() const{ return m_jobID; } /** *

The ID of the Job.

*/ inline bool JobIDHasBeenSet() const { return m_jobIDHasBeenSet; } /** *

The ID of the Job.

*/ inline void SetJobID(const Aws::String& value) { m_jobIDHasBeenSet = true; m_jobID = value; } /** *

The ID of the Job.

*/ inline void SetJobID(Aws::String&& value) { m_jobIDHasBeenSet = true; m_jobID = std::move(value); } /** *

The ID of the Job.

*/ inline void SetJobID(const char* value) { m_jobIDHasBeenSet = true; m_jobID.assign(value); } /** *

The ID of the Job.

*/ inline Job& WithJobID(const Aws::String& value) { SetJobID(value); return *this;} /** *

The ID of the Job.

*/ inline Job& WithJobID(Aws::String&& value) { SetJobID(std::move(value)); return *this;} /** *

The ID of the Job.

*/ inline Job& WithJobID(const char* value) { SetJobID(value); return *this;} /** *

A list of resources that the Job is acting upon.

*/ inline const Aws::Vector& GetParticipatingResources() const{ return m_participatingResources; } /** *

A list of resources that the Job is acting upon.

*/ inline bool ParticipatingResourcesHasBeenSet() const { return m_participatingResourcesHasBeenSet; } /** *

A list of resources that the Job is acting upon.

*/ inline void SetParticipatingResources(const Aws::Vector& value) { m_participatingResourcesHasBeenSet = true; m_participatingResources = value; } /** *

A list of resources that the Job is acting upon.

*/ inline void SetParticipatingResources(Aws::Vector&& value) { m_participatingResourcesHasBeenSet = true; m_participatingResources = std::move(value); } /** *

A list of resources that the Job is acting upon.

*/ inline Job& WithParticipatingResources(const Aws::Vector& value) { SetParticipatingResources(value); return *this;} /** *

A list of resources that the Job is acting upon.

*/ inline Job& WithParticipatingResources(Aws::Vector&& value) { SetParticipatingResources(std::move(value)); return *this;} /** *

A list of resources that the Job is acting upon.

*/ inline Job& AddParticipatingResources(const ParticipatingResource& value) { m_participatingResourcesHasBeenSet = true; m_participatingResources.push_back(value); return *this; } /** *

A list of resources that the Job is acting upon.

*/ inline Job& AddParticipatingResources(ParticipatingResource&& value) { m_participatingResourcesHasBeenSet = true; m_participatingResources.push_back(std::move(value)); return *this; } /** *

A list of servers that the Job is acting upon.

*/ inline const Aws::Vector& GetParticipatingServers() const{ return m_participatingServers; } /** *

A list of servers that the Job is acting upon.

*/ inline bool ParticipatingServersHasBeenSet() const { return m_participatingServersHasBeenSet; } /** *

A list of servers that the Job is acting upon.

*/ inline void SetParticipatingServers(const Aws::Vector& value) { m_participatingServersHasBeenSet = true; m_participatingServers = value; } /** *

A list of servers that the Job is acting upon.

*/ inline void SetParticipatingServers(Aws::Vector&& value) { m_participatingServersHasBeenSet = true; m_participatingServers = std::move(value); } /** *

A list of servers that the Job is acting upon.

*/ inline Job& WithParticipatingServers(const Aws::Vector& value) { SetParticipatingServers(value); return *this;} /** *

A list of servers that the Job is acting upon.

*/ inline Job& WithParticipatingServers(Aws::Vector&& value) { SetParticipatingServers(std::move(value)); return *this;} /** *

A list of servers that the Job is acting upon.

*/ inline Job& AddParticipatingServers(const ParticipatingServer& value) { m_participatingServersHasBeenSet = true; m_participatingServers.push_back(value); return *this; } /** *

A list of servers that the Job is acting upon.

*/ inline Job& AddParticipatingServers(ParticipatingServer&& value) { m_participatingServersHasBeenSet = true; m_participatingServers.push_back(std::move(value)); return *this; } /** *

The status of the Job.

*/ inline const JobStatus& GetStatus() const{ return m_status; } /** *

The status of the Job.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the Job.

*/ inline void SetStatus(const JobStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the Job.

*/ inline void SetStatus(JobStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the Job.

*/ inline Job& WithStatus(const JobStatus& value) { SetStatus(value); return *this;} /** *

The status of the Job.

*/ inline Job& WithStatus(JobStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

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

A list of tags associated with the Job.

*/ inline Job& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The type of the Job.

*/ inline const JobType& GetType() const{ return m_type; } /** *

The type of the Job.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of the Job.

*/ inline void SetType(const JobType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of the Job.

*/ inline void SetType(JobType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of the Job.

*/ inline Job& WithType(const JobType& value) { SetType(value); return *this;} /** *

The type of the Job.

*/ inline Job& WithType(JobType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_creationDateTime; bool m_creationDateTimeHasBeenSet = false; Aws::String m_endDateTime; bool m_endDateTimeHasBeenSet = false; InitiatedBy m_initiatedBy; bool m_initiatedByHasBeenSet = false; Aws::String m_jobID; bool m_jobIDHasBeenSet = false; Aws::Vector m_participatingResources; bool m_participatingResourcesHasBeenSet = false; Aws::Vector m_participatingServers; bool m_participatingServersHasBeenSet = false; JobStatus m_status; bool m_statusHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; JobType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace drs } // namespace Aws