# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
import typing_extensions
from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from ..core.serialization import FieldMetadata
from .get_v_10_ssl_live_response_ssl_certificates_item_extensions_authority_info_access import (
    GetV10SslLiveResponseSslCertificatesItemExtensionsAuthorityInfoAccess,
)
from .get_v_10_ssl_live_response_ssl_certificates_item_extensions_certificate_policies_item import (
    GetV10SslLiveResponseSslCertificatesItemExtensionsCertificatePoliciesItem,
)
from .get_v_10_ssl_live_response_ssl_certificates_item_extensions_subject_alternative_names import (
    GetV10SslLiveResponseSslCertificatesItemExtensionsSubjectAlternativeNames,
)


class GetV10SslLiveResponseSslCertificatesItemExtensions(UniversalBaseModel):
    authority_key_identifier: typing_extensions.Annotated[
        typing.Optional[str], FieldMetadata(alias="authorityKeyIdentifier")
    ] = None
    subject_key_identifier: typing_extensions.Annotated[
        typing.Optional[str], FieldMetadata(alias="subjectKeyIdentifier")
    ] = None
    key_usages: typing_extensions.Annotated[typing.Optional[typing.List[str]], FieldMetadata(alias="keyUsages")] = None
    extended_key_usages: typing_extensions.Annotated[
        typing.Optional[typing.List[str]], FieldMetadata(alias="extendedKeyUsages")
    ] = None
    authority_info_access: typing_extensions.Annotated[
        typing.Optional[GetV10SslLiveResponseSslCertificatesItemExtensionsAuthorityInfoAccess],
        FieldMetadata(alias="authorityInfoAccess"),
    ] = None
    subject_alternative_names: typing_extensions.Annotated[
        typing.Optional[GetV10SslLiveResponseSslCertificatesItemExtensionsSubjectAlternativeNames],
        FieldMetadata(alias="subjectAlternativeNames"),
    ] = None
    certificate_policies: typing_extensions.Annotated[
        typing.Optional[typing.List[GetV10SslLiveResponseSslCertificatesItemExtensionsCertificatePoliciesItem]],
        FieldMetadata(alias="certificatePolicies"),
    ] = None

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
