/** * 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 IoTJobsDataPlane { namespace Model { /** */ class AWS_IOTJOBSDATAPLANE_API StartNextPendingJobExecutionRequest : public IoTJobsDataPlaneRequest { public: StartNextPendingJobExecutionRequest(); // 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 "StartNextPendingJobExecution"; } Aws::String SerializePayload() const override; /** *

The name of the thing associated with the device.

*/ inline const Aws::String& GetThingName() const{ return m_thingName; } /** *

The name of the thing associated with the device.

*/ inline bool ThingNameHasBeenSet() const { return m_thingNameHasBeenSet; } /** *

The name of the thing associated with the device.

*/ inline void SetThingName(const Aws::String& value) { m_thingNameHasBeenSet = true; m_thingName = value; } /** *

The name of the thing associated with the device.

*/ inline void SetThingName(Aws::String&& value) { m_thingNameHasBeenSet = true; m_thingName = std::move(value); } /** *

The name of the thing associated with the device.

*/ inline void SetThingName(const char* value) { m_thingNameHasBeenSet = true; m_thingName.assign(value); } /** *

The name of the thing associated with the device.

*/ inline StartNextPendingJobExecutionRequest& WithThingName(const Aws::String& value) { SetThingName(value); return *this;} /** *

The name of the thing associated with the device.

*/ inline StartNextPendingJobExecutionRequest& WithThingName(Aws::String&& value) { SetThingName(std::move(value)); return *this;} /** *

The name of the thing associated with the device.

*/ inline StartNextPendingJobExecutionRequest& WithThingName(const char* value) { SetThingName(value); return *this;} /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline const Aws::Map& GetStatusDetails() const{ return m_statusDetails; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline bool StatusDetailsHasBeenSet() const { return m_statusDetailsHasBeenSet; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline void SetStatusDetails(const Aws::Map& value) { m_statusDetailsHasBeenSet = true; m_statusDetails = value; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline void SetStatusDetails(Aws::Map&& value) { m_statusDetailsHasBeenSet = true; m_statusDetails = std::move(value); } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& WithStatusDetails(const Aws::Map& value) { SetStatusDetails(value); return *this;} /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& WithStatusDetails(Aws::Map&& value) { SetStatusDetails(std::move(value)); return *this;} /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& AddStatusDetails(const Aws::String& key, const Aws::String& value) { m_statusDetailsHasBeenSet = true; m_statusDetails.emplace(key, value); return *this; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& AddStatusDetails(Aws::String&& key, const Aws::String& value) { m_statusDetailsHasBeenSet = true; m_statusDetails.emplace(std::move(key), value); return *this; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& AddStatusDetails(const Aws::String& key, Aws::String&& value) { m_statusDetailsHasBeenSet = true; m_statusDetails.emplace(key, std::move(value)); return *this; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& AddStatusDetails(Aws::String&& key, Aws::String&& value) { m_statusDetailsHasBeenSet = true; m_statusDetails.emplace(std::move(key), std::move(value)); return *this; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& AddStatusDetails(const char* key, Aws::String&& value) { m_statusDetailsHasBeenSet = true; m_statusDetails.emplace(key, std::move(value)); return *this; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& AddStatusDetails(Aws::String&& key, const char* value) { m_statusDetailsHasBeenSet = true; m_statusDetails.emplace(std::move(key), value); return *this; } /** *

A collection of name/value pairs that describe the status of the job * execution. If not specified, the statusDetails are unchanged.

*/ inline StartNextPendingJobExecutionRequest& AddStatusDetails(const char* key, const char* value) { m_statusDetailsHasBeenSet = true; m_statusDetails.emplace(key, value); return *this; } /** *

Specifies the amount of time this device has to finish execution of this job. * If the job execution status is not set to a terminal state before this timer * expires, or before the timer is reset (by calling * UpdateJobExecution, setting the status to IN_PROGRESS * and specifying a new timeout value in field stepTimeoutInMinutes) * the job execution status will be automatically set to TIMED_OUT. * Note that setting this timeout has no effect on that job execution timeout which * may have been specified when the job was created (CreateJob using * field timeoutConfig).

*/ inline long long GetStepTimeoutInMinutes() const{ return m_stepTimeoutInMinutes; } /** *

Specifies the amount of time this device has to finish execution of this job. * If the job execution status is not set to a terminal state before this timer * expires, or before the timer is reset (by calling * UpdateJobExecution, setting the status to IN_PROGRESS * and specifying a new timeout value in field stepTimeoutInMinutes) * the job execution status will be automatically set to TIMED_OUT. * Note that setting this timeout has no effect on that job execution timeout which * may have been specified when the job was created (CreateJob using * field timeoutConfig).

*/ inline bool StepTimeoutInMinutesHasBeenSet() const { return m_stepTimeoutInMinutesHasBeenSet; } /** *

Specifies the amount of time this device has to finish execution of this job. * If the job execution status is not set to a terminal state before this timer * expires, or before the timer is reset (by calling * UpdateJobExecution, setting the status to IN_PROGRESS * and specifying a new timeout value in field stepTimeoutInMinutes) * the job execution status will be automatically set to TIMED_OUT. * Note that setting this timeout has no effect on that job execution timeout which * may have been specified when the job was created (CreateJob using * field timeoutConfig).

*/ inline void SetStepTimeoutInMinutes(long long value) { m_stepTimeoutInMinutesHasBeenSet = true; m_stepTimeoutInMinutes = value; } /** *

Specifies the amount of time this device has to finish execution of this job. * If the job execution status is not set to a terminal state before this timer * expires, or before the timer is reset (by calling * UpdateJobExecution, setting the status to IN_PROGRESS * and specifying a new timeout value in field stepTimeoutInMinutes) * the job execution status will be automatically set to TIMED_OUT. * Note that setting this timeout has no effect on that job execution timeout which * may have been specified when the job was created (CreateJob using * field timeoutConfig).

*/ inline StartNextPendingJobExecutionRequest& WithStepTimeoutInMinutes(long long value) { SetStepTimeoutInMinutes(value); return *this;} private: Aws::String m_thingName; bool m_thingNameHasBeenSet; Aws::Map m_statusDetails; bool m_statusDetailsHasBeenSet; long long m_stepTimeoutInMinutes; bool m_stepTimeoutInMinutesHasBeenSet; }; } // namespace Model } // namespace IoTJobsDataPlane } // namespace Aws