class Stripe::Plan

Overview

You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration. Plans define the base price, currency, and billing cycle for recurring purchases of products. Products help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme. For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year. Related guides: Set up a subscription and more about products and prices.

Included Modules

Defined in:

stripe/models/plan.cr

Constant Summary

ERROR_MESSAGE_FOR_AGGREGATE_USAGE = "invalid value for \"aggregate_usage\", must be one of [last_during_period, last_ever, max, sum]."
ERROR_MESSAGE_FOR_BILLING_SCHEME = "invalid value for \"billing_scheme\", must be one of [per_unit, tiered]."
ERROR_MESSAGE_FOR_INTERVAL = "invalid value for \"interval\", must be one of [day, month, week, year]."
ERROR_MESSAGE_FOR_OBJECT = "invalid value for \"object\", must be one of [plan]."
ERROR_MESSAGE_FOR_TIERS_MODE = "invalid value for \"tiers_mode\", must be one of [graduated, volume]."
ERROR_MESSAGE_FOR_USAGE_TYPE = "invalid value for \"usage_type\", must be one of [licensed, metered]."
MAX_LENGTH_FOR_ID = 5000
MAX_LENGTH_FOR_METER = 5000
MAX_LENGTH_FOR_NICKNAME = 5000
VALID_VALUES_FOR_AGGREGATE_USAGE = String.static_array("last_during_period", "last_ever", "max", "sum")
VALID_VALUES_FOR_BILLING_SCHEME = String.static_array("per_unit", "tiered")
VALID_VALUES_FOR_INTERVAL = String.static_array("day", "month", "week", "year")
VALID_VALUES_FOR_OBJECT = String.static_array("plan")
VALID_VALUES_FOR_TIERS_MODE = String.static_array("graduated", "volume")
VALID_VALUES_FOR_USAGE_TYPE = String.static_array("licensed", "metered")

Constructors

Instance Method Summary

Instance methods inherited from module OpenApi::Json

after_initialize after_initialize, clone clone, eql?(o : self) eql?, to_hash : Hash(String, JSON::Any) to_hash, to_json_any : JSON::Any to_json_any

Class methods inherited from module OpenApi::Json

build_from_hash(hash : Hash) build_from_hash, build_from_json_any(json_any : JSON::Any) build_from_json_any

Instance methods inherited from module OpenApi::Validatable

list_invalid_properties : Array(String) list_invalid_properties, list_invalid_properties_for(key : String) : Array(String) list_invalid_properties_for, valid? : Bool valid?, validate : Nil validate

Constructor Detail

def self.new(pull : JSON::PullParser) #

[View source]
def self.new(*, active : Bool | Nil = nil, aggregate_usage : String | Nil = nil, amount : Int64 | Nil = nil, amount_decimal : BigDecimal | Nil = nil, billing_scheme : String | Nil = nil, created : Int64 | Nil = nil, currency : String | Nil = nil, id : String | Nil = nil, interval : String | Nil = nil, interval_count : Int64 | Nil = nil, livemode : Bool | Nil = nil, metadata : Hash(String, String) | Nil = nil, meter : String | Nil = nil, nickname : String | Nil = nil, object : String | Nil = nil, product : Stripe::PlanProduct | Nil = nil, tiers_mode : String | Nil = nil, transform_usage : Stripe::PlanTransformUsage | Nil = nil, trial_period_days : Int64 | Nil = nil, usage_type : String | Nil = nil, tiers : Array(Stripe::PlanTier) | Nil = nil) #

Initializes the object @param [Hash] attributes Model attributes in the form of hash


[View source]

Instance Method Detail

def ==(other : self) #

Generates #hash and #== methods from all fields #== @return [Bool] #hash calculates hash code according to all attributes. #hash @return [UInt64] Hash code


def active : Bool | Nil #

[View source]
def active=(new_value : Bool | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] active Object to be assigned


[View source]
def aggregate_usage : String | Nil #

[View source]
def aggregate_usage=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] aggregate_usage Object to be assigned


[View source]
def amount : Int64 | Nil #

[View source]
def amount=(new_value : Int64 | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] amount Object to be assigned


[View source]
def amount_decimal : BigDecimal | Nil #

[View source]
def amount_decimal=(new_value : BigDecimal | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] amount_decimal Object to be assigned


[View source]
def billing_scheme : String | Nil #

[View source]
def billing_scheme=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] billing_scheme Object to be assigned


[View source]
def created : Int64 | Nil #

[View source]
def created=(new_value : Int64 | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] created Object to be assigned


[View source]
def currency : String | Nil #

[View source]
def currency=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] currency Object to be assigned


[View source]
def hash(hasher) #

Generates #hash and #== methods from all fields #== @return [Bool] #hash calculates hash code according to all attributes. #hash @return [UInt64] Hash code


def id : String | Nil #

[View source]
def id=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] id Object to be assigned


[View source]
def interval : String | Nil #

[View source]
def interval=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] interval Object to be assigned


[View source]
def interval_count : Int64 | Nil #

[View source]
def interval_count=(new_value : Int64 | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] interval_count Object to be assigned


[View source]
def list_invalid_properties : Array(String) #

Show invalid properties with the reasons. Usually used together with valid? @return Array for valid properties with the reasons


[View source]
def livemode : Bool | Nil #

[View source]
def livemode=(new_value : Bool | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] livemode Object to be assigned


[View source]
def metadata : Hash(String, String) | Nil #

[View source]
def metadata=(new_value : Hash(String, String) | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] metadata Object to be assigned


[View source]
def meter : String | Nil #

[View source]
def meter=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] meter Object to be assigned


[View source]
def nickname : String | Nil #

[View source]
def nickname=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] nickname Object to be assigned


[View source]
def object : String | Nil #

[View source]
def object=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] object Object to be assigned


[View source]
def product : Stripe::PlanProduct | Nil #

[View source]
def product=(new_value : Stripe::PlanProduct | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] product Object to be assigned


[View source]
def tiers : Array(Stripe::PlanTier) | Nil #

[View source]
def tiers=(new_value : Array(Stripe::PlanTier) | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] tiers Object to be assigned


[View source]
def tiers_mode : String | Nil #

[View source]
def tiers_mode=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] tiers_mode Object to be assigned


[View source]
def transform_usage : Stripe::PlanTransformUsage | Nil #

[View source]
def transform_usage=(new_value : Stripe::PlanTransformUsage | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] transform_usage Object to be assigned


[View source]
def trial_period_days : Int64 | Nil #

[View source]
def trial_period_days=(new_value : Int64 | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] trial_period_days Object to be assigned


[View source]
def usage_type : String | Nil #

[View source]
def usage_type=(new_value : String | Nil) #

Custom attribute writer method checking allowed values (enum). @param [Object] usage_type Object to be assigned


[View source]
def valid? : Bool #

Check to see if the all the properties in the model are valid @return true if the model is valid


[View source]