Class: Pago::V2026_04::Models::CustomerProduct
- Defined in:
- lib/pago/v2026_04/models.rb,
sig/pago/v2026_04/generated.rbs
Overview
Schema of a product for customer portal.
Constant Summary collapse
- JSON_KEYS =
{ id: "id", created_at: "created_at", modified_at: "modified_at", trial_interval: "trial_interval", trial_interval_count: "trial_interval_count", name: "name", description: "description", visibility: "visibility", recurring_interval: "recurring_interval", recurring_interval_count: "recurring_interval_count", meter_interval: "meter_interval", meter_interval_count: "meter_interval_count", is_recurring: "is_recurring", is_archived: "is_archived", organization_id: "organization_id", prices: "prices", benefits: "benefits", medias: "medias" }.freeze
- REQUIRED_KEYS =
["id", "created_at", "modified_at", "trial_interval", "trial_interval_count", "name", "description", "visibility", "recurring_interval", "recurring_interval_count", "meter_interval", "meter_interval_count", "is_recurring", "is_archived", "organization_id", "prices", "benefits", "medias"].freeze
Instance Attribute Summary collapse
-
#benefits ⇒ Array<Models::BenefitPublic>
readonly
List of benefits granted by the product.
-
#created_at ⇒ String
readonly
Creation timestamp of the object.
-
#description ⇒ String?
readonly
The description of the product.
-
#id ⇒ String
readonly
The ID of the object.
-
#is_archived ⇒ Boolean
readonly
Whether the product is archived and no longer available.
-
#is_recurring ⇒ Boolean
readonly
Whether the product is a subscription.
-
#medias ⇒ Array<Models::ProductMediaFileRead>
readonly
The medias associated to the product.
-
#meter_interval ⇒ String?
readonly
The meter cycle of the product, independent of the billing interval.
-
#meter_interval_count ⇒ Integer?
readonly
Number of meter interval units.
-
#modified_at ⇒ String?
readonly
Last modification timestamp of the object.
-
#name ⇒ String
readonly
The name of the product.
-
#organization_id ⇒ String
readonly
The ID of the organization owning the product.
-
#prices ⇒ Array<Object>
readonly
List of available prices for this product.
-
#recurring_interval ⇒ String?
readonly
The recurring interval of the product.
-
#recurring_interval_count ⇒ Integer?
readonly
Number of interval units of the subscription.
-
#trial_interval ⇒ String?
readonly
The interval unit for the trial period.
-
#trial_interval_count ⇒ Integer?
readonly
The number of interval units for the trial period.
- #visibility ⇒ String readonly
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(id:, created_at:, modified_at:, trial_interval:, trial_interval_count:, name:, description:, visibility:, recurring_interval:, recurring_interval_count:, meter_interval:, meter_interval_count:, is_recurring:, is_archived:, organization_id:, prices:, benefits:, medias:) ⇒ CustomerProduct
constructor
A new instance of CustomerProduct.
Methods inherited from Model
#==, #[], #field_set?, #hash, #inspect, json_keys, required_json_keys, #to_json, #to_json_hash, wrap_raw
Constructor Details
#initialize(id:, created_at:, modified_at:, trial_interval:, trial_interval_count:, name:, description:, visibility:, recurring_interval:, recurring_interval_count:, meter_interval:, meter_interval_count:, is_recurring:, is_archived:, organization_id:, prices:, benefits:, medias:) ⇒ CustomerProduct
Returns a new instance of CustomerProduct.
19348 19349 19350 19351 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 19363 19364 19365 19366 19367 19368 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 19382 19383 19384 19385 19386 19387 |
# File 'lib/pago/v2026_04/models.rb', line 19348 def initialize( id:, created_at:, modified_at:, trial_interval:, trial_interval_count:, name:, description:, visibility:, recurring_interval:, recurring_interval_count:, meter_interval:, meter_interval_count:, is_recurring:, is_archived:, organization_id:, prices:, benefits:, medias: ) super() assign(:id, id) assign(:created_at, created_at) assign(:modified_at, modified_at) assign(:trial_interval, trial_interval) assign(:trial_interval_count, trial_interval_count) assign(:name, name) assign(:description, description) assign(:visibility, visibility) assign(:recurring_interval, recurring_interval) assign(:recurring_interval_count, recurring_interval_count) assign(:meter_interval, meter_interval) assign(:meter_interval_count, meter_interval_count) assign(:is_recurring, is_recurring) assign(:is_archived, is_archived) assign(:organization_id, organization_id) assign(:prices, prices) assign(:benefits, benefits) assign(:medias, medias) end |
Instance Attribute Details
#benefits ⇒ Array<Models::BenefitPublic> (readonly)
List of benefits granted by the product.
19342 19343 19344 |
# File 'lib/pago/v2026_04/models.rb', line 19342 def benefits @benefits end |
#created_at ⇒ String (readonly)
Creation timestamp of the object.
19283 19284 19285 |
# File 'lib/pago/v2026_04/models.rb', line 19283 def created_at @created_at end |
#description ⇒ String? (readonly)
The description of the product.
19303 19304 19305 |
# File 'lib/pago/v2026_04/models.rb', line 19303 def description @description end |
#id ⇒ String (readonly)
The ID of the object.
19279 19280 19281 |
# File 'lib/pago/v2026_04/models.rb', line 19279 def id @id end |
#is_archived ⇒ Boolean (readonly)
Whether the product is archived and no longer available.
19330 19331 19332 |
# File 'lib/pago/v2026_04/models.rb', line 19330 def is_archived @is_archived end |
#is_recurring ⇒ Boolean (readonly)
Whether the product is a subscription.
19326 19327 19328 |
# File 'lib/pago/v2026_04/models.rb', line 19326 def is_recurring @is_recurring end |
#medias ⇒ Array<Models::ProductMediaFileRead> (readonly)
The medias associated to the product.
19346 19347 19348 |
# File 'lib/pago/v2026_04/models.rb', line 19346 def medias @medias end |
#meter_interval ⇒ String? (readonly)
The meter cycle of the product, independent of the billing interval. If None, metered concerns follow the billing interval.
19318 19319 19320 |
# File 'lib/pago/v2026_04/models.rb', line 19318 def meter_interval @meter_interval end |
#meter_interval_count ⇒ Integer? (readonly)
Number of meter interval units. None when no meter cycle is set.
19322 19323 19324 |
# File 'lib/pago/v2026_04/models.rb', line 19322 def meter_interval_count @meter_interval_count end |
#modified_at ⇒ String? (readonly)
Last modification timestamp of the object.
19287 19288 19289 |
# File 'lib/pago/v2026_04/models.rb', line 19287 def modified_at @modified_at end |
#name ⇒ String (readonly)
The name of the product.
19299 19300 19301 |
# File 'lib/pago/v2026_04/models.rb', line 19299 def name @name end |
#organization_id ⇒ String (readonly)
The ID of the organization owning the product.
19334 19335 19336 |
# File 'lib/pago/v2026_04/models.rb', line 19334 def organization_id @organization_id end |
#prices ⇒ Array<Object> (readonly)
List of available prices for this product.
19338 19339 19340 |
# File 'lib/pago/v2026_04/models.rb', line 19338 def prices @prices end |
#recurring_interval ⇒ String? (readonly)
The recurring interval of the product. If None, the product is a one-time purchase.
19310 19311 19312 |
# File 'lib/pago/v2026_04/models.rb', line 19310 def recurring_interval @recurring_interval end |
#recurring_interval_count ⇒ Integer? (readonly)
Number of interval units of the subscription. If this is set to 1 the charge will happen every interval (e.g. every month), if set to 2 it will be every other month, and so on. None for one-time products.
19314 19315 19316 |
# File 'lib/pago/v2026_04/models.rb', line 19314 def recurring_interval_count @recurring_interval_count end |
#trial_interval ⇒ String? (readonly)
The interval unit for the trial period.
19291 19292 19293 |
# File 'lib/pago/v2026_04/models.rb', line 19291 def trial_interval @trial_interval end |
#trial_interval_count ⇒ Integer? (readonly)
The number of interval units for the trial period.
19295 19296 19297 |
# File 'lib/pago/v2026_04/models.rb', line 19295 def trial_interval_count @trial_interval_count end |
#visibility ⇒ String (readonly)
19306 19307 19308 |
# File 'lib/pago/v2026_04/models.rb', line 19306 def visibility @visibility end |
Class Method Details
.from_json(data) ⇒ CustomerProduct?
19391 19392 19393 19394 19395 19396 19397 19398 19399 19400 19401 19402 19403 19404 19405 19406 19407 19408 19409 19410 19411 19412 19413 19414 19415 19416 19417 19418 19419 |
# File 'lib/pago/v2026_04/models.rb', line 19391 def self.from_json(data) data = ::JSON.parse(data) if data.is_a?(String) data = ::Pago::Serde.object(data) return nil if data.nil? wrap_raw( new( id: (data.key?("id") ? data["id"] : ::Pago::UNSET), created_at: (data.key?("created_at") ? data["created_at"] : ::Pago::UNSET), modified_at: (data.key?("modified_at") ? data["modified_at"] : ::Pago::UNSET), trial_interval: (data.key?("trial_interval") ? data["trial_interval"] : ::Pago::UNSET), trial_interval_count: (data.key?("trial_interval_count") ? data["trial_interval_count"] : ::Pago::UNSET), name: (data.key?("name") ? data["name"] : ::Pago::UNSET), description: (data.key?("description") ? data["description"] : ::Pago::UNSET), visibility: (data.key?("visibility") ? data["visibility"] : ::Pago::UNSET), recurring_interval: (data.key?("recurring_interval") ? data["recurring_interval"] : ::Pago::UNSET), recurring_interval_count: (data.key?("recurring_interval_count") ? data["recurring_interval_count"] : ::Pago::UNSET), meter_interval: (data.key?("meter_interval") ? data["meter_interval"] : ::Pago::UNSET), meter_interval_count: (data.key?("meter_interval_count") ? data["meter_interval_count"] : ::Pago::UNSET), is_recurring: (data.key?("is_recurring") ? data["is_recurring"] : ::Pago::UNSET), is_archived: (data.key?("is_archived") ? data["is_archived"] : ::Pago::UNSET), organization_id: (data.key?("organization_id") ? data["organization_id"] : ::Pago::UNSET), prices: (data.key?("prices") ? ::Pago::Serde.array(data["prices"]) { |item0| ::Pago::Serde.union(item0, variants: [Unions::LegacyRecurringProductPrice, Unions::ProductPrice]) } : ::Pago::UNSET), benefits: (data.key?("benefits") ? ::Pago::Serde.array(data["benefits"]) { |item0| Models::BenefitPublic.from_json(item0) } : ::Pago::UNSET), medias: (data.key?("medias") ? ::Pago::Serde.array(data["medias"]) { |item0| Models::ProductMediaFileRead.from_json(item0) } : ::Pago::UNSET) ), data ) end |