Package-level declarations

Types

Link copied to clipboard
@Serializable
data class AssociatedBody(val associatedBodyName: List<MultilingualCharacterString>, val associatedBodyTradeName: List<MultilingualCharacterString>? = null, val associatedBodyAddress: AssociatedBodyAddress? = null, val associatedBodyInformationURI: List<MultilingualPointer>? = null, val associatedBodyTypeIdentifier: Rfc3986UniformResourceIdentifier? = null, val associatedBodyInformationExtensions: AssociatedBodyInformationExtensions? = null)
Link copied to clipboard
@Serializable
data class AssociatedBodyAddress(val assosciatedBodyPostalAddress: PostalAddresses, val assosciatedBodyElectronicAddress: ElectronicAddress)
Link copied to clipboard
@Serializable
data class AssociatedBodyInformationExtension(val dummy: Unit? = null)
Link copied to clipboard
Link copied to clipboard
@Serializable
value class EtsiCountryCode(val string: String)
Link copied to clipboard
class EtsiInstantSerializer : KSerializer<Instant>

Serialized as ISO8601-String with the following restrictions: year with four digits, month, day, hour, minute, second (without decimal fraction) and the UTC designator "Z".

Link copied to clipboard
class EtsiX509CertificateSerializer : KSerializer<X509Certificate>
Link copied to clipboard
@Serializable
value class Iso3166Alpha2Code(val string: String)

ISO 3166-1 alpha-2 codes

Link copied to clipboard
@Serializable
data class ListAndSchemeInformation(val loTEVersionIdentifier: Int, val loTESequenceNumber: Int, val listIssueDateTime: Instant, val nextUpdate: Instant, val schemeOperatorName: SchemeOperatorName, val loteType: Rfc3986UniformResourceIdentifier? = null, val schemeOperatorAddress: SchemeOperatorAddress? = null, val schemeName: SchemeName? = null, val schemeInformationURI: SchemeInformationURI? = null, val statusDeterminationApproach: Rfc3986UniformResourceIdentifier? = null, val schemeTypeCommunityRules: SchemeTypeCommunityRules? = null, val schemeTerritory: EtsiCountryCode? = null, val policyOrLegalNotice: PolicyOrLegalNotice? = null, val historicalInformationPeriod: Int? = null, val pointerToOtherLoTE: PointersToOtherLoTE? = null, val distributionPoints: List<Rfc3986UniformResourceIdentifier>? = null, val schemeExtensions: SchemeExtensions? = null)
Link copied to clipboard
@Serializable
data class ListOfTrustedEntities(val listAndSchemeInformation: ListAndSchemeInformation? = null, val trustedEntitiesList: TrustedEntitiesList? = null)
Link copied to clipboard
@Serializable
data class MultilingualCharacterString(val language: Rfc5646LanguageTag, val value: String)
Link copied to clipboard
@Serializable
data class MultilingualPointer(val language: Rfc5646LanguageTag, val uniformResourceIdentifier: Rfc3986UniformResourceIdentifier)
Link copied to clipboard
interface OtherId

The format of the OtherId component is left open

Link copied to clipboard
@Serializable
data class OtherLoTEPointer(val loteLocation: Rfc3986UniformResourceIdentifier, val serviceDigitalIdentity: List<ServiceDigitalIdentity>, val loteType: Rfc3986UniformResourceIdentifier, val schemeOperatorName: SchemeOperatorName, val schemeTypeCommunityRules: SchemeTypeCommunityRules? = null, val schemeTerritory: EtsiCountryCode? = null, val mimeType: Rfc6838MimeType? = null)

2026-04-23 https://www.etsi.org/deliver/etsi_ts/119600_119699/119602/01.01.01_60/ts_119602v010101p.pdf 6.3.13 Pointers to other LoTEs Description: The PointersToOtherLoTE component references any relevant list of trusted entities or any relevant list of lists of trusted entities. ETSI ETSI TS 119 602 V1.1.1 (2025-11)23 Format: The PointersToOtherLoTE component shall contain a sequence of one or more OtherLoTEPointer elements, each OtherLoTEPointer element giving: a) a LoTELocation element containing the URI of the machine processable format of another LoTE; b) one or more ServiceDigitalIdentity element, all representing the issuer of the LoTE pointed to, formatted as specified in clause 6.6.3; and c) additional information as a set of LoTE Qualifiers: LoTE Type, as defined in clause 6.3.3; Scheme operator name, as defined in clause 6.3.4; optionally the Scheme type/community/rules, as defined in clause 6.3.9; Scheme territory, as defined in clause 6.3.10; and Mime type. Semantics: More than one digital identity may be used to help the management of the pointed-to list signing process (e.g. in case of expiration/substitution of pointed-to list signing keys or more than a single signing key is allowed to sign this list). One of such digital identities shall allow successful authentication of the pointed-to list before its use.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Serializable
data class PolicyOrLegalNoticeItem(val legalNotice: MultilingualCharacterString? = null, val policy: MultilingualPointer? = null)
Link copied to clipboard
@Serializable
data class PostalAddress(val languageTag: Rfc5646LanguageTag, val streetAddress: String, val countryCode: EtsiCountryCode, val locality: String? = null, val stateOrProvince: String? = null, val postalCode: String? = null)
Link copied to clipboard
@Serializable
value class PostalAddresses(list: List<PostalAddress>) : List<PostalAddress>
Link copied to clipboard
interface PublicKeyValue

The format of the PublicKeyValue component is left open and is syntax-specific

Link copied to clipboard
@Serializable
value class Rfc4514DistinguishedName(val string: String)

The string representation of an X.501 Distinguished Name, decoded to a string as specified in RFC4514

Link copied to clipboard
@Serializable
value class Rfc5646LanguageTag(val caseInsensitiveString: CaseInsensitiveString)

https://www.rfc-editor.org/rfc/rfc5646.html

Link copied to clipboard
data class Rfc6838MimeType(val string: String)
Link copied to clipboard
interface SchemeExtension
Link copied to clipboard
@Serializable
value class SchemeExtensions(list: List<SchemeExtension>) : List<SchemeExtension>

2026-04-23 https://www.etsi.org/deliver/etsi_ts/119600_119699/119602/01.01.01_60/ts_119602v010101p.pdf 6.3.17 Scheme extensions Description: The SchemeExtensions component provides specific scheme-related information and enhancements that do not require a change in the version identifier, which can be interpreted by all accessing parties according to the specific scheme's rules. Format: The SchemeExtensions component shall contain a sequence of Scheme extensions whose format is left open. Each extension shall have an indication of its criticality. Semantics: Each extension of the sequence shall be selected by the LoTESO according to the information it wishes to convey within its LoTE. The meaning and value of each extension shall be defined by its source specifications being either the LoTESOs own definition or any other extension definition produced by another entity, such as a community or federation of schemes, a standards body, etc. The criticality indication shall have the same semantics as with extensions in X.509-certificates 12. A system using LoTEs shall reject the LoTE if it encounters a critical extension it does not recognize, while a non-critical extension may be ignored if it is not recognized.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Serializable
data class SchemeOperatorAddress(val postalAddresses: PostalAddresses, val electronicAddress: ElectronicAddress)
Link copied to clipboard

2026-04-23 https://www.etsi.org/deliver/etsi_ts/119600_119699/119602/01.01.01_60/ts_119602v010101p.pdf 6.3.4 Scheme operator name Description: The SchemeOperatorName component specifies the name of the entity in charge of establishing, publishing, signing and maintaining the list of trusted entities. Format: The SchemeOperatorName component shall contain a sequence of multilingual character strings (see clause 6.1.4). Semantics: The name of the scheme operator shall be the formal name under which the associated legal entity or mandated entity (e.g. for governmental administrative agencies) associated with the legal entity in charge of establishing, publishing and maintaining the list of trusted entities operates. It shall be the name used in formal legal registration or authorization and to which any formal communication should be addressed.

Link copied to clipboard
Link copied to clipboard
@Serializable
data class ServiceDigitalIdentity(val x509Certificates: List<@Serializable(with = EtsiX509CertificateSerializer::class) X509Certificate>? = null, val x509SubjectNames: List<Rfc4514DistinguishedName>? = null, val publicKeyValues: List<PublicKeyValue>? = null, val x509SKIs: List<SubjectKeyIdentifier>? = null, val otherIds: List<OtherId>? = null)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class ServiceHistoryInstance(val serviceName: ServiceName, val serviceDigitalIdentity: ServiceDigitalIdentity, val serviceStatus: ServiceStatus, val statusStartingTime: Instant, val serviceTypeIdentifier: ServiceTypeIdentifier? = null, val serviceInformationExtensions: ServiceInformationExtensions? = null)
Link copied to clipboard
@Serializable
data class ServiceInformation(val serviceName: List<MultilingualCharacterString>, val serviceDigitalIdentity: ServiceDigitalIdentity, val serviceTypeIdentifier: ServiceTypeIdentifier? = null, val serviceStatus: ServiceStatus? = null, val statusStartingTime: Instant? = null, val schemeServiceDefinitionURI: List<MultilingualPointer>? = null, val serviceSupplyPoints: List<ServiceSupplyPoint>? = null, val serviceDefinitionURI: List<MultilingualPointer>? = null, val serviceInformationExtensions: ServiceInformationExtensions? = null)
Link copied to clipboard
@Serializable
data class ServiceInformationExtension(val serviceUniqueIdentifier: Rfc3986UniformResourceIdentifier)
Link copied to clipboard
Link copied to clipboard
@Serializable
value class ServiceStatus(val uniformResourceIdentifier: Rfc3986UniformResourceIdentifier)
Link copied to clipboard
@Serializable
data class ServiceSupplyPoint(val uriValue: Rfc3986UniformResourceIdentifier, val serviceType: String)
Link copied to clipboard
@Serializable
value class ServiceTypeIdentifier(val uniformResourceIdentifier: Rfc3986UniformResourceIdentifier)
Link copied to clipboard

The format of the SubjectKeyIdentifier component is left open and is syntax-specific

Link copied to clipboard
@Serializable
data class TEAddress(val tePostalAddress: PostalAddresses, val teElectronicAddress: TEElectronicAddress)
Link copied to clipboard
Link copied to clipboard
@Serializable
data class TEInformationExtension(val otherAssociatedBodies: List<AssociatedBody>? = null)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Serializable
value class TrustedEntitiesList(list: List<TrustedEntity>) : List<TrustedEntity>
Link copied to clipboard
@Serializable
data class TrustedEntity(val trustedEntityInformation: TrustedEntityInformation, val trustedEntityServices: TrustedEntityServices)
Link copied to clipboard
@Serializable
data class TrustedEntityInformation(val teName: TEName, val teAddress: TEAddress, val teInformationURI: List<MultilingualPointer>, val teTradeName: TETradeName? = null, val teInformationExtensions: List<TEInformationExtension>? = null)
Link copied to clipboard
@Serializable
data class TrustedEntityService(val serviceInformation: ServiceInformation, val serviceHistory: ServiceHistory? = null)
Link copied to clipboard