o
    ɶd/]                     @   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                   @   s8  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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/d0 Zejd1d0 Zed2d3 Zejd4d3 Zed5d6 Z e jd7d6 Z ed8d9 Z!e!jd:d9 Z!ed;d< Z"e"jd=d< Z"ed>d? Z#e#jd@d? Z#edAdB Z$e$jdCdB Z$edDdE Z%e%jdFdE Z%dGdH Z&dIdJ Z'dKdL Z(dMS )NResourceActionz;
    The metadata associated with the resource action.
    ACTIVEFAILEDINACTIVE	ATTACHING	DETACHINGDELETINGDELETEDUPDATINGCREATINGPENDING	DISMISSED	POSTPONEDIMPLEMENTEDc                 K   sX  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i| _ 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%i| _d&| _d&| _d&| _d&| _d&| _d&| _d&| _d&| _	d&| _
d&| _d&| _d&| _d&| _d&| _d&| _d&| _d&| _d&| _d&S )'a[  
        Initializes a new ResourceAction 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 ResourceAction.
        :type id: str

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

        :param recommendation_id:
            The value to assign to the recommendation_id property of this ResourceAction.
        :type recommendation_id: str

        :param resource_id:
            The value to assign to the resource_id property of this ResourceAction.
        :type resource_id: str

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

        :param resource_type:
            The value to assign to the resource_type property of this ResourceAction.
        :type resource_type: str

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

        :param compartment_name:
            The value to assign to the compartment_name property of this ResourceAction.
        :type compartment_name: str

        :param action:
            The value to assign to the action property of this ResourceAction.
        :type action: oci.optimizer.models.Action

        :param lifecycle_state:
            The value to assign to the lifecycle_state property of this ResourceAction.
            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 ResourceAction.
        :type estimated_cost_saving: float

        :param status:
            The value to assign to the status property of this ResourceAction.
            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 ResourceAction.
        :type time_status_begin: datetime

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

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

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

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

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

        idstrcategory_idrecommendation_idresource_idnameresource_typecompartment_idcompartment_nameactionZActionlifecycle_stateestimated_cost_savingfloatstatustime_status_begindatetimetime_status_endmetadatazdict(str, str)extended_metadatazdict(str, object)time_createdtime_updatedZ
categoryIdZrecommendationIdZ
resourceIdZresourceTypeZcompartmentIdZcompartmentNameZlifecycleStateZestimatedCostSavingZtimeStatusBeginZtimeStatusEndZextendedMetadataZtimeCreatedZtimeUpdatedN)Zswagger_typesZattribute_map_id_category_id_recommendation_id_resource_id_name_resource_type_compartment_id_compartment_name_action_lifecycle_state_estimated_cost_saving_status_time_status_begin_time_status_end	_metadata_extended_metadata_time_created_time_updated)selfkwargs r=   Husr/lib/python3.10/site-packages/oci/optimizer/models/resource_action.py__init__F   s   R	
	

zResourceAction.__init__c                 C      | j S )z
        **[Required]** Gets the id of this ResourceAction.
        The unique OCID associated with the resource action.


        :return: The id of this ResourceAction.
        :rtype: str
        r)   r;   r=   r=   r>   r         
zResourceAction.idc                 C   
   || _ dS )z
        Sets the id of this ResourceAction.
        The unique OCID associated with the resource action.


        :param id: The id of this ResourceAction.
        :type: str
        NrA   )r;   r   r=   r=   r>   r         

c                 C   r@   )z
        **[Required]** Gets the category_id of this ResourceAction.
        The unique OCID associated with the category.


        :return: The category_id of this ResourceAction.
        :rtype: str
        r*   rB   r=   r=   r>   r      rC   zResourceAction.category_idc                 C   rD   )z
        Sets the category_id of this ResourceAction.
        The unique OCID associated with the category.


        :param category_id: The category_id of this ResourceAction.
        :type: str
        NrF   )r;   r   r=   r=   r>   r      rE   c                 C   r@   )z
        **[Required]** Gets the recommendation_id of this ResourceAction.
        The unique OCID associated with the recommendation.


        :return: The recommendation_id of this ResourceAction.
        :rtype: str
        r+   rB   r=   r=   r>   r     rC   z ResourceAction.recommendation_idc                 C   rD   )z
        Sets the recommendation_id of this ResourceAction.
        The unique OCID associated with the recommendation.


        :param recommendation_id: The recommendation_id of this ResourceAction.
        :type: str
        NrG   )r;   r   r=   r=   r>   r     rE   c                 C   r@   )z
        **[Required]** Gets the resource_id of this ResourceAction.
        The unique OCID associated with the resource.


        :return: The resource_id of this ResourceAction.
        :rtype: str
        r,   rB   r=   r=   r>   r     rC   zResourceAction.resource_idc                 C   rD   )z
        Sets the resource_id of this ResourceAction.
        The unique OCID associated with the resource.


        :param resource_id: The resource_id of this ResourceAction.
        :type: str
        NrH   )r;   r   r=   r=   r>   r   )  rE   c                 C   r@   )z
        **[Required]** Gets the name of this ResourceAction.
        The name assigned to the resource.


        :return: The name of this ResourceAction.
        :rtype: str
        r-   rB   r=   r=   r>   r   5  rC   zResourceAction.namec                 C   rD   )z
        Sets the name of this ResourceAction.
        The name assigned to the resource.


        :param name: The name of this ResourceAction.
        :type: str
        NrI   )r;   r   r=   r=   r>   r   A  rE   c                 C   r@   )z
        **[Required]** Gets the resource_type of this ResourceAction.
        The kind of resource.


        :return: The resource_type of this ResourceAction.
        :rtype: str
        r.   rB   r=   r=   r>   r   M  rC   zResourceAction.resource_typec                 C   rD   )z
        Sets the resource_type of this ResourceAction.
        The kind of resource.


        :param resource_type: The resource_type of this ResourceAction.
        :type: str
        NrJ   )r;   r   r=   r=   r>   r   Y  rE   c                 C   r@   )z
        **[Required]** Gets the compartment_id of this ResourceAction.
        The OCID of the compartment.


        :return: The compartment_id of this ResourceAction.
        :rtype: str
        r/   rB   r=   r=   r>   r   e  rC   zResourceAction.compartment_idc                 C   rD   )z
        Sets the compartment_id of this ResourceAction.
        The OCID of the compartment.


        :param compartment_id: The compartment_id of this ResourceAction.
        :type: str
        NrK   )r;   r   r=   r=   r>   r   q  rE   c                 C   r@   )z
        **[Required]** Gets the compartment_name of this ResourceAction.
        The name associated with the compartment.


        :return: The compartment_name of this ResourceAction.
        :rtype: str
        r0   rB   r=   r=   r>   r   }  rC   zResourceAction.compartment_namec                 C   rD   )z
        Sets the compartment_name of this ResourceAction.
        The name associated with the compartment.


        :param compartment_name: The compartment_name of this ResourceAction.
        :type: str
        NrL   )r;   r   r=   r=   r>   r     rE   c                 C   r@   )z
        **[Required]** Gets the action of this ResourceAction.

        :return: The action of this ResourceAction.
        :rtype: oci.optimizer.models.Action
        r1   rB   r=   r=   r>   r     s   zResourceAction.actionc                 C   rD   )z
        Sets the action of this ResourceAction.

        :param action: The action of this ResourceAction.
        :type: oci.optimizer.models.Action
        NrM   )r;   r   r=   r=   r>   r     s   
c                 C   r@   )a  
        **[Required]** Gets the lifecycle_state of this ResourceAction.
        The resource action'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 ResourceAction.
        :rtype: str
        )r2   rB   r=   r=   r>   r        zResourceAction.lifecycle_statec                 C       g d}t ||sd}|| _dS )z
        Sets the lifecycle_state of this ResourceAction.
        The resource action's current state.


        :param lifecycle_state: The lifecycle_state of this ResourceAction.
        :type: str
        )	r   r   r	   r
   r   r   r   r   r   UNKNOWN_ENUM_VALUEN)r   r2   )r;   r   allowed_valuesr=   r=   r>   r        


c                 C   r@   )z
        **[Required]** Gets the estimated_cost_saving of this ResourceAction.
        The estimated cost savings, in dollars, for the resource action.


        :return: The estimated_cost_saving of this ResourceAction.
        :rtype: float
        r3   rB   r=   r=   r>   r     rC   z$ResourceAction.estimated_cost_savingc                 C   rD   )a   
        Sets the estimated_cost_saving of this ResourceAction.
        The estimated cost savings, in dollars, for the resource action.


        :param estimated_cost_saving: The estimated_cost_saving of this ResourceAction.
        :type: float
        NrS   )r;   r   r=   r=   r>   r     rE   c                 C   r@   )a  
        **[Required]** Gets the status of this ResourceAction.
        The current status of the resource action.

        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 ResourceAction.
        :rtype: str
        )r4   rB   r=   r=   r>   r!     rN   zResourceAction.statusc                 C   rO   )z
        Sets the status of this ResourceAction.
        The current status of the resource action.


        :param status: The status of this ResourceAction.
        :type: str
        )r   r   r   r   rP   N)r   r4   )r;   r!   rQ   r=   r=   r>   r!     rR   c                 C   r@   )a  
        **[Required]** Gets the time_status_begin of this ResourceAction.
        The date and time that the resource action entered its current status. The format is defined by RFC3339.

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


        :return: The time_status_begin of this ResourceAction.
        :rtype: datetime
        r5   rB   r=   r=   r>   r"     s   z ResourceAction.time_status_beginc                 C   rD   )a  
        Sets the time_status_begin of this ResourceAction.
        The date and time that the resource action entered its current status. The format is defined by RFC3339.

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


        :param time_status_begin: The time_status_begin of this ResourceAction.
        :type: datetime
        NrT   )r;   r"   r=   r=   r>   r"     s   
c                 C   r@   )a  
        Gets the time_status_end of this ResourceAction.
        The date and time the current status will change. The format is defined by RFC3339.

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


        :return: The time_status_end of this ResourceAction.
        :rtype: datetime
        r6   rB   r=   r=   r>   r$     rN   zResourceAction.time_status_endc                 C   rD   )a  
        Sets the time_status_end of this ResourceAction.
        The date and time the current status will change. The format is defined by RFC3339.

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


        :param time_status_end: The time_status_end of this ResourceAction.
        :type: datetime
        NrU   )r;   r$   r=   r=   r>   r$   (  s   
c                 C   r@   )a  
        Gets the metadata of this ResourceAction.
        Custom metadata key/value pairs for the resource action.

         **Metadata Example**

              "metadata" : {
                 "cpuRecommendedShape": "VM.Standard1.1",
                 "computeMemoryUtilization": "26.05734124418388",
                 "currentShape": "VM.Standard1.2",
                 "instanceRecommendedShape": "VM.Standard1.1",
                 "computeCpuUtilization": "7.930035319720132",
                 "memoryRecommendedShape": "None"
              }


        :return: The metadata of this ResourceAction.
        :rtype: dict(str, str)
        r7   rB   r=   r=   r>   r%   7  s   zResourceAction.metadatac                 C   rD   )a  
        Sets the metadata of this ResourceAction.
        Custom metadata key/value pairs for the resource action.

         **Metadata Example**

              "metadata" : {
                 "cpuRecommendedShape": "VM.Standard1.1",
                 "computeMemoryUtilization": "26.05734124418388",
                 "currentShape": "VM.Standard1.2",
                 "instanceRecommendedShape": "VM.Standard1.1",
                 "computeCpuUtilization": "7.930035319720132",
                 "memoryRecommendedShape": "None"
              }


        :param metadata: The metadata of this ResourceAction.
        :type: dict(str, str)
        NrV   )r;   r%   r=   r=   r>   r%   N  s   
c                 C   r@   )aU  
        Gets the extended_metadata of this ResourceAction.
        Additional metadata key/value pairs that you provide.
        They serve the same purpose and functionality as fields in the `metadata` object.

        They are distinguished from `metadata` fields in that these can be nested JSON objects (whereas `metadata` fields are string/string maps only).

        For example:

        `{"CurrentShape": {"name":"VM.Standard2.16"}, "RecommendedShape": {"name":"VM.Standard2.8"}}`


        :return: The extended_metadata of this ResourceAction.
        :rtype: dict(str, object)
        r8   rB   r=   r=   r>   r&   e  s   z ResourceAction.extended_metadatac                 C   rD   )ae  
        Sets the extended_metadata of this ResourceAction.
        Additional metadata key/value pairs that you provide.
        They serve the same purpose and functionality as fields in the `metadata` object.

        They are distinguished from `metadata` fields in that these can be nested JSON objects (whereas `metadata` fields are string/string maps only).

        For example:

        `{"CurrentShape": {"name":"VM.Standard2.16"}, "RecommendedShape": {"name":"VM.Standard2.8"}}`


        :param extended_metadata: The extended_metadata of this ResourceAction.
        :type: dict(str, object)
        NrW   )r;   r&   r=   r=   r>   r&   x  s   
c                 C   r@   )z
        Gets the time_created of this ResourceAction.
        The date and time the resource action details were created, in the format defined by RFC3339.


        :return: The time_created of this ResourceAction.
        :rtype: datetime
        r9   rB   r=   r=   r>   r'     rC   zResourceAction.time_createdc                 C   rD   )a  
        Sets the time_created of this ResourceAction.
        The date and time the resource action details were created, in the format defined by RFC3339.


        :param time_created: The time_created of this ResourceAction.
        :type: datetime
        NrX   )r;   r'   r=   r=   r>   r'     rE   c                 C   r@   )z
        Gets the time_updated of this ResourceAction.
        The date and time the resource action details were last updated, in the format defined by RFC3339.


        :return: The time_updated of this ResourceAction.
        :rtype: datetime
        r:   rB   r=   r=   r>   r(     rC   zResourceAction.time_updatedc                 C   rD   )a
  
        Sets the time_updated of this ResourceAction.
        The date and time the resource action details were last updated, in the format defined by RFC3339.


        :param time_updated: The time_updated of this ResourceAction.
        :type: datetime
        NrY   )r;   r(   r=   r=   r>   r(     rE   c                 C   s   t | S N)r   rB   r=   r=   r>   __repr__  s   zResourceAction.__repr__c                 C   s   |d u rdS | j |j kS )NF)__dict__r;   otherr=   r=   r>   __eq__  s   zResourceAction.__eq__c                 C   s
   | |k S rZ   r=   r]   r=   r=   r>   __ne__  s   
zResourceAction.__ne__N))__name__
__module____qualname____doc__Z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&   r'   r(   r[   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   