/// <summary>
 /// Creates a PreApproval as an asynchronous operation.
 /// </summary>
 /// <param name="request">The data to create a PreApproval.</param>
 /// <param name="requestOptions"><see cref="RequestOptions"/></param>
 /// <param name="cancellationToken">Cancellation token</param>
 /// <returns>A task whose the result is the created PreApproval.</returns>
 /// <exception cref="MercadoPagoException">If a unexpected exception occurs.</exception>
 /// <exception cref="MercadoPagoApiException">If the API returns a error.</exception>
 /// <remarks>
 /// Check the API documentation
 /// <a href="https://www.mercadopago.com/developers/en/reference/subscriptions/_preapproval/post/">here</a>.
 /// </remarks>
 public Task <Resource.PreApproval.PreApproval> CreateAsync(
     PreApprovalCreateRequest request,
     RequestOptions requestOptions       = null,
     CancellationToken cancellationToken = default)
 {
     return(SendAsync("/preapproval", HttpMethod.Post, request, requestOptions, cancellationToken));
 }
 /// <summary>
 /// Creates a PreApproval.
 /// </summary>
 /// <param name="request">The data to create a PreApproval.</param>
 /// <param name="requestOptions"><see cref="RequestOptions"/></param>
 /// <returns>The created PreApproval.</returns>
 /// <exception cref="MercadoPagoException">If a unexpected exception occurs.</exception>
 /// <exception cref="MercadoPagoApiException">If the API returns a error.</exception>
 /// <remarks>
 /// Check the API documentation
 /// <a href="https://www.mercadopago.com/developers/en/reference/subscriptions/_preapproval/post/">here</a>.
 /// </remarks>
 public Resource.PreApproval.PreApproval Create(
     PreApprovalCreateRequest request,
     RequestOptions requestOptions = null)
 {
     return(Send("/preapproval", HttpMethod.Post, request, requestOptions));
 }