# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. # typed: true # frozen_string_literal: true module OpenApiSDK module Shared class UnifiedAccountingInvoiceInput < ::OpenApiSDK::Utils::FieldAugmented extend T::Sig # The UUID of the associated accounting period field :accounting_period_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('accounting_period_id') } } # The remaining balance on the invoice field :balance, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('balance') } } # The UUID of the associated contact field :contact_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('contact_id') } } # The currency of the invoice field :currency, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('currency') } } # The due date of the invoice field :due_date, T.nilable(::DateTime), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('due_date'), 'decoder': Utils.datetime_from_iso_format(true) } } # The exchange rate applied to the invoice field :exchange_rate, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('exchange_rate') } } # The custom field mappings of the object between the remote 3rd party & Panora field :field_mappings, T.nilable(::OpenApiSDK::Shared::UnifiedAccountingInvoiceInputFieldMappings), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('field_mappings') } } # The date the invoice was issued field :issue_date, T.nilable(::DateTime), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('issue_date'), 'decoder': Utils.datetime_from_iso_format(true) } } # The line items associated with this invoice field :line_items, T.nilable(T::Array[::OpenApiSDK::Shared::LineItem]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('line_items') } } # A memo or note on the invoice field :memo, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('memo') } } # The invoice number field :number, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('number') } } # The date the invoice was paid field :paid_on_date, T.nilable(::DateTime), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('paid_on_date'), 'decoder': Utils.datetime_from_iso_format(true) } } # The status of the invoice field :status, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('status') } } # The subtotal of the invoice field :sub_total, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('sub_total') } } # The total amount of the invoice field :total_amount, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('total_amount') } } # The total discount applied to the invoice field :total_discount, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('total_discount') } } # The total tax amount on the invoice field :total_tax_amount, T.nilable(::Float), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('total_tax_amount') } } # The UUIDs of the tracking categories associated with the invoice field :tracking_categories, T.nilable(T::Array[::String]), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('tracking_categories') } } # The type of the invoice field :type, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('type') } } sig { params(accounting_period_id: T.nilable(::String), balance: T.nilable(::Float), contact_id: T.nilable(::String), currency: T.nilable(::String), due_date: T.nilable(::DateTime), exchange_rate: T.nilable(::String), field_mappings: T.nilable(::OpenApiSDK::Shared::UnifiedAccountingInvoiceInputFieldMappings), issue_date: T.nilable(::DateTime), line_items: T.nilable(T::Array[::OpenApiSDK::Shared::LineItem]), memo: T.nilable(::String), number: T.nilable(::String), paid_on_date: T.nilable(::DateTime), status: T.nilable(::String), sub_total: T.nilable(::Float), total_amount: T.nilable(::Float), total_discount: T.nilable(::Float), total_tax_amount: T.nilable(::Float), tracking_categories: T.nilable(T::Array[::String]), type: T.nilable(::String)).void } def initialize(accounting_period_id: nil, balance: nil, contact_id: nil, currency: nil, due_date: nil, exchange_rate: nil, field_mappings: nil, issue_date: nil, line_items: nil, memo: nil, number: nil, paid_on_date: nil, status: nil, sub_total: nil, total_amount: nil, total_discount: nil, total_tax_amount: nil, tracking_categories: nil, type: nil) @accounting_period_id = accounting_period_id @balance = balance @contact_id = contact_id @currency = currency @due_date = due_date @exchange_rate = exchange_rate @field_mappings = field_mappings @issue_date = issue_date @line_items = line_items @memo = memo @number = number @paid_on_date = paid_on_date @status = status @sub_total = sub_total @total_amount = total_amount @total_discount = total_discount @total_tax_amount = total_tax_amount @tracking_categories = tracking_categories @type = type end end end end