class ShopifyAPI::PriceRule

def all(

def all(
  limit: nil,
  since_id: nil,
  created_at_min: nil,
  created_at_max: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  starts_at_min: nil,
  starts_at_max: nil,
  ends_at_min: nil,
  ends_at_max: nil,
  times_used: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {limit: limit, since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, starts_at_min: starts_at_min, starts_at_max: starts_at_max, ends_at_min: ends_at_min, ends_at_max: ends_at_max, times_used: times_used}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[PriceRule])
end

def all(

def all(
  limit: nil,
  since_id: nil,
  created_at_min: nil,
  created_at_max: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  starts_at_min: nil,
  starts_at_max: nil,
  ends_at_min: nil,
  ends_at_max: nil,
  times_used: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {limit: limit, since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, starts_at_min: starts_at_min, starts_at_max: starts_at_max, ends_at_min: ends_at_min, ends_at_max: ends_at_max, times_used: times_used}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[PriceRule])
end

def all(

def all(
  limit: nil,
  since_id: nil,
  created_at_min: nil,
  created_at_max: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  starts_at_min: nil,
  starts_at_max: nil,
  ends_at_min: nil,
  ends_at_max: nil,
  times_used: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {limit: limit, since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, starts_at_min: starts_at_min, starts_at_max: starts_at_max, ends_at_min: ends_at_min, ends_at_max: ends_at_max, times_used: times_used}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[PriceRule])
end

def all(

def all(
  limit: nil,
  since_id: nil,
  created_at_min: nil,
  created_at_max: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  starts_at_min: nil,
  starts_at_max: nil,
  ends_at_min: nil,
  ends_at_max: nil,
  times_used: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {limit: limit, since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, starts_at_min: starts_at_min, starts_at_max: starts_at_max, ends_at_min: ends_at_min, ends_at_max: ends_at_max, times_used: times_used}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[PriceRule])
end

def all(

def all(
  limit: nil,
  since_id: nil,
  created_at_min: nil,
  created_at_max: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  starts_at_min: nil,
  starts_at_max: nil,
  ends_at_min: nil,
  ends_at_max: nil,
  times_used: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {limit: limit, since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, starts_at_min: starts_at_min, starts_at_max: starts_at_max, ends_at_min: ends_at_min, ends_at_max: ends_at_max, times_used: times_used}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[PriceRule])
end

def all(

def all(
  limit: nil,
  since_id: nil,
  created_at_min: nil,
  created_at_max: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  starts_at_min: nil,
  starts_at_max: nil,
  ends_at_min: nil,
  ends_at_max: nil,
  times_used: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {limit: limit, since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, starts_at_min: starts_at_min, starts_at_max: starts_at_max, ends_at_min: ends_at_min, ends_at_max: ends_at_max, times_used: times_used}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[PriceRule])
end

def all(

def all(
  limit: nil,
  since_id: nil,
  created_at_min: nil,
  created_at_max: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  starts_at_min: nil,
  starts_at_max: nil,
  ends_at_min: nil,
  ends_at_max: nil,
  times_used: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {limit: limit, since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, starts_at_min: starts_at_min, starts_at_max: starts_at_max, ends_at_min: ends_at_min, ends_at_max: ends_at_max, times_used: times_used}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[PriceRule])
end

def count(

def count(
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  request(
    http_method: :get,
    operation: :count,
    session: session,
    ids: {},
    params: {}.merge(kwargs).compact,
    body: {},
    entity: nil,
  )
end

def count(

def count(
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  request(
    http_method: :get,
    operation: :count,
    session: session,
    ids: {},
    params: {}.merge(kwargs).compact,
    body: {},
    entity: nil,
  )
end

def count(

def count(
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  request(
    http_method: :get,
    operation: :count,
    session: session,
    ids: {},
    params: {}.merge(kwargs).compact,
    body: {},
    entity: nil,
  )
end

def count(

def count(
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  request(
    http_method: :get,
    operation: :count,
    session: session,
    ids: {},
    params: {}.merge(kwargs).compact,
    body: {},
    entity: nil,
  )
end

def count(

def count(
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  request(
    http_method: :get,
    operation: :count,
    session: session,
    ids: {},
    params: {}.merge(kwargs).compact,
    body: {},
    entity: nil,
  )
end

def count(

def count(
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  request(
    http_method: :get,
    operation: :count,
    session: session,
    ids: {},
    params: {}.merge(kwargs).compact,
    body: {},
    entity: nil,
  )
end

def count(

def count(
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  request(
    http_method: :get,
    operation: :count,
    session: session,
    ids: {},
    params: {}.merge(kwargs).compact,
    body: {},
    entity: nil,
  )
end

def delete(

def delete(
  id:,
  session: ShopifyAPI::Context.active_session
)
  request(
    http_method: :delete,
    operation: :delete,
    session: session,
    ids: {id: id},
    params: {},
  )
end

def delete(

def delete(
  id:,
  session: ShopifyAPI::Context.active_session
)
  request(
    http_method: :delete,
    operation: :delete,
    session: session,
    ids: {id: id},
    params: {},
  )
end

def delete(

def delete(
  id:,
  session: ShopifyAPI::Context.active_session
)
  request(
    http_method: :delete,
    operation: :delete,
    session: session,
    ids: {id: id},
    params: {},
  )
end

def delete(

def delete(
  id:,
  session: ShopifyAPI::Context.active_session
)
  request(
    http_method: :delete,
    operation: :delete,
    session: session,
    ids: {id: id},
    params: {},
  )
end

def delete(

def delete(
  id:,
  session: ShopifyAPI::Context.active_session
)
  request(
    http_method: :delete,
    operation: :delete,
    session: session,
    ids: {id: id},
    params: {},
  )
end

def delete(

def delete(
  id:,
  session: ShopifyAPI::Context.active_session
)
  request(
    http_method: :delete,
    operation: :delete,
    session: session,
    ids: {id: id},
    params: {},
  )
end

def delete(

def delete(
  id:,
  session: ShopifyAPI::Context.active_session
)
  request(
    http_method: :delete,
    operation: :delete,
    session: session,
    ids: {id: id},
    params: {},
  )
end

def find(

def find(
  id:,
  session: ShopifyAPI::Context.active_session
)
  result = base_find(
    session: session,
    ids: {id: id},
    params: {},
  )
  T.cast(result[0], T.nilable(PriceRule))
end

def find(

def find(
  id:,
  session: ShopifyAPI::Context.active_session
)
  result = base_find(
    session: session,
    ids: {id: id},
    params: {},
  )
  T.cast(result[0], T.nilable(PriceRule))
end

def find(

def find(
  id:,
  session: ShopifyAPI::Context.active_session
)
  result = base_find(
    session: session,
    ids: {id: id},
    params: {},
  )
  T.cast(result[0], T.nilable(PriceRule))
end

def find(

def find(
  id:,
  session: ShopifyAPI::Context.active_session
)
  result = base_find(
    session: session,
    ids: {id: id},
    params: {},
  )
  T.cast(result[0], T.nilable(PriceRule))
end

def find(

def find(
  id:,
  session: ShopifyAPI::Context.active_session
)
  result = base_find(
    session: session,
    ids: {id: id},
    params: {},
  )
  T.cast(result[0], T.nilable(PriceRule))
end

def find(

def find(
  id:,
  session: ShopifyAPI::Context.active_session
)
  result = base_find(
    session: session,
    ids: {id: id},
    params: {},
  )
  T.cast(result[0], T.nilable(PriceRule))
end

def find(

def find(
  id:,
  session: ShopifyAPI::Context.active_session
)
  result = base_find(
    session: session,
    ids: {id: id},
    params: {},
  )
  T.cast(result[0], T.nilable(PriceRule))
end

def initialize(session: ShopifyAPI::Context.active_session)

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @allocation_limit = T.let(nil, T.nilable(Integer))
  @allocation_method = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @customer_segment_prerequisite_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @customer_selection = T.let(nil, T.nilable(String))
  @ends_at = T.let(nil, T.nilable(String))
  @entitled_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_country_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @id = T.let(nil, T.nilable(Integer))
  @once_per_customer = T.let(nil, T.nilable(T::Boolean))
  @prerequisite_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_customer_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_quantity_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_shipping_price_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_subtotal_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_purchase = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_quantity_ratio = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @starts_at = T.let(nil, T.nilable(String))
  @target_selection = T.let(nil, T.nilable(String))
  @target_type = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @usage_limit = T.let(nil, T.nilable(Integer))
  @value = T.let(nil, T.nilable(String))
  @value_type = T.let(nil, T.nilable(String))
end

def initialize(session: ShopifyAPI::Context.active_session)

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @allocation_limit = T.let(nil, T.nilable(Integer))
  @allocation_method = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @customer_segment_prerequisite_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @customer_selection = T.let(nil, T.nilable(String))
  @ends_at = T.let(nil, T.nilable(String))
  @entitled_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_country_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @id = T.let(nil, T.nilable(Integer))
  @once_per_customer = T.let(nil, T.nilable(T::Boolean))
  @prerequisite_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_customer_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_quantity_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_shipping_price_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_subtotal_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_purchase = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_quantity_ratio = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @starts_at = T.let(nil, T.nilable(String))
  @target_selection = T.let(nil, T.nilable(String))
  @target_type = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @usage_limit = T.let(nil, T.nilable(Integer))
  @value = T.let(nil, T.nilable(String))
  @value_type = T.let(nil, T.nilable(String))
end

def initialize(session: ShopifyAPI::Context.active_session)

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @allocation_limit = T.let(nil, T.nilable(Integer))
  @allocation_method = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @customer_segment_prerequisite_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @customer_selection = T.let(nil, T.nilable(String))
  @ends_at = T.let(nil, T.nilable(String))
  @entitled_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_country_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @id = T.let(nil, T.nilable(Integer))
  @once_per_customer = T.let(nil, T.nilable(T::Boolean))
  @prerequisite_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_customer_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_quantity_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_shipping_price_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_subtotal_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_purchase = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_quantity_ratio = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @starts_at = T.let(nil, T.nilable(String))
  @target_selection = T.let(nil, T.nilable(String))
  @target_type = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @usage_limit = T.let(nil, T.nilable(Integer))
  @value = T.let(nil, T.nilable(String))
  @value_type = T.let(nil, T.nilable(String))
end

def initialize(session: ShopifyAPI::Context.active_session)

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @allocation_limit = T.let(nil, T.nilable(Integer))
  @allocation_method = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @customer_segment_prerequisite_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @customer_selection = T.let(nil, T.nilable(String))
  @ends_at = T.let(nil, T.nilable(String))
  @entitled_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_country_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @id = T.let(nil, T.nilable(Integer))
  @once_per_customer = T.let(nil, T.nilable(T::Boolean))
  @prerequisite_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_customer_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_quantity_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_shipping_price_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_subtotal_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_purchase = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_quantity_ratio = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @starts_at = T.let(nil, T.nilable(String))
  @target_selection = T.let(nil, T.nilable(String))
  @target_type = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @usage_limit = T.let(nil, T.nilable(Integer))
  @value = T.let(nil, T.nilable(String))
  @value_type = T.let(nil, T.nilable(String))
end

def initialize(session: ShopifyAPI::Context.active_session)

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @allocation_limit = T.let(nil, T.nilable(Integer))
  @allocation_method = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @customer_segment_prerequisite_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @customer_selection = T.let(nil, T.nilable(String))
  @ends_at = T.let(nil, T.nilable(String))
  @entitled_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_country_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @id = T.let(nil, T.nilable(Integer))
  @once_per_customer = T.let(nil, T.nilable(T::Boolean))
  @prerequisite_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_customer_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_quantity_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_shipping_price_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_subtotal_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_purchase = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_quantity_ratio = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @starts_at = T.let(nil, T.nilable(String))
  @target_selection = T.let(nil, T.nilable(String))
  @target_type = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @usage_limit = T.let(nil, T.nilable(Integer))
  @value = T.let(nil, T.nilable(String))
  @value_type = T.let(nil, T.nilable(String))
end

def initialize(session: ShopifyAPI::Context.active_session)

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @allocation_limit = T.let(nil, T.nilable(Integer))
  @allocation_method = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @customer_segment_prerequisite_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @customer_selection = T.let(nil, T.nilable(String))
  @ends_at = T.let(nil, T.nilable(String))
  @entitled_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_country_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @id = T.let(nil, T.nilable(Integer))
  @once_per_customer = T.let(nil, T.nilable(T::Boolean))
  @prerequisite_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_customer_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_quantity_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_shipping_price_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_subtotal_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_purchase = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_quantity_ratio = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @starts_at = T.let(nil, T.nilable(String))
  @target_selection = T.let(nil, T.nilable(String))
  @target_type = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @usage_limit = T.let(nil, T.nilable(Integer))
  @value = T.let(nil, T.nilable(String))
  @value_type = T.let(nil, T.nilable(String))
end

def initialize(session: ShopifyAPI::Context.active_session)

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @allocation_limit = T.let(nil, T.nilable(Integer))
  @allocation_method = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @customer_segment_prerequisite_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @customer_selection = T.let(nil, T.nilable(String))
  @ends_at = T.let(nil, T.nilable(String))
  @entitled_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_country_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @entitled_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @id = T.let(nil, T.nilable(Integer))
  @once_per_customer = T.let(nil, T.nilable(T::Boolean))
  @prerequisite_collection_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_customer_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_product_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @prerequisite_quantity_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_shipping_price_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_subtotal_range = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_purchase = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_to_entitlement_quantity_ratio = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @prerequisite_variant_ids = T.let(nil, T.nilable(T::Array[T.untyped]))
  @starts_at = T.let(nil, T.nilable(String))
  @target_selection = T.let(nil, T.nilable(String))
  @target_type = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @usage_limit = T.let(nil, T.nilable(Integer))
  @value = T.let(nil, T.nilable(String))
  @value_type = T.let(nil, T.nilable(String))
end