/// <summary>
 /// Update specific properties of a job. You can call this operation to notify
 /// the Import/Export service that the hard drives comprising the import or
 /// export job have been shipped to the Microsoft data center. An Update Job
 /// Properties request can also be used to cancel an existing job.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='storageAccountName'>
 /// The name of the storage account where data will be imported to or exported
 /// from.
 /// </param>
 /// <param name='jobName'>
 /// The name of the import/export job.
 /// </param>
 /// <param name='patchJobParameters'>
 /// </param>
 /// <param name='ifModifiedSince'>
 /// A DateTime value. Specify this header to perform the operation only if the
 /// resource has been modified since the specified time
 /// </param>
 /// <param name='ifUnmodifiedSince'>
 /// A DateTime value. Specify this header to perform the operation only if the
 /// resource has not been modified since the specified date/time.
 /// </param>
 /// <param name='ifMatch'>
 /// An ETag value. Specify this header to perform the operation only if the
 /// resource's ETag matches the value specified.
 /// </param>
 /// <param name='ifNoneMatch'>
 /// An ETag value, or the wildcard character (*). Specify this header to
 /// perform the operation only if the resource's ETag does not match the
 /// value specified.
 /// </param>
 public static int?PatchJob(this IStorageImportExportLib operations, string storageAccountName, string jobName, PatchJobParameters patchJobParameters, string ifModifiedSince = default(string), string ifUnmodifiedSince = default(string), string ifMatch = default(string), string ifNoneMatch = default(string))
 {
     return(Task.Factory.StartNew(s => ((IStorageImportExportLib)s).PatchJobAsync(storageAccountName, jobName, patchJobParameters, ifModifiedSince, ifUnmodifiedSince, ifMatch, ifNoneMatch), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
 /// <summary>
 /// Update specific properties of a job. You can call this operation to notify
 /// the Import/Export service that the hard drives comprising the import or
 /// export job have been shipped to the Microsoft data center. An Update Job
 /// Properties request can also be used to cancel an existing job.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='storageAccountName'>
 /// The name of the storage account where data will be imported to or exported
 /// from.
 /// </param>
 /// <param name='jobName'>
 /// The name of the import/export job.
 /// </param>
 /// <param name='patchJobParameters'>
 /// </param>
 /// <param name='ifModifiedSince'>
 /// A DateTime value. Specify this header to perform the operation only if the
 /// resource has been modified since the specified time
 /// </param>
 /// <param name='ifUnmodifiedSince'>
 /// A DateTime value. Specify this header to perform the operation only if the
 /// resource has not been modified since the specified date/time.
 /// </param>
 /// <param name='ifMatch'>
 /// An ETag value. Specify this header to perform the operation only if the
 /// resource's ETag matches the value specified.
 /// </param>
 /// <param name='ifNoneMatch'>
 /// An ETag value, or the wildcard character (*). Specify this header to
 /// perform the operation only if the resource's ETag does not match the
 /// value specified.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <int?> PatchJobAsync(this IStorageImportExportLib operations, string storageAccountName, string jobName, PatchJobParameters patchJobParameters, string ifModifiedSince = default(string), string ifUnmodifiedSince = default(string), string ifMatch = default(string), string ifNoneMatch = default(string), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.PatchJobWithHttpMessagesAsync(storageAccountName, jobName, patchJobParameters, ifModifiedSince, ifUnmodifiedSince, ifMatch, ifNoneMatch, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
        /// <summary>
        /// Notify the Import/Export service that the hard drives comprising the import or export job have been shipped to the Microsoft data center.
        /// </summary>
        /// <param name="storageAccountName">Name of the storage account you want to operate on.</param>
        /// <param name="jobName">Name of the job.</param>
        /// <param name="deliveryPackage">Contains information about the package being shipped by the customer to the Microsoft data center.</param>
        public void ShipJob(string storageAccountName, string jobName, PackageInfomation deliveryPackage)
        {
            var patchJobParameters = new PatchJobParameters(deliveryPackage: deliveryPackage, state: "Shipping");

            client.PatchJob(storageAccountName, jobName, patchJobParameters);
        }