Пример #1
0
 internal static string ToSerializedValue(this SnapshotApplyMode value)
 {
     switch (value)
     {
     case SnapshotApplyMode.CreateNew:
         return("CreateNew");
     }
     return(null);
 }
 /// <summary>
 /// Submit an operation to apply a snapshot to current subscription. For each
 /// snapshot, only subscriptions included in the applyScope of Snapshot - Take
 /// can apply it.
 /// The snapshot interfaces are for users to backup and restore their face data
 /// from one face subscription to another, inside same region or across
 /// regions. The workflow contains two phases, user first calls Snapshot - Take
 /// to create a copy of the source object and store it as a snapshot, then
 /// calls Snapshot - Apply to paste the snapshot to target subscription. The
 /// snapshots are stored in a centralized location (per Azure instance), so
 /// that they can be applied cross accounts and regions.
 /// Applying snapshot is an asynchronous operation. An operation id can be
 /// obtained from the "Operation-Location" field in response header, to be used
 /// in OperationStatus - Get for tracking the progress of applying the
 /// snapshot. The target object id will be included in the "resourceLocation"
 /// field in OperationStatus - Get response when the operation status is
 /// "succeeded".
 /// Snapshot applying time depends on the number of person and face entries in
 /// the snapshot object. It could be in seconds, or up to 1 hour for 1,000,000
 /// persons with multiple faces.
 /// Snapshots will be automatically expired and cleaned in 48 hours after it is
 /// created by Snapshot - Take. So the target subscription is required to apply
 /// the snapshot in 48 hours since its creation.
 /// Applying a snapshot will not block any other operations against the target
 /// object, however it is not recommended because the correctness cannot be
 /// guaranteed during snapshot applying. After snapshot applying is completed,
 /// all operations towards the target object can work as normal. Snapshot also
 /// includes the training results of the source object, which means target
 /// subscription the snapshot applied to does not need re-train the target
 /// object before calling Identify/FindSimilar.
 /// One snapshot can be applied multiple times in parallel, while currently
 /// only CreateNew apply mode is supported, which means the apply operation
 /// will fail if target subscription already contains an object of same type
 /// and using the same objectId. Users can specify the "objectId" in request
 /// body to avoid such conflicts.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='snapshotId'>
 /// Id referencing a particular snapshot.
 /// </param>
 /// <param name='objectId'>
 /// User specified target object id to be created from the snapshot.
 /// </param>
 /// <param name='mode'>
 /// Snapshot applying mode. Currently only CreateNew is supported, which means
 /// the apply operation will fail if target subscription already contains an
 /// object of same type and using the same objectId. Users can specify the
 /// "objectId" in request body to avoid such conflicts. Possible values
 /// include: 'CreateNew'
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <SnapshotApplyHeaders> ApplyAsync(this ISnapshotOperations operations, System.Guid snapshotId, string objectId, SnapshotApplyMode mode = default(SnapshotApplyMode), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.ApplyWithHttpMessagesAsync(snapshotId, objectId, mode, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Headers);
     }
 }
 /// <summary>
 /// Initializes a new instance of the ApplySnapshotRequest class.
 /// </summary>
 /// <param name="objectId">User specified target object id to be
 /// created from the snapshot.</param>
 /// <param name="mode">Snapshot applying mode. Currently only CreateNew
 /// is supported, which means the apply operation will fail if target
 /// subscription already contains an object of same type and using the
 /// same objectId. Users can specify the "objectId" in request body to
 /// avoid such conflicts. Possible values include: 'CreateNew'</param>
 public ApplySnapshotRequest(string objectId, SnapshotApplyMode mode = default(SnapshotApplyMode))
 {
     ObjectId = objectId;
     Mode     = mode;
     CustomInit();
 }