Class: Pago::V2026_04::Models::DiscountProduct

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

Overview

A product that a discount can be applied to.

Constant Summary collapse

JSON_KEYS =

Returns:

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

Returns:

  • (Array[String])
["metadata", "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"].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(metadata:, 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:) ⇒ DiscountProduct

Returns a new instance of DiscountProduct.

Parameters:

  • metadata: (Hash[String, untyped])
  • 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)


23920
23921
23922
23923
23924
23925
23926
23927
23928
23929
23930
23931
23932
23933
23934
23935
23936
23937
23938
23939
23940
23941
23942
23943
23944
23945
23946
23947
23948
23949
23950
23951
23952
23953
23954
23955
# File 'lib/pago/v2026_04/models.rb', line 23920

def initialize(
  metadata:,
  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:
)
  super()
  assign(:metadata, )
  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)
end

Instance Attribute Details

#created_atString (readonly)

Creation timestamp of the object.

Returns:

  • (String)


23867
23868
23869
# File 'lib/pago/v2026_04/models.rb', line 23867

def created_at
  @created_at
end

#descriptionString? (readonly)

The description of the product.

Returns:

  • (String, nil)


23887
23888
23889
# File 'lib/pago/v2026_04/models.rb', line 23887

def description
  @description
end

#idString (readonly)

The ID of the object.

Returns:

  • (String)


23863
23864
23865
# File 'lib/pago/v2026_04/models.rb', line 23863

def id
  @id
end

#is_archivedBoolean (readonly)

Whether the product is archived and no longer available.

Returns:

  • (Boolean)


23914
23915
23916
# File 'lib/pago/v2026_04/models.rb', line 23914

def is_archived
  @is_archived
end

#is_recurringBoolean (readonly)

Whether the product is a subscription.

Returns:

  • (Boolean)


23910
23911
23912
# File 'lib/pago/v2026_04/models.rb', line 23910

def is_recurring
  @is_recurring
end

#metadataHash{String => String, Integer, Float, Boolean} (readonly)

Returns:

  • (Hash{String => String, Integer, Float, Boolean})


23859
23860
23861
# File 'lib/pago/v2026_04/models.rb', line 23859

def 
  @metadata
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)


23902
23903
23904
# File 'lib/pago/v2026_04/models.rb', line 23902

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)


23906
23907
23908
# File 'lib/pago/v2026_04/models.rb', line 23906

def meter_interval_count
  @meter_interval_count
end

#modified_atString? (readonly)

Last modification timestamp of the object.

Returns:

  • (String, nil)


23871
23872
23873
# File 'lib/pago/v2026_04/models.rb', line 23871

def modified_at
  @modified_at
end

#nameString (readonly)

The name of the product.

Returns:

  • (String)


23883
23884
23885
# File 'lib/pago/v2026_04/models.rb', line 23883

def name
  @name
end

#organization_idString (readonly)

The ID of the organization owning the product.

Returns:

  • (String)


23918
23919
23920
# File 'lib/pago/v2026_04/models.rb', line 23918

def organization_id
  @organization_id
end

#recurring_intervalString? (readonly)

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

Returns:

  • (String, nil)


23894
23895
23896
# File 'lib/pago/v2026_04/models.rb', line 23894

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)


23898
23899
23900
# File 'lib/pago/v2026_04/models.rb', line 23898

def recurring_interval_count
  @recurring_interval_count
end

#trial_intervalString? (readonly)

The interval unit for the trial period.

Returns:

  • (String, nil)


23875
23876
23877
# File 'lib/pago/v2026_04/models.rb', line 23875

def trial_interval
  @trial_interval
end

#trial_interval_countInteger? (readonly)

The number of interval units for the trial period.

Returns:

  • (Integer, nil)


23879
23880
23881
# File 'lib/pago/v2026_04/models.rb', line 23879

def trial_interval_count
  @trial_interval_count
end

#visibilityString (readonly)

Returns:

  • (String)


23890
23891
23892
# File 'lib/pago/v2026_04/models.rb', line 23890

def visibility
  @visibility
end

Class Method Details

.from_json(data) ⇒ DiscountProduct?

Parameters:

  • data (Hash, String, nil)

Returns:



23959
23960
23961
23962
23963
23964
23965
23966
23967
23968
23969
23970
23971
23972
23973
23974
23975
23976
23977
23978
23979
23980
23981
23982
23983
23984
23985
# File 'lib/pago/v2026_04/models.rb', line 23959

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