Struct stripe::generated::billing::plan::Plan

source ·
pub struct Plan {
Show 20 fields pub id: PlanId, pub active: Option<bool>, pub aggregate_usage: Option<PlanAggregateUsage>, pub amount: Option<i64>, pub amount_decimal: Option<String>, pub billing_scheme: Option<PlanBillingScheme>, pub created: Option<Timestamp>, pub currency: Option<Currency>, pub deleted: bool, pub interval: Option<PlanInterval>, pub interval_count: Option<u64>, pub livemode: Option<bool>, pub metadata: Option<Metadata>, pub nickname: Option<String>, pub product: Option<Expandable<Product>>, pub tiers: Option<Vec<PlanTier>>, pub tiers_mode: Option<PlanTiersMode>, pub transform_usage: Option<TransformUsage>, pub trial_period_days: Option<u32>, pub usage_type: Option<PlanUsageType>,
}
Expand description

The resource representing a Stripe “Plan”.

For more details see https://stripe.com/docs/api/plans/object

Fields§

§id: PlanId

Unique identifier for the object.

§active: Option<bool>

Whether the plan can be used for new purchases.

§aggregate_usage: Option<PlanAggregateUsage>

Specifies a usage aggregation strategy for plans of usage_type=metered.

Allowed values are sum for summing up all usage during a period, last_during_period for using the last usage record reported within a period, last_ever for using the last usage record ever (across period bounds) or max which uses the usage record with the maximum reported usage during a period. Defaults to sum.

§amount: Option<i64>

The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible.

Only set if billing_scheme=per_unit.

§amount_decimal: Option<String>

The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places.

Only set if billing_scheme=per_unit.

§billing_scheme: Option<PlanBillingScheme>

Describes how to compute the price per period.

Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.

§created: Option<Timestamp>

Time at which the object was created.

Measured in seconds since the Unix epoch.

§currency: Option<Currency>

Three-letter ISO currency code, in lowercase.

Must be a supported currency.

§deleted: bool§interval: Option<PlanInterval>

The frequency at which a subscription is billed.

One of day, week, month or year.

§interval_count: Option<u64>

The number of intervals (specified in the interval attribute) between subscription billings.

For example, interval=month and interval_count=3 bills every 3 months.

§livemode: Option<bool>

Has the value true if the object exists in live mode or the value false if the object exists in test mode.

§metadata: Option<Metadata>

Set of key-value pairs that you can attach to an object.

This can be useful for storing additional information about the object in a structured format.

§nickname: Option<String>

A brief description of the plan, hidden from customers.

§product: Option<Expandable<Product>>

The product whose pricing this plan determines.

§tiers: Option<Vec<PlanTier>>

Each element represents a pricing tier.

This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.

§tiers_mode: Option<PlanTiersMode>

Defines if the tiering price should be graduated or volume based.

In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.

§transform_usage: Option<TransformUsage>

Apply a transformation to the reported usage or set quantity before computing the amount billed.

Cannot be combined with tiers.

§trial_period_days: Option<u32>

Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.

§usage_type: Option<PlanUsageType>

Configures how the quantity per period should be determined.

Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.

Implementations§

source§

impl Plan

source

pub fn list(client: &Client, params: &ListPlans<'_>) -> Response<List<Plan>>

Returns a list of your plans.

source

pub fn retrieve(client: &Client, id: &PlanId, expand: &[&str]) -> Response<Plan>

Retrieves the plan with the given ID.

source

pub fn update( client: &Client, id: &PlanId, params: UpdatePlan<'_> ) -> Response<Plan>

Updates the specified plan by setting the values of the parameters passed.

Any parameters not provided are left unchanged. By design, you cannot change a plan’s ID, amount, currency, or billing cycle.

source

pub fn delete(client: &Client, id: &PlanId) -> Response<Deleted<PlanId>>

Deleting plans means new subscribers can’t be added.

Existing subscribers aren’t affected.

Trait Implementations§

source§

impl Clone for Plan

source§

fn clone(&self) -> Plan

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Plan

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Plan

source§

fn default() -> Plan

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for Plan

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Object for Plan

§

type Id = PlanId

The canonical id type for this object.
source§

fn id(&self) -> Self::Id

The id of the object.
source§

fn object(&self) -> &'static str

The object’s type, typically represented in wire format as the object property.
source§

impl Serialize for Plan

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for Plan

§

impl RefUnwindSafe for Plan

§

impl Send for Plan

§

impl Sync for Plan

§

impl Unpin for Plan

§

impl UnwindSafe for Plan

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,