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(); }