/** * 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 namespace Aws { namespace Glue { namespace Model { /** */ class AWS_GLUE_API StartJobRunRequest : public GlueRequest { public: StartJobRunRequest(); // 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 "StartJobRun"; } Aws::String SerializePayload() const override; Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the job definition to use.

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

The name of the job definition to use.

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

The name of the job definition to use.

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

The name of the job definition to use.

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

The name of the job definition to use.

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

The name of the job definition to use.

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

The name of the job definition to use.

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

The name of the job definition to use.

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

The ID of a previous JobRun to retry.

*/ inline const Aws::String& GetJobRunId() const{ return m_jobRunId; } /** *

The ID of a previous JobRun to retry.

*/ inline bool JobRunIdHasBeenSet() const { return m_jobRunIdHasBeenSet; } /** *

The ID of a previous JobRun to retry.

*/ inline void SetJobRunId(const Aws::String& value) { m_jobRunIdHasBeenSet = true; m_jobRunId = value; } /** *

The ID of a previous JobRun to retry.

*/ inline void SetJobRunId(Aws::String&& value) { m_jobRunIdHasBeenSet = true; m_jobRunId = std::move(value); } /** *

The ID of a previous JobRun to retry.

*/ inline void SetJobRunId(const char* value) { m_jobRunIdHasBeenSet = true; m_jobRunId.assign(value); } /** *

The ID of a previous JobRun to retry.

*/ inline StartJobRunRequest& WithJobRunId(const Aws::String& value) { SetJobRunId(value); return *this;} /** *

The ID of a previous JobRun to retry.

*/ inline StartJobRunRequest& WithJobRunId(Aws::String&& value) { SetJobRunId(std::move(value)); return *this;} /** *

The ID of a previous JobRun to retry.

*/ inline StartJobRunRequest& WithJobRunId(const char* value) { SetJobRunId(value); return *this;} /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline const Aws::Map& GetArguments() const{ return m_arguments; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline bool ArgumentsHasBeenSet() const { return m_argumentsHasBeenSet; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline void SetArguments(const Aws::Map& value) { m_argumentsHasBeenSet = true; m_arguments = value; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline void SetArguments(Aws::Map&& value) { m_argumentsHasBeenSet = true; m_arguments = std::move(value); } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& WithArguments(const Aws::Map& value) { SetArguments(value); return *this;} /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& WithArguments(Aws::Map&& value) { SetArguments(std::move(value)); return *this;} /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& AddArguments(const Aws::String& key, const Aws::String& value) { m_argumentsHasBeenSet = true; m_arguments.emplace(key, value); return *this; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& AddArguments(Aws::String&& key, const Aws::String& value) { m_argumentsHasBeenSet = true; m_arguments.emplace(std::move(key), value); return *this; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& AddArguments(const Aws::String& key, Aws::String&& value) { m_argumentsHasBeenSet = true; m_arguments.emplace(key, std::move(value)); return *this; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& AddArguments(Aws::String&& key, Aws::String&& value) { m_argumentsHasBeenSet = true; m_arguments.emplace(std::move(key), std::move(value)); return *this; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& AddArguments(const char* key, Aws::String&& value) { m_argumentsHasBeenSet = true; m_arguments.emplace(key, std::move(value)); return *this; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& AddArguments(Aws::String&& key, const char* value) { m_argumentsHasBeenSet = true; m_arguments.emplace(std::move(key), value); return *this; } /** *

The job arguments specifically for this run. For this job run, they replace * the default arguments set in the job definition itself.

You can specify * arguments here that your own job-execution script consumes, as well as arguments * that AWS Glue itself consumes.

For information about how to specify and * consume your own Job arguments, see the Calling * AWS Glue APIs in Python topic in the developer guide.

For information * about the key-value pairs that AWS Glue consumes to set up your job, see the Special * Parameters Used by AWS Glue topic in the developer guide.

*/ inline StartJobRunRequest& AddArguments(const char* key, const char* value) { m_argumentsHasBeenSet = true; m_arguments.emplace(key, value); return *this; } /** *

The JobRun timeout in minutes. This is the maximum time that a * job run can consume resources before it is terminated and enters * TIMEOUT status. The default is 2,880 minutes (48 hours). This * overrides the timeout value set in the parent job.

*/ inline int GetTimeout() const{ return m_timeout; } /** *

The JobRun timeout in minutes. This is the maximum time that a * job run can consume resources before it is terminated and enters * TIMEOUT status. The default is 2,880 minutes (48 hours). This * overrides the timeout value set in the parent job.

*/ inline bool TimeoutHasBeenSet() const { return m_timeoutHasBeenSet; } /** *

The JobRun timeout in minutes. This is the maximum time that a * job run can consume resources before it is terminated and enters * TIMEOUT status. The default is 2,880 minutes (48 hours). This * overrides the timeout value set in the parent job.

*/ inline void SetTimeout(int value) { m_timeoutHasBeenSet = true; m_timeout = value; } /** *

The JobRun timeout in minutes. This is the maximum time that a * job run can consume resources before it is terminated and enters * TIMEOUT status. The default is 2,880 minutes (48 hours). This * overrides the timeout value set in the parent job.

*/ inline StartJobRunRequest& WithTimeout(int value) { SetTimeout(value); return *this;} /** *

The number of AWS Glue data processing units (DPUs) that can be allocated * when this job runs. A DPU is a relative measure of processing power that * consists of 4 vCPUs of compute capacity and 16 GB of memory. For more * information, see the AWS Glue * pricing page.

Do not set Max Capacity if using * WorkerType and NumberOfWorkers.

The value that * can be allocated for MaxCapacity depends on whether you are running * a Python shell job, or an Apache Spark ETL job:

  • When you * specify a Python shell job (JobCommand.Name="pythonshell"), you can * allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • *

    When you specify an Apache Spark ETL job * (JobCommand.Name="glueetl"), you can allocate from 2 to 100 DPUs. * The default is 10 DPUs. This job type cannot have a fractional DPU * allocation.

*/ inline double GetMaxCapacity() const{ return m_maxCapacity; } /** *

The number of AWS Glue data processing units (DPUs) that can be allocated * when this job runs. A DPU is a relative measure of processing power that * consists of 4 vCPUs of compute capacity and 16 GB of memory. For more * information, see the AWS Glue * pricing page.

Do not set Max Capacity if using * WorkerType and NumberOfWorkers.

The value that * can be allocated for MaxCapacity depends on whether you are running * a Python shell job, or an Apache Spark ETL job:

  • When you * specify a Python shell job (JobCommand.Name="pythonshell"), you can * allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • *

    When you specify an Apache Spark ETL job * (JobCommand.Name="glueetl"), you can allocate from 2 to 100 DPUs. * The default is 10 DPUs. This job type cannot have a fractional DPU * allocation.

*/ inline bool MaxCapacityHasBeenSet() const { return m_maxCapacityHasBeenSet; } /** *

The number of AWS Glue data processing units (DPUs) that can be allocated * when this job runs. A DPU is a relative measure of processing power that * consists of 4 vCPUs of compute capacity and 16 GB of memory. For more * information, see the AWS Glue * pricing page.

Do not set Max Capacity if using * WorkerType and NumberOfWorkers.

The value that * can be allocated for MaxCapacity depends on whether you are running * a Python shell job, or an Apache Spark ETL job:

  • When you * specify a Python shell job (JobCommand.Name="pythonshell"), you can * allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • *

    When you specify an Apache Spark ETL job * (JobCommand.Name="glueetl"), you can allocate from 2 to 100 DPUs. * The default is 10 DPUs. This job type cannot have a fractional DPU * allocation.

*/ inline void SetMaxCapacity(double value) { m_maxCapacityHasBeenSet = true; m_maxCapacity = value; } /** *

The number of AWS Glue data processing units (DPUs) that can be allocated * when this job runs. A DPU is a relative measure of processing power that * consists of 4 vCPUs of compute capacity and 16 GB of memory. For more * information, see the AWS Glue * pricing page.

Do not set Max Capacity if using * WorkerType and NumberOfWorkers.

The value that * can be allocated for MaxCapacity depends on whether you are running * a Python shell job, or an Apache Spark ETL job:

  • When you * specify a Python shell job (JobCommand.Name="pythonshell"), you can * allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.

  • *

    When you specify an Apache Spark ETL job * (JobCommand.Name="glueetl"), you can allocate from 2 to 100 DPUs. * The default is 10 DPUs. This job type cannot have a fractional DPU * allocation.

*/ inline StartJobRunRequest& WithMaxCapacity(double value) { SetMaxCapacity(value); return *this;} /** *

The name of the SecurityConfiguration structure to be used with * this job run.

*/ inline const Aws::String& GetSecurityConfiguration() const{ return m_securityConfiguration; } /** *

The name of the SecurityConfiguration structure to be used with * this job run.

*/ inline bool SecurityConfigurationHasBeenSet() const { return m_securityConfigurationHasBeenSet; } /** *

The name of the SecurityConfiguration structure to be used with * this job run.

*/ inline void SetSecurityConfiguration(const Aws::String& value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration = value; } /** *

The name of the SecurityConfiguration structure to be used with * this job run.

*/ inline void SetSecurityConfiguration(Aws::String&& value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration = std::move(value); } /** *

The name of the SecurityConfiguration structure to be used with * this job run.

*/ inline void SetSecurityConfiguration(const char* value) { m_securityConfigurationHasBeenSet = true; m_securityConfiguration.assign(value); } /** *

The name of the SecurityConfiguration structure to be used with * this job run.

*/ inline StartJobRunRequest& WithSecurityConfiguration(const Aws::String& value) { SetSecurityConfiguration(value); return *this;} /** *

The name of the SecurityConfiguration structure to be used with * this job run.

*/ inline StartJobRunRequest& WithSecurityConfiguration(Aws::String&& value) { SetSecurityConfiguration(std::move(value)); return *this;} /** *

The name of the SecurityConfiguration structure to be used with * this job run.

*/ inline StartJobRunRequest& WithSecurityConfiguration(const char* value) { SetSecurityConfiguration(value); return *this;} /** *

Specifies configuration properties of a job run notification.

*/ inline const NotificationProperty& GetNotificationProperty() const{ return m_notificationProperty; } /** *

Specifies configuration properties of a job run notification.

*/ inline bool NotificationPropertyHasBeenSet() const { return m_notificationPropertyHasBeenSet; } /** *

Specifies configuration properties of a job run notification.

*/ inline void SetNotificationProperty(const NotificationProperty& value) { m_notificationPropertyHasBeenSet = true; m_notificationProperty = value; } /** *

Specifies configuration properties of a job run notification.

*/ inline void SetNotificationProperty(NotificationProperty&& value) { m_notificationPropertyHasBeenSet = true; m_notificationProperty = std::move(value); } /** *

Specifies configuration properties of a job run notification.

*/ inline StartJobRunRequest& WithNotificationProperty(const NotificationProperty& value) { SetNotificationProperty(value); return *this;} /** *

Specifies configuration properties of a job run notification.

*/ inline StartJobRunRequest& WithNotificationProperty(NotificationProperty&& value) { SetNotificationProperty(std::move(value)); return *this;} /** *

The type of predefined worker that is allocated when a job runs. Accepts a * value of Standard, G.1X, or G.2X.

  • For the Standard * worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 * executors per worker.

  • For the G.1X worker type, * each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per * worker.

  • For the G.2X worker type, each worker * provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per * worker.

*/ inline const WorkerType& GetWorkerType() const{ return m_workerType; } /** *

The type of predefined worker that is allocated when a job runs. Accepts a * value of Standard, G.1X, or G.2X.

  • For the Standard * worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 * executors per worker.

  • For the G.1X worker type, * each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per * worker.

  • For the G.2X worker type, each worker * provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per * worker.

*/ inline bool WorkerTypeHasBeenSet() const { return m_workerTypeHasBeenSet; } /** *

The type of predefined worker that is allocated when a job runs. Accepts a * value of Standard, G.1X, or G.2X.

  • For the Standard * worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 * executors per worker.

  • For the G.1X worker type, * each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per * worker.

  • For the G.2X worker type, each worker * provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per * worker.

*/ inline void SetWorkerType(const WorkerType& value) { m_workerTypeHasBeenSet = true; m_workerType = value; } /** *

The type of predefined worker that is allocated when a job runs. Accepts a * value of Standard, G.1X, or G.2X.

  • For the Standard * worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 * executors per worker.

  • For the G.1X worker type, * each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per * worker.

  • For the G.2X worker type, each worker * provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per * worker.

*/ inline void SetWorkerType(WorkerType&& value) { m_workerTypeHasBeenSet = true; m_workerType = std::move(value); } /** *

The type of predefined worker that is allocated when a job runs. Accepts a * value of Standard, G.1X, or G.2X.

  • For the Standard * worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 * executors per worker.

  • For the G.1X worker type, * each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per * worker.

  • For the G.2X worker type, each worker * provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per * worker.

*/ inline StartJobRunRequest& WithWorkerType(const WorkerType& value) { SetWorkerType(value); return *this;} /** *

The type of predefined worker that is allocated when a job runs. Accepts a * value of Standard, G.1X, or G.2X.

  • For the Standard * worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 * executors per worker.

  • For the G.1X worker type, * each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per * worker.

  • For the G.2X worker type, each worker * provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per * worker.

*/ inline StartJobRunRequest& WithWorkerType(WorkerType&& value) { SetWorkerType(std::move(value)); return *this;} /** *

The number of workers of a defined workerType that are allocated * when a job runs.

The maximum number of workers you can define are 299 for * G.1X, and 149 for G.2X.

*/ inline int GetNumberOfWorkers() const{ return m_numberOfWorkers; } /** *

The number of workers of a defined workerType that are allocated * when a job runs.

The maximum number of workers you can define are 299 for * G.1X, and 149 for G.2X.

*/ inline bool NumberOfWorkersHasBeenSet() const { return m_numberOfWorkersHasBeenSet; } /** *

The number of workers of a defined workerType that are allocated * when a job runs.

The maximum number of workers you can define are 299 for * G.1X, and 149 for G.2X.

*/ inline void SetNumberOfWorkers(int value) { m_numberOfWorkersHasBeenSet = true; m_numberOfWorkers = value; } /** *

The number of workers of a defined workerType that are allocated * when a job runs.

The maximum number of workers you can define are 299 for * G.1X, and 149 for G.2X.

*/ inline StartJobRunRequest& WithNumberOfWorkers(int value) { SetNumberOfWorkers(value); return *this;} private: Aws::String m_jobName; bool m_jobNameHasBeenSet; Aws::String m_jobRunId; bool m_jobRunIdHasBeenSet; Aws::Map m_arguments; bool m_argumentsHasBeenSet; int m_timeout; bool m_timeoutHasBeenSet; double m_maxCapacity; bool m_maxCapacityHasBeenSet; Aws::String m_securityConfiguration; bool m_securityConfigurationHasBeenSet; NotificationProperty m_notificationProperty; bool m_notificationPropertyHasBeenSet; WorkerType m_workerType; bool m_workerTypeHasBeenSet; int m_numberOfWorkers; bool m_numberOfWorkersHasBeenSet; }; } // namespace Model } // namespace Glue } // namespace Aws