- Add Gitea Actions workflow; point README to gitea.d-bis.org/Sankofa_Phoenix/SMOA - Expand .gitignore for Spring H2 data, secrets, Kotlin .kotlin/, tooling - Track docs/api/generated ReDoc bundle; refresh api docs README - Android: network/auth/sync, UI shell, tests; backend credentials/integrity APIs - Docs, scripts (generate-api-docs), modules and core updates Made-with: Cursor
88 lines
2.7 KiB
JSON
88 lines
2.7 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://smoa.dev/schemas/credential-payload-aamva_dlid.schema.json",
|
|
"title": "Credential sync payload — AAMVA DL/ID",
|
|
"description": "JSON shape for CredentialSyncRequest.payload only (credentialType on the sync request body). Use when request.credentialType is aamva_dlid. Aligns with com.smoa.core.barcode.formats.AAMVACredential.",
|
|
"type": "object",
|
|
"required": [
|
|
"documentDiscriminator",
|
|
"firstName",
|
|
"lastName",
|
|
"address",
|
|
"city",
|
|
"state",
|
|
"zipCode",
|
|
"dateOfBirth",
|
|
"expirationDate",
|
|
"issueDate",
|
|
"licenseNumber"
|
|
],
|
|
"properties": {
|
|
"completeCredentialDomain": {
|
|
"type": "string",
|
|
"enum": ["payment", "piv_pki", "nfc_access", "mobile"],
|
|
"description": "Optional mirror of Complete Credential CredentialRef.domain."
|
|
},
|
|
"issuingAuthority": {
|
|
"$ref": "credential-authority.schema.json#/$defs/IssuingAuthorityContext"
|
|
},
|
|
"documentDiscriminator": {
|
|
"type": "string",
|
|
"description": "AAMVA document discriminator / instance id."
|
|
},
|
|
"firstName": { "type": "string" },
|
|
"middleName": { "type": "string" },
|
|
"lastName": { "type": "string" },
|
|
"address": { "type": "string" },
|
|
"city": { "type": "string" },
|
|
"state": {
|
|
"type": "string",
|
|
"description": "Subnational issuer code (e.g. US state, CA province) — national conventions apply."
|
|
},
|
|
"zipCode": {
|
|
"type": "string",
|
|
"description": "Postal code in issuing jurisdiction format."
|
|
},
|
|
"dateOfBirth": {
|
|
"type": "string",
|
|
"pattern": "^\\d{8}$",
|
|
"description": "YYYYMMDD."
|
|
},
|
|
"expirationDate": {
|
|
"type": "string",
|
|
"pattern": "^\\d{8}$",
|
|
"description": "YYYYMMDD."
|
|
},
|
|
"issueDate": {
|
|
"type": "string",
|
|
"pattern": "^\\d{8}$",
|
|
"description": "YYYYMMDD."
|
|
},
|
|
"licenseNumber": { "type": "string" },
|
|
"restrictions": { "type": "string" },
|
|
"endorsements": { "type": "string" },
|
|
"vehicleClass": { "type": "string" },
|
|
"height": {
|
|
"type": "string",
|
|
"description": "e.g. FTIN or metric per jurisdiction."
|
|
},
|
|
"weight": {
|
|
"type": "string",
|
|
"description": "e.g. LBS or KG per jurisdiction."
|
|
},
|
|
"eyeColor": { "type": "string" },
|
|
"hairColor": { "type": "string" },
|
|
"sex": {
|
|
"type": "string",
|
|
"enum": ["M", "F", "X"],
|
|
"description": "AAMVA allows X for unspecified/non-binary where adopted."
|
|
},
|
|
"extensions": {
|
|
"type": "object",
|
|
"description": "Jurisdiction-specific element codes, REAL ID flags, or non-AAMVA national DL profiles.",
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|