o
    ëÉ¶dDW  ã                   @   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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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(dFdG„ Z)dHdI„ Z*dJdK„ Z+dLS )MÚRecommendationz:
    The metadata associated with the recommendation.
    ÚCRITICALÚHIGHÚMODERATEÚLOWÚMINORÚACTIVEÚFAILEDÚINACTIVEÚ	ATTACHINGÚ	DETACHINGÚDELETINGÚDELETEDÚUPDATINGÚCREATINGÚPENDINGÚ	DISMISSEDÚ	POSTPONEDÚIMPLEMENTEDc                 K   s0  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“| _ 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"S )#a>  
        Initializes a new Recommendation 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 Recommendation.
        :type id: str

        :param compartment_id:
            The value to assign to the compartment_id property of this Recommendation.
        :type compartment_id: str

        :param category_id:
            The value to assign to the category_id property of this Recommendation.
        :type category_id: str

        :param name:
            The value to assign to the name property of this Recommendation.
        :type name: str

        :param description:
            The value to assign to the description property of this Recommendation.
        :type description: str

        :param importance:
            The value to assign to the importance property of this Recommendation.
            Allowed values for this property are: "CRITICAL", "HIGH", "MODERATE", "LOW", "MINOR", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type importance: str

        :param resource_counts:
            The value to assign to the resource_counts property of this Recommendation.
        :type resource_counts: list[oci.optimizer.models.ResourceCount]

        :param lifecycle_state:
            The value to assign to the lifecycle_state property of this Recommendation.
            Allowed values for this property are: "ACTIVE", "FAILED", "INACTIVE", "ATTACHING", "DETACHING", "DELETING", "DELETED", "UPDATING", "CREATING", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type lifecycle_state: str

        :param estimated_cost_saving:
            The value to assign to the estimated_cost_saving property of this Recommendation.
        :type estimated_cost_saving: float

        :param status:
            The value to assign to the status property of this Recommendation.
            Allowed values for this property are: "PENDING", "DISMISSED", "POSTPONED", "IMPLEMENTED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type status: str

        :param time_status_begin:
            The value to assign to the time_status_begin property of this Recommendation.
        :type time_status_begin: datetime

        :param time_status_end:
            The value to assign to the time_status_end property of this Recommendation.
        :type time_status_end: datetime

        :param time_created:
            The value to assign to the time_created property of this Recommendation.
        :type time_created: datetime

        :param time_updated:
            The value to assign to the time_updated property of this Recommendation.
        :type time_updated: datetime

        :param supported_levels:
            The value to assign to the supported_levels property of this Recommendation.
        :type supported_levels: oci.optimizer.models.SupportedLevels

        :param extended_metadata:
            The value to assign to the extended_metadata property of this Recommendation.
        :type extended_metadata: dict(str, str)

        ÚidÚstrÚcompartment_idÚcategory_idÚnameÚdescriptionÚ
importanceÚresource_countszlist[ResourceCount]Úlifecycle_stateÚestimated_cost_savingÚfloatÚstatusÚtime_status_beginÚdatetimeÚtime_status_endÚtime_createdÚtime_updatedÚsupported_levelsZSupportedLevelsÚextended_metadatazdict(str, str)ZcompartmentIdZ
categoryIdZresourceCountsZlifecycleStateZestimatedCostSavingZtimeStatusBeginZtimeStatusEndZtimeCreatedZtimeUpdatedZsupportedLevelsZextendedMetadataN)Zswagger_typesZattribute_mapÚ_idÚ_compartment_idÚ_category_idÚ_nameÚ_descriptionÚ_importanceÚ_resource_countsÚ_lifecycle_stateÚ_estimated_cost_savingÚ_statusÚ_time_status_beginÚ_time_status_endÚ_time_createdÚ_time_updatedÚ_supported_levelsÚ_extended_metadata)ÚselfÚkwargs© r>   úGusr/lib/python3.10/site-packages/oci/optimizer/models/recommendation.pyÚ__init__Z   s¤   Lÿþýüûúùø	÷
öõôóòñðÿþýüûúùø	÷
öõôóòñð
zRecommendation.__init__c                 C   ó   | j S )zÆ
        **[Required]** Gets the id of this Recommendation.
        The unique OCID associated with the recommendation.


        :return: The id of this Recommendation.
        :rtype: str
        ©r,   ©r<   r>   r>   r?   r   Ý   ó   
zRecommendation.idc                 C   ó
   || _ dS )z¸
        Sets the id of this Recommendation.
        The unique OCID associated with the recommendation.


        :param id: The id of this Recommendation.
        :type: str
        NrB   )r<   r   r>   r>   r?   r   é   ó   

c                 C   rA   )zè
        **[Required]** Gets the compartment_id of this Recommendation.
        The OCID of the tenancy. The tenancy is the root compartment.


        :return: The compartment_id of this Recommendation.
        :rtype: str
        ©r-   rC   r>   r>   r?   r   õ   rD   zRecommendation.compartment_idc                 C   rE   )zæ
        Sets the compartment_id of this Recommendation.
        The OCID of the tenancy. The tenancy is the root compartment.


        :param compartment_id: The compartment_id of this Recommendation.
        :type: str
        NrG   )r<   r   r>   r>   r?   r     rF   c                 C   rA   )zÒ
        **[Required]** Gets the category_id of this Recommendation.
        The unique OCID associated with the category.


        :return: The category_id of this Recommendation.
        :rtype: str
        ©r.   rC   r>   r>   r?   r     rD   zRecommendation.category_idc                 C   rE   )zÍ
        Sets the category_id of this Recommendation.
        The unique OCID associated with the category.


        :param category_id: The category_id of this Recommendation.
        :type: str
        NrH   )r<   r   r>   r>   r?   r     rF   c                 C   rA   )z¿
        **[Required]** Gets the name of this Recommendation.
        The name assigned to the recommendation.


        :return: The name of this Recommendation.
        :rtype: str
        ©r/   rC   r>   r>   r?   r   %  rD   zRecommendation.namec                 C   rE   )z³
        Sets the name of this Recommendation.
        The name assigned to the recommendation.


        :param name: The name of this Recommendation.
        :type: str
        NrI   )r<   r   r>   r>   r?   r   1  rF   c                 C   rA   )zÈ
        **[Required]** Gets the description of this Recommendation.
        Text describing the recommendation.


        :return: The description of this Recommendation.
        :rtype: str
        ©r0   rC   r>   r>   r?   r   =  rD   zRecommendation.descriptionc                 C   rE   )zÃ
        Sets the description of this Recommendation.
        Text describing the recommendation.


        :param description: The description of this Recommendation.
        :type: str
        NrJ   )r<   r   r>   r>   r?   r   I  rF   c                 C   rA   )a­  
        **[Required]** Gets the importance of this Recommendation.
        The level of importance assigned to the recommendation.

        Allowed values for this property are: "CRITICAL", "HIGH", "MODERATE", "LOW", "MINOR", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The importance of this Recommendation.
        :rtype: str
        )r1   rC   r>   r>   r?   r   U  ó   zRecommendation.importancec                 C   ó    g d¢}t ||ƒsd}|| _dS )zÔ
        Sets the importance of this Recommendation.
        The level of importance assigned to the recommendation.


        :param importance: The importance of this Recommendation.
        :type: str
        )r   r   r	   r
   r   ÚUNKNOWN_ENUM_VALUEN)r   r1   )r<   r   Úallowed_valuesr>   r>   r?   r   d  ó   


c                 C   rA   )a$  
        **[Required]** Gets the resource_counts of this Recommendation.
        An array of `ResourceCount` objects grouped by the status of the resource actions.


        :return: The resource_counts of this Recommendation.
        :rtype: list[oci.optimizer.models.ResourceCount]
        ©r2   rC   r>   r>   r?   r    s  rD   zRecommendation.resource_countsc                 C   rE   )a#  
        Sets the resource_counts of this Recommendation.
        An array of `ResourceCount` objects grouped by the status of the resource actions.


        :param resource_counts: The resource_counts of this Recommendation.
        :type: list[oci.optimizer.models.ResourceCount]
        NrP   )r<   r    r>   r>   r?   r      rF   c                 C   rA   )aÜ  
        **[Required]** Gets the lifecycle_state of this Recommendation.
        The recommendation's current state.

        Allowed values for this property are: "ACTIVE", "FAILED", "INACTIVE", "ATTACHING", "DETACHING", "DELETING", "DELETED", "UPDATING", "CREATING", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The lifecycle_state of this Recommendation.
        :rtype: str
        )r3   rC   r>   r>   r?   r!   ‹  rK   zRecommendation.lifecycle_statec                 C   rL   )zÏ
        Sets the lifecycle_state of this Recommendation.
        The recommendation's current state.


        :param lifecycle_state: The lifecycle_state of this Recommendation.
        :type: str
        )	r   r   r   r   r   r   r   r   r   rM   N)r   r3   )r<   r!   rN   r>   r>   r?   r!   š  rO   c                 C   rA   )zú
        **[Required]** Gets the estimated_cost_saving of this Recommendation.
        The estimated cost savings, in dollars, for the recommendation.


        :return: The estimated_cost_saving of this Recommendation.
        :rtype: float
        ©r4   rC   r>   r>   r?   r"   ©  rD   z$Recommendation.estimated_cost_savingc                 C   rE   )zÿ
        Sets the estimated_cost_saving of this Recommendation.
        The estimated cost savings, in dollars, for the recommendation.


        :param estimated_cost_saving: The estimated_cost_saving of this Recommendation.
        :type: float
        NrQ   )r<   r"   r>   r>   r?   r"   µ  rF   c                 C   rA   )a›  
        **[Required]** Gets the status of this Recommendation.
        The current status of the recommendation.

        Allowed values for this property are: "PENDING", "DISMISSED", "POSTPONED", "IMPLEMENTED", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The status of this Recommendation.
        :rtype: str
        )r5   rC   r>   r>   r?   r$   Á  rK   zRecommendation.statusc                 C   rL   )zº
        Sets the status of this Recommendation.
        The current status of the recommendation.


        :param status: The status of this Recommendation.
        :type: str
        )r   r   r   r   rM   N)r   r5   )r<   r$   rN   r>   r>   r?   r$   Ð  rO   c                 C   rA   )aš  
        **[Required]** Gets the time_status_begin of this Recommendation.
        The date and time that the recommendation entered its current status. The format is defined by RFC3339.

        For example, "The status of the recommendation changed from `pending` to `current(ignored)` on this date and time."


        :return: The time_status_begin of this Recommendation.
        :rtype: datetime
        ©r6   rC   r>   r>   r?   r%   ß  s   z Recommendation.time_status_beginc                 C   rE   )a›  
        Sets the time_status_begin of this Recommendation.
        The date and time that the recommendation entered its current status. The format is defined by RFC3339.

        For example, "The status of the recommendation changed from `pending` to `current(ignored)` on this date and time."


        :param time_status_begin: The time_status_begin of this Recommendation.
        :type: datetime
        NrR   )r<   r%   r>   r>   r?   r%   í  s   
c                 C   rA   )aƒ  
        Gets the time_status_end of this Recommendation.
        The date and time the current status will change. The format is defined by RFC3339.

        For example, "The current `postponed` status of the recommendation will end and change to `pending` on this
        date and time."


        :return: The time_status_end of this Recommendation.
        :rtype: datetime
        ©r7   rC   r>   r>   r?   r'   û  rK   zRecommendation.time_status_endc                 C   rE   )a‘  
        Sets the time_status_end of this Recommendation.
        The date and time the current status will change. The format is defined by RFC3339.

        For example, "The current `postponed` status of the recommendation will end and change to `pending` on this
        date and time."


        :param time_status_end: The time_status_end of this Recommendation.
        :type: datetime
        NrS   )r<   r'   r>   r>   r?   r'   
  s   
c                 C   rA   )zù
        Gets the time_created of this Recommendation.
        The date and time the recommendation details were created, in the format defined by RFC3339.


        :return: The time_created of this Recommendation.
        :rtype: datetime
        ©r8   rC   r>   r>   r?   r(     rD   zRecommendation.time_createdc                 C   rE   )a  
        Sets the time_created of this Recommendation.
        The date and time the recommendation details were created, in the format defined by RFC3339.


        :param time_created: The time_created of this Recommendation.
        :type: datetime
        NrT   )r<   r(   r>   r>   r?   r(   %  rF   c                 C   rA   )zþ
        Gets the time_updated of this Recommendation.
        The date and time the recommendation details were last updated, in the format defined by RFC3339.


        :return: The time_updated of this Recommendation.
        :rtype: datetime
        ©r9   rC   r>   r>   r?   r)   1  rD   zRecommendation.time_updatedc                 C   rE   )a	  
        Sets the time_updated of this Recommendation.
        The date and time the recommendation details were last updated, in the format defined by RFC3339.


        :param time_updated: The time_updated of this Recommendation.
        :type: datetime
        NrU   )r<   r)   r>   r>   r?   r)   =  rF   c                 C   rA   )z·
        Gets the supported_levels of this Recommendation.

        :return: The supported_levels of this Recommendation.
        :rtype: oci.optimizer.models.SupportedLevels
        ©r:   rC   r>   r>   r?   r*   I  s   zRecommendation.supported_levelsc                 C   rE   )zÆ
        Sets the supported_levels of this Recommendation.

        :param supported_levels: The supported_levels of this Recommendation.
        :type: oci.optimizer.models.SupportedLevels
        NrV   )r<   r*   r>   r>   r?   r*   S  s   
c                 C   rA   )a$  
        Gets the extended_metadata of this Recommendation.
        Additional metadata key/value pairs for the recommendation.

        For example:

        `{"EstimatedSaving": "200"}`


        :return: The extended_metadata of this Recommendation.
        :rtype: dict(str, str)
        ©r;   rC   r>   r>   r?   r+   ]  s   z Recommendation.extended_metadatac                 C   rE   )a4  
        Sets the extended_metadata of this Recommendation.
        Additional metadata key/value pairs for the recommendation.

        For example:

        `{"EstimatedSaving": "200"}`


        :param extended_metadata: The extended_metadata of this Recommendation.
        :type: dict(str, str)
        NrW   )r<   r+   r>   r>   r?   r+   m  s   
c                 C   s   t | ƒS ©N)r   rC   r>   r>   r?   Ú__repr__}  s   zRecommendation.__repr__c                 C   s   |d u rdS | j |j kS )NF)Ú__dict__©r<   Úotherr>   r>   r?   Ú__eq__€  s   zRecommendation.__eq__c                 C   s
   | |k S rX   r>   r[   r>   r>   r?   Ú__ne__†  s   
zRecommendation.__ne__N),Ú__name__Ú
__module__Ú__qualname__Ú__doc__ZIMPORTANCE_CRITICALZIMPORTANCE_HIGHZIMPORTANCE_MODERATEZIMPORTANCE_LOWZIMPORTANCE_MINORZLIFECYCLE_STATE_ACTIVEZLIFECYCLE_STATE_FAILEDZLIFECYCLE_STATE_INACTIVEZLIFECYCLE_STATE_ATTACHINGZLIFECYCLE_STATE_DETACHINGZLIFECYCLE_STATE_DELETINGZLIFECYCLE_STATE_DELETEDZLIFECYCLE_STATE_UPDATINGZLIFECYCLE_STATE_CREATINGZSTATUS_PENDINGZSTATUS_DISMISSEDZSTATUS_POSTPONEDZSTATUS_IMPLEMENTEDr@   Úpropertyr   Úsetterr   r   r   r   r   r    r!   r"   r$   r%   r'   r(   r)   r*   r+   rY   r]   r^   r>   r>   r>   r?   r      s²     




























	
	

r   N)Zoci.utilr   r   r   Zoci.decoratorsr   Úobjectr   r>   r>   r>   r?   Ú<module>   s   