lib/generated/account_link.ex

defmodule Stripe.AccountLink do
  use Stripe.Entity

  @moduledoc "Account Links are the means by which a Connect platform grants a connected account permission to access\nStripe-hosted applications, such as Connect Onboarding.\n\nRelated guide: [Connect Onboarding](https://stripe.com/docs/connect/custom/hosted-onboarding)"
  (
    defstruct [:created, :expires_at, :object, :url]

    @typedoc "The `account_link` type.\n\n  * `created` Time at which the object was created. Measured in seconds since the Unix epoch.\n  * `expires_at` The timestamp at which this account link will expire.\n  * `object` String representing the object's type. Objects of the same type share the same value.\n  * `url` The URL for the account link.\n"
    @type t :: %__MODULE__{created: integer, expires_at: integer, object: binary, url: binary}
  )

  (
    nil

    @doc "<p>Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow.</p>\n\n#### Details\n\n * Method: `post`\n * Path: `/v1/account_links`\n"
    (
      @spec create(
              params :: %{
                optional(:account) => binary,
                optional(:collect) => :currently_due | :eventually_due,
                optional(:expand) => list(binary),
                optional(:refresh_url) => binary,
                optional(:return_url) => binary,
                optional(:type) => :account_onboarding | :account_update
              },
              opts :: Keyword.t()
            ) :: {:ok, Stripe.AccountLink.t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
      def create(params \\ %{}, opts \\ []) do
        path = Stripe.OpenApi.Path.replace_path_params("/v1/account_links", [], [])

        Stripe.Request.new_request(opts)
        |> Stripe.Request.put_endpoint(path)
        |> Stripe.Request.put_params(params)
        |> Stripe.Request.put_method(:post)
        |> Stripe.Request.make_request()
      end
    )
  )
end