/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the iot-jobs-data-2017-09-29.normal.json service model. */ using System; using System.Runtime.ExceptionServices; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using System.Net; using Amazon.IoTJobsDataPlane.Model; using Amazon.IoTJobsDataPlane.Model.Internal.MarshallTransformations; using Amazon.IoTJobsDataPlane.Internal; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; using Amazon.Runtime.Internal.Transform; namespace Amazon.IoTJobsDataPlane { /// /// Implementation for accessing IoTJobsDataPlane /// /// AWS IoT Jobs is a service that allows you to define a set of jobs — remote operations /// that are sent to and executed on one or more devices connected to AWS IoT. For example, /// you can define a job that instructs a set of devices to download and install application /// or firmware updates, reboot, rotate certificates, or perform remote troubleshooting /// operations. /// /// /// /// To create a job, you make a job document which is a description of the remote operations /// to be performed, and you specify a list of targets that should perform the operations. /// The targets can be individual things, thing groups or both. /// /// /// /// AWS IoT Jobs sends a message to inform the targets that a job is available. The target /// starts the execution of the job by downloading the job document, performing the operations /// it specifies, and reporting its progress to AWS IoT. The Jobs service provides commands /// to track the progress of a job on a specific target and for all the targets of the /// job /// /// public partial class AmazonIoTJobsDataPlaneClient : AmazonServiceClient, IAmazonIoTJobsDataPlane { private static IServiceMetadata serviceMetadata = new AmazonIoTJobsDataPlaneMetadata(); #region Overrides /// /// Creates the signer for the service. /// protected override AbstractAWSSigner CreateSigner() { return new AWS4Signer(); } /// /// Customizes the runtime pipeline. /// /// Runtime pipeline for the current client. protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline) { pipeline.RemoveHandler(); pipeline.AddHandlerAfter(new AmazonIoTJobsDataPlaneEndpointResolver()); } /// /// Capture metadata for the service. /// protected override IServiceMetadata ServiceMetadata { get { return serviceMetadata; } } #endregion #region Dispose /// /// Disposes the service client. /// protected override void Dispose(bool disposing) { base.Dispose(disposing); } #endregion #region DescribeJobExecution internal virtual DescribeJobExecutionResponse DescribeJobExecution(DescribeJobExecutionRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeJobExecutionRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeJobExecutionResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Gets details of a job execution. /// /// Container for the necessary parameters to execute the DescribeJobExecution service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DescribeJobExecution service method, as returned by IoTJobsDataPlane. /// /// The certificate is invalid. /// /// /// The contents of the request were invalid. For example, this code is returned when /// an UpdateJobExecution request contains invalid status details. The message contains /// details about the error. /// /// /// The specified resource does not exist. /// /// /// The service is temporarily unavailable. /// /// /// The job is in a terminal state. /// /// /// The rate exceeds the limit. /// /// REST API Reference for DescribeJobExecution Operation public virtual Task DescribeJobExecutionAsync(DescribeJobExecutionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeJobExecutionRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeJobExecutionResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetPendingJobExecutions internal virtual GetPendingJobExecutionsResponse GetPendingJobExecutions(GetPendingJobExecutionsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetPendingJobExecutionsRequestMarshaller.Instance; options.ResponseUnmarshaller = GetPendingJobExecutionsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Gets the list of all jobs for a thing that are not in a terminal status. /// /// Container for the necessary parameters to execute the GetPendingJobExecutions service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetPendingJobExecutions service method, as returned by IoTJobsDataPlane. /// /// The certificate is invalid. /// /// /// The contents of the request were invalid. For example, this code is returned when /// an UpdateJobExecution request contains invalid status details. The message contains /// details about the error. /// /// /// The specified resource does not exist. /// /// /// The service is temporarily unavailable. /// /// /// The rate exceeds the limit. /// /// REST API Reference for GetPendingJobExecutions Operation public virtual Task GetPendingJobExecutionsAsync(GetPendingJobExecutionsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetPendingJobExecutionsRequestMarshaller.Instance; options.ResponseUnmarshaller = GetPendingJobExecutionsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region StartNextPendingJobExecution internal virtual StartNextPendingJobExecutionResponse StartNextPendingJobExecution(StartNextPendingJobExecutionRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = StartNextPendingJobExecutionRequestMarshaller.Instance; options.ResponseUnmarshaller = StartNextPendingJobExecutionResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Gets and starts the next pending (status IN_PROGRESS or QUEUED) job execution for /// a thing. /// /// Container for the necessary parameters to execute the StartNextPendingJobExecution service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the StartNextPendingJobExecution service method, as returned by IoTJobsDataPlane. /// /// The certificate is invalid. /// /// /// The contents of the request were invalid. For example, this code is returned when /// an UpdateJobExecution request contains invalid status details. The message contains /// details about the error. /// /// /// The specified resource does not exist. /// /// /// The service is temporarily unavailable. /// /// /// The rate exceeds the limit. /// /// REST API Reference for StartNextPendingJobExecution Operation public virtual Task StartNextPendingJobExecutionAsync(StartNextPendingJobExecutionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = StartNextPendingJobExecutionRequestMarshaller.Instance; options.ResponseUnmarshaller = StartNextPendingJobExecutionResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region UpdateJobExecution internal virtual UpdateJobExecutionResponse UpdateJobExecution(UpdateJobExecutionRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateJobExecutionRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateJobExecutionResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Updates the status of a job execution. /// /// Container for the necessary parameters to execute the UpdateJobExecution service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the UpdateJobExecution service method, as returned by IoTJobsDataPlane. /// /// The certificate is invalid. /// /// /// The contents of the request were invalid. For example, this code is returned when /// an UpdateJobExecution request contains invalid status details. The message contains /// details about the error. /// /// /// An update attempted to change the job execution to a state that is invalid because /// of the job execution's current state (for example, an attempt to change a request /// in state SUCCESS to state IN_PROGRESS). In this case, the body of the error message /// also contains the executionState field. /// /// /// The specified resource does not exist. /// /// /// The service is temporarily unavailable. /// /// /// The rate exceeds the limit. /// /// REST API Reference for UpdateJobExecution Operation public virtual Task UpdateJobExecutionAsync(UpdateJobExecutionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateJobExecutionRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateJobExecutionResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion } }