Class: Pago::V2026_04::Models::CustomerSubscriptionProduct

Inherits:
Model
  • Object
show all
Defined in:
lib/pago/v2026_04/models.rb,
sig/pago/v2026_04/generated.rbs

Constant Summary collapse

JSON_KEYS =

Returns:

  • (Hash[Symbol, String])
{
  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",
  organization: "organization"
}.freeze
REQUIRED_KEYS =

Returns:

  • (Array[String])
["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", "organization"].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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:, organization:) ⇒ CustomerSubscriptionProduct

Returns a new instance of CustomerSubscriptionProduct.

Parameters:

  • id: (String)
  • created_at: (String)
  • modified_at: (String, nil)
  • trial_interval: (String, nil)
  • trial_interval_count: (Integer, nil)
  • name: (String)
  • description: (String, nil)
  • visibility: (String)
  • recurring_interval: (String, nil)
  • recurring_interval_count: (Integer, nil)
  • meter_interval: (String, nil)
  • meter_interval_count: (Integer, nil)
  • is_recurring: (Boolean)
  • is_archived: (Boolean)
  • organization_id: (String)
  • prices: (Array[untyped])
  • benefits: (Array[Models::BenefitPublic])
  • medias: (Array[Models::ProductMediaFileRead])
  • organization: (Models::CustomerOrganization)


21362
21363
21364
21365
21366
21367
21368
21369
21370
21371
21372
21373
21374
21375
21376
21377
21378
21379
21380
21381
21382
21383
21384
21385
21386
21387
21388
21389
21390
21391
21392
21393
21394
21395
21396
21397
21398
21399
21400
21401
21402
21403
# File 'lib/pago/v2026_04/models.rb', line 21362

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:,
  organization:
)
  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)
  assign(:organization, organization)
end

Instance Attribute Details

#benefitsArray<Models::BenefitPublic> (readonly)

List of benefits granted by the product.

Returns:



21353
21354
21355
# File 'lib/pago/v2026_04/models.rb', line 21353

def benefits
  @benefits
end

#created_atString (readonly)

Creation timestamp of the object.

Returns:

  • (String)


21294
21295
21296
# File 'lib/pago/v2026_04/models.rb', line 21294

def created_at
  @created_at
end

#descriptionString? (readonly)

The description of the product.

Returns:

  • (String, nil)


21314
21315
21316
# File 'lib/pago/v2026_04/models.rb', line 21314

def description
  @description
end

#idString (readonly)

The ID of the object.

Returns:

  • (String)


21290
21291
21292
# File 'lib/pago/v2026_04/models.rb', line 21290

def id
  @id
end

#is_archivedBoolean (readonly)

Whether the product is archived and no longer available.

Returns:

  • (Boolean)


21341
21342
21343
# File 'lib/pago/v2026_04/models.rb', line 21341

def is_archived
  @is_archived
end

#is_recurringBoolean (readonly)

Whether the product is a subscription.

Returns:

  • (Boolean)


21337
21338
21339
# File 'lib/pago/v2026_04/models.rb', line 21337

def is_recurring
  @is_recurring
end

#mediasArray<Models::ProductMediaFileRead> (readonly)

List of medias associated to the product.

Returns:



21357
21358
21359
# File 'lib/pago/v2026_04/models.rb', line 21357

def medias
  @medias
end

#meter_intervalString? (readonly)

The meter cycle of the product, independent of the billing interval. If None, metered concerns follow the billing interval.

Returns:

  • (String, nil)


21329
21330
21331
# File 'lib/pago/v2026_04/models.rb', line 21329

def meter_interval
  @meter_interval
end

#meter_interval_countInteger? (readonly)

Number of meter interval units. None when no meter cycle is set.

Returns:

  • (Integer, nil)


21333
21334
21335
# File 'lib/pago/v2026_04/models.rb', line 21333

def meter_interval_count
  @meter_interval_count
end

#modified_atString? (readonly)

Last modification timestamp of the object.

Returns:

  • (String, nil)


21298
21299
21300
# File 'lib/pago/v2026_04/models.rb', line 21298

def modified_at
  @modified_at
end

#nameString (readonly)

The name of the product.

Returns:

  • (String)


21310
21311
21312
# File 'lib/pago/v2026_04/models.rb', line 21310

def name
  @name
end

#organizationModels::CustomerOrganization (readonly)



21360
21361
21362
# File 'lib/pago/v2026_04/models.rb', line 21360

def organization
  @organization
end

#organization_idString (readonly)

The ID of the organization owning the product.

Returns:

  • (String)


21345
21346
21347
# File 'lib/pago/v2026_04/models.rb', line 21345

def organization_id
  @organization_id
end

#pricesArray<Object> (readonly)

List of prices for this product.

Returns:

  • (Array<Object>)


21349
21350
21351
# File 'lib/pago/v2026_04/models.rb', line 21349

def prices
  @prices
end

#recurring_intervalString? (readonly)

The recurring interval of the product. If None, the product is a one-time purchase.

Returns:

  • (String, nil)


21321
21322
21323
# File 'lib/pago/v2026_04/models.rb', line 21321

def recurring_interval
  @recurring_interval
end

#recurring_interval_countInteger? (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.

Returns:

  • (Integer, nil)


21325
21326
21327
# File 'lib/pago/v2026_04/models.rb', line 21325

def recurring_interval_count
  @recurring_interval_count
end

#trial_intervalString? (readonly)

The interval unit for the trial period.

Returns:

  • (String, nil)


21302
21303
21304
# File 'lib/pago/v2026_04/models.rb', line 21302

def trial_interval
  @trial_interval
end

#trial_interval_countInteger? (readonly)

The number of interval units for the trial period.

Returns:

  • (Integer, nil)


21306
21307
21308
# File 'lib/pago/v2026_04/models.rb', line 21306

def trial_interval_count
  @trial_interval_count
end

#visibilityString (readonly)

Returns:

  • (String)


21317
21318
21319
# File 'lib/pago/v2026_04/models.rb', line 21317

def visibility
  @visibility
end

Class Method Details

.from_json(data) ⇒ CustomerSubscriptionProduct?

Parameters:

  • data (Hash, String, nil)

Returns:



21407
21408
21409
21410
21411
21412
21413
21414
21415
21416
21417
21418
21419
21420
21421
21422
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
# File 'lib/pago/v2026_04/models.rb', line 21407

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),
      organization: (data.key?("organization") ? Models::CustomerOrganization.from_json(data["organization"]) : ::Pago::UNSET)
    ),
    data
  )
end