o
    ɶdF                     @   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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!d7d8 Z"d9d: Z#d;d< Z$d=S )>JavaReleasez]
    Metadata associated with a specific release of Java. Includes the artifact details.
    EARLY_ACCESSUNKNOWN
UP_TO_DATEUPDATE_REQUIREDUPGRADE_REQUIREDCPUFEATUREBPRPATCH_RELEASEOTNNFTC
RESTRICTEDJDKJRE
SERVER_JREc                 K   s   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 JavaRelease object with values from keyword arguments.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param artifacts:
            The value to assign to the artifacts property of this JavaRelease.
        :type artifacts: list[oci.jms.models.JavaArtifact]

        :param release_version:
            The value to assign to the release_version property of this JavaRelease.
        :type release_version: str

        :param family_version:
            The value to assign to the family_version property of this JavaRelease.
        :type family_version: str

        :param parent_release_version:
            The value to assign to the parent_release_version property of this JavaRelease.
        :type parent_release_version: str

        :param security_status:
            The value to assign to the security_status property of this JavaRelease.
            Allowed values for this property are: "EARLY_ACCESS", "UNKNOWN", "UP_TO_DATE", "UPDATE_REQUIRED", "UPGRADE_REQUIRED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type security_status: str

        :param release_type:
            The value to assign to the release_type property of this JavaRelease.
            Allowed values for this property are: "CPU", "FEATURE", "BPR", "PATCH_RELEASE", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type release_type: str

        :param license_type:
            The value to assign to the license_type property of this JavaRelease.
            Allowed values for this property are: "OTN", "NFTC", "RESTRICTED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type license_type: str

        :param family_details:
            The value to assign to the family_details property of this JavaRelease.
        :type family_details: oci.jms.models.JavaFamily

        :param license_details:
            The value to assign to the license_details property of this JavaRelease.
        :type license_details: oci.jms.models.JavaLicense

        :param release_date:
            The value to assign to the release_date property of this JavaRelease.
        :type release_date: datetime

        :param release_notes_url:
            The value to assign to the release_notes_url property of this JavaRelease.
        :type release_notes_url: str

        :param artifact_content_types:
            The value to assign to the artifact_content_types property of this JavaRelease.
            Allowed values for items in this list are: "JDK", "JRE", "SERVER_JRE", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type artifact_content_types: list[str]

        zlist[JavaArtifact]strZ
JavaFamilyZJavaLicensedatetimez	list[str])	artifactsrelease_versionfamily_versionparent_release_versionsecurity_statusrelease_typelicense_typefamily_detailslicense_detailsrelease_daterelease_notes_urlartifact_content_typesr   ZreleaseVersionZfamilyVersionZparentReleaseVersionZsecurityStatusZreleaseTypeZlicenseTypeZfamilyDetailsZlicenseDetailsZreleaseDateZreleaseNotesUrlZartifactContentTypesN)Zswagger_typesZattribute_map
_artifacts_release_version_family_version_parent_release_version_security_status_release_type_license_type_family_details_license_details_release_date_release_notes_url_artifact_content_types)selfkwargs r2   ?usr/lib/python3.10/site-packages/oci/jms/models/java_release.py__init__N   sL   ?
zJavaRelease.__init__c                 C      | j S )z
        Gets the artifacts of this JavaRelease.
        List of Java artifacts.


        :return: The artifacts of this JavaRelease.
        :rtype: list[oci.jms.models.JavaArtifact]
        r$   r0   r2   r2   r3   r         
zJavaRelease.artifactsc                 C   
   || _ dS )z
        Sets the artifacts of this JavaRelease.
        List of Java artifacts.


        :param artifacts: The artifacts of this JavaRelease.
        :type: list[oci.jms.models.JavaArtifact]
        Nr6   )r0   r   r2   r2   r3   r         

c                 C   r5   )z
        **[Required]** Gets the release_version of this JavaRelease.
        Java release version identifier.


        :return: The release_version of this JavaRelease.
        :rtype: str
        r%   r7   r2   r2   r3   r      r8   zJavaRelease.release_versionc                 C   r9   )z
        Sets the release_version of this JavaRelease.
        Java release version identifier.


        :param release_version: The release_version of this JavaRelease.
        :type: str
        Nr;   )r0   r   r2   r2   r3   r      r:   c                 C   r5   )z
        **[Required]** Gets the family_version of this JavaRelease.
        Java release family identifier.


        :return: The family_version of this JavaRelease.
        :rtype: str
        r&   r7   r2   r2   r3   r      r8   zJavaRelease.family_versionc                 C   r9   )z
        Sets the family_version of this JavaRelease.
        Java release family identifier.


        :param family_version: The family_version of this JavaRelease.
        :type: str
        Nr<   )r0   r   r2   r2   r3   r      r:   c                 C   r5   )z
        Gets the parent_release_version of this JavaRelease.
        Parent Java release version identifier. This is applicable for BPR releases.


        :return: The parent_release_version of this JavaRelease.
        :rtype: str
        r'   r7   r2   r2   r3   r      r8   z"JavaRelease.parent_release_versionc                 C   r9   )a  
        Sets the parent_release_version of this JavaRelease.
        Parent Java release version identifier. This is applicable for BPR releases.


        :param parent_release_version: The parent_release_version of this JavaRelease.
        :type: str
        Nr=   )r0   r   r2   r2   r3   r     r:   c                 C   r5   )a  
        **[Required]** Gets the security_status of this JavaRelease.
        The security status of the Java version.

        Allowed values for this property are: "EARLY_ACCESS", "UNKNOWN", "UP_TO_DATE", "UPDATE_REQUIRED", "UPGRADE_REQUIRED", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The security_status of this JavaRelease.
        :rtype: str
        )r(   r7   r2   r2   r3   r        zJavaRelease.security_statusc                 C       g d}t ||sd}|| _dS )z
        Sets the security_status of this JavaRelease.
        The security status of the Java version.


        :param security_status: The security_status of this JavaRelease.
        :type: str
        )r   r   r	   r
   r   UNKNOWN_ENUM_VALUEN)r   r(   )r0   r   allowed_valuesr2   r2   r3   r   &     


c                 C   r5   )a  
        **[Required]** Gets the release_type of this JavaRelease.
        Release category of the Java version.

        Allowed values for this property are: "CPU", "FEATURE", "BPR", "PATCH_RELEASE", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The release_type of this JavaRelease.
        :rtype: str
        )r)   r7   r2   r2   r3   r   5  r>   zJavaRelease.release_typec                 C   r?   )z
        Sets the release_type of this JavaRelease.
        Release category of the Java version.


        :param release_type: The release_type of this JavaRelease.
        :type: str
        )r   r   r   r   r@   N)r   r)   )r0   r   rA   r2   r2   r3   r   D  rB   c                 C   r5   )a  
        **[Required]** Gets the license_type of this JavaRelease.
        License type for the Java version.

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


        :return: The license_type of this JavaRelease.
        :rtype: str
        )r*   r7   r2   r2   r3   r   S  r>   zJavaRelease.license_typec                 C   r?   )z
        Sets the license_type of this JavaRelease.
        License type for the Java version.


        :param license_type: The license_type of this JavaRelease.
        :type: str
        )r   r   r   r@   N)r   r*   )r0   r   rA   r2   r2   r3   r   b  rB   c                 C   r5   )z
        Gets the family_details of this JavaRelease.

        :return: The family_details of this JavaRelease.
        :rtype: oci.jms.models.JavaFamily
        r+   r7   r2   r2   r3   r   q     zJavaRelease.family_detailsc                 C   r9   )z
        Sets the family_details of this JavaRelease.

        :param family_details: The family_details of this JavaRelease.
        :type: oci.jms.models.JavaFamily
        NrC   )r0   r   r2   r2   r3   r   {     
c                 C   r5   )z
        Gets the license_details of this JavaRelease.

        :return: The license_details of this JavaRelease.
        :rtype: oci.jms.models.JavaLicense
        r,   r7   r2   r2   r3   r      rD   zJavaRelease.license_detailsc                 C   r9   )z
        Sets the license_details of this JavaRelease.

        :param license_details: The license_details of this JavaRelease.
        :type: oci.jms.models.JavaLicense
        NrF   )r0   r    r2   r2   r3   r      rE   c                 C   r5   )a*  
        **[Required]** Gets the release_date of this JavaRelease.
        The release date of the Java version (formatted according to `RFC3339`__).

        __ https://datatracker.ietf.org/doc/html/rfc3339


        :return: The release_date of this JavaRelease.
        :rtype: datetime
        r-   r7   r2   r2   r3   r!     s   zJavaRelease.release_datec                 C   r9   )a&  
        Sets the release_date of this JavaRelease.
        The release date of the Java version (formatted according to `RFC3339`__).

        __ https://datatracker.ietf.org/doc/html/rfc3339


        :param release_date: The release_date of this JavaRelease.
        :type: datetime
        NrG   )r0   r!   r2   r2   r3   r!     s   
c                 C   r5   )z
        **[Required]** Gets the release_notes_url of this JavaRelease.
        Release notes associated with the Java version.


        :return: The release_notes_url of this JavaRelease.
        :rtype: str
        r.   r7   r2   r2   r3   r"     r8   zJavaRelease.release_notes_urlc                 C   r9   )z
        Sets the release_notes_url of this JavaRelease.
        Release notes associated with the Java version.


        :param release_notes_url: The release_notes_url of this JavaRelease.
        :type: str
        NrH   )r0   r"   r2   r2   r3   r"     r:   c                 C   r5   )a  
        **[Required]** Gets the artifact_content_types of this JavaRelease.
        Artifact content types for the Java version.

        Allowed values for items in this list are: "JDK", "JRE", "SERVER_JRE", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The artifact_content_types of this JavaRelease.
        :rtype: list[str]
        r/   r7   r2   r2   r3   r#     r>   z"JavaRelease.artifact_content_typesc                    s0   g d |r fdd|D |dd< || _ dS )z
        Sets the artifact_content_types of this JavaRelease.
        Artifact content types for the Java version.


        :param artifact_content_types: The artifact_content_types of this JavaRelease.
        :type: list[str]
        )r   r   r   c                    s   g | ]}t | sd n|qS )r@   )r   ).0xrA   r2   r3   
<listcomp>  s    z6JavaRelease.artifact_content_types.<locals>.<listcomp>NrI   )r0   r#   r2   rL   r3   r#     s   

c                 C   s   t | S N)r   r7   r2   r2   r3   __repr__  s   zJavaRelease.__repr__c                 C   s   |d u rdS | j |j kS )NF)__dict__r0   otherr2   r2   r3   __eq__  s   zJavaRelease.__eq__c                 C   s
   | |k S rN   r2   rQ   r2   r2   r3   __ne__  s   
zJavaRelease.__ne__N)%__name__
__module____qualname____doc__ZSECURITY_STATUS_EARLY_ACCESSZSECURITY_STATUS_UNKNOWNZSECURITY_STATUS_UP_TO_DATEZSECURITY_STATUS_UPDATE_REQUIREDZ SECURITY_STATUS_UPGRADE_REQUIREDZRELEASE_TYPE_CPUZRELEASE_TYPE_FEATUREZRELEASE_TYPE_BPRZRELEASE_TYPE_PATCH_RELEASEZLICENSE_TYPE_OTNZLICENSE_TYPE_NFTCZLICENSE_TYPE_RESTRICTEDZARTIFACT_CONTENT_TYPES_JDKZARTIFACT_CONTENT_TYPES_JREZ!ARTIFACT_CONTENT_TYPES_SERVER_JREr4   propertyr   setterr   r   r   r   r   r   r   r    r!   r"   r#   rO   rS   rT   r2   r2   r2   r3   r      s    i














	
	
	
	





r   N)Zoci.utilr   r   r   Zoci.decoratorsr   objectr   r2   r2   r2   r3   <module>   s   