/** * 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 #include #include #include #include namespace Aws { namespace Braket { namespace Model { /** */ class CreateJobRequest : public BraketRequest { public: AWS_BRAKET_API CreateJobRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateJob"; } AWS_BRAKET_API Aws::String SerializePayload() const override; /** *

Definition of the Amazon Braket job to be created. Specifies the container * image the job uses and information about the Python scripts used for entry and * training.

*/ inline const AlgorithmSpecification& GetAlgorithmSpecification() const{ return m_algorithmSpecification; } /** *

Definition of the Amazon Braket job to be created. Specifies the container * image the job uses and information about the Python scripts used for entry and * training.

*/ inline bool AlgorithmSpecificationHasBeenSet() const { return m_algorithmSpecificationHasBeenSet; } /** *

Definition of the Amazon Braket job to be created. Specifies the container * image the job uses and information about the Python scripts used for entry and * training.

*/ inline void SetAlgorithmSpecification(const AlgorithmSpecification& value) { m_algorithmSpecificationHasBeenSet = true; m_algorithmSpecification = value; } /** *

Definition of the Amazon Braket job to be created. Specifies the container * image the job uses and information about the Python scripts used for entry and * training.

*/ inline void SetAlgorithmSpecification(AlgorithmSpecification&& value) { m_algorithmSpecificationHasBeenSet = true; m_algorithmSpecification = std::move(value); } /** *

Definition of the Amazon Braket job to be created. Specifies the container * image the job uses and information about the Python scripts used for entry and * training.

*/ inline CreateJobRequest& WithAlgorithmSpecification(const AlgorithmSpecification& value) { SetAlgorithmSpecification(value); return *this;} /** *

Definition of the Amazon Braket job to be created. Specifies the container * image the job uses and information about the Python scripts used for entry and * training.

*/ inline CreateJobRequest& WithAlgorithmSpecification(AlgorithmSpecification&& value) { SetAlgorithmSpecification(std::move(value)); return *this;} /** *

Information about the output locations for job checkpoint data.

*/ inline const JobCheckpointConfig& GetCheckpointConfig() const{ return m_checkpointConfig; } /** *

Information about the output locations for job checkpoint data.

*/ inline bool CheckpointConfigHasBeenSet() const { return m_checkpointConfigHasBeenSet; } /** *

Information about the output locations for job checkpoint data.

*/ inline void SetCheckpointConfig(const JobCheckpointConfig& value) { m_checkpointConfigHasBeenSet = true; m_checkpointConfig = value; } /** *

Information about the output locations for job checkpoint data.

*/ inline void SetCheckpointConfig(JobCheckpointConfig&& value) { m_checkpointConfigHasBeenSet = true; m_checkpointConfig = std::move(value); } /** *

Information about the output locations for job checkpoint data.

*/ inline CreateJobRequest& WithCheckpointConfig(const JobCheckpointConfig& value) { SetCheckpointConfig(value); return *this;} /** *

Information about the output locations for job checkpoint data.

*/ inline CreateJobRequest& WithCheckpointConfig(JobCheckpointConfig&& value) { SetCheckpointConfig(std::move(value)); return *this;} /** *

A unique token that guarantees that the call to this API is idempotent.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A unique token that guarantees that the call to this API is idempotent.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A unique token that guarantees that the call to this API is idempotent.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A unique token that guarantees that the call to this API is idempotent.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A unique token that guarantees that the call to this API is idempotent.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A unique token that guarantees that the call to this API is idempotent.

*/ inline CreateJobRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A unique token that guarantees that the call to this API is idempotent.

*/ inline CreateJobRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A unique token that guarantees that the call to this API is idempotent.

*/ inline CreateJobRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

The quantum processing unit (QPU) or simulator used to create an Amazon * Braket job.

*/ inline const DeviceConfig& GetDeviceConfig() const{ return m_deviceConfig; } /** *

The quantum processing unit (QPU) or simulator used to create an Amazon * Braket job.

*/ inline bool DeviceConfigHasBeenSet() const { return m_deviceConfigHasBeenSet; } /** *

The quantum processing unit (QPU) or simulator used to create an Amazon * Braket job.

*/ inline void SetDeviceConfig(const DeviceConfig& value) { m_deviceConfigHasBeenSet = true; m_deviceConfig = value; } /** *

The quantum processing unit (QPU) or simulator used to create an Amazon * Braket job.

*/ inline void SetDeviceConfig(DeviceConfig&& value) { m_deviceConfigHasBeenSet = true; m_deviceConfig = std::move(value); } /** *

The quantum processing unit (QPU) or simulator used to create an Amazon * Braket job.

*/ inline CreateJobRequest& WithDeviceConfig(const DeviceConfig& value) { SetDeviceConfig(value); return *this;} /** *

The quantum processing unit (QPU) or simulator used to create an Amazon * Braket job.

*/ inline CreateJobRequest& WithDeviceConfig(DeviceConfig&& value) { SetDeviceConfig(std::move(value)); return *this;} /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline const Aws::Map& GetHyperParameters() const{ return m_hyperParameters; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline bool HyperParametersHasBeenSet() const { return m_hyperParametersHasBeenSet; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline void SetHyperParameters(const Aws::Map& value) { m_hyperParametersHasBeenSet = true; m_hyperParameters = value; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline void SetHyperParameters(Aws::Map&& value) { m_hyperParametersHasBeenSet = true; m_hyperParameters = std::move(value); } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& WithHyperParameters(const Aws::Map& value) { SetHyperParameters(value); return *this;} /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& WithHyperParameters(Aws::Map&& value) { SetHyperParameters(std::move(value)); return *this;} /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& AddHyperParameters(const Aws::String& key, const Aws::String& value) { m_hyperParametersHasBeenSet = true; m_hyperParameters.emplace(key, value); return *this; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& AddHyperParameters(Aws::String&& key, const Aws::String& value) { m_hyperParametersHasBeenSet = true; m_hyperParameters.emplace(std::move(key), value); return *this; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& AddHyperParameters(const Aws::String& key, Aws::String&& value) { m_hyperParametersHasBeenSet = true; m_hyperParameters.emplace(key, std::move(value)); return *this; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& AddHyperParameters(Aws::String&& key, Aws::String&& value) { m_hyperParametersHasBeenSet = true; m_hyperParameters.emplace(std::move(key), std::move(value)); return *this; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& AddHyperParameters(const char* key, Aws::String&& value) { m_hyperParametersHasBeenSet = true; m_hyperParameters.emplace(key, std::move(value)); return *this; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& AddHyperParameters(Aws::String&& key, const char* value) { m_hyperParametersHasBeenSet = true; m_hyperParameters.emplace(std::move(key), value); return *this; } /** *

Algorithm-specific parameters used by an Amazon Braket job that influence the * quality of the training job. The values are set with a string of JSON key:value * pairs, where the key is the name of the hyperparameter and the value is the * value of th hyperparameter.

*/ inline CreateJobRequest& AddHyperParameters(const char* key, const char* value) { m_hyperParametersHasBeenSet = true; m_hyperParameters.emplace(key, value); return *this; } /** *

A list of parameters that specify the name and type of input data and where * it is located.

*/ inline const Aws::Vector& GetInputDataConfig() const{ return m_inputDataConfig; } /** *

A list of parameters that specify the name and type of input data and where * it is located.

*/ inline bool InputDataConfigHasBeenSet() const { return m_inputDataConfigHasBeenSet; } /** *

A list of parameters that specify the name and type of input data and where * it is located.

*/ inline void SetInputDataConfig(const Aws::Vector& value) { m_inputDataConfigHasBeenSet = true; m_inputDataConfig = value; } /** *

A list of parameters that specify the name and type of input data and where * it is located.

*/ inline void SetInputDataConfig(Aws::Vector&& value) { m_inputDataConfigHasBeenSet = true; m_inputDataConfig = std::move(value); } /** *

A list of parameters that specify the name and type of input data and where * it is located.

*/ inline CreateJobRequest& WithInputDataConfig(const Aws::Vector& value) { SetInputDataConfig(value); return *this;} /** *

A list of parameters that specify the name and type of input data and where * it is located.

*/ inline CreateJobRequest& WithInputDataConfig(Aws::Vector&& value) { SetInputDataConfig(std::move(value)); return *this;} /** *

A list of parameters that specify the name and type of input data and where * it is located.

*/ inline CreateJobRequest& AddInputDataConfig(const InputFileConfig& value) { m_inputDataConfigHasBeenSet = true; m_inputDataConfig.push_back(value); return *this; } /** *

A list of parameters that specify the name and type of input data and where * it is located.

*/ inline CreateJobRequest& AddInputDataConfig(InputFileConfig&& value) { m_inputDataConfigHasBeenSet = true; m_inputDataConfig.push_back(std::move(value)); return *this; } /** *

Configuration of the resource instances to use while running the hybrid job * on Amazon Braket.

*/ inline const InstanceConfig& GetInstanceConfig() const{ return m_instanceConfig; } /** *

Configuration of the resource instances to use while running the hybrid job * on Amazon Braket.

*/ inline bool InstanceConfigHasBeenSet() const { return m_instanceConfigHasBeenSet; } /** *

Configuration of the resource instances to use while running the hybrid job * on Amazon Braket.

*/ inline void SetInstanceConfig(const InstanceConfig& value) { m_instanceConfigHasBeenSet = true; m_instanceConfig = value; } /** *

Configuration of the resource instances to use while running the hybrid job * on Amazon Braket.

*/ inline void SetInstanceConfig(InstanceConfig&& value) { m_instanceConfigHasBeenSet = true; m_instanceConfig = std::move(value); } /** *

Configuration of the resource instances to use while running the hybrid job * on Amazon Braket.

*/ inline CreateJobRequest& WithInstanceConfig(const InstanceConfig& value) { SetInstanceConfig(value); return *this;} /** *

Configuration of the resource instances to use while running the hybrid job * on Amazon Braket.

*/ inline CreateJobRequest& WithInstanceConfig(InstanceConfig&& value) { SetInstanceConfig(std::move(value)); return *this;} /** *

The name of the Amazon Braket job.

*/ inline const Aws::String& GetJobName() const{ return m_jobName; } /** *

The name of the Amazon Braket job.

*/ inline bool JobNameHasBeenSet() const { return m_jobNameHasBeenSet; } /** *

The name of the Amazon Braket job.

*/ inline void SetJobName(const Aws::String& value) { m_jobNameHasBeenSet = true; m_jobName = value; } /** *

The name of the Amazon Braket job.

*/ inline void SetJobName(Aws::String&& value) { m_jobNameHasBeenSet = true; m_jobName = std::move(value); } /** *

The name of the Amazon Braket job.

*/ inline void SetJobName(const char* value) { m_jobNameHasBeenSet = true; m_jobName.assign(value); } /** *

The name of the Amazon Braket job.

*/ inline CreateJobRequest& WithJobName(const Aws::String& value) { SetJobName(value); return *this;} /** *

The name of the Amazon Braket job.

*/ inline CreateJobRequest& WithJobName(Aws::String&& value) { SetJobName(std::move(value)); return *this;} /** *

The name of the Amazon Braket job.

*/ inline CreateJobRequest& WithJobName(const char* value) { SetJobName(value); return *this;} /** *

The path to the S3 location where you want to store job artifacts and the * encryption key used to store them.

*/ inline const JobOutputDataConfig& GetOutputDataConfig() const{ return m_outputDataConfig; } /** *

The path to the S3 location where you want to store job artifacts and the * encryption key used to store them.

*/ inline bool OutputDataConfigHasBeenSet() const { return m_outputDataConfigHasBeenSet; } /** *

The path to the S3 location where you want to store job artifacts and the * encryption key used to store them.

*/ inline void SetOutputDataConfig(const JobOutputDataConfig& value) { m_outputDataConfigHasBeenSet = true; m_outputDataConfig = value; } /** *

The path to the S3 location where you want to store job artifacts and the * encryption key used to store them.

*/ inline void SetOutputDataConfig(JobOutputDataConfig&& value) { m_outputDataConfigHasBeenSet = true; m_outputDataConfig = std::move(value); } /** *

The path to the S3 location where you want to store job artifacts and the * encryption key used to store them.

*/ inline CreateJobRequest& WithOutputDataConfig(const JobOutputDataConfig& value) { SetOutputDataConfig(value); return *this;} /** *

The path to the S3 location where you want to store job artifacts and the * encryption key used to store them.

*/ inline CreateJobRequest& WithOutputDataConfig(JobOutputDataConfig&& value) { SetOutputDataConfig(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume * to perform tasks on behalf of a user. It can access user resources, run an * Amazon Braket job container on behalf of user, and output resources to the * users' s3 buckets.

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume * to perform tasks on behalf of a user. It can access user resources, run an * Amazon Braket job container on behalf of user, and output resources to the * users' s3 buckets.

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume * to perform tasks on behalf of a user. It can access user resources, run an * Amazon Braket job container on behalf of user, and output resources to the * users' s3 buckets.

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume * to perform tasks on behalf of a user. It can access user resources, run an * Amazon Braket job container on behalf of user, and output resources to the * users' s3 buckets.

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume * to perform tasks on behalf of a user. It can access user resources, run an * Amazon Braket job container on behalf of user, and output resources to the * users' s3 buckets.

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume * to perform tasks on behalf of a user. It can access user resources, run an * Amazon Braket job container on behalf of user, and output resources to the * users' s3 buckets.

*/ inline CreateJobRequest& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume * to perform tasks on behalf of a user. It can access user resources, run an * Amazon Braket job container on behalf of user, and output resources to the * users' s3 buckets.

*/ inline CreateJobRequest& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an IAM role that Amazon Braket can assume * to perform tasks on behalf of a user. It can access user resources, run an * Amazon Braket job container on behalf of user, and output resources to the * users' s3 buckets.

*/ inline CreateJobRequest& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

The user-defined criteria that specifies when a job stops running.

*/ inline const JobStoppingCondition& GetStoppingCondition() const{ return m_stoppingCondition; } /** *

The user-defined criteria that specifies when a job stops running.

*/ inline bool StoppingConditionHasBeenSet() const { return m_stoppingConditionHasBeenSet; } /** *

The user-defined criteria that specifies when a job stops running.

*/ inline void SetStoppingCondition(const JobStoppingCondition& value) { m_stoppingConditionHasBeenSet = true; m_stoppingCondition = value; } /** *

The user-defined criteria that specifies when a job stops running.

*/ inline void SetStoppingCondition(JobStoppingCondition&& value) { m_stoppingConditionHasBeenSet = true; m_stoppingCondition = std::move(value); } /** *

The user-defined criteria that specifies when a job stops running.

*/ inline CreateJobRequest& WithStoppingCondition(const JobStoppingCondition& value) { SetStoppingCondition(value); return *this;} /** *

The user-defined criteria that specifies when a job stops running.

*/ inline CreateJobRequest& WithStoppingCondition(JobStoppingCondition&& value) { SetStoppingCondition(std::move(value)); return *this;} /** *

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

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

A tag object that consists of a key and an optional value, used to manage * metadata for Amazon Braket resources.

*/ inline CreateJobRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } private: AlgorithmSpecification m_algorithmSpecification; bool m_algorithmSpecificationHasBeenSet = false; JobCheckpointConfig m_checkpointConfig; bool m_checkpointConfigHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; DeviceConfig m_deviceConfig; bool m_deviceConfigHasBeenSet = false; Aws::Map m_hyperParameters; bool m_hyperParametersHasBeenSet = false; Aws::Vector m_inputDataConfig; bool m_inputDataConfigHasBeenSet = false; InstanceConfig m_instanceConfig; bool m_instanceConfigHasBeenSet = false; Aws::String m_jobName; bool m_jobNameHasBeenSet = false; JobOutputDataConfig m_outputDataConfig; bool m_outputDataConfigHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; JobStoppingCondition m_stoppingCondition; bool m_stoppingConditionHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace Braket } // namespace Aws