Class: AdvancedBilling::SubscriptionCustomPrice
- Inherits:
-
BaseModel
- Object
- CoreLibrary::BaseModel
- BaseModel
- AdvancedBilling::SubscriptionCustomPrice
- Defined in:
- lib/advanced_billing/models/subscription_custom_price.rb
Overview
(Optional) Used in place of product_price_point_id to define a custom price point unique to the subscription. A subscription can have up to 30 custom price points. Exceeding this limit will result in an API error.
Instance Attribute Summary collapse
-
#expiration_interval ⇒ Object
(Optional).
-
#expiration_interval_unit ⇒ ExpirationIntervalUnit
(Optional).
-
#handle ⇒ String
(Optional).
-
#initial_charge_after_trial ⇒ TrueClass | FalseClass
(Optional).
-
#initial_charge_in_cents ⇒ Object
(Optional).
-
#interval ⇒ Object
Required if using
custom_priceattribute. -
#interval_unit ⇒ IntervalUnit
Required if using
custom_priceattribute. -
#name ⇒ String
(Optional).
-
#price_in_cents ⇒ Object
Required if using
custom_priceattribute. -
#tax_included ⇒ TrueClass | FalseClass
(Optional).
-
#trial_interval ⇒ Object
(Optional).
-
#trial_interval_unit ⇒ IntervalUnit
(Optional).
-
#trial_price_in_cents ⇒ Object
(Optional).
-
#trial_type ⇒ TrialType
Indicates how a trial is handled when the trail period ends and there is no credit card on file.
Class Method Summary collapse
-
.from_hash(hash) ⇒ Object
Creates an instance of the object from a hash.
-
.names ⇒ Object
A mapping from model property names to API property names.
-
.nullables ⇒ Object
An array for nullable fields.
-
.optionals ⇒ Object
An array for optional fields.
-
.validate(value) ⇒ Object
Validates an instance of the object from a given value.
Instance Method Summary collapse
-
#initialize(price_in_cents:, interval:, interval_unit:, name: SKIP, handle: SKIP, trial_price_in_cents: SKIP, trial_interval: SKIP, trial_interval_unit: SKIP, trial_type: SKIP, initial_charge_in_cents: SKIP, initial_charge_after_trial: SKIP, expiration_interval: SKIP, expiration_interval_unit: SKIP, tax_included: SKIP, additional_properties: {}) ⇒ SubscriptionCustomPrice
constructor
A new instance of SubscriptionCustomPrice.
-
#inspect ⇒ Object
Provides a debugging-friendly string with detailed object information.
-
#to_s ⇒ Object
Provides a human-readable string representation of the object.
Methods inherited from BaseModel
#check_for_conflict, #get_additional_properties, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json
Constructor Details
#initialize(price_in_cents:, interval:, interval_unit:, name: SKIP, handle: SKIP, trial_price_in_cents: SKIP, trial_interval: SKIP, trial_interval_unit: SKIP, trial_type: SKIP, initial_charge_in_cents: SKIP, initial_charge_after_trial: SKIP, expiration_interval: SKIP, expiration_interval_unit: SKIP, tax_included: SKIP, additional_properties: {}) ⇒ SubscriptionCustomPrice
Returns a new instance of SubscriptionCustomPrice.
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 121 def initialize(price_in_cents:, interval:, interval_unit:, name: SKIP, handle: SKIP, trial_price_in_cents: SKIP, trial_interval: SKIP, trial_interval_unit: SKIP, trial_type: SKIP, initial_charge_in_cents: SKIP, initial_charge_after_trial: SKIP, expiration_interval: SKIP, expiration_interval_unit: SKIP, tax_included: SKIP, additional_properties: {}) # Add additional model properties to the instance. additional_properties.each do |_name, _value| instance_variable_set("@#{_name}", _value) end @name = name unless name == SKIP @handle = handle unless handle == SKIP @price_in_cents = price_in_cents @interval = interval @interval_unit = interval_unit @trial_price_in_cents = trial_price_in_cents unless trial_price_in_cents == SKIP @trial_interval = trial_interval unless trial_interval == SKIP @trial_interval_unit = trial_interval_unit unless trial_interval_unit == SKIP @trial_type = trial_type unless trial_type == SKIP @initial_charge_in_cents = initial_charge_in_cents unless initial_charge_in_cents == SKIP unless initial_charge_after_trial == SKIP @initial_charge_after_trial = initial_charge_after_trial end @expiration_interval = expiration_interval unless expiration_interval == SKIP @expiration_interval_unit = expiration_interval_unit unless expiration_interval_unit == SKIP @tax_included = tax_included unless tax_included == SKIP end |
Instance Attribute Details
#expiration_interval ⇒ Object
(Optional)
65 66 67 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 65 def expiration_interval @expiration_interval end |
#expiration_interval_unit ⇒ ExpirationIntervalUnit
(Optional)
69 70 71 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 69 def expiration_interval_unit @expiration_interval_unit end |
#handle ⇒ String
(Optional)
20 21 22 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 20 def handle @handle end |
#initial_charge_after_trial ⇒ TrueClass | FalseClass
(Optional)
61 62 63 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 61 def initial_charge_after_trial @initial_charge_after_trial end |
#initial_charge_in_cents ⇒ Object
(Optional)
57 58 59 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 57 def initial_charge_in_cents @initial_charge_in_cents end |
#interval ⇒ Object
Required if using custom_price attribute.
28 29 30 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 28 def interval @interval end |
#interval_unit ⇒ IntervalUnit
Required if using custom_price attribute.
32 33 34 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 32 def interval_unit @interval_unit end |
#name ⇒ String
(Optional)
16 17 18 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 16 def name @name end |
#price_in_cents ⇒ Object
Required if using custom_price attribute.
24 25 26 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 24 def price_in_cents @price_in_cents end |
#tax_included ⇒ TrueClass | FalseClass
(Optional)
73 74 75 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 73 def tax_included @tax_included end |
#trial_interval ⇒ Object
(Optional)
40 41 42 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 40 def trial_interval @trial_interval end |
#trial_interval_unit ⇒ IntervalUnit
(Optional)
44 45 46 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 44 def trial_interval_unit @trial_interval_unit end |
#trial_price_in_cents ⇒ Object
(Optional)
36 37 38 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 36 def trial_price_in_cents @trial_price_in_cents end |
#trial_type ⇒ TrialType
Indicates how a trial is handled when the trail period ends and there is no credit card on file. For no_obligation, the subscription transitions to a Trial Ended state. Maxio will not send any emails or statements. For payment_expected, the subscription transitions to a Past Due state. Maxio will send normal dunning emails and statements according to your other settings.
53 54 55 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 53 def trial_type @trial_type end |
Class Method Details
.from_hash(hash) ⇒ Object
Creates an instance of the object from a hash.
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 153 def self.from_hash(hash) return nil unless hash # Extract variables from the hash. price_in_cents = hash.key?('price_in_cents') ? APIHelper.deserialize_union_type( UnionTypeLookUp.get(:SubscriptionCustomPricePriceInCents), hash['price_in_cents'] ) : nil interval = hash.key?('interval') ? APIHelper.deserialize_union_type( UnionTypeLookUp.get(:SubscriptionCustomPriceInterval), hash['interval'] ) : nil interval_unit = hash.key?('interval_unit') ? hash['interval_unit'] : nil name = hash.key?('name') ? hash['name'] : SKIP handle = hash.key?('handle') ? hash['handle'] : SKIP trial_price_in_cents = hash.key?('trial_price_in_cents') ? APIHelper.deserialize_union_type( UnionTypeLookUp.get(:SubscriptionCustomPriceTrialPriceInCents), hash['trial_price_in_cents'] ) : SKIP trial_interval = hash.key?('trial_interval') ? APIHelper.deserialize_union_type( UnionTypeLookUp.get(:SubscriptionCustomPriceTrialInterval), hash['trial_interval'] ) : SKIP trial_interval_unit = hash.key?('trial_interval_unit') ? hash['trial_interval_unit'] : SKIP trial_type = hash.key?('trial_type') ? hash['trial_type'] : SKIP initial_charge_in_cents = hash.key?('initial_charge_in_cents') ? APIHelper.deserialize_union_type( UnionTypeLookUp.get(:SubscriptionCustomPriceInitialChargeInCents), hash['initial_charge_in_cents'] ) : SKIP initial_charge_after_trial = hash.key?('initial_charge_after_trial') ? hash['initial_charge_after_trial'] : SKIP expiration_interval = hash.key?('expiration_interval') ? APIHelper.deserialize_union_type( UnionTypeLookUp.get(:SubscriptionCustomPriceExpirationInterval), hash['expiration_interval'] ) : SKIP expiration_interval_unit = hash.key?('expiration_interval_unit') ? hash['expiration_interval_unit'] : SKIP tax_included = hash.key?('tax_included') ? hash['tax_included'] : SKIP # Clean out expected properties from Hash. additional_properties = hash.reject { |k, _| names.value?(k) } # Create object from extracted values. SubscriptionCustomPrice.new(price_in_cents: price_in_cents, interval: interval, interval_unit: interval_unit, name: name, handle: handle, trial_price_in_cents: trial_price_in_cents, trial_interval: trial_interval, trial_interval_unit: trial_interval_unit, trial_type: trial_type, initial_charge_in_cents: initial_charge_in_cents, initial_charge_after_trial: initial_charge_after_trial, expiration_interval: expiration_interval, expiration_interval_unit: expiration_interval_unit, tax_included: tax_included, additional_properties: additional_properties) end |
.names ⇒ Object
A mapping from model property names to API property names.
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 76 def self.names @_hash = {} if @_hash.nil? @_hash['name'] = 'name' @_hash['handle'] = 'handle' @_hash['price_in_cents'] = 'price_in_cents' @_hash['interval'] = 'interval' @_hash['interval_unit'] = 'interval_unit' @_hash['trial_price_in_cents'] = 'trial_price_in_cents' @_hash['trial_interval'] = 'trial_interval' @_hash['trial_interval_unit'] = 'trial_interval_unit' @_hash['trial_type'] = 'trial_type' @_hash['initial_charge_in_cents'] = 'initial_charge_in_cents' @_hash['initial_charge_after_trial'] = 'initial_charge_after_trial' @_hash['expiration_interval'] = 'expiration_interval' @_hash['expiration_interval_unit'] = 'expiration_interval_unit' @_hash['tax_included'] = 'tax_included' @_hash end |
.nullables ⇒ Object
An array for nullable fields
113 114 115 116 117 118 119 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 113 def self.nullables %w[ interval_unit trial_type expiration_interval_unit ] end |
.optionals ⇒ Object
An array for optional fields
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 96 def self.optionals %w[ name handle trial_price_in_cents trial_interval trial_interval_unit trial_type initial_charge_in_cents initial_charge_after_trial expiration_interval expiration_interval_unit tax_included ] end |
.validate(value) ⇒ Object
Validates an instance of the object from a given value.
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 210 def self.validate(value) if value.instance_of? self return ( UnionTypeLookUp.get(:SubscriptionCustomPricePriceInCents) .validate(value.price_in_cents) and UnionTypeLookUp.get(:SubscriptionCustomPriceInterval) .validate(value.interval) and APIHelper.valid_type?(value.interval_unit, ->(val) { IntervalUnit.validate(val) }) ) end return false unless value.instance_of? Hash ( UnionTypeLookUp.get(:SubscriptionCustomPricePriceInCents) .validate(value['price_in_cents']) and UnionTypeLookUp.get(:SubscriptionCustomPriceInterval) .validate(value['interval']) and APIHelper.valid_type?(value['interval_unit'], ->(val) { IntervalUnit.validate(val) }) ) end |
Instance Method Details
#inspect ⇒ Object
Provides a debugging-friendly string with detailed object information.
248 249 250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 248 def inspect class_name = self.class.name.split('::').last "<#{class_name} name: #{@name.inspect}, handle: #{@handle.inspect}, price_in_cents:"\ " #{@price_in_cents.inspect}, interval: #{@interval.inspect}, interval_unit:"\ " #{@interval_unit.inspect}, trial_price_in_cents: #{@trial_price_in_cents.inspect},"\ " trial_interval: #{@trial_interval.inspect}, trial_interval_unit:"\ " #{@trial_interval_unit.inspect}, trial_type: #{@trial_type.inspect},"\ " initial_charge_in_cents: #{@initial_charge_in_cents.inspect}, initial_charge_after_trial:"\ " #{@initial_charge_after_trial.inspect}, expiration_interval:"\ " #{@expiration_interval.inspect}, expiration_interval_unit:"\ " #{@expiration_interval_unit.inspect}, tax_included: #{@tax_included.inspect},"\ " additional_properties: #{get_additional_properties}>" end |
#to_s ⇒ Object
Provides a human-readable string representation of the object.
235 236 237 238 239 240 241 242 243 244 245 |
# File 'lib/advanced_billing/models/subscription_custom_price.rb', line 235 def to_s class_name = self.class.name.split('::').last "<#{class_name} name: #{@name}, handle: #{@handle}, price_in_cents: #{@price_in_cents},"\ " interval: #{@interval}, interval_unit: #{@interval_unit}, trial_price_in_cents:"\ " #{@trial_price_in_cents}, trial_interval: #{@trial_interval}, trial_interval_unit:"\ " #{@trial_interval_unit}, trial_type: #{@trial_type}, initial_charge_in_cents:"\ " #{@initial_charge_in_cents}, initial_charge_after_trial: #{@initial_charge_after_trial},"\ " expiration_interval: #{@expiration_interval}, expiration_interval_unit:"\ " #{@expiration_interval_unit}, tax_included: #{@tax_included}, additional_properties:"\ " #{get_additional_properties}>" end |