Current section

Files

Jump to
stripity_stripe lib openapi phases compile.ex
Raw

lib/openapi/phases/compile.ex

defmodule Stripe.OpenApi.Phases.Compile do
@moduledoc false
@reserved_type_names ~w(
after and catch do else end false fn for if in nil not or receive rescue true try when with
)a
# credo:disable-for-next-line Credo.Check.Refactor.CyclomaticComplexity
def run(blueprint, _options) do
modules = Enum.map(blueprint.components, fn {_k, component} -> component.module end)
for {_name, component} <- blueprint.components do
funcs_types =
for operation <- component.operations,
operation_definition =
lookup_operation(
# credo:disable-for-next-line Credo.Check.Warning.UnsafeToAtom
{operation["path"], String.to_atom(operation["operation"])},
blueprint.operations
),
operation_definition != nil do
# credo:disable-for-lines:2 Credo.Check.Warning.UnsafeToAtom
arguments =
Enum.map(operation_definition.path_parameters, &String.to_atom(&1.name))
params? =
match?({:object, _, [_ | _]}, operation_definition.query_parameters) ||
match?({:object, _, [_ | _]}, operation_definition.body_parameters)
argument_names =
Enum.map(arguments, fn
name ->
Macro.var(name, __MODULE__)
end)
argument_values =
arguments
|> Enum.reject(&(&1 == :params))
|> Enum.map(fn name ->
Macro.var(name, __MODULE__)
end)
argument_specs =
Enum.map(arguments, fn
:params ->
quote do
params :: map()
end
name ->
quote do
unquote(Macro.var(name, __MODULE__)) :: binary()
end
end)
function_name =
operation_definition
|> to_func_name(operation)
|> Macro.underscore()
# credo:disable-for-next-line Credo.Check.Warning.UnsafeToAtom
|> String.to_atom()
success_response_spec = return_spec(operation_definition.success_response)
params =
cond do
operation_definition.query_parameters != {:object, [], []} ->
operation_definition.query_parameters
operation_definition.body_parameters != {:object, [], []} ->
operation_definition.body_parameters
true ->
[]
end
{param_specs, object_types} = unnest_object_types(params)
object_types = MapSet.to_list(object_types)
function_code =
if params? do
quote do
@spec unquote(function_name)(
unquote_splicing(argument_specs),
params :: unquote(to_inline_spec(param_specs)),
opts :: Keyword.t()
) ::
{:ok, unquote(success_response_spec)}
| {:error, Stripe.ApiErrors.t()}
| {:error, term()}
def unquote(function_name)(
unquote_splicing(argument_names),
params \\ %{},
opts \\ []
) do
path =
Stripe.OpenApi.Path.replace_path_params(
unquote(operation_definition.path),
unquote(Macro.escape(operation_definition.path_parameters)),
unquote(argument_names)
)
opts
|> Stripe.Request.new_request()
|> Stripe.Request.put_endpoint(path)
|> Stripe.Request.put_params(params)
|> Stripe.Request.put_method(unquote(operation_definition.method))
|> Stripe.Request.make_request()
end
end
else
# credo:disable-for-next-line Credo.Check.Refactor.Nesting
if operation_definition.path == "/v1/files" and operation_definition.method == :post do
quote do
@spec unquote(function_name)(
unquote_splicing(argument_specs),
opts :: Keyword.t()
) ::
{:ok, unquote(success_response_spec)}
| {:error, Stripe.ApiErrors.t()}
| {:error, term()}
def unquote(function_name)(
params \\ %{},
opts \\ []
) do
opts
|> Stripe.Request.new_request()
|> Stripe.Request.put_endpoint(unquote(operation_definition.path))
|> Stripe.Request.put_params(params)
|> Stripe.Request.put_method(unquote(operation_definition.method))
|> Stripe.Request.make_file_upload_request()
end
end
else
quote do
@spec unquote(function_name)(
unquote_splicing(argument_specs),
opts :: Keyword.t()
) ::
{:ok, unquote(success_response_spec)}
| {:error, Stripe.ApiErrors.t()}
| {:error, term()}
def unquote(function_name)(
unquote_splicing(argument_names),
opts \\ []
) do
path =
Stripe.OpenApi.Path.replace_path_params(
unquote(operation_definition.path),
unquote(Macro.escape(operation_definition.path_parameters)),
unquote(argument_values)
)
opts
|> Stripe.Request.new_request()
|> Stripe.Request.put_endpoint(path)
|> Stripe.Request.put_method(unquote(operation_definition.method))
|> Stripe.Request.make_request()
end
end
end
end
deprecated =
if operation_definition.deprecated do
quote do
@deprecated "Stripe has deprecated this operation"
end
else
quote do
end
end
ast =
quote do
unquote(deprecated)
@doc unquote(operation_definition.description)
unquote(function_code)
end
{ast, object_types}
end
{funcs, types} = Enum.unzip(funcs_types)
# credo:disable-for-next-line Credo.Check.Warning.UnsafeToAtom
fields = component.properties |> Map.keys() |> Enum.map(&String.to_atom/1)
# Fix duplicate handling (uniq)
types =
types
|> List.flatten()
|> Enum.uniq_by(fn {_, meta, _} -> meta[:name] end)
|> Enum.sort()
|> Enum.map(&to_type_spec/1)
specs =
component.properties
|> Enum.map(fn {key, value} ->
# credo:disable-for-next-line Credo.Check.Warning.UnsafeToAtom
{String.to_atom(key), build_spec(value, modules)}
end)
|> Enum.sort()
typedoc_fields =
component.properties
|> Enum.sort()
|> Enum.map_join("\n", fn {key, value} -> typedoc(key, value) end)
typedoc = """
The `#{component.name}` type.
#{typedoc_fields}
"""
type_doc =
if fields != nil do
quote do
defstruct unquote(fields)
@typedoc unquote(typedoc)
@type t :: %__MODULE__{
unquote_splicing(specs)
}
end
else
quote do
end
end
body =
quote do
use Stripe.Entity
@moduledoc unquote(component.description)
unquote(type_doc)
unquote_splicing(types)
unquote_splicing(funcs)
end
# Module.create(component.module, body, Macro.Env.location(__ENV__))
code =
quote do
defmodule unquote(component.module) do
unquote(body)
end
end
bin =
code
|> Macro.to_string()
|> Code.format_string!()
[_ | names] = Module.split(component.module)
filename = Enum.map_join(names, "__", &Macro.underscore/1)
File.write!("lib/generated/#{filename}.ex", bin)
end
{:ok, blueprint}
end
defp unnest_object_types(params) do
Macro.postwalk(params, MapSet.new(), fn
{:object, meta, children}, acc ->
if meta[:name] == nil || children == [] do
{{:object, meta, children}, acc}
else
{{:ref, [name: meta[:name]], []}, MapSet.put(acc, {:object, meta, children})}
end
other, acc ->
{other, acc}
end)
end
defp to_type_spec({:object, meta, children}) do
specs = Enum.map(children, &to_spec_map/1)
name = type_spec_name(meta[:name])
quote do
@typedoc unquote(meta[:description])
@type unquote(Macro.var(name, __MODULE__)) :: %{
unquote_splicing(specs)
}
end
end
defp to_type_spec({:array, meta, [child]} = _ast) do
name = type_spec_name(meta[:name])
quote do
@typedoc unquote(meta[:description])
@type unquote(Macro.var(name, __MODULE__)) :: unquote(to_type(child))
end
end
defp to_type_spec({_, meta, children}) do
specs = Enum.map(children, &to_spec_map/1)
name = type_spec_name(meta[:name])
quote do
@typedoc unquote(meta[:description])
@type unquote(Macro.var(name, __MODULE__)) :: %{
unquote_splicing(specs)
}
end
end
defp type_spec_name(name) do
# sanitize reserved words like :end
if name in [:reference], do: :reference_0, else: safe_type_name(name)
end
defp to_inline_spec({_, _meta, children}) do
specs = Enum.map(children, &to_spec_map/1)
quote do
%{
unquote_splicing(specs)
}
end
end
defp to_spec_map({:array, meta, [_type]} = ast) do
{to_name(meta), to_type(ast)}
end
defp to_spec_map({:any_of, meta, [type | tail]}) do
{to_name(meta),
quote do
unquote(to_type(type)) | unquote(to_type(tail))
end}
end
defp to_spec_map({:ref, meta, _} = ast) do
{to_name(meta), to_type(ast)}
end
defp to_spec_map({_type, meta, _children} = ast) do
{to_name(meta), to_type(ast)}
end
defp to_name(meta) do
if meta[:required] do
meta[:name]
else
quote do
optional(unquote(meta[:name]))
end
end
end
def to_type([type]) do
quote do
unquote(to_type(type))
end
end
def to_type([type | tail]) do
quote do
unquote(to_type(type)) | unquote(to_type(tail))
end
end
def to_type({:ref, meta, _}) do
spec_name = type_spec_name(meta[:name])
Macro.var(spec_name, __MODULE__)
end
def to_type({:array, _meta, [type]}) do
quote do
list(unquote(to_type(type)))
end
end
def to_type({:any_of, _, [type | tail]}) do
quote do
unquote(to_type(type)) | unquote(to_type(tail))
end
end
def to_type({:string, metadata, _}) do
if metadata[:enum] do
to_type(metadata[:enum])
else
to_type(:string)
end
end
def to_type({:object, metadata, _}) do
if metadata[:name] == :metadata do
quote do
%{optional(binary) => binary}
end
else
quote do
map()
end
end
end
def to_type({type, _, _}) do
to_type(type)
end
def to_type(type) when type in [:boolean, :number, :integer, :float] do
quote do
unquote(Macro.var(type, __MODULE__))
end
end
def to_type(:string) do
quote do
binary
end
end
def to_type(type) do
type
end
defp return_spec(%OpenApiGen.Blueprint.Reference{name: name}) do
module = module_from_ref(name)
quote do
unquote(module).t()
end
end
defp return_spec(%OpenApiGen.Blueprint.ListOf{type_of: type}) do
quote do
Stripe.List.t(unquote(return_spec(type)))
end
end
defp return_spec(%OpenApiGen.Blueprint.SearchResult{type_of: type}) do
quote do
Stripe.SearchResult.t(unquote(return_spec(type)))
end
end
defp return_spec(%{any_of: [type]} = _type) do
return_spec(type)
end
defp return_spec(%OpenApiGen.Blueprint.AnyOf{any_of: [any_of | tail]} = type) do
type = Map.put(type, :any_of, tail)
{:|, [], [return_spec(any_of), return_spec(type)]}
end
defp return_spec(_) do
[]
end
defp build_spec(%{"nullable" => true} = type, modules) do
type = Map.delete(type, "nullable")
{:|, [], [build_spec(type, modules), nil]}
end
defp build_spec(%{"anyOf" => [type]} = _type, modules) do
build_spec(type, modules)
end
defp build_spec(%{"anyOf" => [any_of | tail]} = type, modules) do
type = Map.put(type, "anyOf", tail)
{:|, [], [build_spec(any_of, modules), build_spec(type, modules)]}
end
defp build_spec(%{"type" => "string"}, _) do
quote do
binary
end
end
defp build_spec(%{"type" => "boolean"}, _) do
quote do
boolean
end
end
defp build_spec(%{"type" => "integer"}, _) do
quote do
integer
end
end
defp build_spec(%{"$ref" => ref}, modules) do
module = module_from_ref(ref)
if module in modules do
quote do
unquote(module).t()
end
else
quote do
term
end
end
end
defp build_spec(_, _) do
quote do
term
end
end
defp module_from_ref(ref) do
module =
ref |> String.split("/") |> List.last() |> String.split(".") |> Enum.map(&Macro.camelize/1)
# credo:disable-for-next-line Credo.Check.Warning.UnsafeToAtom
Module.concat(["Stripe" | module])
end
defp typedoc(field, props) do
" * `#{field}` #{props["description"]}"
end
defp lookup_operation(path, operations) do
Map.get(operations, path)
end
# NOTE: This is a mapping of operation ids to function names. This is necessary
# to avoid breaking changes. In the future, we should remove this mapping and
# use the operation id directly as the function name.
#
# Temporarily, I am adding all the existing ones although using
# stripe_extension["method_name"] could be default while we only add new ones.
# That will be done in follow up work since it would be difficult to assess
# the situation.
# credo:disable-for-next-line Credo.Check.Readability.StrictModuleLayout
@operation_identity_mapping %{
{"GetClimateProductsProduct", "/v1/climate/products/{product}", "retrieve"} => "retrieve",
{"GetClimateProducts", "/v1/climate/products", "list"} => "list",
{"PostPaymentMethods", "/v1/payment_methods", "create"} => "create",
{"GetPaymentMethodsPaymentMethod", "/v1/payment_methods/{payment_method}", "retrieve"} => "retrieve",
{"PostPaymentMethodsPaymentMethod", "/v1/payment_methods/{payment_method}", "update"} => "update",
{"GetPaymentMethods", "/v1/payment_methods", "list"} => "list",
{"PostPaymentMethodsPaymentMethodAttach", "/v1/payment_methods/{payment_method}/attach", "attach"} => "attach",
{"PostPaymentMethodsPaymentMethodDetach", "/v1/payment_methods/{payment_method}/detach", "detach"} => "detach",
{"GetTaxRegistrations", "/v1/tax/registrations", "list"} => "list",
{"PostTaxRegistrations", "/v1/tax/registrations", "create"} => "create",
{"GetTaxRegistrationsId", "/v1/tax/registrations/{id}", "retrieve"} => "retrieve",
{"PostTaxRegistrationsId", "/v1/tax/registrations/{id}", "update"} => "update",
{"GetTreasuryCreditReversals", "/v1/treasury/credit_reversals", "list"} => "list",
{"GetTreasuryCreditReversalsCreditReversal", "/v1/treasury/credit_reversals/{credit_reversal}", "retrieve"} =>
"retrieve",
{"PostTreasuryCreditReversals", "/v1/treasury/credit_reversals", "create"} => "create",
{"GetFinancialConnectionsTransactionsTransaction", "/v1/financial_connections/transactions/{transaction}",
"retrieve"} => "retrieve",
{"GetFinancialConnectionsTransactions", "/v1/financial_connections/transactions", "list"} => "list",
{"GetRadarValueLists", "/v1/radar/value_lists", "list"} => "list",
{"GetRadarValueListsValueList", "/v1/radar/value_lists/{value_list}", "retrieve"} => "retrieve",
{"PostRadarValueLists", "/v1/radar/value_lists", "create"} => "create",
{"PostRadarValueListsValueList", "/v1/radar/value_lists/{value_list}", "update"} => "update",
{"DeleteRadarValueListsValueList", "/v1/radar/value_lists/{value_list}", "delete"} => "delete",
{"GetIssuingAuthorizations", "/v1/issuing/authorizations", "list"} => "list",
{"GetIssuingAuthorizationsAuthorization", "/v1/issuing/authorizations/{authorization}", "retrieve"} => "retrieve",
{"PostIssuingAuthorizationsAuthorization", "/v1/issuing/authorizations/{authorization}", "update"} => "update",
{"PostIssuingAuthorizationsAuthorizationApprove", "/v1/issuing/authorizations/{authorization}/approve", "approve"} =>
"approve",
{"PostIssuingAuthorizationsAuthorizationDecline", "/v1/issuing/authorizations/{authorization}/decline", "decline"} =>
"decline",
{"PostTestHelpersIssuingAuthorizations", "/v1/test_helpers/issuing/authorizations", "create"} => "create",
{"PostTestHelpersIssuingAuthorizationsAuthorizationIncrement",
"/v1/test_helpers/issuing/authorizations/{authorization}/increment", "increment"} => "increment",
{"PostTestHelpersIssuingAuthorizationsAuthorizationReverse",
"/v1/test_helpers/issuing/authorizations/{authorization}/reverse", "reverse"} => "reverse",
{"PostTestHelpersIssuingAuthorizationsAuthorizationExpire",
"/v1/test_helpers/issuing/authorizations/{authorization}/expire", "expire"} => "expire",
{"PostTestHelpersIssuingAuthorizationsAuthorizationCapture",
"/v1/test_helpers/issuing/authorizations/{authorization}/capture", "capture"} => "capture",
{"GetCreditNotesCreditNoteLines", "/v1/credit_notes/{credit_note}/lines", "list"} => "list",
{"GetPaymentMethodDomainsPaymentMethodDomain", "/v1/payment_method_domains/{payment_method_domain}", "retrieve"} =>
"retrieve",
{"GetPaymentMethodDomains", "/v1/payment_method_domains", "list"} => "list",
{"PostPaymentMethodDomains", "/v1/payment_method_domains", "create"} => "create",
{"PostPaymentMethodDomainsPaymentMethodDomain", "/v1/payment_method_domains/{payment_method_domain}", "update"} =>
"update",
{"PostPaymentMethodDomainsPaymentMethodDomainValidate",
"/v1/payment_method_domains/{payment_method_domain}/validate", "validate"} => "validate",
{"PostAccountsAccountLoginLinks", "/v1/accounts/{account}/login_links", "create"} => "create",
{"GetApplePayDomains", "/v1/apple_pay/domains", "list"} => "list",
{"PostApplePayDomains", "/v1/apple_pay/domains", "create"} => "create",
{"GetApplePayDomainsDomain", "/v1/apple_pay/domains/{domain}", "retrieve"} => "retrieve",
{"DeleteApplePayDomainsDomain", "/v1/apple_pay/domains/{domain}", "delete"} => "delete",
{"PostTransfersIdReversals", "/v1/transfers/{id}/reversals", "create"} => "create",
{"GetTransfersIdReversals", "/v1/transfers/{id}/reversals", "list"} => "list",
{"GetTransfersTransferReversalsId", "/v1/transfers/{transfer}/reversals/{id}", "retrieve"} => "retrieve",
{"PostTransfersTransferReversalsId", "/v1/transfers/{transfer}/reversals/{id}", "update"} => "update",
{"GetClimateOrdersOrder", "/v1/climate/orders/{order}", "retrieve"} => "retrieve",
{"GetClimateOrders", "/v1/climate/orders", "list"} => "list",
{"PostClimateOrders", "/v1/climate/orders", "create"} => "create",
{"PostClimateOrdersOrder", "/v1/climate/orders/{order}", "update"} => "update",
{"PostClimateOrdersOrderCancel", "/v1/climate/orders/{order}/cancel", "cancel"} => "cancel",
{"GetSetupAttempts", "/v1/setup_attempts", "list"} => "list",
{"GetTokensToken", "/v1/tokens/{token}", "retrieve"} => "retrieve",
{"PostTokens", "/v1/tokens", "create"} => "create",
{"GetPaymentLinks", "/v1/payment_links", "list"} => "list",
{"GetPaymentLinksPaymentLink", "/v1/payment_links/{payment_link}", "retrieve"} => "retrieve",
{"GetPaymentLinksPaymentLinkLineItems", "/v1/payment_links/{payment_link}/line_items", "list_line_items"} =>
"list_line_items",
{"PostPaymentLinks", "/v1/payment_links", "create"} => "create",
{"PostPaymentLinksPaymentLink", "/v1/payment_links/{payment_link}", "update"} => "update",
{"PostTopups", "/v1/topups", "create"} => "create",
{"GetTopups", "/v1/topups", "list"} => "list",
{"GetTopupsTopup", "/v1/topups/{topup}", "retrieve"} => "retrieve",
{"PostTopupsTopup", "/v1/topups/{topup}", "update"} => "update",
{"PostTopupsTopupCancel", "/v1/topups/{topup}/cancel", "cancel"} => "cancel",
{"PostCustomersCustomerSourcesId", "/v1/customers/{customer}/sources/{id}", "update"} => "update",
{"DeleteCustomersCustomerSourcesId", "/v1/customers/{customer}/sources/{id}", "delete"} => "delete",
{"GetCoupons", "/v1/coupons", "list"} => "list",
{"PostCoupons", "/v1/coupons", "create"} => "create",
{"GetCouponsCoupon", "/v1/coupons/{coupon}", "retrieve"} => "retrieve",
{"PostCouponsCoupon", "/v1/coupons/{coupon}", "update"} => "update",
{"DeleteCouponsCoupon", "/v1/coupons/{coupon}", "delete"} => "delete",
{"PostTerminalReadersReader", "/v1/terminal/readers/{reader}", "update"} => "update",
{"GetTerminalReadersReader", "/v1/terminal/readers/{reader}", "retrieve"} => "retrieve",
{"PostTerminalReaders", "/v1/terminal/readers", "create"} => "create",
{"GetTerminalReaders", "/v1/terminal/readers", "list"} => "list",
{"DeleteTerminalReadersReader", "/v1/terminal/readers/{reader}", "delete"} => "delete",
{"PostTerminalReadersReaderProcessPaymentIntent", "/v1/terminal/readers/{reader}/process_payment_intent",
"process_payment_intent"} => "process_payment_intent",
{"PostTerminalReadersReaderProcessSetupIntent", "/v1/terminal/readers/{reader}/process_setup_intent",
"process_setup_intent"} => "process_setup_intent",
{"PostTerminalReadersReaderCancelAction", "/v1/terminal/readers/{reader}/cancel_action", "cancel_action"} =>
"cancel_action",
{"PostTerminalReadersReaderSetReaderDisplay", "/v1/terminal/readers/{reader}/set_reader_display",
"set_reader_display"} => "set_reader_display",
{"PostTerminalReadersReaderRefundPayment", "/v1/terminal/readers/{reader}/refund_payment", "refund_payment"} =>
"refund_payment",
{"PostTestHelpersTerminalReadersReaderPresentPaymentMethod",
"/v1/test_helpers/terminal/readers/{reader}/present_payment_method", "present_payment_method"} =>
"present_payment_method",
{"GetSubscriptionItems", "/v1/subscription_items", "list"} => "list",
{"GetSubscriptionItemsItem", "/v1/subscription_items/{item}", "retrieve"} => "retrieve",
{"PostSubscriptionItems", "/v1/subscription_items", "create"} => "create",
{"PostSubscriptionItemsItem", "/v1/subscription_items/{item}", "update"} => "update",
{"DeleteSubscriptionItemsItem", "/v1/subscription_items/{item}", "delete"} => "delete",
{"GetSubscriptionItemsSubscriptionItemUsageRecordSummaries",
"/v1/subscription_items/{subscription_item}/usage_record_summaries", "usage_record_summaries"} =>
"usage_record_summaries",
{"PostTerminalConnectionTokens", "/v1/terminal/connection_tokens", "create"} => "create",
{"PostTerminalConfigurations", "/v1/terminal/configurations", "create"} => "create",
{"GetTerminalConfigurations", "/v1/terminal/configurations", "list"} => "list",
{"GetTerminalConfigurationsConfiguration", "/v1/terminal/configurations/{configuration}", "retrieve"} => "retrieve",
{"PostTerminalConfigurationsConfiguration", "/v1/terminal/configurations/{configuration}", "update"} => "update",
{"DeleteTerminalConfigurationsConfiguration", "/v1/terminal/configurations/{configuration}", "delete"} => "delete",
{"GetApplicationFees", "/v1/application_fees", "list"} => "list",
{"GetApplicationFeesId", "/v1/application_fees/{id}", "retrieve"} => "retrieve",
{"GetFiles", "/v1/files", "list"} => "list",
{"GetFilesFile", "/v1/files/{file}", "retrieve"} => "retrieve",
{"PostFiles", "/v1/files", "create"} => "create",
{"GetReviews", "/v1/reviews", "list"} => "list",
{"GetReviewsReview", "/v1/reviews/{review}", "retrieve"} => "retrieve",
{"PostReviewsReviewApprove", "/v1/reviews/{review}/approve", "approve"} => "approve",
{"GetBalance", "/v1/balance", "retrieve"} => "retrieve",
{"GetCustomersCustomerCashBalance", "/v1/customers/{customer}/cash_balance", "retrieve"} => "retrieve",
{"PostCustomersCustomerCashBalance", "/v1/customers/{customer}/cash_balance", "update"} => "update",
{"GetPaymentIntentsSearch", "/v1/payment_intents/search", "search"} => "search",
{"PostPaymentIntents", "/v1/payment_intents", "create"} => "create",
{"GetPaymentIntents", "/v1/payment_intents", "list"} => "list",
{"GetPaymentIntentsIntent", "/v1/payment_intents/{intent}", "retrieve"} => "retrieve",
{"PostPaymentIntentsIntent", "/v1/payment_intents/{intent}", "update"} => "update",
{"PostPaymentIntentsIntentConfirm", "/v1/payment_intents/{intent}/confirm", "confirm"} => "confirm",
{"PostPaymentIntentsIntentCancel", "/v1/payment_intents/{intent}/cancel", "cancel"} => "cancel",
{"PostPaymentIntentsIntentCapture", "/v1/payment_intents/{intent}/capture", "capture"} => "capture",
{"PostPaymentIntentsIntentIncrementAuthorization", "/v1/payment_intents/{intent}/increment_authorization",
"increment_authorization"} => "increment_authorization",
{"PostPaymentIntentsIntentVerifyMicrodeposits", "/v1/payment_intents/{intent}/verify_microdeposits",
"verify_microdeposits"} => "verify_microdeposits",
{"PostPaymentIntentsIntentApplyCustomerBalance", "/v1/payment_intents/{intent}/apply_customer_balance",
"apply_customer_balance"} => "apply_customer_balance",
{"GetAccountsAccountCapabilities", "/v1/accounts/{account}/capabilities", "list"} => "list",
{"GetAccountsAccountCapabilitiesCapability", "/v1/accounts/{account}/capabilities/{capability}", "retrieve"} =>
"retrieve",
{"PostAccountsAccountCapabilitiesCapability", "/v1/accounts/{account}/capabilities/{capability}", "update"} =>
"update",
{"GetSubscriptionSchedules", "/v1/subscription_schedules", "list"} => "list",
{"PostSubscriptionSchedules", "/v1/subscription_schedules", "create"} => "create",
{"GetSubscriptionSchedulesSchedule", "/v1/subscription_schedules/{schedule}", "retrieve"} => "retrieve",
{"PostSubscriptionSchedulesSchedule", "/v1/subscription_schedules/{schedule}", "update"} => "update",
{"PostSubscriptionSchedulesScheduleCancel", "/v1/subscription_schedules/{schedule}/cancel", "cancel"} => "cancel",
{"PostSubscriptionSchedulesScheduleRelease", "/v1/subscription_schedules/{schedule}/release", "release"} =>
"release",
{"PostTreasuryFinancialAccounts", "/v1/treasury/financial_accounts", "create"} => "create",
{"PostTreasuryFinancialAccountsFinancialAccount", "/v1/treasury/financial_accounts/{financial_account}", "update"} =>
"update",
{"PostTreasuryFinancialAccountsFinancialAccountFeatures",
"/v1/treasury/financial_accounts/{financial_account}/features", "update_features"} => "update_features",
{"GetTreasuryFinancialAccounts", "/v1/treasury/financial_accounts", "list"} => "list",
{"GetTreasuryFinancialAccountsFinancialAccount", "/v1/treasury/financial_accounts/{financial_account}", "retrieve"} =>
"retrieve",
{"GetTreasuryFinancialAccountsFinancialAccountFeatures",
"/v1/treasury/financial_accounts/{financial_account}/features", "retrieve_features"} => "retrieve_features",
{"GetChargesSearch", "/v1/charges/search", "search"} => "search",
{"GetCharges", "/v1/charges", "list"} => "list",
{"PostCharges", "/v1/charges", "create"} => "create",
{"GetChargesCharge", "/v1/charges/{charge}", "retrieve"} => "retrieve",
{"PostChargesCharge", "/v1/charges/{charge}", "update"} => "update",
{"PostChargesChargeCapture", "/v1/charges/{charge}/capture", "capture"} => "capture",
{"GetCustomersCustomerSources", "/v1/customers/{customer}/sources", "list"} => "list",
{"GetCustomersCustomerSourcesId", "/v1/customers/{customer}/sources/{id}", "retrieve"} => "retrieve",
{"PostCustomersCustomerSources", "/v1/customers/{customer}/sources", "create"} => "create",
{"GetCustomersSearch", "/v1/customers/search", "search"} => "search",
{"GetCustomers", "/v1/customers", "list"} => "list",
{"PostCustomers", "/v1/customers", "create"} => "create",
{"GetCustomersCustomer", "/v1/customers/{customer}", "retrieve"} => "retrieve",
{"PostCustomersCustomer", "/v1/customers/{customer}", "update"} => "update",
{"DeleteCustomersCustomer", "/v1/customers/{customer}", "delete"} => "delete",
{"GetCustomersCustomerPaymentMethods", "/v1/customers/{customer}/payment_methods", "list_payment_methods"} =>
"list_payment_methods",
{"GetCustomersCustomerPaymentMethodsPaymentMethod", "/v1/customers/{customer}/payment_methods/{payment_method}",
"retrieve_payment_method"} => "retrieve_payment_method",
{"GetCustomersCustomerBalanceTransactions", "/v1/customers/{customer}/balance_transactions", "balance_transactions"} =>
"balance_transactions",
{"PostTestHelpersCustomersCustomerFundCashBalance", "/v1/test_helpers/customers/{customer}/fund_cash_balance",
"fund_cash_balance"} => "fund_cash_balance",
{"PostCustomersCustomerFundingInstructions", "/v1/customers/{customer}/funding_instructions",
"create_funding_instructions"} => "create_funding_instructions",
{"DeleteCustomersCustomerDiscount", "/v1/customers/{customer}/discount", "delete_discount"} => "delete_discount",
{"GetReportingReportTypesReportType", "/v1/reporting/report_types/{report_type}", "retrieve"} => "retrieve",
{"GetReportingReportTypes", "/v1/reporting/report_types", "list"} => "list",
{"PostTaxCalculations", "/v1/tax/calculations", "create"} => "create",
{"GetTaxCalculationsCalculationLineItems", "/v1/tax/calculations/{calculation}/line_items", "list_line_items"} =>
"list_line_items",
{"GetAccountsAccountExternalAccounts", "/v1/accounts/{account}/external_accounts", "list"} => "list",
{"GetAccountsAccountExternalAccountsId", "/v1/accounts/{account}/external_accounts/{id}", "retrieve"} => "retrieve",
{"PostAccountsAccountExternalAccounts", "/v1/accounts/{account}/external_accounts", "create"} => "create",
{"PostAccountsAccountExternalAccountsId", "/v1/accounts/{account}/external_accounts/{id}", "update"} => "update",
{"DeleteAccountsAccountExternalAccountsId", "/v1/accounts/{account}/external_accounts/{id}", "delete"} => "delete",
{"GetTreasuryTransactionsId", "/v1/treasury/transactions/{id}", "retrieve"} => "retrieve",
{"GetTreasuryTransactions", "/v1/treasury/transactions", "list"} => "list",
{"GetIssuingTokens", "/v1/issuing/tokens", "list"} => "list",
{"GetIssuingTokensToken", "/v1/issuing/tokens/{token}", "retrieve"} => "retrieve",
{"PostIssuingTokensToken", "/v1/issuing/tokens/{token}", "update"} => "update",
{"GetWebhookEndpoints", "/v1/webhook_endpoints", "list"} => "list",
{"GetWebhookEndpointsWebhookEndpoint", "/v1/webhook_endpoints/{webhook_endpoint}", "retrieve"} => "retrieve",
{"PostWebhookEndpoints", "/v1/webhook_endpoints", "create"} => "create",
{"PostWebhookEndpointsWebhookEndpoint", "/v1/webhook_endpoints/{webhook_endpoint}", "update"} => "update",
{"DeleteWebhookEndpointsWebhookEndpoint", "/v1/webhook_endpoints/{webhook_endpoint}", "delete"} => "delete",
{"GetPricesSearch", "/v1/prices/search", "search"} => "search",
{"GetPrices", "/v1/prices", "list"} => "list",
{"PostPrices", "/v1/prices", "create"} => "create",
{"GetPricesPrice", "/v1/prices/{price}", "retrieve"} => "retrieve",
{"PostPricesPrice", "/v1/prices/{price}", "update"} => "update",
{"PostCustomersCustomerSourcesId", "/v1/customers/{customer}/sources/{id}", "update"} => "update",
{"DeleteCustomersCustomerSourcesId", "/v1/customers/{customer}/sources/{id}", "delete"} => "delete",
{"PostCustomersCustomerSourcesIdVerify", "/v1/customers/{customer}/sources/{id}/verify", "verify"} => "verify",
{"GetInvoicesSearch", "/v1/invoices/search", "search"} => "search",
{"GetInvoicesUpcoming", "/v1/invoices/upcoming", "upcoming"} => "upcoming",
{"PostInvoicesInvoice", "/v1/invoices/{invoice}", "update"} => "update",
{"PostInvoicesInvoicePay", "/v1/invoices/{invoice}/pay", "pay"} => "pay",
{"GetInvoicesUpcomingLines", "/v1/invoices/upcoming/lines", "upcoming_lines"} => "upcoming_lines",
{"PostInvoices", "/v1/invoices", "create"} => "create",
{"GetInvoices", "/v1/invoices", "list"} => "list",
{"GetInvoicesInvoice", "/v1/invoices/{invoice}", "retrieve"} => "retrieve",
{"DeleteInvoicesInvoice", "/v1/invoices/{invoice}", "delete"} => "delete",
{"PostInvoicesInvoiceFinalize", "/v1/invoices/{invoice}/finalize", "finalize_invoice"} => "finalize_invoice",
{"PostInvoicesInvoiceSend", "/v1/invoices/{invoice}/send", "send_invoice"} => "send_invoice",
{"PostInvoicesInvoiceMarkUncollectible", "/v1/invoices/{invoice}/mark_uncollectible", "mark_uncollectible"} =>
"mark_uncollectible",
{"PostInvoicesInvoiceVoid", "/v1/invoices/{invoice}/void", "void_invoice"} => "void_invoice",
{"GetCustomersCustomerCashBalanceTransactionsTransaction",
"/v1/customers/{customer}/cash_balance_transactions/{transaction}", "retrieve"} => "retrieve",
{"GetCustomersCustomerCashBalanceTransactions", "/v1/customers/{customer}/cash_balance_transactions", "list"} =>
"list",
{"GetIssuingCards", "/v1/issuing/cards", "list"} => "list",
{"PostIssuingCards", "/v1/issuing/cards", "create"} => "create",
{"GetIssuingCardsCard", "/v1/issuing/cards/{card}", "retrieve"} => "retrieve",
{"PostIssuingCardsCard", "/v1/issuing/cards/{card}", "update"} => "update",
{"PostTestHelpersIssuingCardsCardShippingDeliver", "/v1/test_helpers/issuing/cards/{card}/shipping/deliver",
"deliver_card"} => "deliver_card",
{"PostTestHelpersIssuingCardsCardShippingShip", "/v1/test_helpers/issuing/cards/{card}/shipping/ship", "ship_card"} =>
"ship_card",
{"PostTestHelpersIssuingCardsCardShippingReturn", "/v1/test_helpers/issuing/cards/{card}/shipping/return",
"return_card"} => "return_card",
{"PostTestHelpersIssuingCardsCardShippingFail", "/v1/test_helpers/issuing/cards/{card}/shipping/fail", "fail_card"} =>
"fail_card",
{"GetChargesChargeRefunds", "/v1/charges/{charge}/refunds", "list"} => "list",
{"GetChargesChargeRefundsRefund", "/v1/charges/{charge}/refunds/{refund}", "retrieve"} => "retrieve",
{"PostRefunds", "/v1/refunds", "create"} => "create",
{"PostRefundsRefund", "/v1/refunds/{refund}", "update"} => "update",
{"PostRefundsRefundCancel", "/v1/refunds/{refund}/cancel", "cancel"} => "cancel",
{"PostTestHelpersRefundsRefundExpire", "/v1/test_helpers/refunds/{refund}/expire", "expire"} => "expire",
{"GetBalanceTransactions", "/v1/balance_transactions", "list"} => "list",
{"GetBalanceTransactionsId", "/v1/balance_transactions/{id}", "retrieve"} => "retrieve",
{"PostAccountLinks", "/v1/account_links", "create"} => "create",
{"GetPromotionCodesPromotionCode", "/v1/promotion_codes/{promotion_code}", "retrieve"} => "retrieve",
{"PostPromotionCodes", "/v1/promotion_codes", "create"} => "create",
{"PostPromotionCodesPromotionCode", "/v1/promotion_codes/{promotion_code}", "update"} => "update",
{"GetPromotionCodes", "/v1/promotion_codes", "list"} => "list",
{"PostIdentityVerificationSessions", "/v1/identity/verification_sessions", "create"} => "create",
{"GetIdentityVerificationSessionsSession", "/v1/identity/verification_sessions/{session}", "retrieve"} =>
"retrieve",
{"GetIdentityVerificationSessions", "/v1/identity/verification_sessions", "list"} => "list",
{"PostIdentityVerificationSessionsSessionCancel", "/v1/identity/verification_sessions/{session}/cancel", "cancel"} =>
"cancel",
{"PostIdentityVerificationSessionsSessionRedact", "/v1/identity/verification_sessions/{session}/redact", "redact"} =>
"redact",
{"PostIdentityVerificationSessionsSession", "/v1/identity/verification_sessions/{session}", "update"} => "update",
{"GetTerminalLocationsLocation", "/v1/terminal/locations/{location}", "retrieve"} => "retrieve",
{"PostTerminalLocations", "/v1/terminal/locations", "create"} => "create",
{"PostTerminalLocationsLocation", "/v1/terminal/locations/{location}", "update"} => "update",
{"GetTerminalLocations", "/v1/terminal/locations", "list"} => "list",
{"DeleteTerminalLocationsLocation", "/v1/terminal/locations/{location}", "delete"} => "delete",
{"GetAccount", "/v1/account", "retrieve"} => "retrieve",
{"PostAccountsAccount", "/v1/accounts/{account}", "update"} => "update",
{"GetAccounts", "/v1/accounts", "list"} => "list",
{"PostAccounts", "/v1/accounts", "create"} => "create",
{"DeleteAccountsAccount", "/v1/accounts/{account}", "delete"} => "delete",
{"PostAccountsAccountReject", "/v1/accounts/{account}/reject", "reject"} => "reject",
{"GetAccountsAccountPersons", "/v1/accounts/{account}/persons", "persons"} => "persons",
{"GetAccountsAccountCapabilities", "/v1/accounts/{account}/capabilities", "capabilities"} => "capabilities",
{"GetProductsSearch", "/v1/products/search", "search"} => "search",
{"PostProducts", "/v1/products", "create"} => "create",
{"GetProductsId", "/v1/products/{id}", "retrieve"} => "retrieve",
{"PostProductsId", "/v1/products/{id}", "update"} => "update",
{"GetProducts", "/v1/products", "list"} => "list",
{"DeleteProductsId", "/v1/products/{id}", "delete"} => "delete",
{"GetAppsSecretsFind", "/v1/apps/secrets/find", "find"} => "find",
{"PostAppsSecrets", "/v1/apps/secrets", "create"} => "create",
{"PostAppsSecretsDelete", "/v1/apps/secrets/delete", "delete_where"} => "delete_where",
{"GetAppsSecrets", "/v1/apps/secrets", "list"} => "list",
{"GetTaxSettings", "/v1/tax/settings", "retrieve"} => "retrieve",
{"PostTaxSettings", "/v1/tax/settings", "update"} => "update",
{"GetInvoiceitems", "/v1/invoiceitems", "list"} => "list",
{"PostInvoiceitems", "/v1/invoiceitems", "create"} => "create",
{"GetInvoiceitemsInvoiceitem", "/v1/invoiceitems/{invoiceitem}", "retrieve"} => "retrieve",
{"PostInvoiceitemsInvoiceitem", "/v1/invoiceitems/{invoiceitem}", "update"} => "update",
{"DeleteInvoiceitemsInvoiceitem", "/v1/invoiceitems/{invoiceitem}", "delete"} => "delete",
{"GetClimateSuppliersSupplier", "/v1/climate/suppliers/{supplier}", "retrieve"} => "retrieve",
{"GetClimateSuppliers", "/v1/climate/suppliers", "list"} => "list",
{"GetIdentityVerificationReportsReport", "/v1/identity/verification_reports/{report}", "retrieve"} => "retrieve",
{"GetIdentityVerificationReports", "/v1/identity/verification_reports", "list"} => "list",
{"GetReportingReportRunsReportRun", "/v1/reporting/report_runs/{report_run}", "retrieve"} => "retrieve",
{"PostReportingReportRuns", "/v1/reporting/report_runs", "create"} => "create",
{"GetReportingReportRuns", "/v1/reporting/report_runs", "list"} => "list",
{"GetTestHelpersTestClocksTestClock", "/v1/test_helpers/test_clocks/{test_clock}", "retrieve"} => "retrieve",
{"PostTestHelpersTestClocks", "/v1/test_helpers/test_clocks", "create"} => "create",
{"DeleteTestHelpersTestClocksTestClock", "/v1/test_helpers/test_clocks/{test_clock}", "delete"} => "delete",
{"PostTestHelpersTestClocksTestClockAdvance", "/v1/test_helpers/test_clocks/{test_clock}/advance", "advance"} =>
"advance",
{"GetTestHelpersTestClocks", "/v1/test_helpers/test_clocks", "list"} => "list",
{"GetCustomersCustomerBalanceTransactionsTransaction",
"/v1/customers/{customer}/balance_transactions/{transaction}", "retrieve"} => "retrieve",
{"GetCustomersCustomerBalanceTransactions", "/v1/customers/{customer}/balance_transactions", "list"} => "list",
{"PostCustomersCustomerBalanceTransactions", "/v1/customers/{customer}/balance_transactions", "create"} => "create",
{"PostCustomersCustomerBalanceTransactionsTransaction",
"/v1/customers/{customer}/balance_transactions/{transaction}", "update"} => "update",
{"GetExchangeRates", "/v1/exchange_rates", "list"} => "list",
{"GetExchangeRatesRateId", "/v1/exchange_rates/{rate_id}", "retrieve"} => "retrieve",
{"DeleteCustomersCustomerSourcesId", "/v1/customers/{customer}/sources/{id}", "detach"} => "detach",
{"GetSourcesSource", "/v1/sources/{source}", "retrieve"} => "retrieve",
{"PostSources", "/v1/sources", "create"} => "create",
{"PostSourcesSource", "/v1/sources/{source}", "update"} => "update",
{"PostSourcesSourceVerify", "/v1/sources/{source}/verify", "verify"} => "verify",
{"GetSourcesSourceSourceTransactions", "/v1/sources/{source}/source_transactions", "source_transactions"} =>
"source_transactions",
{"PostSetupIntents", "/v1/setup_intents", "create"} => "create",
{"GetSetupIntents", "/v1/setup_intents", "list"} => "list",
{"GetSetupIntentsIntent", "/v1/setup_intents/{intent}", "retrieve"} => "retrieve",
{"PostSetupIntentsIntent", "/v1/setup_intents/{intent}", "update"} => "update",
{"PostSetupIntentsIntentConfirm", "/v1/setup_intents/{intent}/confirm", "confirm"} => "confirm",
{"PostSetupIntentsIntentCancel", "/v1/setup_intents/{intent}/cancel", "cancel"} => "cancel",
{"PostSetupIntentsIntentVerifyMicrodeposits", "/v1/setup_intents/{intent}/verify_microdeposits",
"verify_microdeposits"} => "verify_microdeposits",
{"GetIssuingDisputes", "/v1/issuing/disputes", "list"} => "list",
{"PostIssuingDisputes", "/v1/issuing/disputes", "create"} => "create",
{"PostIssuingDisputesDispute", "/v1/issuing/disputes/{dispute}", "update"} => "update",
{"GetIssuingDisputesDispute", "/v1/issuing/disputes/{dispute}", "retrieve"} => "retrieve",
{"PostIssuingDisputesDisputeSubmit", "/v1/issuing/disputes/{dispute}/submit", "submit"} => "submit",
{"GetFileLinksLink", "/v1/file_links/{link}", "retrieve"} => "retrieve",
{"PostFileLinks", "/v1/file_links", "create"} => "create",
{"PostFileLinksLink", "/v1/file_links/{link}", "update"} => "update",
{"GetFileLinks", "/v1/file_links", "list"} => "list",
{"PostEphemeralKeys", "/v1/ephemeral_keys", "create"} => "create",
{"DeleteEphemeralKeysKey", "/v1/ephemeral_keys/{key}", "delete"} => "delete",
{"PostApplicationFeesIdRefunds", "/v1/application_fees/{id}/refunds", "create"} => "create",
{"GetApplicationFeesIdRefunds", "/v1/application_fees/{id}/refunds", "list"} => "list",
{"GetApplicationFeesFeeRefundsId", "/v1/application_fees/{fee}/refunds/{id}", "retrieve"} => "retrieve",
{"PostApplicationFeesFeeRefundsId", "/v1/application_fees/{fee}/refunds/{id}", "update"} => "update",
{"GetBillingPortalConfigurations", "/v1/billing_portal/configurations", "list"} => "list",
{"PostBillingPortalConfigurations", "/v1/billing_portal/configurations", "create"} => "create",
{"PostBillingPortalConfigurationsConfiguration", "/v1/billing_portal/configurations/{configuration}", "update"} =>
"update",
{"GetBillingPortalConfigurationsConfiguration", "/v1/billing_portal/configurations/{configuration}", "retrieve"} =>
"retrieve",
{"GetEvents", "/v1/events", "list"} => "list",
{"GetEventsId", "/v1/events/{id}", "retrieve"} => "retrieve",
{"PostCustomerSessions", "/v1/customer_sessions", "create"} => "create",
{"GetIssuingCardholders", "/v1/issuing/cardholders", "list"} => "list",
{"PostIssuingCardholders", "/v1/issuing/cardholders", "create"} => "create",
{"GetIssuingCardholdersCardholder", "/v1/issuing/cardholders/{cardholder}", "retrieve"} => "retrieve",
{"PostIssuingCardholdersCardholder", "/v1/issuing/cardholders/{cardholder}", "update"} => "update",
{"GetCheckoutSessions", "/v1/checkout/sessions", "list"} => "list",
{"GetCheckoutSessionsSession", "/v1/checkout/sessions/{session}", "retrieve"} => "retrieve",
{"PostCheckoutSessions", "/v1/checkout/sessions", "create"} => "create",
{"GetCheckoutSessionsSessionLineItems", "/v1/checkout/sessions/{session}/line_items", "list_line_items"} =>
"list_line_items",
{"PostCheckoutSessionsSessionExpire", "/v1/checkout/sessions/{session}/expire", "expire"} => "expire",
{"GetSigmaScheduledQueryRuns", "/v1/sigma/scheduled_query_runs", "list"} => "list",
{"GetSigmaScheduledQueryRunsScheduledQueryRun", "/v1/sigma/scheduled_query_runs/{scheduled_query_run}", "retrieve"} =>
"retrieve",
{"PostTreasuryOutboundPayments", "/v1/treasury/outbound_payments", "create"} => "create",
{"GetTreasuryOutboundPaymentsId", "/v1/treasury/outbound_payments/{id}", "retrieve"} => "retrieve",
{"GetTreasuryOutboundPayments", "/v1/treasury/outbound_payments", "list"} => "list",
{"PostTreasuryOutboundPaymentsIdCancel", "/v1/treasury/outbound_payments/{id}/cancel", "cancel"} => "cancel",
{"PostTestHelpersTreasuryOutboundPaymentsIdFail", "/v1/test_helpers/treasury/outbound_payments/{id}/fail", "fail"} =>
"fail",
{"PostTestHelpersTreasuryOutboundPaymentsIdPost", "/v1/test_helpers/treasury/outbound_payments/{id}/post", "post"} =>
"post",
{"PostTestHelpersTreasuryOutboundPaymentsIdReturn", "/v1/test_helpers/treasury/outbound_payments/{id}/return",
"return_outbound_payment"} => "return_outbound_payment",
{"GetFinancialConnectionsAccounts", "/v1/financial_connections/accounts", "list"} => "list",
{"GetFinancialConnectionsAccountsAccount", "/v1/financial_connections/accounts/{account}", "retrieve"} =>
"retrieve",
{"GetFinancialConnectionsAccountsAccountOwners", "/v1/financial_connections/accounts/{account}/owners",
"list_owners"} => "list_owners",
{"PostFinancialConnectionsAccountsAccountRefresh", "/v1/financial_connections/accounts/{account}/refresh",
"refresh"} => "refresh",
{"PostFinancialConnectionsAccountsAccountDisconnect", "/v1/financial_connections/accounts/{account}/disconnect",
"disconnect"} => "disconnect",
{"PostFinancialConnectionsAccountsAccountSubscribe", "/v1/financial_connections/accounts/{account}/subscribe",
"subscribe"} => "subscribe",
{"PostFinancialConnectionsAccountsAccountUnsubscribe", "/v1/financial_connections/accounts/{account}/unsubscribe",
"unsubscribe"} => "unsubscribe",
{"PostTreasuryDebitReversals", "/v1/treasury/debit_reversals", "create"} => "create",
{"GetTreasuryDebitReversalsDebitReversal", "/v1/treasury/debit_reversals/{debit_reversal}", "retrieve"} =>
"retrieve",
{"GetTreasuryDebitReversals", "/v1/treasury/debit_reversals", "list"} => "list",
{"PostTransfers", "/v1/transfers", "create"} => "create",
{"GetTransfers", "/v1/transfers", "list"} => "list",
{"GetTransfersTransfer", "/v1/transfers/{transfer}", "retrieve"} => "retrieve",
{"PostTransfersTransfer", "/v1/transfers/{transfer}", "update"} => "update",
{"GetQuotesQuote", "/v1/quotes/{quote}", "retrieve"} => "retrieve",
{"PostQuotes", "/v1/quotes", "create"} => "create",
{"PostQuotesQuote", "/v1/quotes/{quote}", "update"} => "update",
{"PostQuotesQuoteCancel", "/v1/quotes/{quote}/cancel", "cancel"} => "cancel",
{"PostQuotesQuoteFinalize", "/v1/quotes/{quote}/finalize", "finalize_quote"} => "finalize_quote",
{"PostQuotesQuoteAccept", "/v1/quotes/{quote}/accept", "accept"} => "accept",
{"GetQuotes", "/v1/quotes", "list"} => "list",
{"GetQuotesQuoteLineItems", "/v1/quotes/{quote}/line_items", "list_line_items"} => "list_line_items",
{"GetQuotesQuoteComputedUpfrontLineItems", "/v1/quotes/{quote}/computed_upfront_line_items",
"list_computed_upfront_line_items"} => "list_computed_upfront_line_items",
{"GetQuotesQuotePdf", "/v1/quotes/{quote}/pdf", "pdf"} => "pdf",
{"GetRadarEarlyFraudWarnings", "/v1/radar/early_fraud_warnings", "list"} => "list",
{"GetRadarEarlyFraudWarningsEarlyFraudWarning", "/v1/radar/early_fraud_warnings/{early_fraud_warning}", "retrieve"} =>
"retrieve",
{"GetTaxRates", "/v1/tax_rates", "list"} => "list",
{"GetTaxRatesTaxRate", "/v1/tax_rates/{tax_rate}", "retrieve"} => "retrieve",
{"PostTaxRates", "/v1/tax_rates", "create"} => "create",
{"PostTaxRatesTaxRate", "/v1/tax_rates/{tax_rate}", "update"} => "update",
{"GetPaymentMethodConfigurations", "/v1/payment_method_configurations", "list"} => "list",
{"GetPaymentMethodConfigurationsConfiguration", "/v1/payment_method_configurations/{configuration}", "retrieve"} =>
"retrieve",
{"PostPaymentMethodConfigurationsConfiguration", "/v1/payment_method_configurations/{configuration}", "update"} =>
"update",
{"PostPaymentMethodConfigurations", "/v1/payment_method_configurations", "create"} => "create",
{"GetDisputes", "/v1/disputes", "list"} => "list",
{"GetDisputesDispute", "/v1/disputes/{dispute}", "retrieve"} => "retrieve",
{"PostDisputesDispute", "/v1/disputes/{dispute}", "update"} => "update",
{"PostDisputesDisputeClose", "/v1/disputes/{dispute}/close", "close"} => "close",
{"GetTaxCodes", "/v1/tax_codes", "list"} => "list",
{"GetTaxCodesId", "/v1/tax_codes/{id}", "retrieve"} => "retrieve",
{"GetTaxTransactionsTransaction", "/v1/tax/transactions/{transaction}", "retrieve"} => "retrieve",
{"PostTaxTransactionsCreateReversal", "/v1/tax/transactions/create_reversal", "create_reversal"} =>
"create_reversal",
{"PostTaxTransactionsCreateFromCalculation", "/v1/tax/transactions/create_from_calculation",
"create_from_calculation"} => "create_from_calculation",
{"GetTaxTransactionsTransactionLineItems", "/v1/tax/transactions/{transaction}/line_items", "list_line_items"} =>
"list_line_items",
{"GetSubscriptionsSearch", "/v1/subscriptions/search", "search"} => "search",
{"GetSubscriptions", "/v1/subscriptions", "list"} => "list",
{"PostSubscriptions", "/v1/subscriptions", "create"} => "create",
{"PostSubscriptionsSubscriptionExposedId", "/v1/subscriptions/{subscription_exposed_id}", "update"} => "update",
{"GetSubscriptionsSubscriptionExposedId", "/v1/subscriptions/{subscription_exposed_id}", "retrieve"} => "retrieve",
{"DeleteSubscriptionsSubscriptionExposedId", "/v1/subscriptions/{subscription_exposed_id}", "cancel"} => "cancel",
{"PostSubscriptionsSubscriptionResume", "/v1/subscriptions/{subscription}/resume", "resume"} => "resume",
{"DeleteSubscriptionsSubscriptionExposedIdDiscount", "/v1/subscriptions/{subscription_exposed_id}/discount",
"delete_discount"} => "delete_discount",
{"GetShippingRates", "/v1/shipping_rates", "list"} => "list",
{"GetShippingRatesShippingRateToken", "/v1/shipping_rates/{shipping_rate_token}", "retrieve"} => "retrieve",
{"PostShippingRates", "/v1/shipping_rates", "create"} => "create",
{"PostShippingRatesShippingRateToken", "/v1/shipping_rates/{shipping_rate_token}", "update"} => "update",
{"GetTreasuryReceivedDebits", "/v1/treasury/received_debits", "list"} => "list",
{"GetTreasuryReceivedDebitsId", "/v1/treasury/received_debits/{id}", "retrieve"} => "retrieve",
{"PostTestHelpersTreasuryReceivedDebits", "/v1/test_helpers/treasury/received_debits", "create"} => "create",
{"PostFinancialConnectionsSessions", "/v1/financial_connections/sessions", "create"} => "create",
{"GetFinancialConnectionsSessionsSession", "/v1/financial_connections/sessions/{session}", "retrieve"} =>
"retrieve",
{"PostTreasuryInboundTransfersInboundTransferCancel", "/v1/treasury/inbound_transfers/{inbound_transfer}/cancel",
"cancel"} => "cancel",
{"PostTreasuryInboundTransfers", "/v1/treasury/inbound_transfers", "create"} => "create",
{"GetTreasuryInboundTransfersId", "/v1/treasury/inbound_transfers/{id}", "retrieve"} => "retrieve",
{"GetTreasuryInboundTransfers", "/v1/treasury/inbound_transfers", "list"} => "list",
{"PostTestHelpersTreasuryInboundTransfersIdSucceed", "/v1/test_helpers/treasury/inbound_transfers/{id}/succeed",
"succeed"} => "succeed",
{"PostTestHelpersTreasuryInboundTransfersIdFail", "/v1/test_helpers/treasury/inbound_transfers/{id}/fail", "fail"} =>
"fail",
{"PostTestHelpersTreasuryInboundTransfersIdReturn", "/v1/test_helpers/treasury/inbound_transfers/{id}/return",
"return_inbound_transfer"} => "return_inbound_transfer",
{"GetMandatesMandate", "/v1/mandates/{mandate}", "retrieve"} => "retrieve",
{"GetRadarValueListItems", "/v1/radar/value_list_items", "list"} => "list",
{"GetRadarValueListItemsItem", "/v1/radar/value_list_items/{item}", "retrieve"} => "retrieve",
{"PostRadarValueListItems", "/v1/radar/value_list_items", "create"} => "create",
{"DeleteRadarValueListItemsItem", "/v1/radar/value_list_items/{item}", "delete"} => "delete",
{"GetTreasuryReceivedCredits", "/v1/treasury/received_credits", "list"} => "list",
{"GetTreasuryReceivedCreditsId", "/v1/treasury/received_credits/{id}", "retrieve"} => "retrieve",
{"PostTestHelpersTreasuryReceivedCredits", "/v1/test_helpers/treasury/received_credits", "create"} => "create",
{"PostTreasuryOutboundTransfers", "/v1/treasury/outbound_transfers", "create"} => "create",
{"GetTreasuryOutboundTransfersOutboundTransfer", "/v1/treasury/outbound_transfers/{outbound_transfer}", "retrieve"} =>
"retrieve",
{"GetTreasuryOutboundTransfers", "/v1/treasury/outbound_transfers", "list"} => "list",
{"PostTreasuryOutboundTransfersOutboundTransferCancel",
"/v1/treasury/outbound_transfers/{outbound_transfer}/cancel", "cancel"} => "cancel",
{"PostTestHelpersTreasuryOutboundTransfersOutboundTransferFail",
"/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail", "fail"} => "fail",
{"PostTestHelpersTreasuryOutboundTransfersOutboundTransferPost",
"/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post", "post"} => "post",
{"PostTestHelpersTreasuryOutboundTransfersOutboundTransferReturn",
"/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return", "return_outbound_transfer"} =>
"return_outbound_transfer",
{"GetPayoutsPayout", "/v1/payouts/{payout}", "retrieve"} => "retrieve",
{"GetPayouts", "/v1/payouts", "list"} => "list",
{"PostPayouts", "/v1/payouts", "create"} => "create",
{"PostPayoutsPayout", "/v1/payouts/{payout}", "update"} => "update",
{"PostPayoutsPayoutCancel", "/v1/payouts/{payout}/cancel", "cancel"} => "cancel",
{"PostPayoutsPayoutReverse", "/v1/payouts/{payout}/reverse", "reverse"} => "reverse",
{"GetTreasuryTransactionEntriesId", "/v1/treasury/transaction_entries/{id}", "retrieve"} => "retrieve",
{"GetTreasuryTransactionEntries", "/v1/treasury/transaction_entries", "list"} => "list",
{"PostCreditNotes", "/v1/credit_notes", "create"} => "create",
{"GetCreditNotesPreview", "/v1/credit_notes/preview", "preview"} => "preview",
{"GetCreditNotesId", "/v1/credit_notes/{id}", "retrieve"} => "retrieve",
{"GetCreditNotes", "/v1/credit_notes", "list"} => "list",
{"PostCreditNotesId", "/v1/credit_notes/{id}", "update"} => "update",
{"PostCreditNotesIdVoid", "/v1/credit_notes/{id}/void", "void_credit_note"} => "void_credit_note",
{"GetCreditNotesPreviewLines", "/v1/credit_notes/preview/lines", "preview_lines"} => "preview_lines",
{"GetInvoicesInvoiceLines", "/v1/invoices/{invoice}/lines", "list"} => "list",
{"PostInvoicesInvoiceLinesLineItemId", "/v1/invoices/{invoice}/lines/{line_item_id}", "update"} => "update",
{"GetIssuingTransactions", "/v1/issuing/transactions", "list"} => "list",
{"GetIssuingTransactionsTransaction", "/v1/issuing/transactions/{transaction}", "retrieve"} => "retrieve",
{"PostIssuingTransactionsTransaction", "/v1/issuing/transactions/{transaction}", "update"} => "update",
{"PostTestHelpersIssuingTransactionsCreateForceCapture",
"/v1/test_helpers/issuing/transactions/create_force_capture", "create_force_capture"} => "create_force_capture",
{"PostTestHelpersIssuingTransactionsCreateUnlinkedRefund",
"/v1/test_helpers/issuing/transactions/create_unlinked_refund", "create_unlinked_refund"} =>
"create_unlinked_refund",
{"PostTestHelpersIssuingTransactionsTransactionRefund",
"/v1/test_helpers/issuing/transactions/{transaction}/refund", "refund"} => "refund",
{"PostSubscriptionItemsSubscriptionItemUsageRecords", "/v1/subscription_items/{subscription_item}/usage_records",
"create"} => "create",
{"PostCustomersCustomerTaxIds", "/v1/customers/{customer}/tax_ids", "create"} => "create",
{"GetCustomersCustomerTaxIdsId", "/v1/customers/{customer}/tax_ids/{id}", "retrieve"} => "retrieve",
{"GetCustomersCustomerTaxIds", "/v1/customers/{customer}/tax_ids", "list"} => "list",
{"DeleteCustomersCustomerTaxIdsId", "/v1/customers/{customer}/tax_ids/{id}", "delete"} => "delete",
{"GetSubscriptionItemsSubscriptionItemUsageRecordSummaries",
"/v1/subscription_items/{subscription_item}/usage_record_summaries", "list"} => "list",
{"GetCountrySpecs", "/v1/country_specs", "list"} => "list",
{"GetCountrySpecsCountry", "/v1/country_specs/{country}", "retrieve"} => "retrieve",
{"GetAccountsAccountPersons", "/v1/accounts/{account}/persons", "list"} => "list",
{"GetAccountsAccountPersonsPerson", "/v1/accounts/{account}/persons/{person}", "retrieve"} => "retrieve",
{"PostAccountsAccountPersons", "/v1/accounts/{account}/persons", "create"} => "create",
{"PostAccountsAccountPersonsPerson", "/v1/accounts/{account}/persons/{person}", "update"} => "update",
{"DeleteAccountsAccountPersonsPerson", "/v1/accounts/{account}/persons/{person}", "delete"} => "delete",
{"PostBillingPortalSessions", "/v1/billing_portal/sessions", "create"} => "create",
{"PostAccountSessions", "/v1/account_sessions", "create"} => "create",
{"GetPlans", "/v1/plans", "list"} => "list",
{"PostPlans", "/v1/plans", "create"} => "create",
{"GetPlansPlan", "/v1/plans/{plan}", "retrieve"} => "retrieve",
{"PostPlansPlan", "/v1/plans/{plan}", "update"} => "update",
{"DeletePlansPlan", "/v1/plans/{plan}", "delete"} => "delete",
{"PostTestHelpersIssuingCardsCardShippingSubmit", "/v1/test_helpers/issuing/cards/{card}/shipping/submit",
"submit_card"} => "submit_card",
{"GetConfirmationTokensConfirmationToken", "/v1/confirmation_tokens/{confirmation_token}", "retrieve"} =>
"retrieve",
{"PostTestHelpersConfirmationTokens", "/v1/test_helpers/confirmation_tokens", "create"} => "create",
{"PostSubscriptionsSubscriptionMigrate", "/v1/subscriptions/{subscription}/migrate", "migrate"} => "migrate",
{"PostCheckoutSessionsSession", "/v1/checkout/sessions/{session}", "update"} => "update",
{"PostTestHelpersTreasuryOutboundPaymentsId", "/v1/test_helpers/treasury/outbound_payments/{id}", "update"} =>
"update",
{"GetBillingMetersIdEventSummaries", "/v1/billing/meters/{id}/event_summaries", "list"} => "list",
{"GetEntitlementsFeatures", "/v1/entitlements/features", "list"} => "list",
{"GetEntitlementsFeaturesId", "/v1/entitlements/features/{id}", "retrieve"} => "retrieve",
{"PostEntitlementsFeatures", "/v1/entitlements/features", "create"} => "create",
{"PostEntitlementsFeaturesId", "/v1/entitlements/features/{id}", "update"} => "update",
{"PostTerminalReadersReaderCollectInputs", "/v1/terminal/readers/{reader}/collect_inputs", "collect_inputs"} =>
"collect_inputs",
{"PostTerminalReadersReaderCollectPaymentMethod", "/v1/terminal/readers/{reader}/collect_payment_method",
"collect_payment_method"} => "collect_payment_method",
{"PostTerminalReadersReaderConfirmPaymentIntent", "/v1/terminal/readers/{reader}/confirm_payment_intent",
"confirm_payment_intent"} => "confirm_payment_intent",
{"PostTestHelpersTerminalReadersReaderSucceedInputCollection",
"/v1/test_helpers/terminal/readers/{reader}/succeed_input_collection", "succeed_input_collection"} =>
"succeed_input_collection",
{"PostTestHelpersTerminalReadersReaderTimeoutInputCollection",
"/v1/test_helpers/terminal/readers/{reader}/timeout_input_collection", "timeout_input_collection"} =>
"timeout_input_collection",
{"PostBillingMeterEventAdjustments", "/v1/billing/meter_event_adjustments", "create"} => "create",
{"GetBillingCreditBalanceSummary", "/v1/billing/credit_balance_summary", "retrieve"} => "retrieve",
{"PostBillingMeterEvents", "/v1/billing/meter_events", "create"} => "create",
{"GetInvoicePayments", "/v1/invoice_payments", "list"} => "list",
{"GetInvoicePaymentsInvoicePayment", "/v1/invoice_payments/{invoice_payment}", "retrieve"} => "retrieve",
{"GetIssuingPersonalizationDesigns", "/v1/issuing/personalization_designs", "list"} => "list",
{"GetIssuingPersonalizationDesignsPersonalizationDesign",
"/v1/issuing/personalization_designs/{personalization_design}", "retrieve"} => "retrieve",
{"PostIssuingPersonalizationDesigns", "/v1/issuing/personalization_designs", "create"} => "create",
{"PostIssuingPersonalizationDesignsPersonalizationDesign",
"/v1/issuing/personalization_designs/{personalization_design}", "update"} => "update",
{"PostTestHelpersIssuingPersonalizationDesignsPersonalizationDesignActivate",
"/v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate", "activate"} => "activate",
{"PostTestHelpersIssuingPersonalizationDesignsPersonalizationDesignDeactivate",
"/v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate", "deactivate"} =>
"deactivate",
{"PostTestHelpersIssuingPersonalizationDesignsPersonalizationDesignReject",
"/v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject", "reject"} => "reject",
{"PostInvoicesInvoiceAddLines", "/v1/invoices/{invoice}/add_lines", "add_lines"} => "add_lines",
{"PostInvoicesInvoiceAttachPayment", "/v1/invoices/{invoice}/attach_payment", "attach_payment"} => "attach_payment",
{"PostInvoicesInvoiceRemoveLines", "/v1/invoices/{invoice}/remove_lines", "remove_lines"} => "remove_lines",
{"PostInvoicesInvoiceUpdateLines", "/v1/invoices/{invoice}/update_lines", "update_lines"} => "update_lines",
{"PostInvoicesCreatePreview", "/v1/invoices/create_preview", "create_preview"} => "create_preview",
{"GetEntitlementsActiveEntitlements", "/v1/entitlements/active_entitlements", "list"} => "list",
{"GetEntitlementsActiveEntitlementsId", "/v1/entitlements/active_entitlements/{id}", "retrieve"} => "retrieve",
{"GetIssuingPhysicalBundles", "/v1/issuing/physical_bundles", "list"} => "list",
{"GetIssuingPhysicalBundlesPhysicalBundle", "/v1/issuing/physical_bundles/{physical_bundle}", "retrieve"} =>
"retrieve",
{"PostTestHelpersIssuingAuthorizationsAuthorizationFinalizeAmount",
"/v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount", "finalize_amount"} => "finalize_amount",
{"PostTestHelpersIssuingAuthorizationsAuthorizationFraudChallengesRespond",
"/v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond", "respond"} => "respond",
{"GetBillingCreditBalanceTransactions", "/v1/billing/credit_balance_transactions", "list"} => "list",
{"GetBillingCreditBalanceTransactionsId", "/v1/billing/credit_balance_transactions/{id}", "retrieve"} => "retrieve",
{"GetBillingCreditGrants", "/v1/billing/credit_grants", "list"} => "list",
{"GetBillingCreditGrantsId", "/v1/billing/credit_grants/{id}", "retrieve"} => "retrieve",
{"PostBillingCreditGrants", "/v1/billing/credit_grants", "create"} => "create",
{"PostBillingCreditGrantsId", "/v1/billing/credit_grants/{id}", "update"} => "update",
{"PostBillingCreditGrantsIdExpire", "/v1/billing/credit_grants/{id}/expire", "expire"} => "expire",
{"PostBillingCreditGrantsIdVoid", "/v1/billing/credit_grants/{id}/void", "void_grant"} => "void_grant",
{"PostTestHelpersTreasuryOutboundTransfersOutboundTransfer",
"/v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}", "update"} => "update",
{"GetTaxCalculationsCalculation", "/v1/tax/calculations/{calculation}", "retrieve"} => "retrieve",
{"GetBillingMeters", "/v1/billing/meters", "list"} => "list",
{"GetBillingMetersId", "/v1/billing/meters/{id}", "retrieve"} => "retrieve",
{"PostBillingMeters", "/v1/billing/meters", "create"} => "create",
{"PostBillingMetersId", "/v1/billing/meters/{id}", "update"} => "update",
{"PostBillingMetersIdDeactivate", "/v1/billing/meters/{id}/deactivate", "deactivate"} => "deactivate",
{"PostBillingMetersIdReactivate", "/v1/billing/meters/{id}/reactivate", "reactivate"} => "reactivate",
{"GetInvoiceRenderingTemplates", "/v1/invoice_rendering_templates", "list"} => "list",
{"GetInvoiceRenderingTemplatesTemplate", "/v1/invoice_rendering_templates/{template}", "retrieve"} => "retrieve",
{"PostInvoiceRenderingTemplatesTemplateArchive", "/v1/invoice_rendering_templates/{template}/archive", "archive"} =>
"archive",
{"PostInvoiceRenderingTemplatesTemplateUnarchive", "/v1/invoice_rendering_templates/{template}/unarchive",
"unarchive"} => "unarchive",
{"PostTreasuryFinancialAccountsFinancialAccountClose", "/v1/treasury/financial_accounts/{financial_account}/close",
"close"} => "close",
{"GetForwardingRequests", "/v1/forwarding/requests", "list"} => "list",
{"GetForwardingRequestsId", "/v1/forwarding/requests/{id}", "retrieve"} => "retrieve",
{"PostForwardingRequests", "/v1/forwarding/requests", "create"} => "create",
{"GetBillingAlerts", "/v1/billing/alerts", "list"} => "list",
{"GetBillingAlertsId", "/v1/billing/alerts/{id}", "retrieve"} => "retrieve",
{"PostBillingAlerts", "/v1/billing/alerts", "create"} => "create",
{"PostBillingAlertsIdActivate", "/v1/billing/alerts/{id}/activate", "activate"} => "activate",
{"PostBillingAlertsIdArchive", "/v1/billing/alerts/{id}/archive", "archive"} => "archive",
{"PostBillingAlertsIdDeactivate", "/v1/billing/alerts/{id}/deactivate", "deactivate"} => "deactivate",
{"DeleteProductsProductFeaturesId", "/v1/products/{product}/features/{id}", "delete"} => "delete",
{"GetProductsProductFeatures", "/v1/products/{product}/features", "list"} => "list",
{"GetProductsProductFeaturesId", "/v1/products/{product}/features/{id}", "retrieve"} => "retrieve",
{"PostProductsProductFeatures", "/v1/products/{product}/features", "create"} => "create",
{"GetTaxAssociationsFind", "/v1/tax/associations/find", "find"} => "find",
{"GetPaymentRecordsId", "/v1/payment_records/{id}", "retrieve"} => "retrieve",
{"PostPaymentRecordsIdReportPaymentAttempt", "/v1/payment_records/{id}/report_payment_attempt",
"report_payment_attempt"} => "report_payment_attempt",
{"PostPaymentRecordsIdReportPaymentAttemptCanceled", "/v1/payment_records/{id}/report_payment_attempt_canceled",
"report_payment_attempt_canceled"} => "report_payment_attempt_canceled",
{"PostPaymentRecordsIdReportPaymentAttemptFailed", "/v1/payment_records/{id}/report_payment_attempt_failed",
"report_payment_attempt_failed"} => "report_payment_attempt_failed",
{"PostPaymentRecordsIdReportPaymentAttemptGuaranteed", "/v1/payment_records/{id}/report_payment_attempt_guaranteed",
"report_payment_attempt_guaranteed"} => "report_payment_attempt_guaranteed",
{"PostPaymentRecordsIdReportPaymentAttemptInformational",
"/v1/payment_records/{id}/report_payment_attempt_informational", "report_payment_attempt_informational"} =>
"report_payment_attempt_informational",
{"PostPaymentRecordsIdReportRefund", "/v1/payment_records/{id}/report_refund", "report_refund"} => "report_refund",
{"PostPaymentRecordsReportPayment", "/v1/payment_records/report_payment", "report_payment"} => "report_payment",
{"GetPaymentIntentsIntentAmountDetailsLineItems", "/v1/payment_intents/{intent}/amount_details_line_items", "list"} =>
"list",
{"GetPaymentAttemptRecords", "/v1/payment_attempt_records", "list"} => "list",
{"GetPaymentAttemptRecordsId", "/v1/payment_attempt_records/{id}", "retrieve"} => "retrieve",
{"GetBalanceSettings", "/v1/balance_settings", "retrieve"} => "retrieve",
{"PostBalanceSettings", "/v1/balance_settings", "update"} => "update",
{"PostTerminalOnboardingLinks", "/v1/terminal/onboarding_links", "create"} => "create"
}
defp to_func_name(operation, stripe_extension) do
# NOTE: Well, Operation ID suppose to be unique, but it's not. So, we need to use a tuple to make it unique.
key = {operation.id, operation.path, stripe_extension["method_name"]}
case Map.get(@operation_identity_mapping, key) do
nil ->
suggested_mapping = ~s(#{inspect(key)} => "#{stripe_extension["method_name"]}",\n)
raise """
Unregistered Operation
- Stripe Extension: #{inspect(operation)}
- Operation: #{inspect(operation)}
- Suggested Mapping: "#{suggested_mapping}"
"""
# Fallback to old mapping when the operation is not registered.
# Waiting until I can successfully codegen newer versions of the spec.
# stripe_extension["method_name"]
name ->
name
end
end
defp safe_type_name(name) when is_atom(name) do
# credo:disable-for-next-line Credo.Check.Warning.UnsafeToAtom
if name in @reserved_type_names, do: String.to_atom("#{name}_field"), else: name
end
defp safe_type_name(name) when is_binary(name) do
if name in Enum.map(@reserved_type_names, &Atom.to_string/1),
do: "#{name}_field",
else: name
end
end