IssuerMetadata

@Serializable
data class IssuerMetadata(val issuer: String, val credentialIssuer: String? = null, val authorizationServer: String? = null, val credentialEndpointUrl: String? = null, val tokenEndpointUrl: String? = null, val jsonWebKeySetUrl: String? = null, val authorizationEndpointUrl: String, val batchCredentialEndpointUrl: String? = null, val supportedCredentialFormat: Array<SupportedCredentialFormat>? = null, val displayProperties: Array<DisplayProperties>? = null, val responseTypesSupported: Array<String>? = null, val scopesSupported: Array<String>? = null, val subjectTypesSupported: Array<String>? = null, val idTokenSigningAlgorithmsSupported: Array<String>? = null, val requestObjectSigningAlgorithmsSupported: Array<String>? = null, val subjectSyntaxTypesSupported: Array<String>? = null, val idTokenTypesSupported: Array<@Serializable(with = IdTokenTypeSerializer::class) IdTokenType>? = null, val presentationDefinitionUriSupported: Boolean = true, val vpFormatsSupported: VpFormatsSupported? = null, val clientIdSchemesSupported: Array<String>? = null)

To be serialized into /.well-known/openid-credential-issuer

Constructors

Link copied to clipboard
constructor(issuer: String, credentialIssuer: String? = null, authorizationServer: String? = null, credentialEndpointUrl: String? = null, tokenEndpointUrl: String? = null, jsonWebKeySetUrl: String? = null, authorizationEndpointUrl: String, batchCredentialEndpointUrl: String? = null, supportedCredentialFormat: Array<SupportedCredentialFormat>? = null, displayProperties: Array<DisplayProperties>? = null, responseTypesSupported: Array<String>? = null, scopesSupported: Array<String>? = null, subjectTypesSupported: Array<String>? = null, idTokenSigningAlgorithmsSupported: Array<String>? = null, requestObjectSigningAlgorithmsSupported: Array<String>? = null, subjectSyntaxTypesSupported: Array<String>? = null, idTokenTypesSupported: Array<@Serializable(with = IdTokenTypeSerializer::class) IdTokenType>? = null, presentationDefinitionUriSupported: Boolean = true, vpFormatsSupported: VpFormatsSupported? = null, clientIdSchemesSupported: Array<String>? = null)

Properties

Link copied to clipboard
@SerialName(value = "authorization_endpoint")
val authorizationEndpointUrl: String

OIDC Discovery: REQUIRED. URL of the OP's OAuth 2.0 Authorization Endpoint (OpenID.Core).

Link copied to clipboard
@SerialName(value = "authorization_server")
val authorizationServer: String? = null

OID4VCI: OPTIONAL. Identifier of the OAuth 2.0 Authorization Server (as defined in RFC8414) the Credential Issuer relies on for authorization. If this element is omitted, the entity providing the Credential Issuer is also acting as the AS, i.e. the Credential Issuer's identifier is used as the OAuth 2.0 Issuer value to obtain the Authorization Server metadata as per RFC8414.

Link copied to clipboard
@SerialName(value = "batch_credential_endpoint")
val batchCredentialEndpointUrl: String? = null

OID4VCI: OPTIONAL. URL of the Credential Issuer's Batch Credential Endpoint. This URL MUST use the https scheme and MAY contain port, path and query parameter components. If omitted, the Credential Issuer does not support the Batch Credential Endpoint.

Link copied to clipboard
@SerialName(value = "client_id_schemes_supported")
val clientIdSchemesSupported: Array<String>? = null

OID4VP: OPTIONAL. Array of JSON Strings containing the values of the Client Identifier schemes that the Wallet supports. The values defined by this specification are pre-registered, redirect_uri, entity_id, did. If omitted, the default value is pre-registered.

Link copied to clipboard
@SerialName(value = "credential_endpoint")
val credentialEndpointUrl: String? = null

OID4VCI: REQUIRED. URL of the Credential Issuer's Credential Endpoint. This URL MUST use the https scheme and MAY contain port, path and query parameter components.

Link copied to clipboard
@SerialName(value = "credential_issuer")
val credentialIssuer: String? = null

OID4VCI: REQUIRED. The Credential Issuer's identifier.

Link copied to clipboard
@SerialName(value = "display")
val displayProperties: Array<DisplayProperties>? = null

OID4VCI: OPTIONAL. An array of objects, where each object contains display properties of a Credential Issuer for a certain language.

Link copied to clipboard
@SerialName(value = "id_token_signing_alg_values_supported")
val idTokenSigningAlgorithmsSupported: Array<String>? = null

OIDC Discovery: REQUIRED. A JSON array containing a list of the JWS signing algorithms (alg values) supported by the OP for the ID Token to encode the Claims in a JWT (RFC7519). Valid values include RS256, ES256, ES256K, and EdDSA.

Link copied to clipboard
@SerialName(value = "id_token_types_supported")
val idTokenTypesSupported: Array<@Serializable(with = IdTokenTypeSerializer::class) IdTokenType>? = null

OIDC SIOPv2: OPTIONAL. A JSON array of strings containing the list of ID Token types supported by the OP, the default value is attester_signed_id_token (the id token is issued by the party operating the OP, i.e. this is the classical id token as defined in OpenID.Core), may also include subject_signed_id_token (Self-Issued ID Token, i.e. the id token is signed with key material under the end-user's control).

Link copied to clipboard
@SerialName(value = "issuer")
val issuer: String

OIDC Discovery: REQUIRED. URL using the https scheme with no query or fragment component that the OP asserts as its Issuer Identifier. If Issuer discovery is supported (see Section 2), this value MUST be identical to the issuer value returned by WebFinger. This also MUST be identical to the iss Claim value in ID Tokens issued from this Issuer.

Link copied to clipboard
@SerialName(value = "jwks_uri")
val jsonWebKeySetUrl: String? = null

OIDC Discovery: REQUIRED. URL of the OP's JSON Web Key Set document. This contains the signing key(s) the RP uses to validate signatures from the OP. The JWK Set MAY also contain the Server's encryption key(s), which are used by RPs to encrypt requests to the Server.

Link copied to clipboard
@SerialName(value = "presentation_definition_uri_supported")
val presentationDefinitionUriSupported: Boolean = true

OID4VP: OPTIONAL. Boolean value specifying whether the Wallet supports the transfer of presentation_definition by reference, with true indicating support. If omitted, the default value is true.

Link copied to clipboard
@SerialName(value = "request_object_signing_alg_values_supported")
val requestObjectSigningAlgorithmsSupported: Array<String>? = null

OIDC SIOPv2: REQUIRED. A JSON array containing a list of the JWS signing algorithms (alg values) supported by the OP for Request Objects, which are described in Section 6.1 of OpenID.Core. Valid values include none, RS256, ES256, ES256K, and EdDSA.

Link copied to clipboard
@SerialName(value = "response_types_supported")
val responseTypesSupported: Array<String>? = null

OIDC Discovery: REQUIRED. JSON array containing a list of the OAuth 2.0 response_type values that this OP supports. Dynamic OpenID Providers MUST support the code, id_token, and the token id_token Response Type values. OIDC SIOPv2: MUST be id_token.

Link copied to clipboard
@SerialName(value = "scopes_supported")
val scopesSupported: Array<String>? = null

OIDC SIOPv2: REQUIRED. A JSON array of strings representing supported scopes. MUST support the openid scope value.

Link copied to clipboard
@SerialName(value = "subject_syntax_types_supported")
val subjectSyntaxTypesSupported: Array<String>? = null

OIDC SIOPv2: REQUIRED. A JSON array of strings representing URI scheme identifiers and optionally method names of supported Subject Syntax Types. Valid values include urn:ietf:params:oauth:jwk-thumbprint, did:example and others.

Link copied to clipboard
@SerialName(value = "subject_types_supported")
val subjectTypesSupported: Array<String>? = null

OIDC Discovery: REQUIRED. JSON array containing a list of the Subject Identifier types that this OP supports. Valid types include pairwise and public.

Link copied to clipboard
@SerialName(value = "credentials_supported")
val supportedCredentialFormat: Array<SupportedCredentialFormat>? = null

OID4VCI: REQUIRED. A JSON array containing a list of JSON objects, each of them representing metadata about a separate credential type that the Credential Issuer can issue. The JSON objects in the array MUST conform to the structure of the Section 10.2.3.1.

Link copied to clipboard
@SerialName(value = "token_endpoint")
val tokenEndpointUrl: String? = null

OIDC Discovery: URL of the OP's OAuth 2.0 Token Endpoint (OpenID.Core). This is REQUIRED unless only the Implicit Flow is used.

Link copied to clipboard
@SerialName(value = "vp_formats_supported")
val vpFormatsSupported: VpFormatsSupported? = null

OID4VP: REQUIRED. An object containing a list of key value pairs, where the key is a string identifying a Credential format supported by the Wallet. Valid Credential format identifier values are defined in Annex E of OpenID.VCI. Other values may be used when defined in the profiles of this specification.

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int