public override Task <BulkRegistryOperationResult> AddDeviceWithTwinAsync(Device device, Twin twin, CancellationToken cancellationToken) { ValidateDeviceId(device); if (!string.IsNullOrWhiteSpace(device.ETag)) { throw new ArgumentException(ApiResources.ETagSetWhileRegisteringDevice); } var exportImportDeviceList = new List <ExportImportDevice>(1); var exportImportDevice = new ExportImportDevice(device, ImportMode.Create); exportImportDevice.Tags = twin?.Tags; exportImportDevice.Properties = new ExportImportDevice.PropertyContainer(); exportImportDevice.Properties.DesiredProperties = twin?.Properties.Desired; exportImportDevice.Properties.ReportedProperties = twin?.Properties.Reported; exportImportDeviceList.Add(exportImportDevice); return(this.BulkDeviceOperationsAsync <BulkRegistryOperationResult>( exportImportDeviceList, ClientApiVersionHelper.ApiVersionQueryString, cancellationToken)); }
public override Task <Twin> UpdateTwinAsync(string deviceId, Twin twinPatch, string etag) { return(this.UpdateTwinAsync(deviceId, twinPatch, etag, CancellationToken.None)); }
public override Task <Twin> ReplaceTwinAsync(string deviceId, Twin newTwin, string etag, CancellationToken cancellationToken) { return(this.UpdateTwinInternalAsync(deviceId, newTwin, etag, cancellationToken, true)); }
public override Task <BulkRegistryOperationResult> AddDeviceWithTwinAsync(Device device, Twin twin) { return(AddDeviceWithTwinAsync(device, twin, CancellationToken.None)); }
public override Task <Twin> UpdateTwinAsync(string deviceId, Twin twinPatch, string etag, CancellationToken cancellationToken) { return(this.UpdateTwinInternalAsync(deviceId, twinPatch, etag, cancellationToken, false)); }
public override Task <Twin> ReplaceTwinAsync(string deviceId, Twin newTwin, string etag) { return(this.ReplaceTwinAsync(deviceId, newTwin, etag, CancellationToken.None)); }
/// <summary> /// Updates the mutable fields of <see cref="Twin"/> /// </summary> /// <param name="deviceId">Device Id</param> /// <param name="twinPatch">Twin with updated fields</param> /// <param name="etag">Twin's etag</param> /// <returns>Updated Twin instance</returns> public abstract Task <Twin> UpdateTwinAsync(string deviceId, Twin twinPatch, string etag);
/// <summary> /// Updates the mutable fields of <see cref="Twin"/> /// </summary> /// <param name="deviceId">Device Id</param> /// <param name="twinPatch">Twin with updated fields</param> /// <param name="etag">Twin's etag</param> /// <param name="cancellationToken">Cancellation token</param> /// <returns>Updated Twin instance</returns> public abstract Task <Twin> UpdateTwinAsync(string deviceId, Twin twinPatch, string etag, CancellationToken cancellationToken);
public override Task <JobResponse> ScheduleTwinUpdateAsync(string jobId, IEnumerable <string> deviceIds, Twin twin, DateTime startTimeUtc, long maxExecutionTimeInSeconds, CancellationToken cancellationToken) { this.EnsureInstanceNotClosed(); var jobRequest = new JobRequest() { JobId = jobId, JobType = JobType.ScheduleUpdateTwin, UpdateTwin = twin, DeviceIds = deviceIds, StartTime = startTimeUtc, MaxExecutionTimeInSeconds = maxExecutionTimeInSeconds }; return(this.CreateJobAsync(jobRequest, cancellationToken)); }
public override Task <JobResponse> ScheduleTwinUpdateAsync(string jobId, IEnumerable <string> deviceIds, Twin twin, DateTime startTimeUtc, long maxExecutionTimeInSecondsL) { return(this.ScheduleTwinUpdateAsync(jobId, deviceIds, twin, startTimeUtc, maxExecutionTimeInSecondsL, CancellationToken.None)); }
/// <summary> /// Creates a new Job to update twin tags and desired properties on one or multiple devices /// </summary> /// <param name="jobId">Unique Job Id for this job</param> /// <param name="queryCondition">Query condition to evaluate which devices to run the job on</param> /// <param name="twin">Twin object to use for the update</param> /// <param name="startTimeUtc">Date time in Utc to start the job</param> /// <param name="maxExecutionTimeInSeconds">Max execution time in seconds, i.e., ttl duration the job can run</param> /// <param name="cancellationToken">Task cancellation token</param> /// <returns>A JobResponse object</returns> public virtual Task <JobResponse> ScheduleTwinUpdateAsync(string jobId, string queryCondition, Twin twin, DateTime startTimeUtc, long maxExecutionTimeInSeconds, CancellationToken cancellationToken) { EnsureInstanceNotClosed(); var jobRequest = new JobRequest { JobId = jobId, JobType = JobType.ScheduleUpdateTwin, UpdateTwin = twin, QueryCondition = queryCondition, StartTime = startTimeUtc, MaxExecutionTimeInSeconds = maxExecutionTimeInSeconds }; return(CreateJobAsync(jobRequest, cancellationToken)); }
/// <summary> /// Creates a new Job to update twin tags and desired properties on one or multiple devices /// </summary> /// <param name="jobId">Unique Job Id for this job</param> /// <param name="queryCondition">Query condition to evaluate which devices to run the job on</param> /// <param name="twin">Twin object to use for the update</param> /// <param name="startTimeUtc">Date time in Utc to start the job</param> /// <param name="maxExecutionTimeInSeconds">Max execution time in seconds, i.e., ttl duration the job can run</param> /// <returns>A JobResponse object</returns> public virtual Task <JobResponse> ScheduleTwinUpdateAsync(string jobId, string queryCondition, Twin twin, DateTime startTimeUtc, long maxExecutionTimeInSeconds) { return(ScheduleTwinUpdateAsync(jobId, queryCondition, twin, startTimeUtc, maxExecutionTimeInSeconds, CancellationToken.None)); }
/// <summary> /// Creates a new Job to update twin tags and desired properties on one or multiple devices /// </summary> /// <param name="jobId">Unique Job Id for this job</param> /// <param name="queryCondition">Query condition to evaluate which devices to run the job on</param> /// <param name="twin">Twin object to use for the update</param> /// <param name="startTimeUtc">Date time in Utc to start the job</param> /// <param name="maxExecutionTimeInSeconds">Max execution time in seconds, i.e., ttl duration the job can run</param> /// <param name="cancellationToken">Task cancellation token</param> /// <returns>A JobResponse object</returns> public abstract Task <JobResponse> ScheduleTwinUpdateAsync(string jobId, string queryCondition, Twin twin, DateTime startTimeUtc, long maxExecutionTimeInSeconds, CancellationToken cancellationToken);