Current section

Files

Jump to
stripity_stripe lib generated billing__meter_event.ex
Raw

lib/generated/billing__meter_event.ex

defmodule Stripe.Billing.MeterEvent do
use Stripe.Entity
@moduledoc "Meter events represent actions that customers take in your system. You can use meter events to bill a customer based on their usage. Meter events are associated with billing meters, which define both the contents of the event’s payload and how to aggregate those events."
(
defstruct [:created, :event_name, :identifier, :livemode, :object, :payload, :timestamp]
@typedoc "The `billing.meter_event` type.\n\n * `created` Time at which the object was created. Measured in seconds since the Unix epoch.\n * `event_name` The name of the meter event. Corresponds with the `event_name` field on a meter.\n * `identifier` A unique identifier for the event.\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 * `payload` The payload of the event. This contains the fields corresponding to a meter's `customer_mapping.event_payload_key` (default is `stripe_customer_id`) and `value_settings.event_payload_key` (default is `value`). Read more about the [payload](https://stripe.com/docs/billing/subscriptions/usage-based/recording-usage#payload-key-overrides).\n * `timestamp` The timestamp passed in when creating the event. Measured in seconds since the Unix epoch.\n"
@type t :: %__MODULE__{
created: integer,
event_name: binary,
identifier: binary,
livemode: boolean,
object: binary,
payload: term,
timestamp: integer
}
)
(
nil
@doc "<p>Creates a billing meter event.</p>\n\n#### Details\n\n * Method: `post`\n * Path: `/v1/billing/meter_events`\n"
(
@spec create(
params :: %{
optional(:event_name) => binary,
optional(:expand) => list(binary),
optional(:identifier) => binary,
optional(:payload) => map(),
optional(:timestamp) => integer
},
opts :: Keyword.t()
) ::
{:ok, Stripe.Billing.MeterEvent.t()}
| {:error, Stripe.ApiErrors.t()}
| {:error, term()}
def create(params \\ %{}, opts \\ []) do
path = Stripe.OpenApi.Path.replace_path_params("/v1/billing/meter_events", [], [])
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