Packages
stripity_stripe
2.2.2
3.3.2
3.3.1
3.2.0
3.1.1
3.1.0
3.0.0
2.17.3
2.17.2
2.17.1
2.17.0
2.16.0
2.15.1
2.15.0
2.14.1
2.14.0
2.13.0
2.12.1
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.2
2.7.1
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.1
2.0.0
2.0.0-alpha.11
2.0.0-alpha.10
2.0.0-alpha.9
2.0.0-alpha.8
2.0.0-alpha.7
2.0.0-alpha.6
2.0.0-alpha.5
2.0.0-alpha.4
2.0.0-alpha.3
2.0.0-alpha.2
2.0.0-alpha.1
1.6.2
1.6.1
1.6.0
1.4.0
1.3.0
1.2.0
1.1.0
0.5.0
0.4.0
0.3.0
0.2.0
A Stripe client for Elixir.
Current section
Files
Jump to
Current section
Files
lib/stripe/subscriptions/line_item.ex
defmodule Stripe.LineItem do
@moduledoc """
Work with Stripe (invoice) line item objects.
Stripe API reference: https://stripe.com/docs/api/ruby#invoice_line_item_object
"""
use Stripe.Entity
import Stripe.Request
@type t :: %__MODULE__{
id: Stripe.id(),
object: String.t(),
amount: integer,
currency: String.t(),
description: String.t(),
discountable: boolean,
invoice_item: Stripe.id() | nil,
livemode: boolean,
metadata: Stripe.Types.metadata(),
period: %{
start: Stripe.timestamp(),
end: Stripe.timestamp()
},
plan: Stripe.Plan.t() | nil,
proration: boolean,
quantity: integer,
subscription: Stripe.id() | nil,
subscription_item: Stripe.id() | nil,
type: String.t()
}
defstruct [
:id,
:object,
:amount,
:currency,
:description,
:discountable,
:invoice_item,
:livemode,
:metadata,
:period,
:plan,
:proration,
:quantity,
:subscription,
:subscription_item,
:type
]
@doc """
Retrieve an invoice line item.
"""
@spec retrieve(Stripe.id() | t, params, Stripe.options()) :: {:ok, t} | {:error, Stripe.Error.t()}
when params: %{
optional(:coupon) => Stripe.id() | Stripe.Coupon.t(),
optional(:customer) => Stripe.id() | Stripe.Customer.t(),
optional(:ending_before) => t | Stripe.id(),
optional(:limit) => 1..100,
optional(:starting_after) => t | Stripe.id(),
optional(:subscription) => Stripe.id() | Stripe.Subscription.t(),
optional(:subscription_billing_cycle_anchor) => integer,
optional(:subscription_items) => Stripe.List.t(Stripe.SubscriptionItem.t()),
optional(:subscription_prorate) => boolean,
optional(:subscription_proration_date) => Stripe.timestamp(),
optional(:subscription_tax_percent) => integer,
optional(:subscription_trial_from_plan) => boolean
} | %{}
def retrieve(id, params \\ %{}, opts \\ []) do
new_request(opts)
|> put_endpoint("invoices" <> "/#{get_id!(id)}" <> "lines")
|> put_method(:get)
|> put_params(params)
|> make_request()
end
end