o
    ɶdsi                     @   s8   d dl mZmZmZ d dlmZ eG dd deZdS )    )formatted_flat_dictNONE_SENTINEL#value_allowed_none_or_none_sentinel)init_model_state_from_kwargsc                   @   s  e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Zejd'd& Zed(d) Zejd*d) Zed+d, Zejd-d, Zed.d/ Zejd0d/ Zed1d2 Zejd3d2 Zed4d5 Zejd6d5 Zed7d8 Z e jd9d8 Z ed:d; Z!e!jd<d; Z!ed=d> Z"e"jd?d> Z"ed@dA Z#e#jdBdA Z#edCdD Z$e$jdEdD Z$edFdG Z%e%jdHdG Z%edIdJ Z&e&jdKdJ Z&edLdM Z'e'jdNdM Z'edOdP Z(e(jdQdP Z(edRdS Z)e)jdTdS Z)edUdV Z*e*jdWdV Z*edXdY Z+e+jdZdY Z+d[d\ Z,d]d^ Z-d_d` Z.daS )bInvoicez
    Invoice details
    HARDWARESUBSCRIPTIONSUPPORTLICENSE	EDUCATION
CONSULTINGSERVICEUSAGEOPENPAST_DUEPAYMENT_SUBMITTEDCLOSEDc              
   K   s  i ddddddddddd	d
dd
dd
dd
dd
dd
ddddddddddddddddddddd| _ i ddddddddddd	d	dd dd!dd"dd#dd$dddd%dd&dd'dd(dd)d*d+d,d-d.d/d0d1d| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _	d2| _
d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2| _d2S )3a  
        Initializes a new Invoice object with values from keyword arguments.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param invoice_id:
            The value to assign to the invoice_id property of this Invoice.
        :type invoice_id: str

        :param invoice_number:
            The value to assign to the invoice_number property of this Invoice.
        :type invoice_number: str

        :param internal_invoice_id:
            The value to assign to the internal_invoice_id property of this Invoice.
        :type internal_invoice_id: str

        :param is_credit_card_payable:
            The value to assign to the is_credit_card_payable property of this Invoice.
        :type is_credit_card_payable: bool

        :param time_invoice:
            The value to assign to the time_invoice property of this Invoice.
        :type time_invoice: datetime

        :param tax:
            The value to assign to the tax property of this Invoice.
        :type tax: float

        :param invoice_amount:
            The value to assign to the invoice_amount property of this Invoice.
        :type invoice_amount: float

        :param invoice_amount_due:
            The value to assign to the invoice_amount_due property of this Invoice.
        :type invoice_amount_due: float

        :param invoice_amount_credited:
            The value to assign to the invoice_amount_credited property of this Invoice.
        :type invoice_amount_credited: float

        :param invoice_amount_adjusted:
            The value to assign to the invoice_amount_adjusted property of this Invoice.
        :type invoice_amount_adjusted: float

        :param invoice_amount_applied:
            The value to assign to the invoice_amount_applied property of this Invoice.
        :type invoice_amount_applied: float

        :param currency:
            The value to assign to the currency property of this Invoice.
        :type currency: oci.osp_gateway.models.Currency

        :param invoice_type:
            The value to assign to the invoice_type property of this Invoice.
            Allowed values for this property are: "HARDWARE", "SUBSCRIPTION", "SUPPORT", "LICENSE", "EDUCATION", "CONSULTING", "SERVICE", "USAGE", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type invoice_type: str

        :param time_invoice_due:
            The value to assign to the time_invoice_due property of this Invoice.
        :type time_invoice_due: datetime

        :param invoice_ref_number:
            The value to assign to the invoice_ref_number property of this Invoice.
        :type invoice_ref_number: str

        :param invoice_po_number:
            The value to assign to the invoice_po_number property of this Invoice.
        :type invoice_po_number: str

        :param invoice_status:
            The value to assign to the invoice_status property of this Invoice.
            Allowed values for this property are: "OPEN", "PAST_DUE", "PAYMENT_SUBMITTED", "CLOSED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type invoice_status: str

        :param preferred_email:
            The value to assign to the preferred_email property of this Invoice.
        :type preferred_email: str

        :param is_pdf_email_available:
            The value to assign to the is_pdf_email_available property of this Invoice.
        :type is_pdf_email_available: bool

        :param is_display_download_pdf:
            The value to assign to the is_display_download_pdf property of this Invoice.
        :type is_display_download_pdf: bool

        :param is_payable:
            The value to assign to the is_payable property of this Invoice.
        :type is_payable: bool

        :param payment_terms:
            The value to assign to the payment_terms property of this Invoice.
        :type payment_terms: str

        :param last_payment_detail:
            The value to assign to the last_payment_detail property of this Invoice.
        :type last_payment_detail: oci.osp_gateway.models.PaymentDetail

        :param bill_to_address:
            The value to assign to the bill_to_address property of this Invoice.
        :type bill_to_address: oci.osp_gateway.models.BillToAddress

        :param subscription_ids:
            The value to assign to the subscription_ids property of this Invoice.
        :type subscription_ids: list[str]

        
invoice_idstrinvoice_numberinternal_invoice_idis_credit_card_payablebooltime_invoicedatetimetaxfloatinvoice_amountinvoice_amount_dueinvoice_amount_creditedinvoice_amount_adjustedinvoice_amount_appliedcurrencyZCurrencyinvoice_typetime_invoice_dueinvoice_ref_numberinvoice_po_numberinvoice_statusZPaymentDetailZBillToAddressz	list[str])preferred_emailis_pdf_email_availableis_display_download_pdf
is_payablepayment_termslast_payment_detailbill_to_addresssubscription_idsZ	invoiceIdZinvoiceNumberZinternalInvoiceIdZisCreditCardPayableZtimeInvoiceZinvoiceAmountZinvoiceAmountDueZinvoiceAmountCreditedZinvoiceAmountAdjustedZinvoiceAmountAppliedZinvoiceTypeZtimeInvoiceDueZinvoiceRefNumberZinvoicePoNumberZinvoiceStatusZpreferredEmailZisPdfEmailAvailableZisDisplayDownloadPdfZ	isPayableZpaymentTermsZlastPaymentDetailZbillToAddressZsubscriptionIdsN)Zswagger_typesZattribute_map_invoice_id_invoice_number_internal_invoice_id_is_credit_card_payable_time_invoice_tax_invoice_amount_invoice_amount_due_invoice_amount_credited_invoice_amount_adjusted_invoice_amount_applied	_currency_invoice_type_time_invoice_due_invoice_ref_number_invoice_po_number_invoice_status_preferred_email_is_pdf_email_available_is_display_download_pdf_is_payable_payment_terms_last_payment_detail_bill_to_address_subscription_ids)selfkwargs rK   Busr/lib/python3.10/site-packages/oci/osp_gateway/models/invoice.py__init__B   s   n	

	


zInvoice.__init__c                 C      | j S )z
        **[Required]** Gets the invoice_id of this Invoice.
        Invoice identifier which is generated on the on-premise sie. Pls note this is not an OCID


        :return: The invoice_id of this Invoice.
        :rtype: str
        r0   rI   rK   rK   rL   r        
zInvoice.invoice_idc                 C   
   || _ dS )z
        Sets the invoice_id of this Invoice.
        Invoice identifier which is generated on the on-premise sie. Pls note this is not an OCID


        :param invoice_id: The invoice_id of this Invoice.
        :type: str
        NrO   )rI   r   rK   rK   rL   r        

c                 C   rN   )z
        Gets the invoice_number of this Invoice.
        Invoice external reference


        :return: The invoice_number of this Invoice.
        :rtype: str
        r1   rP   rK   rK   rL   r     rQ   zInvoice.invoice_numberc                 C   rR   )z
        Sets the invoice_number of this Invoice.
        Invoice external reference


        :param invoice_number: The invoice_number of this Invoice.
        :type: str
        NrT   )rI   r   rK   rK   rL   r   &  rS   c                 C   rN   )z
        Gets the internal_invoice_id of this Invoice.
        Transaction identifier


        :return: The internal_invoice_id of this Invoice.
        :rtype: str
        r2   rP   rK   rK   rL   r   2  rQ   zInvoice.internal_invoice_idc                 C   rR   )z
        Sets the internal_invoice_id of this Invoice.
        Transaction identifier


        :param internal_invoice_id: The internal_invoice_id of this Invoice.
        :type: str
        NrU   )rI   r   rK   rK   rL   r   >  rS   c                 C   rN   )z
        Gets the is_credit_card_payable of this Invoice.
        Is credit card payment eligible


        :return: The is_credit_card_payable of this Invoice.
        :rtype: bool
        r3   rP   rK   rK   rL   r   J  rQ   zInvoice.is_credit_card_payablec                 C   rR   )z
        Sets the is_credit_card_payable of this Invoice.
        Is credit card payment eligible


        :param is_credit_card_payable: The is_credit_card_payable of this Invoice.
        :type: bool
        NrV   )rI   r   rK   rK   rL   r   V  rS   c                 C   rN   )z
        Gets the time_invoice of this Invoice.
        Date of invoice


        :return: The time_invoice of this Invoice.
        :rtype: datetime
        r4   rP   rK   rK   rL   r   b  rQ   zInvoice.time_invoicec                 C   rR   )z
        Sets the time_invoice of this Invoice.
        Date of invoice


        :param time_invoice: The time_invoice of this Invoice.
        :type: datetime
        NrW   )rI   r   rK   rK   rL   r   n  rS   c                 C   rN   )z
        Gets the tax of this Invoice.
        Tax of invoice amount


        :return: The tax of this Invoice.
        :rtype: float
        r5   rP   rK   rK   rL   r   z  rQ   zInvoice.taxc                 C   rR   )z
        Sets the tax of this Invoice.
        Tax of invoice amount


        :param tax: The tax of this Invoice.
        :type: float
        NrX   )rI   r   rK   rK   rL   r     rS   c                 C   rN   )z
        Gets the invoice_amount of this Invoice.
        Total amount of invoice


        :return: The invoice_amount of this Invoice.
        :rtype: float
        r6   rP   rK   rK   rL   r     rQ   zInvoice.invoice_amountc                 C   rR   )z
        Sets the invoice_amount of this Invoice.
        Total amount of invoice


        :param invoice_amount: The invoice_amount of this Invoice.
        :type: float
        NrY   )rI   r   rK   rK   rL   r     rS   c                 C   rN   )z
        Gets the invoice_amount_due of this Invoice.
        Balance of invoice


        :return: The invoice_amount_due of this Invoice.
        :rtype: float
        r7   rP   rK   rK   rL   r     rQ   zInvoice.invoice_amount_duec                 C   rR   )z
        Sets the invoice_amount_due of this Invoice.
        Balance of invoice


        :param invoice_amount_due: The invoice_amount_due of this Invoice.
        :type: float
        NrZ   )rI   r   rK   rK   rL   r     rS   c                 C   rN   )z
        Gets the invoice_amount_credited of this Invoice.
        Invoice amount credit


        :return: The invoice_amount_credited of this Invoice.
        :rtype: float
        r8   rP   rK   rK   rL   r     rQ   zInvoice.invoice_amount_creditedc                 C   rR   )z
        Sets the invoice_amount_credited of this Invoice.
        Invoice amount credit


        :param invoice_amount_credited: The invoice_amount_credited of this Invoice.
        :type: float
        Nr[   )rI   r   rK   rK   rL   r     rS   c                 C   rN   )z
        Gets the invoice_amount_adjusted of this Invoice.
        Invoice amount adjust


        :return: The invoice_amount_adjusted of this Invoice.
        :rtype: float
        r9   rP   rK   rK   rL   r      rQ   zInvoice.invoice_amount_adjustedc                 C   rR   )z
        Sets the invoice_amount_adjusted of this Invoice.
        Invoice amount adjust


        :param invoice_amount_adjusted: The invoice_amount_adjusted of this Invoice.
        :type: float
        Nr\   )rI   r    rK   rK   rL   r      rS   c                 C   rN   )z
        Gets the invoice_amount_applied of this Invoice.
        Invoice amount applied


        :return: The invoice_amount_applied of this Invoice.
        :rtype: float
        r:   rP   rK   rK   rL   r!     rQ   zInvoice.invoice_amount_appliedc                 C   rR   )z
        Sets the invoice_amount_applied of this Invoice.
        Invoice amount applied


        :param invoice_amount_applied: The invoice_amount_applied of this Invoice.
        :type: float
        Nr]   )rI   r!   rK   rK   rL   r!     rS   c                 C   rN   )z
        Gets the currency of this Invoice.

        :return: The currency of this Invoice.
        :rtype: oci.osp_gateway.models.Currency
        r;   rP   rK   rK   rL   r"   
     zInvoice.currencyc                 C   rR   )z
        Sets the currency of this Invoice.

        :param currency: The currency of this Invoice.
        :type: oci.osp_gateway.models.Currency
        Nr^   )rI   r"   rK   rK   rL   r"        
c                 C   rN   )a  
        Gets the invoice_type of this Invoice.
        Type of invoice

        Allowed values for this property are: "HARDWARE", "SUBSCRIPTION", "SUPPORT", "LICENSE", "EDUCATION", "CONSULTING", "SERVICE", "USAGE", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The invoice_type of this Invoice.
        :rtype: str
        )r<   rP   rK   rK   rL   r#        zInvoice.invoice_typec                 C       g d}t ||sd}|| _dS )z
        Sets the invoice_type of this Invoice.
        Type of invoice


        :param invoice_type: The invoice_type of this Invoice.
        :type: str
        )r   r   r	   r
   r   r   r   r   UNKNOWN_ENUM_VALUEN)r   r<   )rI   r#   allowed_valuesrK   rK   rL   r#   -     


c                 C   rN   )z
        Gets the time_invoice_due of this Invoice.
        Due date of invoice


        :return: The time_invoice_due of this Invoice.
        :rtype: datetime
        r=   rP   rK   rK   rL   r$   <  rQ   zInvoice.time_invoice_duec                 C   rR   )z
        Sets the time_invoice_due of this Invoice.
        Due date of invoice


        :param time_invoice_due: The time_invoice_due of this Invoice.
        :type: datetime
        Nrf   )rI   r$   rK   rK   rL   r$   H  rS   c                 C   rN   )z
        Gets the invoice_ref_number of this Invoice.
        Invoice reference number


        :return: The invoice_ref_number of this Invoice.
        :rtype: str
        r>   rP   rK   rK   rL   r%   T  rQ   zInvoice.invoice_ref_numberc                 C   rR   )z
        Sets the invoice_ref_number of this Invoice.
        Invoice reference number


        :param invoice_ref_number: The invoice_ref_number of this Invoice.
        :type: str
        Nrg   )rI   r%   rK   rK   rL   r%   `  rS   c                 C   rN   )z
        Gets the invoice_po_number of this Invoice.
        Invoice PO number


        :return: The invoice_po_number of this Invoice.
        :rtype: str
        r?   rP   rK   rK   rL   r&   l  rQ   zInvoice.invoice_po_numberc                 C   rR   )z
        Sets the invoice_po_number of this Invoice.
        Invoice PO number


        :param invoice_po_number: The invoice_po_number of this Invoice.
        :type: str
        Nrh   )rI   r&   rK   rK   rL   r&   x  rS   c                 C   rN   )ar  
        Gets the invoice_status of this Invoice.
        Invoice status

        Allowed values for this property are: "OPEN", "PAST_DUE", "PAYMENT_SUBMITTED", "CLOSED", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The invoice_status of this Invoice.
        :rtype: str
        )r@   rP   rK   rK   rL   r'     ra   zInvoice.invoice_statusc                 C   rb   )z
        Sets the invoice_status of this Invoice.
        Invoice status


        :param invoice_status: The invoice_status of this Invoice.
        :type: str
        )r   r   r   r   rc   N)r   r@   )rI   r'   rd   rK   rK   rL   r'     re   c                 C   rN   )z
        Gets the preferred_email of this Invoice.
        Preferred Email on the invoice


        :return: The preferred_email of this Invoice.
        :rtype: str
        rA   rP   rK   rK   rL   r(     rQ   zInvoice.preferred_emailc                 C   rR   )z
        Sets the preferred_email of this Invoice.
        Preferred Email on the invoice


        :param preferred_email: The preferred_email of this Invoice.
        :type: str
        Nri   )rI   r(   rK   rK   rL   r(     rS   c                 C   rN   )z
        Gets the is_pdf_email_available of this Invoice.
        Is emailing pdf allowed


        :return: The is_pdf_email_available of this Invoice.
        :rtype: bool
        rB   rP   rK   rK   rL   r)     rQ   zInvoice.is_pdf_email_availablec                 C   rR   )z
        Sets the is_pdf_email_available of this Invoice.
        Is emailing pdf allowed


        :param is_pdf_email_available: The is_pdf_email_available of this Invoice.
        :type: bool
        Nrj   )rI   r)   rK   rK   rL   r)     rS   c                 C   rN   )z
        Gets the is_display_download_pdf of this Invoice.
        Is pdf download access allowed


        :return: The is_display_download_pdf of this Invoice.
        :rtype: bool
        rC   rP   rK   rK   rL   r*     rQ   zInvoice.is_display_download_pdfc                 C   rR   )z
        Sets the is_display_download_pdf of this Invoice.
        Is pdf download access allowed


        :param is_display_download_pdf: The is_display_download_pdf of this Invoice.
        :type: bool
        Nrk   )rI   r*   rK   rK   rL   r*     rS   c                 C   rN   )z
        Gets the is_payable of this Invoice.
        Whether invoice can be payed


        :return: The is_payable of this Invoice.
        :rtype: bool
        rD   rP   rK   rK   rL   r+     rQ   zInvoice.is_payablec                 C   rR   )z
        Sets the is_payable of this Invoice.
        Whether invoice can be payed


        :param is_payable: The is_payable of this Invoice.
        :type: bool
        Nrl   )rI   r+   rK   rK   rL   r+     rS   c                 C   rN   )z
        Gets the payment_terms of this Invoice.
        Payment terms


        :return: The payment_terms of this Invoice.
        :rtype: str
        rE   rP   rK   rK   rL   r,     rQ   zInvoice.payment_termsc                 C   rR   )z
        Sets the payment_terms of this Invoice.
        Payment terms


        :param payment_terms: The payment_terms of this Invoice.
        :type: str
        Nrm   )rI   r,   rK   rK   rL   r,     rS   c                 C   rN   )z
        Gets the last_payment_detail of this Invoice.

        :return: The last_payment_detail of this Invoice.
        :rtype: oci.osp_gateway.models.PaymentDetail
        rF   rP   rK   rK   rL   r-     r_   zInvoice.last_payment_detailc                 C   rR   )z
        Sets the last_payment_detail of this Invoice.

        :param last_payment_detail: The last_payment_detail of this Invoice.
        :type: oci.osp_gateway.models.PaymentDetail
        Nrn   )rI   r-   rK   rK   rL   r-   $  r`   c                 C   rN   )z
        Gets the bill_to_address of this Invoice.

        :return: The bill_to_address of this Invoice.
        :rtype: oci.osp_gateway.models.BillToAddress
        rG   rP   rK   rK   rL   r.   .  r_   zInvoice.bill_to_addressc                 C   rR   )z
        Sets the bill_to_address of this Invoice.

        :param bill_to_address: The bill_to_address of this Invoice.
        :type: oci.osp_gateway.models.BillToAddress
        Nro   )rI   r.   rK   rK   rL   r.   8  r`   c                 C   rN   )z
        Gets the subscription_ids of this Invoice.
        List of subscription identifiers


        :return: The subscription_ids of this Invoice.
        :rtype: list[str]
        rH   rP   rK   rK   rL   r/   B  rQ   zInvoice.subscription_idsc                 C   rR   )z
        Sets the subscription_ids of this Invoice.
        List of subscription identifiers


        :param subscription_ids: The subscription_ids of this Invoice.
        :type: list[str]
        Nrp   )rI   r/   rK   rK   rL   r/   N  rS   c                 C   s   t | S N)r   rP   rK   rK   rL   __repr__Z  s   zInvoice.__repr__c                 C   s   |d u rdS | j |j kS )NF)__dict__rI   otherrK   rK   rL   __eq__]  s   zInvoice.__eq__c                 C   s
   | |k S rq   rK   rt   rK   rK   rL   __ne__c  s   
zInvoice.__ne__N)/__name__
__module____qualname____doc__ZINVOICE_TYPE_HARDWAREZINVOICE_TYPE_SUBSCRIPTIONZINVOICE_TYPE_SUPPORTZINVOICE_TYPE_LICENSEZINVOICE_TYPE_EDUCATIONZINVOICE_TYPE_CONSULTINGZINVOICE_TYPE_SERVICEZINVOICE_TYPE_USAGEZINVOICE_STATUS_OPENZINVOICE_STATUS_PAST_DUEZ INVOICE_STATUS_PAYMENT_SUBMITTEDZINVOICE_STATUS_CLOSEDrM   propertyr   setterr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   rr   rv   rw   rK   rK   rK   rL   r      s     A






















	
	




















	
	
	
	

r   N)Zoci.utilr   r   r   Zoci.decoratorsr   objectr   rK   rK   rK   rL   <module>   s   