private async Task <CommandSendModel> SendCommandAsync(string deviceId, string prefix, JObject document) { CommandSendModel response = new CommandSendModel(); var request = new Amazon.IoT.Model.CreateJobRequest() { Document = document.ToString(), JobId = prefix + Guid.NewGuid().ToString("N"), Targets = new List <string>(1) { "arn:aws:iot:" + _config["AWS:Region"] + ":" + _config["AWS:AccountId"] + ":thing/" + deviceId } }; var clientresponse = await _awsClientsService.IoTClient.CreateJobAsync(request); response.JobId = clientresponse.JobId; response.JobUrl = _config["BaseSystem:ServerUrl"] + "/api/jobs/" + clientresponse.JobId; response.Document = document; return(response); }
private Amazon.IoT.Model.CreateJobResponse CallAWSServiceOperation(IAmazonIoT client, Amazon.IoT.Model.CreateJobRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS IoT", "CreateJob"); try { #if DESKTOP return(client.CreateJob(request)); #elif CORECLR return(client.CreateJobAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }
public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.IoT.Model.CreateJobRequest(); // populate AbortConfig var requestAbortConfigIsNull = true; request.AbortConfig = new Amazon.IoT.Model.AbortConfig(); List <Amazon.IoT.Model.AbortCriteria> requestAbortConfig_abortConfig_CriteriaList = null; if (cmdletContext.AbortConfig_CriteriaList != null) { requestAbortConfig_abortConfig_CriteriaList = cmdletContext.AbortConfig_CriteriaList; } if (requestAbortConfig_abortConfig_CriteriaList != null) { request.AbortConfig.CriteriaList = requestAbortConfig_abortConfig_CriteriaList; requestAbortConfigIsNull = false; } // determine if request.AbortConfig should be set to null if (requestAbortConfigIsNull) { request.AbortConfig = null; } if (cmdletContext.Description != null) { request.Description = cmdletContext.Description; } if (cmdletContext.Document != null) { request.Document = cmdletContext.Document; } if (cmdletContext.DocumentSource != null) { request.DocumentSource = cmdletContext.DocumentSource; } // populate JobExecutionsRolloutConfig var requestJobExecutionsRolloutConfigIsNull = true; request.JobExecutionsRolloutConfig = new Amazon.IoT.Model.JobExecutionsRolloutConfig(); Amazon.IoT.Model.ExponentialRolloutRate requestJobExecutionsRolloutConfig_jobExecutionsRolloutConfig_ExponentialRate = null; if (cmdletContext.JobExecutionsRolloutConfig_ExponentialRate != null) { requestJobExecutionsRolloutConfig_jobExecutionsRolloutConfig_ExponentialRate = cmdletContext.JobExecutionsRolloutConfig_ExponentialRate; } if (requestJobExecutionsRolloutConfig_jobExecutionsRolloutConfig_ExponentialRate != null) { request.JobExecutionsRolloutConfig.ExponentialRate = requestJobExecutionsRolloutConfig_jobExecutionsRolloutConfig_ExponentialRate; requestJobExecutionsRolloutConfigIsNull = false; } System.Int32?requestJobExecutionsRolloutConfig_jobExecutionsRolloutConfig_MaximumPerMinute = null; if (cmdletContext.JobExecutionsRolloutConfig_MaximumPerMinute != null) { requestJobExecutionsRolloutConfig_jobExecutionsRolloutConfig_MaximumPerMinute = cmdletContext.JobExecutionsRolloutConfig_MaximumPerMinute.Value; } if (requestJobExecutionsRolloutConfig_jobExecutionsRolloutConfig_MaximumPerMinute != null) { request.JobExecutionsRolloutConfig.MaximumPerMinute = requestJobExecutionsRolloutConfig_jobExecutionsRolloutConfig_MaximumPerMinute.Value; requestJobExecutionsRolloutConfigIsNull = false; } // determine if request.JobExecutionsRolloutConfig should be set to null if (requestJobExecutionsRolloutConfigIsNull) { request.JobExecutionsRolloutConfig = null; } if (cmdletContext.JobId != null) { request.JobId = cmdletContext.JobId; } // populate PresignedUrlConfig var requestPresignedUrlConfigIsNull = true; request.PresignedUrlConfig = new Amazon.IoT.Model.PresignedUrlConfig(); System.Int64?requestPresignedUrlConfig_presignedUrlConfig_ExpiresInSec = null; if (cmdletContext.PresignedUrlConfig_ExpiresInSec != null) { requestPresignedUrlConfig_presignedUrlConfig_ExpiresInSec = cmdletContext.PresignedUrlConfig_ExpiresInSec.Value; } if (requestPresignedUrlConfig_presignedUrlConfig_ExpiresInSec != null) { request.PresignedUrlConfig.ExpiresInSec = requestPresignedUrlConfig_presignedUrlConfig_ExpiresInSec.Value; requestPresignedUrlConfigIsNull = false; } System.String requestPresignedUrlConfig_presignedUrlConfig_RoleArn = null; if (cmdletContext.PresignedUrlConfig_RoleArn != null) { requestPresignedUrlConfig_presignedUrlConfig_RoleArn = cmdletContext.PresignedUrlConfig_RoleArn; } if (requestPresignedUrlConfig_presignedUrlConfig_RoleArn != null) { request.PresignedUrlConfig.RoleArn = requestPresignedUrlConfig_presignedUrlConfig_RoleArn; requestPresignedUrlConfigIsNull = false; } // determine if request.PresignedUrlConfig should be set to null if (requestPresignedUrlConfigIsNull) { request.PresignedUrlConfig = null; } if (cmdletContext.Tag != null) { request.Tags = cmdletContext.Tag; } if (cmdletContext.Target != null) { request.Targets = cmdletContext.Target; } if (cmdletContext.TargetSelection != null) { request.TargetSelection = cmdletContext.TargetSelection; } // populate TimeoutConfig var requestTimeoutConfigIsNull = true; request.TimeoutConfig = new Amazon.IoT.Model.TimeoutConfig(); System.Int64?requestTimeoutConfig_timeoutConfig_InProgressTimeoutInMinute = null; if (cmdletContext.TimeoutConfig_InProgressTimeoutInMinute != null) { requestTimeoutConfig_timeoutConfig_InProgressTimeoutInMinute = cmdletContext.TimeoutConfig_InProgressTimeoutInMinute.Value; } if (requestTimeoutConfig_timeoutConfig_InProgressTimeoutInMinute != null) { request.TimeoutConfig.InProgressTimeoutInMinutes = requestTimeoutConfig_timeoutConfig_InProgressTimeoutInMinute.Value; requestTimeoutConfigIsNull = false; } // determine if request.TimeoutConfig should be set to null if (requestTimeoutConfigIsNull) { request.TimeoutConfig = null; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); }