Packages
stripity_stripe
3.1.0
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/generated/promotion_code.ex
defmodule Stripe.PromotionCode do
use Stripe.Entity
@moduledoc "A Promotion Code represents a customer-redeemable code for a [coupon](https://stripe.com/docs/api#coupons). It can be used to\ncreate multiple codes for a single coupon."
(
defstruct [
:active,
:code,
:coupon,
:created,
:customer,
:expires_at,
:id,
:livemode,
:max_redemptions,
:metadata,
:object,
:restrictions,
:times_redeemed
]
@typedoc "The `promotion_code` type.\n\n * `active` Whether the promotion code is currently active. A promotion code is only active if the coupon is also valid.\n * `code` The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for each customer.\n * `coupon` \n * `created` Time at which the object was created. Measured in seconds since the Unix epoch.\n * `customer` The customer that this promotion code can be used by.\n * `expires_at` Date at which the promotion code can no longer be redeemed.\n * `id` Unique identifier for the object.\n * `livemode` Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.\n * `max_redemptions` Maximum number of times this promotion code can be redeemed.\n * `metadata` Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.\n * `object` String representing the object's type. Objects of the same type share the same value.\n * `restrictions` \n * `times_redeemed` Number of times this promotion code has been used.\n"
@type t :: %__MODULE__{
active: boolean,
code: binary,
coupon: Stripe.Coupon.t(),
created: integer,
customer: (binary | Stripe.Customer.t() | Stripe.DeletedCustomer.t()) | nil,
expires_at: integer | nil,
id: binary,
livemode: boolean,
max_redemptions: integer | nil,
metadata: term | nil,
object: binary,
restrictions: term,
times_redeemed: integer
}
)
(
@typedoc nil
@type created :: %{
optional(:gt) => integer,
optional(:gte) => integer,
optional(:lt) => integer,
optional(:lte) => integer
}
)
(
@typedoc "Settings that restrict the redemption of the promotion code."
@type restrictions :: %{
optional(:currency_options) => map(),
optional(:first_time_transaction) => boolean,
optional(:minimum_amount) => integer,
optional(:minimum_amount_currency) => binary
}
)
(
nil
@doc "<p>Retrieves the promotion code with the given ID. In order to retrieve a promotion code by the customer-facing <code>code</code> use <a href=\"/docs/api/promotion_codes/list\">list</a> with the desired <code>code</code>.</p>\n\n#### Details\n\n * Method: `get`\n * Path: `/v1/promotion_codes/{promotion_code}`\n"
(
@spec retrieve(
promotion_code :: binary(),
params :: %{optional(:expand) => list(binary)},
opts :: Keyword.t()
) ::
{:ok, Stripe.PromotionCode.t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
def retrieve(promotion_code, params \\ %{}, opts \\ []) do
path =
Stripe.OpenApi.Path.replace_path_params(
"/v1/promotion_codes/{promotion_code}",
[
%OpenApiGen.Blueprint.Parameter{
in: "path",
name: "promotion_code",
required: true,
schema: %OpenApiGen.Blueprint.Parameter.Schema{
name: "promotion_code",
title: nil,
type: "string",
items: [],
properties: [],
any_of: []
}
}
],
[promotion_code]
)
Stripe.Request.new_request(opts)
|> Stripe.Request.put_endpoint(path)
|> Stripe.Request.put_params(params)
|> Stripe.Request.put_method(:get)
|> Stripe.Request.make_request()
end
)
)
(
nil
@doc "<p>A promotion code points to a coupon. You can optionally restrict the code to a specific customer, redemption limit, and expiration date.</p>\n\n#### Details\n\n * Method: `post`\n * Path: `/v1/promotion_codes`\n"
(
@spec create(
params :: %{
optional(:active) => boolean,
optional(:code) => binary,
optional(:coupon) => binary,
optional(:customer) => binary,
optional(:expand) => list(binary),
optional(:expires_at) => integer,
optional(:max_redemptions) => integer,
optional(:metadata) => %{optional(binary) => binary},
optional(:restrictions) => restrictions
},
opts :: Keyword.t()
) ::
{:ok, Stripe.PromotionCode.t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
def create(params \\ %{}, opts \\ []) do
path = Stripe.OpenApi.Path.replace_path_params("/v1/promotion_codes", [], [])
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
)
)
(
nil
@doc "<p>Updates the specified promotion code by setting the values of the parameters passed. Most fields are, by design, not editable.</p>\n\n#### Details\n\n * Method: `post`\n * Path: `/v1/promotion_codes/{promotion_code}`\n"
(
@spec update(
promotion_code :: binary(),
params :: %{
optional(:active) => boolean,
optional(:expand) => list(binary),
optional(:metadata) => %{optional(binary) => binary} | binary,
optional(:restrictions) => restrictions
},
opts :: Keyword.t()
) ::
{:ok, Stripe.PromotionCode.t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
def update(promotion_code, params \\ %{}, opts \\ []) do
path =
Stripe.OpenApi.Path.replace_path_params(
"/v1/promotion_codes/{promotion_code}",
[
%OpenApiGen.Blueprint.Parameter{
in: "path",
name: "promotion_code",
required: true,
schema: %OpenApiGen.Blueprint.Parameter.Schema{
name: "promotion_code",
title: nil,
type: "string",
items: [],
properties: [],
any_of: []
}
}
],
[promotion_code]
)
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
)
)
(
nil
@doc "<p>Returns a list of your promotion codes.</p>\n\n#### Details\n\n * Method: `get`\n * Path: `/v1/promotion_codes`\n"
(
@spec list(
params :: %{
optional(:active) => boolean,
optional(:code) => binary,
optional(:coupon) => binary,
optional(:created) => created | integer,
optional(:customer) => binary,
optional(:ending_before) => binary,
optional(:expand) => list(binary),
optional(:limit) => integer,
optional(:starting_after) => binary
},
opts :: Keyword.t()
) ::
{:ok, Stripe.List.t(Stripe.PromotionCode.t())}
| {:error, Stripe.ApiErrors.t()}
| {:error, term()}
def list(params \\ %{}, opts \\ []) do
path = Stripe.OpenApi.Path.replace_path_params("/v1/promotion_codes", [], [])
Stripe.Request.new_request(opts)
|> Stripe.Request.put_endpoint(path)
|> Stripe.Request.put_params(params)
|> Stripe.Request.put_method(:get)
|> Stripe.Request.make_request()
end
)
)
end