o
    ɶdx                     @   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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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 Z0e0j!dMdL Z0edNdO Z1e1j!dPdO Z1edQdR Z2e2j!dSdR Z2edTdU Z3e3j!dVdU Z3dWdX Z4dYdZ Z5d[d\ Z6d]S )^Certificatez`
    The details of the certificate. This object does not contain the certificate contents.
    CREATINGACTIVEUPDATINGDELETINGDELETEDSCHEDULING_DELETIONPENDING_DELETIONCANCELLING_DELETIONFAILEDISSUED_BY_INTERNAL_CA(MANAGED_EXTERNALLY_ISSUED_BY_INTERNAL_CAIMPORTEDRSA2048RSA4096
ECDSA_P256
ECDSA_P384SHA256_WITH_RSASHA384_WITH_RSASHA512_WITH_RSASHA256_WITH_ECDSASHA384_WITH_ECDSASHA512_WITH_ECDSATLS_SERVER_OR_CLIENT
TLS_SERVER
TLS_CLIENTTLS_CODE_SIGNc                 K   sb  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| _ 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*S )+aP  
        Initializes a new Certificate 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 Certificate.
        :type id: str

        :param issuer_certificate_authority_id:
            The value to assign to the issuer_certificate_authority_id property of this Certificate.
        :type issuer_certificate_authority_id: str

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

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

        :param certificate_rules:
            The value to assign to the certificate_rules property of this Certificate.
        :type certificate_rules: list[oci.certificates_management.models.CertificateRule]

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

        :param time_of_deletion:
            The value to assign to the time_of_deletion property of this Certificate.
        :type time_of_deletion: datetime

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

        :param lifecycle_details:
            The value to assign to the lifecycle_details property of this Certificate.
        :type lifecycle_details: str

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

        :param current_version:
            The value to assign to the current_version property of this Certificate.
        :type current_version: oci.certificates_management.models.CertificateVersionSummary

        :param subject:
            The value to assign to the subject property of this Certificate.
        :type subject: oci.certificates_management.models.CertificateSubject

        :param certificate_revocation_list_details:
            The value to assign to the certificate_revocation_list_details property of this Certificate.
        :type certificate_revocation_list_details: oci.certificates_management.models.CertificateRevocationListDetails

        :param config_type:
            The value to assign to the config_type property of this Certificate.
            Allowed values for this property are: "ISSUED_BY_INTERNAL_CA", "MANAGED_EXTERNALLY_ISSUED_BY_INTERNAL_CA", "IMPORTED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type config_type: str

        :param key_algorithm:
            The value to assign to the key_algorithm property of this Certificate.
            Allowed values for this property are: "RSA2048", "RSA4096", "ECDSA_P256", "ECDSA_P384", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type key_algorithm: str

        :param signature_algorithm:
            The value to assign to the signature_algorithm property of this Certificate.
            Allowed values for this property are: "SHA256_WITH_RSA", "SHA384_WITH_RSA", "SHA512_WITH_RSA", "SHA256_WITH_ECDSA", "SHA384_WITH_ECDSA", "SHA512_WITH_ECDSA", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type signature_algorithm: str

        :param certificate_profile_type:
            The value to assign to the certificate_profile_type property of this Certificate.
            Allowed values for this property are: "TLS_SERVER_OR_CLIENT", "TLS_SERVER", "TLS_CLIENT", "TLS_CODE_SIGN", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type certificate_profile_type: str

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

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

        idstrissuer_certificate_authority_idnamedescriptioncertificate_ruleszlist[CertificateRule]time_createddatetimetime_of_deletionlifecycle_statelifecycle_detailscompartment_idcurrent_versionZCertificateVersionSummarysubjectZCertificateSubject#certificate_revocation_list_detailsZ CertificateRevocationListDetailsconfig_typekey_algorithmsignature_algorithmcertificate_profile_typezdict(str, str)zdict(str, dict(str, object)))freeform_tagsdefined_tagsZissuerCertificateAuthorityIdZcertificateRulesZtimeCreatedZtimeOfDeletionZlifecycleStateZlifecycleDetailsZcompartmentIdZcurrentVersionZ certificateRevocationListDetailsZ
configTypeZkeyAlgorithmZsignatureAlgorithmZcertificateProfileTypeZfreeformTagsZdefinedTagsN)Zswagger_typesZattribute_map_id _issuer_certificate_authority_id_name_description_certificate_rules_time_created_time_of_deletion_lifecycle_state_lifecycle_details_compartment_id_current_version_subject$_certificate_revocation_list_details_config_type_key_algorithm_signature_algorithm_certificate_profile_type_freeform_tags_defined_tags)selfkwargs rK   Rusr/lib/python3.10/site-packages/oci/certificates_management/models/certificate.py__init__z   s   \	

	


zCertificate.__init__c                 C      | j S )z
        **[Required]** Gets the id of this Certificate.
        The OCID of the certificate.


        :return: The id of this Certificate.
        :rtype: str
        r6   rI   rK   rK   rL   r!        
zCertificate.idc                 C   
   || _ dS )z
        Sets the id of this Certificate.
        The OCID of the certificate.


        :param id: The id of this Certificate.
        :type: str
        NrO   )rI   r!   rK   rK   rL   r!   "     

c                 C   rN   )z
        Gets the issuer_certificate_authority_id of this Certificate.
        The OCID of the certificate authority (CA) that issued the certificate.


        :return: The issuer_certificate_authority_id of this Certificate.
        :rtype: str
        r7   rP   rK   rK   rL   r#   .  rQ   z+Certificate.issuer_certificate_authority_idc                 C   rR   )a  
        Sets the issuer_certificate_authority_id of this Certificate.
        The OCID of the certificate authority (CA) that issued the certificate.


        :param issuer_certificate_authority_id: The issuer_certificate_authority_id of this Certificate.
        :type: str
        NrT   )rI   r#   rK   rK   rL   r#   :  rS   c                 C   rN   )ak  
        **[Required]** Gets the name of this Certificate.
        A user-friendly name for the certificate. Names are unique within a compartment. Avoid entering confidential information. Valid characters are uppercase or lowercase letters, numbers, hyphens, underscores, and periods.


        :return: The name of this Certificate.
        :rtype: str
        r8   rP   rK   rK   rL   r$   F  rQ   zCertificate.namec                 C   rR   )a_  
        Sets the name of this Certificate.
        A user-friendly name for the certificate. Names are unique within a compartment. Avoid entering confidential information. Valid characters are uppercase or lowercase letters, numbers, hyphens, underscores, and periods.


        :param name: The name of this Certificate.
        :type: str
        NrU   )rI   r$   rK   rK   rL   r$   R  rS   c                 C   rN   )z
        Gets the description of this Certificate.
        A brief description of the certificate. Avoid entering confidential information.


        :return: The description of this Certificate.
        :rtype: str
        r9   rP   rK   rK   rL   r%   ^  rQ   zCertificate.descriptionc                 C   rR   )z
        Sets the description of this Certificate.
        A brief description of the certificate. Avoid entering confidential information.


        :param description: The description of this Certificate.
        :type: str
        NrV   )rI   r%   rK   rK   rL   r%   j  rS   c                 C   rN   )a  
        Gets the certificate_rules of this Certificate.
        A list of rules that control how the certificate is used and managed.


        :return: The certificate_rules of this Certificate.
        :rtype: list[oci.certificates_management.models.CertificateRule]
        r:   rP   rK   rK   rL   r&   v  rQ   zCertificate.certificate_rulesc                 C   rR   )a&  
        Sets the certificate_rules of this Certificate.
        A list of rules that control how the certificate is used and managed.


        :param certificate_rules: The certificate_rules of this Certificate.
        :type: list[oci.certificates_management.models.CertificateRule]
        NrW   )rI   r&   rK   rK   rL   r&     rS   c                 C   rN   )ae  
        **[Required]** Gets the time_created of this Certificate.
        A property indicating when the certificate was created, expressed in `RFC 3339`__ timestamp format.
        Example: `2019-04-03T21:10:29.600Z`

        __ https://tools.ietf.org/html/rfc3339


        :return: The time_created of this Certificate.
        :rtype: datetime
        r;   rP   rK   rK   rL   r'        zCertificate.time_createdc                 C   rR   )aa  
        Sets the time_created of this Certificate.
        A property indicating when the certificate was created, expressed in `RFC 3339`__ timestamp format.
        Example: `2019-04-03T21:10:29.600Z`

        __ https://tools.ietf.org/html/rfc3339


        :param time_created: The time_created of this Certificate.
        :type: datetime
        NrX   )rI   r'   rK   rK   rL   r'        
c                 C   rN   )an  
        Gets the time_of_deletion of this Certificate.
        An optional property indicating when to delete the certificate version, expressed in `RFC 3339`__ timestamp format.
        Example: `2019-04-03T21:10:29.600Z`

        __ https://tools.ietf.org/html/rfc3339


        :return: The time_of_deletion of this Certificate.
        :rtype: datetime
        r<   rP   rK   rK   rL   r)     rY   zCertificate.time_of_deletionc                 C   rR   )a}  
        Sets the time_of_deletion of this Certificate.
        An optional property indicating when to delete the certificate version, expressed in `RFC 3339`__ timestamp format.
        Example: `2019-04-03T21:10:29.600Z`

        __ https://tools.ietf.org/html/rfc3339


        :param time_of_deletion: The time_of_deletion of this Certificate.
        :type: datetime
        Nr[   )rI   r)   rK   rK   rL   r)     rZ   c                 C   rN   )a  
        **[Required]** Gets the lifecycle_state of this Certificate.
        The current lifecycle state of the certificate.

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


        :return: The lifecycle_state of this Certificate.
        :rtype: str
        )r=   rP   rK   rK   rL   r*     rY   zCertificate.lifecycle_statec                 C       g d}t ||sd}|| _dS )z
        Sets the lifecycle_state of this Certificate.
        The current lifecycle state of the certificate.


        :param lifecycle_state: The lifecycle_state of this Certificate.
        :type: str
        )	r   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 lifecycle_details of this Certificate.
        Additional information about the current lifecycle state of the certificate.


        :return: The lifecycle_details of this Certificate.
        :rtype: str
        r>   rP   rK   rK   rL   r+     rQ   zCertificate.lifecycle_detailsc                 C   rR   )z
        Sets the lifecycle_details of this Certificate.
        Additional information about the current lifecycle state of the certificate.


        :param lifecycle_details: The lifecycle_details of this Certificate.
        :type: str
        Nr`   )rI   r+   rK   rK   rL   r+     rS   c                 C   rN   )z
        **[Required]** Gets the compartment_id of this Certificate.
        The OCID of the compartment where you want to create the certificate.


        :return: The compartment_id of this Certificate.
        :rtype: str
        r?   rP   rK   rK   rL   r,      rQ   zCertificate.compartment_idc                 C   rR   )z
        Sets the compartment_id of this Certificate.
        The OCID of the compartment where you want to create the certificate.


        :param compartment_id: The compartment_id of this Certificate.
        :type: str
        Nra   )rI   r,   rK   rK   rL   r,     rS   c                 C   rN   )z
        Gets the current_version of this Certificate.

        :return: The current_version of this Certificate.
        :rtype: oci.certificates_management.models.CertificateVersionSummary
        r@   rP   rK   rK   rL   r-        zCertificate.current_versionc                 C   rR   )z
        Sets the current_version of this Certificate.

        :param current_version: The current_version of this Certificate.
        :type: oci.certificates_management.models.CertificateVersionSummary
        Nrb   )rI   r-   rK   rK   rL   r-   "     
c                 C   rN   )z
        Gets the subject of this Certificate.

        :return: The subject of this Certificate.
        :rtype: oci.certificates_management.models.CertificateSubject
        rA   rP   rK   rK   rL   r.   ,  rc   zCertificate.subjectc                 C   rR   )z
        Sets the subject of this Certificate.

        :param subject: The subject of this Certificate.
        :type: oci.certificates_management.models.CertificateSubject
        Nre   )rI   r.   rK   rK   rL   r.   6  rd   c                 C   rN   )z
        Gets the certificate_revocation_list_details of this Certificate.

        :return: The certificate_revocation_list_details of this Certificate.
        :rtype: oci.certificates_management.models.CertificateRevocationListDetails
        rB   rP   rK   rK   rL   r/   @  rc   z/Certificate.certificate_revocation_list_detailsc                 C   rR   )a  
        Sets the certificate_revocation_list_details of this Certificate.

        :param certificate_revocation_list_details: The certificate_revocation_list_details of this Certificate.
        :type: oci.certificates_management.models.CertificateRevocationListDetails
        Nrf   )rI   r/   rK   rK   rL   r/   J  rd   c                 C   rN   )a  
        **[Required]** Gets the config_type of this Certificate.
        The origin of the certificate.

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


        :return: The config_type of this Certificate.
        :rtype: str
        )rC   rP   rK   rK   rL   r0   T  rY   zCertificate.config_typec                 C   r\   )z
        Sets the config_type of this Certificate.
        The origin of the certificate.


        :param config_type: The config_type of this Certificate.
        :type: str
        )r   r   r   r]   N)r   rC   )rI   r0   r^   rK   rK   rL   r0   c  r_   c                 C   rN   )a  
        Gets the key_algorithm of this Certificate.
        The algorithm used to create key pairs.

        Allowed values for this property are: "RSA2048", "RSA4096", "ECDSA_P256", "ECDSA_P384", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The key_algorithm of this Certificate.
        :rtype: str
        )rD   rP   rK   rK   rL   r1   r  rY   zCertificate.key_algorithmc                 C   r\   )z
        Sets the key_algorithm of this Certificate.
        The algorithm used to create key pairs.


        :param key_algorithm: The key_algorithm of this Certificate.
        :type: str
        )r   r   r   r   r]   N)r   rD   )rI   r1   r^   rK   rK   rL   r1     r_   c                 C   rN   )a  
        Gets the signature_algorithm of this Certificate.
        The algorithm used to sign the public key certificate.

        Allowed values for this property are: "SHA256_WITH_RSA", "SHA384_WITH_RSA", "SHA512_WITH_RSA", "SHA256_WITH_ECDSA", "SHA384_WITH_ECDSA", "SHA512_WITH_ECDSA", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The signature_algorithm of this Certificate.
        :rtype: str
        )rE   rP   rK   rK   rL   r2     rY   zCertificate.signature_algorithmc                 C   r\   )z
        Sets the signature_algorithm of this Certificate.
        The algorithm used to sign the public key certificate.


        :param signature_algorithm: The signature_algorithm of this Certificate.
        :type: str
        )r   r   r   r   r   r   r]   N)r   rE   )rI   r2   r^   rK   rK   rL   r2     r_   c                 C   rN   )a  
        Gets the certificate_profile_type of this Certificate.
        The name of the profile used to create the certificate, which depends on the type of certificate you need.

        Allowed values for this property are: "TLS_SERVER_OR_CLIENT", "TLS_SERVER", "TLS_CLIENT", "TLS_CODE_SIGN", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The certificate_profile_type of this Certificate.
        :rtype: str
        )rF   rP   rK   rK   rL   r3     rY   z$Certificate.certificate_profile_typec                 C   r\   )a+  
        Sets the certificate_profile_type of this Certificate.
        The name of the profile used to create the certificate, which depends on the type of certificate you need.


        :param certificate_profile_type: The certificate_profile_type of this Certificate.
        :type: str
        )r   r   r   r    r]   N)r   rF   )rI   r3   r^   rK   rK   rL   r3     r_   c                 C   rN   )a  
        Gets the freeform_tags of this Certificate.
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
        For more information, see `Resource Tags`__.
        Example: `{"Department": "Finance"}`

        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm


        :return: The freeform_tags of this Certificate.
        :rtype: dict(str, str)
        rG   rP   rK   rK   rL   r4        zCertificate.freeform_tagsc                 C   rR   )a  
        Sets the freeform_tags of this Certificate.
        Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
        For more information, see `Resource Tags`__.
        Example: `{"Department": "Finance"}`

        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm


        :param freeform_tags: The freeform_tags of this Certificate.
        :type: dict(str, str)
        Nrg   )rI   r4   rK   rK   rL   r4        
c                 C   rN   )a  
        Gets the defined_tags of this Certificate.
        Defined tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see `Resource Tags`__.
        Example: `{"Operations": {"CostCenter": "42"}}`

        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm


        :return: The defined_tags of this Certificate.
        :rtype: dict(str, dict(str, object))
        rH   rP   rK   rK   rL   r5     rh   zCertificate.defined_tagsc                 C   rR   )a  
        Sets the defined_tags of this Certificate.
        Defined tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see `Resource Tags`__.
        Example: `{"Operations": {"CostCenter": "42"}}`

        __ https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm


        :param defined_tags: The defined_tags of this Certificate.
        :type: dict(str, dict(str, object))
        Nrj   )rI   r5   rK   rK   rL   r5     ri   c                 C   s   t | S N)r   rP   rK   rK   rL   __repr__  s   zCertificate.__repr__c                 C   s   |d u rdS | j |j kS )NF)__dict__rI   otherrK   rK   rL   __eq__  s   zCertificate.__eq__c                 C   s
   | |k S rk   rK   rn   rK   rK   rL   __ne__  s   
zCertificate.__ne__N)7__name__
__module____qualname____doc__ZLIFECYCLE_STATE_CREATINGZLIFECYCLE_STATE_ACTIVEZLIFECYCLE_STATE_UPDATINGZLIFECYCLE_STATE_DELETINGZLIFECYCLE_STATE_DELETEDZ#LIFECYCLE_STATE_SCHEDULING_DELETIONZ LIFECYCLE_STATE_PENDING_DELETIONZ#LIFECYCLE_STATE_CANCELLING_DELETIONZLIFECYCLE_STATE_FAILEDZ!CONFIG_TYPE_ISSUED_BY_INTERNAL_CAZ4CONFIG_TYPE_MANAGED_EXTERNALLY_ISSUED_BY_INTERNAL_CAZCONFIG_TYPE_IMPORTEDZKEY_ALGORITHM_RSA2048ZKEY_ALGORITHM_RSA4096ZKEY_ALGORITHM_ECDSA_P256ZKEY_ALGORITHM_ECDSA_P384Z#SIGNATURE_ALGORITHM_SHA256_WITH_RSAZ#SIGNATURE_ALGORITHM_SHA384_WITH_RSAZ#SIGNATURE_ALGORITHM_SHA512_WITH_RSAZ%SIGNATURE_ALGORITHM_SHA256_WITH_ECDSAZ%SIGNATURE_ALGORITHM_SHA384_WITH_ECDSAZ%SIGNATURE_ALGORITHM_SHA512_WITH_ECDSAZ-CERTIFICATE_PROFILE_TYPE_TLS_SERVER_OR_CLIENTZ#CERTIFICATE_PROFILE_TYPE_TLS_SERVERZ#CERTIFICATE_PROFILE_TYPE_TLS_CLIENTZ&CERTIFICATE_PROFILE_TYPE_TLS_CODE_SIGNrM   propertyr!   setterr#   r$   r%   r&   r'   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   rl   rp   rq   rK   rK   rK   rL   r      s     




















	
	
	
	
	
	











r   N)Zoci.utilr   r   r   Zoci.decoratorsr   objectr   rK   rK   rK   rL   <module>   s   