All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.at.asitplus.wallet.cor.CertificateOfResidence.kt Maven / Gradle / Ivy

package at.asitplus.wallet.cor

import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.ADMINISTRATIVE_NUMBER
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.ARRIVAL_DATE
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.BIRTH_DATE
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.BIRTH_PLACE
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.DOCUMENT_NUMBER
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.EXPIRY_DATE
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.FAMILY_NAME
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.GENDER
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.GIVEN_NAME
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.ISSUANCE_DATE
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.ISSUING_AUTHORITY
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.ISSUING_COUNTRY
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.ISSUING_JURISDICTION
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.NATIONALITY
import at.asitplus.wallet.cor.CertificateOfResidenceDataElements.RESIDENCE_ADDRESS
import kotlinx.datetime.Instant
import kotlinx.datetime.LocalDate
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable


@Serializable
data class CertificateOfResidence(

    /** Current last name(s) or surname(s) of the User. */
    @SerialName(FAMILY_NAME)
    val familyName: String,

    /** Current first name(s), including middle name(s), of the User. */
    @SerialName(GIVEN_NAME)
    val givenName: String,

    /** Day, month, and year on which the User was born. If unknown, approximate date of birth. */
    @SerialName(BIRTH_DATE)
    val birthDate: LocalDate,

    /** The address of residence of the User. */
    @SerialName(RESIDENCE_ADDRESS)
    val residenceAddress: ResidenceAddress,

    /** User’s gender, using a value as defined in ISO/IEC 5218. */
    @SerialName(GENDER)
    @Serializable(with = IsoSexEnumSerializer::class)
    val gender: IsoSexEnum? = null,

    /** The place of the PID User’s birth */
    @SerialName(BIRTH_PLACE)
    val birthPlace: String? = null,

    /** Day, month, and year on which the PID User arrived at the address. */
    @SerialName(ARRIVAL_DATE)
    val arrivalDate: LocalDate? = null,

    /** Nationality of the User, as an Alpha-2 country code as specified in ISO 3166-1. */
    @SerialName(NATIONALITY)
    val nationality: String? = null,

    /** Date and time when the CoR attestation was issued. */
    @SerialName(ISSUANCE_DATE)
    val issuanceDate: Instant,

    /** Date and time when the CoR attestation will expire. */
    @SerialName(EXPIRY_DATE)
    val expiryDate: Instant,

    /** Name of the administrative authority that has issued this CoR attestation, or the ISO 3166 Alpha-2 country code
     *  of the respective Member State if there is no separate authority authorized to issue CoR attestations. */
    @SerialName(ISSUING_AUTHORITY)
    val issuingAuthority: String,

    /** A number for the CoR attestation, assigned by the Provider. */
    @SerialName(DOCUMENT_NUMBER)
    val documentNumber: String? = null,

    /** A number assigned by the CoR attestation Provider for audit control or other purposes. */
    @SerialName(ADMINISTRATIVE_NUMBER)
    val administrativeNumber: String? = null,

    /** Alpha-2 country code, as defined in ISO 3166-1, of the CoR attestation Provider’s country or territory. */
    @SerialName(ISSUING_COUNTRY)
    val issuingCountry: String,

    /** Country subdivision code of the jurisdiction that issued the CoR attestation, as defined in ISO 3166-2:2020,
     *  Clause 8. The first part of the code SHALL be the same as the value for issuing_country. */
    @SerialName(ISSUING_JURISDICTION)
    val issuingJurisdiction: String? = null,
)





© 2015 - 2025 Weber Informatics LLC | Privacy Policy