o
    ɶdc                     @   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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d/d. Zed0d1 Zejd2d1 Zed3d4 Zejd5d4 Zed6d7 Zejd8d7 Zed9d: Z e jd;d: Z ed<d= Z!e!jd>d= Z!ed?d@ Z"e"jdAd@ Z"edBdC Z#e#jdDdC Z#edEdF Z$e$jdGdF Z$edHdI Z%e%jdJdI Z%edKdL Z&e&jdMdL Z&dNdO Z'dPdQ Z(dRdS Z)dTS )USubscriptionzK
    Subscription details object which extends the SubscriptionSummary
    	FREE_TIERPAYGPROMO	SUBMITTEDERRORUPGRADED	TAX_ERRORUPGRADE_ERRORPERSONAL	CORPORATECORPORATE_SUBMITTEDc                 K   sv  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| _ 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.| _d.| _d.| _d.| _d.| _	d.| _
d.| _d.| _d.| _d.| _d.| _d.| _d.| _d.| _d.| _d.| _d.| _d.| _d.S )/ah  
        Initializes a new Subscription object with values from keyword arguments.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param id:
            The value to assign to the id property of this Subscription.
        :type id: str

        :param subscription_plan_number:
            The value to assign to the subscription_plan_number property of this Subscription.
        :type subscription_plan_number: str

        :param plan_type:
            The value to assign to the plan_type property of this Subscription.
            Allowed values for this property are: "FREE_TIER", "PAYG", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type plan_type: str

        :param time_start:
            The value to assign to the time_start property of this Subscription.
        :type time_start: datetime

        :param ship_to_cust_acct_site_id:
            The value to assign to the ship_to_cust_acct_site_id property of this Subscription.
        :type ship_to_cust_acct_site_id: str

        :param ship_to_cust_acct_role_id:
            The value to assign to the ship_to_cust_acct_role_id property of this Subscription.
        :type ship_to_cust_acct_role_id: str

        :param bill_to_cust_account_id:
            The value to assign to the bill_to_cust_account_id property of this Subscription.
        :type bill_to_cust_account_id: str

        :param is_intent_to_pay:
            The value to assign to the is_intent_to_pay property of this Subscription.
        :type is_intent_to_pay: bool

        :param currency_code:
            The value to assign to the currency_code property of this Subscription.
        :type currency_code: str

        :param gsi_org_code:
            The value to assign to the gsi_org_code property of this Subscription.
        :type gsi_org_code: str

        :param language_code:
            The value to assign to the language_code property of this Subscription.
        :type language_code: str

        :param organization_id:
            The value to assign to the organization_id property of this Subscription.
        :type organization_id: str

        :param upgrade_state:
            The value to assign to the upgrade_state property of this Subscription.
            Allowed values for this property are: "PROMO", "SUBMITTED", "ERROR", "UPGRADED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type upgrade_state: str

        :param upgrade_state_details:
            The value to assign to the upgrade_state_details property of this Subscription.
            Allowed values for this property are: "TAX_ERROR", "UPGRADE_ERROR", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type upgrade_state_details: str

        :param account_type:
            The value to assign to the account_type property of this Subscription.
            Allowed values for this property are: "PERSONAL", "CORPORATE", "CORPORATE_SUBMITTED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type account_type: str

        :param tax_info:
            The value to assign to the tax_info property of this Subscription.
        :type tax_info: oci.osp_gateway.models.TaxInfo

        :param payment_options:
            The value to assign to the payment_options property of this Subscription.
        :type payment_options: list[oci.osp_gateway.models.PaymentOption]

        :param payment_gateway:
            The value to assign to the payment_gateway property of this Subscription.
        :type payment_gateway: oci.osp_gateway.models.PaymentGateway

        :param billing_address:
            The value to assign to the billing_address property of this Subscription.
        :type billing_address: oci.osp_gateway.models.Address

        :param time_plan_upgrade:
            The value to assign to the time_plan_upgrade property of this Subscription.
        :type time_plan_upgrade: datetime

        :param time_personal_to_corporate_conv:
            The value to assign to the time_personal_to_corporate_conv property of this Subscription.
        :type time_personal_to_corporate_conv: datetime

        idstrsubscription_plan_number	plan_type
time_startdatetimeship_to_cust_acct_site_idship_to_cust_acct_role_idbill_to_cust_account_idis_intent_to_payboolcurrency_codegsi_org_codelanguage_codeorganization_idupgrade_stateupgrade_state_detailsaccount_typetax_infoZTaxInfopayment_optionszlist[PaymentOption]ZPaymentGatewayAddress)payment_gatewaybilling_addresstime_plan_upgradetime_personal_to_corporate_convZsubscriptionPlanNumberZplanTypeZ	timeStartZshipToCustAcctSiteIdZshipToCustAcctRoleIdZbillToCustAccountIdZisIntentToPayZcurrencyCodeZ
gsiOrgCodeZlanguageCodeZorganizationIdZupgradeStateZupgradeStateDetailsZaccountTypeZtaxInfoZpaymentOptionsZpaymentGatewayZbillingAddressZtimePlanUpgradeZtimePersonalToCorporateConvN)Zswagger_typesZattribute_map_id_subscription_plan_number
_plan_type_time_start_ship_to_cust_acct_site_id_ship_to_cust_acct_role_id_bill_to_cust_account_id_is_intent_to_pay_currency_code_gsi_org_code_language_code_organization_id_upgrade_state_upgrade_state_details_account_type	_tax_info_payment_options_payment_gateway_billing_address_time_plan_upgrade _time_personal_to_corporate_conv)selfkwargs rB   Gusr/lib/python3.10/site-packages/oci/osp_gateway/models/subscription.py__init__>   s   b	

	


zSubscription.__init__c                 C      | j S )z
        Gets the id of this Subscription.
        Subscription id identifier (OCID).


        :return: The id of this Subscription.
        :rtype: str
        r+   r@   rB   rB   rC   r         
zSubscription.idc                 C   
   || _ dS )z
        Sets the id of this Subscription.
        Subscription id identifier (OCID).


        :param id: The id of this Subscription.
        :type: str
        NrF   )r@   r   rB   rB   rC   r         

c                 C   rE   )z
        **[Required]** Gets the subscription_plan_number of this Subscription.
        Subscription plan number.


        :return: The subscription_plan_number of this Subscription.
        :rtype: str
        r,   rG   rB   rB   rC   r      rH   z%Subscription.subscription_plan_numberc                 C   rI   )z
        Sets the subscription_plan_number of this Subscription.
        Subscription plan number.


        :param subscription_plan_number: The subscription_plan_number of this Subscription.
        :type: str
        NrK   )r@   r   rB   rB   rC   r   
  rJ   c                 C   rE   )a]  
        Gets the plan_type of this Subscription.
        Subscription plan type.

        Allowed values for this property are: "FREE_TIER", "PAYG", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The plan_type of this Subscription.
        :rtype: str
        )r-   rG   rB   rB   rC   r        zSubscription.plan_typec                 C       ddg}t ||sd}|| _dS )z
        Sets the plan_type of this Subscription.
        Subscription plan type.


        :param plan_type: The plan_type of this Subscription.
        :type: str
        r   r   UNKNOWN_ENUM_VALUEN)r   r-   )r@   r   allowed_valuesrB   rB   rC   r   %     


c                 C   rE   )z
        Gets the time_start of this Subscription.
        Start date of the subscription.


        :return: The time_start of this Subscription.
        :rtype: datetime
        r.   rG   rB   rB   rC   r   4  rH   zSubscription.time_startc                 C   rI   )z
        Sets the time_start of this Subscription.
        Start date of the subscription.


        :param time_start: The time_start of this Subscription.
        :type: datetime
        NrQ   )r@   r   rB   rB   rC   r   @  rJ   c                 C   rE   )z
        Gets the ship_to_cust_acct_site_id of this Subscription.
        Ship to customer account site address id.


        :return: The ship_to_cust_acct_site_id of this Subscription.
        :rtype: str
        r/   rG   rB   rB   rC   r   L  rH   z&Subscription.ship_to_cust_acct_site_idc                 C   rI   )z
        Sets the ship_to_cust_acct_site_id of this Subscription.
        Ship to customer account site address id.


        :param ship_to_cust_acct_site_id: The ship_to_cust_acct_site_id of this Subscription.
        :type: str
        NrR   )r@   r   rB   rB   rC   r   X  rJ   c                 C   rE   )z
        Gets the ship_to_cust_acct_role_id of this Subscription.
        Ship to customer account role.


        :return: The ship_to_cust_acct_role_id of this Subscription.
        :rtype: str
        r0   rG   rB   rB   rC   r   d  rH   z&Subscription.ship_to_cust_acct_role_idc                 C   rI   )z
        Sets the ship_to_cust_acct_role_id of this Subscription.
        Ship to customer account role.


        :param ship_to_cust_acct_role_id: The ship_to_cust_acct_role_id of this Subscription.
        :type: str
        NrS   )r@   r   rB   rB   rC   r   p  rJ   c                 C   rE   )z
        Gets the bill_to_cust_account_id of this Subscription.
        Bill to customer Account id.


        :return: The bill_to_cust_account_id of this Subscription.
        :rtype: str
        r1   rG   rB   rB   rC   r   |  rH   z$Subscription.bill_to_cust_account_idc                 C   rI   )z
        Sets the bill_to_cust_account_id of this Subscription.
        Bill to customer Account id.


        :param bill_to_cust_account_id: The bill_to_cust_account_id of this Subscription.
        :type: str
        NrT   )r@   r   rB   rB   rC   r     rJ   c                 C   rE   )z
        Gets the is_intent_to_pay of this Subscription.
        Payment intension.


        :return: The is_intent_to_pay of this Subscription.
        :rtype: bool
        r2   rG   rB   rB   rC   r     rH   zSubscription.is_intent_to_payc                 C   rI   )z
        Sets the is_intent_to_pay of this Subscription.
        Payment intension.


        :param is_intent_to_pay: The is_intent_to_pay of this Subscription.
        :type: bool
        NrU   )r@   r   rB   rB   rC   r     rJ   c                 C   rE   )z
        Gets the currency_code of this Subscription.
        Currency code


        :return: The currency_code of this Subscription.
        :rtype: str
        r3   rG   rB   rB   rC   r     rH   zSubscription.currency_codec                 C   rI   )z
        Sets the currency_code of this Subscription.
        Currency code


        :param currency_code: The currency_code of this Subscription.
        :type: str
        NrV   )r@   r   rB   rB   rC   r     rJ   c                 C   rE   )z
        Gets the gsi_org_code of this Subscription.
        GSI Subscription external code.


        :return: The gsi_org_code of this Subscription.
        :rtype: str
        r4   rG   rB   rB   rC   r     rH   zSubscription.gsi_org_codec                 C   rI   )z
        Sets the gsi_org_code of this Subscription.
        GSI Subscription external code.


        :param gsi_org_code: The gsi_org_code of this Subscription.
        :type: str
        NrW   )r@   r   rB   rB   rC   r     rJ   c                 C   rE   )z
        Gets the language_code of this Subscription.
        Language short code (en, de, hu, etc)


        :return: The language_code of this Subscription.
        :rtype: str
        r5   rG   rB   rB   rC   r     rH   zSubscription.language_codec                 C   rI   )z
        Sets the language_code of this Subscription.
        Language short code (en, de, hu, etc)


        :param language_code: The language_code of this Subscription.
        :type: str
        NrX   )r@   r   rB   rB   rC   r     rJ   c                 C   rE   )z
        Gets the organization_id of this Subscription.
        GSI organization external identifier.


        :return: The organization_id of this Subscription.
        :rtype: str
        r6   rG   rB   rB   rC   r      rH   zSubscription.organization_idc                 C   rI   )z
        Sets the organization_id of this Subscription.
        GSI organization external identifier.


        :param organization_id: The organization_id of this Subscription.
        :type: str
        NrY   )r@   r    rB   rB   rC   r       rJ   c                 C   rE   )az  
        Gets the upgrade_state of this Subscription.
        Status of the upgrade.

        Allowed values for this property are: "PROMO", "SUBMITTED", "ERROR", "UPGRADED", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The upgrade_state of this Subscription.
        :rtype: str
        )r7   rG   rB   rB   rC   r!     rL   zSubscription.upgrade_statec                 C       g d}t ||sd}|| _dS )z
        Sets the upgrade_state of this Subscription.
        Status of the upgrade.


        :param upgrade_state: The upgrade_state of this Subscription.
        :type: str
        )r	   r
   r   r   rN   N)r   r7   )r@   r!   rO   rB   rB   rC   r!     rP   c                 C   rE   )a  
        Gets the upgrade_state_details of this Subscription.
        This field is used to describe the Upgrade State in case of error (E.g. Upgrade failure caused by interfacing Tax details- TaxError)

        Allowed values for this property are: "TAX_ERROR", "UPGRADE_ERROR", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The upgrade_state_details of this Subscription.
        :rtype: str
        )r8   rG   rB   rB   rC   r"   *  rL   z"Subscription.upgrade_state_detailsc                 C   rM   )a>  
        Sets the upgrade_state_details of this Subscription.
        This field is used to describe the Upgrade State in case of error (E.g. Upgrade failure caused by interfacing Tax details- TaxError)


        :param upgrade_state_details: The upgrade_state_details of this Subscription.
        :type: str
        r   r   rN   N)r   r8   )r@   r"   rO   rB   rB   rC   r"   9  rP   c                 C   rE   )at  
        Gets the account_type of this Subscription.
        Account type.

        Allowed values for this property are: "PERSONAL", "CORPORATE", "CORPORATE_SUBMITTED", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The account_type of this Subscription.
        :rtype: str
        )r9   rG   rB   rB   rC   r#   H  rL   zSubscription.account_typec                 C   rZ   )z
        Sets the account_type of this Subscription.
        Account type.


        :param account_type: The account_type of this Subscription.
        :type: str
        )r   r   r   rN   N)r   r9   )r@   r#   rO   rB   rB   rC   r#   W  rP   c                 C   rE   )z
        Gets the tax_info of this Subscription.

        :return: The tax_info of this Subscription.
        :rtype: oci.osp_gateway.models.TaxInfo
        r:   rG   rB   rB   rC   r$   f     zSubscription.tax_infoc                 C   rI   )z
        Sets the tax_info of this Subscription.

        :param tax_info: The tax_info of this Subscription.
        :type: oci.osp_gateway.models.TaxInfo
        Nr[   )r@   r$   rB   rB   rC   r$   p     
c                 C   rE   )z
        Gets the payment_options of this Subscription.
        Payment option list of a subscription.


        :return: The payment_options of this Subscription.
        :rtype: list[oci.osp_gateway.models.PaymentOption]
        r;   rG   rB   rB   rC   r%   z  rH   zSubscription.payment_optionsc                 C   rI   )z
        Sets the payment_options of this Subscription.
        Payment option list of a subscription.


        :param payment_options: The payment_options of this Subscription.
        :type: list[oci.osp_gateway.models.PaymentOption]
        Nr^   )r@   r%   rB   rB   rC   r%     rJ   c                 C   rE   )z
        Gets the payment_gateway of this Subscription.

        :return: The payment_gateway of this Subscription.
        :rtype: oci.osp_gateway.models.PaymentGateway
        r<   rG   rB   rB   rC   r'     r\   zSubscription.payment_gatewayc                 C   rI   )z
        Sets the payment_gateway of this Subscription.

        :param payment_gateway: The payment_gateway of this Subscription.
        :type: oci.osp_gateway.models.PaymentGateway
        Nr_   )r@   r'   rB   rB   rC   r'     r]   c                 C   rE   )z
        Gets the billing_address of this Subscription.

        :return: The billing_address of this Subscription.
        :rtype: oci.osp_gateway.models.Address
        r=   rG   rB   rB   rC   r(     r\   zSubscription.billing_addressc                 C   rI   )z
        Sets the billing_address of this Subscription.

        :param billing_address: The billing_address of this Subscription.
        :type: oci.osp_gateway.models.Address
        Nr`   )r@   r(   rB   rB   rC   r(     r]   c                 C   rE   )z
        Gets the time_plan_upgrade of this Subscription.
        Date of upgrade/conversion when planType changed from FREE_TIER to PAYG


        :return: The time_plan_upgrade of this Subscription.
        :rtype: datetime
        r>   rG   rB   rB   rC   r)     rH   zSubscription.time_plan_upgradec                 C   rI   )z
        Sets the time_plan_upgrade of this Subscription.
        Date of upgrade/conversion when planType changed from FREE_TIER to PAYG


        :param time_plan_upgrade: The time_plan_upgrade of this Subscription.
        :type: datetime
        Nra   )r@   r)   rB   rB   rC   r)     rJ   c                 C   rE   )a  
        Gets the time_personal_to_corporate_conv of this Subscription.
        Date of upgrade/conversion when account type changed from PERSONAL to CORPORATE


        :return: The time_personal_to_corporate_conv of this Subscription.
        :rtype: datetime
        r?   rG   rB   rB   rC   r*     rH   z,Subscription.time_personal_to_corporate_convc                 C   rI   )a,  
        Sets the time_personal_to_corporate_conv of this Subscription.
        Date of upgrade/conversion when account type changed from PERSONAL to CORPORATE


        :param time_personal_to_corporate_conv: The time_personal_to_corporate_conv of this Subscription.
        :type: datetime
        Nrb   )r@   r*   rB   rB   rC   r*     rJ   c                 C   s   t | S N)r   rG   rB   rB   rC   __repr__  s   zSubscription.__repr__c                 C   s   |d u rdS | j |j kS )NF)__dict__r@   otherrB   rB   rC   __eq__  s   zSubscription.__eq__c                 C   s
   | |k S rc   rB   rf   rB   rB   rC   __ne__  s   
zSubscription.__ne__N)*__name__
__module____qualname____doc__ZPLAN_TYPE_FREE_TIERZPLAN_TYPE_PAYGZUPGRADE_STATE_PROMOZUPGRADE_STATE_SUBMITTEDZUPGRADE_STATE_ERRORZUPGRADE_STATE_UPGRADEDZUPGRADE_STATE_DETAILS_TAX_ERRORZ#UPGRADE_STATE_DETAILS_UPGRADE_ERRORZACCOUNT_TYPE_PERSONALZACCOUNT_TYPE_CORPORATEZ ACCOUNT_TYPE_CORPORATE_SUBMITTEDrD   propertyr   setterr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r'   r(   r)   r*   rd   rh   ri   rB   rB   rB   rC   r      s     )






























	
	


	
	
	
	



r   N)Zoci.utilr   r   r   Zoci.decoratorsr   objectr   rB   rB   rB   rC   <module>   s   