public virtual Task <StripeEphemeralKey> CreateAsync(StripeEphemeralKeyCreateOptions createOptions, StripeRequestOptions requestOptions = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            // Creating an ephemeral key requires a specific API version to be set. This is handled as a parameter
            // but has to be set on the StripeRequestOptions instead.
            requestOptions = requestOptions ?? new StripeRequestOptions();
            requestOptions.StripeVersion = createOptions.StripeVersion;

            return(this.PostAsync(Urls.EphemeralKeys, requestOptions, cancellationToken, createOptions));
        }
        public virtual StripeEphemeralKey Create(StripeEphemeralKeyCreateOptions createOptions, StripeRequestOptions requestOptions = null)
        {
            if (createOptions.StripeVersion == null)
            {
                throw new System.ArgumentException("The StripeVersion parameter has to be set when creating an Ephemeral Key", "StripeVersion");
            }

            // Creating an ephemeral key requires a specific API version to be set. This is handled as a parameter
            // but has to be set on the StripeRequestOptions instead.
            requestOptions = requestOptions ?? new StripeRequestOptions();
            requestOptions.StripeVersion = createOptions.StripeVersion;

            return(this.Post(Urls.EphemeralKeys, requestOptions, createOptions));
        }