/// <summary>
        /// Copy a custom model stored in this resource (the source) to the user specified
        /// target Form Recognizer resource.
        /// </summary>
        /// <param name="modelId">Model identifier of the model to copy to the target Form Recognizer resource.</param>
        /// <param name="target">A <see cref="CopyAuthorization"/> with the copy authorization to the target Form Recognizer resource.</param>
        /// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param>
        /// <returns>A <see cref="CopyModelOperation"/> to wait on this long-running operation.  Its <see cref="CopyModelOperation.Value"/> upon successful
        /// completion will contain meta-data about the model copied.</returns>
        public virtual CopyModelOperation StartCopyModel(string modelId, CopyAuthorization target, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNullOrEmpty(modelId, nameof(modelId));
            Argument.AssertNotNull(target, nameof(target));

            using DiagnosticScope scope = Diagnostics.CreateScope($"{nameof(FormTrainingClient)}.{nameof(StartCopyModel)}");
            scope.Start();

            try
            {
                Guid guid    = ClientCommon.ValidateModelId(modelId, nameof(modelId));
                var  request = new CopyRequest(target.ResourceId,
                                               target.Region,
                                               new CopyAuthorizationResult(target.ModelId, target.AccessToken, target.ExpiresOn.ToUnixTimeSeconds()));

                Response response = ServiceClient.CopyCustomModel(guid, request, cancellationToken);
                string   location = ClientCommon.GetResponseHeader(response.Headers, Constants.OperationLocationHeader);

                return(new CopyModelOperation(ServiceClient, Diagnostics, location, target.ModelId));
            }
            catch (Exception e)
            {
                scope.Failed(e);
                throw;
            }
        }
 public CopyAuthorizationParse(CopyAuthorization target)
 {
     modelId                 = target.ModelId;
     accessToken             = target.AccessToken;
     expirationDateTimeTicks = target.ExpiresOn.ToUnixTimeSeconds();
     resourceId              = target.ResourceId;
     resourceRegion          = target.Region;
 }
Example #3
0
        public virtual CopyModelOperation StartCopyModel(string modelId, CopyAuthorization target, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNullOrEmpty(modelId, nameof(modelId));
            Argument.AssertNotNull(target, nameof(target));

            Guid guid    = ClientCommon.ValidateModelId(modelId, nameof(modelId));
            var  request = new CopyRequest(target.ResourceId,
                                           target.Region,
                                           new CopyAuthorizationResult(target.ModelId, target.AccessToken, target.ExpiresOn /*.ToUnixTimeSeconds()*/));

            ResponseWithHeaders <ServiceCopyCustomModelHeaders> response = ServiceClient.CopyCustomModel(guid, request, cancellationToken);

            return(new CopyModelOperation(ServiceClient, Diagnostics, response.Headers.OperationLocation, target.ModelId));
        }
Example #4
0
        public virtual async Task <CopyModelOperation> StartCopyModelAsync(string modelId, CopyAuthorization target, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNullOrEmpty(modelId, nameof(modelId));
            Argument.AssertNotNull(target, nameof(target));

            Guid guid    = ClientCommon.ValidateModelId(modelId, nameof(modelId));
            var  request = new CopyRequest(target.ResourceId,
                                           target.Region,
                                           new CopyAuthorizationResult(target.ModelId, target.AccessToken, target.ExpiresOn.ToUnixTimeSeconds()));

            Response response = await ServiceClient.CopyCustomModelAsync(guid, request, cancellationToken).ConfigureAwait(false);

            string location = ClientCommon.GetResponseHeader(response.Headers, Constants.OperationLocationHeader);

            return(new CopyModelOperation(ServiceClient, Diagnostics, location, target.ModelId));
        }