class ShopifyAPI::ProductListing

def all(

def all(
  product_ids: nil,
  limit: nil,
  collection_id: nil,
  updated_at_min: nil,
  handle: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {product_ids: product_ids, limit: limit, collection_id: collection_id, updated_at_min: updated_at_min, handle: handle}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[ProductListing])
end

def all(

def all(
  product_ids: nil,
  limit: nil,
  collection_id: nil,
  updated_at_min: nil,
  handle: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {product_ids: product_ids, limit: limit, collection_id: collection_id, updated_at_min: updated_at_min, handle: handle}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[ProductListing])
end

def all(

def all(
  product_ids: nil,
  limit: nil,
  collection_id: nil,
  updated_at_min: nil,
  handle: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {product_ids: product_ids, limit: limit, collection_id: collection_id, updated_at_min: updated_at_min, handle: handle}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[ProductListing])
end

def all(

def all(
  product_ids: nil,
  limit: nil,
  collection_id: nil,
  updated_at_min: nil,
  handle: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {product_ids: product_ids, limit: limit, collection_id: collection_id, updated_at_min: updated_at_min, handle: handle}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[ProductListing])
end

def all(

def all(
  product_ids: nil,
  limit: nil,
  collection_id: nil,
  updated_at_min: nil,
  handle: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {product_ids: product_ids, limit: limit, collection_id: collection_id, updated_at_min: updated_at_min, handle: handle}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[ProductListing])
end

def all(

def all(
  product_ids: nil,
  limit: nil,
  collection_id: nil,
  updated_at_min: nil,
  handle: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {product_ids: product_ids, limit: limit, collection_id: collection_id, updated_at_min: updated_at_min, handle: handle}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[ProductListing])
end

def all(

def all(
  product_ids: nil,
  limit: nil,
  collection_id: nil,
  updated_at_min: nil,
  handle: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {product_ids: product_ids, limit: limit, collection_id: collection_id, updated_at_min: updated_at_min, handle: handle}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[ProductListing])
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(
  product_id:,
  session: ShopifyAPI::Context.active_session
)
  request(
    http_method: :delete,
    operation: :delete,
    session: session,
    ids: {product_id: product_id},
    params: {},
  )
end

def delete(

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

def delete(

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

def delete(

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

def delete(

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

def delete(

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

def delete(

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

def find(

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

def find(

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

def find(

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

def find(

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

def find(

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

def find(

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

def find(

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

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @body_html = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @handle = T.let(nil, T.nilable(String))
  @images = T.let(nil, T.nilable(T::Array[T.untyped]))
  @options = T.let(nil, T.nilable(T::Array[T.untyped]))
  @product_id = T.let(nil, T.nilable(Integer))
  @product_type = T.let(nil, T.nilable(String))
  @published_at = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @variants = T.let(nil, T.nilable(T::Array[T.untyped]))
  @vendor = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @body_html = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @handle = T.let(nil, T.nilable(String))
  @images = T.let(nil, T.nilable(T::Array[T.untyped]))
  @options = T.let(nil, T.nilable(T::Array[T.untyped]))
  @product_id = T.let(nil, T.nilable(Integer))
  @product_type = T.let(nil, T.nilable(String))
  @published_at = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @variants = T.let(nil, T.nilable(T::Array[T.untyped]))
  @vendor = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @body_html = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @handle = T.let(nil, T.nilable(String))
  @images = T.let(nil, T.nilable(T::Array[T.untyped]))
  @options = T.let(nil, T.nilable(T::Array[T.untyped]))
  @product_id = T.let(nil, T.nilable(Integer))
  @product_type = T.let(nil, T.nilable(String))
  @published_at = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @variants = T.let(nil, T.nilable(T::Array[T.untyped]))
  @vendor = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @body_html = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @handle = T.let(nil, T.nilable(String))
  @images = T.let(nil, T.nilable(T::Array[T.untyped]))
  @options = T.let(nil, T.nilable(T::Array[T.untyped]))
  @product_id = T.let(nil, T.nilable(Integer))
  @product_type = T.let(nil, T.nilable(String))
  @published_at = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @variants = T.let(nil, T.nilable(T::Array[T.untyped]))
  @vendor = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @body_html = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @handle = T.let(nil, T.nilable(String))
  @images = T.let(nil, T.nilable(T::Array[T.untyped]))
  @options = T.let(nil, T.nilable(T::Array[T.untyped]))
  @product_id = T.let(nil, T.nilable(Integer))
  @product_type = T.let(nil, T.nilable(String))
  @published_at = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @variants = T.let(nil, T.nilable(T::Array[T.untyped]))
  @vendor = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @body_html = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @handle = T.let(nil, T.nilable(String))
  @images = T.let(nil, T.nilable(T::Array[T.untyped]))
  @options = T.let(nil, T.nilable(T::Array[T.untyped]))
  @product_id = T.let(nil, T.nilable(Integer))
  @product_type = T.let(nil, T.nilable(String))
  @published_at = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @variants = T.let(nil, T.nilable(T::Array[T.untyped]))
  @vendor = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @body_html = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @handle = T.let(nil, T.nilable(String))
  @images = T.let(nil, T.nilable(T::Array[T.untyped]))
  @options = T.let(nil, T.nilable(T::Array[T.untyped]))
  @product_id = T.let(nil, T.nilable(Integer))
  @product_type = T.let(nil, T.nilable(String))
  @published_at = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @title = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
  @variants = T.let(nil, T.nilable(T::Array[T.untyped]))
  @vendor = T.let(nil, T.nilable(String))
end

def primary_key()

def primary_key()
  "product_id"
end

def primary_key()

def primary_key()
  "product_id"
end

def primary_key()

def primary_key()
  "product_id"
end

def primary_key()

def primary_key()
  "product_id"
end

def primary_key()

def primary_key()
  "product_id"
end

def primary_key()

def primary_key()
  "product_id"
end

def primary_key()

def primary_key()
  "product_id"
end

def product_ids(

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

def product_ids(

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

def product_ids(

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

def product_ids(

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

def product_ids(

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

def product_ids(

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

def product_ids(

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