class ShopifyAPI::DraftOrder

def all(

def all(
  fields: nil,
  limit: nil,
  since_id: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  ids: nil,
  status: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {fields: fields, limit: limit, since_id: since_id, updated_at_min: updated_at_min, updated_at_max: updated_at_max, ids: ids, status: status}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[DraftOrder])
end

def all(

def all(
  fields: nil,
  limit: nil,
  since_id: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  ids: nil,
  status: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {fields: fields, limit: limit, since_id: since_id, updated_at_min: updated_at_min, updated_at_max: updated_at_max, ids: ids, status: status}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[DraftOrder])
end

def all(

def all(
  fields: nil,
  limit: nil,
  since_id: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  ids: nil,
  status: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {fields: fields, limit: limit, since_id: since_id, updated_at_min: updated_at_min, updated_at_max: updated_at_max, ids: ids, status: status}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[DraftOrder])
end

def all(

def all(
  fields: nil,
  limit: nil,
  since_id: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  ids: nil,
  status: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {fields: fields, limit: limit, since_id: since_id, updated_at_min: updated_at_min, updated_at_max: updated_at_max, ids: ids, status: status}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[DraftOrder])
end

def all(

def all(
  fields: nil,
  limit: nil,
  since_id: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  ids: nil,
  status: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {fields: fields, limit: limit, since_id: since_id, updated_at_min: updated_at_min, updated_at_max: updated_at_max, ids: ids, status: status}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[DraftOrder])
end

def all(

def all(
  fields: nil,
  limit: nil,
  since_id: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  ids: nil,
  status: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {fields: fields, limit: limit, since_id: since_id, updated_at_min: updated_at_min, updated_at_max: updated_at_max, ids: ids, status: status}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[DraftOrder])
end

def all(

def all(
  fields: nil,
  limit: nil,
  since_id: nil,
  updated_at_min: nil,
  updated_at_max: nil,
  ids: nil,
  status: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  response = base_find(
    session: session,
    ids: {},
    params: {fields: fields, limit: limit, since_id: since_id, updated_at_min: updated_at_min, updated_at_max: updated_at_max, ids: ids, status: status}.merge(kwargs).compact,
  )
  T.cast(response, T::Array[DraftOrder])
end

def complete(

def complete(
  payment_gateway_id: nil,
  payment_pending: nil,
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :put,
    operation: :complete,
    session: @session,
    ids: {id: @id},
    params: {payment_gateway_id: payment_gateway_id, payment_pending: payment_pending}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def complete(

def complete(
  payment_gateway_id: nil,
  payment_pending: nil,
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :put,
    operation: :complete,
    session: @session,
    ids: {id: @id},
    params: {payment_gateway_id: payment_gateway_id, payment_pending: payment_pending}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def complete(

def complete(
  payment_gateway_id: nil,
  payment_pending: nil,
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :put,
    operation: :complete,
    session: @session,
    ids: {id: @id},
    params: {payment_gateway_id: payment_gateway_id, payment_pending: payment_pending}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def complete(

def complete(
  payment_gateway_id: nil,
  payment_pending: nil,
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :put,
    operation: :complete,
    session: @session,
    ids: {id: @id},
    params: {payment_gateway_id: payment_gateway_id, payment_pending: payment_pending}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def complete(

def complete(
  payment_gateway_id: nil,
  payment_pending: nil,
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :put,
    operation: :complete,
    session: @session,
    ids: {id: @id},
    params: {payment_gateway_id: payment_gateway_id, payment_pending: payment_pending}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def complete(

def complete(
  payment_gateway_id: nil,
  payment_pending: nil,
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :put,
    operation: :complete,
    session: @session,
    ids: {id: @id},
    params: {payment_gateway_id: payment_gateway_id, payment_pending: payment_pending}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def complete(

def complete(
  payment_gateway_id: nil,
  payment_pending: nil,
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :put,
    operation: :complete,
    session: @session,
    ids: {id: @id},
    params: {payment_gateway_id: payment_gateway_id, payment_pending: payment_pending}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def count(

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

def count(

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

def count(

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

def count(

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

def count(

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

def count(

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

def count(

def count(
  since_id: nil,
  status: nil,
  updated_at_max: nil,
  updated_at_min: nil,
  session: ShopifyAPI::Context.active_session,
  **kwargs
)
  request(
    http_method: :get,
    operation: :count,
    session: session,
    ids: {},
    params: {since_id: since_id, status: status, updated_at_max: updated_at_max, updated_at_min: updated_at_min}.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:,
  fields: nil,
  session: ShopifyAPI::Context.active_session
)
  result = base_find(
    session: session,
    ids: {id: id},
    params: {fields: fields},
  )
  T.cast(result[0], T.nilable(DraftOrder))
end

def find(

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

def find(

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

def find(

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

def find(

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

def find(

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

def find(

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

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @applied_discount = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @completed_at = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @currency = T.let(nil, T.nilable(String))
  @customer = T.let(nil, T.nilable(Customer))
  @email = T.let(nil, T.nilable(String))
  @id = T.let(nil, T.nilable(Integer))
  @invoice_sent_at = T.let(nil, T.nilable(String))
  @invoice_url = T.let(nil, T.nilable(String))
  @line_items = T.let(nil, T.nilable(T::Array[T.untyped]))
  @name = T.let(nil, T.nilable(String))
  @note = T.let(nil, T.nilable(String))
  @note_attributes = T.let(nil, T.nilable(T::Array[T.untyped]))
  @order_id = T.let(nil, T.nilable(Integer))
  @payment_terms = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_line = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @source_name = T.let(nil, T.nilable(String))
  @status = T.let(nil, T.nilable(String))
  @subtotal_price = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @tax_exempt = T.let(nil, T.nilable(T::Boolean))
  @tax_exemptions = T.let(nil, T.nilable(T::Array[T.untyped]))
  @tax_lines = T.let(nil, T.nilable(T::Array[T.untyped]))
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
  @total_price = T.let(nil, T.nilable(String))
  @total_tax = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @applied_discount = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @completed_at = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @currency = T.let(nil, T.nilable(String))
  @customer = T.let(nil, T.nilable(Customer))
  @email = T.let(nil, T.nilable(String))
  @id = T.let(nil, T.nilable(Integer))
  @invoice_sent_at = T.let(nil, T.nilable(String))
  @invoice_url = T.let(nil, T.nilable(String))
  @line_items = T.let(nil, T.nilable(T::Array[T.untyped]))
  @name = T.let(nil, T.nilable(String))
  @note = T.let(nil, T.nilable(String))
  @note_attributes = T.let(nil, T.nilable(T::Array[T.untyped]))
  @order_id = T.let(nil, T.nilable(Integer))
  @payment_terms = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_line = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @source_name = T.let(nil, T.nilable(String))
  @status = T.let(nil, T.nilable(String))
  @subtotal_price = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @tax_exempt = T.let(nil, T.nilable(T::Boolean))
  @tax_exemptions = T.let(nil, T.nilable(T::Array[T.untyped]))
  @tax_lines = T.let(nil, T.nilable(T::Array[T.untyped]))
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
  @total_price = T.let(nil, T.nilable(String))
  @total_tax = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @applied_discount = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @completed_at = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @currency = T.let(nil, T.nilable(String))
  @customer = T.let(nil, T.nilable(Customer))
  @email = T.let(nil, T.nilable(String))
  @id = T.let(nil, T.nilable(Integer))
  @invoice_sent_at = T.let(nil, T.nilable(String))
  @invoice_url = T.let(nil, T.nilable(String))
  @line_items = T.let(nil, T.nilable(T::Array[T.untyped]))
  @name = T.let(nil, T.nilable(String))
  @note = T.let(nil, T.nilable(String))
  @note_attributes = T.let(nil, T.nilable(T::Array[T.untyped]))
  @order_id = T.let(nil, T.nilable(Integer))
  @payment_terms = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_line = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @source_name = T.let(nil, T.nilable(String))
  @status = T.let(nil, T.nilable(String))
  @subtotal_price = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @tax_exempt = T.let(nil, T.nilable(T::Boolean))
  @tax_exemptions = T.let(nil, T.nilable(T::Array[T.untyped]))
  @tax_lines = T.let(nil, T.nilable(T::Array[T.untyped]))
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
  @total_price = T.let(nil, T.nilable(String))
  @total_tax = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @applied_discount = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @completed_at = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @currency = T.let(nil, T.nilable(String))
  @customer = T.let(nil, T.nilable(Customer))
  @email = T.let(nil, T.nilable(String))
  @id = T.let(nil, T.nilable(Integer))
  @invoice_sent_at = T.let(nil, T.nilable(String))
  @invoice_url = T.let(nil, T.nilable(String))
  @line_items = T.let(nil, T.nilable(T::Array[T.untyped]))
  @name = T.let(nil, T.nilable(String))
  @note = T.let(nil, T.nilable(String))
  @note_attributes = T.let(nil, T.nilable(T::Array[T.untyped]))
  @order_id = T.let(nil, T.nilable(Integer))
  @payment_terms = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_line = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @source_name = T.let(nil, T.nilable(String))
  @status = T.let(nil, T.nilable(String))
  @subtotal_price = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @tax_exempt = T.let(nil, T.nilable(T::Boolean))
  @tax_exemptions = T.let(nil, T.nilable(T::Array[T.untyped]))
  @tax_lines = T.let(nil, T.nilable(T::Array[T.untyped]))
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
  @total_price = T.let(nil, T.nilable(String))
  @total_tax = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @applied_discount = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @completed_at = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @currency = T.let(nil, T.nilable(String))
  @customer = T.let(nil, T.nilable(Customer))
  @email = T.let(nil, T.nilable(String))
  @id = T.let(nil, T.nilable(Integer))
  @invoice_sent_at = T.let(nil, T.nilable(String))
  @invoice_url = T.let(nil, T.nilable(String))
  @line_items = T.let(nil, T.nilable(T::Array[T.untyped]))
  @name = T.let(nil, T.nilable(String))
  @note = T.let(nil, T.nilable(String))
  @note_attributes = T.let(nil, T.nilable(T::Array[T.untyped]))
  @order_id = T.let(nil, T.nilable(Integer))
  @payment_terms = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_line = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @source_name = T.let(nil, T.nilable(String))
  @status = T.let(nil, T.nilable(String))
  @subtotal_price = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @tax_exempt = T.let(nil, T.nilable(T::Boolean))
  @tax_exemptions = T.let(nil, T.nilable(T::Array[T.untyped]))
  @tax_lines = T.let(nil, T.nilable(T::Array[T.untyped]))
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
  @total_price = T.let(nil, T.nilable(String))
  @total_tax = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @applied_discount = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @completed_at = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @currency = T.let(nil, T.nilable(String))
  @customer = T.let(nil, T.nilable(Customer))
  @email = T.let(nil, T.nilable(String))
  @id = T.let(nil, T.nilable(Integer))
  @invoice_sent_at = T.let(nil, T.nilable(String))
  @invoice_url = T.let(nil, T.nilable(String))
  @line_items = T.let(nil, T.nilable(T::Array[T.untyped]))
  @name = T.let(nil, T.nilable(String))
  @note = T.let(nil, T.nilable(String))
  @note_attributes = T.let(nil, T.nilable(T::Array[T.untyped]))
  @order_id = T.let(nil, T.nilable(Integer))
  @payment_terms = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_line = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @source_name = T.let(nil, T.nilable(String))
  @status = T.let(nil, T.nilable(String))
  @subtotal_price = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @tax_exempt = T.let(nil, T.nilable(T::Boolean))
  @tax_exemptions = T.let(nil, T.nilable(T::Array[T.untyped]))
  @tax_lines = T.let(nil, T.nilable(T::Array[T.untyped]))
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
  @total_price = T.let(nil, T.nilable(String))
  @total_tax = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
end

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

def initialize(session: ShopifyAPI::Context.active_session)
  super(session: session)
  @applied_discount = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @completed_at = T.let(nil, T.nilable(String))
  @created_at = T.let(nil, T.nilable(String))
  @currency = T.let(nil, T.nilable(String))
  @customer = T.let(nil, T.nilable(Customer))
  @email = T.let(nil, T.nilable(String))
  @id = T.let(nil, T.nilable(Integer))
  @invoice_sent_at = T.let(nil, T.nilable(String))
  @invoice_url = T.let(nil, T.nilable(String))
  @line_items = T.let(nil, T.nilable(T::Array[T.untyped]))
  @name = T.let(nil, T.nilable(String))
  @note = T.let(nil, T.nilable(String))
  @note_attributes = T.let(nil, T.nilable(T::Array[T.untyped]))
  @order_id = T.let(nil, T.nilable(Integer))
  @payment_terms = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @shipping_line = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
  @source_name = T.let(nil, T.nilable(String))
  @status = T.let(nil, T.nilable(String))
  @subtotal_price = T.let(nil, T.nilable(String))
  @tags = T.let(nil, T.nilable(String))
  @tax_exempt = T.let(nil, T.nilable(T::Boolean))
  @tax_exemptions = T.let(nil, T.nilable(T::Array[T.untyped]))
  @tax_lines = T.let(nil, T.nilable(T::Array[T.untyped]))
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
  @total_price = T.let(nil, T.nilable(String))
  @total_tax = T.let(nil, T.nilable(String))
  @updated_at = T.let(nil, T.nilable(String))
end

def send_invoice(

def send_invoice(
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :post,
    operation: :send_invoice,
    session: @session,
    ids: {id: @id},
    params: {}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def send_invoice(

def send_invoice(
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :post,
    operation: :send_invoice,
    session: @session,
    ids: {id: @id},
    params: {}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def send_invoice(

def send_invoice(
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :post,
    operation: :send_invoice,
    session: @session,
    ids: {id: @id},
    params: {}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def send_invoice(

def send_invoice(
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :post,
    operation: :send_invoice,
    session: @session,
    ids: {id: @id},
    params: {}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def send_invoice(

def send_invoice(
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :post,
    operation: :send_invoice,
    session: @session,
    ids: {id: @id},
    params: {}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def send_invoice(

def send_invoice(
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :post,
    operation: :send_invoice,
    session: @session,
    ids: {id: @id},
    params: {}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end

def send_invoice(

def send_invoice(
  body: nil,
  **kwargs
)
  self.class.request(
    http_method: :post,
    operation: :send_invoice,
    session: @session,
    ids: {id: @id},
    params: {}.merge(kwargs).compact,
    body: body,
    entity: self,
  )
end