public Response Post(CalculateExchangeContent content, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNull(content, nameof(content));

            using var message = CreatePostRequest(content);
            _pipeline.Send(message, cancellationToken);
            switch (message.Response.Status)
            {
            case 200:
            case 202:
                return(message.Response);

            default:
                throw new RequestFailedException(message.Response);
            }
        }
        public async Task <Response> PostAsync(CalculateExchangeContent content, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNull(content, nameof(content));

            using var message = CreatePostRequest(content);
            await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false);

            switch (message.Response.Status)
            {
            case 200:
            case 202:
                return(message.Response);

            default:
                throw new RequestFailedException(message.Response);
            }
        }
        internal HttpMessage CreatePostRequest(CalculateExchangeContent content)
        {
            var message = _pipeline.CreateMessage();
            var request = message.Request;

            request.Method = RequestMethod.Post;
            var uri = new RawRequestUriBuilder();

            uri.Reset(_endpoint);
            uri.AppendPath("/providers/Microsoft.Capacity/calculateExchange", false);
            uri.AppendQuery("api-version", _apiVersion, true);
            request.Uri = uri;
            request.Headers.Add("Accept", "application/json");
            request.Headers.Add("Content-Type", "application/json");
            var content0 = new Utf8JsonRequestContent();

            content0.JsonWriter.WriteObjectValue(content);
            request.Content = content0;
            _userAgent.Apply(message);
            return(message);
        }
 public virtual ArmOperation <CalculateExchangeOperationResultResponse> PostCalculateExchange(WaitUntil waitUntil, CalculateExchangeContent content, CancellationToken cancellationToken = default)
 {
     using var scope = CalculateExchangeClientDiagnostics.CreateScope("TenantResourceExtensionClient.PostCalculateExchange");
     scope.Start();
     try
     {
         var response  = CalculateExchangeRestClient.Post(content, cancellationToken);
         var operation = new ReservationsArmOperation <CalculateExchangeOperationResultResponse>(new CalculateExchangeOperationResultResponseOperationSource(), CalculateExchangeClientDiagnostics, Pipeline, CalculateExchangeRestClient.CreatePostRequest(content).Request, response, OperationFinalStateVia.AzureAsyncOperation);
         if (waitUntil == WaitUntil.Completed)
         {
             operation.WaitForCompletion(cancellationToken);
         }
         return(operation);
     }
     catch (Exception e)
     {
         scope.Failed(e);
         throw;
     }
 }
        public static ArmOperation <CalculateExchangeOperationResultResponse> PostCalculateExchange(this TenantResource tenantResource, WaitUntil waitUntil, CalculateExchangeContent content, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNull(content, nameof(content));

            return(GetExtensionClient(tenantResource).PostCalculateExchange(waitUntil, content, cancellationToken));
        }
        public static async Task <ArmOperation <CalculateExchangeOperationResultResponse> > PostCalculateExchangeAsync(this TenantResource tenantResource, WaitUntil waitUntil, CalculateExchangeContent content, CancellationToken cancellationToken = default)
        {
            Argument.AssertNotNull(content, nameof(content));

            return(await GetExtensionClient(tenantResource).PostCalculateExchangeAsync(waitUntil, content, cancellationToken).ConfigureAwait(false));
        }