Packages
stripity_stripe
3.3.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/generated/product_feature.ex
defmodule Stripe.ProductFeature do
use Stripe.Entity
@moduledoc "A product_feature represents an attachment between a feature and a product.\nWhen a product is purchased that has a feature attached, Stripe will create an entitlement to the feature for the purchasing customer."
(
defstruct [:entitlement_feature, :id, :livemode, :object]
@typedoc "The `product_feature` type.\n\n * `entitlement_feature` \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 * `object` String representing the object's type. Objects of the same type share the same value.\n"
@type t :: %__MODULE__{
entitlement_feature: Stripe.Entitlements.Feature.t(),
id: binary,
livemode: boolean,
object: binary
}
)
(
nil
@doc "<p>Deletes the feature attachment to a product</p>\n\n#### Details\n\n * Method: `delete`\n * Path: `/v1/products/{product}/features/{id}`\n"
(
@spec delete(id :: binary(), product :: binary(), opts :: Keyword.t()) ::
{:ok, Stripe.DeletedProductFeature.t()}
| {:error, Stripe.ApiErrors.t()}
| {:error, term()}
def delete(id, product, opts \\ []) do
path =
Stripe.OpenApi.Path.replace_path_params(
"/v1/products/{product}/features/{id}",
[
%{
__struct__: OpenApiGen.Blueprint.Parameter,
in: "path",
name: "id",
required: true,
schema: %{
__struct__: OpenApiGen.Blueprint.Parameter.Schema,
any_of: [],
items: [],
name: "id",
properties: [],
title: nil,
type: "string"
}
},
%{
__struct__: OpenApiGen.Blueprint.Parameter,
in: "path",
name: "product",
required: true,
schema: %{
__struct__: OpenApiGen.Blueprint.Parameter.Schema,
any_of: [],
items: [],
name: "product",
properties: [],
title: nil,
type: "string"
}
}
],
[id, product]
)
Stripe.Request.new_request(opts)
|> Stripe.Request.put_endpoint(path)
|> Stripe.Request.put_method(:delete)
|> Stripe.Request.make_request()
end
)
)
(
nil
@doc "<p>Retrieve a list of features for a product</p>\n\n#### Details\n\n * Method: `get`\n * Path: `/v1/products/{product}/features`\n"
(
@spec list(
product :: binary(),
params :: %{
optional(:ending_before) => binary,
optional(:expand) => list(binary),
optional(:limit) => integer,
optional(:starting_after) => binary
},
opts :: Keyword.t()
) ::
{:ok, Stripe.List.t(Stripe.ProductFeature.t())}
| {:error, Stripe.ApiErrors.t()}
| {:error, term()}
def list(product, params \\ %{}, opts \\ []) do
path =
Stripe.OpenApi.Path.replace_path_params(
"/v1/products/{product}/features",
[
%{
__struct__: OpenApiGen.Blueprint.Parameter,
in: "path",
name: "product",
required: true,
schema: %{
__struct__: OpenApiGen.Blueprint.Parameter.Schema,
any_of: [],
items: [],
name: "product",
properties: [],
title: nil,
type: "string"
}
}
],
[product]
)
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>Retrieves a product_feature, which represents a feature attachment to a product</p>\n\n#### Details\n\n * Method: `get`\n * Path: `/v1/products/{product}/features/{id}`\n"
(
@spec retrieve(
id :: binary(),
product :: binary(),
params :: %{optional(:expand) => list(binary)},
opts :: Keyword.t()
) ::
{:ok, Stripe.ProductFeature.t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
def retrieve(id, product, params \\ %{}, opts \\ []) do
path =
Stripe.OpenApi.Path.replace_path_params(
"/v1/products/{product}/features/{id}",
[
%{
__struct__: OpenApiGen.Blueprint.Parameter,
in: "path",
name: "id",
required: true,
schema: %{
__struct__: OpenApiGen.Blueprint.Parameter.Schema,
any_of: [],
items: [],
name: "id",
properties: [],
title: nil,
type: "string"
}
},
%{
__struct__: OpenApiGen.Blueprint.Parameter,
in: "path",
name: "product",
required: true,
schema: %{
__struct__: OpenApiGen.Blueprint.Parameter.Schema,
any_of: [],
items: [],
name: "product",
properties: [],
title: nil,
type: "string"
}
}
],
[id, product]
)
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>Creates a product_feature, which represents a feature attachment to a product</p>\n\n#### Details\n\n * Method: `post`\n * Path: `/v1/products/{product}/features`\n"
(
@spec create(
product :: binary(),
params :: %{
optional(:entitlement_feature) => binary,
optional(:expand) => list(binary)
},
opts :: Keyword.t()
) ::
{:ok, Stripe.ProductFeature.t()} | {:error, Stripe.ApiErrors.t()} | {:error, term()}
def create(product, params \\ %{}, opts \\ []) do
path =
Stripe.OpenApi.Path.replace_path_params(
"/v1/products/{product}/features",
[
%{
__struct__: OpenApiGen.Blueprint.Parameter,
in: "path",
name: "product",
required: true,
schema: %{
__struct__: OpenApiGen.Blueprint.Parameter.Schema,
any_of: [],
items: [],
name: "product",
properties: [],
title: nil,
type: "string"
}
}
],
[product]
)
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